psyclaw 0.28.1 → 0.28.3

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 (135) hide show
  1. package/README.md +5 -5
  2. package/agents/recommended/catalog.json +1 -1
  3. package/dist/src/adapters/pi/extension.js +79 -25
  4. package/dist/src/adapters/pi/extension.js.map +1 -1
  5. package/dist/src/ars/keybindings.d.ts +13 -0
  6. package/dist/src/ars/keybindings.js +50 -0
  7. package/dist/src/ars/keybindings.js.map +1 -0
  8. package/dist/src/ars/mode-editor.d.ts +25 -0
  9. package/dist/src/ars/mode-editor.js +78 -0
  10. package/dist/src/ars/mode-editor.js.map +1 -0
  11. package/dist/src/ars/profile.d.ts +4 -1
  12. package/dist/src/ars/profile.js +23 -6
  13. package/dist/src/ars/profile.js.map +1 -1
  14. package/dist/src/chat.js +3 -0
  15. package/dist/src/chat.js.map +1 -1
  16. package/dist/src/panel/server.js +1 -1
  17. package/dist/src/panel/server.js.map +1 -1
  18. package/package.json +10 -3
  19. package/vendor/academic-paper-skills/LICENSE +21 -0
  20. package/vendor/academic-paper-skills/NOTICE.md +7 -0
  21. package/vendor/academic-paper-skills/PSYCLAW_SOURCE.json +14 -0
  22. package/vendor/academic-paper-skills/academic-paper-composer/SKILL.md +840 -0
  23. package/vendor/academic-paper-skills/academic-paper-composer/references/section_guides.md +675 -0
  24. package/vendor/academic-paper-skills/academic-paper-composer/references/writing_standards.md +629 -0
  25. package/vendor/academic-paper-skills/academic-paper-composer/scripts/chapter_quality_check.py +470 -0
  26. package/vendor/academic-paper-skills/academic-paper-composer/scripts/final_evaluation.py +550 -0
  27. package/vendor/academic-paper-skills/academic-paper-strategist/SKILL.md +670 -0
  28. package/vendor/academic-paper-skills/academic-paper-strategist/references/quality_standards.md +336 -0
  29. package/vendor/academic-paper-skills/academic-paper-strategist/references/search_strategy.md +459 -0
  30. package/vendor/academic-paper-skills/academic-paper-strategist/scripts/evaluate_samples.py +300 -0
  31. package/vendor/academic-paper-skills/academic-paper-strategist/scripts/gap_analysis.py +399 -0
  32. package/vendor/ars/pi/wrapper.js +9 -0
  33. package/vendor/nature-skills/LICENSE +201 -0
  34. package/vendor/nature-skills/NOTICE.md +7 -0
  35. package/vendor/nature-skills/PSYCLAW_SOURCE.json +19 -0
  36. package/vendor/nature-skills/skills/nature-figure/README.md +107 -0
  37. package/vendor/nature-skills/skills/nature-figure/README_EN.md +107 -0
  38. package/vendor/nature-skills/skills/nature-figure/SKILL.md +154 -0
  39. package/vendor/nature-skills/skills/nature-figure/agents/openai.yaml +4 -0
  40. package/vendor/nature-skills/skills/nature-figure/evals/evals.json +325 -0
  41. package/vendor/nature-skills/skills/nature-figure/manifest.yaml +103 -0
  42. package/vendor/nature-skills/skills/nature-figure/references/ai-graphical-abstract-workflow.md +129 -0
  43. package/vendor/nature-skills/skills/nature-figure/references/api.md +576 -0
  44. package/vendor/nature-skills/skills/nature-figure/references/asset-adaptation.md +72 -0
  45. package/vendor/nature-skills/skills/nature-figure/references/backend-selection.md +118 -0
  46. package/vendor/nature-skills/skills/nature-figure/references/chart-types.md +348 -0
  47. package/vendor/nature-skills/skills/nature-figure/references/common-patterns.md +371 -0
  48. package/vendor/nature-skills/skills/nature-figure/references/demos.md +58 -0
  49. package/vendor/nature-skills/skills/nature-figure/references/design-theory.md +467 -0
  50. package/vendor/nature-skills/skills/nature-figure/references/figure-contract.md +122 -0
  51. package/vendor/nature-skills/skills/nature-figure/references/figure-legend-conventions.md +90 -0
  52. package/vendor/nature-skills/skills/nature-figure/references/multipanel-evidence-architecture.md +268 -0
  53. package/vendor/nature-skills/skills/nature-figure/references/nature-2026-observations.md +124 -0
  54. package/vendor/nature-skills/skills/nature-figure/references/nature-article-requirements.md +149 -0
  55. package/vendor/nature-skills/skills/nature-figure/references/openrouter-image-generation.md +141 -0
  56. package/vendor/nature-skills/skills/nature-figure/references/qa-contract.md +344 -0
  57. package/vendor/nature-skills/skills/nature-figure/references/r-template-index.md +66 -0
  58. package/vendor/nature-skills/skills/nature-figure/references/r-workflow.md +234 -0
  59. package/vendor/nature-skills/skills/nature-figure/references/template-catalog.md +33 -0
  60. package/vendor/nature-skills/skills/nature-figure/references/tutorials.md +260 -0
  61. package/vendor/nature-skills/skills/nature-figure/requirements.txt +1 -0
  62. package/vendor/nature-skills/skills/nature-figure/scripts/audit_figure_collisions.py +742 -0
  63. package/vendor/nature-skills/skills/nature-figure/scripts/audit_panel_alignment.py +933 -0
  64. package/vendor/nature-skills/skills/nature-figure/scripts/audit_pdf_text.py +152 -0
  65. package/vendor/nature-skills/skills/nature-figure/scripts/figure_safety.py +50 -0
  66. package/vendor/nature-skills/skills/nature-figure/scripts/generate_openrouter_schematic.py +260 -0
  67. package/vendor/nature-skills/skills/nature-figure/scripts/nature_figure_backend.py +93 -0
  68. package/vendor/nature-skills/skills/nature-figure/scripts/panel_alignment.R +188 -0
  69. package/vendor/nature-skills/skills/nature-figure/scripts/plot_templates.py +604 -0
  70. package/vendor/nature-skills/skills/nature-figure/scripts/validate_figure.py +835 -0
  71. package/vendor/nature-skills/skills/nature-figure/static/core/contract.md +55 -0
  72. package/vendor/nature-skills/skills/nature-figure/static/core/stance.md +41 -0
  73. package/vendor/nature-skills/skills/nature-figure/static/fragments/backend/python.md +56 -0
  74. package/vendor/nature-skills/skills/nature-figure/static/fragments/backend/r.md +63 -0
  75. package/vendor/nature-skills/skills/nature-figure/tests/test_figure_safety.py +209 -0
  76. package/vendor/nature-skills/skills/nature-polishing/README.md +58 -0
  77. package/vendor/nature-skills/skills/nature-polishing/README_EN.md +58 -0
  78. package/vendor/nature-skills/skills/nature-polishing/SKILL.md +111 -0
  79. package/vendor/nature-skills/skills/nature-polishing/agents/openai.yaml +4 -0
  80. package/vendor/nature-skills/skills/nature-polishing/manifest.yaml +101 -0
  81. package/vendor/nature-skills/skills/nature-polishing/references/latex-layout.md +211 -0
  82. package/vendor/nature-skills/skills/nature-polishing/references/nat-comms-2025-diction.md +73 -0
  83. package/vendor/nature-skills/skills/nature-polishing/references/phrasebank-playbook.md +175 -0
  84. package/vendor/nature-skills/skills/nature-polishing/references/published-article-patterns.md +126 -0
  85. package/vendor/nature-skills/skills/nature-polishing/references/section-moves.md +252 -0
  86. package/vendor/nature-skills/skills/nature-polishing/references/style-guardrails.md +94 -0
  87. package/vendor/nature-skills/skills/nature-polishing/references/writing-strategy.md +160 -0
  88. package/vendor/nature-skills/skills/nature-polishing/static/core/failure-modes.md +29 -0
  89. package/vendor/nature-skills/skills/nature-polishing/static/core/output-format.md +21 -0
  90. package/vendor/nature-skills/skills/nature-polishing/static/core/stance.md +26 -0
  91. package/vendor/nature-skills/skills/nature-polishing/static/fragments/journal/generic.md +17 -0
  92. package/vendor/nature-skills/skills/nature-polishing/static/fragments/journal/nat-comms.md +38 -0
  93. package/vendor/nature-skills/skills/nature-polishing/static/fragments/journal/nat-mach-intell.md +102 -0
  94. package/vendor/nature-skills/skills/nature-polishing/static/fragments/journal/nature.md +19 -0
  95. package/vendor/nature-skills/skills/nature-polishing/static/fragments/language/en.md +19 -0
  96. package/vendor/nature-skills/skills/nature-polishing/static/fragments/language/zh-to-en.md +19 -0
  97. package/vendor/nature-skills/skills/nature-polishing/static/fragments/paper_type/algorithmic.md +18 -0
  98. package/vendor/nature-skills/skills/nature-polishing/static/fragments/paper_type/hypothesis.md +17 -0
  99. package/vendor/nature-skills/skills/nature-polishing/static/fragments/paper_type/methods.md +35 -0
  100. package/vendor/nature-skills/skills/nature-polishing/static/fragments/paper_type/research.md +29 -0
  101. package/vendor/nature-skills/skills/nature-polishing/static/fragments/paper_type/review.md +17 -0
  102. package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/abstract.md +26 -0
  103. package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/conclusion.md +15 -0
  104. package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/discussion.md +48 -0
  105. package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/intro.md +33 -0
  106. package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/methods.md +26 -0
  107. package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/results.md +61 -0
  108. package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/title.md +17 -0
  109. package/vendor/nature-skills/skills/nature-ref-verifier/README.md +44 -0
  110. package/vendor/nature-skills/skills/nature-ref-verifier/README_EN.md +44 -0
  111. package/vendor/nature-skills/skills/nature-ref-verifier/SKILL.md +196 -0
  112. package/vendor/nature-skills/skills/nature-ref-verifier/agents/openai.yaml +4 -0
  113. package/vendor/nature-skills/skills/nature-ref-verifier/manifest.yaml +19 -0
  114. package/vendor/nature-skills/skills/nature-ref-verifier/references/common-patterns.md +96 -0
  115. package/vendor/nature-skills/skills/nature-shared/README.md +43 -0
  116. package/vendor/nature-skills/skills/nature-shared/README_EN.md +43 -0
  117. package/vendor/nature-skills/skills/nature-shared/SKILL.md +33 -0
  118. package/vendor/nature-skills/skills/nature-shared/agents/openai.yaml +6 -0
  119. package/vendor/nature-skills/skills/nature-shared/core/consistency-sweep.md +122 -0
  120. package/vendor/nature-skills/skills/nature-shared/core/discussion-argument-language.md +192 -0
  121. package/vendor/nature-skills/skills/nature-shared/core/ethics.md +88 -0
  122. package/vendor/nature-skills/skills/nature-shared/core/main-text-discipline.md +179 -0
  123. package/vendor/nature-skills/skills/nature-shared/core/nature-abstract.md +171 -0
  124. package/vendor/nature-skills/skills/nature-shared/core/nature-introduction.md +164 -0
  125. package/vendor/nature-skills/skills/nature-shared/core/nature-results-discussion.md +215 -0
  126. package/vendor/nature-skills/skills/nature-shared/core/paper-type-taxonomy.md +41 -0
  127. package/vendor/nature-skills/skills/nature-shared/core/reader-workflow.md +21 -0
  128. package/vendor/nature-skills/skills/nature-shared/core/research-compliance.md +192 -0
  129. package/vendor/nature-skills/skills/nature-shared/core/terminology-ledger.md +58 -0
  130. package/vendor/nature-skills/skills/nature-shared/journal-formats/nat-comms.md +139 -0
  131. package/vendor/nature-skills/skills/nature-shared/journal-formats/nature-machine-intelligence.md +431 -0
  132. package/vendor/nature-skills/skills/nature-shared/journal-formats/nature.md +313 -0
  133. package/vendor/nature-skills/skills/nature-shared/manifest.yaml +52 -0
  134. package/vendor/nature-skills/skills/nature-shared/scripts/check_consistency.py +273 -0
  135. package/vendor/nature-skills/skills/nature-shared/tests/test_check_consistency.py +63 -0
