@fanchao8609/agent_brain_sync 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/bin/abs.js +57 -0
  2. package/package.json +1 -1
package/bin/abs.js CHANGED
@@ -4,6 +4,59 @@
4
4
  // 命令: init / board / status / load / task / install / uninstall / help
5
5
  import { cmdInit, cmdBoard, cmdStatus, cmdLoad, cmdTask, cmdLog, cmdQuery, cmdLint, cmdNote, cmdShow, cmdRepair, cmdWrapup } from '../src/store.js';
6
6
  import { runInstall, runUninstall, installSummary } from '../src/install.js';
7
+ import { readFileSync } from 'node:fs';
8
+ import { join, dirname, resolve } from 'node:path';
9
+ import { fileURLToPath } from 'node:url';
10
+ import { spawn } from 'node:child_process';
11
+
12
+ const ABS_DIR = resolve(dirname(fileURLToPath(import.meta.url)), '..');
13
+
14
+ /** 读本包 package.json 的 version。 */
15
+ function pkgVersion() {
16
+ try {
17
+ return JSON.parse(readFileSync(join(ABS_DIR, 'package.json'), 'utf8')).version || 'unknown';
18
+ } catch { return 'unknown'; }
19
+ }
20
+
21
+ /** 跑一个命令并把 stdout 当字符串返回(失败返回 null)。 */
22
+ function runCmd(cmd, args) {
23
+ return new Promise((resolvePromise) => {
24
+ let out = '';
25
+ const c = spawn(cmd, args, { stdio: ['ignore', 'pipe', 'pipe'] });
26
+ c.stdout.on('data', (d) => (out += d));
27
+ c.on('error', () => resolvePromise(null));
28
+ c.on('close', (code) => resolvePromise(code === 0 ? out.trim() : null));
29
+ });
30
+ }
31
+
32
+ /**
33
+ * abs update — 升级全局安装并刷新四宿主 hook/skill。
34
+ * 升级走 npm(唯一真源);刷新是因为 hook 脚本烧的是绝对路径与模板快照。
35
+ */
36
+ async function cmdUpdate({ yes }) {
37
+ const cur = pkgVersion();
38
+ const latest = await runCmd('npm', ['view', '@fanchao8609/agent_brain_sync', 'version']);
39
+ if (!latest) {
40
+ console.error('无法查询 npm registry(网络/代理问题)。手动升级:npm i -g @fanchao8609/agent_brain_sync@latest');
41
+ process.exit(1);
42
+ }
43
+ console.log(`当前: ${cur}`);
44
+ console.log(`最新: ${latest}`);
45
+ if (latest === cur) {
46
+ console.log('已是最新,无需升级。');
47
+ return;
48
+ }
49
+ console.log(`\n升级 ${cur} → ${latest} …`);
50
+ const r = await runCmd('npm', ['i', '-g', '@fanchao8609/agent_brain_sync@latest']);
51
+ if (r === null) {
52
+ console.error('升级失败(网络/代理/权限)。手动:npm i -g @fanchao8609/agent_brain_sync@latest');
53
+ process.exit(1);
54
+ }
55
+ console.log(r);
56
+ console.log('\n刷新四宿主 hook/skill(hook 脚本烧的是绝对路径 + 模板快照,升级后必须重装)…');
57
+ await runInstall({ agent: undefined, mcp: true, skill: true, yes: yes !== false });
58
+ console.log(`\n完成。重启宿主(pi / op​encode / cl​aude-code / co​dex)后新 hook 生效。`);
59
+ }
7
60
 
8
61
  const [,, cmd, ...rest] = process.argv;
9
62
 
@@ -45,6 +98,8 @@ const usage = `abs — agent-brain-sync 记忆工具
45
98
  abs wrapup 快照当前未完成任务到 ~/.abs/log/wrapup.log (收尾保险)
46
99
  abs install [--agent <claude-code|opencode|codex|pi>] 安装 MCP+hook+skill
47
100
  abs uninstall [--agent <...>] 卸载
101
+ abs update 升级到最新版并刷新四宿主 hook/skill
102
+ abs --version 显示当前版本
48
103
  abs help 本帮助
49
104
  `;
50
105
 
@@ -100,6 +155,8 @@ async function main() {
100
155
  console.log(await cmdWrapup({ dir: opts.dir }));
101
156
  break;
102
157
  }
158
+ case 'update': await cmdUpdate({ yes: opts.yes }); break;
159
+ case '--version': case '-v': case 'version': console.log(pkgVersion()); break;
103
160
  case 'help': case undefined: case '--help': console.log(usage); break;
104
161
  default: throw new Error(`未知命令: ${cmd}\n\n${usage}`);
105
162
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fanchao8609/agent_brain_sync",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "agent-brain-sync: 跨会话 AI 编码记忆 — hook 纯触发 + CLI/MCP 读写 .brain markdown 图谱, 防并发写保护。",
5
5
  "type": "module",
6
6
  "license": "MIT",