@romiluz/clawmongo 2026.3.27 → 2026.3.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -49
- package/dist/{accounts-boH28BFM.js → accounts-lL2y51Ag.js} +46 -46
- package/dist/{acp-cli-DLaTb29R.js → acp-cli-BZvVHRY8.js} +46 -46
- package/dist/{action-runtime-Bk-7pvN2.js → action-runtime-DMYRUL4q.js} +10 -10
- package/dist/{actions.runtime-Y529miLb.js → actions.runtime-Bd-NMAq6.js} +46 -46
- package/dist/{actions.runtime-DVQ4pmcp.js → actions.runtime-gPSeXscW.js} +49 -49
- package/dist/{agent-scope-BROpmzKv.js → agent-scope-DXZH506l.js} +1 -1
- package/dist/{agents-DZqtbDMD.js → agents-Bt25bmDR.js} +13 -13
- package/dist/{agents-BbO-i90j.js → agents-CyJmttnS.js} +114 -114
- package/dist/{agents.config-CDS6iAat.js → agents.config-BWm70Hr6.js} +2 -2
- package/dist/{agents.config-iY500LY-.js → agents.config-UsCw0kOR.js} +4 -4
- package/dist/{audit-Cmj7BNcZ.js → audit-Dg8ZiJrJ.js} +9 -9
- package/dist/{audit-DmXeao7s.js → audit-DhXhWoiv.js} +1 -1
- package/dist/{audit-channel.collect.runtime-DhP09fjv.js → audit-channel.collect.runtime-CvPUHy1X.js} +2 -2
- package/dist/{audit-channel.runtime-C-watgwg.js → audit-channel.runtime-B6ZnOPFc.js} +46 -46
- package/dist/{audit-extra.async-B-7dzgcz.js → audit-extra.async-826UZZhJ.js} +3 -3
- package/dist/{audit-membership-runtime-CbLi3-5b.js → audit-membership-runtime-DLQrV7Rr.js} +46 -46
- package/dist/{audit.deep.runtime-D5VgrTOT.js → audit.deep.runtime-DQDtV7Bc.js} +4 -4
- package/dist/{audit.nondeep.runtime-B7M0-7FZ.js → audit.nondeep.runtime-H6B-2xal.js} +4 -4
- package/dist/{audit.runtime-BUknqGaP.js → audit.runtime-D2ZRC2A_.js} +47 -47
- package/dist/{auth-choice-DfJRosb4.js → auth-choice-CEowrO66.js} +57 -57
- package/dist/{auth-choice-CpB99A-L.js → auth-choice-DiufM1b8.js} +55 -55
- package/dist/{auth-choice-Bnnngmkx.js → auth-choice-YrGxwB9A.js} +5 -5
- package/dist/{auth-choice-options-DvqJHFOp.js → auth-choice-options-n3_uFdT5.js} +2 -2
- package/dist/{auth-choice-prompt-DtTjWfPT.js → auth-choice-prompt-DYFzoWa6.js} +50 -50
- package/dist/{auth-choice-prompt-Cxz8du6E.js → auth-choice-prompt-sLET2Bkw.js} +1 -1
- package/dist/{auth-choice.apply-helpers-Bm5p2ZX7.js → auth-choice.apply-helpers-GU6nZntg.js} +1 -1
- package/dist/{auth-choice.plugin-providers.runtime-Dsu6-vb8.js → auth-choice.plugin-providers.runtime-BNqOEEtb.js} +47 -47
- package/dist/{auth-profiles-2-OV37OF.js → auth-profiles-BWBQJ6X_.js} +67 -76
- package/dist/{auth-profiles.runtime-HcQMBs3K.js → auth-profiles.runtime-DfKRAmQR.js} +46 -46
- package/dist/{backend-config-avgzgS5Z.js → backend-config--L236wE2.js} +26 -1
- package/dist/{backup-create-B9F0M7-J.js → backup-create-Bll6DgoT.js} +2 -2
- package/dist/{base-session-key-DyLtSGkj.js → base-session-key-CA4SoGLF.js} +1 -1
- package/dist/{bluebubbles-BTR7u4zE.js → bluebubbles-BsX68JOY.js} +6 -6
- package/dist/{browser-cli-tmytvFaa.js → browser-cli-B5euA0cQ.js} +8 -8
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +46 -46
- package/dist/bundled/bootstrap-extra-files/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +47 -47
- package/dist/{call-Cqem-bCB.js → call-C-_XQxw5.js} +1 -1
- package/dist/{call-CxVOiYz-.js → call-lPTaDgAg.js} +6 -6
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-Br8MF00M.js → channel-5o-oIU2B.js} +1 -1
- package/dist/{channel-BvRm4jSj.js → channel-C1zZg_8b.js} +2 -2
- package/dist/{channel-CqkxOhz2.js → channel-CEytBPH-.js} +4 -4
- package/dist/{channel-D_h7IfYK.js → channel-Cm65A1lo.js} +7 -7
- package/dist/{channel-ngZRDeE3.js → channel-D4K0MVgr.js} +5 -5
- package/dist/{channel-account-context-DZhZw4oo.js → channel-account-context-CNZZPDSe.js} +1 -1
- package/dist/{channel-plugin-resolution-CXm5HIcm.js → channel-plugin-resolution-WWO690RK.js} +3 -3
- package/dist/{channel-reply-pipeline-DdDsf-Lc.js → channel-reply-pipeline-B17-tBLU.js} +1 -1
- package/dist/{channel-shared-VIRIADYn.js → channel-shared-RH6YsZ0I.js} +1 -1
- package/dist/{channel-summary-BTJxLPN8.js → channel-summary-Cy7WDRjQ.js} +7 -7
- package/dist/{channel-summary-DdJtHlvH.js → channel-summary-DV4_b3HZ.js} +2 -2
- package/dist/{channel-tFDEkWt9.js → channel-yCiI29Ju.js} +6 -6
- package/dist/{channel.runtime-DGnRryi2.js → channel.runtime-C3m1vacV.js} +47 -47
- package/dist/{channel.runtime-CdPEA_wb.js → channel.runtime-CUSE7Dn0.js} +47 -47
- package/dist/{channel.runtime-0n3_Hz_Y.js → channel.runtime-CtWi36oj.js} +49 -49
- package/dist/{channel.runtime-CkHcsWQ3.js → channel.runtime-LUpQZiWg.js} +49 -49
- package/dist/{channel.runtime-msXRrVzC.js → channel.runtime-QOkM4mJV.js} +51 -51
- package/dist/{channel.runtime-khqV1QRG.js → channel.runtime-rYuUs2po.js} +4 -4
- package/dist/{channels-DNza27NY.js → channels-4VTbN2Gt.js} +103 -103
- package/dist/{channels-CLZoq3SY.js → channels-BUMnLXLQ.js} +1 -1
- package/dist/{channels-cli-Bhsnjsix.js → channels-cli-BYmLj8zw.js} +55 -55
- package/dist/{clawbot-cli-9YJNF9pF.js → clawbot-cli-CIYY1u-6.js} +47 -47
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-FF5823nM.js → cli-DUA0FvhM.js} +46 -46
- package/dist/{command-registry-Bow_kWfU.js → command-registry-B1ECZip_.js} +13 -13
- package/dist/{command-registry-BEExVzem.js → command-registry-DOAwIs0Y.js} +2 -2
- package/dist/{command-secret-gateway-CzHSHmXG.js → command-secret-gateway-Big-n6JY.js} +46 -46
- package/dist/{compact.runtime-Bye-pm7Z.js → compact.runtime-BKnPPv9X.js} +46 -46
- package/dist/{completion-cli-B4hJ8HjW.js → completion-cli-BeLNvVTI.js} +3 -3
- package/dist/{completion-cli-DQrts0Ip.js → completion-cli-CHwHDPuI.js} +2 -2
- package/dist/{config-Ca7pLyBD.js → config-BOWZMmDA.js} +1 -1
- package/dist/{config-GKOWhVMv.js → config-C68iwvDj.js} +5 -5
- package/dist/{config-cli-CxPspN-S.js → config-cli-BnC336Lu.js} +48 -48
- package/dist/{config-guard-BK2hWyPi.js → config-guard-Bn6rZnzK.js} +6 -6
- package/dist/{config-validation-DO6o_Kt_.js → config-validation-BBuJZ-WH.js} +2 -2
- package/dist/{configure-CODqvxU-.js → configure-CHJDsjOD.js} +120 -120
- package/dist/{configure-Dg65gBEw.js → configure-Cctw7tyJ.js} +19 -23
- package/dist/{connection-auth-zhL6PVn0.js → connection-auth-C2XaPpF5.js} +1 -1
- package/dist/{control-ui-shared-_VwcOcc_.js → control-ui-shared-BC-g150y.js} +1 -1
- package/dist/{core-CzwQmKcn.js → core-Cb3XxL6S.js} +1 -1
- package/dist/{cron-cli-Dp_EQt2v.js → cron-cli-C10feOtH.js} +7 -7
- package/dist/{daemon-cli-Dgpv6Y0R.js → daemon-cli-Ds8mu2VZ.js} +4 -4
- package/dist/{daemon-install-Dq1Ix-FO.js → daemon-install-B__sP_7j.js} +49 -49
- package/dist/{delegate-BVapk4rY.js → delegate-ByCLviVI.js} +1 -1
- package/dist/{deliver-runtime-DPzMjhNU.js → deliver-Co7G5ubS.js} +46 -46
- package/dist/{deliver-C32Gg-xU.js → deliver-runtime-2svrtAf1.js} +46 -46
- package/dist/{devices-cli-3WN_wB1C.js → devices-cli-CH8nWgcU.js} +6 -6
- package/dist/{diagnostic-BbXfhLMi.js → diagnostic-DHTG43d_.js} +1 -1
- package/dist/{directory-cli-D_5BYdXm.js → directory-cli-B0REFlKo.js} +48 -48
- package/dist/{directory.static-CsajbHw1.js → directory.static-wnw_R8dE.js} +1 -1
- package/dist/{discord-C-4y9vOT.js → discord-Cws9MsXn.js} +4 -4
- package/dist/{discord-B3mmVXuG.js → discord-b8Ff_BKB.js} +46 -46
- package/dist/{dns-cli-CdAnUzRi.js → dns-cli-aRTleL5e.js} +5 -5
- package/dist/{doctor-completion-Dk8sgMOd.js → doctor-completion-KQWBMnEi.js} +1 -1
- package/dist/{doctor-config-preflight-BJ0lGLTO.js → doctor-config-preflight-BDYe5di1.js} +2 -2
- package/dist/{doctor-config-preflight-D32oVOWD.js → doctor-config-preflight-Dn5a_Dbr.js} +6 -6
- package/dist/{doctor-state-migrations-BklDIib1.js → doctor-state-migrations-BI6HzFyq.js} +47 -47
- package/dist/{doctor-state-migrations-Cdk3ep_f.js → doctor-state-migrations-DUPe9zNr.js} +2 -2
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-D8OOtgGc.js → exec-approvals-CZz2LqIW.js} +1 -1
- package/dist/{exec-approvals-cli-dGISWHE3.js → exec-approvals-cli-KbFpgd-p.js} +9 -9
- package/dist/extensionAPI.js +46 -46
- package/dist/extensions/amazon-bedrock/index.js +46 -46
- package/dist/extensions/anthropic/index.js +46 -46
- package/dist/extensions/bluebubbles/index.js +50 -50
- package/dist/extensions/bluebubbles/setup-entry.js +48 -48
- package/dist/extensions/byteplus/index.js +46 -46
- package/dist/extensions/chutes/index.js +48 -48
- package/dist/extensions/cloudflare-ai-gateway/index.js +47 -47
- package/dist/extensions/device-pair/index.js +46 -46
- package/dist/extensions/discord/index.js +48 -48
- package/dist/extensions/discord/node_modules/.package-lock.json +3 -3
- package/dist/extensions/discord/node_modules/hono/dist/adapter/service-worker/index.js +1 -3
- package/dist/extensions/discord/node_modules/hono/dist/cjs/adapter/service-worker/index.js +1 -3
- package/dist/extensions/discord/node_modules/hono/dist/cjs/helper/ssg/ssg.js +1 -1
- package/dist/extensions/discord/node_modules/hono/dist/cjs/middleware/cors/index.js +5 -2
- package/dist/extensions/discord/node_modules/hono/dist/cjs/request.js +1 -1
- package/dist/extensions/discord/node_modules/hono/dist/helper/ssg/ssg.js +1 -1
- package/dist/extensions/discord/node_modules/hono/dist/middleware/cors/index.js +5 -2
- package/dist/extensions/discord/node_modules/hono/dist/request.js +1 -1
- package/dist/extensions/discord/node_modules/hono/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/extensions/discord/node_modules/hono/dist/types/client/index.d.ts +1 -1
- package/dist/extensions/discord/node_modules/hono/dist/types/client/types.d.ts +20 -0
- package/dist/extensions/discord/node_modules/hono/dist/types/request.d.ts +1 -3
- package/dist/extensions/discord/node_modules/hono/package.json +1 -1
- package/dist/extensions/discord/setup-entry.js +48 -48
- package/dist/extensions/elevenlabs/index.js +46 -46
- package/dist/extensions/fal/index.js +46 -46
- package/dist/extensions/feishu/index.js +55 -55
- package/dist/extensions/feishu/setup-entry.js +51 -51
- package/dist/extensions/firecrawl/index.js +46 -46
- package/dist/extensions/github-copilot/index.js +47 -47
- package/dist/extensions/google/index.js +46 -46
- package/dist/extensions/huggingface/index.js +47 -47
- package/dist/extensions/imessage/index.js +49 -49
- package/dist/extensions/imessage/setup-entry.js +49 -49
- package/dist/extensions/irc/index.js +49 -49
- package/dist/extensions/irc/setup-entry.js +48 -48
- package/dist/extensions/kilocode/index.js +47 -47
- package/dist/extensions/kimi-coding/index.js +47 -47
- package/dist/extensions/line/index.js +9 -9
- package/dist/extensions/line/setup-entry.js +8 -8
- package/dist/extensions/llm-task/index.js +46 -46
- package/dist/extensions/lobster/index.js +5 -5
- package/dist/extensions/mattermost/index.js +49 -49
- package/dist/extensions/mattermost/setup-entry.js +48 -48
- package/dist/extensions/microsoft/index.js +46 -46
- package/dist/extensions/minimax/index.js +48 -48
- package/dist/extensions/mistral/index.js +47 -47
- package/dist/extensions/modelstudio/index.js +47 -47
- package/dist/extensions/moonshot/index.js +46 -46
- package/dist/extensions/nextcloud-talk/index.js +50 -50
- package/dist/extensions/nextcloud-talk/setup-entry.js +49 -49
- package/dist/extensions/ollama/index.js +5 -5
- package/dist/extensions/openai/index.js +47 -47
- package/dist/extensions/opencode/index.js +47 -47
- package/dist/extensions/opencode-go/index.js +47 -47
- package/dist/extensions/openrouter/index.js +47 -47
- package/dist/extensions/openshell/index.js +46 -46
- package/dist/extensions/qianfan/index.js +47 -47
- package/dist/extensions/qwen-portal-auth/index.js +47 -47
- package/dist/extensions/sglang/index.js +46 -46
- package/dist/extensions/signal/index.js +49 -49
- package/dist/extensions/signal/setup-entry.js +49 -49
- package/dist/extensions/slack/index.js +50 -50
- package/dist/extensions/slack/setup-entry.js +50 -50
- package/dist/extensions/synology-chat/index.js +9 -9
- package/dist/extensions/synology-chat/setup-entry.js +8 -8
- package/dist/extensions/synthetic/index.js +47 -47
- package/dist/extensions/talk-voice/index.js +46 -46
- package/dist/extensions/tavily/index.js +46 -46
- package/dist/extensions/telegram/index.js +48 -48
- package/dist/extensions/telegram/setup-entry.js +48 -48
- package/dist/extensions/together/index.js +47 -47
- package/dist/extensions/venice/index.js +47 -47
- package/dist/extensions/vercel-ai-gateway/index.js +47 -47
- package/dist/extensions/vllm/index.js +46 -46
- package/dist/extensions/voice-call/index.js +46 -46
- package/dist/extensions/volcengine/index.js +46 -46
- package/dist/extensions/xai/index.js +46 -46
- package/dist/extensions/xiaomi/index.js +47 -47
- package/dist/extensions/zai/index.js +47 -47
- package/dist/extensions/zalo/index.js +49 -49
- package/dist/extensions/zalo/setup-entry.js +48 -48
- package/dist/{feishu-C637DYYe.js → feishu-D2fuiOiy.js} +4 -4
- package/dist/{gateway-cli-BAueAYsk.js → gateway-cli-nOgyXtih.js} +72 -106
- package/dist/{gateway-install-token-DlcVm1rP.js → gateway-install-token-nvsTK8KN.js} +4 -4
- package/dist/{gateway-rpc-siKa8KpM.js → gateway-rpc-DrH142-v.js} +1 -1
- package/dist/{gateway-runtime-roiTaOKO.js → gateway-runtime-CQXKGzrv.js} +2 -2
- package/dist/{github-copilot-auth-DJljh3gq.js → github-copilot-auth-C4z2AAd8.js} +3 -3
- package/dist/{health-DU_pBiid.js → health-DEgLPyA9.js} +7 -7
- package/dist/{health-B1OK1kJg.js → health-H5nbiXvA.js} +48 -48
- package/dist/{heartbeat-summary-CMwt9qam.js → heartbeat-summary-CNCptWmA.js} +1 -1
- package/dist/{hooks-cli-D42hQEUb.js → hooks-cli-jBhsJaOg.js} +46 -46
- package/dist/{identity-file-8MUyIAOy.js → identity-file-CYQnH12I.js} +1 -1
- package/dist/{imessage-zqZjecTU.js → imessage-DYqgZpLc.js} +6 -6
- package/dist/{imessage-CZb_pS8U.js → imessage-Dau6WdE3.js} +46 -46
- package/dist/{inbound-reply-dispatch-B73AkQh4.js → inbound-reply-dispatch-BFE3xy1S.js} +2 -2
- package/dist/index.js +2 -2
- package/dist/{internal-Bg_k56Pk.js → internal-DLE9baj7.js} +0 -24
- package/dist/{io-DE9vm7Eo.js → io-Du0b8gMO.js} +2 -2
- package/dist/{io-B7rO2wud.js → io-dJgqp8U8.js} +4 -4
- package/dist/{irc-BWzsfr2V.js → irc-BRaOVUse.js} +2 -2
- package/dist/{kb-cli-BOPGkNfJ.js → kb-cli-Cdif_vwn.js} +12 -12
- package/dist/{library-i-2ymInt.js → library-BwjFIWw3.js} +46 -46
- package/dist/{lifecycle-core-DwIo1PfK.js → lifecycle-core-DNO4MItg.js} +1 -1
- package/dist/line/send.js +6 -6
- package/dist/{line-DbTKdVgY.js → line-BCXUGrVz.js} +2 -2
- package/dist/{llm-slug-generator-Dm30OM2W.js → llm-slug-generator-B55FZ1aG.js} +3 -3
- package/dist/llm-slug-generator.js +47 -47
- package/dist/{logging-BM4mQ53W.js → logging-BvOzg0cM.js} +1 -1
- package/dist/{logging-0tvlVvFG.js → logging-nWyKsj9d.js} +5 -5
- package/dist/{login-qr-DQPSabxI.js → login-qr-C0QA3j4x.js} +46 -46
- package/dist/{logs-cli-ZnHk5eku.js → logs-cli-thlXBA9n.js} +7 -7
- package/dist/{manager.runtime-D3vjUOZF.js → manager.runtime-SoTq-tT4.js} +46 -46
- package/dist/{matrix-migration-snapshot-CRKiHq6Y.js → matrix-migration-snapshot-_6Rg-iLO.js} +2 -2
- package/dist/{mattermost-Bqn7Fd5U.js → mattermost-2nv5O_jQ.js} +2 -2
- package/dist/{mcp-cli-7aN2vJv-.js → mcp-cli-1vpy_yti.js} +5 -5
- package/dist/{mcp-config-NVrqojpu.js → mcp-config-Bmi2GUum.js} +1 -1
- package/dist/{media-understanding.runtime-DesF8Xhs.js → media-understanding.runtime-Wh-_SFK_.js} +46 -46
- package/dist/{memory-cli-CWqIJQS5.js → memory-cli-COJRHkaJ.js} +46 -46
- package/dist/{memory-search-DyxoUpq2.js → memory-search-CGmdrdM1.js} +1 -1
- package/dist/{memory-search-CgoWYj0V.js → memory-search-Cy36nO15.js} +3 -3
- package/dist/{model-picker-DX9P5pDr.js → model-picker-CYWvoS3z.js} +48 -48
- package/dist/{model-picker-Ds7-VqDS.js → model-picker-_32ihKqK.js} +4 -4
- package/dist/{model-picker.runtime-DqDt4s3S.js → model-picker.runtime-DBT5uEFi.js} +49 -49
- package/dist/{model-selection-DXFVauys.js → model-selection-014eeYCV.js} +1 -1
- package/dist/{model-suppression.runtime-8mU0VJs6.js → model-suppression.runtime-GTI9Rm85.js} +46 -46
- package/dist/{models-GXQSWyBX.js → models-Be9EWpVm.js} +54 -54
- package/dist/{models-CVG-VMBa.js → models-CX35daXC.js} +14 -14
- package/dist/{models-cli-Cvy8rGqU.js → models-cli-BYjac3oq.js} +54 -54
- package/dist/{models-config-BdanqM9X.js → models-config-Agv-ThDH.js} +46 -46
- package/dist/{models-config.providers.discovery-BHZ3WglC.js → models-config.providers.discovery-BJwjDHsg.js} +1 -1
- package/dist/{mongodb-analytics-BszyEhsq.js → mongodb-analytics-HJKYeseb.js} +2 -2
- package/dist/{mongodb-analytics-CcSYo_ae.js → mongodb-analytics-mnKJih5x.js} +1 -1
- package/dist/{mongodb-auto-setup-QcwgZSN9.js → mongodb-auto-setup-CCElSwNy.js} +2 -2
- package/dist/{mongodb-kb-C-VmGOq7.js → mongodb-kb-1tSOXXb9.js} +3 -3
- package/dist/{mongodb-kb-BotgVda9.js → mongodb-kb-CdSvNe3w.js} +2 -2
- package/dist/{mongodb-kb-search-CoIAFX8n.js → mongodb-kb-search-Dq6E746K.js} +1 -1
- package/dist/{mongodb-kb-search-BBYY_d_r.js → mongodb-kb-search-DvsXIUy6.js} +3 -3
- package/dist/{mongodb-manager-BVfTfpHf.js → mongodb-manager-DEZIQXuo.js} +10 -10
- package/dist/{mongodb-manager-BJ0PAYF_.js → mongodb-manager-NkerSpvH.js} +1183 -331
- package/dist/{mongodb-procedures-DNPmmW5r.js → mongodb-procedures-DI-_Dakz.js} +7 -3
- package/dist/{mongodb-procedures-D3M2Ph8E.js → mongodb-procedures-tjhGdBV7.js} +3 -3
- package/dist/{mongodb-schema-JpDXcAUV.js → mongodb-schema-DN3aspLa.js} +1 -1
- package/dist/{mongodb-schema-BI4Ze_ZV.js → mongodb-schema-Dt6jxcPL.js} +298 -4
- package/dist/{mongodb-search-VFKd72IZ.js → mongodb-search-DMsUyfpa.js} +2 -2
- package/dist/{mongodb-structured-memory-DnwUJ6SA.js → mongodb-structured-memory-D-3SEfTu.js} +58 -2
- package/dist/{mongodb-structured-memory-BySGexcm.js → mongodb-structured-memory-lpyyW0kn.js} +3 -3
- package/dist/{monitor-DGE0bx3s.js → monitor-BZFy1RTb.js} +47 -47
- package/dist/{monitor-Dfc0KXMD.js → monitor-DPYGxeY_.js} +5 -5
- package/dist/{monitor-CZZlkQUU.js → monitor-Duykki-j.js} +51 -51
- package/dist/{monitor-B61bVnMW.js → monitor-gq31SALd.js} +8 -8
- package/dist/{nextcloud-talk-CnwOv1rG.js → nextcloud-talk-C_-LfGeq.js} +2 -2
- package/dist/{node-cli-Avub0RKe.js → node-cli-NpJzvfQW.js} +12 -12
- package/dist/{nodes-cli-qSE-cmgX.js → nodes-cli-O5HciXeP.js} +10 -10
- package/dist/{nodes-screen-DQw8F5rA.js → nodes-screen-BIwiB35h.js} +1 -1
- package/dist/{oauth.runtime-825pMCgB.js → oauth.runtime-BxjW8DFO.js} +46 -46
- package/dist/{oauth.runtime-BCwH9-Yl.js → oauth.runtime-DKU2STuA.js} +46 -46
- package/dist/{oauth.runtime-BSddaUzc.js → oauth.runtime-mFizWM72.js} +46 -46
- package/dist/{onboard-CUbnVxXL.js → onboard-B6H0qDtg.js} +1 -1
- package/dist/{onboard-BF8cNljJ.js → onboard-C1AmXQ6f.js} +8 -8
- package/dist/{onboard-Cw65XmEU.js → onboard-DPdj0IBu.js} +2 -2
- package/dist/{onboard-channels-BYNDTtRI.js → onboard-channels-Cmj_5qXQ.js} +24 -24
- package/dist/{onboard-channels-CIR1ZSii.js → onboard-channels-Wf3nY9Bf.js} +97 -97
- package/dist/{onboard-custom-FImARgQC.js → onboard-custom-DILgXkiq.js} +50 -50
- package/dist/{onboard-custom-C4qOVxtG.js → onboard-custom-DlDCjvIw.js} +4 -4
- package/dist/{onboard-helpers-DW9Mskds.js → onboard-helpers-CqpD9TVU.js} +48 -48
- package/dist/{onboard-helpers-D3xV_T96.js → onboard-helpers-D-PLdtHT.js} +3 -3
- package/dist/{onboard-hooks-B0gJVtBY.js → onboard-hooks-MQ8QOguv.js} +2 -2
- package/dist/{onboard-remote-BMLo6WKH.js → onboard-remote-BZKWgKVw.js} +50 -50
- package/dist/{onboard-remote-XUah3N3G.js → onboard-remote-Bnad5LMv.js} +2 -2
- package/dist/{onboard-search-DHCzqxgq.js → onboard-search-Dyv1IuQ4.js} +46 -46
- package/dist/{onboard-skills-LXCIpyir.js → onboard-skills-DdCu1_hE.js} +1 -1
- package/dist/{onboard-skills-CH6q90Pf.js → onboard-skills-W_252asS.js} +49 -49
- package/dist/{onboarding-memory-CTB-Vkbl.js → onboarding-memory-BRHSmwx3.js} +6 -6
- package/dist/{outbound-media-CqfP0r4a.js → outbound-media-CHc08Sj8.js} +1 -1
- package/dist/{pairing-cli-BdCkQG2S.js → pairing-cli-oNWkjwCt.js} +5 -5
- package/dist/{persistent-dedupe-DNnh7hrR.js → persistent-dedupe-CS_uyVoq.js} +1 -1
- package/dist/{pi-model-discovery-runtime-DyT9C3Ap.js → pi-model-discovery-runtime-BJVREOXf.js} +46 -46
- package/dist/{pi-tools.before-tool-call.runtime-CA2js1Ig.js → pi-tools.before-tool-call.runtime-w-Q4HA_S.js} +6 -6
- package/dist/{plugin-install-DgvJfz7X.js → plugin-install-BysMw7Sl.js} +47 -47
- package/dist/{plugin-install-BKuy_--2.js → plugin-install-EyES0vGP.js} +2 -2
- package/dist/{plugin-registry-D-6OBqUU.js → plugin-registry-BenF9SYR.js} +47 -47
- package/dist/{plugin-registry-Dsx_6z3N.js → plugin-registry-CRV_Bc8K.js} +3 -3
- package/dist/plugin-sdk/account-resolution.js +46 -46
- package/dist/plugin-sdk/acp-runtime.js +46 -46
- package/dist/plugin-sdk/agent-runtime.js +46 -46
- package/dist/plugin-sdk/channel-inbound.js +46 -46
- package/dist/plugin-sdk/channel-reply-pipeline.js +3 -3
- package/dist/plugin-sdk/channel-runtime.js +46 -46
- package/dist/plugin-sdk/channel-setup.js +1 -1
- package/dist/plugin-sdk/command-auth.js +46 -46
- package/dist/plugin-sdk/compat.js +5 -5
- package/dist/plugin-sdk/config-runtime.js +46 -46
- package/dist/plugin-sdk/conversation-runtime.js +46 -46
- package/dist/plugin-sdk/core.js +5 -5
- package/dist/plugin-sdk/directory-runtime.js +1 -1
- package/dist/plugin-sdk/discord.js +46 -46
- package/dist/plugin-sdk/gateway-runtime.js +8 -8
- package/dist/plugin-sdk/image-generation.js +46 -46
- package/dist/plugin-sdk/index.js +46 -46
- package/dist/plugin-sdk/infra-runtime.js +46 -46
- package/dist/plugin-sdk/llm-task.js +46 -46
- package/dist/plugin-sdk/matrix-runtime-heavy.js +50 -50
- package/dist/plugin-sdk/media-runtime.js +46 -46
- package/dist/plugin-sdk/media-understanding-runtime.js +46 -46
- package/dist/plugin-sdk/media-understanding.js +46 -46
- package/dist/plugin-sdk/ollama-setup.js +8 -8
- package/dist/plugin-sdk/plugin-runtime.js +46 -46
- package/dist/plugin-sdk/provider-auth-api-key.js +46 -46
- package/dist/plugin-sdk/provider-auth-login.js +1 -1
- package/dist/plugin-sdk/provider-auth.js +46 -46
- package/dist/plugin-sdk/provider-models.js +5 -5
- package/dist/plugin-sdk/provider-onboard.js +5 -5
- package/dist/plugin-sdk/provider-setup.js +49 -49
- package/dist/plugin-sdk/provider-stream.js +46 -46
- package/dist/plugin-sdk/provider-usage.js +4 -4
- package/dist/plugin-sdk/reply-history.js +3 -3
- package/dist/plugin-sdk/reply-runtime.js +46 -46
- package/dist/plugin-sdk/routing.js +3 -3
- package/dist/plugin-sdk/sandbox.js +46 -46
- package/dist/plugin-sdk/self-hosted-provider-setup.js +48 -48
- package/dist/plugin-sdk/setup-runtime.js +1 -1
- package/dist/plugin-sdk/setup.js +1 -1
- package/dist/plugin-sdk/speech-runtime.js +46 -46
- package/dist/plugin-sdk/speech.js +46 -46
- package/dist/plugin-sdk/src/agents/workspace.d.ts +1 -3
- package/dist/plugin-sdk/src/config/types.memory.d.ts +44 -0
- package/dist/plugin-sdk/src/memory/backend-config.d.ts +24 -0
- package/dist/plugin-sdk/src/memory/index.d.ts +12 -4
- package/dist/plugin-sdk/src/memory/mongodb-entity-extractor.d.ts +33 -0
- package/dist/plugin-sdk/src/memory/mongodb-episodes.d.ts +16 -0
- package/dist/plugin-sdk/src/memory/mongodb-events.d.ts +9 -0
- package/dist/plugin-sdk/src/memory/mongodb-graph.d.ts +30 -3
- package/dist/plugin-sdk/src/memory/mongodb-manager.d.ts +18 -0
- package/dist/plugin-sdk/src/memory/mongodb-mutations.d.ts +38 -0
- package/dist/plugin-sdk/src/memory/mongodb-procedures.d.ts +32 -0
- package/dist/plugin-sdk/src/memory/mongodb-profile.d.ts +71 -0
- package/dist/plugin-sdk/src/memory/mongodb-query-cache.d.ts +68 -0
- package/dist/plugin-sdk/src/memory/mongodb-query-rewriter.d.ts +39 -0
- package/dist/plugin-sdk/src/memory/mongodb-reranker.d.ts +32 -0
- package/dist/plugin-sdk/src/memory/mongodb-schema.d.ts +3 -0
- package/dist/plugin-sdk/src/memory/mongodb-telemetry.d.ts +69 -0
- package/dist/plugin-sdk/text-runtime.js +6 -6
- package/dist/plugin-sdk/web-media.js +3 -3
- package/dist/plugin-sdk/zalo.js +47 -47
- package/dist/plugin-sdk/zalouser.js +47 -47
- package/dist/plugins/build-smoke-entry.js +46 -46
- package/dist/plugins/runtime/index.js +46 -46
- package/dist/{plugins-cli-C6wGAkD9.js → plugins-cli-BUiP4x7l.js} +46 -46
- package/dist/{policy-CcgojW9R.js → policy-DnUfJkOZ.js} +1 -1
- package/dist/{preflight-audio.runtime-Cyz9Zu89.js → preflight-audio.runtime-D3_iaSgF.js} +46 -46
- package/dist/{probe-auth-BmluVNJZ.js → probe-auth-BbNdYwb0.js} +1 -1
- package/dist/{probe-auth-DrgTJ7ki.js → probe-auth-CB9y2dLl.js} +7 -7
- package/dist/{program-BjkVOzbF.js → program-uHYlUP3c.js} +4 -4
- package/dist/{prompt-select-styled-6vDD4Gjv.js → prompt-select-styled-DoTAWghe.js} +25 -51
- package/dist/{provider-api-key-auth.runtime-AT16DTa8.js → provider-api-key-auth.runtime-B3H0dODg.js} +46 -46
- package/dist/{provider-auth-choice-UhIkLc6q.js → provider-auth-choice-HRfxXEHk.js} +6 -6
- package/dist/{provider-auth-choice-helpers-CXWmWOdR.js → provider-auth-choice-helpers-2jZnBKMm.js} +1 -1
- package/dist/{provider-auth-choice-preference-TgulgKlz.js → provider-auth-choice-preference-CqKryjBB.js} +6 -6
- package/dist/{provider-auth-choice.runtime-FTNgi8Yh.js → provider-auth-choice.runtime-BaFSZgQG.js} +48 -48
- package/dist/{provider-auth-choice.runtime-CP91b3vK.js → provider-auth-choice.runtime-DPHuj1_l.js} +2 -2
- package/dist/{provider-auth-choices-BfWvatIg.js → provider-auth-choices-CqFh00uK.js} +1 -1
- package/dist/{provider-auth-guidance-D4-q7IHl.js → provider-auth-guidance-DmdBoDfS.js} +2 -2
- package/dist/{provider-auth-input-DnQ-RiX5.js → provider-auth-input-FZYEJh19.js} +46 -46
- package/dist/{provider-auth-login-D7eLUZwy.js → provider-auth-login-B-XedaK5.js} +1 -1
- package/dist/{provider-auth-login.runtime-BG_qqxZk.js → provider-auth-login.runtime-f9dxfJUB.js} +49 -49
- package/dist/{provider-model-allowlist-CC0lIQ6w.js → provider-model-allowlist-C16pn0B8.js} +1 -1
- package/dist/{provider-models-DbK6xrje.js → provider-models-PaymKOme.js} +1 -1
- package/dist/{provider-ollama-setup-B4RWr9oj.js → provider-ollama-setup-k5ozCUi2.js} +3 -3
- package/dist/{provider-onboarding-config-W5sF0oD8.js → provider-onboarding-config-qCltsaVl.js} +1 -1
- package/dist/{provider-runtime.runtime-Cva8S4wx.js → provider-runtime.runtime-CzVe0WBb.js} +46 -46
- package/dist/{provider-self-hosted-setup-jAzqLaqv.js → provider-self-hosted-setup-zxYnIftX.js} +3 -3
- package/dist/{provider-usage-CEgSCMW4.js → provider-usage-C9KdAhuS.js} +46 -46
- package/dist/{provider-usage-CCIC3SdY.js → provider-usage-DexJNI_0.js} +1 -1
- package/dist/{provider-wizard-DQd5eYhX.js → provider-wizard-D4RbMR2D.js} +2 -2
- package/dist/{push-apns-DQN5pcl6.js → push-apns-BAc0-Jy5.js} +1 -1
- package/dist/{pw-ai-BiXz8un2.js → pw-ai-C8v0s5wH.js} +6 -6
- package/dist/{qr-cli-B8bBpCd2.js → qr-cli-BpqLcmYC.js} +47 -47
- package/dist/{qr-cli-DOuhqzho.js → qr-cli-D0zqiQMl.js} +4 -4
- package/dist/{reactions-BkyHqIw4.js → reactions-CjJbniYK.js} +1 -1
- package/dist/{read-only-account-inspect-Cfaj7PFb.js → read-only-account-inspect-CEJ1r7AW.js} +3 -3
- package/dist/{read-only-account-inspect.discord.runtime-kreMwVgq.js → read-only-account-inspect.discord.runtime-C1n8r_Kj.js} +46 -46
- package/dist/{read-only-account-inspect.slack.runtime-DgV5VZ-n.js → read-only-account-inspect.slack.runtime-DAOzA9ke.js} +46 -46
- package/dist/{read-only-account-inspect.telegram.runtime-BQaHHCIS.js → read-only-account-inspect.telegram.runtime-CfNlnogC.js} +46 -46
- package/dist/{redact-snapshot-PisBVQFW.js → redact-snapshot-qQFn3bz8.js} +3 -3
- package/dist/{register.agent-CXTssAWM.js → register.agent-DC5QbIE7.js} +114 -114
- package/dist/{register.backup-MRTb86c6.js → register.backup-BRxspFkM.js} +6 -6
- package/dist/{register.configure-BfE3p-3h.js → register.configure-B7zhRBla.js} +120 -120
- package/dist/{register.maintenance-CjOZ-w_0.js → register.maintenance-CCmppLW1.js} +65 -65
- package/dist/{register.message-s1z2QSP2.js → register.message-DSBPJS4x.js} +47 -47
- package/dist/{register.onboard-GSGJTcJk.js → register.onboard-C4D9pjf7.js} +54 -54
- package/dist/{register.setup-BD774nEM.js → register.setup-C4pDa0HW.js} +52 -52
- package/dist/{register.status-health-sessions-D-Xp8ae7.js → register.status-health-sessions-ClxLTjC5.js} +55 -55
- package/dist/{register.subclis-BlqPR8UO.js → register.subclis-BauDruMA.js} +30 -30
- package/dist/{register.subclis-CeG9qCbt.js → register.subclis-WyYRaoa-.js} +1 -1
- package/dist/{replies-DQwDaTBP.js → replies-CZGcXYVE.js} +1 -1
- package/dist/{reply-history-DVLrt4Es.js → reply-history-1yT9Tzib.js} +1 -1
- package/dist/{routes-CBWjQBhD.js → routes-D8CYDLDF.js} +5 -5
- package/dist/{rpc-O719GSVf.js → rpc-D8I_Qzen.js} +1 -1
- package/dist/{run-main-C4Box4Zo.js → run-main-BwEbDjI-.js} +19 -19
- package/dist/{runtime-COpSaRtb.js → runtime-CmSMHqwN.js} +1 -1
- package/dist/{runtime-PbP8BVEV.js → runtime-DQaeo-1L.js} +2 -2
- package/dist/{runtime-discord-ops.runtime-CmStqYK4.js → runtime-discord-ops.runtime-8w-055sR.js} +46 -46
- package/dist/{runtime-slack-ops.runtime-Cm1935hR.js → runtime-slack-ops.runtime-XJJrByCY.js} +48 -48
- package/dist/{runtime-telegram-ops.runtime-CKozoVxf.js → runtime-telegram-ops.runtime-wOdrd2eH.js} +46 -46
- package/dist/{sandbox-cli-BIyJ-1r-.js → sandbox-cli-CvFmY6Kq.js} +46 -46
- package/dist/{search-manager-BVE1EPHv.js → search-manager-ZNiamJHa.js} +6 -6
- package/dist/{search-manager-DMTYqpmg.js → search-manager-zaZ4tAYz.js} +5 -5
- package/dist/{secrets-cli-CMMtWzst.js → secrets-cli-D5a_lvAP.js} +47 -47
- package/dist/{security-cli-Bw4cVkTN.js → security-cli-DJovxmST.js} +47 -47
- package/dist/{send-CfI8y11o.js → send-C3KhjjcU.js} +1 -1
- package/dist/{send-C8HDmafP.js → send-CIkS5fLj.js} +2 -2
- package/dist/{server-0n2tu0ff.js → server-B1z10Ohi.js} +6 -6
- package/dist/{server-node-events-J5-mGOea.js → server-node-events-D3_b2nU-.js} +47 -47
- package/dist/{server-startup-matrix-migration-CMBUtdN2.js → server-startup-matrix-migration-DDRaKUPQ.js} +3 -3
- package/dist/{session-cost-usage-CrPCO4HN.js → session-cost-usage-BwIud0lY.js} +46 -46
- package/dist/{sessions-n_Z6bcbr.js → sessions-B5Pffwj6.js} +3 -3
- package/dist/{sessions-BK_M3Nu1.js → sessions-ClamZkvP.js} +47 -47
- package/dist/{setup-CjQJLNqB.js → setup-B8gsbmH4.js} +18 -18
- package/dist/{setup-core-BVBCTInv.js → setup-core-B6csKf5s.js} +2 -2
- package/dist/{setup-core-z8Q1sgUU.js → setup-core-DkgiVKzw.js} +2 -2
- package/dist/{setup-entry-CvuaW-4I.js → setup-entry-C8XH3da9.js} +2 -2
- package/dist/{setup-entry-Jf6V23s6.js → setup-entry-CMSlnfft.js} +3 -3
- package/dist/{setup-entry-Bo3chgoG.js → setup-entry-CZVAwPKZ.js} +2 -2
- package/dist/{setup-entry-Co-YP41_.js → setup-entry-Duh-ewBV.js} +3 -3
- package/dist/{setup-entry-BnSZlMP1.js → setup-entry-ksUWY45r.js} +2 -2
- package/dist/{setup-entry-BNSYJMzp.js → setup-entry-vQgAuveW.js} +2 -2
- package/dist/{setup-group-access-BYV3O8yu.js → setup-group-access-CTlnq-M9.js} +1 -1
- package/dist/{setup-surface-B6XBqyMJ.js → setup-surface-B7uYEI9F.js} +2 -2
- package/dist/{setup-surface-fixjWejm.js → setup-surface-CMgQr2R9.js} +5 -5
- package/dist/{setup-surface-CzzV3QV6.js → setup-surface-Yd-YLGfa.js} +46 -46
- package/dist/{setup-wizard-proxy-DFDQV7FN.js → setup-wizard-proxy-CHGAY6ob.js} +1 -1
- package/dist/{setup.finalize-ChczeW6V.js → setup.finalize-C2bq4D8j.js} +58 -58
- package/dist/{setup.gateway-config-Bp50kjo3.js → setup.gateway-config-BGgVOvQf.js} +48 -48
- package/dist/{shared-CyR3Ki--.js → shared-BEMZg0vb.js} +5 -5
- package/dist/{shared-DXzPv5D7.js → shared-BYRyVoVx.js} +5 -5
- package/dist/{shared-DCOVJ3QB.js → shared-Bj3fwdyM.js} +4 -4
- package/dist/{shared-B8_JHpU2.js → shared-CSydqOgE.js} +4 -4
- package/dist/{shared-C3fKAUbw.js → shared-DLAg-pKT.js} +3 -3
- package/dist/{signal-D16eMrBf.js → signal-Dh6z2uaT.js} +5 -5
- package/dist/{signal-oGrspg1k.js → signal-FEtxekyc.js} +46 -46
- package/dist/{skills-cli-CY6lUTRv.js → skills-cli-9NuRJd3Z.js} +5 -5
- package/dist/{slack-ueYeeNF7.js → slack-Ci1VArkq.js} +48 -48
- package/dist/{slack-B1GgT1_u.js → slack-CjslLjTc.js} +5 -5
- package/dist/{slash-commands.runtime-1q-llUpe.js → slash-commands.runtime-COXzcGjL.js} +46 -46
- package/dist/{slash-dispatch.runtime-BqJ1FZZ6.js → slash-dispatch.runtime-D5j8d7dg.js} +47 -47
- package/dist/{slash-skill-commands.runtime-D-BEZgQ1.js → slash-skill-commands.runtime-6U65Nany.js} +46 -46
- package/dist/{status-CnKcjD2h.js → status-BWUft8B5.js} +16 -16
- package/dist/{status-C1BR9Hft.js → status-BjV1ysoW.js} +50 -50
- package/dist/{status-D_1nxvoi.js → status-CM77XYRR.js} +4 -4
- package/dist/{status-Dp3OriYl.js → status-D7XHAzLz.js} +46 -46
- package/dist/{status-DoSH4nEL.js → status-DwO4xEHI.js} +54 -54
- package/dist/{status-json-DwNPzoCk.js → status-json-BYDBfkr3.js} +19 -19
- package/dist/{status-B45v-A8b.js → status-yoA_KX2O.js} +1 -1
- package/dist/{status.link-channel-Cz8GoHZ2.js → status.link-channel-DkISMfW8.js} +2 -2
- package/dist/{status.scan.deps.runtime-BQGei2B_.js → status.scan.deps.runtime-B6__B0kL.js} +14 -14
- package/dist/{status.scan.runtime-D4HkKTZu.js → status.scan.runtime-BAkcX3vO.js} +2 -2
- package/dist/{status.summary-Dxo5qDuD.js → status.summary-DNaMhaXy.js} +8 -8
- package/dist/{subagent-orphan-recovery-BPa7yoId.js → subagent-orphan-recovery-DtK8inah.js} +46 -46
- package/dist/{subagent-registry-runtime-B6homy_H.js → subagent-registry-runtime-02s7QJo3.js} +46 -46
- package/dist/{synology-chat-DY8xNv_g.js → synology-chat-QURTpvMf.js} +2 -2
- package/dist/{system-cli-CkWRbLu4.js → system-cli-BXd7evEt.js} +7 -7
- package/dist/{system-run-command-jY6Is_ri.js → system-run-command-CQCx0f24.js} +1 -1
- package/dist/telegram/audit.js +1 -1
- package/dist/telegram/token.js +46 -46
- package/dist/{telegram-uQdpyLeS.js → telegram-Btwvg0PX.js} +46 -46
- package/dist/{telegram-Bnigf1Qe.js → telegram-Dh5gM1mc.js} +7 -7
- package/dist/{tool-policy-match-BLASiL8y.js → tool-policy-match-B6J0bSfQ.js} +1 -1
- package/dist/{tui-Dj52JiFV.js → tui-CKGcNyM8.js} +6 -6
- package/dist/{tui-cli-B4SN4wzX.js → tui-cli-D3CLnnB9.js} +47 -47
- package/dist/{update-cli-mBB0aHxZ.js → update-cli-DQ4j_nIh.js} +69 -69
- package/dist/{update-offset-store-Bp1RjZK2.js → update-offset-store-RxVdgbyo.js} +46 -46
- package/dist/{upsert-with-lock-CFIy4b7I.js → upsert-with-lock-BqkAnFym.js} +1 -1
- package/dist/{web-media-BJ-azd7j.js → web-media-BM1Mg6AN.js} +1 -1
- package/dist/{webhook-shared-DYKTXPVw.js → webhook-shared-UDKLpQnU.js} +1 -1
- package/dist/{webhooks-cli-CEBJbLqS.js → webhooks-cli-Ca3PlK8h.js} +5 -5
- package/dist/{whatsapp-63jqHVrE.js → whatsapp-CHEvDa2g.js} +46 -46
- package/dist/{with-timeout-CvaBvNie.js → with-timeout-CvBH67nj.js} +2 -2
- package/dist/{workspace-DuH1agxz.js → workspace-uCYzunu4.js} +5 -33
- package/dist/{zalo-CTrI2C4i.js → zalo-Dr4ysJLW.js} +1 -1
- package/dist/{zalo-Sw_XHo3-.js → zalo-keqX1Wnx.js} +2 -2
- package/docs/concepts/agent-workspace.md +0 -5
- package/docs/concepts/memory.md +6 -12
- package/docs/plans/2026-03-22-semantic-cache-telemetry-docs-plan.md +1431 -0
- package/docs/plans/2026-03-22-supermemory-steals-plan.md +1679 -0
- package/docs/plans/2026-03-23-almost-perfect-sprint-plan.md +1080 -0
- package/docs/plans/2026-03-23-master-steal-list.md +224 -0
- package/docs/plans/2026-03-23-memory-md-deprecation-plan.md +632 -0
- package/docs/plans/2026-03-23-production-readiness-e2e-plan.md +659 -0
- package/docs/plans/2026-03-23-supermemory-audit-fixes-plan.md +1291 -0
- package/docs/reference/clawmongo-vs-default-memory.md +2 -2
- package/docs/reference/heart-brain-boundary.md +8 -10
- package/docs/reference/memory-config.md +3 -4
- package/docs/reference/mongodb-capabilities.md +246 -9
- package/docs/reference/templates/AGENTS.md +5 -10
- package/docs/research/2026-03-22-atlas-local-preview-web.md +41 -31
- package/docs/research/2026-03-23-agent-management-ui-github.md +482 -0
- package/docs/research/2026-03-23-almost-perfect-mongodb-docs.md +255 -0
- package/docs/research/2026-03-23-company-os-agent-ui-web.md +511 -0
- package/docs/research/2026-03-23-supermemory-audit-fixes-mongodb-research.md +995 -0
- package/docs/start/clawmongo-getting-started.md +1 -1
- package/package.json +1 -1
- /package/dist/{memory-BAVM2Jxh.js → memory-CcbELE82.js} +0 -0
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
# GitHub Research: AI Agent Management UI Foundations
|
|
2
|
+
|
|
3
|
+
## Execution
|
|
4
|
+
|
|
5
|
+
- Preferred backend: octocode+web
|
|
6
|
+
- Allowed fallbacks: web-only
|
|
7
|
+
- Research round: 1
|
|
8
|
+
|
|
9
|
+
## Sources Used
|
|
10
|
+
|
|
11
|
+
- WebFetch: GitHub repository pages, raw source files, official docs
|
|
12
|
+
- Octocode MCP: unavailable (not connected in this session)
|
|
13
|
+
- Fallback: web-only research path used
|
|
14
|
+
|
|
15
|
+
## Research Quality
|
|
16
|
+
|
|
17
|
+
- Status: COMPLETE
|
|
18
|
+
- Quality level: medium
|
|
19
|
+
- Backend mode: web-only
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 1. Open WebUI (open-webui/open-webui)
|
|
24
|
+
|
|
25
|
+
### Metrics
|
|
26
|
+
|
|
27
|
+
- Stars: 128k | Forks: 18.1k | Commits: 15,761
|
|
28
|
+
- License: MIT
|
|
29
|
+
- Actively maintained
|
|
30
|
+
|
|
31
|
+
### Tech Stack
|
|
32
|
+
|
|
33
|
+
- **Frontend**: SvelteKit + TypeScript + Tailwind CSS + Vite
|
|
34
|
+
- **Backend**: Python + FastAPI + Socket.IO (WebSocket)
|
|
35
|
+
- **Database**: SQLite (default) or PostgreSQL
|
|
36
|
+
- **Real-time**: Socket.IO with Redis adapter for multi-node
|
|
37
|
+
- **Auth**: JWT, LDAP, SCIM 2.0, SSO, OAuth
|
|
38
|
+
|
|
39
|
+
### Architecture
|
|
40
|
+
|
|
41
|
+
SvelteKit file-based routing (`src/routes/(app)/`). Global state via Svelte writable stores (50+ stores covering chat, models, tools, user, settings, UI state). Backend is a FastAPI monolith with ~20 routers (chats, users, models, knowledge, tools, functions, memories, channels, auths, analytics, pipelines, ollama, openai, audio, images, retrieval, terminals). WebSocket layer is Socket.IO mounted at `/ws` with room-based event delivery (`user:{id}`) for streaming chat deltas, agent status, and collaborative editing (Yjs).
|
|
42
|
+
|
|
43
|
+
**Pipeline system**: Separate plugin server (port 9099) that acts as a middleware layer between the UI and any OpenAI-compatible backend. Pipelines are Python modules auto-discovered from a `/pipelines` directory. Two types: `Pipe` (full request handler) and `Filter` (pre/post processing). This enables: custom RAG, rate limiting, monitoring (Langfuse, Opik), content filtering, and arbitrary agent logic — all without modifying core.
|
|
44
|
+
|
|
45
|
+
**Key stores**:
|
|
46
|
+
|
|
47
|
+
- `models: Writable<Model[]>` — all available models
|
|
48
|
+
- `tools, skills, functions` — agent capabilities
|
|
49
|
+
- `socket` — the live Socket.IO connection
|
|
50
|
+
- `activeUserIds, activeChatIds` — collaborative presence
|
|
51
|
+
- `settings: Writable<Settings>` — 50+ config options per user
|
|
52
|
+
|
|
53
|
+
### Multi-model/Agent Management
|
|
54
|
+
|
|
55
|
+
- Simultaneous conversations across multiple models (one message, N responses)
|
|
56
|
+
- Model builder for custom agents with system prompts + tools
|
|
57
|
+
- RBAC: users, groups, permissions down to individual model access
|
|
58
|
+
- Admin analytics: message volume, token consumption, user activity
|
|
59
|
+
|
|
60
|
+
### Admin Features
|
|
61
|
+
|
|
62
|
+
- User + group management with granular permissions
|
|
63
|
+
- Bulk model management with filtering
|
|
64
|
+
- SCIM 2.0 provisioning
|
|
65
|
+
- Webhook integration
|
|
66
|
+
- 9 vector DB backends
|
|
67
|
+
- Cloud storage (S3, GCS, Azure Blob)
|
|
68
|
+
- OpenTelemetry observability
|
|
69
|
+
|
|
70
|
+
### Pros for OpenClaw UI Foundation
|
|
71
|
+
|
|
72
|
+
- Largest community (128k stars) — battle-tested at scale
|
|
73
|
+
- SvelteKit is extremely fast and lightweight
|
|
74
|
+
- Pipeline plugin system is directly analogous to OpenClaw extensions
|
|
75
|
+
- WebSocket architecture (Socket.IO + Redis) maps cleanly to OpenClaw's channel/gateway model
|
|
76
|
+
- RBAC + admin panel already built
|
|
77
|
+
- OpenAI-compatible API pass-through — can proxy OpenClaw's API
|
|
78
|
+
|
|
79
|
+
### Cons
|
|
80
|
+
|
|
81
|
+
- Svelte: smaller ecosystem than React/Next.js, fewer component libraries
|
|
82
|
+
- Python backend (FastAPI) — OpenClaw is Node.js/TypeScript; bridging adds latency
|
|
83
|
+
- Very chat-centric — agent flow visualization is missing
|
|
84
|
+
- No visual workflow editor
|
|
85
|
+
- The codebase is large and tightly coupled to Ollama/OpenAI paradigm
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 2. Dify (langgenius/dify)
|
|
90
|
+
|
|
91
|
+
### Metrics
|
|
92
|
+
|
|
93
|
+
- Stars: 134k | Forks: 20.9k | Commits: 9,532
|
|
94
|
+
- License: Apache 2.0
|
|
95
|
+
- Actively maintained
|
|
96
|
+
|
|
97
|
+
### Tech Stack
|
|
98
|
+
|
|
99
|
+
- **Frontend**: Next.js 14 (App Router) + React + TypeScript + Tailwind CSS
|
|
100
|
+
- **State management**: Jotai (atoms) + TanStack Query (server state) + Nuqs (URL state)
|
|
101
|
+
- **Backend**: Python (Flask/Celery)
|
|
102
|
+
- **Database**: PostgreSQL + Redis + Weaviate/Qdrant (vector)
|
|
103
|
+
- **Auth**: JWT, SSO, enterprise LDAP
|
|
104
|
+
|
|
105
|
+
### Architecture
|
|
106
|
+
|
|
107
|
+
Next.js App Router with route groups `(commonLayout)` for shared layouts. Provider stack (bottom to top): Jotai, ThemeProvider, NuqsAdapter, TanStack Query, I18n, Toast, GlobalPublicStore. The visual workflow canvas is a React-based node graph editor. Backend is Python (Flask) with Celery for async task execution.
|
|
108
|
+
|
|
109
|
+
**Workflow engine**: Visual canvas with typed node categories:
|
|
110
|
+
|
|
111
|
+
- LLM nodes (prompt + model selection)
|
|
112
|
+
- Tool nodes (web search, code, HTTP, etc.)
|
|
113
|
+
- Logic nodes (if/else, iteration, variable assignment)
|
|
114
|
+
- Agent nodes (ReAct, Function Calling)
|
|
115
|
+
- RAG nodes (knowledge retrieval)
|
|
116
|
+
- Output nodes (answer, end)
|
|
117
|
+
|
|
118
|
+
Nodes emit SSE events upstream to the UI for real-time execution tracing. Each workflow execution is tracked with a run ID and full state log.
|
|
119
|
+
|
|
120
|
+
**App types**: Chatbot, Agent, Workflow (batch), Chatflow (conversational workflow). Each type has a dedicated canvas experience.
|
|
121
|
+
|
|
122
|
+
### Multi-Agent Orchestration
|
|
123
|
+
|
|
124
|
+
- Visual multi-agent canvas: each agent is a node that can call tools or other agents
|
|
125
|
+
- Parallel branch execution with merge nodes
|
|
126
|
+
- Iteration nodes for loops over arrays
|
|
127
|
+
- Built-in error handling and retry logic per node
|
|
128
|
+
|
|
129
|
+
### What Makes It "Company OS"
|
|
130
|
+
|
|
131
|
+
- Workspace concept: projects/apps/teams all in one platform
|
|
132
|
+
- Prompt management with versioning
|
|
133
|
+
- Knowledge base management (document ingestion pipeline)
|
|
134
|
+
- API-first: every workflow/agent exposes a REST + SSE API automatically
|
|
135
|
+
- Observability integrated (Langfuse, Opik, Arize Phoenix)
|
|
136
|
+
- 50+ built-in tools + custom tool registry
|
|
137
|
+
|
|
138
|
+
### Pros for OpenClaw UI Foundation
|
|
139
|
+
|
|
140
|
+
- Next.js 14 App Router — modern React, great ecosystem
|
|
141
|
+
- Visual workflow canvas is exactly what "company OS" agents need
|
|
142
|
+
- Jotai + TanStack Query is a clean, scalable state pattern
|
|
143
|
+
- App Router SSR is good for admin dashboards
|
|
144
|
+
- API-first design mirrors OpenClaw's architecture
|
|
145
|
+
|
|
146
|
+
### Cons
|
|
147
|
+
|
|
148
|
+
- Python backend — mismatch with OpenClaw's Node.js stack
|
|
149
|
+
- Very complex codebase (~134k lines across backend + frontend)
|
|
150
|
+
- The canvas is tightly coupled to Dify's node type system (hard to reuse standalone)
|
|
151
|
+
- Requires Celery + Redis + PostgreSQL + vector DB — heavy infra
|
|
152
|
+
- License is Apache 2.0 but enterprise features are closed-source (Dify Cloud)
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 3. LangGraph / LangSmith Studio
|
|
157
|
+
|
|
158
|
+
### Metrics
|
|
159
|
+
|
|
160
|
+
- LangGraph repo: 27.2k stars | 4.7k forks
|
|
161
|
+
- LangSmith Studio: proprietary (not open source)
|
|
162
|
+
- LangGraph: Python 99.3%, MIT license
|
|
163
|
+
|
|
164
|
+
### Architecture
|
|
165
|
+
|
|
166
|
+
LangGraph is a **backend-only** Python framework. The visual "Studio" is part of LangSmith, which is a paid SaaS product — the UI source is not open source.
|
|
167
|
+
|
|
168
|
+
**What LangGraph provides for UI builders**:
|
|
169
|
+
|
|
170
|
+
- Graph state serialization (JSON-serializable state dicts)
|
|
171
|
+
- Streaming execution events via `astream_events()`
|
|
172
|
+
- Checkpoints stored in databases (Postgres, SQLite, MongoDB) for state replay
|
|
173
|
+
- Thread management API for multi-session agent runs
|
|
174
|
+
- Built-in interrupt/resume for human-in-the-loop
|
|
175
|
+
|
|
176
|
+
**LangGraph Server** (OSS): FastAPI server that exposes a REST + SSE API over LangGraph graphs. Endpoints: `POST /runs`, `GET /runs/{id}/stream`, `POST /threads`, `GET /threads/{id}/state`. This is the backend protocol that any UI can target.
|
|
177
|
+
|
|
178
|
+
### What Makes LangGraph Studio Relevant
|
|
179
|
+
|
|
180
|
+
- The Studio shows a live animated graph: nodes light up as they execute, edges show data flow
|
|
181
|
+
- State inspector panel: shows the current state dict at each step
|
|
182
|
+
- Interrupt points: the UI can pause a running graph and inject human input
|
|
183
|
+
- Time-travel: rewind execution to any checkpoint and replay from there
|
|
184
|
+
|
|
185
|
+
### Pros
|
|
186
|
+
|
|
187
|
+
- The protocol (LangGraph Server API) is clean and well-documented
|
|
188
|
+
- OpenClaw could implement a compatible API surface and get Studio-like visualization
|
|
189
|
+
- Streaming events model maps well to OpenClaw's streaming architecture
|
|
190
|
+
|
|
191
|
+
### Cons
|
|
192
|
+
|
|
193
|
+
- Studio UI itself is NOT open source — you cannot fork it
|
|
194
|
+
- LangGraph is Python-only; OpenClaw is TypeScript
|
|
195
|
+
- The visualization is graph-inspection, not management (no user admin, no channel config)
|
|
196
|
+
- LangSmith platform is SaaS-only (usage limits, pricing)
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## 4. Flowise (FlowiseAI/Flowise)
|
|
201
|
+
|
|
202
|
+
### Metrics
|
|
203
|
+
|
|
204
|
+
- Stars: 51k | Forks: 24k | Commits: 3,435
|
|
205
|
+
- License: Apache 2.0
|
|
206
|
+
- Latest: v3.1.0 (March 2026)
|
|
207
|
+
|
|
208
|
+
### Tech Stack
|
|
209
|
+
|
|
210
|
+
- **Frontend**: React + TypeScript + Vite
|
|
211
|
+
- **Backend**: Node.js + Express.js
|
|
212
|
+
- **Monorepo**: pnpm + Turbo (5 packages: agentflow, api-documentation, components, server, ui)
|
|
213
|
+
- **Queue**: BullMQ + Redis (for async node execution)
|
|
214
|
+
- **API docs**: Auto-generated Swagger
|
|
215
|
+
|
|
216
|
+
### Architecture
|
|
217
|
+
|
|
218
|
+
Node.js monorepo. The server loads a `NodesPool` at startup — a registry of all available node types (LangChain tools, memory backends, LLM providers, etc.) compiled from the `components` package. When a user builds a flow in the UI and executes it, the server resolves the node graph, instantiates each node with its config, chains them, and streams results back via SSE.
|
|
219
|
+
|
|
220
|
+
The UI is a React canvas (ReactFlow-based) where users drag-and-drop node components to build chatflows or agentflows. Each node has a config panel. Flows are saved as JSON documents. API key management is built in (users can generate API keys to call their flows via REST).
|
|
221
|
+
|
|
222
|
+
**AgentFlow v2** (new in v3): Multi-agent support. Supervisor nodes can spawn sub-agents. Sequential and parallel execution patterns. Human-in-the-loop interrupts.
|
|
223
|
+
|
|
224
|
+
### Pros for OpenClaw UI Foundation
|
|
225
|
+
|
|
226
|
+
- **Node.js backend** — same runtime as OpenClaw, easy integration
|
|
227
|
+
- **React frontend** — largest ecosystem, most component libraries
|
|
228
|
+
- **ReactFlow canvas** — proven for agent flow visualization (can be extracted)
|
|
229
|
+
- Clean REST API: `/api/v1/` namespace, Swagger docs auto-generated
|
|
230
|
+
- BullMQ queue — maps well to OpenClaw's async agent task model
|
|
231
|
+
- Active community (51k stars) and recent v3 release
|
|
232
|
+
|
|
233
|
+
### Cons
|
|
234
|
+
|
|
235
|
+
- UI is tightly LangChain-coupled — node types are all LangChain primitives
|
|
236
|
+
- ReactFlow canvas is good for flow design but not for "management" (no real admin panel)
|
|
237
|
+
- No built-in multi-user auth / RBAC (only API keys)
|
|
238
|
+
- SSE for streaming (no WebSocket) — less real-time capability than Socket.IO
|
|
239
|
+
- Monorepo is complex; the components package is >300 LangChain nodes
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## 5. n8n (n8n-io/n8n)
|
|
244
|
+
|
|
245
|
+
### Metrics
|
|
246
|
+
|
|
247
|
+
- Stars: 181k | Forks: 56k | Commits: 18,517
|
|
248
|
+
- License: Sustainable Use License (not fully open source)
|
|
249
|
+
- Most starred in this comparison
|
|
250
|
+
|
|
251
|
+
### Tech Stack
|
|
252
|
+
|
|
253
|
+
- **Frontend**: Vue 3 + TypeScript (91% TypeScript, 7% Vue)
|
|
254
|
+
- **Backend**: Node.js + TypeScript
|
|
255
|
+
- **Monorepo**: pnpm workspaces (packages: cli, core, workflow, frontend, nodes-base, @n8n/\*)
|
|
256
|
+
- **Queue**: Bull (Redis)
|
|
257
|
+
- **Database**: SQLite (default), PostgreSQL, MySQL
|
|
258
|
+
|
|
259
|
+
### Architecture
|
|
260
|
+
|
|
261
|
+
n8n is a general automation platform that added AI/agent capabilities. The workflow execution engine (`packages/workflow/src/workflow.ts`) is a graph traversal engine: it identifies trigger nodes as entry points, then walks the directed graph node-by-node, resolving each node's output as input to the next. Supports parallel branches, error paths, and disabled nodes.
|
|
262
|
+
|
|
263
|
+
The frontend is Vue 3 + a canvas editor (custom canvas, not ReactFlow). Each workflow is a JSON document with nodes and connections. The UI editor is in `packages/frontend/`. The backend CLI (`packages/cli/`) starts the Express server, registers webhooks, and manages execution queue.
|
|
264
|
+
|
|
265
|
+
**AI agent types** (via LangChain integration):
|
|
266
|
+
|
|
267
|
+
- Conversational Agent
|
|
268
|
+
- OpenAI Functions Agent
|
|
269
|
+
- ReAct Agent
|
|
270
|
+
- Plan and Execute Agent
|
|
271
|
+
- SQL Agent
|
|
272
|
+
- Tools Agent
|
|
273
|
+
|
|
274
|
+
Memory and vector store integrations are first-class nodes.
|
|
275
|
+
|
|
276
|
+
### Pros
|
|
277
|
+
|
|
278
|
+
- Largest community (181k stars) — extremely mature
|
|
279
|
+
- TypeScript throughout (frontend and backend)
|
|
280
|
+
- Most complete workflow orchestration primitives
|
|
281
|
+
- 400+ integrations and 900+ templates
|
|
282
|
+
- Excellent queue/scheduling/retry handling
|
|
283
|
+
|
|
284
|
+
### Cons
|
|
285
|
+
|
|
286
|
+
- **License**: Sustainable Use License — not MIT/Apache, commercial use restrictions
|
|
287
|
+
- Vue 3 frontend — less common for new projects vs React/Next.js
|
|
288
|
+
- General automation tool first, AI agent management second
|
|
289
|
+
- No purpose-built "agent management panel" (users/roles/RBAC is enterprise-only)
|
|
290
|
+
- Heavy: requires Redis + DB + separate queue worker for production
|
|
291
|
+
- Agent capabilities bolted on via LangChain nodes, not native
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## 6. LibreChat (danny-avila/LibreChat)
|
|
296
|
+
|
|
297
|
+
### Metrics
|
|
298
|
+
|
|
299
|
+
- Stars: 34.8k | Forks: 7.1k | Contributors: 360+
|
|
300
|
+
- License: MIT
|
|
301
|
+
|
|
302
|
+
### Tech Stack
|
|
303
|
+
|
|
304
|
+
- **Frontend**: React + TypeScript
|
|
305
|
+
- **Backend**: Node.js + Express + TypeScript
|
|
306
|
+
- **Database**: MongoDB (primary!) + Redis
|
|
307
|
+
- **Monorepo**: Turbo + pnpm
|
|
308
|
+
- **Auth**: JWT, OAuth2, LDAP, email
|
|
309
|
+
|
|
310
|
+
### Architecture
|
|
311
|
+
|
|
312
|
+
LibreChat is the closest architectural match to OpenClaw: Node.js/TypeScript monorepo, MongoDB as primary database, React frontend, Express backend. It has a conversation forking model (branching chat history), resumable streams with Redis, and MCP (Model Context Protocol) server integration.
|
|
313
|
+
|
|
314
|
+
**Agent marketplace**: Users can create, share, and install community agents. Each agent has: system prompt, model selection, tools (web search, code interpreter, file analysis), and visibility (private/shared/public).
|
|
315
|
+
|
|
316
|
+
**MCP integration**: LibreChat supports connecting MCP servers directly, which is architecturally identical to OpenClaw's extension/plugin model.
|
|
317
|
+
|
|
318
|
+
### Pros for OpenClaw UI Foundation
|
|
319
|
+
|
|
320
|
+
- **MongoDB primary database** — direct match to ClawMongo architecture
|
|
321
|
+
- **Node.js + TypeScript** — same runtime as OpenClaw
|
|
322
|
+
- **React frontend** — large ecosystem
|
|
323
|
+
- MCP support — same protocol OpenClaw uses
|
|
324
|
+
- Conversation forking — useful for agent branching
|
|
325
|
+
- Multi-provider (Anthropic, OpenAI, Bedrock, etc.)
|
|
326
|
+
- MIT license — no restrictions
|
|
327
|
+
|
|
328
|
+
### Cons
|
|
329
|
+
|
|
330
|
+
- Chat-first, not agent-management-first (no visual workflow canvas)
|
|
331
|
+
- Agent "marketplace" is social/community feature, not enterprise orchestration
|
|
332
|
+
- No visual flow editor
|
|
333
|
+
- 34.8k stars — smaller community than Open WebUI/Dify/n8n
|
|
334
|
+
- The UI is consumer-chat aesthetic, not "company OS" dashboard
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## Architecture Comparison Matrix
|
|
339
|
+
|
|
340
|
+
| Dimension | Open WebUI | Dify | Flowise | n8n | LibreChat |
|
|
341
|
+
| --------------- | -------------- | --------------- | ------------ | --------------- | ----------- |
|
|
342
|
+
| Stars | 128k | 134k | 51k | 181k | 34.8k |
|
|
343
|
+
| Frontend | SvelteKit | Next.js/React | React | Vue 3 | React |
|
|
344
|
+
| Backend | Python/FastAPI | Python/Flask | Node.js | Node.js/TS | Node.js/TS |
|
|
345
|
+
| DB | SQLite/PG | PG+Redis+Vector | SQLite/PG | SQLite/PG | **MongoDB** |
|
|
346
|
+
| License | MIT | Apache 2.0 | Apache 2.0 | Sustainable Use | MIT |
|
|
347
|
+
| Real-time | Socket.IO | SSE | SSE | WebSocket | Socket.IO |
|
|
348
|
+
| Visual Canvas | No | Yes | Yes | Yes | No |
|
|
349
|
+
| RBAC/Admin | Strong | Strong | Weak | Enterprise-only | Medium |
|
|
350
|
+
| Multi-agent | Via pipelines | Native canvas | AgentFlow v2 | LangChain nodes | Via MCP |
|
|
351
|
+
| Node.js backend | No | No | Yes | Yes | Yes |
|
|
352
|
+
| MongoDB native | No | No | No | No | Yes |
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Real Implementations Found
|
|
357
|
+
|
|
358
|
+
1. **open-webui/open-webui** (`backend/open_webui/main.py`, `src/lib/stores/index.ts`, `backend/open_webui/socket/main.py`): Socket.IO WebSocket architecture with room-based delivery; SvelteKit stores pattern; 20-router FastAPI structure
|
|
359
|
+
2. **langgenius/dify** (`web/app/layout.tsx`, `web/app/(commonLayout)/apps/page.tsx`): Next.js App Router + Jotai + TanStack Query provider stack
|
|
360
|
+
3. **FlowiseAI/Flowise** (`packages/server/src/index.ts`): Express + NodesPool + BullMQ architecture
|
|
361
|
+
4. **n8n-io/n8n** (`packages/workflow/src/workflow.ts`): Graph traversal execution engine, trigger-first node resolution
|
|
362
|
+
5. **danny-avila/LibreChat**: MongoDB + Node.js + React + MCP — closest stack match to OpenClaw
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## Code Patterns
|
|
367
|
+
|
|
368
|
+
### Open WebUI Socket.IO event pattern (Python)
|
|
369
|
+
|
|
370
|
+
```python
|
|
371
|
+
# backend/open_webui/socket/main.py
|
|
372
|
+
sio.emit("events", {
|
|
373
|
+
"chat_id": chat_id,
|
|
374
|
+
"message_id": message_id,
|
|
375
|
+
"data": { "type": "chat:message:delta", "content": chunk }
|
|
376
|
+
}, to=f"user:{user_id}")
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### Flowise Express + SSE pattern (Node.js)
|
|
380
|
+
|
|
381
|
+
```typescript
|
|
382
|
+
// packages/server/src/index.ts
|
|
383
|
+
this.app.use("/api/v1", flowiseApiV1Router);
|
|
384
|
+
// SSE streaming for flow execution results
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
### n8n Workflow execution entry point (TypeScript)
|
|
388
|
+
|
|
389
|
+
```typescript
|
|
390
|
+
// packages/workflow/src/workflow.ts
|
|
391
|
+
getStartNode(): INode | undefined {
|
|
392
|
+
// 1. Find trigger nodes first
|
|
393
|
+
// 2. Fall back to poll nodes
|
|
394
|
+
// 3. Return first non-disabled node
|
|
395
|
+
}
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
### Dify provider stack (React/Next.js)
|
|
399
|
+
|
|
400
|
+
```tsx
|
|
401
|
+
// web/app/layout.tsx
|
|
402
|
+
<JotaiProvider>
|
|
403
|
+
<ThemeProvider>
|
|
404
|
+
<TanstackQueryInitializer>
|
|
405
|
+
<I18nServerProvider locale={locale}>{children}</I18nServerProvider>
|
|
406
|
+
</TanstackQueryInitializer>
|
|
407
|
+
</ThemeProvider>
|
|
408
|
+
</JotaiProvider>
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## Gotchas from Real Code
|
|
414
|
+
|
|
415
|
+
1. **Open WebUI Socket.IO**: Redis adapter required for multi-node deployments. Single-node uses in-memory store. Affects horizontal scaling design.
|
|
416
|
+
2. **Dify canvas**: The workflow canvas is tightly coupled to Dify's node type registry — extracting just the canvas for reuse is non-trivial (internal type system is deep).
|
|
417
|
+
3. **Flowise BullMQ**: Queue mode requires Redis; without it, node execution is synchronous in the main process. The `NodesPool` startup time grows with number of registered node types.
|
|
418
|
+
4. **n8n license**: The `n8n-io/n8n` license (Sustainable Use) prohibits using n8n to build a competing product or offer it as a hosted service. This blocks forking n8n as a base for OpenClaw UI.
|
|
419
|
+
5. **LibreChat MongoDB**: LibreChat uses Mongoose ORM. The schema is fixed to its conversation model — the existing collections won't map directly to ClawMongo's 22-collection schema without migration planning.
|
|
420
|
+
6. **Open WebUI pipelines**: Pipeline server runs on a separate port (9099). It acts as an OpenAI-compatible proxy. This is both a strength (easy to plug OpenClaw behind it) and a constraint (OpenClaw's streaming protocol must be OpenAI-compatible or a custom pipe is needed).
|
|
421
|
+
7. **Dify SSE vs WebSocket**: Dify uses SSE for workflow execution streaming, not WebSocket. This means no bidirectional communication during a run — human-in-the-loop interrupts are polled rather than pushed.
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## What Changed the Recommendation
|
|
426
|
+
|
|
427
|
+
**The highest-signal finding**: LibreChat uses MongoDB as its primary database and Node.js/TypeScript throughout (matching OpenClaw's exact runtime stack). Its MCP integration mirrors OpenClaw's plugin model. However, LibreChat is consumer-chat-first and lacks visual agent orchestration. The winning pattern is: **use Open WebUI's architecture (Socket.IO + Redis rooms + plugin middleware layer) as the real-time foundation, but implement the frontend in Next.js/React (not Svelte) to match the broader TypeScript ecosystem — and skip the Python backend entirely in favor of a Node.js adapter that wraps OpenClaw's existing gateway API.**
|
|
428
|
+
|
|
429
|
+
The cleanest path is: **build a new Next.js frontend** that speaks to OpenClaw's existing Node.js gateway via WebSocket (Socket.IO or native WS), draw UI patterns from Open WebUI's admin panel + Dify's provider stack, and add a ReactFlow-based canvas (from Flowise) for visual agent/workflow design. This avoids the Python-backend mismatch of Open WebUI and Dify, the licensing issues of n8n, and the chat-only limitations of LibreChat.
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## Recommendation
|
|
434
|
+
|
|
435
|
+
### Tier 1: Best Foundation
|
|
436
|
+
|
|
437
|
+
**Build new, draw from multiple sources**
|
|
438
|
+
|
|
439
|
+
Do not fork any single project. Instead:
|
|
440
|
+
|
|
441
|
+
1. **Framework**: Next.js 14 (App Router) + React + TypeScript + Tailwind CSS
|
|
442
|
+
- Rationale: Same ecosystem as Dify (proven for AI management UIs), largest component library ecosystem, SSR for admin dashboards, App Router aligns with React Server Components for performance
|
|
443
|
+
|
|
444
|
+
2. **State management**: Jotai (atomic, Dify-proven) + TanStack Query (server state, standard)
|
|
445
|
+
- Avoid Redux/Zustand for this scale; Jotai's atom model maps cleanly to per-agent/per-channel state
|
|
446
|
+
|
|
447
|
+
3. **Real-time**: Socket.IO client (matches Open WebUI's server architecture exactly)
|
|
448
|
+
- Room-based: `channel:{id}`, `agent:{id}`, `user:{id}` for targeted delivery
|
|
449
|
+
- OpenClaw's gateway already has Socket.IO or can add it cheaply
|
|
450
|
+
|
|
451
|
+
4. **Canvas (agent flow visualization)**: ReactFlow (used by Flowise, battle-tested)
|
|
452
|
+
- Custom node types for: channel nodes, agent nodes, tool nodes, memory nodes
|
|
453
|
+
- Edges show message routing
|
|
454
|
+
|
|
455
|
+
5. **Admin panel**: Draw from Open WebUI's admin panel design (user management, RBAC, analytics, channel status)
|
|
456
|
+
|
|
457
|
+
6. **Backend**: No new backend needed — Next.js API routes proxy to OpenClaw's existing gateway REST + WebSocket API
|
|
458
|
+
|
|
459
|
+
### Tier 2: If forking is required
|
|
460
|
+
|
|
461
|
+
**Fork LibreChat** — it is the only project with MongoDB + Node.js + TypeScript + MIT license + MCP support. Replace its consumer chat UI with an admin/management dashboard, add ReactFlow canvas, integrate directly with ClawMongo's collection schema.
|
|
462
|
+
|
|
463
|
+
### Tier 3: Quick prototype only
|
|
464
|
+
|
|
465
|
+
**Fork Open WebUI** — biggest community, best admin panel already built, Pipeline system maps to OpenClaw extensions. Requires either keeping Python backend (bridging cost) or replacing it with a Node.js proxy layer. Use SvelteKit if Svelte familiarity exists; otherwise adds a learning curve for contributors.
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## References
|
|
470
|
+
|
|
471
|
+
- https://github.com/open-webui/open-webui (128k stars, SvelteKit + FastAPI)
|
|
472
|
+
- https://github.com/langgenius/dify (134k stars, Next.js + Python)
|
|
473
|
+
- https://github.com/FlowiseAI/Flowise (51k stars, React + Node.js)
|
|
474
|
+
- https://github.com/n8n-io/n8n (181k stars, Vue 3 + Node.js, Sustainable Use License)
|
|
475
|
+
- https://github.com/danny-avila/LibreChat (34.8k stars, React + Node.js + MongoDB, MIT)
|
|
476
|
+
- https://github.com/langchain-ai/langgraph (27.2k stars, Python backend, Studio is proprietary)
|
|
477
|
+
- https://docs.openwebui.com/features/
|
|
478
|
+
- https://docs.n8n.io/advanced-ai/
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
GitHub research complete.
|