opencode-haimati 1.4.5 → 1.5.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/dist/index.js +4 -4
- package/dist/package.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -298,18 +298,18 @@ ${h}`),await u.info(`[haimati_list] \u5217\u51FA\u6210\u529F: ${t.category}${t.d
|
|
|
298
298
|
${d}`),await u.info("[haimati_list] \u5217\u51FA\u6210\u529F: \u5168\u90E8 (\u8BE6\u7EC6\u6A21\u5F0F)"),d}let o=`## \u6D77\u9A6C\u4F53\u7D22\u5F15
|
|
299
299
|
|
|
300
300
|
${st(i)||"(\u7A7A)"}`;return await u.debug(`[haimati_list] \u51FA\u53C2:
|
|
301
|
-
${o}`),await u.info("[haimati_list] \u5217\u51FA\u6210\u529F: \u5168\u90E8"),o}catch(i){return await k(i,"haimati_list")}}})}}import{readFile as le,rm as fe}from"node:fs/promises";import{basename as j,dirname as v,join as ut}from"node:path";import{fileURLToPath as de}from"node:url";var ge="opencode-haimati";function jt(t,n){if(!n)return;let e=new AbortController,r=setTimeout(()=>e.abort(),1e4);me(e.signal).then(i=>{i.updated&&(u.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 me(t){let n=await pe(ge);if(!n)return{updated:!1};let e=await lt(ut(n,"package.json"));if(!e?.name||!e.version)return{updated:!1};let r=await $e(e.name,t);if(!r||!xe(r,e.version))return{updated:!1};let i=await he(n,e.name);if(!i)return{updated:!1};try{await fe(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 pe(t){let n=v(de(import.meta.url));for(;;){if((await lt(ut(n,"package.json")))?.name===t)return j(n)==="dist"?v(n):n;let r=v(n);if(r===n)return;n=r}}async function he(t,n){let e=v(t),r=j(e).startsWith("@")?v(e):e;if(j(r)!=="node_modules")return;let i=v(r),a=await lt(ut(i,"package.json")),o=ye(i,n)??a?.dependencies?.[n];if(!(!o||!we(o)))return i}function ye(t,n){if(n.startsWith("@")){let[i,a]=n.split("/");if(!i||!a||j(v(t))!==i)return;let o=`${a}@`,c=j(t);return c.startsWith(o)?c.slice(o.length):void 0}let e=`${n}@`,r=j(t);return r.startsWith(e)?r.slice(e.length):void 0}function we(t){let n=t.trim();return n?!!(n==="latest"||n==="*"||/^[~^]/.test(n)||/^(?:>=|>|<=|<)/.test(n)||/\s+(?:\|\||-|[<>=])\s+/.test(n)):!1}async function lt(t){try{let n=JSON.parse(await le(t,"utf-8"));return n&&typeof n=="object"?n:void 0}catch{return}}async function $e(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 xe(t,n){let e=qt(t),r=qt(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 a=e.pre[i],o=r.pre[i];if(a===void 0)return!1;if(o===void 0)return!0;if(a===o)continue;let c=/^\d+$/.test(a)?Number(a):void 0,s=/^\d+$/.test(o)?Number(o):void 0;return c!==void 0&&s!==void 0?c>s:c!==void 0?!1:s!==void 0?!0:a>o}return!1}function qt(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 Pe="2026-05-
|
|
301
|
+
${o}`),await u.info("[haimati_list] \u5217\u51FA\u6210\u529F: \u5168\u90E8"),o}catch(i){return await k(i,"haimati_list")}}})}}import{readFile as le,rm as fe}from"node:fs/promises";import{basename as j,dirname as v,join as ut}from"node:path";import{fileURLToPath as de}from"node:url";var ge="opencode-haimati";function jt(t,n){if(!n)return;let e=new AbortController,r=setTimeout(()=>e.abort(),1e4);me(e.signal).then(i=>{i.updated&&(u.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 me(t){let n=await pe(ge);if(!n)return{updated:!1};let e=await lt(ut(n,"package.json"));if(!e?.name||!e.version)return{updated:!1};let r=await $e(e.name,t);if(!r||!xe(r,e.version))return{updated:!1};let i=await he(n,e.name);if(!i)return{updated:!1};try{await fe(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 pe(t){let n=v(de(import.meta.url));for(;;){if((await lt(ut(n,"package.json")))?.name===t)return j(n)==="dist"?v(n):n;let r=v(n);if(r===n)return;n=r}}async function he(t,n){let e=v(t),r=j(e).startsWith("@")?v(e):e;if(j(r)!=="node_modules")return;let i=v(r),a=await lt(ut(i,"package.json")),o=ye(i,n)??a?.dependencies?.[n];if(!(!o||!we(o)))return i}function ye(t,n){if(n.startsWith("@")){let[i,a]=n.split("/");if(!i||!a||j(v(t))!==i)return;let o=`${a}@`,c=j(t);return c.startsWith(o)?c.slice(o.length):void 0}let e=`${n}@`,r=j(t);return r.startsWith(e)?r.slice(e.length):void 0}function we(t){let n=t.trim();return n?!!(n==="latest"||n==="*"||/^[~^]/.test(n)||/^(?:>=|>|<=|<)/.test(n)||/\s+(?:\|\||-|[<>=])\s+/.test(n)):!1}async function lt(t){try{let n=JSON.parse(await le(t,"utf-8"));return n&&typeof n=="object"?n:void 0}catch{return}}async function $e(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 xe(t,n){let e=qt(t),r=qt(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 a=e.pre[i],o=r.pre[i];if(a===void 0)return!1;if(o===void 0)return!0;if(a===o)continue;let c=/^\d+$/.test(a)?Number(a):void 0,s=/^\d+$/.test(o)?Number(o):void 0;return c!==void 0&&s!==void 0?c>s:c!==void 0?!1:s!==void 0?!0:a>o}return!1}function qt(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 Pe="2026-05-18 23:49:00",Nt=!1;function be(t){return t.type==="text"}var kn=async t=>{await $t(),Nt||(Nt=!0,await u.debug(`[HaimatiPlugin] \u4EE3\u7801\u6700\u540E\u4FEE\u6539\u65E5\u671F: ${Pe}`));let n=O(t.directory),e=At(),r=new Set,i=new Set,a=new Set,o=new Map,c=1e4,s=new Set;return jt(t,n.autoUpdate!==!1),{tool:e,event:async({event:d})=>{if(d.type==="message.updated"&&d.properties.info.role==="assistant"){let l=d.properties.info;if(l.finish==="stop"&&!r.has(l.id)){if(r.add(l.id),a.has(l.id)){a.delete(l.id);return}if(i.has(l.sessionID))return;let f=o.get(l.sessionID);if(f&&Date.now()<f)return;n.autoWrite===!0&&(i.add(l.sessionID),u.info(`[autoWrite] \u5F00\u59CB\u5F02\u6B65\u8BB0\u5FC6\u5199\u5165 session=${l.sessionID}`),t.client.session.prompt({path:{id:l.sessionID},body:{parts:[{type:"text",text:`\u56DE\u987E\u5F53\u524D\u4F1A\u8BDD\uFF0C\u5BF9\u6D77\u9A6C\u4F53\u8BB0\u5FC6\u8FDB\u884C\u7EF4\u62A4\u3002
|
|
302
302
|
|
|
303
303
|
\u4F60\u7684\u804C\u8D23\uFF1A
|
|
304
304
|
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
|
|
305
305
|
2. \u4FEE\u6539\u9519\u8BEF - \u53D1\u73B0\u5DF2\u6709\u8BB0\u5FC6\u6709\u8BEF\u65F6\uFF0C\u5219\u4FEE\u6B63
|
|
306
306
|
3. \u5220\u9664\u8FC7\u671F - \u53D1\u73B0\u8FC7\u65F6\u6216\u65E0\u6548\u7684\u4FE1\u606F\uFF0C\u5219\u5220\u9664
|
|
307
307
|
4. \u6574\u5408\u91CD\u590D - \u5185\u5BB9\u91CD\u590D\u7684\u8BB0\u5FC6\uFF0C\u5408\u5E76\u540E\u5220\u9664\u5197\u4F59
|
|
308
|
-
5. \u8C03\u6574\u5206\u7C7B - \u5982\u679C\
|
|
308
|
+
5. \u8C03\u6574\u5206\u7C7B - \u5982\u679C\u5206\u7C7B\u4E0D\u5408\u7406\u7684\uFF0C\u5219\u8C03\u6574
|
|
309
309
|
|
|
310
310
|
\u9075\u5FAA\u539F\u5219\uFF1A
|
|
311
311
|
- \u8BB0\u5FC6\u5185\u5BB9\u4E0D\u91CD\u590D
|
|
312
|
-
- \u5206\u7C7B\u7ED3\u6784\u4FDD\u6301\u4E00\u81F4
|
|
312
|
+
- \u5206\u7C7B\u7ED3\u6784\u4FDD\u6301\u4E00\u81F4
|
|
313
313
|
- \u8282\u7EA6TOKEN\uFF0C\u7CBE\u7B80\u63CF\u8FF0
|
|
314
314
|
- \u9519\u8BEF\u6216\u8FC7\u671F\u7684\u4FE1\u606F\u76F4\u63A5\u5220\u9664\u6216\u4FEE\u6539
|
|
315
315
|
- \u4E0D\u786E\u5B9A\u5206\u7C7B\u65F6\uFF0C\u5148\u7528 haimati_list \u67E5\u770B\u73B0\u6709\u7ED3\u6784
|
|
@@ -329,5 +329,5 @@ ${o}`),await u.info("[haimati_list] \u5217\u51FA\u6210\u529F: \u5168\u90E8"),o}c
|
|
|
329
329
|
- \u4FEE\u6539\u9519\u8BEF\u7684\u6D77\u9A6C\u4F53\u8BB0\u5FC6
|
|
330
330
|
- \u5220\u9664\u8FC7\u671F\u7684\u4FE1\u606F
|
|
331
331
|
- \u6574\u5408\u91CD\u590D\u7684\u8BB0\u5FC6
|
|
332
|
-
- \u5982\u679C\u5B58\u5728\
|
|
332
|
+
- \u5982\u679C\u5B58\u5728\u5206\u7C7B\u4E0D\u5408\u7406\u7684\uFF0C\u5219\u8C03\u6574
|
|
333
333
|
</\u6D77\u9A6C\u4F53\u81EA\u52A8\u63D0\u793A>`,synthetic:!0}),await u.debug("[chat.message] \u6CE8\u5165\u5DE5\u4F5C\u89C4\u5219\u63D0\u793A")}}}};export{kn as HaimatiPlugin};
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-haimati",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.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.
|
|
3
|
+
"version": "1.5.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",
|