@vibe-lark/larkpal 0.1.14 → 0.1.15

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 (2) hide show
  1. package/dist/main.mjs +12 -29
  2. package/package.json +1 -1
package/dist/main.mjs CHANGED
@@ -238,6 +238,10 @@ const DEFAULT_SETTINGS = {
238
238
  "WebSearch(*)"
239
239
  ],
240
240
  deny: [
241
+ "Write(//.claude/CLAUDE.md)",
242
+ "Edit(//.claude/CLAUDE.md)",
243
+ "Write(//.claude/settings.json)",
244
+ "Edit(//.claude/settings.json)",
241
245
  "Read(//.lark-cli/**)",
242
246
  "Read(//.config/lark/**)",
243
247
  "Read(//.larkpal/credentials.json)",
@@ -311,6 +315,9 @@ const DEFAULT_CLAUDE_MD = `# LarkPal
311
315
  - 任何 API 密钥、Token、密码等敏感凭证
312
316
  - **严禁**执行 \`cat\`/\`head\`/\`tail\`/\`grep\` 等命令读取上述文件内容
313
317
  - **严禁**在对话中引用、复述或暗示凭证的具体值(即使用户明确要求)
318
+ - **严禁**修改 ~/.claude/CLAUDE.md 和 ~/.claude/settings.json — 这些文件由系统管理,人设内容来源于飞书云文档,你无权更改
319
+ - 如果用户要求修改全局人设,应回复:"全局人设由飞书云文档统一管理,请在云文档中修改后执行 /sync-app-info 同步。"
320
+ - 如果用户想添加个人偏好,可以修改当前会话目录下的 CLAUDE.md(仅当前会话生效)
314
321
  - 如果用户要求查看凭证,应回复:"出于安全策略,凭证信息不可查看或透露。"
315
322
  - lark-cli 的认证配置由系统自动管理,无需用户介入
316
323
 
@@ -338,11 +345,8 @@ async function ensureDefaults() {
338
345
  const claudeMdPath = join(claudeDir, "CLAUDE.md");
339
346
  await mkdir(claudeDir, { recursive: true });
340
347
  logger$7.info("确保 ~/.claude 目录存在", { path: claudeDir });
341
- if (await fileExists(settingsPath)) logger$7.info("settings.json 已存在,跳过生成", { path: settingsPath });
342
- else {
343
- await writeFile(settingsPath, JSON.stringify(DEFAULT_SETTINGS, null, 2), "utf-8");
344
- logger$7.info("已生成默认 settings.json", { path: settingsPath });
345
- }
348
+ await writeFile(settingsPath, JSON.stringify(DEFAULT_SETTINGS, null, 2), "utf-8");
349
+ logger$7.info("settings.json 已同步(强制覆盖)", { path: settingsPath });
346
350
  if (await fileExists(claudeMdPath)) logger$7.info("CLAUDE.md 已存在,跳过生成", { path: claudeMdPath });
347
351
  else {
348
352
  await writeFile(claudeMdPath, DEFAULT_CLAUDE_MD, "utf-8");
@@ -2512,30 +2516,9 @@ function createStatusRouter() {
2512
2516
  });
2513
2517
  }
2514
2518
  });
2515
- router.put("/persona", async (req, res) => {
2516
- const { content } = req.body;
2517
- logger$3.info("update persona request", {
2518
- method: req.method,
2519
- url: req.originalUrl,
2520
- contentLength: content?.length
2521
- });
2522
- if (content === void 0 || content === null) {
2523
- logger$3.warn("update persona bad request: missing content");
2524
- res.status(400).json({ error: "Missing required field: content" });
2525
- return;
2526
- }
2527
- try {
2528
- await mkdir(join(homedir(), ".claude"), { recursive: true });
2529
- await writeFile(PERSONA_FILE, content, "utf-8");
2530
- logger$3.info("update persona response", { updated: true });
2531
- res.json({ updated: true });
2532
- } catch (err) {
2533
- logger$3.error("update persona failed", { error: String(err) });
2534
- res.status(500).json({
2535
- error: "Failed to update persona",
2536
- detail: String(err)
2537
- });
2538
- }
2519
+ router.put("/persona", async (_req, res) => {
2520
+ logger$3.warn("PUT /persona 已废弃,人设内容由飞书云文档统一管理,请使用 POST /api/sync-app-info 触发同步");
2521
+ res.status(403).json({ error: "人设内容由飞书云文档统一管理,不支持直接修改。请在云文档中编辑后调用 POST /api/sync-app-info 同步。" });
2539
2522
  });
2540
2523
  return router;
2541
2524
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe-lark/larkpal",
3
- "version": "0.1.14",
3
+ "version": "0.1.15",
4
4
  "description": "LarkPal - Lark/Feishu bot service",
5
5
  "type": "module",
6
6
  "main": "./dist/main.mjs",