morpheus-cli 0.9.41 → 0.9.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/channels/discord.js +1 -1
  2. package/dist/channels/telegram.js +1 -1
  3. package/dist/config/manager.js +8 -5
  4. package/dist/config/schemas.js +6 -3
  5. package/dist/runtime/__tests__/manual_start_verify.js +1 -1
  6. package/dist/runtime/__tests__/telephonist-tts.test.js +2 -2
  7. package/dist/runtime/hot-reload.js +5 -0
  8. package/dist/runtime/memory/sati/index.js +14 -2
  9. package/dist/runtime/memory/sati/repository.js +26 -28
  10. package/dist/runtime/memory/session-embedding-worker.js +16 -8
  11. package/dist/runtime/memory/sqlite.js +22 -6
  12. package/dist/runtime/migration.js +45 -0
  13. package/dist/runtime/oracle.js +3 -0
  14. package/dist/runtime/subagents/apoc.js +2 -2
  15. package/dist/runtime/subagents/link/link.js +2 -2
  16. package/dist/runtime/subagents/link/worker.js +2 -1
  17. package/dist/runtime/subagents/neo.js +5 -3
  18. package/dist/runtime/subagents/registry.js +8 -8
  19. package/dist/runtime/subagents/trinity/trinity.js +2 -2
  20. package/dist/runtime/subagents/utils.js +2 -0
  21. package/dist/runtime/telephonist.js +6 -6
  22. package/dist/runtime/tools/factory.js +50 -34
  23. package/dist/types/config.js +4 -3
  24. package/dist/ui/assets/{AuditDashboard-EvtKjy5H.js → AuditDashboard-DYsjEZ2h.js} +1 -1
  25. package/dist/ui/assets/{Chat-yptierPt.js → Chat-u6n5Fcmk.js} +4 -4
  26. package/dist/ui/assets/{Chronos-BA77MYbp.js → Chronos-Dgz6pUbe.js} +1 -1
  27. package/dist/ui/assets/{ConfirmationModal-NOZr-ipQ.js → ConfirmationModal-BCWFgigv.js} +1 -1
  28. package/dist/ui/assets/{Dashboard-ly1MJiB4.js → Dashboard-5ERDbl6k.js} +1 -1
  29. package/dist/ui/assets/{DeleteConfirmationModal-2HMraacH.js → DeleteConfirmationModal-O7K_CzNy.js} +1 -1
  30. package/dist/ui/assets/{Documents-C31fAm0Z.js → Documents-C6vFeWQC.js} +1 -1
  31. package/dist/ui/assets/{Logs-BiajoLAB.js → Logs-DZ820gmZ.js} +1 -1
  32. package/dist/ui/assets/{MCPManager-DS9jfiZT.js → MCPManager-BpscMusl.js} +1 -1
  33. package/dist/ui/assets/{ModelPresets-CxhKcalw.js → ModelPresets-B0OtJ3SG.js} +1 -1
  34. package/dist/ui/assets/{ModelPricing-CN8flHnP.js → ModelPricing-DSe7ibox.js} +1 -1
  35. package/dist/ui/assets/{Notifications-BfP1_CM3.js → Notifications-C4LoP0a6.js} +1 -1
  36. package/dist/ui/assets/{SatiMemories-Bk4_ubo7.js → SatiMemories-WJaz9vS2.js} +1 -1
  37. package/dist/ui/assets/{SessionAudit-D3E6QSQw.js → SessionAudit-BUFsqB5Q.js} +1 -1
  38. package/dist/ui/assets/{Settings-3VBK8muv.js → Settings-lHi1Jo5c.js} +5 -5
  39. package/dist/ui/assets/{Skills-Dp0_GwiW.js → Skills-jwgKeiMX.js} +1 -1
  40. package/dist/ui/assets/{Smiths-COTgI2R4.js → Smiths-DhytcrJX.js} +1 -1
  41. package/dist/ui/assets/{Tasks-COe4lIJ7.js → Tasks-Mn99HoyU.js} +1 -1
  42. package/dist/ui/assets/{TrinityDatabases-BEU4mmyW.js → TrinityDatabases-DDHblq8V.js} +1 -1
  43. package/dist/ui/assets/{UsageStats-BTmDeG2V.js → UsageStats-Czu8MFsZ.js} +1 -1
  44. package/dist/ui/assets/{WebhookManager-FQVyKyW-.js → WebhookManager-CKZOjGG3.js} +1 -1
  45. package/dist/ui/assets/{agents-B6e9N0QI.js → agents-fpKaFvxS.js} +1 -1
  46. package/dist/ui/assets/{audit-giQG2WRk.js → audit-BCFf71Ic.js} +1 -1
  47. package/dist/ui/assets/{chronos-sweaRcNj.js → chronos-_FyFfKFn.js} +1 -1
  48. package/dist/ui/assets/{config-CbUdj76n.js → config-sb-fswxE.js} +1 -1
  49. package/dist/ui/assets/{index-CRPT77Yo.css → index-Bn2nGQ5z.css} +1 -1
  50. package/dist/ui/assets/{index-yu2c4ry1.js → index-DZCpLD9L.js} +2 -2
  51. package/dist/ui/assets/{mcp-v64BBpUk.js → mcp-Dmcsh35T.js} +1 -1
  52. package/dist/ui/assets/{modelPresets-BaNh-gxn.js → modelPresets-CShvjJGA.js} +1 -1
  53. package/dist/ui/assets/{skills-ClRXBlVt.js → skills-CxeLa4Rc.js} +1 -1
  54. package/dist/ui/assets/{stats-nI-89hEX.js → stats-C7Z2ippX.js} +1 -1
  55. package/dist/ui/assets/{useCurrency-D5An8I2f.js → useCurrency-LdM_SjsH.js} +1 -1
  56. package/dist/ui/index.html +2 -2
  57. package/dist/ui/sw.js +1 -1
  58. package/package.json +1 -1
