opencode-haimati 2.1.4 → 2.1.6
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/dist/index.js +3 -2
- package/dist/package.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -129,7 +129,7 @@ ${l}`),await c.info(`[haimati_list] \u5217\u51FA\u6210\u529F: ${t.category}${t.d
|
|
|
129
129
|
${l}`),await c.info("[haimati_list] \u5217\u51FA\u6210\u529F: \u5168\u90E8 (\u8BE6\u7EC6\u6A21\u5F0F)"),l}let a=`## \u6D77\u9A6C\u4F53\u7D22\u5F15
|
|
130
130
|
|
|
131
131
|
${$t(i)||"(\u7A7A)"}`;return await c.debug(`[haimati_list] \u51FA\u53C2:
|
|
132
|
-
${a}`),await c.info("[haimati_list] \u5217\u51FA\u6210\u529F: \u5168\u90E8"),a}catch(i){return await W(i,"haimati_list")}}})}}import{readFile as Qe,rm as Ve}from"node:fs/promises";import{basename as J,dirname as O,join as _t}from"node:path";import{fileURLToPath as Ye}from"node:url";var Xe="opencode-haimati";function se(t,n){if(!n)return;let e=new AbortController,r=setTimeout(()=>e.abort(),1e4);Ze(e.signal).then(i=>{i.updated&&(c.info(`[autoUpdate] \u53D1\u73B0\u65B0\u7248\u672C: ${i.current} \u2192 ${i.latest}`),setTimeout(()=>{t.client.tui.showToast({body:{title:"\u6D77\u9A6C\u4F53\u8BB0\u5FC6\u63D2\u4EF6\u66F4\u65B0",message:`${i.name} \u5DF2\u4ECE ${i.current} \u66F4\u65B0\u5230 ${i.latest}\uFF0C\u91CD\u542F OpenCode \u5B8C\u6210\u66F4\u65B0`,variant:"info"}})},5e3))}).catch(()=>{}).finally(()=>clearTimeout(r))}async function Ze(t){let n=await tn(Xe);if(!n)return{updated:!1};let e=await St(_t(n,"package.json"));if(!e?.name||!e.version)return{updated:!1};let r=await on(e.name,t);if(!r||!an(r,e.version))return{updated:!1};let i=await en(n,e.name);if(!i)return{updated:!1};try{await Ve(i,{recursive:!0,force:!0})}catch{return{updated:!1,error:"remove_failed",name:e.name,current:e.version,latest:r}}return{updated:!0,name:e.name,current:e.version,latest:r}}async function tn(t){let n=O(Ye(import.meta.url));for(;;){if((await St(_t(n,"package.json")))?.name===t)return J(n)==="dist"?O(n):n;let r=O(n);if(r===n)return;n=r}}async function en(t,n){let e=O(t),r=J(e).startsWith("@")?O(e):e;if(J(r)!=="node_modules")return;let i=O(r),o=await St(_t(i,"package.json")),a=nn(i,n)??o?.dependencies?.[n];if(!(!a||!rn(a)))return i}function nn(t,n){if(n.startsWith("@")){let[i,o]=n.split("/");if(!i||!o||J(O(t))!==i)return;let a=`${o}@`,l=J(t);return l.startsWith(a)?l.slice(a.length):void 0}let e=`${n}@`,r=J(t);return r.startsWith(e)?r.slice(e.length):void 0}function rn(t){let n=t.trim();return n?!!(n==="latest"||n==="*"||/^[~^]/.test(n)||/^(?:>=|>|<=|<)/.test(n)||/\s+(?:\|\||-|[<>=])\s+/.test(n)):!1}async function St(t){try{let n=JSON.parse(await Qe(t,"utf-8"));return n&&typeof n=="object"?n:void 0}catch{return}}async function on(t,n){try{let e=await fetch(`https://registry.npmjs.org/${encodeURIComponent(t)}/latest`,{signal:n});if(!e.ok)return;let r=await e.json();if(!r||typeof r!="object")return;let i=r.version;return typeof i=="string"?i:void 0}catch{return}}function an(t,n){let e=ae(t),r=ae(n);if(!e||!r)return!1;for(let i=0;i<3;i++)if(e.parts[i]!==r.parts[i])return e.parts[i]>r.parts[i];if(!e.pre.length&&r.pre.length)return!0;if(e.pre.length&&!r.pre.length)return!1;for(let i=0;i<Math.max(e.pre.length,r.pre.length);i++){let o=e.pre[i],a=r.pre[i];if(o===void 0)return!1;if(a===void 0)return!0;if(o===a)continue;let l=/^\d+$/.test(o)?Number(o):void 0,u=/^\d+$/.test(a)?Number(a):void 0;return l!==void 0&&u!==void 0?l>u:l!==void 0?!1:u!==void 0?!0:o>a}return!1}function ae(t){let n=t.match(/^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+.+)?$/);if(n)return{parts:[Number(n[1]),Number(n[2]),Number(n[3])],pre:n[4]?.split(".")??[]}}var sn="2026-06-05
|
|
132
|
+
${a}`),await c.info("[haimati_list] \u5217\u51FA\u6210\u529F: \u5168\u90E8"),a}catch(i){return await W(i,"haimati_list")}}})}}import{readFile as Qe,rm as Ve}from"node:fs/promises";import{basename as J,dirname as O,join as _t}from"node:path";import{fileURLToPath as Ye}from"node:url";var Xe="opencode-haimati";function se(t,n){if(!n)return;let e=new AbortController,r=setTimeout(()=>e.abort(),1e4);Ze(e.signal).then(i=>{i.updated&&(c.info(`[autoUpdate] \u53D1\u73B0\u65B0\u7248\u672C: ${i.current} \u2192 ${i.latest}`),setTimeout(()=>{t.client.tui.showToast({body:{title:"\u6D77\u9A6C\u4F53\u8BB0\u5FC6\u63D2\u4EF6\u66F4\u65B0",message:`${i.name} \u5DF2\u4ECE ${i.current} \u66F4\u65B0\u5230 ${i.latest}\uFF0C\u91CD\u542F OpenCode \u5B8C\u6210\u66F4\u65B0`,variant:"info"}})},5e3))}).catch(()=>{}).finally(()=>clearTimeout(r))}async function Ze(t){let n=await tn(Xe);if(!n)return{updated:!1};let e=await St(_t(n,"package.json"));if(!e?.name||!e.version)return{updated:!1};let r=await on(e.name,t);if(!r||!an(r,e.version))return{updated:!1};let i=await en(n,e.name);if(!i)return{updated:!1};try{await Ve(i,{recursive:!0,force:!0})}catch{return{updated:!1,error:"remove_failed",name:e.name,current:e.version,latest:r}}return{updated:!0,name:e.name,current:e.version,latest:r}}async function tn(t){let n=O(Ye(import.meta.url));for(;;){if((await St(_t(n,"package.json")))?.name===t)return J(n)==="dist"?O(n):n;let r=O(n);if(r===n)return;n=r}}async function en(t,n){let e=O(t),r=J(e).startsWith("@")?O(e):e;if(J(r)!=="node_modules")return;let i=O(r),o=await St(_t(i,"package.json")),a=nn(i,n)??o?.dependencies?.[n];if(!(!a||!rn(a)))return i}function nn(t,n){if(n.startsWith("@")){let[i,o]=n.split("/");if(!i||!o||J(O(t))!==i)return;let a=`${o}@`,l=J(t);return l.startsWith(a)?l.slice(a.length):void 0}let e=`${n}@`,r=J(t);return r.startsWith(e)?r.slice(e.length):void 0}function rn(t){let n=t.trim();return n?!!(n==="latest"||n==="*"||/^[~^]/.test(n)||/^(?:>=|>|<=|<)/.test(n)||/\s+(?:\|\||-|[<>=])\s+/.test(n)):!1}async function St(t){try{let n=JSON.parse(await Qe(t,"utf-8"));return n&&typeof n=="object"?n:void 0}catch{return}}async function on(t,n){try{let e=await fetch(`https://registry.npmjs.org/${encodeURIComponent(t)}/latest`,{signal:n});if(!e.ok)return;let r=await e.json();if(!r||typeof r!="object")return;let i=r.version;return typeof i=="string"?i:void 0}catch{return}}function an(t,n){let e=ae(t),r=ae(n);if(!e||!r)return!1;for(let i=0;i<3;i++)if(e.parts[i]!==r.parts[i])return e.parts[i]>r.parts[i];if(!e.pre.length&&r.pre.length)return!0;if(e.pre.length&&!r.pre.length)return!1;for(let i=0;i<Math.max(e.pre.length,r.pre.length);i++){let o=e.pre[i],a=r.pre[i];if(o===void 0)return!1;if(a===void 0)return!0;if(o===a)continue;let l=/^\d+$/.test(o)?Number(o):void 0,u=/^\d+$/.test(a)?Number(a):void 0;return l!==void 0&&u!==void 0?l>u:l!==void 0?!1:u!==void 0?!0:o>a}return!1}function ae(t){let n=t.match(/^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+.+)?$/);if(n)return{parts:[Number(n[1]),Number(n[2]),Number(n[3])],pre:n[4]?.split(".")??[]}}var sn="2026-06-05 15:01:06",ce=!1;function cn(t){return t.type==="text"&&t.ignored!==!0}var Si=async t=>{await jt(),ce||(ce=!0,await c.debug(`[HaimatiPlugin] \u4EE3\u7801\u6700\u540E\u4FEE\u6539\u65E5\u671F: ${sn}`));let n=X(t.directory),e=oe(),r=new Set,i=new Set,o=new Set,a=new Map,l=1e4,u=new Set,d=new Map;function m(f){let s=d.get(f);return s||(s=new Map,d.set(f,s)),s}return se(t,n.autoUpdate!==!1),ne(t.directory).then(f=>{f>0&&c.info(`[HaimatiPlugin] \u542F\u52A8\u65F6\u6E05\u7406\u4E86 ${f} \u4E2A\u4E0D\u5B58\u5728\u7684\u6587\u4EF6\u5173\u8054`)}).catch(f=>{c.warn(`[HaimatiPlugin] \u6E05\u7406\u8FC7\u671F\u6587\u4EF6\u5173\u8054\u5931\u8D25: ${f instanceof Error?f.message:String(f)}`)}),{tool:e,event:async({event:f})=>{if(f.type==="message.updated"&&f.properties.info.role==="assistant"){let s=f.properties.info;if(s.finish==="stop"&&!r.has(s.id)){if(r.add(s.id),o.has(s.id)){o.delete(s.id);return}if(i.has(s.sessionID))return;let g=a.get(s.sessionID);if(g&&Date.now()<g)return;n.autoWrite===!0&&(i.add(s.sessionID),c.info(`[autoWrite] \u5F00\u59CB\u5F02\u6B65\u8BB0\u5FC6\u5199\u5165 session=${s.sessionID}`),t.client.session.prompt({path:{id:s.sessionID},body:{parts:[{type:"text",text:`\u56DE\u987E\u5F53\u524D\u4F1A\u8BDD\uFF0C\u5BF9\u6D77\u9A6C\u4F53\u8BB0\u5FC6\u8FDB\u884C\u7EF4\u62A4\u3002
|
|
133
133
|
|
|
134
134
|
\u4F60\u7684\u804C\u8D23\uFF1A
|
|
135
135
|
1. \u5199\u5165\u65B0\u77E5\u8BC6 - \u67B6\u6784\u51B3\u7B56\u3001API\u7528\u6CD5\u3001Bug\u6839\u56E0\u4E0E\u4FEE\u590D\u3001\u914D\u7F6E\u65B9\u6CD5\u3001\u5F00\u53D1\u89C4\u8303\u7B49\u503C\u5F97\u957F\u671F\u8BB0\u5F55\u7684\u77E5\u8BC6
|
|
@@ -155,7 +155,8 @@ ${a}`),await c.info("[haimati_list] \u5217\u51FA\u6210\u529F: \u5168\u90E8"),a}c
|
|
|
155
155
|
2. \u7B80\u5355\u4EFB\u52A1 \u2192 \u8DF3\u8FC7\uFF0C\u8282\u7EA6 token
|
|
156
156
|
3. \u5B66\u5230\u65B0\u77E5\u8BC6 \u2192 \u5199\u5165\u8BB0\u5FC6\u5E76\u5173\u8054\u6587\u4EF6\u8DEF\u5F84
|
|
157
157
|
4. \u6301\u7EED\u7EF4\u62A4 \u2192 \u7EA0\u6B63\u9519\u8BEF\u3001\u5408\u5E76\u91CD\u590D\u3001\u5220\u9664\u8FC7\u671F\u3001\u8C03\u6574\u5206\u7C7B
|
|
158
|
-
5. \
|
|
158
|
+
5. \u5185\u5BB9\u8981\u548C\u6807\u9898\u76F8\u5173\uFF0C\u4E0D\u76F8\u5173\u7684\u5185\u5BB9\u62C6\u5206\u5230\u65B0\u8BB0\u5FC6
|
|
159
|
+
6. \u7528\u6237\u8BA9\u4F60\u8BB0\u4F4F\u7684\u4E8B\u60C5\uFF0C\u4F60\u8981\u8BB0\u5230\u6D77\u9A6C\u4F53\u91CC
|
|
159
160
|
</system-reminder>`,synthetic:!0});try{let p=await L(t.directory),h=new Set;for(let y of["./","."])if(p[y])for(let w of p[y])h.add(w);if(h.size>0){let y=await x(t.directory),w=[],I=m(s.message.sessionID);for(let _ of h){let S=F(y,_);if(!S)continue;let M=await P(t.directory,S.id);if(!M)continue;let B=G(p,S.id);B.length>0&&(M.systemMeta={...M.systemMeta,file_paths:B.join(", ")});let A=j(S,M);w.push(`===== #${S.id.padStart(3,"0")} =====
|
|
160
161
|
${A}`),I.set(_,M.updatedAt)}w.length>0&&s.parts.push({id:`prt_root_memo_${Date.now()}`,sessionID:g[0].sessionID??s.message.sessionID,messageID:g[0].messageID??s.message.id,type:"text",text:`<system-reminder>
|
|
161
162
|
\u9879\u76EE\u6839\u76EE\u5F55\u5173\u8054\u4E86\u4EE5\u4E0B\u6D77\u9A6C\u4F53\u8BB0\u5FC6\uFF08\u9879\u76EE\u5168\u5C40\u4E0A\u4E0B\u6587\uFF09\uFF1A
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-haimati",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.6",
|
|
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": "2.1.
|
|
3
|
+
"version": "2.1.6",
|
|
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",
|