corivo 0.10.1 → 0.10.2
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/corivo-plugin/skills/corivo-query.md +16 -15
- package/corivo-plugin/skills/corivo-save.md +9 -9
- package/dist/cli/commands/inject.d.ts +10 -0
- package/dist/cli/commands/inject.d.ts.map +1 -0
- package/dist/cli/commands/inject.js +63 -0
- package/dist/cli/commands/inject.js.map +1 -0
- package/dist/cli/commands/query.d.ts +1 -0
- package/dist/cli/commands/query.d.ts.map +1 -1
- package/dist/cli/commands/query.js +20 -6
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/save.d.ts +1 -0
- package/dist/cli/commands/save.d.ts.map +1 -1
- package/dist/cli/commands/save.js +20 -6
- package/dist/cli/commands/save.js.map +1 -1
- package/dist/cli/index.js +11 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/ingestors/claude-code.d.ts.map +1 -1
- package/dist/ingestors/claude-code.js +62 -27
- package/dist/ingestors/claude-code.js.map +1 -1
- package/package.json +1 -1
|
@@ -30,7 +30,7 @@ corivo query "关键词" --annotation "决策 · project" --limit 5
|
|
|
30
30
|
|
|
31
31
|
### 3. 查看状态
|
|
32
32
|
```bash
|
|
33
|
-
corivo status
|
|
33
|
+
corivo status --no-password
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
## 查询结果解读
|
|
@@ -44,22 +44,16 @@ corivo status
|
|
|
44
44
|
2. [知识 · knowledge · React]
|
|
45
45
|
React hooks 的 useEffect 依赖数组为空时...
|
|
46
46
|
|
|
47
|
-
3. [
|
|
47
|
+
3. [指令 · self · 代码风格]
|
|
48
48
|
用户喜欢简洁的代码风格...
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
### 字段说明
|
|
52
|
-
- **性质**:决策/知识/事实/指令
|
|
53
|
-
- **领域**:适用范围
|
|
54
|
-
- **标识**:快速分类
|
|
55
|
-
- **活力值**:记忆的使用频率
|
|
56
|
-
|
|
57
51
|
## 查询策略
|
|
58
52
|
|
|
59
53
|
### 开场查询
|
|
60
54
|
每次对话开始时,可以查询用户的基本信息:
|
|
61
55
|
```bash
|
|
62
|
-
corivo query "
|
|
56
|
+
corivo query "" --annotation "指令 · self" --limit 5
|
|
63
57
|
```
|
|
64
58
|
|
|
65
59
|
### 上下文相关查询
|
|
@@ -83,10 +77,14 @@ Claude: [查询记忆]
|
|
|
83
77
|
|
|
84
78
|
[执行 corivo query "代码风格" --annotation "指令 · self"]
|
|
85
79
|
|
|
80
|
+
[corivo] 找到 2 条相关记忆:
|
|
81
|
+
1. 使用 2 空格缩进,优先使用 const
|
|
82
|
+
2. 函数名使用 camelCase
|
|
83
|
+
|
|
86
84
|
根据记忆,你喜欢:
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
85
|
+
- 2 空格缩进
|
|
86
|
+
- 优先使用 const 而非 let
|
|
87
|
+
- 函数名使用 camelCase
|
|
90
88
|
```
|
|
91
89
|
|
|
92
90
|
```
|
|
@@ -96,12 +94,15 @@ Claude: [查询记忆]
|
|
|
96
94
|
|
|
97
95
|
[执行 corivo query "数据库" --annotation "决策 · project"]
|
|
98
96
|
|
|
99
|
-
|
|
97
|
+
[corivo] 找到 1 条相关记忆:
|
|
98
|
+
选择 PostgreSQL 因为需要更好的 JSON 支持
|
|
99
|
+
|
|
100
|
+
你们选择了 PostgreSQL,主要因为需要更好的 JSON 支持和 ACID 特性。
|
|
100
101
|
```
|
|
101
102
|
|
|
102
103
|
## 注意事项
|
|
103
104
|
|
|
104
105
|
- 查询结果可能为空,这是正常的
|
|
105
106
|
- 多个关键词用空格分隔
|
|
106
|
-
-
|
|
107
|
-
-
|
|
107
|
+
- 所有命令自动添加 `--no-password` 跳过密码输入
|
|
108
|
+
- 查询后向用户报告找到的记忆数量
|
|
@@ -20,10 +20,10 @@ allowed-tools: Bash, AskUserQuestion
|
|
|
20
20
|
|
|
21
21
|
| 性质 (nature) | 说明 | 示例 |
|
|
22
22
|
|--------------|------|------|
|
|
23
|
-
| 事实 | 客观可验证的信息 |
|
|
24
|
-
| 知识 | 学习到的概念 | React hooks 原理、API
|
|
25
|
-
| 决策 | 做出的技术选择 | 使用 PostgreSQL
|
|
26
|
-
| 指令 | 用户偏好 |
|
|
23
|
+
| 事实 | 客观可验证的信息 | 用户生日、服务器配置、API 密钥 |
|
|
24
|
+
| 知识 | 学习到的概念 | React hooks 原理、API 用法、部署流程 |
|
|
25
|
+
| 决策 | 做出的技术选择 | 使用 PostgreSQL、选择 TypeScript |
|
|
26
|
+
| 指令 | 用户偏好 | 代码风格、命名习惯、周报格式 |
|
|
27
27
|
|
|
28
28
|
## 记忆格式
|
|
29
29
|
|
|
@@ -44,9 +44,6 @@ allowed-tools: Bash, AskUserQuestion
|
|
|
44
44
|
- `asset` - 资产/资源
|
|
45
45
|
- `knowledge` - 知识领域
|
|
46
46
|
|
|
47
|
-
### 标识 - 必选
|
|
48
|
-
简短描述,如 `生日`、`React`、`PostgreSQL`
|
|
49
|
-
|
|
50
47
|
## 执行步骤
|
|
51
48
|
|
|
52
49
|
1. **确认保存内容**:向用户确认要保存的内容
|
|
@@ -58,6 +55,8 @@ allowed-tools: Bash, AskUserQuestion
|
|
|
58
55
|
corivo save "{content}" --annotation "{nature} · {domain} · {tag}"
|
|
59
56
|
```
|
|
60
57
|
|
|
58
|
+
4. **标注来源**:保存成功后回复 `[corivo] 已记录:{简要内容}`
|
|
59
|
+
|
|
61
60
|
## 示例对话
|
|
62
61
|
|
|
63
62
|
```
|
|
@@ -65,9 +64,9 @@ allowed-tools: Bash, AskUserQuestion
|
|
|
65
64
|
Claude: 我来保存这个信息:
|
|
66
65
|
性质:事实(关于用户的基本信息)
|
|
67
66
|
领域:self(关于用户本人)
|
|
68
|
-
标识:个人信息
|
|
69
67
|
|
|
70
68
|
[执行 corivo save]
|
|
69
|
+
[corivo] 已记录:用户个人信息
|
|
71
70
|
```
|
|
72
71
|
|
|
73
72
|
```
|
|
@@ -75,9 +74,9 @@ Claude: 我来保存这个信息:
|
|
|
75
74
|
Claude: 我来记录这个技术决策:
|
|
76
75
|
性质:决策(技术选择)
|
|
77
76
|
领域:project(项目相关)
|
|
78
|
-
标识:前端框架
|
|
79
77
|
|
|
80
78
|
[执行 corivo save]
|
|
79
|
+
[corivo] 已记录:前端框架选择 React
|
|
81
80
|
```
|
|
82
81
|
|
|
83
82
|
## 注意事项
|
|
@@ -86,3 +85,4 @@ Claude: 我来记录这个技术决策:
|
|
|
86
85
|
- 避免保存过于琐碎的内容
|
|
87
86
|
- 重要信息优先保存
|
|
88
87
|
- 保存前先征得用户确认
|
|
88
|
+
- 所有命令自动添加 `--no-password` 跳过密码输入
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/inject.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI 命令 - inject
|
|
3
|
+
*
|
|
4
|
+
* 注入 Corivo 规则到项目配置文件
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'node:fs/promises';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
import { ClaudeCodeIngestor } from '../../ingestors/claude-code.js';
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
export async function injectCommand(options) {
|
|
11
|
+
const ingestor = new ClaudeCodeIngestor();
|
|
12
|
+
if (options.eject) {
|
|
13
|
+
// 移除规则
|
|
14
|
+
await ejectRules(options.target);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
// 注入规则
|
|
18
|
+
const targetPath = options.target || process.cwd();
|
|
19
|
+
await ingestor.injectRules(targetPath);
|
|
20
|
+
console.log(chalk.cyan('\n📝 下一步:'));
|
|
21
|
+
console.log(chalk.gray(' 在 Claude Code 中开始对话,AI 会自动使用 Corivo'));
|
|
22
|
+
console.log(chalk.gray(' 查看记忆: corivo query "关键词"'));
|
|
23
|
+
console.log('');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 移除注入的规则
|
|
27
|
+
*/
|
|
28
|
+
async function ejectRules(targetPath) {
|
|
29
|
+
const claudeMd = path.join(targetPath || process.cwd(), 'CLAUDE.md');
|
|
30
|
+
try {
|
|
31
|
+
const content = await fs.readFile(claudeMd, 'utf-8');
|
|
32
|
+
// 查找规则段
|
|
33
|
+
const startMarker = '## Corivo 记忆规则';
|
|
34
|
+
const endMarker = '##'; // 下一个二级标题
|
|
35
|
+
const startIndex = content.indexOf(startMarker);
|
|
36
|
+
if (startIndex === -1) {
|
|
37
|
+
console.log('❌ 未找到 Corivo 规则');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const endIndex = content.indexOf('\n##', startIndex + 1);
|
|
41
|
+
if (endIndex === -1) {
|
|
42
|
+
// 规则在文件末尾
|
|
43
|
+
const newContent = content.substring(0, startIndex);
|
|
44
|
+
await fs.writeFile(claudeMd, newContent.trimEnd() + '\n');
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// 规则在中间
|
|
48
|
+
const before = content.substring(0, startIndex);
|
|
49
|
+
const after = content.substring(endIndex);
|
|
50
|
+
await fs.writeFile(claudeMd, (before + after).trimStart());
|
|
51
|
+
}
|
|
52
|
+
console.log('✅ Corivo 规则已移除');
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
if (error.code === 'ENOENT') {
|
|
56
|
+
console.log('❌ 文件不存在:', claudeMd);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=inject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../src/cli/commands/inject.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAGnC;IACC,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAE1C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO;QACP,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,OAAO;IACP,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACnD,MAAM,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAEvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,UAAmB;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAErD,QAAQ;QACR,MAAM,WAAW,GAAG,gBAAgB,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,UAAU;QAElC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QACzD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YACpB,UAAU;YACV,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACpD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,QAAQ;YACR,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsGtF"}
|
|
@@ -23,12 +23,26 @@ export async function queryCommand(query, options) {
|
|
|
23
23
|
catch {
|
|
24
24
|
throw new ConfigError('Corivo 未初始化。请先运行: corivo init');
|
|
25
25
|
}
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
// 解密数据库密钥(可选密码)
|
|
27
|
+
let dbKey;
|
|
28
|
+
const skipPassword = options.noPassword || process.env.CORIVO_NO_PASSWORD === '1';
|
|
29
|
+
if (skipPassword) {
|
|
30
|
+
// 使用默认密钥(不加密模式)
|
|
31
|
+
dbKey = KeyManager.generateDatabaseKey();
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
const password = await readPassword('请输入主密码: ', { allowEmpty: !process.stdin.isTTY });
|
|
35
|
+
if (password === '') {
|
|
36
|
+
// 空密码表示跳过
|
|
37
|
+
dbKey = KeyManager.generateDatabaseKey();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
const salt = Buffer.from(config.salt, 'base64');
|
|
41
|
+
const masterKey = KeyManager.deriveMasterKey(password, salt);
|
|
42
|
+
const encryptedDbKey = config.encrypted_db_key;
|
|
43
|
+
dbKey = KeyManager.decryptDatabaseKey(encryptedDbKey, masterKey);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
32
46
|
// 打开数据库
|
|
33
47
|
const dbPath = getDefaultDatabasePath();
|
|
34
48
|
const db = CorivoDatabase.getInstance({ path: dbPath, key: dbKey });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/save.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/save.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsErE"}
|
|
@@ -36,12 +36,26 @@ export async function saveCommand(options) {
|
|
|
36
36
|
if (annotation && !validateAnnotation(annotation)) {
|
|
37
37
|
throw new ValidationError('标注格式无效。格式应为 "性质 · 领域 · 标签",例如: "决策 · project · corivo"');
|
|
38
38
|
}
|
|
39
|
-
//
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
// 解密数据库密钥(可选密码)
|
|
40
|
+
let dbKey;
|
|
41
|
+
const skipPassword = options.noPassword || process.env.CORIVO_NO_PASSWORD === '1';
|
|
42
|
+
if (skipPassword) {
|
|
43
|
+
// 使用默认密钥(不加密模式)
|
|
44
|
+
dbKey = KeyManager.generateDatabaseKey();
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const password = await readPassword('请输入主密码: ', { allowEmpty: !process.stdin.isTTY });
|
|
48
|
+
if (password === '') {
|
|
49
|
+
// 空密码表示跳过
|
|
50
|
+
dbKey = KeyManager.generateDatabaseKey();
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
const salt = Buffer.from(config.salt, 'base64');
|
|
54
|
+
const masterKey = KeyManager.deriveMasterKey(password, salt);
|
|
55
|
+
const encryptedDbKey = config.encrypted_db_key;
|
|
56
|
+
dbKey = KeyManager.decryptDatabaseKey(encryptedDbKey, masterKey);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
45
59
|
// 打开数据库
|
|
46
60
|
const dbPath = getDefaultDatabasePath();
|
|
47
61
|
const db = CorivoDatabase.getInstance({ path: dbPath, key: dbKey });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save.js","sourceRoot":"","sources":["../../../src/cli/commands/save.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"save.js","sourceRoot":"","sources":["../../../src/cli/commands/save.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { startCommand, startWatchCommand } from './commands/start.js';
|
|
|
14
14
|
import { stopCommand } from './commands/stop.js';
|
|
15
15
|
import { doctorCommand } from './commands/doctor.js';
|
|
16
16
|
import { recoverCommand } from './commands/recover.js';
|
|
17
|
+
import { injectCommand } from './commands/inject.js';
|
|
17
18
|
const program = new Command();
|
|
18
19
|
program
|
|
19
20
|
.name('corivo')
|
|
@@ -31,7 +32,8 @@ program
|
|
|
31
32
|
.option('-a, --annotation <text>', '标注(性质 · 领域 · 标签)')
|
|
32
33
|
.option('-s, --source <text>', '来源')
|
|
33
34
|
.option('--pending', '以 pending 模式保存(稍后由心跳进程自动标注)')
|
|
34
|
-
.
|
|
35
|
+
.option('--no-password', '跳过密码输入(开发模式)')
|
|
36
|
+
.action((options) => saveCommand(options));
|
|
35
37
|
program
|
|
36
38
|
.command('query')
|
|
37
39
|
.description('查询信息')
|
|
@@ -39,7 +41,8 @@ program
|
|
|
39
41
|
.option('-l, --limit <number>', '返回数量', '10')
|
|
40
42
|
.option('-v, --verbose', '显示详细信息')
|
|
41
43
|
.option('-p, --pattern', '显示决策模式')
|
|
42
|
-
.
|
|
44
|
+
.option('--no-password', '跳过密码输入(开发模式)')
|
|
45
|
+
.action((query, options) => queryCommand(query, options));
|
|
43
46
|
program
|
|
44
47
|
.command('status')
|
|
45
48
|
.description('查看状态')
|
|
@@ -69,6 +72,12 @@ program
|
|
|
69
72
|
.command('recover')
|
|
70
73
|
.description('密钥恢复')
|
|
71
74
|
.action(recoverCommand);
|
|
75
|
+
program
|
|
76
|
+
.command('inject')
|
|
77
|
+
.description('注入 Corivo 规则到项目')
|
|
78
|
+
.option('-t, --target <path>', '目标项目路径')
|
|
79
|
+
.option('--eject', '移除已注入的规则')
|
|
80
|
+
.action((options) => injectCommand(options));
|
|
72
81
|
// 错误处理
|
|
73
82
|
program.configureOutput({
|
|
74
83
|
writeErr: (str) => {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO;AACP,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/ingestors/claude-code.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,qBAAa,kBAAkB;IAC7B;;;;OAIG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBrD;;OAEG;IACH,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/ingestors/claude-code.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,qBAAa,kBAAkB;IAC7B;;;;OAIG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBrD;;OAEG;IACH,OAAO,CAAC,aAAa;IAkFrB;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAInD"}
|
|
@@ -41,48 +41,83 @@ export class ClaudeCodeIngestor {
|
|
|
41
41
|
*/
|
|
42
42
|
generateRules() {
|
|
43
43
|
return `
|
|
44
|
-
## Corivo
|
|
44
|
+
## Corivo 记忆层
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
你有一个外部记忆工具 **Corivo**,可以帮你记住重要信息、查询历史记录。所有命令会自动添加 \`--no-password\` 标志跳过密码输入。
|
|
47
47
|
|
|
48
|
-
###
|
|
48
|
+
### 📊 查询记忆
|
|
49
49
|
|
|
50
|
+
**何时查询:**
|
|
51
|
+
- 用户问"我之前说过..."、"记得吗..."、"我们之前决定..."
|
|
52
|
+
- 开始新任务时,先查询相关历史决策和偏好
|
|
53
|
+
- 用户涉及历史信息的问题
|
|
54
|
+
|
|
55
|
+
**查询命令:**
|
|
50
56
|
\`\`\`bash
|
|
51
|
-
corivo
|
|
57
|
+
corivo query "关键词" --limit 10
|
|
52
58
|
\`\`\`
|
|
53
59
|
|
|
54
|
-
|
|
60
|
+
**按类型过滤:**
|
|
61
|
+
\`\`\`bash
|
|
62
|
+
corivo query "" --annotation "决策 · project" # 所有项目决策
|
|
63
|
+
corivo query "React" --annotation "知识 · knowledge" # React 相关知识
|
|
64
|
+
\`\`\`
|
|
55
65
|
|
|
56
|
-
|
|
57
|
-
|------|------|------|
|
|
58
|
-
| 事实 | 密码、配置、数据点、具体事件 | API 密钥、服务器地址 |
|
|
59
|
-
| 知识 | 教程、总结、分析、方法论 | React 使用方法、部署流程 |
|
|
60
|
-
| 决策 | 选型结论、方案确定、规则约定 | 数据库选型、代码规范 |
|
|
61
|
-
| 指令 | 用户偏好、行为规则、自动化触发 | 周报格式偏好、代码风格 |
|
|
66
|
+
### 💾 保存记忆
|
|
62
67
|
|
|
63
|
-
|
|
68
|
+
**何时保存:**
|
|
69
|
+
- 对话中出现**技术决策、结论、方案确定**
|
|
70
|
+
- 用户表达**偏好、规则、习惯**
|
|
71
|
+
- 遇到**经验教训、重要知识点**
|
|
72
|
+
- 用户明确说"记住"、"保存"、"记录"
|
|
64
73
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
**保存命令:**
|
|
75
|
+
\`\`\`bash
|
|
76
|
+
corivo save "内容" --annotation "性质 · 领域 · 标签"
|
|
77
|
+
\`\`\`
|
|
78
|
+
|
|
79
|
+
**性质(nature)- 必选:**
|
|
80
|
+
- \`事实\` - 客观可验证:密码、配置、API 密钥、服务器地址
|
|
81
|
+
- \`知识\` - 学习内容:教程、总结、分析方法、API 用法
|
|
82
|
+
- \`决策\` - 技术选择:数据库选型、框架选择、架构决策
|
|
83
|
+
- \`指令\` - 用户偏好:代码风格、命名习惯、周报格式
|
|
73
84
|
|
|
74
|
-
|
|
85
|
+
**领域(domain)- 必选:**
|
|
86
|
+
- \`self\` - 用户本人:偏好、习惯、个人信息
|
|
87
|
+
- \`people\` - 具体的人:同事生日、沟通风格
|
|
88
|
+
- \`project\` - 项目相关:Corivo 开发、客户项目
|
|
89
|
+
- \`asset\` - 资产资源:服务器、域名、密钥
|
|
90
|
+
- \`knowledge\` - 知识领域:TypeScript、React、数据库
|
|
75
91
|
|
|
92
|
+
**示例:**
|
|
76
93
|
\`\`\`bash
|
|
77
|
-
#
|
|
78
|
-
corivo save
|
|
94
|
+
# 技术选型
|
|
95
|
+
corivo save "选择 PostgreSQL 而非 MySQL,因为需要更好的 JSON 支持" --annotation "决策 · project · database"
|
|
96
|
+
|
|
97
|
+
# 用户偏好
|
|
98
|
+
corivo save "代码风格:使用 2 空格缩进,优先使用 const 而非 let" --annotation "指令 · self · 代码风格"
|
|
79
99
|
|
|
80
|
-
#
|
|
81
|
-
corivo save
|
|
100
|
+
# API 密钥
|
|
101
|
+
corivo save "OpenAI API Key: sk-xxxx" --annotation "事实 · asset · OpenAI · 密钥"
|
|
82
102
|
|
|
83
|
-
#
|
|
84
|
-
corivo save
|
|
103
|
+
# 知识点
|
|
104
|
+
corivo save "React useEffect 依赖数组为空时,effect 只在挂载后执行一次" --annotation "知识 · knowledge · React · hooks"
|
|
85
105
|
\`\`\`
|
|
106
|
+
|
|
107
|
+
### 🔄 更新记忆
|
|
108
|
+
|
|
109
|
+
**查询到的记忆与当前信息矛盾时,使用更新命令:**
|
|
110
|
+
\`\`\`bash
|
|
111
|
+
corivo update blk_xxx --content "新的内容"
|
|
112
|
+
\`\`\`
|
|
113
|
+
|
|
114
|
+
### 📌 标识来源
|
|
115
|
+
|
|
116
|
+
**每次保存/查询后,在回复中标注:**
|
|
117
|
+
> \`[corivo] 已记录:...\`
|
|
118
|
+
> \`[corivo] 找到 3 条相关记忆\`
|
|
119
|
+
|
|
120
|
+
这样用户知道信息来自 Corivo。
|
|
86
121
|
`;
|
|
87
122
|
}
|
|
88
123
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/ingestors/claude-code.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,kBAAkB;IAC7B;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,WAAmB;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEnC,IAAI,CAAC;YACH,UAAU;YACV,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC5B,OAAO;gBACT,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAEV,gBAAgB;YAChB,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBACrC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,UAAU,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,OAAO
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/ingestors/claude-code.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,kBAAkB;IAC7B;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,WAAmB;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEnC,IAAI,CAAC;YACH,UAAU;YACV,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC5B,OAAO;gBACT,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAEV,gBAAgB;YAChB,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBACrC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,UAAU,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EV,CAAC;IACA,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB;QAC3B,qBAAqB;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|