psyclaw 0.29.21 → 0.30.1

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 (35) hide show
  1. package/README.md +6 -6
  2. package/dist/src/adapters/pi/extension.js +94 -28
  3. package/dist/src/adapters/pi/extension.js.map +1 -1
  4. package/dist/src/analysis/plan.d.ts +11 -0
  5. package/dist/src/analysis/plan.js +38 -1
  6. package/dist/src/analysis/plan.js.map +1 -1
  7. package/dist/src/analysis/stats-router.js +7 -4
  8. package/dist/src/analysis/stats-router.js.map +1 -1
  9. package/dist/src/ars/academic-router.js +6 -0
  10. package/dist/src/ars/academic-router.js.map +1 -1
  11. package/dist/src/branding.js +7 -7
  12. package/dist/src/branding.js.map +1 -1
  13. package/dist/src/core/citations.d.ts +3 -2
  14. package/dist/src/core/citations.js +5 -4
  15. package/dist/src/core/citations.js.map +1 -1
  16. package/dist/src/literature/archive.d.ts +3 -1
  17. package/dist/src/literature/archive.js +41 -0
  18. package/dist/src/literature/archive.js.map +1 -1
  19. package/dist/src/project/bootstrap.d.ts +12 -0
  20. package/dist/src/project/bootstrap.js +90 -2
  21. package/dist/src/project/bootstrap.js.map +1 -1
  22. package/dist/src/session/help.js +4 -4
  23. package/dist/src/session/help.js.map +1 -1
  24. package/dist/src/session/modes.js +12 -8
  25. package/dist/src/session/modes.js.map +1 -1
  26. package/dist/src/style/cli-ui.js +1 -1
  27. package/dist/src/style/cli-ui.js.map +1 -1
  28. package/dist/src/verify/checklist.d.ts +5 -0
  29. package/dist/src/verify/checklist.js +9 -1
  30. package/dist/src/verify/checklist.js.map +1 -1
  31. package/docs/PsyClaw/344/275/277/347/224/250/347/231/275/347/232/256/344/271/{246_v0.29.15.md → 246_v0.30.1.md} +80 -57
  32. package/docs//344/275/277/347/224/250/347/231/275/347/232/256/344/271/246.md +1 -1
  33. package/package.json +2 -2
  34. package/skills/core/academic-grill/SKILL.md +1 -1
  35. package/skills/core/analysis-plan/SKILL.md +12 -8
@@ -5,6 +5,8 @@ import { assertSafeProjectPath, projectPaths } from "../project/paths.js";
5
5
  import { validateAnalysisPlan } from "./hooks.js";
6
6
  export const ANALYSIS_PLAN_SCHEMA = "psyclaw/analysis-plan/v1";
7
7
  export const ANALYSIS_PLAN_ACTIVE = "analysis/plans/active.json";
8
+ /** Typed sentence required before execute when approvalMode=human. */
9
+ export const PLAN_RITUAL_PHRASE = "我已审阅并批准本方案";
8
10
  const STATUS_STAGE = {
9
11
  clarifying: "clarify-eda",
10
12
  drafting: "propose",
@@ -69,6 +71,9 @@ export async function readAnalysisPlan(root, id) {
69
71
  ...value,
70
72
  analysisChoices: Array.isArray(value.analysisChoices) ? value.analysisChoices : [],
71
73
  approvalMode: value.approvalMode === "auto" ? "auto" : "human",
74
+ ...(value.ritualApproval && typeof value.ritualApproval.text === "string" && typeof value.ritualApproval.at === "string"
75
+ ? { ritualApproval: value.ritualApproval }
76
+ : {}),
72
77
  };
73
78
  }
