@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 +2 -2
- package/bin/yotta-memory.js +18 -14
- package/package.json +1 -1
- package/references/protocol.md +1 -1
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.
|
|
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.
|
|
11
|
+
> 版本:0.5.3 | 最后更新:2026-08-25
|
|
12
12
|
|
|
13
13
|
## 这是什么
|
|
14
14
|
|
package/bin/yotta-memory.js
CHANGED
|
@@ -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.
|
|
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 =
|
|
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(
|
|
1099
|
+
case 'iam': cmdIam(rest[0], opts); break;
|
|
1097
1100
|
case 'config': {
|
|
1098
|
-
const sub =
|
|
1099
|
-
if (sub === 'set') cmdConfigSet(
|
|
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(
|
|
1105
|
-
case 'recall': cmdRecall(
|
|
1106
|
-
case 'forget': cmdForget(
|
|
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(
|
|
1113
|
+
case 'import': cmdImport(rest[0]); break;
|
|
1111
1114
|
case 'token': {
|
|
1112
|
-
const sub =
|
|
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 =
|
|
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
package/references/protocol.md
CHANGED