@@ -0,0 +1,25 @@
1
+ import { CustomEditor } from "@earendil-works/pi-coding-agent";
2
+ import type { EditorOptions, EditorTheme, TUI } from "@earendil-works/pi-tui";
3
+ export declare const ARS_MODE_PREFIX = "ars:";
4
+ export declare const ARS_MODE_STATUS = "academic mode";
5
+ export declare function isArsModeEditorText(text: string): boolean;
6
+ export declare function enterArsModeEditorText(existing?: string): string;
7
+ type KeybindingsLike = ConstructorParameters<typeof CustomEditor>[2];
8
+ /**
9
+ * Sticky academic conversation mode: Shift+Tab toggles tinted border + footer
10
+ * "academic mode". Messages then use the session ARS state without a per-turn prefix.
11
+ */
12
+ export declare class ArsModeEditor extends CustomEditor {
13
+ private readonly restingBorder;
14
+ private conversationMode;
15
+ private borderPainted;
16
+ onArsModeChange?: (active: boolean) => void;
17
+ onToggleConversationMode?: () => void;
18
+ constructor(tui: TUI, theme: EditorTheme, keybindings: KeybindingsLike, options?: EditorOptions);
19
+ isConversationMode(): boolean;
20
+ setConversationMode(active: boolean): void;
21
+ handleInput(data: string): void;
22
+ setText(text: string): void;
23
+ private paintBorder;
24
+ }
25
+ export {};
@@ -0,0 +1,78 @@
1
+ import { CustomEditor } from "@earendil-works/pi-coding-agent";
2
+ /** Match PsyClaw accent (#2ec4b6) for the ARS conversation-mode border. */
3
+ const ARS_BORDER = (text) => `\x1b[38;2;46;196;182m${text}\x1b[39m`;
4
+ export const ARS_MODE_PREFIX = "ars:";
5
+ export const ARS_MODE_STATUS = "academic mode";
6
+ export function isArsModeEditorText(text) {
7
+ return /^ars:/i.test(text.trimStart());
8
+ }
9
+ export function enterArsModeEditorText(existing = "") {
10
+ const trimmed = existing.trim();
11
+ if (!trimmed || trimmed === "ars" || trimmed === "/ars")
12
+ return `${ARS_MODE_PREFIX} `;
13
+ if (isArsModeEditorText(existing))
14
+ return existing;
15
+ return `${ARS_MODE_PREFIX} ${trimmed}`;
16
+ }
17
+ /**
18
+ * Sticky academic conversation mode: Shift+Tab toggles tinted border + footer
19
+ * "academic mode". Messages then use the session ARS state without a per-turn prefix.
20
+ */
21
+ export class ArsModeEditor extends CustomEditor {
22
+ restingBorder;
23
+ conversationMode = false;
24
+ borderPainted = false;
25
+ onArsModeChange;
26
+ onToggleConversationMode;
27
+ constructor(tui, theme, keybindings, options) {
28
+ super(tui, theme, keybindings, options);
29
+ this.restingBorder = theme.borderColor ?? ((text) => text);
30
+ }
31
+ isConversationMode() {
32
+ return this.conversationMode;
33
+ }
34
+ setConversationMode(active) {
35
+ if (this.conversationMode === active) {
36
+ this.paintBorder();
37
+ return;
38
+ }
39
+ this.conversationMode = active;
40
+ this.paintBorder();
41
+ this.onArsModeChange?.(active);
42
+ this.tui.requestRender();
43
+ }
44
+ handleInput(data) {
45
+ // Shift+Tab — classic backtab sequence when Kitty protocol is off.
46
+ if (data === "\x1b[Z") {
47
+ this.onToggleConversationMode?.();
48
+ return;
49
+ }
50
+ if (data === "\t") {
51
+ const current = this.getText();
52
+ if (current.trim() === "ars" || current.trim() === "/ars") {
53
+ this.setText("");
54
+ this.onToggleConversationMode?.();
55
+ return;
56
+ }
57
+ }
58
+ super.handleInput(data);
59
+ this.paintBorder();
60
+ }
61
+ setText(text) {
62
+ super.setText(text);
63
+ this.paintBorder();
64
+ }
65
+ paintBorder() {
66
+ const active = this.conversationMode || isArsModeEditorText(this.getText());
67
+ if (active === this.borderPainted && active) {
68
+ this.borderColor = ARS_BORDER;
69
+ return;
70
+ }
71
+ if (active === this.borderPainted && !active)
72
+ return;
73
+ this.borderPainted = active;
74
+ this.borderColor = active ? ARS_BORDER : this.restingBorder;
75
+ this.tui.requestRender();
76
+ }
77
+ }
78
+ //# sourceMappingURL=mode-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode-editor.js","sourceRoot":"","sources":["../../../src/ars/mode-editor.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
- export declare const PSYCLAW_ARS_PROFILE_VERSION: "2";
1
+ export declare const PSYCLAW_ARS_PROFILE_VERSION: "3";
2
2
  export declare const ARS_REPOSITORY_URL: "https://github.com/Imbad0202/academic-research-skills";
