opencode-haimati 1.2.4 → 1.3.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.
package/README.md CHANGED
@@ -67,7 +67,7 @@ bun add -g opencode-haimati
67
67
  | 工具 | 说明 |
68
68
  |------|------|
69
69
  | `haimati_read` | 读取记忆(单条/批量,支持分页) |
70
- | `haimati_write` | 写入记忆(不允许覆盖已存在) |
70
+ | `haimati_write` | 写入新记忆(自动分配序号,不支持覆盖已存在) |
71
71
  | `haimati_search` | 搜索(标题/分类/内容,match必填) |
72
72
  | `haimati_edit` | 部分修改(支持批量,需 version 并发控制) |
73
73
  | `haimati_move` | 修改分类路径和/或标题 |
package/dist/index.js CHANGED
@@ -85,7 +85,40 @@ ${m.join(`
85
85
  `)}`),c++}let $=s.join(`
86
86
 
87
87
  `);return await i.debug(`[haimati_read] \u6279\u91CF\u8BFB\u53D6: \u5171 ${l.length} \u6761, \u6210\u529F ${c} \u6761, \u672A\u627E\u5230\u8BB0\u5FC6 ${f} \u6761, \u672A\u627E\u5230\u4E66\u9875 ${h} \u6761`),await i.info(`[haimati_read] \u6279\u91CF\u8BFB\u53D6\u7ED3\u675F: \u5171 ${l.length} \u6761, \u6210\u529F ${c} \u6761`),$}catch(n){let a=n instanceof Error?n.message:String(n),l=n instanceof Error?n.stack:"";return await i.error(`[haimati_read] \u51FA\u53C2: \u9519\u8BEF: ${a}
