@yottameta/yotta-memory 0.5.2 → 0.5.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.
package/SKILL.md CHANGED
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: yotta-memory
3
3
  description: "元忆 —— 有权限边界的文件式智能体记忆。文件式、零依赖、可 diff/回滚:让任何 AI 智能体活过会话,开工 recall 恢复上下文、重要信息 remember 落盘、收工归档。类型体系 FACT(公共共享)/ PREF / BOUND / COMMIT(私密隔离)。触发:记住、别忘了、记一笔、记忆、remember、recall、跨会话、上次说到、续测、交接、归档、记忆盘、共享记忆、局域网记忆"
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  license: MIT
6
6
  ---
7
7
 
8
8
  # yotta-memory(元忆)— 有权限边界的文件式智能体记忆
9
9
 
10
10
  > 一句话:元忆 —— 有权限边界的文件式智能体记忆(不注入、可 diff、能回滚;FACT 共享、PREF / BOUND / COMMIT 私密隔离)。
11
- > 版本:0.5.2 | 最后更新:2026-08-25
11
+ > 版本:0.5.3 | 最后更新:2026-08-25
12
12
 
13
13
  ## 这是什么
14
14
 
@@ -3,6 +3,7 @@
3
3
  // v0.4.0 新增:lan(Windows 计划任务开机自启 serve)/ init --dir(显式指定位置)/ serve --stdio(本地零进程模式)/ MCP 工具补 reindex/export/import
4
4
  // v0.5.0 新增:隐私硬隔离——私密物理分目录 private/<agent_id>/{prefs,bounds,commits}/ + 关闭 --agent 越权读 + 私密写跨智能体需 --unsafe + 禁 shell 直读写(文档红线)
5
5
  // v0.4.2 新增:iam/whoami 智能体身份自注册(agents.json 唯一性)+ 自我档案 PREF + 私密记忆须声明 owner
6
+ // v0.5.3 新增:CLI 选项可前置(--agent 等允许放在子命令前,不再误报"未知命令")/ lan enable 成功补"服务不会立刻启动"提示(v0.5.2 lan 引号修复无回归)
6
7
  'use strict';
7
8
 
8
9
  const fs = require('fs');
@@ -12,7 +13,7 @@ const crypto = require('crypto');
12
13
  const http = require('http');
13
14
  const child_process = require('child_process');
14
15
 
15
- const VERSION = '0.5.2';
16
+ const VERSION = '0.5.3';
16
17
  const TYPES = ['FACT', 'PREF', 'BOUND', 'COMMIT'];
17
18
  const TYPE_DIRS = { FACT: 'facts', PREF: 'prefs', BOUND: 'bounds', COMMIT: 'commits' };
18
19
  const PUBLIC_DIR = 'facts';
@@ -983,6 +984,7 @@ function cmdLanEnable(opts) {
983
984
  }
984
985
  console.log('已注册开机自启: 计划任务 ' + LAN_TASK_NAME + '(触发器 ' + trigger + ')');
985
986
  console.log('运行命令: ' + tr);
987
+ console.log('备注: 服务不会立刻启动,需重启/重新登录后自动启动;如需现在运行请执行 yotta-memory serve');
986
988
  }
