fix(api): 适配织忆 API 变更 — recall/navigate/commit 改 POST body(原 GET query)

This commit is contained in:
xiaowei
2026-09-10 18:19:49 +08:00
parent 58db5e9e19
commit 9699694d55
+1 -1
View File
@@ -1,4 +1,4 @@
var G=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var se=Object.getOwnPropertyNames;var ce=Object.prototype.hasOwnProperty;var le=(a,n,e)=>n in a?G(a,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[n]=e;var de=(a,n)=>()=>(a&&(n=a(a=0)),n);var X=(a,n)=>{for(var e in n)G(a,e,{get:n[e],enumerable:!0})},pe=(a,n,e,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of se(n))!ce.call(a,r)&&r!==e&&G(a,r,{get:()=>n[r],enumerable:!(t=oe(n,r))||t.enumerable});return a};var Z=a=>pe(G({},"__esModule",{value:!0}),a);var p=(a,n,e)=>le(a,typeof n!="symbol"?n+"":n,e);var te={};X(te,{fetchByEntity:()=>W,fetchCategories:()=>K,fetchDistillQuota:()=>B,fetchDistillStatus:()=>V,fetchGraphExport:()=>D,fetchMemories:()=>H,fetchNeighbors:()=>$,fetchPageRank:()=>R,fetchStats:()=>ue,getApiBase:()=>J,getApiKey:()=>ee,getRuntimeNamespace:()=>v,searchMemories:()=>A,setRuntimeConfig:()=>C,writeMemory:()=>j});function J(){return(S.apiUrl||he).replace(/\/$/,"")}function ee(){return S.apiKey||ge}function C(a,n,e){S.apiUrl=a,S.apiKey=n,S.namespace=e}function v(){return S.namespace||"hermes-main"}async function z(a,n={}){let e=n.method??"GET",t={"X-API-Key":ee(),"Content-Type":"application/json"},r={method:e,headers:t};n.body!==void 0&&(r.body=JSON.stringify(n.body));let o=await fetch(`${J()}${a}`,r);if(!o.ok)throw new Error(`API ${a} failed: ${o.status} ${o.statusText}`);let s=await o.text();return s?JSON.parse(s):{}}async function ue(){return z("/api/v1/stats")}async function H(a){let n=new URLSearchParams,e=a.namespace||v();e&&n.set("namespace",e),a.limit&&n.set("limit",String(a.limit)),a.offset!==void 0&&n.set("offset",String(a.offset)),a.category&&n.set("category",a.category);let t=n.toString();return z(`/api/v1/memories?${t}`)}async function A(a,n){return z("/api/v1/search/recall",{method:"POST",body:{query:a,namespace:n||v(),top_k:20}})}async function $(a){return z(`/api/v1/graph/navigate?entity=${encodeURIComponent(a)}&depth=1`)}async function D(a,n=100){return z(`/api/v1/graph/export?namespace=${a||v()}&limit=${n}`)}async function V(){return z("/api/v1/distill/status")}async function B(){return z("/api/v1/distill/quota")}async function R(a=30){return z(`/api/v1/graph/pagerank?limit=${a}`)}async function W(a){return z(`/api/v1/memories/by-entity/${encodeURIComponent(a)}`)}async function j(a,n="normal",e){return z("/api/v1/memories",{method:"POST",body:{content:a,category:n,namespace:e||v(),source:"obsidian-plugin"}})}async function K(){try{let a=await H({limit:500}),n=new Set;for(let e of a.memories)e.category&&n.add(e.category);return Array.from(n).sort()}catch{return[]}}var he,ge,S,T=de(()=>{he="http://localhost:7821",ge="zhiyi-dev-key-2026",S={}});var ye={};X(ye,{default:()=>I});module.exports=Z(ye);var x=require("obsidian");var ie=require("obsidian");T();var M="zhiyi-memory-view",O=30,N=class extends ie.ItemView{constructor(e){super(e);p(this,"memories",[]);p(this,"currentPage",0);p(this,"totalMemories",0);p(this,"status_interval",null);p(this,"categories",[]);p(this,"activeCategory","");p(this,"expandedId",null)}getViewType(){return M}getDisplayText(){return"\u7EC7\u5FC6\u8BB0\u5FC6"}async onOpen(){this.render(),this.startStatusPoll()}async onClose(){this.status_interval!==null&&window.clearInterval(this.status_interval)}startStatusPoll(){let e=window.setInterval(()=>this.renderDistillBanner(),3e4);this.status_interval=e}async renderDistillBanner(){let e=this.container.querySelector(".zhiyi-distill-banner");if(e)try{let[t,r]=await Promise.all([V(),B()]);t.queue_len>0?(e.innerHTML=`<span class="zhiyi-warn">\u26A0\uFE0F \u84B8\u998F\u961F\u5217: ${t.queue_len} \u6761</span>`,e.style.display="block"):e.style.display="none"}catch{}}async loadCategories(){try{this.categories=await K()}catch{this.categories=[]}}async render(){this.container.empty(),this.container.createEl("style",{text:`
var G=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var se=Object.getOwnPropertyNames;var ce=Object.prototype.hasOwnProperty;var le=(a,n,e)=>n in a?G(a,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[n]=e;var de=(a,n)=>()=>(a&&(n=a(a=0)),n);var X=(a,n)=>{for(var e in n)G(a,e,{get:n[e],enumerable:!0})},pe=(a,n,e,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of se(n))!ce.call(a,r)&&r!==e&&G(a,r,{get:()=>n[r],enumerable:!(t=oe(n,r))||t.enumerable});return a};var Z=a=>pe(G({},"__esModule",{value:!0}),a);var p=(a,n,e)=>le(a,typeof n!="symbol"?n+"":n,e);var te={};X(te,{fetchByEntity:()=>W,fetchCategories:()=>K,fetchDistillQuota:()=>B,fetchDistillStatus:()=>V,fetchGraphExport:()=>D,fetchMemories:()=>H,fetchNeighbors:()=>$,fetchPageRank:()=>R,fetchStats:()=>ue,getApiBase:()=>J,getApiKey:()=>ee,getRuntimeNamespace:()=>v,searchMemories:()=>A,setRuntimeConfig:()=>C,writeMemory:()=>j});function J(){return(S.apiUrl||he).replace(/\/$/,"")}function ee(){return S.apiKey||ge}function C(a,n,e){S.apiUrl=a,S.apiKey=n,S.namespace=e}function v(){return S.namespace||"hermes-main"}async function z(a,n={}){let e=n.method??"GET",t={"X-API-Key":ee(),"Content-Type":"application/json"},r={method:e,headers:t};n.body!==void 0&&(r.body=JSON.stringify(n.body));let o=await fetch(`${J()}${a}`,r);if(!o.ok)throw new Error(`API ${a} failed: ${o.status} ${o.statusText}`);let s=await o.text();return s?JSON.parse(s):{}}async function ue(){return z("/api/v1/stats")}async function H(a){let n=new URLSearchParams,e=a.namespace||v();e&&n.set("namespace",e),a.limit&&n.set("limit",String(a.limit)),a.offset!==void 0&&n.set("offset",String(a.offset)),a.category&&n.set("category",a.category);let t=n.toString();return z(`/api/v1/memories?${t}`)}async function A(a,n){return z("/api/v1/recall",{method:"POST",body:{query:a,namespace:n||v(),top_k:20}})}async function $(a){return z("/api/v1/graph/navigate",{method:"POST",body:{entity:a,max_hops:1}})}async function D(a,n=100){return z(`/api/v1/graph/export?namespace=${a||v()}&limit=${n}`)}async function V(){return z("/api/v1/distill/status")}async function B(){return z("/api/v1/distill/quota")}async function R(a=30){return z(`/api/v1/graph/pagerank?limit=${a}`)}async function W(a){return z("/api/v1/graph/navigate",{method:"POST",body:{entity:a,max_hops:2}})}async function j(a,n="normal",e){return z("/api/v1/commit",{method:"POST",body:{content:a,category:n,namespace:e||v(),source:"obsidian-plugin"}})}async function K(){try{let a=await H({limit:500}),n=new Set;for(let e of a.memories)e.category&&n.add(e.category);return Array.from(n).sort()}catch{return[]}}var he,ge,S,T=de(()=>{he="http://localhost:7821",ge="zhiyi-dev-key-2026",S={}});var ye={};X(ye,{default:()=>I});module.exports=Z(ye);var x=require("obsidian");var ie=require("obsidian");T();var M="zhiyi-memory-view",O=30,N=class extends ie.ItemView{constructor(e){super(e);p(this,"memories",[]);p(this,"currentPage",0);p(this,"totalMemories",0);p(this,"status_interval",null);p(this,"categories",[]);p(this,"activeCategory","");p(this,"expandedId",null)}getViewType(){return M}getDisplayText(){return"\u7EC7\u5FC6\u8BB0\u5FC6"}async onOpen(){this.render(),this.startStatusPoll()}async onClose(){this.status_interval!==null&&window.clearInterval(this.status_interval)}startStatusPoll(){let e=window.setInterval(()=>this.renderDistillBanner(),3e4);this.status_interval=e}async renderDistillBanner(){let e=this.container.querySelector(".zhiyi-distill-banner");if(e)try{let[t,r]=await Promise.all([V(),B()]);t.queue_len>0?(e.innerHTML=`<span class="zhiyi-warn">\u26A0\uFE0F \u84B8\u998F\u961F\u5217: ${t.queue_len} \u6761</span>`,e.style.display="block"):e.style.display="none"}catch{}}async loadCategories(){try{this.categories=await K()}catch{this.categories=[]}}async render(){this.container.empty(),this.container.createEl("style",{text:`
.zhiyi-memory-view { height: 100%; display: flex; flex-direction: column; font-size: 13px; }
.zhiyi-header { padding: 8px 12px 4px; border-bottom: 1px solid var(--background-modifier-border); }
.zhiyi-header-row1 { display: flex; align-items: center; gap: 6px; }