88
- \u5806\u6808: ${l}`),`\u9519\u8BEF: ${a}`}}}),haimati_write:x({description:"\u5C06\u65B0\u4FE1\u606F\u5199\u5165\u6D77\u9A6C\u4F53\u8BB0\u5FC6\u7CFB\u7EDF\u3002\u9700\u8981\u63D0\u4F9B\u5206\u7C7B\u8DEF\u5F84\uFF08\u5982 'xxx\u9879\u76EE/\u7B7E\u7AE0'\uFF09\u3001\u6807\u9898\u548C\u5185\u5BB9\u3002\u5982\u679C\u76F8\u540C\u5206\u7C7B\u548C\u6807\u9898\u7684\u8BB0\u5FC6\u5DF2\u5B58\u5728\uFF0C\u5219\u4F1A\u62A5\u9519\u3002",args:{category:x.schema.string().describe("\u5206\u7C7B\u8DEF\u5F84\uFF0C\u5982 'xxx\u9879\u76EE/\u7B7E\u7AE0' \u6216 '\u901A\u7528'"),title:x.schema.string().describe("\u8BB0\u5FC6\u6807\u9898\uFF0C\u5982 '\u7B7E\u7AE0\u670D\u52A1WS\u901A\u4FE1\u673A\u5236'"),content:x.schema.string().describe("\u8981\u5199\u5165\u7684\u8BE6\u7EC6\u5185\u5BB9")},async execute(t,r){let e=N(r);if(!e)return"\u9519\u8BEF\uFF1A\u7F3A\u5C11 directory \u914D\u7F6E";await i.info(`[haimati_write] \u5F00\u59CB\u5199\u5165 ${t.category}/${t.title}`),await i.debug(`[haimati_write] \u5165\u53C2: category="${t.category}", title="${t.title}", content=
88
+ \u5806\u6808: ${l}`),`\u9519\u8BEF: ${a}`}}}),haimati_write:x({description:`\u5C06\u65B0\u4FE1\u606F\u5199\u5165\u6D77\u9A6C\u4F53\u8BB0\u5FC6\u7CFB\u7EDF\u3002\u9700\u8981\u63D0\u4F9B\u5206\u7C7B\u8DEF\u5F84\u3001\u6807\u9898\u548C\u5185\u5BB9\u3002\u5982\u679C\u76F8\u540C\u5206\u7C7B\u548C\u6807\u9898\u7684\u8BB0\u5FC6\u5DF2\u5B58\u5728\uFF0C\u5219\u4F1A\u62A5\u9519\u3002
89
+
90
+ \u529F\u80FD\u8BF4\u660E\uFF1A
91
+ - \u81EA\u52A8\u5206\u914D\u65B0\u5E8F\u53F7\u5E76\u5B58\u50A8\u5230\u6587\u4EF6\u7CFB\u7EDF
92
+ - \u901A\u8FC7\u5206\u7C7B\u8DEF\u5F84\uFF08\u5982 "xxx\u9879\u76EE/\u7B7E\u7AE0"\uFF09\u7EC4\u7EC7\u8BB0\u5FC6\u7ED3\u6784
93
+ - \u76F8\u540C\u5206\u7C7B+\u6807\u9898\u7684\u8BB0\u5FC6\u4E0D\u5141\u8BB8\u91CD\u590D\u5199\u5165\uFF08\u4F1A\u62A5\u9519\u63D0\u793A\u4F7F\u7528 haimati_edit\uFF09
94
+ - \u5E8F\u53F7\u5728\u5B58\u50A8\u65F6\u4F7F\u7528 3 \u4F4D\u8865\u96F6\u683C\u5F0F\uFF08\u5982 "001"\u3001"086"\uFF09
95
+ - title \u4E0D\u80FD\u4EE5 " - \u5E8F\u53F7"\uFF083\u4F4D\u6570\u5B57\uFF09\u683C\u5F0F\u7ED3\u5C3E\uFF0C\u5E8F\u53F7\u7531\u7CFB\u7EDF\u81EA\u52A8\u5206\u914D
96
+ - \u4F7F\u7528\u6587\u4EF6\u9501\u4FDD\u8BC1\u5E76\u53D1\u5B89\u5168\uFF0C\u6700\u591A\u91CD\u8BD5 3 \u6B21\u83B7\u53D6\u9501
97
+
98
+ \u4F7F\u7528\u65F6\u673A\u5EFA\u8BAE\uFF1A
99
+ - \u9700\u8981\u8BB0\u5F55\u65B0\u77E5\u8BC6\u3001\u7ECF\u9A8C\u603B\u7ED3\u3001\u914D\u7F6E\u4FE1\u606F\u7B49\u957F\u671F\u8BB0\u5FC6\u65F6
100
+ - \u8BB0\u5F55\u9879\u76EE\u76F8\u5173\u7684\u6280\u672F\u51B3\u7B56\u3001\u67B6\u6784\u8BBE\u8BA1\u3001\u5B9E\u73B0\u7EC6\u8282
101
+ - \u8BB0\u5F55\u901A\u7528\u5F00\u53D1\u6280\u5DE7\u3001\u5DE5\u5177\u4F7F\u7528\u65B9\u6CD5\u3001\u95EE\u9898\u6392\u67E5\u8BB0\u5F55
102
+ - \u9700\u8981\u5C06\u4FE1\u606F\u7EC4\u7EC7\u5230\u5206\u7C7B\u8DEF\u5F84\u4E0B\u4FBF\u4E8E\u540E\u7EED\u68C0\u7D22\u548C\u8FFD\u6EAF
103
+
104
+ \u4F7F\u7528\u793A\u4F8B\uFF1A
105
+ - category="xxx\u9879\u76EE/\u7B7E\u7AE0", title="\u7B7E\u7AE0\u670D\u52A1WS\u901A\u4FE1\u673A\u5236", content="..." - \u5199\u5165\u9879\u76EE\u76F8\u5173\u8BB0\u5FC6
106
+ - category="\u901A\u7528", title="TypeScript\u5F00\u53D1\u6280\u5DE7", content="..." - \u5199\u5165\u901A\u7528\u6280\u5DE7
107
+ - category="xxx\u9879\u76EE/\u914D\u7F6E", title="\u4E09\u7EA7\u914D\u7F6E\u7CFB\u7EDF\u8BBE\u8BA1", content="..." - \u5199\u5165\u914D\u7F6E\u76F8\u5173\u8BB0\u5FC6
108
+
109
+ \u8FD4\u56DE\u683C\u5F0F\uFF08\u6210\u529F\uFF09\uFF1A
110
+ \u5DF2\u5199\u5165\u6D77\u9A6C\u4F53 #001
111
+ \u8DEF\u5F84: xxx\u9879\u76EE/\u7B7E\u7AE0/\u7B7E\u7AE0\u670D\u52A1WS\u901A\u4FE1\u673A\u5236
112
+ \u7248\u672C: 1
113
+
114
+ \u8FD4\u56DE\u683C\u5F0F\uFF08\u5931\u8D25-\u5DF2\u5B58\u5728\uFF09\uFF1A
115
+ \u9519\u8BEF\uFF1A\u8BB0\u5FC6\u5DF2\u5B58\u5728 #001 (xxx\u9879\u76EE/\u7B7E\u7AE0/\u7B7E\u7AE0\u670D\u52A1WS\u901A\u4FE1\u673A\u5236)\uFF0C\u5982\u9700\u66F4\u65B0\u8BF7\u4F7F\u7528 haimati_edit \u5DE5\u5177
116
+
117
+ \u8FD4\u56DE\u683C\u5F0F\uFF08\u5931\u8D25-\u6807\u9898\u683C\u5F0F\u9519\u8BEF\uFF09\uFF1A
118
+ \u9519\u8BEF\uFF1A\u6807\u9898\u4E0D\u80FD\u4EE5 " - \u5E8F\u53F7" \u683C\u5F0F\u7ED3\u5C3E\uFF0C\u5E8F\u53F7\u7531\u7CFB\u7EDF\u81EA\u52A8\u5206\u914D\uFF0C\u8BF7\u4FEE\u6539\u6807\u9898
119
+
120
+ \u8FD4\u56DE\u683C\u5F0F\uFF08\u5931\u8D25-\u9501\u8D85\u65F6\uFF09\uFF1A
121
+ \u9519\u8BEF\uFF1A\u65E0\u6CD5\u5206\u914D\u5E8F\u53F7\uFF08\u9501\u7B49\u5F85\u8D85\u65F6\uFF09`,args:{category:x.schema.string().describe("\u5206\u7C7B\u8DEF\u5F84\uFF0C\u5982 'xxx\u9879\u76EE/\u7B7E\u7AE0' \u6216 '\u901A\u7528'"),title:x.schema.string().describe("\u8BB0\u5FC6\u6807\u9898\uFF0C\u5982 '\u7B7E\u7AE0\u670D\u52A1WS\u901A\u4FE1\u673A\u5236'"),content:x.schema.string().describe("\u8981\u5199\u5165\u7684\u8BE6\u7EC6\u5185\u5BB9")},async execute(t,r){let e=N(r);if(!e)return"\u9519\u8BEF\uFF1A\u7F3A\u5C11 directory \u914D\u7F6E";await i.info(`[haimati_write] \u5F00\u59CB\u5199\u5165 ${t.category}/${t.title}`),await i.debug(`[haimati_write] \u5165\u53C2: category="${t.category}", title="${t.title}", content=
89
122
  ${t.content}`);try{let o=new Date().toLocaleString("zh-CN",{hour12:!1}),n=null;for(let c=0;c<3;c++)try{if(n=await Ft(e,t.category,t.title,o,t.content,!1),n)break;await i.warn(`[haimati_write] \u9501\u83B7\u53D6\u5931\u8D25\uFF0C\u91CD\u8BD5\u7B2C ${c+1} \u6B21`)}catch(f){let h=f instanceof Error?f.message:String(f);if(h.includes("\u8BB0\u5FC6\u5DF2\u5B58\u5728"))throw f;await i.warn(`[haimati_write] \u83B7\u53D6\u9501\u5F02\u5E38: ${h}, \u91CD\u8BD5\u7B2C ${c+1} \u6B21`)}if(n){let c=M(e,n);await i.debug(`[haimati_write] \u5206\u914D\u65B0\u5E8F\u53F7: #${n}`),await i.debug(`[haimati_write] \u4E66\u9875\u548C\u7D22\u5F15\u5DF2\u66F4\u65B0: \u4E66\u9875/${c.split(/[\\/]/).pop()}/${n}.md`);let f=`\u5DF2\u5199\u5165\u6D77\u9A6C\u4F53 #${n}
