{"_id":"@majkapp/majk-chat-basic-tools","_rev":"32-15f1824c2f7b5147ec692478c45459f0","name":"@majkapp/majk-chat-basic-tools","dist-tags":{"latest":"1.0.82"},"versions":{"1.0.0":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.0","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.0","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"ff277a5f90ef1d94f7c618b40b0db87bebe789d1","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.0.tgz","fileCount":70,"integrity":"sha512-VZj1MZwFoJ/87f2ad3yr7hbj76LRswb82ca79Au0znrnWRItutMtUXYe3YTCaj7eHqyGsGjy64/ejHpJns5VgA==","signatures":[{"sig":"MEUCICEWErnvVumhvTAFILSyWcFpgSP3IXXRastlD0rQWUPCAiEAr2HhZEvA1lV6V0hG69aQ0Rczrz5/S5JxRy1kjgq3tec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246857},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"10.7.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"18.20.3","dependencies":{"glob":"^10.3.0","node-fetch":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@majkapp/majk-chat-core":"file:../majk-chat-core"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.0_1756724133400_0.42640521455429803","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.1","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.1","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"1e12a1d1945c777570c5a5f8bbd5a8c8333de7c2","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.1.tgz","fileCount":70,"integrity":"sha512-5ArVILEkfvoVYNDSXPLCx4nMsrbDAlQ9lL0B4osgRkQZhgdGHzlqFF/+ml+leHMcqnuMRLx//4sxy2SRueRizw==","signatures":[{"sig":"MEUCIFi2WPJdjLhy8cHlamxGKfgJZHllsBhrMI40ots5Y2MSAiEArg+rP+21AnI1Ja/aCqluRf8FjiTQGESXYz3GZVP5YLY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246841},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b0034ea1c7d5296c037530990784b8dc0573ca76","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"10.7.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"18.20.3","dependencies":{"glob":"^10.3.0","node-fetch":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@majkapp/majk-chat-core":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.1_1756724844488_0.6774706320209805","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.2","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.2","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"4cee96a2a51887774d9794e56c73976b7a2d1929","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.2.tgz","fileCount":86,"integrity":"sha512-BBA6M2wdN6ZC+UW9f7mVLX+zfz7kfOtcPTHlN3LCA8TmDe315qc7O7brEyiXMQSo/N4LGLlhRE3q7WekSx9NxA==","signatures":[{"sig":"MEUCIDP3/2PcgXL+Jy66dwbcFTeo49Q4nE0M6d67ADTrfrEkAiEA/nAriXOb3gppsIsSLWJsImcG3MO45TPplf8R3MNjqwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315884},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"67376bbbbb6b2913c6c5580729ef8eda8bff476e","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"10.7.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"18.20.3","dependencies":{"glob":"^10.3.0","node-fetch":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@majkapp/majk-chat-core":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.2_1756725368811_0.860646475055004","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.3","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.3","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"e8ee2be56021184b0c59ae0c231a8b97e336703b","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.3.tgz","fileCount":98,"integrity":"sha512-hpGHyJU0PeI2pKYXtIyVcqDh6lZoRL7O3JOhAnNoYwQKT2toIixOpabzGprGAwAMmP6sX62rQvK5JWk2MQRExg==","signatures":[{"sig":"MEYCIQCC5j4ujnc9LCjoLX4KIInDReysSxvJQJ7cjadqIpaS7wIhAIKZBrAZflbLioHqnONNEagEz5Tbbe3LaUnke26NkRYo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340513},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9e330c5ef0fc9cf56064ccb7ff3e41437e0a5ee0","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"10.7.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"18.20.3","dependencies":{"glob":"^10.3.0","node-fetch":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@majkapp/majk-chat-core":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.3_1756728497175_0.7861860319192473","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.4","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.4","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"8de5c6ea5411ed3a721e18c424bd3dcb881975d1","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.4.tgz","fileCount":146,"integrity":"sha512-DKCMBSwM0p7YZmWknhS/iXoe7fdPG3Yuoc4I8wtyDVJAqUz2T2lgeDHuIzepwkb2OYtvONyd5AcFsE/Fw+uw6w==","signatures":[{"sig":"MEUCIENRMRQ/TzFi0nVuLclH/r+ajCIpjYNviE8RCioVlssEAiEAuCxP9Wv+0aZwaLzKUUfo52X26yAxzn+dalEttcbuXKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":468444},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c99692a888ebac53702aaa754a852c0f619027fb","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"10.7.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"18.20.3","dependencies":{"glob":"^10.3.0","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.4_1756735532386_0.526224890213308","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.8","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.8","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"c4da8d1599b367209995bad128cd2cdf30d62706","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.8.tgz","fileCount":146,"integrity":"sha512-i3+tNJpXEeExrqitLfmwdp5UVleucHnQJ+9K20hk0jauKgkcTY/nsky6pRmcl+Mme3MocXQ4p2VeZyfSLomAaA==","signatures":[{"sig":"MEUCIQDHXZNV5wgJZ73Hw3INPGAT9/F4mkdKnwJ/dCNxAvfEBQIgRQJwzUM8riUdcJV/CyGV0aphlYBN+5JIsK/EFsZPwKA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":468443},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"41e22ce80608c7dbdfd8ecccd09171aa316220bd","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"10.7.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"18.20.3","dependencies":{"glob":"^10.3.0","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.8_1756810494180_0.324727980494107","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.9","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.9","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"61bc92fe6a7523ecac4a2fac49fd41944dad1724","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.9.tgz","fileCount":146,"integrity":"sha512-3SIbkgLbv260WJGMgz4TOMycnUq5zA+rP5rIggs/WPD3NBOkky9j2KoxwH3BJaJJn0JAenJ6q/HfiDKSIpSr3Q==","signatures":[{"sig":"MEUCIDGDY6fkFFlYOMpVm9ATcC/U5o4VZ+6D1G5JQnar/tVoAiEAm2T+fo96Euugap2CQn3TT6fs797dmIxHUvXIfSqpCt0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":468443},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"73d888a72826639317c3ef054ee57af4fb6e45aa","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"10.7.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"18.20.3","dependencies":{"glob":"^10.3.0","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.9"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.9_1756810696031_0.2616871930560025","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.10","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.10","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"b4812398f26da793ea55e809987b92c7ead2b040","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.10.tgz","fileCount":146,"integrity":"sha512-/PoUGuIPSLIxZedB3dtn+GnKSCemXwJLX3NpB59qOZy7M4xJNSsUtgNe7qEhFmAbRGziRIrbcfwAUbOncdlJ3Q==","signatures":[{"sig":"MEQCIArdc5cDj2tsDJXYAm0Xj59dk7GJPI8uVUK67CoajC1eAiAtMbf5pkcX/enacjs7C4i4J4FI8zOHzEIygoTKQdO2Ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":468445},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f505b2df5d626b638e7ad4dbaee8a29e292ea2a8","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"10.7.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"18.20.3","dependencies":{"glob":"^10.3.0","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.10"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.10_1756814451269_0.9091391989277342","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.11","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.11","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"0a9b79cbd751b7503edb49d041887d3f96a6058b","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.11.tgz","fileCount":146,"integrity":"sha512-6WKpn6ntTnHxi7X2BFu4ONz2VZ+0OVrNHMMxU8iNiRVGEzJ9BkBBEWbMcm1QaEWn2X9eLIlBUpECbsFjSwOnDg==","signatures":[{"sig":"MEQCIHqCBrK1HV/7Jbph0n+ze6e5Xemn1zv7EcRhgpxaZXt4AiBSy7oH0VC5MA2wiBd599l9xTj71qnue/A7mT6x+waJ1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":471332},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"cf38919f51f480cbdbe35941febc852a1fc65c5b","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"10.7.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"18.20.3","dependencies":{"glob":"^10.3.0","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.11"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.11_1756893474296_0.1716890923477996","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.12","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.12","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"bcf1414ec1f71e9e4a54828cf7ce1f7e719c8146","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.12.tgz","fileCount":146,"integrity":"sha512-clBoU0Ppj2akOllatK4x+ZGamfPXLEiKs3ipndtVWpvfjHA/PYGva/lA1z2aenvasVa+CaUz6pKmCs5SbuH5aw==","signatures":[{"sig":"MEYCIQCKPhzKfk5ayLO88z4MOBv1V7A2yTJWxZTGoqQoTXdqDgIhAMKVubVzyHYR/WfCxibKXfXoU1PMm0oMLOyVsMbmBmEL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":472289},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fb1eac752f81c74f64ea8a0fe3b1aa58dbfbb0dc","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"10.7.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"18.20.3","dependencies":{"glob":"^10.3.0","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.12"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.12_1756893962772_0.4077973244936226","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.13","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.13","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"4d3542f924f761ea1bfdf14f405988c2f609027f","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.13.tgz","fileCount":146,"integrity":"sha512-5i8rvTSn1MYKbc7OlggLroHBaiFFyFOA4EGPVD+7OfAsWZJSEX0EhYUafxeOV0TN4gMF7VlBqTVgcpnxgRgU/A==","signatures":[{"sig":"MEQCIG4ueKWOsg3Li439qeu//1dadkAPAGRQY0i+5+GNhRGGAiAtY7GeOitnP8e/gX6GkmH19OKzfHqJet20phsZU6jySw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":472547},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"92b712c3db04ac239d7a2ed6895a7266eed668dc","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"^10.3.0","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.13"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.13_1758380955659_0.6211028605493689","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.14","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.14","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"3b73ea14c89b1d6580e26e707e840aa06e09a384","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.14.tgz","fileCount":146,"integrity":"sha512-xPwPSffDl8ToTzbVfiiIYwtYbDOkw8HkKfN0/gZhRx6fj17QU7cfMdcQpeN6ODH7l+JdZ0tAUh9WXU9uXsvTSg==","signatures":[{"sig":"MEYCIQCKDFhqqcM8s44pfby7Qn08WIsrMTFGMx3iP/A7cNHOUwIhAP6uv9B1HlINVm020gjwPMfZCmOqG9z/mmvFrkU5reo0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":472596},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9de5a0461e088f2e6fe0bc6802117ebef36c5132","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.14"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.14_1758745239020_0.549320158344855","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.15","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.15","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"ef8004d2493f79e66a15e31ae75b8342361403c4","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.15.tgz","fileCount":150,"integrity":"sha512-MHFe3u+RD6Bmc2a2pyfzjUttZ6wayHs9qs9cj7MlK8nE6ri0nqqpuR5UF4yqO9amKfCvy4Mot47MpgKVEYS0rg==","signatures":[{"sig":"MEYCIQDCPDxsXobeHdMqsrU7ZMh9fCQHWCmLas1zlrPxIfcKQwIhAPjoGHFr52tjmO3pC5eA5Faniy3RTNYBQAphhE29ifBt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":477567},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c84e1034f312e25577c6210a39529581c34c49b0","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.15"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.15_1758913290859_0.09182100318051356","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.16","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.16","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"c54bc6d31220d23c1543822e65786fe10ffaa5a6","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.16.tgz","fileCount":150,"integrity":"sha512-lp78hJE3cFdJSHuvx56Dd5lmuCeg2mYMGl0Dag9fmeHBviy4VZ79T8I2Vf8ogzLR7aUxBFqDDQBTj4VZ6ww+rg==","signatures":[{"sig":"MEQCIF/dbAH9oVmwZI1OkSS8TEmctVl3PVTXyI0F0dkIxNBUAiAvQ0/1pjMC6VV0dLIIiRO7zZgxZLesst9PD2Cmri40GQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":477567},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a58aa515358863200df2274df9d882760b4df163","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.16_1758913936150_0.7702282025374225","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.20","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.20","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"235e3fc24efe8679ccb0d7326c09c425044fc6dd","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.20.tgz","fileCount":154,"integrity":"sha512-UxHlrBxCrbs/+nKOkgCb/BDA7JFm7SKzePFBx+XbeIUoBgUydgLjQxvDNQHMHcGyuuZf1SaUyNHRUaBAF3bVzg==","signatures":[{"sig":"MEUCIQD97yzpFAiqeJ/4a89PVA91Pvdq4jt4BcyYlDaPPjK9lwIgWvQ098pFvmeDZAvF2tioadV4cQSjq/fDoR+/u/TZdlg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488050},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"af5087fe1610282b397bdc608c5a3d3acbfb1300","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.20"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.20_1763125215292_0.19178400334493362","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.23","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.23","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"336e4a08a5f859df728a84f0217ee3c4de67794d","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.23.tgz","fileCount":146,"integrity":"sha512-eJb2eb5DGGvDOgs/e7bPo5/fmgRfonFL5IOCKjtnt4tS+C7Z2paCmu5vReSwCmixfEJiEiFPc/OpxZwl+aiaiA==","signatures":[{"sig":"MEUCIQCCgwpgZaex5FtGj/QjhC6E2KFMtRR6PspBDwkqxFaHzAIgeye/N9P4rCIz8EvZERPvfCT+Ylps4vuFQGoRFnwXrxQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":458998},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.23"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.23_1765052348229_0.7547171488174362","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.25","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.25","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"2615521df0ff36984b85ad646c4bc1593ca3003c","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.25.tgz","fileCount":154,"integrity":"sha512-sn+60AkLOJ9IyGzlZka76BKWmks6aAZjeqiglUZpaymglK6jUUE6+MyapvF61bF4xIh4ob8kVhED1y3suNH1rg==","signatures":[{"sig":"MEQCIEyGAU+OAhcSN5bLoA6UAb0UMDoZvQgdwiK/5tpiAbU4AiAd2sOgxtY8cQ512CUIMuUS1P2okBRzV4cVgQW4RhqkKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488050},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"61bec66b3771e4087c32d1f790a0e10d9441e7d6","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.25"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.25_1765134342704_0.6540277952288351","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.26","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.26","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"2c46c8eee6d238ffee83c4c508d6c346ac7c51a0","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.26.tgz","fileCount":146,"integrity":"sha512-zZrl81yGO5Si5fw/Qxxo54F+Ia/RLuJTf65RWN9ig1eP7pa+yk9nTN04CVfZF1TuWiDkTmaYA70AoRbn021oLw==","signatures":[{"sig":"MEUCIGPbYXkwaAKPisbdJPYOMx0i5nwxWUzcS4UYy9OIdUdUAiEAjROzIU1uE2C6gmbaGDQAJgWM+YdMSuTiiG5M+k5/0lA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":458998},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.26"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.26_1765195768852_0.401859070702802","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.27","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.27","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"0eebf2d70ae0b4bd8e9f62dba7291c8fb44e6ce1","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.27.tgz","fileCount":154,"integrity":"sha512-GtlBQsbpsQREneGEt8ixb7xBBGVaoC+rQ6vLPRW46coLt/Sc9QszHWXvvoXNhejFhAMOZq4mTx2PWCb/cqeGQA==","signatures":[{"sig":"MEUCIH4mjHIqCUASyo29XLSBqZr0Tbe231PZklm2p1AIHluWAiEA6Ep/pS7Dkdt/LrEf67kBfcyueehHE4anjXDVHJdSxHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488827},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6f7dfacba7e4253ada75dc955ba78fef3aa81935","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.27"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.27_1769085143087_0.5984977329023717","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.28","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.28","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"b32439961127e24a1e0395464930ae11e44d956a","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.28.tgz","fileCount":154,"integrity":"sha512-CwVnXaZKhPJefnPFEcx8nEoKjw/oaztfcz3bC8+9nf1gqA6t4uy3IBV6JZ2QPc5Y1bdnJ7GmOFSkqr8KPVnsjg==","signatures":[{"sig":"MEUCIHba/eaM9nPzAlAXhADZifnlArMeFU2wkHPFFYWD7CdxAiEAzerVSkS3pbUbgGoulDdDgCMPaOA9OkQumqytd+k1ssg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488827},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2ce707a615bca21b45d14649f0c84eb35192aa04","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.27"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.28_1770414540780_0.025626533715666033","host":"s3://npm-registry-packages-npm-production"}},"1.0.31":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.31","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.31","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"3e6cb838db988ca5445a02f2f26e7b436917b056","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.31.tgz","fileCount":154,"integrity":"sha512-2mZRUkSdSjtKExZUOt9GYexSmPgqz/HFG+7k+9MfDT2Hwf8HV8j+bPaEy7rw36MRL26uEyNXlcdWsHXNSXQw0Q==","signatures":[{"sig":"MEUCIQCVQTPEp52yDa217mRWXBpKzXk2NUBtk+dkJfwcASMdGwIgcQqI7oE/i5THKjhFqVzv9Wpipr+b8/2GPNWHWOLaC9k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":492232},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c479cd08a3e00333d2144ca28e46087723bd8e48","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.31"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.31_1771773420932_0.5930765510395595","host":"s3://npm-registry-packages-npm-production"}},"1.0.32":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.32","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.32","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"93151dab6a537f317bb62458f1083d4a3d020241","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.32.tgz","fileCount":154,"integrity":"sha512-XeT6lP+UMy0ZOG+wIW316cwYnsXpKPQxHgOXBFNXzpTVXQdITiQIbtZcTG+dbuzLu/bCeOx8i53MRnmS5A5YeA==","signatures":[{"sig":"MEUCIQDyzb8vqVUqx5JlB3SWUvSBatWAw1Frfmx27wFMKl46RQIgT0oWzgS/5M3AN8h+EN+sDw8+59PGYOH2qZoNg309Eak=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":499848},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b51c7caaea2f321a087cdc295c3167398021a1b4","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.32"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.32_1774884425947_0.3784946662661397","host":"s3://npm-registry-packages-npm-production"}},"1.0.33":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.33","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.33","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"fd4f1ff2dd7d28935947453063c13824470cfb43","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.33.tgz","fileCount":154,"integrity":"sha512-UrhWHocsBH24xqpvkjwpqL9WYdtsA9gel+LpaRCXjYAtOGnlOzCLKlaQeUrYv7pqHKcMoJK/uv6cpG6ZW3TCsQ==","signatures":[{"sig":"MEUCIQCkeQ6uPFMOw39m8UOy1o+w3zqsqLzzIrNqExRPAcxqKAIga3WvlGa69PnDnHYBSAx+nhkEarTt4DxP4wk4kYJjVn4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500244},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6c49e7461688eef6abe0187afd0fd0f4afdea8ef","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.33"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.33_1776448015498_0.8012627447143363","host":"s3://npm-registry-packages-npm-production"}},"1.0.38":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.38","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.38","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"9af8ce4716b118f20f885a8e23e7cab73b6118a1","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.38.tgz","fileCount":154,"integrity":"sha512-bF6uzunz5ZkgPvLh0JPV4Rjg2NXuMMyexp7oqewVFYhP4wNMGIzS6KFiLqQ8rUDlgf4oCuA439ERozqyd8wlwg==","signatures":[{"sig":"MEYCIQDBH2gC7HnYbYIV0A3OcIFZmqdbeMl0WC/j/mc1/0DmXQIhANmgWvw6czU21kzBzpQdLBB/bFca4xnJDbVEULSJOxrX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500244},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e4c2ba4292edde5c41d05b43dc76174a9e3d839d","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.38"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.38_1777645989665_0.7589644048414175","host":"s3://npm-registry-packages-npm-production"}},"1.0.39":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.39","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.39","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"cad27d9e7f6ffeb4a9a686140e2b8f6231e9cd6f","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.39.tgz","fileCount":154,"integrity":"sha512-Oyx4OOBswZpXwYuN4cQc5K4wJPNDY2CjU2gAuJnD9dx4vrFkd7AbHHOmd1RSnEhTjj/zwyDMEfdAr4XuIUMZng==","signatures":[{"sig":"MEUCIQCaKzM8RoA/M86sbA8lCuZjYivo7L82Ze4Ee+Rvb/zu4wIgV9w3/4CbEaXzVe9CqlOCau3dMdLDlqr76lB4ufPnLPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500244},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e7ffaab079e269c4cda007c64cfbc5930378be4d","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.41"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.39_1777649886278_0.09774518529093057","host":"s3://npm-registry-packages-npm-production"}},"1.0.42":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.42","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.42","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"c0db28ab42885adf8ace0cf1e104335a1e6f1eb5","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.42.tgz","fileCount":154,"integrity":"sha512-ZZdRDoumeE8Dmp7ZaMmKmsXHSb2RxEYMj4y+SAes538DTNsVTP3ihTj8SNU7f92+VmqhaCLYu0Z6o5Kw9T+lCg==","signatures":[{"sig":"MEQCIBwVrU2xOzNSgmNb1IhhVxM3+cHnOq62G8FuELKdOmqgAiAg+iwI7+fdjHG1QKJA67cxWEvPiKH5YAZN+S19HhAZKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500244},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9f1cfcb2a7f640af0ae4f0a277ffe2986b481407","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.42"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.42_1777650144682_0.37016665262584203","host":"s3://npm-registry-packages-npm-production"}},"1.0.44":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.44","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.44","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"f95b80d03a5f11b069083503d36dd98f7a411cdb","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.44.tgz","fileCount":154,"integrity":"sha512-opaFuh/bFbSwTTxIndYU0b5P4IA1Aua0Egtyd8voXSdQAUW2IDIJPuS77E9Zc2eyJV82MII1Qj9UhUv9B646QA==","signatures":[{"sig":"MEUCIEn7gdbLBReUO8zStZKuPJ5GilyfsOCxTS15ANLl4KG2AiEAqeHI/uLiQR0oPOGMpJARt45MoXOuypY7mB5uhf/UY4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500244},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"27691752921cb8aa151cfa74dcaeccd8b9e15cb0","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.44"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.44_1777651801500_0.47761025559710557","host":"s3://npm-registry-packages-npm-production"}},"1.0.49":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.49","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.49","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"138241c59cf1023002d770d75faeb687625abb1b","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.49.tgz","fileCount":154,"integrity":"sha512-6YoLyTd0kkchr2yAWXdPkXwt6f1/sJuVTMpxasaqWnaqFYOvK+EnOLHTOlMmD3yNzvfCfO7AdQuKRLdr+u9p9A==","signatures":[{"sig":"MEYCIQCVzU4cbm60GiUliY4GT5Tb+HZ3VWpTLi9tKUW214IgJgIhAKkjmHTYzIAbumj/MaobPGjmpl6fKoCD9DqH5qS6WTZn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500244},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"68eab787784250f3d4ab8c6c7b9fb006a9878ea6","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.49"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.49_1777665353522_0.24709640278178946","host":"s3://npm-registry-packages-npm-production"}},"1.0.53":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.53","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.53","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"b3eeac4d6010e5dc47dc7432b5649b4b170f4d06","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.53.tgz","fileCount":154,"integrity":"sha512-1qPlSke5hY7Jph7cS32oqJCir1YHkw+TU0uly4dyeulM45xW3yHIqHqpfLWBJf81fKECYXBLqrj+L+fhMNzvGQ==","signatures":[{"sig":"MEUCIQDJHEH2huht4WCD8WzgFw+asM08uL/r61j6tveKec4jMQIgGw///x/hUlk6tyhUyLxMzTvJ/w5ZAa5+Ph2ljc+livY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500244},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"578cf2ad581d45cf0bd156353f28830bdd9f5ae4","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.53"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.53_1777668853120_0.03344373582557836","host":"s3://npm-registry-packages-npm-production"}},"1.0.56":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.56","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.56","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"94af6e9c0ab63b02030002fe90d0b4e5e6db078e","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.56.tgz","fileCount":154,"integrity":"sha512-CQuXNqKZUeSFsyMzCIYg0ue+K88sNwhK0zKaNjQpKvw0lZbbFaKQpMDqImZyIdsqc1fASFGXtn2NhHulnOTQEg==","signatures":[{"sig":"MEUCIHYMWyjRPTffP3PhjZ5tuUWwOtbFCt6jO5LOuIk5d+ssAiEA63wQTuZcbZxkUtqoDYTzsLhfWYttr6CPMcIdfEKJpRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500244},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8c68e193fd54cd5c3acda6dc8f648cfec6a873b5","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.56"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.56_1777730198710_0.6792068777360305","host":"s3://npm-registry-packages-npm-production"}},"1.0.81":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.81","keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","_id":"@majkapp/majk-chat-basic-tools@1.0.81","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"dist":{"shasum":"59583887a6549668633ea7c519a238d534d7609c","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.81.tgz","fileCount":154,"integrity":"sha512-DcvXOblX9gErl1/7YHZ8GoA3/wokCnWME5ROBDUe5p5nk0e5dDmRnlen85r24FgvfdJG0O5GsTlZl1wHOZV20w==","signatures":[{"sig":"MEUCIGMBKyXkXmvQzF/r/SXp29ypeb/Z2tcOWSCyWaypW0xfAiEAoufv0/cHGHUY5ATuufsHuGnfH8/N3ScEin42OzWJcUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500244},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"389e14ee59eb23b6d2f458533fe53da9cb121d52","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"_npmVersion":"11.6.0","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","directories":{},"_nodeVersion":"24.8.0","dependencies":{"glob":"10.4.5","uuid":"^10.0.0","chalk":"4.1.2","node-fetch":"^3.3.0","@types/glob":"8.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","@majkapp/majk-chat-core":"1.0.81"},"_npmOperationalInternal":{"tmp":"tmp/majk-chat-basic-tools_1.0.81_1777916311522_0.621907842696739","host":"s3://npm-registry-packages-npm-production"}},"1.0.82":{"name":"@majkapp/majk-chat-basic-tools","version":"1.0.82","description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","test":"jest","dev":"tsc --watch","prepublishOnly":"npm run build"},"keywords":["majk-chat","tools","filesystem","bash","utilities"],"author":{"name":"Jules White"},"license":"MIT","devDependencies":{"@majkapp/majk-chat-core":"1.0.82","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/uuid":"^10.0.0","jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0"},"dependencies":{"@types/glob":"8.1.0","chalk":"4.1.2","glob":"10.4.5","node-fetch":"^3.3.0","uuid":"^10.0.0"},"publishConfig":{"access":"public"},"_id":"@majkapp/majk-chat-basic-tools@1.0.82","gitHead":"ccf4c775ff2d142d7f21228e55c32f5a3c63c7f5","_nodeVersion":"24.8.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-DlRpUlG6s7jLc+zqclerjUPr9BZQ3pMS3MGYRLXpWEh2nKWJxWeHH6+yYHXwj2pyb9njtiqSk7Dgtrzhd0ANjA==","shasum":"4ea43c5aa35d0d55ed3755a33d8d548595e33693","tarball":"https://registry.npmjs.org/@majkapp/majk-chat-basic-tools/-/majk-chat-basic-tools-1.0.82.tgz","fileCount":154,"unpackedSize":500244,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFYMMLSZh/0WutWyNa++aMon69xIL+GYIsj8G2Ilxla8AiEAnbUoE9qddU2TTnCqufm1Y03SAVGaDKzhU6k8MaxlIRg="}]},"_npmUser":{"name":"juleswhite","email":"juleswhiteart@icloud.com"},"directories":{},"maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/majk-chat-basic-tools_1.0.82_1777923692852_0.8660953181574746"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-01T10:55:33.277Z","modified":"2026-05-04T19:41:33.154Z","1.0.0":"2025-09-01T10:55:33.596Z","1.0.1":"2025-09-01T11:07:24.669Z","1.0.2":"2025-09-01T11:16:09.020Z","1.0.3":"2025-09-01T12:08:17.398Z","1.0.4":"2025-09-01T14:05:32.624Z","1.0.8":"2025-09-02T10:54:54.389Z","1.0.9":"2025-09-02T10:58:16.202Z","1.0.10":"2025-09-02T12:00:51.452Z","1.0.11":"2025-09-03T09:57:54.467Z","1.0.12":"2025-09-03T10:06:02.962Z","1.0.13":"2025-09-20T15:09:15.862Z","1.0.14":"2025-09-24T20:20:39.252Z","1.0.15":"2025-09-26T19:01:31.108Z","1.0.16":"2025-09-26T19:12:16.365Z","1.0.20":"2025-11-14T13:00:15.481Z","1.0.23":"2025-12-06T20:19:08.400Z","1.0.25":"2025-12-07T19:05:42.853Z","1.0.26":"2025-12-08T12:09:28.993Z","1.0.27":"2026-01-22T12:32:23.221Z","1.0.28":"2026-02-06T21:49:00.964Z","1.0.31":"2026-02-22T15:17:01.143Z","1.0.32":"2026-03-30T15:27:06.118Z","1.0.33":"2026-04-17T17:46:55.677Z","1.0.38":"2026-05-01T14:33:09.869Z","1.0.39":"2026-05-01T15:38:06.501Z","1.0.42":"2026-05-01T15:42:24.852Z","1.0.44":"2026-05-01T16:10:01.694Z","1.0.49":"2026-05-01T19:55:53.693Z","1.0.53":"2026-05-01T20:54:13.258Z","1.0.56":"2026-05-02T13:56:38.983Z","1.0.81":"2026-05-04T17:38:31.728Z","1.0.82":"2026-05-04T19:41:33.017Z"},"author":{"name":"Jules White"},"license":"MIT","keywords":["majk-chat","tools","filesystem","bash","utilities"],"description":"Basic tools package for Magic Chat with filesystem, process, and utility operations","maintainers":[{"name":"juleswhite","email":"juleswhiteart@icloud.com"}],"readme":"# @majkapp/majk-chat-basic-tools\n\nA comprehensive set of basic tools for Magic Chat that provides essential filesystem operations, process execution, and utility functions. Built using Node.js built-in modules for maximum compatibility and minimal dependencies.\n\n## Features\n\n- **Bash**: Execute bash commands with optional background execution\n- **KillBash**: Terminate background bash processes with different signals\n- **BashOutput**: Monitor and retrieve output from background processes\n- **LS**: List files and directories with detailed information\n- **Read**: Read file contents with configurable limits and offsets  \n- **Glob**: Fast file pattern matching using glob patterns\n- **Grep**: Search for text patterns in files using regular expressions\n- **Edit**: Perform exact string replacements in files\n- **MultiEdit**: Make multiple edits to a single file in one operation\n- **Write**: Write content to files with encoding support\n- **WebFetch**: Fetch content from URLs using HTTP/HTTPS\n- **TodoWrite**: Manage structured task lists for session tracking\n- **ReadToolResult**: Read back large tool results that were truncated for LLM context limits\n- **Pwd**: Get the current working directory for tool operations\n- **Cd**: Change the current working directory for tool operations\n\n## Working Directory Management\n\nAll file and directory operations support both **absolute and relative paths**. Relative paths are resolved against the current working directory, which defaults to the directory where the CLI was executed.\n\n### Key Features\n\n- **Relative Path Support**: Use `./src/index.js`, `../docs/readme.md`, etc.\n- **Current Directory Tracking**: Tools maintain a shared working directory context\n- **Path Resolution**: Automatic resolution of relative paths to absolute paths\n- **Directory Navigation**: Use `cd` to change directory, `pwd` to see current directory\n\n### Basic Usage\n\n```typescript\n// Get current working directory\nawait registry.execute('pwd', {});\n// Returns: { current_working_directory: '/Users/project' }\n\n// Change directory\nawait registry.execute('cd', { path: './src' });\n// Now working directory is '/Users/project/src'\n\n// Use relative paths in other tools\nawait registry.execute('ls', { path: '.' });        // List current directory\nawait registry.execute('read', { file_path: './index.js' });  // Read file in current dir\nawait registry.execute('write', { \n  file_path: '../docs/output.txt',   // Write to parent/docs/\n  content: 'Generated content'\n});\n```\n\n### Path Examples\n\n```typescript\n// Absolute paths (still work as before)\nawait registry.execute('read', { file_path: '/home/user/project/src/index.js' });\n\n// Relative paths (new functionality)\nawait registry.execute('read', { file_path: './src/index.js' });      // Current dir/src/index.js\nawait registry.execute('read', { file_path: '../docs/readme.md' });   // Parent dir/docs/readme.md\nawait registry.execute('ls', { path: '.' });                          // Current directory\nawait registry.execute('ls', { path: '..' });                         // Parent directory\n```\n\n### Working Directory Tools\n\n#### Pwd Tool\nGet the current working directory:\n```typescript\nawait registry.execute('pwd', {});\n```\n\n**Returns:**\n- `current_working_directory`: The directory used for resolving relative paths\n- `process_working_directory`: The actual Node.js process.cwd() \n- `is_same`: Whether tool and process directories match\n\n#### Cd Tool\nChange the current working directory:\n```typescript\nawait registry.execute('cd', { path: './src' });           // Relative change\nawait registry.execute('cd', { path: '/home/user/docs' }); // Absolute change  \nawait registry.execute('cd', { path: '..' });             // Parent directory\n```\n\n**Parameters:**\n- `path` (string, required): Directory to change to (absolute or relative)\n\n## Installation\n\n```bash\nnpm install @majkapp/majk-chat-basic-tools @majkapp/majk-chat-core\n```\n\n## Quick Start\n\n### CLI Integration (Recommended)\n\nThe easiest way to use these tools is through the majk-chat CLI:\n\n```bash\n# Install the CLI globally\nnpm install -g @majkapp/majk-chat-cli\n\n# Enable core tools for any conversation\nmajk-chat chat -M \"List all JavaScript files and show me package.json\" --enable-core-tools\n\n# Start interactive mode with core tools\nmajk-chat interactive --enable-core-tools\n\n# Customize tool result limits and filtering\nmajk-chat chat -M \"Analyze the codebase\" --enable-core-tools --tool-result-limit 4000 --allowed-tools \"ls,read,glob,grep\"\n```\n\n### Programmatic Integration\n\n```typescript\nimport { ToolRegistry } from '@majkapp/majk-chat-core';\nimport { registerBasicTools, registerReadOnlyBasicTools } from '@majkapp/majk-chat-basic-tools';\n\n// Create a tool registry\nconst registry = new ToolRegistry();\n\n// Option 1: Register all basic tools (full access)\nregisterBasicTools(registry);\n\n// Option 2: Register only read-only tools (safer for untrusted environments)\nregisterReadOnlyBasicTools(registry);\n\n// Now you can use the registered tools\nconst result = await registry.execute('read', {\n  file_path: '/path/to/file.txt'\n}, context);\n```\n\n### Read-Only Tools Registration\n\nFor safer operation in untrusted environments or when you want to prevent modifications, use `registerReadOnlyBasicTools`:\n\n```typescript\nimport { registerReadOnlyBasicTools } from '@majkapp/majk-chat-basic-tools';\n\n// Register only tools that don't modify the system\nregisterReadOnlyBasicTools(registry);\n\n// Available read-only tools:\n// - ls, read, glob, grep (file inspection)\n// - pwd, cd (navigation)\n// - bash_output (monitor processes)\n// - todo_write (task management)\n// - web_fetch (read web content)\n// - read_tool_result (access truncated results)\n\n// These tools are NOT available in read-only mode:\n// - bash (cannot execute commands)\n// - edit, multi_edit, write (cannot modify files)\n// - kill_bash (cannot terminate processes)\n```\n\n### Individual Tool Usage\n\n```typescript\nimport { ReadTool, BashTool } from '@majkapp/majk-chat-basic-tools';\n\nconst readTool = new ReadTool();\nconst bashTool = new BashTool();\n\n// Read a file with specific limits\nconst readResult = await readTool.execute({\n  file_path: '/absolute/path/to/file.txt',\n  offset: 100,\n  limit: 1000\n}, context);\n\n// Execute a bash command\nconst bashResult = await bashTool.execute({\n  command: 'ls -la',\n  working_directory: '/home/user'\n}, context);\n```\n\n## Tool Reference\n\n### Bash Tool\n\nExecute bash commands on the local system with optional background execution.\n\n```typescript\nawait registry.execute('bash', {\n  command: 'npm install',\n  working_directory: '/project',\n  timeout: 60000,\n  run_in_background: false\n});\n```\n\n**Parameters:**\n- `command` (string, required): The bash command to execute\n- `working_directory` (string, optional): Working directory for the command\n- `timeout` (number, optional): Timeout in milliseconds (default: 30000, max: 600000)\n- `run_in_background` (boolean, optional): Run command in background\n\n### KillBash Tool\n\nTerminate background bash processes started by the bash tool.\n\n```typescript\nawait registry.execute('kill_bash', {\n  process_id: 'bg_1234567890_abcdef',\n  signal: 'SIGTERM',\n  force: true\n});\n```\n\n**Parameters:**\n- `process_id` (string, required): The background process ID returned by bash tool\n- `signal` (string, optional): Signal to send (SIGTERM, SIGKILL, SIGINT, default: SIGTERM)\n- `force` (boolean, optional): Use SIGKILL if SIGTERM fails (default: false)\n\n### BashOutput Tool\n\nMonitor and retrieve output from background bash processes.\n\n```typescript\n// List all background processes\nawait registry.execute('bash_output', {\n  list_all: true,\n  include_finished: true\n});\n\n// Get output from specific process\nawait registry.execute('bash_output', {\n  process_id: 'bg_1234567890_abcdef',\n  filter: 'ERROR'\n});\n```\n\n**Parameters:**\n- `process_id` (string, optional): Process ID to get output from\n- `list_all` (boolean, optional): List all processes instead of getting output\n- `filter` (string, optional): Regex filter for output lines\n- `include_finished` (boolean, optional): Include finished processes in list (default: true)\n\n### LS Tool\n\nList files and directories with optional filtering and detailed information.\n\n```typescript\nawait registry.execute('ls', {\n  path: '/absolute/path',\n  ignore: ['*.tmp', '.git'],\n  show_hidden: false,\n  detailed: true\n});\n```\n\n**Parameters:**\n- `path` (string, required): Absolute path to directory\n- `ignore` (string[], optional): Glob patterns to ignore\n- `show_hidden` (boolean, optional): Show hidden files (default: false)\n- `detailed` (boolean, optional): Include file details (default: false)\n\n### Read Tool\n\nRead file contents with configurable offset and character limits.\n\n```typescript\nawait registry.execute('read', {\n  file_path: '/absolute/path/to/file.txt',\n  offset: 0,\n  limit: 50000,\n  encoding: 'utf8'\n});\n```\n\n**Parameters:**\n- `file_path` (string, required): Absolute path to file\n- `offset` (number, optional): Character offset to start reading (default: 0)\n- `limit` (number, optional): Maximum characters to read (default: 100000)\n- `encoding` (string, optional): File encoding (utf8, ascii, base64, hex)\n\n### Glob Tool\n\nFast file pattern matching using glob patterns.\n\n```typescript\nawait registry.execute('glob', {\n  pattern: '**/*.js',\n  path: '/project/src',\n  case_sensitive: true,\n  include_hidden: false\n});\n```\n\n**Parameters:**\n- `pattern` (string, required): Glob pattern (e.g., \"*.js\", \"src/**/*.ts\")\n- `path` (string, optional): Directory to search (default: current directory)\n- `ignore` (string[], optional): Patterns to ignore\n- `case_sensitive` (boolean, optional): Case sensitive matching (default: true)\n- `include_hidden` (boolean, optional): Include hidden files (default: false)\n\n### Grep Tool\n\nSearch for text patterns in files using regular expressions.\n\n```typescript\nawait registry.execute('grep', {\n  pattern: 'function\\\\s+\\\\w+',\n  path: '/project',\n  file_pattern: '*.js',\n  case_insensitive: false,\n  recursive: true,\n  context_lines: 2\n});\n```\n\n**Parameters:**\n- `pattern` (string, required): Regular expression pattern\n- `path` (string, optional): File or directory to search\n- `file_pattern` (string, optional): Glob pattern for files (default: \"*\")\n- `case_insensitive` (boolean, optional): Ignore case (default: false)\n- `whole_words` (boolean, optional): Match whole words only (default: false)\n- `line_numbers` (boolean, optional): Include line numbers (default: true)\n- `context_lines` (number, optional): Context lines before/after matches (default: 0)\n- `max_matches` (number, optional): Maximum matches to return (default: 1000)\n- `recursive` (boolean, optional): Search recursively (default: true)\n\n### Edit Tool\n\nPerform exact string replacements in files.\n\n```typescript\n// Using relative paths (recommended)\nawait registry.execute('edit', {\n  file_path: './src/config.js',\n  old_string: 'const oldValue = 42;',\n  new_string: 'const newValue = 100;',\n  replace_all: false,\n  create_backup: true\n});\n\n// Absolute paths also work\nawait registry.execute('edit', {\n  file_path: '/home/user/project/src/config.js',\n  old_string: 'const oldValue = 42;',\n  new_string: 'const newValue = 100;'\n});\n```\n\n**Parameters:**\n- `file_path` (string, required): Path to file (absolute or relative)\n- `old_string` (string, required): Exact text to find\n- `new_string` (string, required): Replacement text\n- `replace_all` (boolean, optional): Replace all occurrences (default: false)\n- `create_backup` (boolean, optional): Create backup before editing (default: false)\n\n### MultiEdit Tool\n\nMake multiple edits to a single file in one atomic operation.\n\n```typescript\nawait registry.execute('multi_edit', {\n  file_path: '/absolute/path/to/file.js',\n  edits: [\n    {\n      old_string: 'var x = 1;',\n      new_string: 'let x = 1;'\n    },\n    {\n      old_string: 'var y = 2;',\n      new_string: 'let y = 2;',\n      replace_all: true\n    }\n  ],\n  create_backup: true\n});\n```\n\n**Parameters:**\n- `file_path` (string, required): Absolute path to file\n- `edits` (EditOperation[], required): Array of edit operations\n- `create_backup` (boolean, optional): Create backup before editing (default: false)\n\n### Write Tool\n\nWrite content to files with encoding support.\n\n```typescript\n// Using relative paths (recommended)\nawait registry.execute('write', {\n  file_path: './output/results.txt',\n  content: 'File contents here',\n  encoding: 'utf8',\n  create_directories: true,\n  overwrite: true\n});\n\n// Absolute paths also work\nawait registry.execute('write', {\n  file_path: '/home/user/project/output/results.txt',\n  content: 'File contents here'\n});\n```\n\n**Parameters:**\n- `file_path` (string, required): Path to file (absolute or relative)\n- `content` (string, required): Content to write\n- `encoding` (string, optional): File encoding (utf8, ascii, base64, hex)\n- `create_directories` (boolean, optional): Create parent directories (default: true)\n- `overwrite` (boolean, optional): Overwrite existing files (default: true)\n\n### WebFetch Tool\n\nFetch content from URLs using HTTP/HTTPS requests.\n\n```typescript\nawait registry.execute('web_fetch', {\n  url: 'https://api.example.com/data',\n  method: 'GET',\n  headers: { 'Authorization': 'Bearer token' },\n  timeout: 30000,\n  follow_redirects: true\n});\n```\n\n**Parameters:**\n- `url` (string, required): URL to fetch\n- `method` (string, optional): HTTP method (GET, POST, PUT, DELETE, PATCH)\n- `headers` (object, optional): HTTP headers\n- `body` (string, optional): Request body for POST/PUT/PATCH\n- `timeout` (number, optional): Request timeout (default: 30000)\n- `follow_redirects` (boolean, optional): Follow redirects (default: true)\n- `max_response_size` (number, optional): Max response size in bytes (default: 10MB)\n\n### TodoWrite Tool\n\nManage structured task lists for session tracking.\n\n```typescript\nawait registry.execute('todo_write', {\n  todos: [\n    {\n      content: 'Implement user authentication',\n      status: 'pending',\n      activeForm: 'Implementing user authentication',\n      priority: 'high',\n      tags: ['auth', 'security']\n    },\n    {\n      content: 'Write unit tests',\n      status: 'in_progress', \n      activeForm: 'Writing unit tests'\n    }\n  ],\n  instance_id: 'project-123',\n  action: 'replace'\n});\n```\n\n**Parameters:**\n- `todos` (TodoItem[], required): Array of todo items\n- `instance_id` (string, optional): Session identifier (default: \"default\")\n- `action` (string, optional): How to handle the list (replace, append, update)\n\n## Configuration\n\nYou can configure the tools when registering them:\n\n```typescript\nimport { registerBasicTools, BasicToolsConfig } from '@majkapp/majk-chat-basic-tools';\n\nconst config: BasicToolsConfig = {\n  bashRequiresConfirmation: true,\n  writeRequiresConfirmation: true,\n  webFetchRequiresConfirmation: true,\n  webFetchTimeout: 30000,\n  maxReadSize: 100000,\n  createBackups: false\n};\n\nregisterBasicTools(registry, config);\n```\n\n## 🔍 Dry Run System\n\nThe dry run system provides safe operation planning and approval workflows, allowing you to preview and control tool execution:\n\n### Core Components\n\n- **DryRunManager**: Central coordinator for dry run sessions\n- **DryRunStore**: Storage for planned operations with session management\n- **Tool Wrappers**: Dry run versions of all tools that capture instead of execute\n- **InteractiveReviewer**: CLI interface for reviewing and approving operations\n- **OperationExecutor**: Executes approved operations using real tools\n\n### Basic Usage\n\n```typescript\nimport { DryRunManager, dryRunStore } from '@majkapp/majk-chat-basic-tools';\n\n// Create a dry run session\nconst dryRunManager = new DryRunManager(toolRegistry, {\n  interactive: true,\n  showPreview: true\n});\n\nconst sessionId = dryRunManager.startDryRun();\n\n// Now all tool operations will be captured instead of executed\nconst result = await registry.execute('write', {\n  file_path: '/tmp/test.txt',\n  content: 'Hello World'\n});\n\n// Result contains planning information instead of actual execution\nconsole.log('Operation planned:', result.output.operationId);\n\n// Review and execute approved operations\nawait dryRunManager.reviewAndExecute(sessionId, context);\n```\n\n### Dry Run Tool Wrappers\n\nEach tool has a corresponding dry run wrapper:\n\n- **WriteDryRunTool**: Simulates file writes, shows content diffs\n- **EditDryRunTool**: Shows edit operations with match counts and previews\n- **MultiEditDryRunTool**: Simulates multiple edits with aggregate effects\n- **BashDryRunTool**: Analyzes commands for safety, shows potential effects\n- **GenericDryRunTool**: Fallback wrapper for any tool\n\n### Operation Planning\n\n```typescript\n// Example of planned operation structure\ninterface PlannedOperation {\n  id: string;\n  toolName: string;\n  args: any;\n  description: string;          // Human-readable description\n  preview?: string;             // Detailed preview (diffs, effects, etc.)\n  timestamp: Date;\n  status: 'pending' | 'approved' | 'rejected' | 'executed';\n  category: 'filesystem' | 'process' | 'network' | 'other';\n  riskLevel: 'low' | 'medium' | 'high';\n}\n```\n\n### Risk Assessment\n\nThe system automatically assesses operation risk:\n\n```typescript\n// High risk examples\n- System paths (/usr/, /bin/, /etc/)\n- Destructive commands (rm -rf, sudo)\n- Large operations (>50KB files, >10 edits)\n- Dangerous content (eval, exec, script downloads)\n\n// Medium risk examples  \n- Config files (.env, package.json)\n- Package operations (npm install, git operations)\n- Network requests\n- Multiple edits (5+ operations)\n\n// Low risk examples\n- Simple file reads\n- Basic text edits\n- Safe bash commands (ls, pwd, echo)\n```\n\n### Session Management\n\n```typescript\n// Get planned operations\nconst operations = dryRunStore.getOperations(sessionId);\n\n// Get session statistics\nconst stats = dryRunStore.getSessionStats(sessionId);\nconsole.log(`${stats.pending} pending, ${stats.approved} approved`);\n\n// Apply review decisions\ndryRunStore.applyReviewDecisions(sessionId, [\n  { operationId: 'op1', action: 'approve' },\n  { operationId: 'op2', action: 'reject' }\n]);\n\n// Execute approved operations\nconst executor = new OperationExecutor(toolRegistry, context);\nawait executor.executeApprovedOperations(sessionId);\n```\n\n### CLI Integration\n\nThe dry run system integrates seamlessly with the CLI:\n\n```bash\n# Plan operations without executing\nmajk-chat chat --dry-run --enable-core-tools -M \"Set up a new project\"\n\n# Interactive review and execution\nmajk-chat chat --dry-run-review --enable-core-tools -M \"Refactor and test the codebase\"\n```\n\n## Background Process Management\n\nThe package includes comprehensive background process management capabilities:\n\n### Starting Background Processes\n\n```typescript\n// Start a long-running task in the background\nconst result = await registry.execute('bash', {\n  command: 'npm run build && npm test',\n  working_directory: '/project',\n  run_in_background: true\n});\n\nconst processId = result.output.background_id;\nconsole.log(`Started background process: ${processId}`);\n```\n\n### Monitoring Process Output\n\n```typescript\n// List all background processes\nconst listResult = await registry.execute('bash_output', {\n  list_all: true\n});\n\n// Get output from a specific process\nconst outputResult = await registry.execute('bash_output', {\n  process_id: processId,\n  filter: 'ERROR' // Optional regex filter\n});\n\nconsole.log('Process status:', outputResult.output.status.running ? 'Running' : 'Finished');\nconsole.log('Output:', outputResult.output.stdout);\n```\n\n### Terminating Processes\n\n```typescript\n// Graceful termination\nawait registry.execute('kill_bash', {\n  process_id: processId,\n  signal: 'SIGTERM'\n});\n\n// Force termination if needed\nawait registry.execute('kill_bash', {\n  process_id: processId,\n  signal: 'SIGTERM',\n  force: true // Will use SIGKILL if SIGTERM fails\n});\n```\n\n### Process Registry\n\nDirect access to the process registry for advanced use cases:\n\n```typescript\nimport { ProcessRegistry } from '@majkapp/majk-chat-basic-tools';\n\n// Get all running processes\nconst runningProcesses = ProcessRegistry.getRunning();\n\n// Get process status\nconst status = ProcessRegistry.getStatus(processId);\n\n// Manual cleanup of old processes\nProcessRegistry.cleanup();\n```\n\n## Tool Result Management\n\nContext management and result truncation is now handled by the **ContextManagementExtension** in `@majkapp/majk-chat-core`. The basic-tools package provides the `ReadToolResultTool` for accessing truncated results.\n\n### Automatic Result Truncation (via Core Extension)\n\n```typescript\nimport { MajkChatBuilder, ContextManagementExtension } from '@majkapp/majk-chat-core';\nimport { registerBasicTools } from '@majkapp/majk-chat-basic-tools';\n\n// Setup with automatic truncation via extension\nconst builder = new MajkChatBuilder()\n  .withOpenAI()\n  .withContextManagement({\n    maxLength: 6000,        // Max characters before truncation\n    conversationId: 'chat-123'\n  });\n\n// Or use extension directly for custom configuration\nconst customExtension = new ContextManagementExtension({\n  maxLength: 8000,\n  previewLength: 4800,\n  tailLength: 2400,\n  conversationId: 'custom-chat'\n});\n\nbuilder.withExtension(customExtension);\n```\n\n### Reading Stored Results\n\n```typescript\n// Read the full result back in chunks\nconst readResult = await registry.execute('read_tool_result', {\n  result_id: 'conv_1234567890_abcdef',\n  offset: 0,\n  limit: 5000,\n  format: 'formatted'  // Options: 'raw', 'formatted', 'json'\n});\n\n// Navigate through large results\nif (readResult.output.reading_info.has_more) {\n  const nextChunk = await registry.execute('read_tool_result', {\n    result_id: 'conv_1234567890_abcdef',\n    offset: readResult.output.reading_info.next_offset,\n    limit: 5000\n  });\n}\n```\n\n### Searching Within Results\n\n```typescript\n// Search for specific patterns within stored results\nconst searchResult = await registry.execute('read_tool_result', {\n  result_id: 'conv_1234567890_abcdef',\n  search: 'ERROR|WARN',  // Regex pattern\n  limit: 2000\n});\n\nconsole.log(`Found ${searchResult.output.matches_found} matches`);\nsearchResult.output.matches.forEach(match => {\n  console.log(`\"${match.match}\" at line ${match.line_number}`);\n});\n```\n\n### Listing Stored Results\n\n```typescript\n// List all stored results for the current conversation\nconst listResult = await registry.execute('read_tool_result', {\n  result_id: 'dummy',\n  list_results: true\n});\n\nconsole.log(`${listResult.output.stored_results.length} results available`);\nlistResult.output.stored_results.forEach(result => {\n  console.log(`${result.result_id}: ${result.tool_name} (${result.length} chars)`);\n});\n```\n\n### Result Storage Management\n\n**Note:** Truncation and storage is automatically handled by the `ContextManagementExtension` in core. The following utilities are available for advanced usage:\n\n### Registry Management\n\n```typescript\nimport { ResultStorage } from '@majkapp/majk-chat-core';\n\n// Get statistics about stored results\nconst stats = ResultStorage.getStats();\nconsole.log(`Total results: ${stats.totalResults}`);\nconsole.log(`Total size: ${stats.totalSize} characters`);\n\n// Manual cleanup of conversation results\nResultStorage.clearConversation('old-conversation-id');\n\n// List results for a conversation\nconst results = ResultStorage.listForConversation('chat-123');\n```\n\n### ReadToolResult Tool\n\nThe `read_tool_result` tool provides Read-like functionality for stored results:\n\n```typescript\nawait registry.execute('read_tool_result', {\n  result_id: 'conv_1234567890_abcdef',  // Required: stored result ID\n  offset: 1000,                         // Optional: start position\n  limit: 2000,                          // Optional: max characters\n  format: 'formatted',                  // Optional: output format\n  search: 'pattern',                    // Optional: search within result\n  list_results: false                   // Optional: list all results\n});\n```\n\n**Parameters:**\n- `result_id` (string, required): The stored result ID from truncated output\n- `offset` (number, optional): Character offset to start reading (default: 0)\n- `limit` (number, optional): Maximum characters to read (default: 10000)\n- `format` (string, optional): Output format - raw, formatted, json (default: formatted)\n- `search` (string, optional): Regex pattern to search for within the result\n- `list_results` (boolean, optional): List available results instead of reading\n\n## Safety Features\n\nAll tools include built-in safety features:\n\n- **Path Resolution**: Both absolute and relative paths supported with proper resolution\n- **Working Directory Context**: Shared working directory context across all file operations\n- **Permission Checks**: Tools respect filesystem permissions and access controls\n- **Size Limits**: File operations have configurable size limits to prevent memory issues\n- **Timeout Protection**: Network and process operations have configurable timeouts\n- **Confirmation Requirements**: Destructive operations can require user confirmation\n- **Error Handling**: Comprehensive error messages with both original and resolved paths\n- **Path Information**: All file operations return path resolution details for transparency\n\n## Integration Examples\n\n### Express.js API\n\n```typescript\nimport express from 'express';\nimport { ToolRegistry } from '@majkapp/majk-chat-core';\nimport { registerBasicTools } from '@majkapp/majk-chat-basic-tools';\n\nconst app = express();\nconst registry = new ToolRegistry();\n\nregisterBasicTools(registry);\n\napp.post('/api/tools/:toolName', async (req, res) => {\n  try {\n    const result = await registry.execute(\n      req.params.toolName,\n      req.body,\n      { sessionId: req.headers['session-id'] }\n    );\n    res.json(result);\n  } catch (error) {\n    res.status(500).json({ error: error.message });\n  }\n});\n```\n\n### CLI Application\n\n```typescript\n#!/usr/bin/env node\nimport { ToolRegistry } from '@majkapp/majk-chat-core';\nimport { registerBasicTools } from '@majkapp/majk-chat-basic-tools';\n\nconst registry = new ToolRegistry();\nregisterBasicTools(registry);\n\nasync function main() {\n  const [toolName, ...args] = process.argv.slice(2);\n  \n  const result = await registry.execute(\n    toolName,\n    JSON.parse(args[0] || '{}'),\n    { sessionId: 'cli' }\n  );\n  \n  console.log(JSON.stringify(result, null, 2));\n}\n\nmain().catch(console.error);\n```\n\n## TypeScript Support\n\nThe package includes full TypeScript definitions:\n\n```typescript\nimport { BashArgs, ReadArgs, EditArgs } from '@majkapp/majk-chat-basic-tools';\n\n// Type-safe tool arguments\nconst bashArgs: BashArgs = {\n  command: 'ls -la',\n  working_directory: '/home'\n};\n\nconst readArgs: ReadArgs = {\n  file_path: '/path/to/file.txt',\n  offset: 0,\n  limit: 1000\n};\n```\n\n## Error Handling\n\nAll tools return structured results:\n\n```typescript\ninterface ToolResult {\n  success: boolean;\n  output?: any;\n  error?: string;\n  metadata?: Record<string, any>;\n}\n```\n\nExample error handling:\n\n```typescript\nconst result = await registry.execute('read', { file_path: '/nonexistent' });\n\nif (!result.success) {\n  console.error('Tool failed:', result.error);\n} else {\n  console.log('File content:', result.output.content);\n}\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Add tests for new functionality\n4. Ensure all tests pass: `npm test`\n5. Submit a pull request\n\n## License\n\nMIT","readmeFilename":"README.md"}