@@ -1 +1 @@
1
- import{H as c}from"./index-yu2c4ry1.js";const e=c.getInstance(),n={fetchServers:async()=>e.get("/mcp/servers"),addServer:async(t,s)=>e.post("/mcp/servers",{name:t,config:s}),updateServer:async(t,s)=>e.put(`/mcp/servers/${encodeURIComponent(t)}`,{config:s}),deleteServer:async t=>e.delete(`/mcp/servers/${encodeURIComponent(t)}`),toggleServer:async(t,s)=>e.patch(`/mcp/servers/${encodeURIComponent(t)}/toggle`,{enabled:s}),reloadTools:async()=>e.post("/mcp/reload",{}),fetchStatus:async()=>e.get("/mcp/status"),fetchStats:async()=>e.get("/mcp/stats")};export{n as m};
1
+ import{H as c}from"./index-DZCpLD9L.js";const e=c.getInstance(),n={fetchServers:async()=>e.get("/mcp/servers"),addServer:async(t,s)=>e.post("/mcp/servers",{name:t,config:s}),updateServer:async(t,s)=>e.put(`/mcp/servers/${encodeURIComponent(t)}`,{config:s}),deleteServer:async t=>e.delete(`/mcp/servers/${encodeURIComponent(t)}`),toggleServer:async(t,s)=>e.patch(`/mcp/servers/${encodeURIComponent(t)}/toggle`,{enabled:s}),reloadTools:async()=>e.post("/mcp/reload",{}),fetchStatus:async()=>e.get("/mcp/status"),fetchStats:async()=>e.get("/mcp/stats")};export{n as m};
@@ -1 +1 @@
1
- import{h as t}from"./index-yu2c4ry1.js";const s={list:()=>t.get("/model-presets"),create:e=>t.post("/model-presets",e),update:(e,o)=>t.put(`/model-presets/${encodeURIComponent(e)}`,o),delete:e=>t.delete(`/model-presets/${encodeURIComponent(e)}`),decryptApiKey:e=>t.get(`/model-presets/${encodeURIComponent(e)}/decrypt`)};export{s as m};
1
+ import{h as t}from"./index-DZCpLD9L.js";const s={list:()=>t.get("/model-presets"),create:e=>t.post("/model-presets",e),update:(e,o)=>t.put(`/model-presets/${encodeURIComponent(e)}`,o),delete:e=>t.delete(`/model-presets/${encodeURIComponent(e)}`),decryptApiKey:e=>t.get(`/model-presets/${encodeURIComponent(e)}/decrypt`)};export{s as m};
@@ -1 +1 @@
1
- import{H as e}from"./index-yu2c4ry1.js";const s=e.getInstance(),o={fetchSkills:async()=>s.get("/skills"),fetchSkill:async l=>s.get(`/skills/${encodeURIComponent(l)}`),reloadSkills:async()=>s.post("/skills/reload",{}),enableSkill:async l=>s.post(`/skills/${encodeURIComponent(l)}/enable`,{}),disableSkill:async l=>s.post(`/skills/${encodeURIComponent(l)}/disable`,{}),uploadSkill:async l=>s.uploadFile("/skills/upload",l)};export{o as s};
1
+ import{H as e}from"./index-DZCpLD9L.js";const s=e.getInstance(),o={fetchSkills:async()=>s.get("/skills"),fetchSkill:async l=>s.get(`/skills/${encodeURIComponent(l)}`),reloadSkills:async()=>s.post("/skills/reload",{}),enableSkill:async l=>s.post(`/skills/${encodeURIComponent(l)}/enable`,{}),disableSkill:async l=>s.post(`/skills/${encodeURIComponent(l)}/disable`,{}),uploadSkill:async l=>s.uploadFile("/skills/upload",l)};export{o as s};
@@ -1 +1 @@
1
- import{h as t}from"./index-yu2c4ry1.js";const e={fetchUsageStats:async()=>t.get("/stats/usage"),fetchGroupedUsageStats:async()=>t.get("/stats/usage/grouped")};export{e as s};
1
+ import{h as t}from"./index-DZCpLD9L.js";const e={fetchUsageStats:async()=>t.get("/stats/usage"),fetchGroupedUsageStats:async()=>t.get("/stats/usage/grouped")};export{e as s};
@@ -1 +1 @@
1
- import{u as f}from"./vendor-utils-BIYveU_1.js";import{c as $}from"./config-CbUdj76n.js";const y={code:"USD",symbol:"$",rate:1};function m(){const{data:c}=f("config/currency",()=>$.fetchConfig(),{revalidateOnFocus:!1,dedupingInterval:6e4}),r=c?.currency?{code:c.currency.code,symbol:c.currency.symbol,rate:c.currency.rate}:y,n=r.code==="USD"||r.rate===1;function s(t){if(t==null||t===0)return"—";const e=t<1e-4?"<$0.0001":`$${t.toFixed(4)}`;if(n)return e;const o=t*r.rate,u=o<1e-4?`<${r.symbol}0.0001`:`${r.symbol}${o.toFixed(4)}`;return`${e} / ${u}`}function i(t){const e=`$${t.toFixed(4)}`;if(n)return e;const o=t*r.rate;return`${e} / ${r.symbol}${o.toFixed(4)}`}return{currency:r,isUSD:n,fmtCost:s,fmtPrice:i}}export{m as u};
1
+ import{u as f}from"./vendor-utils-BIYveU_1.js";import{c as $}from"./config-sb-fswxE.js";const y={code:"USD",symbol:"$",rate:1};function m(){const{data:c}=f("config/currency",()=>$.fetchConfig(),{revalidateOnFocus:!1,dedupingInterval:6e4}),r=c?.currency?{code:c.currency.code,symbol:c.currency.symbol,rate:c.currency.rate}:y,n=r.code==="USD"||r.rate===1;function s(t){if(t==null||t===0)return"—";const e=t<1e-4?"<$0.0001":`$${t.toFixed(4)}`;if(n)return e;const o=t*r.rate,u=o<1e-4?`<${r.symbol}0.0001`:`${r.symbol}${o.toFixed(4)}`;return`${e} / ${u}`}function i(t){const e=`$${t.toFixed(4)}`;if(n)return e;const o=t*r.rate;return`${e} / ${r.symbol}${o.toFixed(4)}`}return{currency:r,isUSD:n,fmtCost:s,fmtPrice:i}}export{m as u};
@@ -18,12 +18,12 @@
18
18
 