90
123
  \u8DEF\u5F84: ${t.category}/${t.title}
91
124
  \u7248\u672C: 1`;return await i.debug(`[haimati_write] \u51FA\u53C2:
@@ -106,6 +139,13 @@ ${s}`),s}catch(o){let n=o instanceof Error?o.message:String(o),a=o instanceof Er
106
139
  - \u6309\u5339\u914D\u5173\u952E\u5B57\u6570\u91CF\u964D\u5E8F\u6392\u5217\uFF0C\u5339\u914D\u8D8A\u591A\u7684\u8BB0\u5FC6\u8D8A\u9760\u524D
107
140
  - \u7ED3\u679C\u9644\u5E26\u5185\u5BB9\u6458\u8981\uFF08\u524D 3 \u884C\uFF0C\u6700\u591A 150 \u5B57\u7B26\uFF09
108
141
 
142
+ \u4F7F\u7528\u65F6\u673A\u5EFA\u8BAE\uFF1A
143
+ - \u4E0D\u786E\u5B9A\u5177\u4F53\u5E8F\u53F7\uFF0C\u9700\u8981\u6839\u636E\u5173\u952E\u8BCD\u67E5\u627E\u8BB0\u5FC6\u65F6
144
+ - \u60F3\u4E86\u89E3\u67D0\u65B9\u9762\u5DF2\u6709\u7684\u8BB0\u5FC6\u79EF\u7D2F\uFF0C\u7528\u76F8\u5173\u5173\u952E\u8BCD\u641C\u7D22
145
+ - \u4F7F\u7528 and \u6A21\u5F0F\u7CBE\u786E\u67E5\u627E\u540C\u65F6\u6D89\u53CA\u591A\u4E2A\u4E3B\u9898\u7684\u8BB0\u5FC6
146
+ - \u4F7F\u7528 or \u6A21\u5F0F\u5E7F\u6CDB\u641C\u7D22\uFF0C\u907F\u514D\u9057\u6F0F\u76F8\u5173\u5185\u5BB9
147
+ - \u641C\u7D22\u7ED3\u679C\u591A\u65F6\uFF0C\u7528 limit/offset \u5206\u9875\u6D4F\u89C8
148
+
109
149
  \u4F7F\u7528\u793A\u4F8B\uFF1A
110
150
  - keyword="\u7B7E\u7AE0", match="or" \u2192 \u641C\u7D22\u5305\u542B"\u7B7E\u7AE0"\u7684\u6240\u6709\u8BB0\u5FC6
111
151
  - keyword="WS \u7B7E\u540D", match="and" \u2192 \u641C\u7D22\u540C\u65F6\u5305\u542B"WS"\u548C"\u7B7E\u540D"\u7684\u8BB0\u5FC6
@@ -181,6 +221,12 @@ ${h}`),await i.info(`[haimati_delete] \u5220\u9664\u6210\u529F: #${s.id.padStart
181
221
  - \u4FEE\u6539\u540E\u8BB0\u5FC6\u7684\u5E8F\u53F7\u548C\u5185\u5BB9\u4E0D\u53D8
182
222
  - \u5E8F\u53F7\u652F\u6301\u81EA\u52A8\u8865\u5168\uFF1A\u8F93\u5165 '86' \u6216 '086' \u5747\u53EF\u5B9A\u4F4D\u5230\u5E8F\u53F7 086 \u7684\u8BB0\u5FC6
183
223
 
224
+ \u4F7F\u7528\u65F6\u673A\u5EFA\u8BAE\uFF1A
225
+ - \u65B0\u5EFA\u8BB0\u5FC6\u65F6\u5206\u7C7B\u8DEF\u5F84\u4E0D\u5408\u7406\uFF0C\u9700\u8981\u91CD\u65B0\u5F52\u7C7B
226
+ - \u9879\u76EE\u91CD\u6784\u6216\u91CD\u547D\u540D\uFF0C\u9700\u8981\u66F4\u65B0\u76F8\u5173\u8BB0\u5FC6\u7684\u5206\u7C7B\u8DEF\u5F84
227
+ - \u8BB0\u5FC6\u5185\u5BB9\u53D1\u751F\u53D8\u5316\uFF0C\u6807\u9898\u9700\u8981\u540C\u6B65\u66F4\u65B0\u4EE5\u51C6\u786E\u53CD\u6620\u5185\u5BB9
228
+ - \u53D1\u73B0\u5206\u7C7B\u8DEF\u5F84\u62FC\u5199\u9519\u8BEF\u6216\u5C42\u7EA7\u4E0D\u5408\u7406\uFF0C\u9700\u8981\u4FEE\u6B63
229
+
184
230
  \u4F7F\u7528\u793A\u4F8B\uFF1A
185
231
  - query="086", newCategory="xxx\u9879\u76EE/\u5BA2\u6237\u7AEF" \u2192 \u4EC5\u5C06\u5206\u7C7B\u79FB\u52A8\u5230"xxx\u9879\u76EE/\u5BA2\u6237\u7AEF"
186
232
  - query="1", newTitle="\u65B0\u7684\u6807\u9898" \u2192 \u4EC5\u5C06\u6807\u9898\u6539\u4E3A"\u65B0\u7684\u6807\u9898"
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-haimati",
3
- "version": "1.2.4",
3
+ "version": "1.3.0",
4
4
  "description": "OpenCode plugin for a file-based memory system inspired by the hippocampus, providing long-term memory storage and retrieval across sessions.",
5
5
  "main": "./dist/index.js",
6
6
  "type": "module",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-haimati",
3
- "version": "1.2.4",
3
+ "version": "1.3.0",
4
4
  "description": "OpenCode plugin for a file-based memory system inspired by the hippocampus, providing long-term memory storage and retrieval across sessions.",
5
5
  "main": "./dist/index.js",
6
6
  "type": "module",