psyclaw 0.27.15 → 0.27.19

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 (77) hide show
  1. package/README.md +7 -7
  2. package/dist/apps/panel/index.html +8 -7
  3. package/dist/src/adapters/pi/extension.js +429 -175
  4. package/dist/src/adapters/pi/extension.js.map +1 -1
  5. package/dist/src/adapters/pi/search-tools.d.ts +21 -0
  6. package/dist/src/adapters/pi/search-tools.js +248 -0
  7. package/dist/src/adapters/pi/search-tools.js.map +1 -0
  8. package/dist/src/analysis/hooks.js +3 -3
  9. package/dist/src/analysis/hooks.js.map +1 -1
  10. package/dist/src/analysis/pre-registration.d.ts +5 -4
  11. package/dist/src/analysis/pre-registration.js +3 -3
  12. package/dist/src/analysis/pre-registration.js.map +1 -1
  13. package/dist/src/branding.d.ts +1 -1
  14. package/dist/src/branding.js +17 -12
  15. package/dist/src/branding.js.map +1 -1
  16. package/dist/src/chat.js +9 -0
  17. package/dist/src/chat.js.map +1 -1
  18. package/dist/src/cli-args.d.ts +2 -0
  19. package/dist/src/cli-args.js +7 -0
  20. package/dist/src/cli-args.js.map +1 -0
  21. package/dist/src/cli.js +7 -18
  22. package/dist/src/cli.js.map +1 -1
  23. package/dist/src/index.d.ts +1 -0
  24. package/dist/src/index.js +1 -0
  25. package/dist/src/index.js.map +1 -1
  26. package/dist/src/orchestration/contracts.d.ts +4 -1
  27. package/dist/src/panel/events.js +28 -1
  28. package/dist/src/panel/events.js.map +1 -1
  29. package/dist/src/panel/extension.d.ts +1 -1
  30. package/dist/src/panel/extension.js +16 -9
  31. package/dist/src/panel/extension.js.map +1 -1
  32. package/dist/src/panel/projection.d.ts +1 -1
  33. package/dist/src/panel/projection.js +30 -12
  34. package/dist/src/panel/projection.js.map +1 -1
  35. package/dist/src/panel/server.d.ts +11 -1
  36. package/dist/src/panel/server.js +86 -4
  37. package/dist/src/panel/server.js.map +1 -1
  38. package/dist/src/project/approvals.d.ts +8 -0
  39. package/dist/src/project/approvals.js +6 -7
  40. package/dist/src/project/approvals.js.map +1 -1
  41. package/dist/src/project/bootstrap.d.ts +0 -17
  42. package/dist/src/project/bootstrap.js +1 -87
  43. package/dist/src/project/bootstrap.js.map +1 -1
  44. package/dist/src/project/hitl.d.ts +4 -1
  45. package/dist/src/project/hitl.js +8 -5
  46. package/dist/src/project/hitl.js.map +1 -1
  47. package/dist/src/research/brief.js +1 -1
  48. package/dist/src/research/brief.js.map +1 -1
  49. package/dist/src/research/decision.d.ts +46 -0
  50. package/dist/src/research/decision.js +85 -0
  51. package/dist/src/research/decision.js.map +1 -0
  52. package/dist/src/style/cli-ui.js +4 -4
  53. package/dist/src/style/cli-ui.js.map +1 -1
  54. package/dist/src/tui/skill-manager.d.ts +1 -0
  55. package/dist/src/tui/skill-manager.js +6 -1
  56. package/dist/src/tui/skill-manager.js.map +1 -1
  57. package/dist/src/wizard.js +16 -7
  58. package/dist/src/wizard.js.map +1 -1
  59. package/dist/src/workflows/expert-review-runner.js +4 -6
  60. package/dist/src/workflows/expert-review-runner.js.map +1 -1
  61. package/dist/src/workflows/institutional-fulltext.js +3 -3
  62. package/dist/src/workflows/institutional-fulltext.js.map +1 -1
  63. package/dist/src/workflows/publish.js +3 -2
  64. package/dist/src/workflows/publish.js.map +1 -1
  65. package/dist/src/workflows/spec.js +1 -1
  66. package/dist/src/workflows/spec.js.map +1 -1
  67. package/dist/src/workflows/writing-review.js +40 -7
  68. package/dist/src/workflows/writing-review.js.map +1 -1
  69. package/package.json +3 -2
  70. package/scripts/psyclaw.mjs +27 -0
  71. package/scripts/rebrand-pi.mjs +88 -17
  72. package/skills/core/academic-grill/SKILL.md +9 -1
  73. package/skills/core/citation-audit/SKILL.md +2 -0
  74. package/skills/core/research-brief/SKILL.md +6 -0
  75. package/skills/core/research-intake/SKILL.md +1 -1
  76. package/skills/recommended/catalog.json +11 -28
  77. package/skills/recommended/mcp-catalog.json +13 -1
