ondras / my-mind

Online Mindmapping Software
https://my-mind.github.io
MIT License
3.27k stars 647 forks source link

[concept] AI Copilot #174

Open melvincarvalho opened 1 year ago

melvincarvalho commented 1 year ago

Currently the idea of copilot in tools are gaining popularity

I was wondering what mind mapping folks think about this

Below is a video form superus which demonstrates the concept

Watch Video

Another is a todo list that does itself for you

Personally when I run my-mind locally I set up a process called, aimon.sh, which monitors changes in a map that I make when I hit save (saved to nosDAV and it will

I dont yet have todolists that do themselves, but I think that would be kind of cool, and head towards AGI for mind maps.

I am wondering if there is an appetite for any of these features.

arkin0x commented 1 year ago

invader-zim-mighty-need

rquast commented 1 month ago

I am considering modifying my-mind to muck around with anythingllm which offers a pretty easy to use API for this purpose.

rquast commented 1 month ago

I reckon I could probably make some kind of plugin that hooks into subscribers in pubsub.ts (e.g. "item-change" events) to listen for changes to nodes. I'd probably keep it in a separate project and not pollute the lightweight code here. Thinking I might expose expose subscribers on a global scope rather than a module scope so I can access it from another script without needing to create some kind of plugin system. Might also need to add events that handles adding/removing/editing nodes.

melvincarvalho commented 1 month ago

There already is such code in there for firebase updates. However firebase is proprietary.

I prefer a pub/sub solution over websockets called nostr:

https://nostr.how/en/what-is-nostr

Which does pub/sub over websockets. More background on nostr here. And it might be possible to apply for an open source grant to integrate my mind and nostr here

rquast commented 1 month ago

Yeah, I can see this in the firebase one:

pubsub.subscribe("firebase-list", this); pubsub.subscribe("firebase-change", this);

...

case "firebase-change": if (data) { pubsub.unsubscribe("item-change", this); app.currentMap.mergeWith(data); pubsub.subscribe("item-change", this); } else { / FIXME / console.log("remote data disappeared"); }

That's a good place to start. Thanks.

rquast commented 1 month ago

Yeah I like the idea of your nostr pub/sub backend. Probably go with something like that to keep it easy and use the firebase code for a bit of help.

melvincarvalho commented 1 month ago

@rquast awesome! I would be happy to run a nostr relay if you want to test. But there are a few 100 here

A nostr relay also be run with a single line of code if you have docker:

# docker pull scsibug/nostr-rs-relay
docker run -p 4445:8080 scsibug/nostr-rs-relay