3
3
  export declare const ARS_UPSTREAM_REF: "v3.21.1";
4
4
  export declare const ARS_UPSTREAM_COMMIT: "127ff85e4bbfcdd10b95040537b6c6bd7ad17aeb";
5
5
  export declare const ARS_ARCHIVE_SHA256: "3b82731b860a021e9c8efbca4cc3a91e472a43b50a21a066e2a44e312c97cdf3";
6
6
  export declare const NATURE_SKILLS_PLUGIN_ID: "nature-skills-plugin";
7
+ /** Nature gap-fill leaves are vendored under vendor/nature-skills and listed in package.json pi.skills. */
8
+ export declare const NATURE_ARS_FILLERS_BUNDLED: true;
9
+ export declare const ACADEMIC_COMPOSE_SKILLS: readonly ["academic-paper-strategist", "academic-paper-composer"];
7
10
  export type NatureArsFillerId = "figure" | "ref-verifier" | "polishing";
8
11
  export interface NatureArsFiller {
9
12
  id: NatureArsFillerId;
@@ -1,9 +1,15 @@
1
- export const PSYCLAW_ARS_PROFILE_VERSION = "2";
1
+ export const PSYCLAW_ARS_PROFILE_VERSION = "3";
2
2
  export const ARS_REPOSITORY_URL = "https://github.com/Imbad0202/academic-research-skills";
3
3
  export const ARS_UPSTREAM_REF = "v3.21.1";
4
4
  export const ARS_UPSTREAM_COMMIT = "127ff85e4bbfcdd10b95040537b6c6bd7ad17aeb";
5
5
  export const ARS_ARCHIVE_SHA256 = "3b82731b860a021e9c8efbca4cc3a91e472a43b50a21a066e2a44e312c97cdf3";
6
6
  export const NATURE_SKILLS_PLUGIN_ID = "nature-skills-plugin";
7
+ /** Nature gap-fill leaves are vendored under vendor/nature-skills and listed in package.json pi.skills. */
8
+ export const NATURE_ARS_FILLERS_BUNDLED = true;
9
+ export const ACADEMIC_COMPOSE_SKILLS = [
10
+ "academic-paper-strategist",
11
+ "academic-paper-composer",
12
+ ];
7
13
  const ARS_PI_COMPATIBILITY_MARKER = "## Academic Research Skills compatibility for Pi";
8
14
  const ARS_PI_STATE_ENTRY_TYPE = "ars-pi-state";
9
15
  /** Only the three Nature leaves that fill ARS gaps. Do not add overlapping reviewer/search skills here. */
@@ -60,6 +66,9 @@ export function loadedSkillNames(input = {}) {
60
66
  return names;
61
67
  }
62
68
  export function detectNatureArsFillers(input = {}) {
69
+ if (NATURE_ARS_FILLERS_BUNDLED) {
70
+ return NATURE_ARS_FILLERS.map((filler) => filler.id);
71
+ }
63
72
  const names = loadedSkillNames(input);
64
73
  return NATURE_ARS_FILLERS
65
74
  .filter((filler) => filler.aliases.some((alias) => names.has(alias)))
@@ -70,11 +79,19 @@ export function formatNatureArsFillerStatus(present) {
70
79
  const lines = ["Nature 查漏补缺(不替换 ARS 阶段):"];
71
80
  for (const filler of NATURE_ARS_FILLERS) {
72
81
  const ready = presentSet.has(filler.id);
73
- lines.push(`- ${filler.skill}:${ready ? "已接入" : "未安装"}(${filler.stage})`);
82
+ const state = NATURE_ARS_FILLERS_BUNDLED
83
+ ? "已内置"
84
+ : ready
85
+ ? "已接入"
86
+ : "未安装";
87
+ lines.push(`- ${filler.skill}:${state}(${filler.stage})`);
74
88
  }
75
- if (present.length < NATURE_ARS_FILLERS.length) {
89
+ if (!NATURE_ARS_FILLERS_BUNDLED && present.length < NATURE_ARS_FILLERS.length) {
76
90
  lines.push(`未安装项可运行 /plugin install ${NATURE_SKILLS_PLUGIN_ID};缺席时保持 ARS 原流程,不编造该产物。`);
77
91
  }
92
+ if (NATURE_ARS_FILLERS_BUNDLED) {
93
+ lines.push(`学术写作配套:${ACADEMIC_COMPOSE_SKILLS.join("、")} 已内置。`);
94
+ }
78
95
  return lines.join("\n");
79
96
  }
80
97
  function natureGapFillSection(present) {
@@ -85,15 +102,15 @@ function natureGapFillSection(present) {
85
102
  ];
86
103
  const instructions = {
87
104
  figure: {
88
- available: "- AVAILABLE nature-figure (format / manuscript figures): when the manuscript needs publication figures, invoke nature-figure instead of ad-hoc matplotlib. Do not use it to rewrite the paper or invent data.",
105
+ available: "- AVAILABLE nature-figure (format / manuscript figures; bundled): when the manuscript needs publication figures, invoke nature-figure instead of ad-hoc matplotlib. Do not use it to rewrite the paper or invent data.",
89
106
  missing: "- MISSING nature-figure: leave figures unfinished or ARS-native; do not invent publication-ready charts. Offer /plugin install nature-skills-plugin only if the user asks to fill this gap.",
90
107
  },
91
108
  "ref-verifier": {
92
- available: "- AVAILABLE nature-ref-verifier (integrity / citation-check): after ARS citation-check or integrity, invoke nature-ref-verifier for DOI/author/year/field cross-checks. It does not replace ARS claim-source entailment or locator gates.",
109
+ available: "- AVAILABLE nature-ref-verifier (integrity / citation-check; bundled): after ARS citation-check or integrity, invoke nature-ref-verifier for DOI/author/year/field cross-checks. It does not replace ARS claim-source entailment or locator gates.",
93
110
  missing: "- MISSING nature-ref-verifier: keep ARS citation-check as the citation gate; do not claim multi-source field verification that was not run.",
94
111
  },
95
112
  polishing: {
96
- available: "- AVAILABLE nature-polishing (finalization / prose polish): after a draft exists, during finalization/format only, invoke nature-polishing for prose. It must not change research claims, citations, numbers, or section structure.",
113
+ available: "- AVAILABLE nature-polishing (finalization / prose polish; bundled): after a draft exists, during finalization/format only, invoke nature-polishing for prose. It must not change research claims, citations, numbers, or section structure.",
97
114
  missing: "- MISSING nature-polishing: keep ARS writing/format output; do not claim Nature-style polish that was not run.",
98
115
  },
99
116
  };
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/ars/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/ars/profile.ts"],"names":[],"mappings":"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"}
package/dist/src/chat.js CHANGED
@@ -5,6 +5,7 @@ import { homedir } from "node:os";
5
5
  import { dirname, join } from "node:path";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import { acknowledgeBundledPiChangelog, ensurePsyClawTheme, ensureQuietStartup, PSYCLAW_IDENTITY_PROMPT, } from "./branding.js";
8
+ import { ensureAcademicModeKeybindings } from "./ars/keybindings.js";
8
9
  import { resolvePsyClawManifest } from "./updates/manifest.js";
9
10
  import { PROVIDER_PRESETS, readMacOsLaunchctlCredential } from "./setup.js";
10
11
  import { withBundledWindowsTools } from "./bundled-tools.js";
@@ -92,6 +93,8 @@ export async function launchChat(options = {}) {
92
93
  }
93
94
  // The header banner renders psyclaw's own version (not the bundled pi 0.84.x).
94
95
  const agentDir = process.env.PSYCLAW_CODING_AGENT_DIR || join(homedir(), ".psyclaw", "agent");
96
+ // Free Shift+Tab for academic mode; move Pi thinking-cycle to Ctrl+Shift+Tab.
97
+ await ensureAcademicModeKeybindings(agentDir);
95
98
  const sessionDir = process.env.PSYCLAW_CODING_AGENT_SESSION_DIR || join(agentDir, "sessions");
96
99
  let spawnEnv = withBundledWindowsTools({
97
100
  ...process.env,
@@ -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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"}
@@ -58,7 +58,7 @@ const CORE_SKILLS = [
58
58
  {
59
59
  id: "psyclaw-ars",
60
60
  name: "PsyClaw ARS",
61
- description: "研究、写作、审稿与修订流程;首次启用时确认非商业许可。",
61
+ description: "研究、写作、审稿与修订流程;随包内置,Shift+Tab 切换 academic mode。",
62
62
  locked: true,
63
63
  },
64
64
  ];