toolnet-memory 0.3.5 → 0.3.7
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/bin/toolnet-memory +44 -111
- package/bundle/full-index.js +23 -22
- package/bundle/graph-cli.js +1 -0
- package/bundle/graph-index.js +1 -1
- package/bundle/graph-ui.js +3 -0
- package/bundle/help-cli.js +4 -0
- package/bundle/impact.js +2 -2
- package/bundle/mcp.js +20 -20
- package/bundle/model-cli.js +2 -0
- package/bundle/public/index.html +2987 -0
- package/bundle/public/vendor/3d-force-graph.min.js +5 -0
- package/bundle/runtime.js +6 -6
- package/bundle/semantic.js +6 -6
- package/bundle/shimmer-worker.js +1 -0
- package/bundle/status-cli.js +4 -0
- package/package.json +1 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var v=[{id:"openai-compatible",label:"OpenAI-compatible",requiresApiKey:!0,requiresBaseUrl:!0,transport:"openai-compatible"},{id:"alibaba",label:"Alibaba / DashScope",requiresApiKey:!0,requiresBaseUrl:!0,transport:"openai-compatible"},{id:"openrouter",label:"OpenRouter",defaultBaseUrl:"https://openrouter.ai/api/v1",requiresApiKey:!0,transport:"openai-compatible"},{id:"groq",label:"Groq",defaultBaseUrl:"https://api.groq.com/openai/v1",requiresApiKey:!0,transport:"openai-compatible"},{id:"deepseek",label:"DeepSeek",defaultBaseUrl:"https://api.deepseek.com",defaultModel:"deepseek-v4-flash",requiresApiKey:!0,transport:"openai-compatible"},{id:"nvidia",label:"NVIDIA NIM",defaultBaseUrl:"https://integrate.api.nvidia.com/v1",defaultModel:"deepseek-ai/deepseek-v4-pro",requiresApiKey:!0,transport:"openai-compatible"},{id:"gemini",label:"Gemini",defaultBaseUrl:"https://generativelanguage.googleapis.com/v1beta",requiresApiKey:!0,transport:"gemini"},{id:"huggingface",label:"Hugging Face",defaultBaseUrl:"https://router.huggingface.co/v1",requiresApiKey:!0,transport:"openai-compatible"},{id:"ollama",label:"Ollama / Local",defaultBaseUrl:"http://127.0.0.1:11434/v1",requiresApiKey:!1,transport:"openai-compatible"},{id:"custom",label:"Custom endpoint",requiresApiKey:!1,requiresBaseUrl:!0,transport:"openai-compatible"},{id:"cloudflare",label:"Cloudflare Workers AI",requiresApiKey:!0,requiresAccountId:!0,transport:"cloudflare"}];function m(e){let r=v.find(n=>n.id===e);if(!r)throw new Error(`Unsupported AI provider: ${e}`);return r}function _(e){return v.some(r=>r.id===e)}function o(e){return process.env[e]?.trim()||void 0}function t(...e){return e.find(r=>!!r?.trim())}function y(){if(o("GROQ_API_KEY"))return"groq";if(o("DEEPSEEK_API_KEY"))return"deepseek";if(o("NVIDIA_API_KEY")||o("NVIDIA_NIM_API_KEY"))return"nvidia";if(o("OPENROUTER_API_KEY"))return"openrouter";if(o("ALIBABA_API_KEY")||o("DASHSCOPE_API_KEY"))return"alibaba";if(o("GEMINI_API_KEY")||o("GOOGLE_API_KEY"))return"gemini";if(o("CLOUDFLARE_API_TOKEN")&&o("CLOUDFLARE_ACCOUNT_ID"))return"cloudflare";if(o("HF_TOKEN"))return"huggingface";if(o("OLLAMA_MODEL")||o("OLLAMA_BASE_URL"))return"ollama"}function K(){let e=o("TOOLNET_LLM_PROVIDER");return e&&_(e)?e:y()??"openai-compatible"}function U(e){let r=m(e);switch(e){case"alibaba":return{provider:e,apiKey:t(o("ALIBABA_API_KEY"),o("DASHSCOPE_API_KEY")),baseUrl:t(o("ALIBABA_BASE_URL"),o("DASHSCOPE_BASE_URL"),r.defaultBaseUrl),model:t(o("ALIBABA_MODEL"),o("DASHSCOPE_MODEL"))};case"openrouter":return{provider:e,apiKey:o("OPENROUTER_API_KEY"),baseUrl:t(o("OPENROUTER_BASE_URL"),r.defaultBaseUrl),model:o("OPENROUTER_MODEL")};case"groq":return{provider:e,apiKey:o("GROQ_API_KEY"),baseUrl:t(o("GROQ_BASE_URL"),r.defaultBaseUrl),model:o("GROQ_MODEL")};case"deepseek":return{provider:e,apiKey:o("DEEPSEEK_API_KEY"),baseUrl:t(o("DEEPSEEK_BASE_URL"),r.defaultBaseUrl),model:t(o("DEEPSEEK_MODEL"),r.defaultModel)};case"nvidia":return{provider:e,apiKey:t(o("NVIDIA_API_KEY"),o("NVIDIA_NIM_API_KEY")),baseUrl:t(o("NVIDIA_BASE_URL"),o("NVIDIA_NIM_BASE_URL"),r.defaultBaseUrl),model:t(o("NVIDIA_MODEL"),o("NVIDIA_NIM_MODEL"),r.defaultModel)};case"gemini":return{provider:e,apiKey:t(o("GEMINI_API_KEY"),o("GOOGLE_API_KEY")),baseUrl:t(o("GEMINI_BASE_URL"),r.defaultBaseUrl),model:o("GEMINI_MODEL")};case"huggingface":return{provider:e,apiKey:o("HF_TOKEN"),baseUrl:t(o("HF_INFERENCE_BASE_URL"),r.defaultBaseUrl),model:t(o("HF_LLM_MODEL"),o("HF_MODEL"))};case"ollama":return{provider:e,apiKey:o("OLLAMA_API_KEY"),baseUrl:t(o("OLLAMA_BASE_URL"),r.defaultBaseUrl),model:o("OLLAMA_MODEL")};case"cloudflare":return{provider:e,accountId:o("CLOUDFLARE_ACCOUNT_ID"),apiKey:o("CLOUDFLARE_API_TOKEN"),baseUrl:o("CLOUDFLARE_AI_BASE_URL"),model:o("CLOUDFLARE_MODEL")};case"custom":return{provider:e,apiKey:o("CUSTOM_AI_API_KEY"),baseUrl:o("CUSTOM_AI_BASE_URL"),model:o("CUSTOM_AI_MODEL")};default:return{provider:"openai-compatible",apiKey:t(o("OPENAI_API_KEY"),o("MODEL_API_KEY")),baseUrl:t(o("OPENAI_BASE_URL"),o("MODEL_BASE_URL")),model:t(o("OPENAI_MODEL"),o("MODEL_NAME"))}}}function B(){let e=o("TOOLNET_LLM_PROVIDER"),r=e&&_(e)?e:K(),n=m(r),i=U(r);return{provider:r,apiKey:t(o("TOOLNET_LLM_API_KEY"),i.apiKey),baseUrl:t(o("TOOLNET_LLM_BASE_URL"),i.baseUrl,n.defaultBaseUrl),model:t(o("TOOLNET_LLM_MODEL"),i.model,n.defaultModel),accountId:t(o("TOOLNET_LLM_ACCOUNT_ID"),i.accountId)}}function S(){let e=o("TOOLNET_EMBEDDING_PROVIDER");return e==="local"?"local":e&&_(e)?e:o("HF_TOKEN")||o("HF_EMBEDDING_MODEL")?"huggingface":"local"}function x(){let e=S();if(e==="local")return{provider:"local",model:t(o("TOOLNET_EMBEDDING_MODEL"),o("LOCAL_EMBEDDING_MODEL"))};let r=m(e),n,i,l,s;switch(e){case"huggingface":n=o("HF_TOKEN"),i=o("HF_INFERENCE_BASE_URL"),l=o("HF_EMBEDDING_MODEL");break;case"openai-compatible":n=o("OPENAI_API_KEY"),i=o("OPENAI_BASE_URL"),l=o("OPENAI_EMBEDDING_MODEL");break;case"cloudflare":n=o("CLOUDFLARE_API_TOKEN"),i=o("CLOUDFLARE_AI_BASE_URL"),l=o("CLOUDFLARE_EMBEDDING_MODEL"),s=o("CLOUDFLARE_ACCOUNT_ID");break;default:n=U(e).apiKey,i=U(e).baseUrl,l=o(`${e.toUpperCase().replace(/-/g,"_")}_EMBEDDING_MODEL`)}let E=t(o("TOOLNET_EMBEDDING_ACCOUNT_ID"),s),N=t(o("TOOLNET_EMBEDDING_BASE_URL"),i,r.defaultBaseUrl),T=e==="cloudflare"&&!N&&E?`https://api.cloudflare.com/client/v4/accounts/${E}/ai/v1`:N;return{provider:e,apiKey:t(o("TOOLNET_EMBEDDING_API_KEY"),n),baseUrl:T,model:t(o("TOOLNET_EMBEDDING_MODEL"),l),accountId:E}}function O(){let e=B(),r=x();return{llm:e,embedding:r,legacy:{llm:!o("TOOLNET_LLM_PROVIDER")&&!!y(),embedding:!o("TOOLNET_EMBEDDING_PROVIDER")&&!!(o("HF_TOKEN")||o("HF_EMBEDDING_MODEL"))}}}import u from"node:fs";import k from"node:os";import R from"node:path";var G={spinner:["\xB7","\u2722","\u2733","\u2736","\u273B","\u273D"],barFilled:"\u2588",barEmpty:"\u2591",phaseDone:"\u25C6",phaseActive:"\u25C7",rail:"\u2502",branch:"\u251C",corner:"\u2514",dash:"\u2014"},F={spinner:[".","*","+","x","*","+"],barFilled:"#",barEmpty:"-",phaseDone:"[OK]",phaseActive:"[>>]",rail:"|",branch:"|",corner:"\\",dash:"-"};function w(){if(process.env.TOOLNET_ASCII==="1")return!1;if(process.env.TOOLNET_UNICODE==="1")return!0;if(process.platform==="win32"){let e=process.env.TERM_PROGRAM,r=process.env.WT_SESSION,n=process.env.VSCODE_PID,i=process.env.ConEmuPID;return!!(r||n||i||e==="vscode")}return process.env.TERM!=="linux"}var M;function D(){return M||(M=w()?G:F),M}var a={reset:"\x1B[0m",green:"\x1B[32m",cyan:"\x1B[36m",red:"\x1B[31m",yellow:"\x1B[33m",amber:"\x1B[38;5;214m",white:"\x1B[97m",dim:"\x1B[2m",bold:"\x1B[1m"};function $(e){return e.noColor||process.env.NO_COLOR?!1:e.tty??process.stdout.isTTY??!1}function c(e,r,n){return $(n)?`${r}${e}${a.reset}`:e}function d(e,r){return c(e,a.dim,r)}function Y(e,r){return c(e,a.bold,r)}function A(e,r){return c(e,a.cyan,r)}function H(e,r){return c(e,a.green,r)}function V(e,r){return c(e,a.red,r)}function q(e,r){return c(e,a.white,r)}function L(e,r,n){let i=D(),l=r?` ${d(`v${r}`,n)}`:"";return`${A(i.phaseDone,n)} ${e}${l}`}function I(e,r){return Y(e,r)}function b(e,r,n,i){let l=" ".repeat(Math.max(0,n-e.length));return` ${A(e,i)}${l} ${r}`}function p(e,r,n,i){let l=" ".repeat(Math.max(0,n-e.length));return` ${d(e,i)}${l} ${q(r,i)}`}function P(e){let r=D();return H(r.phaseDone,e)}function C(e){return V("\u2717",e)}function f(e){return{tty:e.tty,noColor:e.noColor}}var h=R.join(k.homedir(),".config","toolnet-memory"),g=R.join(h,".env");function j(){u.mkdirSync(h,{recursive:!0,mode:448}),u.existsSync(g)||u.writeFileSync(g,"",{encoding:"utf8",mode:384})}function W(){return j(),u.readFileSync(g,"utf8").split(/\r?\n/)}function Q(e,r){let n=W(),i=!1,l=n.map(s=>s.trim().startsWith(`${e}=`)?(i=!0,`${e}=${r}`):s);i||(l.length&&l[l.length-1]!==""&&l.push(""),l.push(`${e}=${r}`)),u.writeFileSync(g,l.join(`
|
|
2
|
+
`),{encoding:"utf8",mode:384}),u.chmodSync(g,384)}async function X(e){let r=O(),n=f(e);console.log(""),console.log(L("AI Model",void 0,n)),console.log(""),console.log(I("CURRENT",n)),console.log(p("Provider",r.llm.provider,8,n)),console.log(p("Model",r.llm.model??"not set",8,n)),console.log(""),console.log(I("COMMANDS",n)),console.log(b("model list","List available models",15,n)),console.log(b("model set <model>","Change model",15,n)),console.log(b("model status","Show current model",15,n)),console.log("")}async function z(e){let r=O(),n=f(e);console.log(""),console.log(L("Available Models",void 0,n)),console.log(""),console.log(I("CURRENT MODEL",n)),console.log(` ${A("\u25CF",n)} ${r.llm.model??"not set"}`),console.log(""),console.log(d(" Model discovery not available.",n)),console.log(d(" Use `model set <model>` to change the model.",n)),console.log("")}async function J(e,r){let n=O(),i=f(r);console.log(""),console.log(L("Change Model",void 0,i)),console.log("");try{Q("TOOLNET_LLM_MODEL",e),console.log(P(i)+" Model updated"),console.log(""),console.log(p("Provider",n.llm.provider,8,i)),console.log(p("Model",e,8,i)),console.log("")}catch(l){console.log(C(i)+" Failed to update model"),console.log(""),console.log(d(` ${l instanceof Error?l.message:String(l)}`,i)),console.log(""),process.exitCode=1}}async function Z(){let e=process.argv.slice(2),r=e[0],n={tty:process.stdout.isTTY,noColor:process.env.NO_COLOR!==void 0||e.includes("--no-color")};if(!r||r==="status"){await X(n);return}if(r==="list"){await z(n);return}if(r==="set"){let l=e[1];if(!l){let s=f(n);console.log(""),console.log(C(s)+" Missing model name"),console.log(""),console.log("Usage: toolnet-memory model set <model>"),console.log(""),process.exitCode=1;return}await J(l,n);return}let i=f(n);console.log(""),console.log(C(i)+` Unknown subcommand: ${r}`),console.log(""),console.log("Available commands:"),console.log(" model"),console.log(" model status"),console.log(" model list"),console.log(" model set <model>"),console.log(""),process.exitCode=1}Z().catch(e=>{console.error(""),console.error(e instanceof Error?e.message:String(e)),console.error(""),process.exitCode=1});
|