19
19
  <title>Morpheus Agent UI</title>
20
20
  <!-- vite-plugin-pwa injeta <link rel="manifest"> automaticamente no build -->
21
- <script type="module" crossorigin src="./assets/index-yu2c4ry1.js"></script>
21
+ <script type="module" crossorigin src="./assets/index-DZCpLD9L.js"></script>
22
22
  <link rel="modulepreload" crossorigin href="./assets/vendor-react-DikRIOlj.js">
23
23
  <link rel="modulepreload" crossorigin href="./assets/vendor-motion-C3CZ8ZlO.js">
24
24
  <link rel="modulepreload" crossorigin href="./assets/vendor-utils-BIYveU_1.js">
25
25
  <link rel="modulepreload" crossorigin href="./assets/vendor-icons-LSkmAkBj.js">
26
- <link rel="stylesheet" crossorigin href="./assets/index-CRPT77Yo.css">
26
+ <link rel="stylesheet" crossorigin href="./assets/index-Bn2nGQ5z.css">
27
27
  <link rel="manifest" href="./manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="./registerSW.js"></script></head>
28
28
  <body>
29
29
  <div id="root"></div>
package/dist/ui/sw.js CHANGED
@@ -1 +1 @@
1
- if(!self.define){let s,e={};const i=(i,l)=>(i=new URL(i+".js",l).href,e[i]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()}).then(()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didn’t register its module`);return s}));self.define=(l,n)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let a={};const u=s=>i(s,r),o={module:{uri:r},exports:a,require:u};e[r]=Promise.all(l.map(s=>o[s]||u(s))).then(s=>(n(...s),a))}}define(["./workbox-26f462e7"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"vite.svg",revision:"5e386a6b1608494961c0a0de283e0df8"},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"pwa-maskable-512x512.png",revision:"e9dc04fc1b43cd6093e286bf765726d8"},{url:"pwa-maskable-192x192.png",revision:"8eb12fd764e6cb6f56247b2e1b21a31f"},{url:"pwa-512x512.png",revision:"f9619ef45b67856ce91010c1eb1d3c0c"},{url:"pwa-192x192.png",revision:"6174f6c5724689f6c15526be28983ca8"},{url:"index.html",revision:"b327f0752968f7787d3c20f0992c47a8"},{url:"assets/vendor-utils-BIYveU_1.js",revision:null},{url:"assets/vendor-react-DikRIOlj.js",revision:null},{url:"assets/vendor-motion-C3CZ8ZlO.js",revision:null},{url:"assets/vendor-markdown-BN_Np5Ta.js",revision:null},{url:"assets/vendor-icons-LSkmAkBj.js",revision:null},{url:"assets/useCurrency-D5An8I2f.js",revision:null},{url:"assets/stats-nI-89hEX.js",revision:null},{url:"assets/skills-ClRXBlVt.js",revision:null},{url:"assets/modelPresets-BaNh-gxn.js",revision:null},{url:"assets/mcp-v64BBpUk.js",revision:null},{url:"assets/index-yu2c4ry1.js",revision:null},{url:"assets/index-CRPT77Yo.css",revision:null},{url:"assets/config-CbUdj76n.js",revision:null},{url:"assets/chronos-sweaRcNj.js",revision:null},{url:"assets/audit-giQG2WRk.js",revision:null},{url:"assets/agents-B6e9N0QI.js",revision:null},{url:"assets/WebhookManager-FQVyKyW-.js",revision:null},{url:"assets/UsageStats-BTmDeG2V.js",revision:null},{url:"assets/TrinityDatabases-BEU4mmyW.js",revision:null},{url:"assets/Tasks-COe4lIJ7.js",revision:null},{url:"assets/Switch-C7TxLq0E.js",revision:null},{url:"assets/Smiths-COTgI2R4.js",revision:null},{url:"assets/Skills-Dp0_GwiW.js",revision:null},{url:"assets/Settings-3VBK8muv.js",revision:null},{url:"assets/SessionAudit-D3E6QSQw.js",revision:null},{url:"assets/SelectInput-BPDcd3y7.js",revision:null},{url:"assets/SatiMemories-Bk4_ubo7.js",revision:null},{url:"assets/Pagination-Doam4_qd.js",revision:null},{url:"assets/Notifications-BfP1_CM3.js",revision:null},{url:"assets/ModelPricing-CN8flHnP.js",revision:null},{url:"assets/ModelPresets-CxhKcalw.js",revision:null},{url:"assets/MCPManager-DS9jfiZT.js",revision:null},{url:"assets/Logs-BiajoLAB.js",revision:null},{url:"assets/Documents-C31fAm0Z.js",revision:null},{url:"assets/DeleteConfirmationModal-2HMraacH.js",revision:null},{url:"assets/Dashboard-ly1MJiB4.js",revision:null},{url:"assets/ConfirmationModal-NOZr-ipQ.js",revision:null},{url:"assets/Chronos-BA77MYbp.js",revision:null},{url:"assets/Chat-yptierPt.js",revision:null},{url:"assets/AuditDashboard-EvtKjy5H.js",revision:null},{url:"pwa-192x192.png",revision:"6174f6c5724689f6c15526be28983ca8"},{url:"pwa-512x512.png",revision:"f9619ef45b67856ce91010c1eb1d3c0c"},{url:"pwa-maskable-192x192.png",revision:"8eb12fd764e6cb6f56247b2e1b21a31f"},{url:"pwa-maskable-512x512.png",revision:"e9dc04fc1b43cd6093e286bf765726d8"},{url:"manifest.webmanifest",revision:"da8b9a11743009a7e50876a50de29362"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("/index.html"),{denylist:[/^\/api\//]})),s.registerRoute(/\/api\//,new s.NetworkOnly,"GET"),s.registerRoute(/\.(?:js|css|woff2)$/,new s.CacheFirst({cacheName:"static-assets",plugins:[new s.ExpirationPlugin({maxAgeSeconds:31536e3})]}),"GET"),s.registerRoute(/\.(?:png|svg|ico)$/,new s.StaleWhileRevalidate({cacheName:"images",plugins:[new s.ExpirationPlugin({maxEntries:50,maxAgeSeconds:2592e3})]}),"GET")});
1
+ if(!self.define){let s,e={};const i=(i,n)=>(i=new URL(i+".js",n).href,e[i]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()}).then(()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didn’t register its module`);return s}));self.define=(n,l)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let a={};const u=s=>i(s,r),o={module:{uri:r},exports:a,require:u};e[r]=Promise.all(n.map(s=>o[s]||u(s))).then(s=>(l(...s),a))}}define(["./workbox-26f462e7"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"vite.svg",revision:"5e386a6b1608494961c0a0de283e0df8"},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"pwa-maskable-512x512.png",revision:"e9dc04fc1b43cd6093e286bf765726d8"},{url:"pwa-maskable-192x192.png",revision:"8eb12fd764e6cb6f56247b2e1b21a31f"},{url:"pwa-512x512.png",revision:"f9619ef45b67856ce91010c1eb1d3c0c"},{url:"pwa-192x192.png",revision:"6174f6c5724689f6c15526be28983ca8"},{url:"index.html",revision:"c0b8a99e38e3992121a15edeaeb78fbe"},{url:"assets/vendor-utils-BIYveU_1.js",revision:null},{url:"assets/vendor-react-DikRIOlj.js",revision:null},{url:"assets/vendor-motion-C3CZ8ZlO.js",revision:null},{url:"assets/vendor-markdown-BN_Np5Ta.js",revision:null},{url:"assets/vendor-icons-LSkmAkBj.js",revision:null},{url:"assets/useCurrency-LdM_SjsH.js",revision:null},{url:"assets/stats-C7Z2ippX.js",revision:null},{url:"assets/skills-CxeLa4Rc.js",revision:null},{url:"assets/modelPresets-CShvjJGA.js",revision:null},{url:"assets/mcp-Dmcsh35T.js",revision:null},{url:"assets/index-DZCpLD9L.js",revision:null},{url:"assets/index-Bn2nGQ5z.css",revision:null},{url:"assets/config-sb-fswxE.js",revision:null},{url:"assets/chronos-_FyFfKFn.js",revision:null},{url:"assets/audit-BCFf71Ic.js",revision:null},{url:"assets/agents-fpKaFvxS.js",revision:null},{url:"assets/WebhookManager-CKZOjGG3.js",revision:null},{url:"assets/UsageStats-Czu8MFsZ.js",revision:null},{url:"assets/TrinityDatabases-DDHblq8V.js",revision:null},{url:"assets/Tasks-Mn99HoyU.js",revision:null},{url:"assets/Switch-C7TxLq0E.js",revision:null},{url:"assets/Smiths-DhytcrJX.js",revision:null},{url:"assets/Skills-jwgKeiMX.js",revision:null},{url:"assets/Settings-lHi1Jo5c.js",revision:null},{url:"assets/SessionAudit-BUFsqB5Q.js",revision:null},{url:"assets/SelectInput-BPDcd3y7.js",revision:null},{url:"assets/SatiMemories-WJaz9vS2.js",revision:null},{url:"assets/Pagination-Doam4_qd.js",revision:null},{url:"assets/Notifications-C4LoP0a6.js",revision:null},{url:"assets/ModelPricing-DSe7ibox.js",revision:null},{url:"assets/ModelPresets-B0OtJ3SG.js",revision:null},{url:"assets/MCPManager-BpscMusl.js",revision:null},{url:"assets/Logs-DZ820gmZ.js",revision:null},{url:"assets/Documents-C6vFeWQC.js",revision:null},{url:"assets/DeleteConfirmationModal-O7K_CzNy.js",revision:null},{url:"assets/Dashboard-5ERDbl6k.js",revision:null},{url:"assets/ConfirmationModal-BCWFgigv.js",revision:null},{url:"assets/Chronos-Dgz6pUbe.js",revision:null},{url:"assets/Chat-u6n5Fcmk.js",revision:null},{url:"assets/AuditDashboard-DYsjEZ2h.js",revision:null},{url:"pwa-192x192.png",revision:"6174f6c5724689f6c15526be28983ca8"},{url:"pwa-512x512.png",revision:"f9619ef45b67856ce91010c1eb1d3c0c"},{url:"pwa-maskable-192x192.png",revision:"8eb12fd764e6cb6f56247b2e1b21a31f"},{url:"pwa-maskable-512x512.png",revision:"e9dc04fc1b43cd6093e286bf765726d8"},{url:"manifest.webmanifest",revision:"da8b9a11743009a7e50876a50de29362"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("/index.html"),{denylist:[/^\/api\//]})),s.registerRoute(/\/api\//,new s.NetworkOnly,"GET"),s.registerRoute(/\.(?:js|css|woff2)$/,new s.CacheFirst({cacheName:"static-assets",plugins:[new s.ExpirationPlugin({maxAgeSeconds:31536e3})]}),"GET"),s.registerRoute(/\.(?:png|svg|ico)$/,new s.StaleWhileRevalidate({cacheName:"images",plugins:[new s.ExpirationPlugin({maxEntries:50,maxAgeSeconds:2592e3})]}),"GET")});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "morpheus-cli",
3
- "version": "0.9.41",
3
+ "version": "0.9.51",
4
4
  "description": "Morpheus is a local AI agent for developers, running as a CLI daemon that connects to LLMs, local tools, and MCPs, enabling interaction via Terminal, Telegram, and Discord. Inspired by the character Morpheus from *The Matrix*, the project acts as an intelligent orchestrator, bridging the gap between the developer and complex systems.",
5
5
  "bin": {
6
6
  "morpheus": "./bin/morpheus.js"