74
79
  catch {
@@ -102,6 +107,7 @@ export function advanceAnalysisPlan(plan, action) {
102
107
  ...plan,
103
108
  analysisChoices: [...(plan.analysisChoices ?? [])],
104
109
  approvalMode: plan.approvalMode ?? "human",
110
+ ...(plan.ritualApproval ? { ritualApproval: plan.ritualApproval } : {}),
105
111
  updatedAt: nowIso(),
106
112
  };
107
113
  switch (action.type) {
@@ -152,6 +158,15 @@ export function advanceAnalysisPlan(plan, action) {
152
158
  next.mcpServer = action.mcpServer;
153
159
  next.status = "reviewing";
154
160
  break;
161
+ case "ritual-approve": {
162
+ const text = action.text.trim();
163
+ next.ritualApproval = { text, at: nowIso() };
164
+ next.notes = [next.notes, `仪式批准:${text}`].filter(Boolean).join("\n");
165
+ if (next.status === "awaiting-confirm" || next.status === "drafting") {
166
+ next.status = "reviewing";
167
+ }
168
+ break;
169
+ }
155
170
  case "review": {
156
171
  const result = validateAnalysisPlan(next);
157
172
  next.reviewFindings = result.findings.map((finding) => `${finding.severity}: ${finding.message}`);
@@ -161,10 +176,25 @@ export function advanceAnalysisPlan(plan, action) {
161
176
  case "ready":
162
177
  next.status = "ready";
163
178
  break;
164
- case "run-now":
179
+ case "run-now": {
180
+ const pendingChoices = next.analysisChoices.filter((row) => !row.selected);
181
+ if ((next.approvalMode ?? "human") === "human" && pendingChoices.length > 0) {
182
+ next.status = "awaiting-confirm";
183
+ next.notes = [next.notes, `执行被拒:尚有 ${pendingChoices.length} 项子分析未确认`].filter(Boolean).join("\n");
184
+ break;
185
+ }
186
+ if ((next.approvalMode ?? "human") === "human" && !next.ritualApproval) {
187
+ next.status = next.status === "running" ? "ready" : next.status === "clarifying" ? "awaiting-confirm" : next.status;
188
+ if (next.status === "reviewing" || next.status === "ready" || next.status === "awaiting-confirm") {
189
+ next.status = "ready";
190
+ }
191
+ next.notes = [next.notes, `执行被拒:须完整输入「${PLAN_RITUAL_PHRASE}」`].filter(Boolean).join("\n");
192
+ break;
193
+ }
165
194
  next.runPreference = "now";
166
195
  next.status = "running";
167
196
  break;
197
+ }
168
198
  case "defer":
169
199
  next.runPreference = "later";
170
200
  next.status = "deferred";
@@ -191,6 +221,7 @@ export function renderAnalysisPlanMarkdown(plan) {
191
221
  `- Confirmatory: ${plan.confirmatory ? "yes" : "no (exploratory OK if disclosed)"}`,
192
222
  `- Execution: ${plan.executionBackend}${plan.mcpServer ? ` (${plan.mcpServer})` : ""}`,
193
223
  `- Approval mode: **${plan.approvalMode ?? "human"}**${(plan.approvalMode ?? "human") === "auto" ? "(结果须标注未经人审批)" : ""}`,
224
+ `- Ritual approval: ${plan.ritualApproval ? `yes @ ${plan.ritualApproval.at}` : `pending — type「${PLAN_RITUAL_PHRASE}」`}`,
194
225
  `- Run preference: ${plan.runPreference}`,
195
226
  "",
196
227
  "## Per-analysis choices",
@@ -249,11 +280,17 @@ export function renderAnalysisPlanMarkdown(plan) {
249
280
  }
250
281
  export function formatAnalysisPlanStatus(plan) {
251
282
  const pending = (plan.analysisChoices ?? []).filter((row) => !row.selected).length;
283
+ const ritual = plan.ritualApproval
284
+ ? `仪式批准:已记录 @ ${plan.ritualApproval.at}`
285
+ : (plan.approvalMode ?? "human") === "auto"
286
+ ? "仪式批准:auto(结果须标注未经人审批)"
287
+ : `仪式批准:待输入「${PLAN_RITUAL_PHRASE}」`;
252
288
  return [
253
289
  `分析 Plan \`${plan.id}\` · ${plan.status}/${plan.stage}`,
254
290
  `目标:${plan.goal}`,
255
291
  `主分析:${plan.confirmedMethod ?? plan.primaryAnalysis ?? "(未确认)"}`,
256
292
  `审批:${plan.approvalMode ?? "human"}${pending > 0 ? ` · 待选分析 ${pending} 项` : ""}`,
293
+ ritual,
257
294
  `后端:${plan.executionBackend}${plan.mcpServer ? `/${plan.mcpServer}` : ""} · 执行偏好:${plan.runPreference}`,
258
295
  `文件:analysis/plans/${plan.id}.md`,
259
296
  plan.reviewFindings.length > 0 ? `审核:${plan.reviewFindings.join(";")}` : "审核:尚未完成或无发现",
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/analysis/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/analysis/plan.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,10 @@ export function formatAnalysisPlanTakeover(userText) {
25
25
  "Do not start academic/ARS writing. Do not invent numerical results.",
26
26
  "Default execution backend: write reproducible scripts under analysis/scripts/ using mature libraries (pandas/pingouin/statsmodels/scipy or R equivalents).",
27
27
  "Use MCP only when the user needs a special backend (SPSS/Mplus/MNE/Stata) or explicitly asks.",
28
- "Persist structured state with /plan (new|status|confirm|review|run|defer|handoff); soft confirm ARS checkpoint ≠ awaiting-human.",
28
+ "Per-analysis choice cards are mandatory. Soft「可以」settles only the current card.",
29
+ "Overall execute authorization requires the typed ritual: 我已审阅并批准本方案 (unless /plan auto).",
30
+ "Do not auto-start /crosscheck or /verify — ask first.",
31
+ "Persist structured state with /plan (new|status|confirm|review|run|defer|handoff).",
29
32
  "User request:",
30
33
  userText.trim(),
31
34
  ].join("\n");
@@ -35,11 +38,11 @@ export function analysisSoftRoutePrompt() {
35
38
  return [
36
39
  "## Analysis soft-route (stats plan)",
37
40
  "While analysis mode is active, clear statistical / data-analysis intents soft-takeover into `/skill:analysis-plan` without waiting for an explicit slash from the user.",
38
- "Stages: clarify + light EDA → **per-analysis choices** (first option = concrete new method; 「已经足够」only as last option) → soft confirm via natural language「可以」→ pre-check execute → post-check → handoff.",
39
- "Optional natural-language auto-approval may skip method approval but every result must disclose 未经人审批.",
41
+ "Stages: clarify + light EDA → **per-analysis choices** (first option = concrete new method; 「已经足够」only as last option) → soft「可以」per card overall typed ritual「我已审阅并批准本方案」→ execute → ask before /crosscheck|/verify → handoff.",
42
+ "Optional `/plan auto` skips ritual but every result must disclose 未经人审批.",
40
43
  "Do not merge this with academic/ARS planning. After an accepted/completed plan (and results), update `analysis/HANDOFF.md` before switching to academic.",
41
44
  "Explicit `/skill:` or `/plan` always wins over soft routing. Academic writing intents belong in academic mode.",
42
- "Initiate `/crosscheck` (process: data, citation existence, format; multi-view merge) and `/verify` (substance: results hold, citation/method reasonableness). Human approval is forced by the completion gate via Panel or wake-options never ask the user to type a human-approve slash. AI-checked/skipped do not pass.",
45
+ "Never auto-initiate `/crosscheck` or `/verify`. Propose the block, wait for explicit user agreement, then run. Final human Panel/wake approval still gates completion.",
43
46
  ].join("\n");
44
47
  }
45
48
  //# sourceMappingURL=stats-router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stats-router.js","sourceRoot":"","sources":["../../../src/analysis/stats-router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,YAAY,GAAG,gNAAgN,CAAC;AAEtO,MAAM,aAAa,GAAG,oHAAoH,CAAC;AAE3I,wEAAwE;AACxE,MAAM,iBAAiB,GAAG,iDAAiD,CAAC;AAE5E,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACtF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,OAAO;QACL,sBAAsB;QACtB,EAAE;QACF,6HAA6H;QAC7H,qEAAqE;QACrE,4JAA4J;QAC5J,+FAA+F;QAC/F,oIAAoI;QACpI,eAAe;QACf,QAAQ,CAAC,IAAI,EAAE;KAChB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,qCAAqC;QACrC,yKAAyK;QACzK,6MAA6M;QAC7M,wGAAwG;QACxG,0JAA0J;QAC1J,gHAAgH;QAChH,6TAA6T;KAC9T,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"stats-router.js","sourceRoot":"","sources":["../../../src/analysis/stats-router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,YAAY,GAAG,gNAAgN,CAAC;AAEtO,MAAM,aAAa,GAAG,oHAAoH,CAAC;AAE3I,wEAAwE;AACxE,MAAM,iBAAiB,GAAG,iDAAiD,CAAC;AAE5E,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACtF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,OAAO;QACL,sBAAsB;QACtB,EAAE;QACF,6HAA6H;QAC7H,qEAAqE;QACrE,4JAA4J;QAC5J,+FAA+F;QAC/F,iFAAiF;QACjF,0FAA0F;QAC1F,uDAAuD;QACvD,oFAAoF;QACpF,eAAe;QACf,QAAQ,CAAC,IAAI,EAAE;KAChB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,qCAAqC;QACrC,yKAAyK;QACzK,mOAAmO;QACnO,0EAA0E;QAC1E,0JAA0J;QAC1J,gHAAgH;QAChH,wKAAwK;KACzK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -175,6 +175,10 @@ export function formatAcademicSoftRouteInvocation(match, userText, also = []) {
175
175
  `Academic soft-route (${match.reason}). Load and follow this skill now; do not ask the user to retype /skill:${match.skill}.`,
176
176
  modeLine,
177
177
  followLine,
178
+ "Pace with human checkpoints: split work into nodes (e.g. lit-review method → what will be shown → then execute). Confirm each node before the next heavy stage.",
179
+ "If the user request is vague without a crisp research question, remind them to use /grill. If they seem short on ideas, remind them to use /brainstorm.",
180
+ "Do not auto-start /crosscheck or /verify; ask first and wait for explicit agreement.",
181
+ "Before downloading any open-access PDF, ask the user; if download fails or OA is unavailable, explain and provide the DOI link.",
178
182
  "User request:",
179
183
  userText.trim(),
180
184
  ].filter((line) => line !== undefined && line !== "").join("\n");
@@ -199,6 +203,8 @@ export function academicSoftRoutePrompt() {
199
203
  "Invoke the chosen skill via `/skill:<name>` (or the host skill tool) so the user can see it, then follow that skill. Do not ask the user to type the slash command when the intent is clear.",
200
204
  "Skills outside this allowlist must NOT be auto-selected. If another skill is needed, tell the user to run `/skill:<name>` explicitly (or `/skill` to manage installs).",
201
205
  "Explicit user `/skill:` or `/ars-*` always wins over soft routing.",
206
+ "When intent is vague, prefer reminding `/grill` (pressure-test) or `/brainstorm` (ideation) over silently launching a full pipeline.",
207
+ "Prefer more, smaller human-confirmable nodes over racing through lit-review + writing + verify in one pass.",
202
208
  ].join("\n");
203
209
  }
204
210
  //# sourceMappingURL=academic-router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"academic-router.js","sourceRoot":"","sources":["../../../src/ars/academic-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"academic-router.js","sourceRoot":"","sources":["../../../src/ars/academic-router.ts"],"names":[],"mappings":"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"}
@@ -26,12 +26,12 @@ export const PSYCLAW_IDENTITY_PROMPT = [
26
26
  `When asked what you can help with, answer in plain research-product language only: data analysis and reproducible scripts, figures/tables, literature and citation checking, academic writing and review, project workspace (/init), and Panel/核对清单. Mention Shift+Tab modes (chat / analysis / academic) and /help. Do not dump file trees, MCP catalogs, browser-bridge brands, or implementation architecture unless the user is debugging with you.`,
27
27
  `Shift+Tab cycles sticky modes: chat (plain) → analysis (data) → academic (ARS writing/review). Follow the active mode footer; do not force the other control plane.`,
28
28
  `Shared workspace after /init: data/raw (immutable), data/clean, analysis/*, literature/, paper/, root psyclaw.md, and .psyclaw/ for ledgers/agents/skills. Keep the tree clean; do not dump manuscripts in the repo root.`,
29
- `Pipeline: scaffold → clarify → review plan → review analyze → AI /crosscheck + /verify → human Panel/wake approve → analysis report → academic/ARS with per-stage review. First priority is producing results; second is reducing hallucination via process /crosscheck and substance /verify, then mandatory human approval (automatic gate; not a slash) before treating work as complete. Do not treat SHA256 as academic proof—fingerprints only protect raw-data tampering and similar critical boundaries.`,
30
- `Do not hard-block ordinary mid-work progress for missing /init; warn and continue. Hard gates remain for: (1) human verify after AI /crosscheck before analysis handoff and academic finalization; (2) raw overwrite, credentials, destructive ops, and external publication.`,
31
- `/init only scaffolds the workspace. Clarification, method choice, and analysis happen in analysis mode; ARS paper flow in academic mode. There is no separate /run command.`,
29
+ `Pipeline: scaffold → clarify → per-node plan choices typed ritual「我已审阅并批准本方案」→ analyze → ask before AI /crosscheck + /verify → human Panel/wake approve → analysis report → academic/ARS with per-stage review. First priority is producing results with human participation; second is reducing hallucination via process /crosscheck and substance /verify after the user agrees to open those blocks. Do not treat SHA256 as academic proof—fingerprints only protect raw-data tampering and similar critical boundaries.`,
30
+ `Do not hard-block ordinary mid-work progress for missing /init when a canonical workspace already exists (psyclaw.md + data/ analysis/ literature/ paper/ .psyclaw/). Only warn when those markers are absent. Hard gates remain for: (1) human verify after agreed AI /crosscheck before analysis handoff and academic finalization; (2) raw overwrite, credentials, destructive ops, and external publication.`,
31
+ `/init only scaffolds the workspace. If the directory already shows the canonical layout recorded in psyclaw.md, do not ask to /init again across sessions. Clarification, method choice, and analysis happen in analysis mode; ARS paper flow in academic mode. There is no separate /run command.`,
32
32
  `For institutionally licensed full text, prefer psyclaw_workbench when available. Never handle credentials or bypass access controls.`,
33
- `In analysis mode, soft-takeover clear stats/data-analysis intents into the analysis-plan skill. Ask for a human choice on each proposed analysis (first option = concrete new method; 「已经足够」only as last option). Prefer natural-language confirmation (「可以」). Default: local reproducible scripts; MCP only for special backends or explicit request. Never invent numbers. Before and after analysis, run AI /crosscheck (process: data, real citations, format) and /verify (substance: results hold, reasonable citations/methods). Human approval is forced at handoff/finalize via Panel「核实」or wake-options — do not ask the user to type a human-approve slash. Write analysis/HANDOFF.md before academic.`,
34
- `In academic mode, soft-route only the bundled ARS/Nature/compose allowlist without requiring /skill: from the user; any other skill needs explicit /skill:<name>. Consume HANDOFF and analysis/results; do not re-choose primary statistical tests—switch to analysis if numbers are missing. Call psyclaw_ars_multi_agent for Stage 3 seats instead of simulating reviewers in-session. Before claiming full text done or export/submit-ready: AI /crosscheck then mandatory human verify.`,
33
+ `In analysis mode, soft-takeover clear stats/data-analysis intents into the analysis-plan skill. Ask for a human choice on each proposed analysis (first option = concrete new method; 「已经足够」only as last option). Soft「可以」settles only the current card. Overall execute requires typing「我已审阅并批准本方案」(unless /plan auto). Default: local reproducible scripts; MCP only for special backends or explicit request. Never invent numbers. Do not auto-run AI /crosscheck or /verify ask first. Human approval is forced at handoff/finalize via Panel「核实」or wake-options. Write analysis/HANDOFF.md before academic.`,
34
+ `In academic mode, soft-route only the bundled ARS/Nature/compose allowlist without requiring /skill: from the user; any other skill needs explicit /skill:<name>. Pace with smaller nodes (lit-review how-to → what to show → then execute). If the ask is vague, remind /grill; if the user seems short on ideas, remind /brainstorm. Consume HANDOFF and analysis/results; do not re-choose primary statistical tests—switch to analysis if numbers are missing. Call psyclaw_ars_multi_agent for Stage 3 seats instead of simulating reviewers in-session. Before claiming full text done or export/submit-ready: ask before AI /crosscheck|/verify, then mandatory human verify.`,
35
35
  `Bundled research workflow skills are already in the npm package: ARS (deep-research, academic-paper, academic-paper-reviewer, academic-pipeline), Nature gap-fill (nature-figure, nature-ref-verifier, nature-polishing), academic-paper-strategist/composer, analysis-plan, academic-grill, and the scholar lenses. Never ask the user to install, download, or /plugin install these. To use them: stay in chat/analysis/academic and speak naturally (soft-route), or use /skill:<name> only when an explicit invoke is clearer—do not open an install conversation.`,
36
36
  `Thinking level cycles with Ctrl+Shift+T (not Ctrl+Shift+Tab — many terminals intercept that chord). Session modes still use Shift+Tab.`,
37
37
  `/help opens the Panel「使用速览」page (terminal tip only). /grill stays academic-grill. Optional recommended installs (not workflow core): distill-scholar / distill-journal (https://github.com/Exekiel179/distill-skills) and other research-oriented catalog skills. Bundled psychology lenses: kahneman/gelman/freud-perspective. /crosscheck = process AI review; /verify = substance AI review; human approve is gate+Panel/wake only.`,
@@ -57,11 +57,11 @@ export const PSYCLAW_IDENTITY_PROMPT = [
57
57
  `Verify every reference twice through the DOI: first resolve the correct DOI for each entry (Crossref search by title and authors), then reverse-verify by looking that DOI up in Crossref and confirming that title, authors, year, journal, volume, and pages all match; any DOI that resolves to a different paper is a critical error and must be corrected or the reference dropped, and entries that cannot be verified through a DOI must be explicitly flagged as unverified, never kept silently. Cross-verify references against at least two independent sources, not Crossref alone: for each entry, resolve the DOI in Crossref and cross-check the same DOI in a second source such as Semantic Scholar (api.semanticscholar.org/graph/v1/paper/DOI:<doi>) or OpenAlex (api.openalex.org/works/doi:<doi>); treat a reference as verified only when at least two sources agree on title, authors, and year, record every source consulted in the verification ledger, and never mark a reference verified on the strength of Crossref alone.`,
58
58
  `After the reference list is final, export it next to the paper as references.ris (importable by Zotero, EndNote, and RefWorks) AND as references.md formatted as an APA 7 reference list — one hanging-indent entry per line, never a table. Every entry must follow: Author, A. A., & Author, B. B. (Year). Title of the article. Journal Name, Volume(Issue), Pages. https://doi.org/... ; list 1-20 authors in full (APA 7), use an ellipsis for 21+; never include "et al." inside the author list and never leave empty authors, empty volume/issue, duplicated article numbers, or "e82503-e82503"-style page duplication. Every row must come from the verification ledger, never re-typed from memory, and must match the in-text citations one to one.`,
59
59
  `Every time you add an in-text citation while writing the manuscript, record it through the psyclaw_cite tool with the DOI, a one-line reason for citing it at that position, and the sentence context. The system verifies the DOI against Crossref/OpenAlex, archives the reference in .psyclaw/references.jsonl, and appends the citation use with its reason to .psyclaw/citations.jsonl. Never add a citation without registering its reason: the archive must be able to answer "why is this source cited here" for every citation.`,
60
- `In an initialized project, store lawfully downloaded scholarly PDFs under literature/pdfs/. Automatically download only verified open-access PDFs; never bypass a paywall, login, CAPTCHA, or access control. When no open-access PDF is available, give the user a clickable https://doi.org/<DOI> link and ask them to download the paper through their own lawful access into literature/pdfs/. Before factual or literature-dependent statements enter manuscript prose, verify them against adequate evidence rather than DOI metadata alone. Before a manuscript is finalized or exported, check every cited DOI: all must be verified and every cited paper must have a recognizable local PDF; list the remaining downloads and explain that finalization should wait until they are supplied.`,
60
+ `In an initialized project, store lawfully downloaded scholarly PDFs under literature/pdfs/. Prefer verified open-access PDFs, but always ask the researcher before each OA download; never bypass a paywall, login, CAPTCHA, or access control. When no open-access PDF is available or download fails, explain why and give a clickable https://doi.org/<DOI> link so they can download through their own lawful access into literature/pdfs/. Before factual or literature-dependent statements enter manuscript prose, verify them against adequate evidence rather than DOI metadata alone. Before a manuscript is finalized or exported, check every cited DOI: all must be verified and every cited paper must have a recognizable local PDF; list the remaining downloads and explain that finalization should wait until they are supplied.`,
61
+ `Heavy research stages — literature search and multi-source verification, full-manuscript writing, DOCX export, AI /crosscheck, AI /verify — consume significant tokens and minutes. Never auto-start these blocks. Briefly explain the expected time and scope and ask whether to open that stage. Once the user agrees, proceed without repeated confirmations and use staged or fresh sessions when that reduces cost.`,
61
62
  `Figure generation is a top priority: produce every figure through the bundled nature-figure skill (already shipped; never ask to install it) instead of hand-rolling matplotlib defaults. Prefer richer charts when the data supports them: forest plots with 95% CI for regression/effect sizes, correlation heatmaps, violin + swarm plots for group comparisons, dumbbell/lollipop charts, radar profiles for dimension structures, waterfall plots, and residual diagnostics (QQ plot, fitted-vs-residual) — a bare ax.bar of means is not acceptable when a richer chart fits the data. For mediation/path/SEM diagrams use a dedicated local tool (Python graphviz dot, R semPlot/lavaan, or semopy semplot), never hand-drawn matplotlib boxes. All figures share one style configuration: 300 DPI PNG plus editable SVG (matplotlib savefig(format="svg"); graphviz format="svg") so the reader can edit shapes and text in PowerPoint/Word/Illustrator, consistent palette and fonts, label sizes ≥9pt, value annotations, correct aspect ratios, no clipped labels, no matplotlib default styling. Because you cannot visually inspect images, validate figures programmatically (size, non-blank content, no overflow warnings) and rely on the figure skill's deterministic output, then embed every figure in the report and the DOCX.`,
62
63
  `Figures must contain NO Chinese text — no Chinese titles, axis labels, legends, or notes inside the image (Chinese fonts render inconsistently across systems). Use English labels and English notes inside the figure (e.g. "Pearson r", "*p<0.05"); put the figure title and any Chinese explanation as caption text ABOVE or BELOW the figure in the manuscript (a "**图N ...**" line or a markdown image caption), never as set_title inside the image; map Chinese variable names to short English labels inside the figure and give the Chinese names in the caption. Figure colors must be deliberate and attractive, never matplotlib defaults: categorical series use a high-distinction palette such as Okabe-Ito (#0072B2, #D55E00, #009E73, #CC79A7, #56B4E9, #E69F00, #F0E442, #000000); continuous values use RdBu_r / viridis / coolwarm with a colorbar; add value annotations, significance stars, subtle transparency and error bars/CI whiskers with clear styles; avoid grayish corporate colors as the only palette and avoid clashing raw primaries.`,
63
64
  `Never include a cost or token-usage estimate section (such as "成本估算") in the analysis report, paper, or delivery summary; token usage and cost are tracked in the psyclaw panel's Token usage view instead.`,
64
- `Heavy research stages — literature search and multi-source verification, full-manuscript writing, DOCX export — consume significant tokens and minutes. If the user has not already requested that stage, briefly explain the expected time and scope and ask whether to expand the task. This is ordinary scope confirmation, not a human-decision workflow state. Once the user requests the stage, proceed without repeated confirmations and use staged or fresh sessions when that reduces cost.`,
65
65
  `Tables in the report, manuscript, and DOCX must be three-line tables (三线表): top and bottom rules 1.5pt (OOXML sz=12), the header-row bottom rule 0.5pt (sz=4), and nothing else — no vertical rules, no other inner horizontal rules, no shading. Apply this by customizing the table style in the Pandoc reference document (or with python-docx) to keep only the top, header-bottom, and bottom borders, and after DOCX export run the three-line postprocess script (analysis/scripts/postprocess_docx.py) and verify the borders actually changed. Wide tables (>6 columns or >20 rows) must use 9pt table text and a landscape section when needed; never ship a table that overflows the page. Before exporting any table, replace NaN/Inf with a dash (—) and explain the gap in a footnote; a nan value in a deliverable is a bug.`,
66
66
  `Write the abstract to the target venue's instructions before applying any house default: obey language, word or character limit, required headings, author/address fields, font and spacing, and keyword count. If no venue format is supplied, use one concise paragraph that covers background or objective, methods, principal results, and conclusion; add explicit 目的/方法/结果/结论 headings only when the venue requires a structured abstract. Include only the most decision-relevant numerical results, effect sizes and uncertainty; move data-cleaning inventories and implementation details out of the abstract. Do not force a policy implication when the study does not support one. Use 3-6 standard keywords when keywords are requested.`,
67
67
  `Apply the target citation style consistently. For APA 7 author-date manuscripts, use standard in-text forms rather than improvised hybrids (for example, use “Maharana et al. (2024)” or “(Maharana et al., 2024)” in English and a consistent journal-approved Chinese rendering). Every in-text citation must have exactly one matching reference-list entry and every reference-list entry must be cited in the text. Build entries from verified metadata, preserve the correct work type (journal article, conference paper, dataset, preprint, software), and check author order, year, title, container title, volume, issue, pages or article number, DOI, italics, punctuation, alphabetical ordering, and hanging indent. Never infer missing bibliographic fields.`,
@@ -1 +1 @@
1
- {"version":3,"file":"branding.js","sourceRoot":"","sources":["../../src/branding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AAEtC,+FAA+F;AAC/F,MAAM,CAAC,MAAM,eAAe,GAAW,sBAAsB,EAAE,IAAI,OAAO,CAAC;AAE3E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE7C,iEAAiE;AACjE,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AACtC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,WAAW,YAAY,oCAAoC;IAC3D,kCAAkC,YAAY,6SAA6S;IAC3V,0nBAA0nB;IAC1nB,ybAAyb;IACzb,qKAAqK;IACrK,2NAA2N;IAC3N,sfAAsf;IACtf,+QAA+Q;IAC/Q,6KAA6K;IAC7K,sIAAsI;IACtI,mrBAAmrB;IACnrB,6dAA6d;IAC7d,yiBAAyiB;IACziB,wIAAwI;IACxI,waAAwa;IACxa,qzBAAqzB;IACrzB,mHAAmH;IACnH,4LAA4L;IAC5L,+GAA+G;IAC/G,wUAAwU;IACxU,2gBAA2gB;IAC3gB,8RAA8R;IAC9R,4SAA4S;IAC5S,iSAAiS;IACjS,60BAA60B;IAC70B,qPAAqP;IACrP,iYAAiY;IACjY,usBAAusB;IACvsB,2KAA2K;IAC3K,iXAAiX;IACjX,kSAAkS;IAClS,oVAAoV;IACpV,kMAAkM;IAClM,iaAAia;IACja,0/BAA0/B;IAC1/B,iuBAAiuB;IACjuB,0gBAA0gB;IAC1gB,wwBAAwwB;IACxwB,qxCAAqxC;IACrxC,2gCAA2gC;IAC3gC,6MAA6M;IAC7M,ueAAue;IACve,6yBAA6yB;IAC7yB,wtBAAwtB;IACxtB,+uBAA+uB;IAC/uB,6fAA6f;IAC7f,62BAA62B;IAC72B,gcAAgc;IAChc,+OAA+O;IAC/O,6kBAA6kB;IAC7kB,6uBAA6uB;IAC7uB,8YAA8Y;CAC/Y,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAYb;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAAqB,EACrB,QAAiB,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,GAAG;IAE5D,MAAM,IAAI,GAAG,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;IAClE,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAC;QACnE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,QAAQ,GAAG,MAAiC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAe,EACf,YAAqB;IAErB,MAAM,IAAI,GAAG,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;IAClE,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAC;QACnE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,QAAQ,GAAG,MAAiC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,IAAI,QAAQ,CAAC,oBAAoB,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9G,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AASD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAyD,EAAE;IAClG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,kBAAkB,OAAO,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;IAElF,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IAC/D,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,QAAQ,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAY,CAAC;QAC3E,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,QAAQ,GAAG,MAAiC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,KAAK,kBAAkB,CAAC;IAC3D,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,SAAS,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpH,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"branding.js","sourceRoot":"","sources":["../../src/branding.ts"],"names":[],"mappings":"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"}
@@ -29,14 +29,15 @@ export interface RecordCitationInput {
29
29
  context: string;
30
30
  section?: string;
31
31
  claimId?: string;
32
+ /** When true, download OA PDF after verify. Default false — ask the researcher first. */
33
+ downloadOa?: boolean;
32
34
  }
33
35
  export declare function citationsPath(root: string): Promise<string>;
34
36
  export declare function listCitationUses(root: string): Promise<CitationUseRecord[]>;
35
37
  /**
36
38
  * Record one citation use: verify the DOI (real network unless a verifier is
37
39
  * injected), archive the reference when verifiable, then append the use with
38
- * its reason. The use is always recorded (with `verified` reflecting the
39
- * verification outcome) so the citation reason is never lost.
40
+ * its reason. OA fulltext download runs only when `downloadOa: true`.
40
41
  */
41
42
  export declare function recordCitationUse(root: string, input: RecordCitationInput, verify?: (doi: string) => Promise<DoiVerification>): Promise<{
42
43
  record: CitationUseRecord;
@@ -3,7 +3,7 @@ import { readJsonl, appendJsonlIfMissing } from "../project/jsonl.js";
3
3
  import { assertSafeProjectPath } from "../project/paths.js";
4
4
  import { referenceFromVerification, upsertReference } from "./references.js";
5
5
  import { verifyDoi } from "./doi.js";
6
- import { archiveOpenAccessPdf } from "../literature/archive.js";
6
+ import { archiveOpenAccessPdf, probeOpenAccessPdf } from "../literature/archive.js";
7
7
  export async function citationsPath(root) {
8
8
  return assertSafeProjectPath(root, ".psyclaw/citations.jsonl");
9
9
  }
@@ -13,8 +13,7 @@ export async function listCitationUses(root) {
13
13
  /**
14
14
  * Record one citation use: verify the DOI (real network unless a verifier is
15
15
  * injected), archive the reference when verifiable, then append the use with
16
- * its reason. The use is always recorded (with `verified` reflecting the
17
- * verification outcome) so the citation reason is never lost.
16
+ * its reason. OA fulltext download runs only when `downloadOa: true`.
18
17
  */
19
18
  export async function recordCitationUse(root, input, verify = verifyDoi) {
20
19
  const doi = input.doi.trim();
@@ -28,7 +27,9 @@ export async function recordCitationUse(root, input, verify = verifyDoi) {
28
27
  let fulltext = null;
29
28
  if (reference !== null) {
30
29
  await upsertReference(root, reference);
31
- fulltext = await archiveOpenAccessPdf(root, doi).catch(() => null);
30
+ fulltext = input.downloadOa === true
31
+ ? await archiveOpenAccessPdf(root, doi).catch(() => null)
32
+ : await probeOpenAccessPdf(root, doi).catch(() => null);
32
33
  }
33
34
  const surname = (reference?.authors[0]?.split(/\s+/).at(-1) ?? doi.split("/")[0] ?? doi).slice(0, 40);
34
35
  const citationId = `cite_${sha256Text(`${doi}\u0000${reason}\u0000${context}`).slice(0, 16)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"citations.js","sourceRoot":"","sources":["../../../src/core/citations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"citations.js","sourceRoot":"","sources":["../../../src/core/citations.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type ReferenceFulltextStatus = "downloaded" | "manual-download-required" | "download-failed";
1
+ export type ReferenceFulltextStatus = "downloaded" | "manual-download-required" | "download-failed" | "approval-required";
2
2
  export interface ReferenceFulltextRecord {
3
3
  schemaVersion: "psyclaw/reference-fulltext/v1";
4
4
  doi: string;
@@ -24,6 +24,8 @@ export interface CitationFulltextAudit {
24
24
  }>;
25
25
  }
26
26
  export declare function referencePdfPath(doi: string): string;
27
+ /** Probe OA availability without downloading. Use after the researcher approves download. */
28
+ export declare function probeOpenAccessPdf(root: string, doi: string, fetchFn?: typeof fetch): Promise<ReferenceFulltextRecord>;
27
29
  /** Download only a verified open-access location. Paywalled items stay as a DOI link and an exact local target. */
28
30
  export declare function archiveOpenAccessPdf(root: string, doi: string, fetchFn?: typeof fetch): Promise<ReferenceFulltextRecord>;
29
31
  /** Final manuscript gate: every cited DOI must be metadata-verified and backed by a recognizable local PDF. */
@@ -33,6 +33,47 @@ async function isPdf(root, relativePath) {
33
33
  return false;
34
34
  }
35
35
  }
36
+ /** Probe OA availability without downloading. Use after the researcher approves download. */
37
+ export async function probeOpenAccessPdf(root, doi, fetchFn = fetch) {
38
+ const normalized = normalizedDoi(doi);
39
+ if (!/^10\.\d{4,9}\/\S+$/i.test(normalized))
40
+ throw new Error(`Invalid DOI: ${doi}`);
41
+ const checkedAt = new Date().toISOString();
42
+ const doiUrl = `https://doi.org/${normalized}`;
43
+ const localPath = referencePdfPath(normalized);
44
+ await mkdir(projectPaths(root).literaturePdfs, { recursive: true });
45
+ if (await isPdf(root, localPath)) {
46
+ const record = { schemaVersion: "psyclaw/reference-fulltext/v1", doi: normalized, doiUrl, status: "downloaded", localPath, checkedAt };
47
+ await saveRecord(root, record);
48
+ return record;
49
+ }
50
+ const lookup = await lookupOaPdfUrl(normalized, fetchFn);
51
+ if (!lookup.oaPdfUrl || !/^https?:\/\//i.test(lookup.oaPdfUrl)) {
52
+ const record = {
53
+ schemaVersion: "psyclaw/reference-fulltext/v1",
54
+ doi: normalized,
55
+ doiUrl,
56
+ status: "manual-download-required",
57
+ localPath,
58
+ reason: "No verified open-access PDF was found. Use lawful personal or institutional access; PsyClaw will not bypass a paywall.",
59
+ checkedAt,
60
+ };
61
+ await saveRecord(root, record);
62
+ return record;
63
+ }
64
+ const record = {
65
+ schemaVersion: "psyclaw/reference-fulltext/v1",
66
+ doi: normalized,
67
+ doiUrl,
68
+ status: "approval-required",
69
+ localPath,
70
+ sourceUrl: lookup.oaPdfUrl,
71
+ reason: "Open-access PDF is available. Ask the researcher before downloading.",
72
+ checkedAt,
73
+ };
74
+ await saveRecord(root, record);
75
+ return record;
76
+ }
36
77
  /** Download only a verified open-access location. Paywalled items stay as a DOI link and an exact local target. */
37
78
  export async function archiveOpenAccessPdf(root, doi, fetchFn = fetch) {
38
79
  const normalized = normalizedDoi(doi);
@@ -1 +1 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/literature/archive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/literature/archive.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,21 @@ export interface BootstrapOptions {
7
7
  projectId?: string;
8
8
  now?: string;
9
9
  }
10
+ /** True when the directory already looks like a prior /init (cross-session). */
11
+ export declare function hasCanonicalWorkspace(root: string): Promise<boolean>;
12
+ /**
13
+ * Return the bound project if `.psyclaw/project.json` exists, or recreate the
14
+ * binding when the canonical layout is already present (skip re-/init nag).
15
+ */
16
+ export declare function ensureProjectBinding(options: BootstrapOptions): Promise<{
17
+ project: ResearchProject;
18
+ created: boolean;
19
+ reusedCanonical: boolean;
20
+ }>;
10
21
  /**
11
22
  * Scaffold a clean shared workspace + minimal project.json.
12
23
  * Does not run academic-grill.
24
+ * If the canonical layout already exists, rebinds project.json instead of failing.
13
25
  */
14
26
  export declare function bootstrapProject(options: BootstrapOptions): Promise<ResearchProject>;
15
27
  export declare function writeHandoff(root: string, input: Omit<Handoff, "schemaVersion">): Promise<Handoff>;