987
989
  function cmdLanDisable() {
988
990
  if (process.platform !== 'win32') {
@@ -1055,14 +1057,13 @@ function usage() {
1055
1057
  function main() {
1056
1058
  const args = process.argv.slice(2);
1057
1059
  if (!args.length) { usage(); return; }
1058
- const first = args[0];
1059
- if (first === '--version' || first === '-v') { console.log(VERSION); return; }
1060
- if (first === '--help' || first === '-h') { usage(); return; }
1061
1060
  const opts = {};
1062
1061
  const positional = [];
1063
1062
  const valueOpts = new Set(['--type', '--limit', '--days', '--out', '--owner', '--agent', '--threshold', '--scope', '--host', '--port', '--dir']);
1064
- for (let i = 1; i < args.length; i++) {
1063
+ for (let i = 0; i < args.length; i++) {
1065
1064
  const a = args[i];
1065
+ if (a === '--version' || a === '-v') { console.log(VERSION); return; }
1066
+ if (a === '--help' || a === '-h') { usage(); return; }
1066
1067
  if (a === '--project') opts.project = true;
1067
1068
  else if (a === '--all') opts.all = true;
1068
1069
  else if (a === '--unsafe') opts.unsafe = true;
@@ -1090,26 +1091,28 @@ function main() {
1090
1091
  positional.push(a);
1091
1092
  }
1092
1093
  }
1094
+ const first = positional[0];
1095
+ const rest = positional.slice(1);
1093
1096
  switch (first) {
1094
1097
  case 'init': cmdInit(opts); break;
1095
1098
  case 'whoami': cmdWhoami(); break;
1096
- case 'iam': cmdIam(positional[0], opts); break;
1099
+ case 'iam': cmdIam(rest[0], opts); break;
1097
1100
  case 'config': {
1098
- const sub = positional[0];
1099
- if (sub === 'set') cmdConfigSet(positional[1], positional[2]);
1101
+ const sub = rest[0];
1102
+ if (sub === 'set') cmdConfigSet(rest[1], rest[2]);
1100
1103
  else if (sub === 'get') cmdConfigGet();
1101
1104
  else { console.error('config 子命令: set memory_home <目录> / get'); process.exit(2); }
1102
1105
  break;
1103
1106
  }
1104
- case 'remember': cmdRemember(positional[0], positional[1], positional[2], opts); break;
1105
- case 'recall': cmdRecall(positional[0] || null, opts); break;
1106
- case 'forget': cmdForget(positional[0]); break;
1107
+ case 'remember': cmdRemember(rest[0], rest[1], rest[2], opts); break;
1108
+ case 'recall': cmdRecall(rest[0] || null, opts); break;
1109
+ case 'forget': cmdForget(rest[0]); break;
1107
1110
  case 'archive': cmdArchive(opts); break;
1108
1111
  case 'reindex': cmdReindex(); break;
1109
1112
  case 'export': cmdExport(opts.out); break;
1110
- case 'import': cmdImport(positional[0]); break;
1113
+ case 'import': cmdImport(rest[0]); break;
1111
1114
  case 'token': {
1112
- const sub = positional[0];
1115
+ const sub = rest[0];
1113
1116
  if (sub === 'new') cmdTokenNew(opts.agent, opts);
1114
1117
  else if (sub === 'list') cmdTokenList();
1115
1118
  else if (sub === 'revoke') cmdTokenRevoke(opts.agent);
@@ -1118,7 +1121,7 @@ function main() {
1118
1121
  }
1119
1122
  case 'serve': cmdServe(opts); break;
1120
1123
  case 'lan': {
1121
- const sub = positional[0];
1124
+ const sub = rest[0];
1122
1125
  if (sub === 'enable') cmdLanEnable(opts);
1123
1126
  else if (sub === 'disable') cmdLanDisable();
1124
1127
  else if (sub === 'status') cmdLanStatus();
@@ -1126,6 +1129,7 @@ function main() {
1126
1129
  break;
1127
1130
  }
1128
1131
  default:
1132
+ if (!first) { usage(); return; }
1129
1133
  console.error('未知命令: ' + first);
1130
1134
  usage();
1131
1135
  process.exit(2);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yottameta/yotta-memory",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "元忆 —— 有权限边界的文件式智能体记忆。文件式、零依赖、可 diff/回滚;FACT/PREF/BOUND/COMMIT 四分类(公共共享/私密隔离),用户级+项目级双级存储。",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -1,4 +1,4 @@
1
- # yotta-memory 协议规范 v0.5.2
1
+ # yotta-memory 协议规范 v0.5.3
2
2
 
3
3
  > 本文件定义 yotta-memory 记忆标准:存储位置、目录结构、文件格式、类型体系与 CLI 命令参考。
4
4
  > 目标:任何支持 Agent Skills 开放标准的智能体,装完即可读写同一份记忆。