{"_id":"@background404/node-red-contrib-llm-plugin","_rev":"11-e5ac26054ee9c752b66abcc95d1962a0","name":"@background404/node-red-contrib-llm-plugin","dist-tags":{"latest":"0.6.3"},"versions":{"0.0.1":{"name":"@background404/node-red-contrib-llm-plugin","version":"0.0.1","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"author":{"name":"background404"},"license":"MIT","_id":"@background404/node-red-contrib-llm-plugin@0.0.1","maintainers":[{"name":"background404","email":"404background@gmail.com"}],"homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"dist":{"shasum":"0bd380533791cc84cc000cbdae31bc6a621f52b3","tarball":"https://registry.npmjs.org/@background404/node-red-contrib-llm-plugin/-/node-red-contrib-llm-plugin-0.0.1.tgz","fileCount":16,"integrity":"sha512-cvQsljRwmj7hGFUWu2sI0Val6ypwSqx1Cu+TmP0n9hV6TRkudiPxzAtAXQ8hxddc9qHcJEBSCK0UkyB3eoCqpQ==","signatures":[{"sig":"MEYCIQCAFxOlaefp6tOyuzVbYHSRWOA3418KpMTOMqXHel1UOQIhAN+H1vPS220a3eScnXXf0JbWmljdB31n4L6RJ05ejY4M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91516},"main":"llm_plugin.js","engines":{"node":">=14.0.0"},"gitHead":"38c3c2807bef588edfe96286d913747833141c4a","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"background404","email":"404background@gmail.com"},"node-red":{"plugins":{"llm_plugin":"llm_plugin.js"},"version":">=1.0.0"},"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"_npmVersion":"11.5.2","description":"Node-RED plugin for developing with LLM using Ollama","directories":{},"_nodeVersion":"22.11.0","dependencies":{"fs-extra":"^10.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-llm-plugin_0.0.1_1758969180336_0.11056748507794834","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@background404/node-red-contrib-llm-plugin","version":"0.0.2","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"author":{"name":"background404"},"license":"MIT","_id":"@background404/node-red-contrib-llm-plugin@0.0.2","maintainers":[{"name":"background404","email":"404background@gmail.com"}],"homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"dist":{"shasum":"0e8ad16969a184a2e33416ac89c6e244c63f9148","tarball":"https://registry.npmjs.org/@background404/node-red-contrib-llm-plugin/-/node-red-contrib-llm-plugin-0.0.2.tgz","fileCount":16,"integrity":"sha512-x2WNASkZhaJkxJ4XCBm00HqdAe/LwDhjAbq4g0fJ2Qd5kRkd8ZkK0E90QGmz2h7uYEGfN9bUWmUzRZHYPiR2xA==","signatures":[{"sig":"MEYCIQDsgzk3xhDQgDZ2M8Zro7ExzGxNvUDdJq6n00qazQXnLAIhAKYMiqLqlt8ieo/p/k6EaMrTgB+BM+XlkYBDm07efMzv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92957},"main":"llm_plugin.js","engines":{"node":">=14.0.0"},"gitHead":"1ddb2ead159743d0cad375a98d809f15cae491cc","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"background404","email":"404background@gmail.com"},"node-red":{"plugins":{"llm_plugin":"llm_plugin.js"},"version":">=1.0.0"},"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"_npmVersion":"11.5.2","description":"Node-RED plugin for developing with LLM using Ollama","directories":{},"_nodeVersion":"22.11.0","dependencies":{"fs-extra":"^10.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-llm-plugin_0.0.2_1759403624417_0.9110392710956634","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@background404/node-red-contrib-llm-plugin","version":"0.1.0","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"author":{"name":"background404"},"license":"MIT","_id":"@background404/node-red-contrib-llm-plugin@0.1.0","maintainers":[{"name":"background404","email":"404background@gmail.com"}],"homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"dist":{"shasum":"117d6a5118e378fd72b7200313fee5cfb6828b01","tarball":"https://registry.npmjs.org/@background404/node-red-contrib-llm-plugin/-/node-red-contrib-llm-plugin-0.1.0.tgz","fileCount":15,"integrity":"sha512-6JrMCRYdEv+ITe8NymWVKsXK5OUClw2mR6GSsqn0R0VLNw9dYs0XwD1BJdYZp8/KepRlaknD6tvnPo5naq+Z0Q==","signatures":[{"sig":"MEYCIQCtKN133Sc1QmprVT6paWv3p3zLfXnolw4a7YR+xV3c7gIhAPCLcfHBgK7pgVpjcQCw5CrhH+BsNwMWEEZno1VsGEC5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101419},"main":"llm_plugin.js","engines":{"node":">=14.0.0"},"gitHead":"18c7b3125e95b69d8c667b0858cc96660a41de54","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"background404","email":"404background@gmail.com"},"node-red":{"plugins":{"llm_plugin":"llm_plugin.js"},"version":">=1.0.0"},"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"_npmVersion":"11.5.2","description":"Node-RED plugin for developing with LLM using Ollama","directories":{},"_nodeVersion":"22.11.0","dependencies":{"marked":"^17.0.1","openai":"^6.2.0","fs-extra":"^10.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-llm-plugin_0.1.0_1767786585613_0.8433376951744407","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@background404/node-red-contrib-llm-plugin","version":"0.2.0","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"author":{"name":"background404"},"license":"MIT","_id":"@background404/node-red-contrib-llm-plugin@0.2.0","maintainers":[{"name":"background404","email":"404background@gmail.com"}],"homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"dist":{"shasum":"b9ce39bd1dae456e1af911d2deb1537cda0eae6b","tarball":"https://registry.npmjs.org/@background404/node-red-contrib-llm-plugin/-/node-red-contrib-llm-plugin-0.2.0.tgz","fileCount":15,"integrity":"sha512-hJ6RyBB0TKMUQicmfOLXcLdLSTW7gNRjAlZ9nwRhWEB3dBvmGVkAb9cKTnPsJZRb790RIYo80Klq4LX9tbDMsQ==","signatures":[{"sig":"MEUCIQCJbdj4TtNQTV2HbDZy4NHcw05HbloeyIGaHJmvuPvEhgIgfn7tBQfamV937eo7lYdYKnXQ803YMNkojjailQlvV6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118980},"main":"llm_plugin.js","engines":{"node":">=14.0.0"},"gitHead":"efc925e2eb42245fadf09d6081b98691efef22a4","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"background404","email":"404background@gmail.com"},"node-red":{"plugins":{"llm_plugin":"llm_plugin.js"},"version":">=1.0.0"},"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"_npmVersion":"11.5.2","description":"Node-RED plugin for developing with LLM using Ollama","directories":{},"_nodeVersion":"22.11.0","dependencies":{"marked":"^17.0.1","openai":"^6.2.0","fs-extra":"^10.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-llm-plugin_0.2.0_1772372317474_0.7130406506011142","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@background404/node-red-contrib-llm-plugin","version":"0.3.0","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"author":{"name":"background404"},"license":"MIT","_id":"@background404/node-red-contrib-llm-plugin@0.3.0","maintainers":[{"name":"background404","email":"404background@gmail.com"}],"homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"dist":{"shasum":"84ab746cd66b7c0ad3a6d0692d6f25ed5cffa1df","tarball":"https://registry.npmjs.org/@background404/node-red-contrib-llm-plugin/-/node-red-contrib-llm-plugin-0.3.0.tgz","fileCount":18,"integrity":"sha512-65heZLTbrQdWoSWigY/TgfiSdHZ92gG/GRF9ysCxUUKnQEK+5nW9ESCLv0wAbN8iPq80itLwmKdbk0KCPVRaUQ==","signatures":[{"sig":"MEYCIQDHAN9lYQqD3qZ0dqQSqQSwHUG6+ulm//yMshRgDd6EGQIhANfTFCZBpvaAw2y/qUFvJpRJiV2e5t8RwL8gnRIykmN6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265485},"main":"llm_plugin.js","engines":{"node":">=14.0.0"},"gitHead":"c406299886900d635b5b1876d9e1324fa8f6fdca","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"background404","email":"404background@gmail.com"},"node-red":{"plugins":{"llm_plugin":"llm_plugin.js"},"version":">=1.0.0"},"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"_npmVersion":"11.5.2","description":"Node-RED plugin for developing with LLM using Ollama","directories":{},"_nodeVersion":"22.11.0","dependencies":{"marked":"^17.0.1","openai":"^6.2.0","fs-extra":"^10.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-llm-plugin_0.3.0_1774001501771_0.9865723682348706","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@background404/node-red-contrib-llm-plugin","version":"0.3.1","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"author":{"name":"background404"},"license":"MIT","_id":"@background404/node-red-contrib-llm-plugin@0.3.1","maintainers":[{"name":"background404","email":"404background@gmail.com"}],"homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"dist":{"shasum":"38debb8e2153b39e74bff403c38811ca7d5ce7a6","tarball":"https://registry.npmjs.org/@background404/node-red-contrib-llm-plugin/-/node-red-contrib-llm-plugin-0.3.1.tgz","fileCount":18,"integrity":"sha512-sRTd73noYb2rKCuR9oDMldaJ/Oy/40QZ/SRIywOHfoe61Aui77HH1m9QKN1NPAHzVfYXJaTWQPS6Q/qewpsMsQ==","signatures":[{"sig":"MEUCIQCOhQk1N+/nzaUg5IVt8U6Zmw93+fuMaCnrlZaW965SVQIgMD+DTSEYdYACwjnTp7mddZ5YuzOeS0fkJm7ToCcW6A4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266011},"main":"llm_plugin.js","engines":{"node":">=14.0.0"},"gitHead":"b5142f6a87545b738ab3ac82285e0dc5ff29f320","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"background404","email":"404background@gmail.com"},"node-red":{"plugins":{"llm_plugin":"llm_plugin.js"},"version":">=1.0.0"},"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"_npmVersion":"11.5.2","description":"Node-RED plugin for developing with LLM using Ollama","directories":{},"_nodeVersion":"22.11.0","dependencies":{"marked":"^17.0.1","openai":"^6.2.0","fs-extra":"^10.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-llm-plugin_0.3.1_1774002218364_0.9754147049189645","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@background404/node-red-contrib-llm-plugin","version":"0.4.0","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"author":{"name":"background404"},"license":"MIT","_id":"@background404/node-red-contrib-llm-plugin@0.4.0","maintainers":[{"name":"background404","email":"404background@gmail.com"}],"homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"dist":{"shasum":"c6e01682635715160f9e03379c56e6c004f967a7","tarball":"https://registry.npmjs.org/@background404/node-red-contrib-llm-plugin/-/node-red-contrib-llm-plugin-0.4.0.tgz","fileCount":21,"integrity":"sha512-3Vz+SLKAHjrMpc+pFnG4Em9qpSAhYgj86vW5OCGe00OyVj1/vUe3ztIxh7amIJFDUuzAT7vzM6ZrNTCcHOjrgA==","signatures":[{"sig":"MEUCIQDtK6LoN5QK+/t3TZMejY/56vgGCdH6x25RFQvi2Hb73AIgSAIylA/Ga3vvNCQKFtzxwCoNQnO1yc1eZFZEStvT9mA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":678534},"main":"llm_plugin.js","engines":{"node":">=18.0.0"},"gitHead":"bc1841aa90d8e77d803ae74c904fe6ded016f156","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"background404","email":"404background@gmail.com"},"node-red":{"plugins":{"llm_plugin":"llm_plugin.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"_npmVersion":"11.5.2","description":"Node-RED sidebar plugin for chatting with LLMs (Ollama / OpenAI), generating flows, and importing results","directories":{},"_nodeVersion":"22.11.0","dependencies":{"marked":"^17.0.1","openai":"^6.2.0","fs-extra":"^11.3.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-llm-plugin_0.4.0_1776755859943_0.9508240833240078","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@background404/node-red-contrib-llm-plugin","version":"0.4.1","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"author":{"name":"background404"},"license":"MIT","_id":"@background404/node-red-contrib-llm-plugin@0.4.1","maintainers":[{"name":"background404","email":"404background@gmail.com"}],"homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"dist":{"shasum":"a537eb40ca09411888aa3a908d4e95be1caaab02","tarball":"https://registry.npmjs.org/@background404/node-red-contrib-llm-plugin/-/node-red-contrib-llm-plugin-0.4.1.tgz","fileCount":21,"integrity":"sha512-sBVcseL/9vBaERfJJ0NiOReVphYDzNN7NrbWmS2QGrIvmhkLyyBowdizysi6zWkX5y3TcjbYSfEXQ3VisKpPsQ==","signatures":[{"sig":"MEUCIQC/pltWJHGetjfBdlDdcpR7S7XwQ3J4qpsNMw2uF/PXrgIgLclBy6lDITOD2sZn+y1z3544zooD2Yfh0jhQwZVDA+I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":678929},"main":"llm_plugin.js","engines":{"node":">=18.0.0"},"gitHead":"cd3357e00317144d1e54ee063e0104e6204b7baa","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"background404","email":"404background@gmail.com"},"node-red":{"plugins":{"llm_plugin":"llm_plugin.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"_npmVersion":"11.5.2","description":"Node-RED sidebar plugin for chatting with LLMs (Ollama / OpenAI), generating flows, and importing results","directories":{},"_nodeVersion":"22.11.0","dependencies":{"marked":"^17.0.1","openai":"^6.2.0","fs-extra":"^11.3.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-llm-plugin_0.4.1_1776830888404_0.6289883786644057","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@background404/node-red-contrib-llm-plugin","version":"0.5.0","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"author":{"name":"background404"},"license":"MIT","_id":"@background404/node-red-contrib-llm-plugin@0.5.0","maintainers":[{"name":"background404","email":"404background@gmail.com"}],"homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"dist":{"shasum":"a1060170f98eda6924c323f23283ada1d65da138","tarball":"https://registry.npmjs.org/@background404/node-red-contrib-llm-plugin/-/node-red-contrib-llm-plugin-0.5.0.tgz","fileCount":24,"integrity":"sha512-iccx0DtkPwTVgeJGfoqJJxi29sE8rv2wtt+J8v1W8eAkX4bgMxT2AVBApLB1lpNgeloVaQHXbUHhgfsDtrHuqQ==","signatures":[{"sig":"MEUCIDnTt0GIZK9yfE1IsWqvC6YvwgpmuRRukA+hiJN4BF/uAiEApRYXi8HD3pjATWpQZ12E6QcFJu33Y6oKYgV7rGBVqW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":784672},"main":"llm_plugin.js","engines":{"node":">=18.0.0"},"gitHead":"cfbe0a3b8f44df4e0031ffcea2301ba9f3ae36e0","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"background404","email":"404background@gmail.com"},"node-red":{"plugins":{"llm_plugin":"llm_plugin.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"_npmVersion":"11.14.1","description":"Node-RED sidebar plugin for chatting with LLMs (Ollama / OpenAI / Custom OpenAI-compatible endpoints), generating flows, and importing results","directories":{},"_nodeVersion":"22.11.0","dependencies":{"marked":"^17.0.1","openai":"^6.2.0","fs-extra":"^11.3.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-llm-plugin_0.5.0_1779428802845_0.2610217814777198","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@background404/node-red-contrib-llm-plugin","version":"0.5.1","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"author":{"name":"background404"},"license":"MIT","_id":"@background404/node-red-contrib-llm-plugin@0.5.1","maintainers":[{"name":"background404","email":"404background@gmail.com"}],"homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"dist":{"shasum":"94e7001572d23161d74de59f7d1093ec6f7a9970","tarball":"https://registry.npmjs.org/@background404/node-red-contrib-llm-plugin/-/node-red-contrib-llm-plugin-0.5.1.tgz","fileCount":24,"integrity":"sha512-leGojz3HGKZHj5ETyzHiFcNXJHJAelN3+qEaLlJp74Ujrsuhe4LBAc33TFn0xsg+Q/e2BUJIjWdJfI48OJ66NQ==","signatures":[{"sig":"MEUCICOv8Hex2xm77bSX7+rl8xkFvViRX+vUfdVhg7ZPxhbUAiEAgGiZZHBU6N8MvO1sTdoHXgQRuu1+gk4QVHfPN3xE1U4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":802715},"main":"llm_plugin.js","engines":{"node":">=18.0.0"},"gitHead":"9bf9e75b9e2b54f3e645dbed9d3cd7112bc81a9f","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"background404","email":"404background@gmail.com"},"node-red":{"plugins":{"llm_plugin":"llm_plugin.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"_npmVersion":"11.14.1","description":"Node-RED sidebar plugin for chatting with LLMs (Ollama / OpenAI / Custom OpenAI-compatible endpoints), generating flows, and importing results","directories":{},"_nodeVersion":"22.11.0","dependencies":{"marked":"^17.0.1","openai":"^6.2.0","fs-extra":"^11.3.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-llm-plugin_0.5.1_1779634336406_0.23247941279095596","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"_id":"@background404/node-red-contrib-llm-plugin@0.6.3","bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"dist":{"shasum":"2bbe307a8030db4e75a3a06bd639824e4f1b366d","tarball":"https://registry.npmjs.org/@background404/node-red-contrib-llm-plugin/-/node-red-contrib-llm-plugin-0.6.3.tgz","fileCount":25,"integrity":"sha512-cHNUcKoshveVVrD7xnjVlH6DBdWr3S9Ov3Shv1egJ1rDRCy9ulzeamBWvF/AwmlRefHMbN8rAGmuIVjedH/paQ==","signatures":[{"sig":"MEQCIBUR9xoFprhHbLwhYh6KJzEkYTepZOICJeTv13xRyu1mAiAkQX3Zmhi3umU/BnN2+ojagzJALL1otwAEUH7ZI9LnBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICE/4+iykbuBcggYAvQLOm4APIcqECNvrFQUWyj4RNyvAiAmKdcTkMW3sz6WD7zEtsHRgVMuKRyr750Ah/90tGulwQ=="}],"unpackedSize":1103673},"main":"llm_plugin.js","name":"@background404/node-red-contrib-llm-plugin","author":{"name":"background404"},"engines":{"node":">=22.0.0"},"gitHead":"2c0e3e9940164e78c88e5c3cc1eb7136e90645db","license":"MIT","scripts":{"test":"node test/run_all.js","test:llm":"node test/llm_roundtrip.test.js && node test/llm_scenarios.test.js"},"version":"0.6.3","_npmUser":{"name":"background404","email":"404background@gmail.com"},"homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"node-red":{"plugins":{"llm_plugin":"llm_plugin.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"_npmVersion":"11.14.1","description":"Node-RED sidebar plugin for chatting with LLMs (Ollama / OpenAI / Custom OpenAI-compatible endpoints), generating flows, and importing results","directories":{},"maintainers":[{"name":"background404","email":"404background@gmail.com"}],"_nodeVersion":"22.11.0","dependencies":{"marked":"^18.0.13","openai":"^7.20.0","fs-extra":"^11.4.0","dompurify":"^3.4.16"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/node-red-contrib-llm-plugin_0.6.3_1790573747280_0.47345735572927694"}}},"time":{"created":"2025-09-27T10:33:00.280Z","modified":"2026-09-28T05:35:47.552Z","0.0.1":"2025-09-27T10:33:00.556Z","0.0.2":"2025-10-02T11:13:44.645Z","0.1.0":"2026-01-07T11:49:45.747Z","0.2.0":"2026-03-01T13:38:37.622Z","0.3.0":"2026-03-20T10:11:41.941Z","0.3.1":"2026-03-20T10:23:38.514Z","0.4.0":"2026-04-21T07:17:40.211Z","0.4.1":"2026-04-22T04:08:08.646Z","0.5.0":"2026-05-22T05:46:43.038Z","0.5.1":"2026-05-24T14:52:16.580Z","0.6.3":"2026-09-28T05:35:47.373Z"},"bugs":{"url":"https://github.com/404background/node-red-contrib-llm-plugin/issues"},"author":{"name":"background404"},"license":"MIT","homepage":"https://github.com/404background/node-red-contrib-llm-plugin#readme","keywords":["node-red","plugin","editor","llm-plugin","llm","ollama","ai"],"repository":{"url":"git+https://github.com/404background/node-red-contrib-llm-plugin.git","type":"git"},"description":"Node-RED sidebar plugin for chatting with LLMs (Ollama / OpenAI / Custom OpenAI-compatible endpoints), generating flows, and importing results","maintainers":[{"name":"background404","email":"404background@gmail.com"}],"readme":"# LLM Plugin for Node-RED\r\n\r\n[![GitHub Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/404background)\r\n[![npm version](https://img.shields.io/npm/v/@background404/node-red-contrib-llm-plugin?style=flat-square)](https://www.npmjs.com/package/@background404/node-red-contrib-llm-plugin)\r\n[![npm downloads](https://img.shields.io/npm/dm/@background404/node-red-contrib-llm-plugin?style=flat-square)](https://www.npmjs.com/package/@background404/node-red-contrib-llm-plugin)\r\n\r\nLLM Plugin is a Node-RED sidebar extension for chatting with LLMs, generating/modifying flows, and importing results into the active tab.\r\n\r\n## Demos\r\n\r\nClick the image below to watch the video:\r\n[![LLM Plugin screenshot](images/plugin.png)](https://youtu.be/Z8nCtEs4Ows)\r\n\r\nWith python-venv node:\r\n[![LLM Plugin with python-venv node](images/with_python_venv.png)](https://youtu.be/WAAmw7IXev0)\r\n\r\nWith Dashboard 2.0:\r\n[![LLM Plugin with Dashboard 2.0](images/with_dashboard.png)](https://youtu.be/HPYuoEL6y_o)\r\n\r\nWith Node-RED MCU (v0.5):\r\n[![LLM Plugin with Node-RED MCU(v0.5)](images/v0.5_thumbnail.jpg)](https://youtu.be/bnRr9mLuTVQ)\r\n\r\n## Install\r\n\r\nAdd from \"Manage palette\" or\r\n\r\n```bash\r\nnpm install @background404/node-red-contrib-llm-plugin\r\n```\r\n\r\nRestart Node-RED after install.\r\n\r\nRequires Node-RED 4.0 or later on Node.js 22 or later.\r\n\r\n## Quick Start\r\n\r\n1. Open the LLM Plugin sidebar.\r\n2. Configure provider in Settings:\r\n- Ollama: set URL (default `http://localhost:11434`)\r\n- OpenAI: set API key\r\n- Custom (OpenAI-compatible): set Base URL (e.g. `http://localhost:8080/v1`) and, if required, an API key. Use for llama.cpp, LM Studio, vLLM, LocalAI, or any other server speaking the OpenAI chat-completions API.\r\n3. Pick which flow tabs to include via the **flow selector** (check additional tabs in the dropdown to send them too). A new chat starts on the open flow; a chat you come back to — including the latest one when Node-RED restarts — brings back the flows it was working on.\r\n4. Pick the mode: **Ask** reads the selected flows and explains them (it never proposes a flow), **Agent** changes them and applies the result.\r\n5. Enter model and prompt.\r\n6. Click **Send** to generate and/or apply the flow.\r\n\r\n## Recommended Usage\r\n\r\nIt is highly recommended to add custom or non-core nodes to your flow before passing them to the LLM. Since the LLM does not inherently know the required properties of custom nodes, keeping a small sample flow in the active tab ensures it is sent as the *Current Open Flow*.\r\nThe model will then follow real node/property patterns from that sample instead of relying on fixed per-node prompt rules.\r\n\r\nThis covers **wiring as well as properties**. How many outputs a node has, and\r\nwhat each one carries (stdout / stderr / status, …), lives in the node's editor\r\ndefinition — not in the flow JSON — so it never reaches the model on its own. A\r\nsample with every output already connected is what tells it, and is the\r\ndifference between three outputs wired one each and two links on the first one.\r\n\r\nThe demo video above shows this pattern with the\r\n[python-venv](https://flows.nodered.org/node/@background404/node-red-contrib-python-venv)\r\nnode: a minimal inject → venv → debug flow kept in the active tab.\r\n\r\n## Features\r\n\r\n- **Two modes, two questions**: **Ask** is read-only — it is given your flow and asked to explain and diagnose it, so \"why does this not fire?\" comes back as \"`inject_tick`'s `repeat` is empty\" rather than as a flow to import. **Agent** is the one that builds, and applies what it builds.\r\n- **Node names are links**: in either mode, a node the reply mentions is clickable — it switches to that tab and reveals the node on the canvas (config nodes open their edit dialog).\r\n- **Chat history**: conversations are persisted on the server and can be loaded, deleted (several at once, or all), or continued across sessions.\r\n- **Checkpoint / Restore**: a snapshot of the flow is taken immediately before each import, and a per-message Restore button rewinds the workspace to that pre-edit state. It sits above the prompt it undoes, and **Apply Again** sits on the reply's schema block, so you can switch between the flow you had and the one the model proposed.\r\n- **Custom system prompt**: add persistent instructions (preferred node types, coding style, language) via Settings.\r\n- **Forgiving import**: the flow in a reply is found whether it is fenced or not and whatever prose surrounds it.\r\n- **Edits are merges**: what the reply lists is added or updated, what it names under `delete` is deleted, and the rest of your flow is left alone — so a partial answer never rewrites the whole tab.\r\n- **Tidy layout**: new and moved nodes land on the editor grid, so they line up when dragged: wires two squares long, sequences three squares apart, with or without group boxes.\r\n- **Several sequences**: ask for several flows in one tab and you get several independent sequences (`flow` in the schema always means the tab). Group boxes stay yours: a new node wired into a boxed sequence joins that box.\r\n\r\n## Planned: `llm-request` node\r\n\r\nAn `llm-request` node, so a flow can call an LLM without the sidebar, is in\r\ndevelopment and **not part of this release**. Its design is in\r\n[docs/en/llm-request.md](docs/en/llm-request.md) ([日本語](docs/jp/llm-request.md)).\r\n\r\n## Documentation\r\n\r\nThis README covers install and usage. Everything else — how the plugin works and\r\nwhy — lives in **[`docs/`](docs/README.md)**, with an English (`docs/en/`) and a\r\nJapanese (`docs/jp/`) version of every page.\r\n\r\n| Document | Covers | English | 日本語 |\r\n|----------|--------|---------|--------|\r\n| Design notes | Processing flow, rules, priorities, and the reasoning behind them | [en](docs/en/design.md) | [jp](docs/jp/design.md) |\r\n| Architecture | Module-by-module guide, HTTP endpoints, security measures | [en](docs/en/architecture.md) | [jp](docs/jp/architecture.md) |\r\n| Vibe Schema | The intermediate flow format the LLM reads and writes | [en](docs/en/vibe-schema.md) | [jp](docs/jp/vibe-schema.md) |\r\n| Layout | Canvas layout engine, spacing rules, comment placement | [en](docs/en/layout.md) | [jp](docs/jp/layout.md) |\r\n| `llm-request` node (planned) | The node a flow calls an LLM from, in full | [en](docs/en/llm-request.md) | [jp](docs/jp/llm-request.md) |\r\n\r\nTwo more, kept next to what they describe:\r\n\r\n- Tests: [`test/README.md`](test/README.md) — the suites, what each one guards, and how to run the live round-trip against a real LLM endpoint.\r\n- Prompt templates: [`src/prompt_system.txt`](src/prompt_system.txt) (Agent — the Vibe Schema rules) and [`src/prompt_ask.txt`](src/prompt_ask.txt) (Ask — read the flow and explain it).\r\n\r\n> **AI agents / contributors:** read [`docs/`](docs/README.md) before editing —\r\n> start with *Design notes* (why the flow, rules and priorities are what they\r\n> are) and *Architecture* (what each module does). Docs are consolidated there\r\n> rather than scattered across `src/`, `src/core/` and `node/`; keep the `en/`\r\n> and `jp/` versions in sync when you change either.\r\n\r\n## Security Notice\r\n\r\n### Agent mode executes what the model writes\r\n\r\nAgent mode applies the model's reply to your canvas **without a confirmation step**. Generated flows can contain `function` nodes (arbitrary JavaScript in the Node-RED process) and `exec` nodes (arbitrary shell commands), and there is deliberately no node-type restriction — limiting what the model may build would defeat the feature.\r\n\r\nSo whoever controls the model's output controls what gets deployed. Point Agent mode only at an LLM endpoint you trust, and review the result on the canvas before you Deploy. Ask mode has no such property — it only returns text.\r\n\r\n### Credentials and shared instances\r\n\r\nEverything the plugin keeps — settings, chat history, and API keys (encrypted) — is in one folder, `<userDir>/llm-plugin`; removing it resets the plugin. API keys are masked in the UI and redacted from logs, replies are rendered as Markdown through DOMPurify (images become links, so nothing is fetched), and a stored key is never carried over to a new endpoint behind your back. With `adminAuth` enabled the plugin's endpoints require an authenticated editor session. Several people applying Agent edits to the same Node-RED at once is not supported yet ([#8](https://github.com/404background/node-red-contrib-llm-plugin/issues/8)).\r\n\r\nWhen sharing your Node-RED user directory (Git, backups, environment exports), keep `llm-plugin/`, `flows_cred.json`, `.config.*.json` and `settings.js` out of the share.\r\n\r\nEvery measure and the reasoning behind it:\r\n[architecture → Security measures](docs/en/architecture.md#security-measures)\r\n([日本語](docs/jp/architecture.md#セキュリティ対策)).\r\n\r\n## Notes\r\n\r\n- This plugin is under active development.\r\n- Model output quality varies by model and prompt.\r\n- **Cloud / sandboxed Node-RED hosts** (e.g. enebular): chat history\r\n  and flow checkpoints are persisted to `<userDir>/llm-plugin/` when\r\n  that location is writable, and kept in memory only when it is not —\r\n  nothing survives a restart in that case. The plugin never writes to\r\n  its own install dir, so it loads cleanly on read-only plugin\r\n  filesystems.\r\n\r\n## Links\r\n\r\nPlease report issues at: [GitHub Issues](https://github.com/404background/node-red-contrib-llm-plugin/issues)\r\n\r\nNode-RED [API Reference](https://nodered.org/docs/api/)\r\n\r\nMy article: [『Node-REDのプラグインを開発してみる　その2（LLM Plugin v0.4.0）』](https://404background.com/program/node-red-plugin-2/)\r\n\r\n","readmeFilename":"README.md"}