canvas-ai / canvas-server

Canvas Core
https://getcanvas.org
GNU Affero General Public License v3.0
0 stars 1 forks source link

500€ | Add webdav support for canvas-server/transports #40

Open idncsk opened 1 month ago

idncsk commented 1 month ago

We need to implement a webdav server (in canvas-server/transports or as a standalone role (go/rust) using socket.io to connect to the canvas-server instance) that would export the global context tree so that individual layers and all the content they index can be accessed and managed using OS's file manager.

DoD

List of data types that need to be implemented as part of this ticket(internally called data abstractions, feature bitmap data/abstraction/):

There should be 2 dynamic directory trees made available in the webdav root:

Both trees need to be refreshed whenever the global tree is changed or the user changes context Switching from work/customer-foo/dev/taskA to work/customer-foo/dev/task-b with the webdav folder path "Context" opened should should automatically update the folder

Implementation should support all basic FS operations (copy, move, delete, rename, for Notes and Todo update)

CryptoNinja0331 commented 1 month ago

Hello, I am interested in this issue.

idncsk commented 1 month ago

I don't see any projects related to webdav(js, rust or go) in your portfolio This task was also posted on upwork, let me refine the description a little too

luckyman9339 commented 1 month ago

Hello, I just prepared a demo application for this issue. I applied to your job post with demo application. My name is Dmytro

Kunkka0822 commented 1 month ago

@idncsk I am really interested in your project. I've gone through all sub-repositories. Before we discuss the current issue, I'd like to understand this project's functionalities better by testing it.

Image

Is there any documentation that you can share with me, please?

idncsk commented 1 month ago

Perfect, thanks for the effort! especially given that the canvas-server code is in the middle of a big refactor. I tried to explain the base concept in https://github.com/canvas-ai/canvas but we can also have a short call, I can quickly show you where we are heading (should probably finally do a video too :P)

idncsk commented 1 month ago

The missing part in your screenshot / setup I assume is the bash CLI client(or the repl nodejs app - not really maintained but works)

In general, you have your directory-like context tree where each directory is tied to a bitmap index indexing all your data (notes, contacts, emails, file) to a given context

Selecting universe://work/customer-foo/dev/jira-1234 should automagically return all data linked to this particular context (notes, tabs etc) Selecting/creating universe://customer-foo will show you all data linked to customer-foo Selecting/creating universe://reports/2024/customer-foo will do a ligical AND for reports AND 2024 AND customer-foo and show you only data that was linked/commited to all 3 layers (one thing I'll probably implement today is the commitLayers functionality)

You can have your canvas-server sitting somewhere in your home NAS in a docker container(optionally running a minio S3 role), holding all your canvas index data, and a session "work" from your work nb tied to a base URL /work (so as to only navigate within the /work subtree) and a default session with base URL / (universe) on your workstation and personal nb, transparently indexing all your data (browser tabs are notoriously entropy-producing so prioritized that extension as a PoC - big thanks to @tarborlevan for his work)

idncsk commented 1 month ago

image

Kunkka0822 commented 1 month ago

I see. Image

idncsk commented 1 month ago

you can now use $ context list | grep url # to check if your urls were stored correctly $ context bitmaps # to check what bitmap-based filters are applied to your current context well, those 2 are most practical when developing/testing $ context sessions # the whole submenu (really badly named/implemented) if you need to test the sessions functionality

Kunkka0822 commented 1 month ago

@idncsk All things are clear. I just applied to your job on Upwork. Please check.

idncsk commented 1 month ago

@Kunkka0822 whats your initials

Kunkka0822 commented 1 month ago

@idncsk My name is Stepan.

BigHouse0405 commented 1 month ago

Hello, My name is Rodney, i'm ready

idncsk commented 1 month ago

@BigHouse0405 Hello Rodney, once the grunt work is done, we will start working on llm agents, already did some tests with fine-tuning with unsloth and lora adapters. Internally we use bitmap indexes which I think are a great fit and have huge potential optimizing RAG and even inference(depending on how deep one wants to integrate them), Ill probably also use lancedb in the synapsdb module which is undergoing a rewrite/cleanup => I dont think this webdav module is a good fit but stay tuned for the llm part!

BigHouse0405 commented 1 month ago

@idncsk Hello, sir. i'm interesting about your project, so could you invite me? if there's anything you need, count on me.

Kunkka0822 commented 1 month ago

@idncsk Could you check your email, please?

BigHouse0405 commented 1 month ago

@idncsk thanks for invite me.

BigHouse0405 commented 1 month ago

@idncsk Hello, sir , How are you?

idncsk commented 3 weeks ago

Removing App/Apps from scope Scope in terms of data abstractions will be

BigHouse0405 commented 2 weeks ago

@idncsk, i can do it, sir

idncsk commented 2 weeks ago

This task is already worked on by @Kunkka0822 , I am in the middle of a refactor for the canvas-server part (separating index and document storage which may have not been the brightest idea) but that note above was meant for him

idncsk commented 2 weeks ago

As agreed with @Kunkka0822, moving back to TODO, lets prioritize electron for now