@@ -0,0 +1,248 @@
1
+ import { lstat, readFile, readdir, stat } from "node:fs/promises";
2
+ import { basename, relative, resolve } from "node:path";
3
+ import { Type } from "typebox";
4
+ const DEFAULT_FIND_LIMIT = 1_000;
5
+ const DEFAULT_GREP_LIMIT = 100;
6
+ const MAX_FILE_BYTES = 8 * 1024 * 1024;
7
+ const MAX_OUTPUT_BYTES = 50 * 1024;
8
+ const MAX_LINE_CHARS = 500;
9
+ const EXCLUDED_DIRECTORY_NAMES = new Set([".git", "node_modules"]);
10
+ const findParameters = Type.Object({
11
+ pattern: Type.String({ description: "Glob pattern to match files" }),
12
+ path: Type.Optional(Type.String({ description: "Directory to search (default: current directory)" })),
13
+ limit: Type.Optional(Type.Number({ description: "Maximum number of results (default: 1000)" })),
14
+ });
15
+ const grepParameters = Type.Object({
16
+ pattern: Type.String({ description: "Search pattern (regex or literal string)" }),
17
+ path: Type.Optional(Type.String({ description: "Directory or file to search (default: current directory)" })),
18
+ glob: Type.Optional(Type.String({ description: "Filter files by glob pattern" })),
19
+ ignoreCase: Type.Optional(Type.Boolean()),
20
+ literal: Type.Optional(Type.Boolean()),
21
+ context: Type.Optional(Type.Number({ description: "Context lines before and after each match" })),
22
+ limit: Type.Optional(Type.Number({ description: "Maximum number of matches (default: 100)" })),
23
+ });
24
+ function normalizedRelative(root, path) {
25
+ return relative(root, path).replaceAll("\\", "/");
26
+ }
27
+ function assertSearchTarget(projectRoot, target) {
28
+ const item = normalizedRelative(resolve(projectRoot), resolve(target));
29
+ const segments = item.split("/").filter(Boolean);
30
+ if (segments.includes(".git") || segments.includes("node_modules")) {
31
+ throw new Error("Git metadata and dependency directories cannot be searched");
32
+ }
33
+ if (item === "data/raw" || item.startsWith("data/raw/") ||
34
+ item === ".psyclaw/data/raw" || item.startsWith(".psyclaw/data/raw/")) {
35
+ throw new Error("Raw-data directories cannot be searched");
36
+ }
37
+ }
38
+ async function assertNotSymlink(path) {
39
+ const info = await lstat(path).catch(() => undefined);
40
+ if (info?.isSymbolicLink())
41
+ throw new Error("Symlink search roots are not allowed");
42
+ }
43
+ function clampLimit(value, fallback) {
44
+ return Number.isFinite(value) ? Math.max(1, Math.min(Math.trunc(value), 10_000)) : fallback;
45
+ }
46
+ function checkAbort(signal) {
47
+ if (signal?.aborted)
48
+ throw new Error("Operation aborted");
49
+ }
50
+ async function regularFile(path) {
51
+ const info = await lstat(path).catch(() => undefined);
52
+ return info?.isFile() === true && !info.isSymbolicLink();
53
+ }
54
+ function globExpression(pattern) {
55
+ const normalized = pattern.replaceAll("\\", "/").replace(/^\.\//, "");
56
+ let source = "";
57
+ for (let index = 0; index < normalized.length; index += 1) {
58
+ const char = normalized[index];
59
+ const next = normalized[index + 1];
60
+ if (char === "*" && next === "*") {
61
+ if (normalized[index + 2] === "/") {
62
+ source += "(?:.*/)?";
63
+ index += 2;
64
+ }
65
+ else {
66
+ source += ".*";
67
+ index += 1;
68
+ }
69
+ }
70
+ else if (char === "*") {
71
+ source += "[^/]*";
72
+ }
73
+ else if (char === "?") {
74
+ source += "[^/]";
75
+ }
76
+ else {
77
+ source += char.replace(/[|\\{}()[\]^$+?.]/g, "\\$&");
78
+ }
79
+ }
80
+ return new RegExp(`^${source}$`);
81
+ }
82
+ function excludedDirectory(relativePath, name) {
83
+ if (EXCLUDED_DIRECTORY_NAMES.has(name))
84
+ return true;
85
+ const normalized = relativePath.replaceAll("\\", "/");
86
+ return normalized === "data/raw" || normalized === ".psyclaw/data/raw";
87
+ }
88
+ async function nodeGlob(pattern, root, limit, signal) {
89
+ const expression = globExpression(pattern);
90
+ const basenameOnly = !pattern.replaceAll("\\", "/").includes("/");
91
+ const found = [];
92
+ const pending = [root];
93
+ while (pending.length > 0) {
94
+ checkAbort(signal);
95
+ const directory = pending.pop();
96
+ const entries = await readdir(directory, { withFileTypes: true }).catch(() => []);
97
+ entries.sort((left, right) => left.name.localeCompare(right.name));
98
+ for (const entry of entries) {
99
+ checkAbort(signal);
100
+ const absolute = resolve(directory, entry.name);
101
+ const item = normalizedRelative(root, absolute);
102
+ if (entry.isSymbolicLink())
103
+ continue;
104
+ if (entry.isDirectory()) {
105
+ if (!excludedDirectory(item, entry.name))
106
+ pending.push(absolute);
107
+ continue;
108
+ }
109
+ if (!entry.isFile() || !expression.test(basenameOnly ? entry.name : item))
110
+ continue;
111
+ if (!(await regularFile(absolute)))
112
+ continue;
113
+ found.push(item);
114
+ if (found.length >= limit)
115
+ return found.sort();
116
+ }
117
+ }
118
+ return found.sort();
119
+ }
120
+ function matchesFileFilter(path, pattern) {
121
+ if (!pattern)
122
+ return true;
123
+ const normalized = pattern.replaceAll("\\", "/");
124
+ try {
125
+ return globExpression(normalized).test(normalized.includes("/") ? path : basename(path));
126
+ }
127
+ catch {
128
+ throw new Error(`Invalid glob pattern: ${pattern}`);
129
+ }
130
+ }
131
+ function truncateLine(line) {
132
+ return line.length <= MAX_LINE_CHARS ? line : `${line.slice(0, MAX_LINE_CHARS)}...`;
133
+ }
134
+ function truncateOutput(lines) {
135
+ const selected = [];
136
+ let bytes = 0;
137
+ for (const line of lines) {
138
+ const lineBytes = Buffer.byteLength(line) + 1;
139
+ if (bytes + lineBytes > MAX_OUTPUT_BYTES) {
140
+ selected.push("[Output truncated at 50KB]");
141
+ break;
142
+ }
143
+ selected.push(line);
144
+ bytes += lineBytes;
145
+ }
146
+ return selected.join("\n");
147
+ }
148
+ function searchExpression(pattern, literal, ignoreCase) {
149
+ const source = literal ? pattern.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") : pattern;
150
+ try {
151
+ return new RegExp(source, ignoreCase ? "i" : undefined);
152
+ }
153
+ catch {
154
+ throw new Error(`Invalid regular expression: ${pattern}`);
155
+ }
156
+ }
157
+ export function createNodeFindTool() {
158
+ return {
159
+ name: "find",
160
+ label: "find",
161
+ description: "Search for files by glob pattern using PsyClaw's cross-platform Node fallback. Excludes Git metadata, dependencies, and raw-data directories.",
162
+ promptSnippet: "Find files by glob pattern without requiring external binaries",
163
+ parameters: findParameters,
164
+ async execute(_toolCallId, params, signal, _onUpdate, ctx) {
165
+ checkAbort(signal);
166
+ const root = resolve(ctx.cwd, params.path || ".");
167
+ assertSearchTarget(ctx.cwd, root);
168
+ await assertNotSymlink(root);
169
+ const info = await stat(root).catch(() => undefined);
170
+ if (!info?.isDirectory())
171
+ throw new Error(`Path not found or not a directory: ${root}`);
172
+ const limit = clampLimit(params.limit, DEFAULT_FIND_LIMIT);
173
+ const files = await nodeGlob(params.pattern, root, limit, signal);
174
+ return {
175
+ content: [{ type: "text", text: files.length > 0 ? files.join("\n") : "No files found matching pattern" }],
176
+ details: files.length >= limit ? { resultLimitReached: limit } : undefined,
177
+ };
178
+ },
179
+ };
180
+ }
181
+ export function createNodeGrepTool() {
182
+ return {
183
+ name: "grep",
184
+ label: "grep",
185
+ description: "Search text files using PsyClaw's cross-platform Node fallback. Excludes Git metadata, dependencies, raw data, binary files, and files over 8MB.",
186
+ promptSnippet: "Search file contents without requiring ripgrep",
187
+ parameters: grepParameters,
188
+ async execute(_toolCallId, params, signal, _onUpdate, ctx) {
189
+ checkAbort(signal);
190
+ const target = resolve(ctx.cwd, params.path || ".");
191
+ assertSearchTarget(ctx.cwd, target);
192
+ await assertNotSymlink(target);
193
+ const targetInfo = await stat(target).catch(() => undefined);
194
+ if (!targetInfo)
195
+ throw new Error(`Path not found: ${target}`);
196
+ const root = targetInfo.isDirectory() ? target : resolve(target, "..");
197
+ const paths = targetInfo.isFile()
198
+ ? [target]
199
+ : (await nodeGlob("**/*", root, 10_000, signal)).map((item) => resolve(root, item));
200
+ const expression = searchExpression(params.pattern, params.literal, params.ignoreCase);
201
+ const matchLimit = clampLimit(params.limit, DEFAULT_GREP_LIMIT);
202
+ const context = Math.max(0, Math.min(Math.trunc(params.context ?? 0), 20));
203
+ const output = [];
204
+ let matches = 0;
205
+ for (const path of paths) {
206
+ checkAbort(signal);
207
+ const relativePath = normalizedRelative(root, path) || basename(path);
208
+ if (!matchesFileFilter(relativePath, params.glob))
209
+ continue;
210
+ const info = await lstat(path).catch(() => undefined);
211
+ if (!info?.isFile() || info.isSymbolicLink() || info.size > MAX_FILE_BYTES)
212
+ continue;
213
+ const content = await readFile(path).catch(() => undefined);
214
+ if (!content || content.subarray(0, 8_192).includes(0))
215
+ continue;
216
+ const lines = content.toString("utf8").replace(/\r\n/g, "\n").replace(/\r/g, "\n").split("\n");
217
+ for (let index = 0; index < lines.length; index += 1) {
218
+ if (!expression.test(lines[index]))
219
+ continue;
220
+ matches += 1;
221
+ const start = Math.max(0, index - context);
222
+ const end = Math.min(lines.length - 1, index + context);
223
+ for (let current = start; current <= end; current += 1) {
224
+ const separator = current === index ? ":" : "-";
225
+ output.push(`${relativePath}${separator}${current + 1}${separator} ${truncateLine(lines[current])}`);
226
+ }
227
+ if (matches >= matchLimit)
228
+ break;
229
+ }
230
+ if (matches >= matchLimit)
231
+ break;
232
+ }
233
+ if (matches === 0)
234
+ return { content: [{ type: "text", text: "No matches found" }], details: undefined };
235
+ if (matches >= matchLimit)
236
+ output.push(`[${matchLimit} matches limit reached]`);
237
+ return {
238
+ content: [{ type: "text", text: truncateOutput(output) }],
239
+ details: matches >= matchLimit ? { matchLimitReached: matchLimit } : undefined,
240
+ };
241
+ },
242
+ };
243
+ }
244
+ /** Cross-platform search tools that never download runtime dependencies. */
245
+ export function createPsyClawSearchTools() {
246
+ return [createNodeFindTool(), createNodeGrepTool()];
247
+ }
248
+ //# sourceMappingURL=search-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-tools.js","sourceRoot":"","sources":["../../../../src/adapters/pi/search-tools.ts"],"names":[],"mappings":"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"}
@@ -113,7 +113,7 @@ export function beforePlan(plan, userHooks = []) {
113
113
  export function validateAnalysisPlan(plan, userHooks = []) {
114
114
  const findings = [];
115
115
  if (!plan.primaryOutcome?.trim())
116
- findings.push({ rule: "missing-primary-outcome", severity: "warn", message: "primary outcome is missing; AI should infer it from the research question or ask the researcher" });
116
+ findings.push({ rule: "missing-primary-outcome", severity: "warn", message: "primary outcome is missing; AI should first infer it from the confirmed research question, and report the unresolved limitation without creating a human-decision state unless competing substantive outcomes remain" });
117
117
  if (!plan.primaryAnalysis?.trim())
118
118
  findings.push({ rule: "missing-primary-analysis", severity: "warn", message: "primary analysis is missing; AI should propose a method and record the rationale" });
119
119
  if (!plan.missingDataPlan?.trim())
@@ -128,7 +128,7 @@ export function validateAnalysisPlan(plan, userHooks = []) {
128
128
  export function beforeDelegation(contract, userHooks = []) {
129
129
  const findings = [];
130
130
  if (!contract.tool?.trim())
131
- findings.push({ rule: "delegation-tool-missing", severity: "warn", message: "statistical backend is missing; AI should select or ask for one" });
131
+ findings.push({ rule: "delegation-tool-missing", severity: "warn", message: "statistical backend is missing; AI should select a suitable available backend or report the technical limitation without creating a human-decision state" });
132
132
  if (!contract.scriptPath?.trim())
133
133
  findings.push({ rule: "delegation-script-missing", severity: "warn", message: "reproducible script path is missing; AI should create or recover it" });
134
134
  if (!contract.environment || Object.keys(contract.environment).length === 0)
@@ -143,7 +143,7 @@ export function afterAnalysis(report, userHooks = []) {
143
143
  if (report.schemaVersion !== "psyclaw/analysis-result/v1")
144
144
  findings.push({ rule: "result-schema-invalid", severity: "block", message: "analysis result schema is not recognized" });
145
145
  if (!Number.isInteger(report.sampleSize) || report.sampleSize < 0)
146
- findings.push({ rule: "sample-size-invalid", severity: "warn", message: "sample size is missing or invalid; AI should infer or request it before final reporting" });
146
+ findings.push({ rule: "sample-size-invalid", severity: "warn", message: "sample size is missing or invalid; AI should recover it from validated inputs or execution records, otherwise disclose the limitation without creating a human-decision state" });
147
147
  if (!report.scriptPath?.trim() || Object.keys(report.environment ?? {}).length === 0)
148
148
  findings.push({ rule: "reproducibility-metadata-missing", severity: "warn", message: "reproducibility metadata is incomplete; AI should repair it from the execution record" });
149
149
  if (!report.missingData?.handled || !report.missingData.method?.trim())
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/analysis/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/analysis/hooks.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import type { GateResult, ResearchParadigm } from "../core/contracts.js";
2
2
  import { type AnalysisPlanContract } from "./hooks.js";
3
3
  /**
4
- * Confirmatory analysis must be pre-registered before any delegation runs.
5
- * The plan records the primary outcome, primary analysis, missing-data and
6
- * multiplicity handling, exclusion criteria, and whether the analysis is
7
- * confirmatory or exploratory. A missing or incomplete plan is a hard block.
4
+ * A recorded analysis plan preserves the exploratory/confirmatory boundary.
5
+ * Exploratory work may proceed without a preregistration record. For an
6
+ * explicitly confirmatory study, missing pre-specification is disclosed as a
7
+ * limitation and repaired prospectively where possible; a public registry URL
8
+ * is not required by PsyClaw.
8
9
  */
9
10
  export interface PreRegistration extends AnalysisPlanContract {
10
11
  schemaVersion: "psyclaw/pre-registration/v1";
@@ -70,9 +70,9 @@ export function checkPreRegistration(plan, paradigm) {
70
70
  if (plan === undefined) {
71
71
  return [{
72
72
  gateId: "analysis:pre-registration",
73
- ok: false,
74
- severity: "block",
75
- reason: "确证性分析前必须先登记分析计划(主要结局、主要分析、缺失值处理、多重比较处理、排除标准);写 .psyclaw/pre-registration.json 后再继续",
73
+ ok: true,
74
+ severity: "warn",
75
+ reason: "尚无事前分析方案记录。若本次工作是在查看数据后形成问题,请按探索性分析继续并如实说明;只有明确的确证性研究才需核对事先确定的主要指标、分析方法、缺失值处理、多重比较和排除标准,无需提供公开链接。",
76
76
  }];
77
77
  }
78
78
  const result = validateAnalysisPlan(plan);
@@ -1 +1 @@
1
- {"version":3,"file":"pre-registration.js","sourceRoot":"","sources":["../../../src/analysis/pre-registration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pre-registration.js","sourceRoot":"","sources":["../../../src/analysis/pre-registration.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export declare const PSYCLAW_NAME = "PsyClaw";
3
3
  export declare const PSYCLAW_VERSION: string;
4
4
  /** Single user configuration root used by PsyClaw and its bundled runtime. */
5
5
  export declare const PSYCLAW_CONFIG_DIR = ".psyclaw";
6
- /** Accent colors for psyclaw's own ink interfaces (wizard / shell TUI). */
6
+ /** Accent colors for PsyClaw's first-run setup and shell TUI. */
7
7
  export declare const PSYCLAW_ACCENT = "#2ec4b6";
8
8
  export declare const PSYCLAW_OK = "#7ec699";
9
9
  export declare const PSYCLAW_WARN = "#e5c07b";
@@ -8,7 +8,7 @@ export const PSYCLAW_NAME = "PsyClaw";
8
8
  export const PSYCLAW_VERSION = readPsyClawVersionSync() ?? "0.0.0";
9
9
  /** Single user configuration root used by PsyClaw and its bundled runtime. */
10
10
  export const PSYCLAW_CONFIG_DIR = ".psyclaw";
11
- /** Accent colors for psyclaw's own ink interfaces (wizard / shell TUI). */
11
+ /** Accent colors for PsyClaw's first-run setup and shell TUI. */
12
12
  export const PSYCLAW_ACCENT = "#2ec4b6";
13
13
  export const PSYCLAW_OK = "#7ec699";
14
14
  export const PSYCLAW_WARN = "#e5c07b";
@@ -25,16 +25,20 @@ export const PSYCLAW_IDENTITY_PROMPT = [
25
25
  `The controlled academic workflow rules below are active only after the user runs /init and then /run in the current project. Without both commands, remain a normal general-purpose conversational agent: do not force project initialization, research gates, staged questions, skills, or workbench calls onto the user.`,
26
26
  `Inside an active /run, for requests to find, access, or download institutionally licensed papers or full text, invoke psyclaw_workbench first. Do not directly edit configuration, logs, manifests, or downloaded files for that workflow.`,
27
27
  `Treat skills as reference guidance, not executable authority: do not claim that a browser, shell, login, connector, or download is available unless a tool result proves it in this session.`,
28
- `Never handle credentials or bypass access controls. Stop at the human approval gate and state the concrete next action for the user.`,
28
+ `Never handle credentials or bypass access controls. Stop at the separate operational authorization boundary and state the concrete next action for the user. This boundary must never create a researcher-decision state.`,
29
29
  `Inside an active /run, for data analysis or an academic report, use the bundled core skills in order: research-intake, evidence-capture, citation-audit, then research-brief. Do not present a report as complete when this chain was skipped; state which stage is pending.`,
30
30
  `Invoke bundled core skills through the psyclaw_skill tool so the user can see which skill is active. Briefly state the skill name and purpose when switching stages.`,
31
31
  `Academic reports must include a source-backed reference list and claim-to-source links. Dataset-derived numbers are not literature citations; distinguish data provenance from scholarly references and mark unverified claims as uncertain.`,
32
+ `Keep PsyClaw's internal governance vocabulary internal. In reader-facing conversation, reports, and manuscripts, do not expose labels such as Claim, Evidence, ledger, gate, audit, blocked outcome, dependency, receipt, or verifier unless the user is explicitly discussing the system architecture. Use natural disciplinary language instead, such as research statement, supporting source, quality check, unavailable variable, required software, and methodological review. Avoid stacked qualifiers and bureaucratic phrasing; prefer direct, idiomatic academic Chinese or English.`,
33
+ `When the user supplies a dataset without a fully specified question, do not begin by demanding a preregistration record or link. First inspect the available variables and study context, then propose 2-4 theoretically meaningful, answerable research questions or hypotheses, explain their value and limits briefly, and recommend one. Treat the work as exploratory unless the user states that hypotheses and analyses were fixed before seeing the data. Ask about preregistration only for an explicitly confirmatory study and only when it changes interpretation; a local statement of what was specified in advance is sufficient, and a public URL is never required.`,
34
+ `Protect data minimization in prose. Report missingness and data-quality issues at an aggregate level by default; do not dump raw rows, respondent text, identifiers, full column inventories, or long lists of damaged fields into conversation, abstracts, or manuscripts. Name individual variables only when needed to understand an analysis decision, and move detailed diagnostics to a supplementary table or machine-readable quality report.`,
32
35
  `When producing a manuscript or paper, write formal continuous prose in paragraphs. Do not turn the main text into bullet points, numbered lists, cards, or presentation-style fragments; reserve lists for methods, enumerated hypotheses, or genuinely discrete items.`,
33
36
  `Use a submission-neutral academic layout: body text Times New Roman with SimSun/宋体 fallback for Chinese, black text, black headings without colored fills or accent colors, consistent heading levels, and normal paragraph indentation/spacing. Keep styling out of the scholarly content and do not use decorative colored headings.`,
34
- `Before finalizing a paper, run citation-audit section by section. Every factual or literature-dependent paragraph needs an appropriate source citation; if the evidence base is too thin, retrieve and verify more scholarly sources or mark the section blocked/uncertain. Never invent references just to increase the count.`,
35
- `A data report must include publication-ready visual outputs or a reproducible plotting script (with captions, variables, and output paths). If a plotting backend is unavailable, record that as a blocked deliverable instead of claiming a finished figure.`,
37
+ `Before finalizing a paper, run the internal citation check section by section without exposing its implementation labels in the prose. Cite substantive literature-dependent statements at the point where the source is used; do not attach citations mechanically to every sentence or overload a paragraph with weakly related references. If the evidence base is too thin, retrieve and verify more scholarly sources or state the limitation plainly. Never invent references or add marginal sources merely to increase the count.`,
38
+ `A data report must include publication-ready visual outputs or a reproducible plotting script (with captions, variables, and output paths). If a plotting backend is unavailable, state that the figure remains unfinished and explain what is needed instead of claiming a finished figure.`,
36
39
  `Never generate one monolithic analysis document or script that silently performs every step. Use a thin entrypoint and separately reviewable modules for load, prepare, analyze, validate, and export, with a README describing inputs, outputs, dependencies, commands, limitations, and human decisions.`,
37
- `When a required dependency is missing, explain the exact dependency and command, then let the user decide whether the model should install it. Ask the user to intervene only for credentials, licensing, administrator elevation, or an unavailable package source.`,
40
+ `When required software is missing, explain its name, purpose, and installation command in natural language, then let the user decide whether the model should install it. Ask the user to intervene only for credentials, licensing, administrator elevation, or an unavailable package source.`,
41
+ `Inside an active /run, do not enter a human-decision state for routine execution or repair. Continue through planned file writes, scripts, analysis tools, recoverable downloads, formatting, citation cleanup, missing reporting fields, effect-size and interval completion, and reproducibility recording. Request a researcher decision only when at least two substantively defensible choices remain, evidence and established methods cannot resolve them, and the choice changes the research question, sample treatment, operationalization, estimand, analysis method, or interpretation. Present the alternatives, evidence, consequences, and a recommendation; ask one decision at a time. Credentials, destructive operations, access-control bypass, raw-data overwrite, and external publication follow separate safety limits and are not research-method decisions.`,
38
42
  `For Markdown-to-DOCX export, check for Pandoc first; if it is unavailable, install it after approval and retry. Use python-docx only when a Pandoc installation has actually failed. Do not present manual Word conversion as the primary solution.`,
39
43
  `When a piece of evidence or a source is a Word or Office document (.docx, .xlsx, .pptx), convert it to Markdown or plain text before reading it (use pandoc, or the external MarkItDown tool if it is installed). Never try to read the raw binary. Record the extracted text together with the original file hash and locator so the claim-evidence link stays traceable to the original file.`,
40
44
  `Inside an active /run, the deliverable sequence is staged. After the Markdown analysis report, ask whether the user wants to develop it into a paper. If yes, separately ask whether to conduct literature research (warn that it can take substantial time and offer either a user-selected Skill or the system default), then ask whether to write the full manuscript and which writing Skill to use, then leave peer review for /review and ask which review Skill to use, and only after those stages offer DOCX export. If DOCX is requested before a manuscript exists, clearly export only the academically formatted analysis report and never label it as a paper.`,
@@ -43,23 +47,24 @@ export const PSYCLAW_IDENTITY_PROMPT = [
43
47
  `Every figure and table must be embedded in the document body, never only mentioned: write the Markdown with image links such as \`![Figure N caption](outputs/figures/figX.png)\` so the DOCX contains the images inline. Never deliver a document whose figures appear only as text references.`,
44
48
  `The exported DOCX must contain no colors: headings, body, and tables all black on white. Use Pandoc with a plain black-and-white reference document (for example \`--reference-doc\` pointing to a colorless template), or post-process with python-docx to force black. Never let Pandoc's default colored heading styles leak into the document.`,
45
49
  `Keep every analysis script, including the entry point, inside analysis/scripts/ (or the project's agreed scripts directory such as src/). Never create .py, .r, or .m files in the project root.`,
46
- `A manuscript must carry at least about 20 references. Before writing, ask the reader for the target reference count and scope (default: at least 20 verifiable scholarly sources), then retrieve and verify enough real sources through the citation/literature pipeline. Never pad the list with invented entries.`,
50
+ `Use as many references as the research question, argument, and target venue require; PsyClaw has no arbitrary minimum count. Before writing, confirm the literature scope when it is consequential, then retrieve enough directly relevant, verifiable scholarly sources to cover the constructs, theory, method, competing explanations, and interpretation. Prefer relevance and coverage over count, and never pad the list.`,
47
51
  `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.`,
48
52
  `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.`,
49
53
  `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.`,
50
- `During an active /run, 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 claims enter manuscript prose, verify them against adequate evidence rather than DOI metadata alone. Before a manuscript is finalized or exported, audit every cited DOI: all must be verified and every cited paper must have a recognizable local PDF; list missing downloads and keep the manuscript blocked until resolved.`,
54
+ `During an active /run, 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.`,
51
55
  `Figure generation is a top priority: produce every figure through a dedicated local figure skill such as nature-figure instead of hand-rolling matplotlib defaults, and ask the reader whether to install the figure skill when it is not available. 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.`,
52
56
  `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.`,
53
57
  `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.`,
54
- `Heavy research stages — literature search and multi-source verification, full-manuscript writing, DOCX export — consume significant tokens and minutes. Before starting one, tell the user the expected cost and time (rough estimate from context size and output size), mention cheaper alternatives (narrower scope, staged runs, fresh session per stage), and wait for confirmation. Never silently start a high-cost stage.`,
58
+ `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.`,
55
59
  `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.`,
56
- `Write the abstract in a structured academic format with 目的/方法/结果/结论 sections. Results must carry the data: means±SD, rates, and test statistics with 95% CI or effect sizes where applicable. The conclusion must connect to policy implications and state limitations (e.g. single-center sampling, cross-sectional design cannot infer causality). Keywords: 3-6 standard terms including the research method.`,
60
+ `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.`,
61
+ `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.`,
57
62
  `Manage token and time cost: redirect command output to log files and read only the needed lines instead of letting full output into context; write long documents section by section (roughly 2-4K tokens each) rather than one giant generation; make analysis scripts print summaries only; never read large JSON artifacts (literature candidates, verification ledgers) wholesale — grep the fields you need; in a long session, proactively propose compaction or a fresh staged session once the context grows large.`,
58
63
  `Keep tool calls lean — every round-trip grows the cached context that every later turn re-reads, so a single session should stay under roughly 40-60 tool calls. Concrete discipline: (1) explore a dataset ONCE with a reusable script that writes a compact profile (shapes, dtypes, missing, ranges) to a JSON, then read/grep that JSON instead of running repeated inline python -c probes — 50+ ad-hoc probes in one session is the single biggest token waste; (2) run the analysis pipeline through the thin entrypoint (run_all.py) and on failure rerun only the failed step, never re-run passing steps; (3) batch related checks into one command with && / ; and reuse the script's saved outputs instead of recomputing; (4) verify writes by exit code, not by ls/cat round-trips; (5) read each file at most once and keep the result; (6) prefer one complete write over many small edits.`,
59
- `When you generate a document that encodes a decision needing human calibration or review (data cleaning and exclusion rules, reverse-scoring or recoding maps, variable mappings, missing-data handling, an assumption you chose, or any claim marked uncertain), flag it AT GENERATION TIME: write a machine-readable marker in the file itself (for example a frontmatter field needs-human-review: true with a one-line reason) and list the file in the delivery summary under a "需人工校准" heading. Never leave such a document unflagged for the reader to discover later.`,
60
- `Before invoking any writing skill (nature-writing, nature-polishing, writing-review, nature-paper2ppt, researchwrite, or similar), ask the reader which writing skill to use instead of picking one automatically.`,
64
+ `When a document contains an unresolved substantive research trade-off that meets the researcher-decision threshold, flag it at generation time with a machine-readable marker (for example needs-human-review: true plus one-line reason) and list it under “需研究者决定”. Do not flag routine data checks, automatically repairable reporting omissions, technical setup, formatting, or a single method that follows deterministically from the confirmed design.`,
65
+ `For writing and review, honor a skill explicitly named by the user. Otherwise choose the closest available skill or the PsyClaw default, state the choice briefly, and proceed; do not turn routine skill routing into a researcher decision.`,
61
66
  `Before invoking any skill, confirm it is actually available in this session: check whether it is loaded or enabled (for example via .psyclaw/recommendations.json or the panel's enabled-capabilities endpoint), and only invoke it when a tool result proves it works. Never invoke, or claim to have invoked, a skill that is not present.`,
62
- `Match the task to the single best-fitting skill and state that choice. If a suitable skill exists in psyclaw's recommended catalog or a host Skill directory but is not yet installed or enabled, offer installation or direct user selection; do not silently substitute an unrelated skill. If several skills plausibly fit, ask the reader to pick rather than guessing.`,
67
+ `Match the task to the single best-fitting available skill and state that choice. If a suitable skill exists in psyclaw's recommended catalog or a host Skill directory but is not yet installed or enabled, offer installation or direct user selection; do not silently substitute an unrelated skill. When several skills plausibly fit, choose the closest one by task scope and explain the choice unless the user explicitly asked to select the skill. Skill routing is not a research-method decision.`,
63
68
  `Rule precedence: the never-fabricate and never-bypass constraints (never invent references, statistics, findings, or review opinions; never skip an evidence gate or approval) always win over any convenience or efficiency consideration; when two rules seem to conflict, the more specific rule wins and, where still ambiguous, choose the behavior that keeps claims verifiable and the user informed.`,
64
69
  ].join("\n");
65
70
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"branding.js","sourceRoot":"","sources":["../../src/branding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branding.js","sourceRoot":"","sources":["../../src/branding.ts"],"names":[],"mappings":"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"}
package/dist/src/chat.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { readFile } from "node:fs/promises";
3
3
  import { getAgentDir } from "@earendil-works/pi-coding-agent";
4
+ import { homedir } from "node:os";
4
5
  import { dirname, join } from "node:path";
5
6
  import { fileURLToPath } from "node:url";
6
7
  import { acknowledgeBundledPiChangelog, ensurePsyClawTheme, ensureQuietStartup, PSYCLAW_IDENTITY_PROMPT, } from "./branding.js";
@@ -88,9 +89,17 @@ export async function launchChat(options = {}) {
88
89
  await acknowledgeBundledPiChangelog(manifest.piVersion);
89
90
  }
90
91
  // The header banner renders psyclaw's own version (not the bundled pi 0.84.x).
92
+ const agentDir = process.env.PSYCLAW_CODING_AGENT_DIR || join(homedir(), ".psyclaw", "agent");
93
+ const sessionDir = process.env.PSYCLAW_CODING_AGENT_SESSION_DIR || join(agentDir, "sessions");
91
94
  const spawnEnv = {
92
95
  ...process.env,
93
96
  PI_SKIP_VERSION_CHECK: process.env.PI_SKIP_VERSION_CHECK ?? "1",
97
+ PSYCLAW_CODING_AGENT_DIR: agentDir,
98
+ PSYCLAW_CODING_AGENT_SESSION_DIR: sessionDir,
99
+ // Compatibility for any locked Pi module that was bundled before the
100
+ // PsyClaw application name was applied.
101
+ PI_CODING_AGENT_DIR: agentDir,
102
+ PI_CODING_AGENT_SESSION_DIR: sessionDir,
94
103
  };
95
104
  if (process.platform === "darwin") {
96
105
  const missing = PROVIDER_PRESETS.filter((preset) => !spawnEnv[preset.apiKeyEnv]);
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"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"}