knowledgecanvas / knowledge Goto Github PK
View Code? Open in Web Editor NEWKnowledge is a tool for saving, searching, accessing, exploring and chatting with all of your favorite websites, documents and files.
License: Apache License 2.0
Knowledge is a tool for saving, searching, accessing, exploring and chatting with all of your favorite websites, documents and files.
License: Apache License 2.0
Currently, when a large file is being downloaded and Autoscan is triggered, the app will move the partially downloaded file to the pending
folder, causing the download to fail and file to be partial.
Desired behavior: wait for the download to complete before ever processing the file.
Attempting to add links with third level domains such as https://test.example.com will throw an invalid URL error.
This however does not happen with URLs using www such as https://www.example.com
Version: 0.7.0
Allow markdown styling in sources/project descriptions for further customization similarly to GitHub issues/comments
Describe the bug
When clicking the + File button, a dialog is presented to select a file(s), but nothing happens after the files are selected.
Expected behavior
Files that are selected are imported into the system
I really like this software, which can manage website addresses, but the cover images it obtained are not very ideal. I hope to customize the cover images.
Hope to import Bookmarks
Still to fluidify UX, having the direct action buttons on each source row would make navigation swifter and possibly easier for some users.
Description: Deleting/renaming sources or projects from the graph (i.e. right-click remove) doesn't remove or rename them visually, you need to switch tab (i.e. click on Table view) and then come back for the graph to properly update
Desired behavior: automatically update the graph view whenever an element is edited or removed
Version: 0.7.0
OS: Windows 10.0.19045 Build 19045
Is your feature request related to a problem? Please describe.
Yes. The "Up Next" dialog is severely limited and non-intuitive.
Describe the solution you'd like
Several things, but primarily boils down to "provide enough detail about sources to make organization easier".
Describe alternatives you've considered
Improving the existing Up Next could have a similar effect, but lack of visibility makes it feel like an add-on instead of an integral part of the application and user workflow.
Additional context
None
Issue: if a PDF is moved from its original location, and the user attempts to open the Details
view, the app force-reloads (losing any unsaved work). This error is already handled explicitly here, but by that point, it is too late, and the app is already in an inconsistent state (and therefore requires a reload).
Steps to recreate:
Details
viewSolution 1: Perform a check before attempting to display files. If the file no longer exists, do the following:
Source
Source
entirelyCaveats:
Source
when a file is moved, we must either:
SourceModel
saying the preview should be disabled. This will involve additional overhead and house keeping, orSources
that are not allowed to be previewed (easier and less overhead, but not very elegant)Source
when a file is moved, the user risks losing valuable data. This should be handled gracefully if possible (prompt the user to export any associated data before removing the source)Is your feature request related to a problem? Please describe.
Yes. Search-ability of sources with due dates, specifically across all Projects.
Describe the solution you'd like
Create a floating sidebar that shows a task list with sources, their projects, and upcoming due dates.
Downloading and installing the Silicon-dmg worked fine, but when opening the application I was stopped by a popup claiming the application contains malicious software.
Currently, I have no more information.
I uninstalled right away.
Rob, this is a fantastic app. Thank so much! Some potential enhancements:
Love this project! Thanks Rob.
Hi, just here to make a request for an Obsidian and other PKM plugins. This tool is super cool. Thanks!! 🙏
The current export mechanism (provided by PrimeNG) does not do a sufficient job at exporting the appropriate fields.
A good export mechanism would have the following properties:
Another really important feature is the export of KS in the form of citations and/or references. We already have most of the primitives to make this happen.
Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
Use hierarchical menu instead of flat menu. Example structure:
Notes: See ks-context-menu-service. This should be as easy as adding/moving/removing existing flat menu items.
More advanced functionality could be built in to detect what the default application is but not necessary.
The Move to...
functionality is not built.
Hi!
First of all, thank you so much! This is an amazing tool that I'm still learning to utilise to its fullest!
With that said, I can't seem to find where / how all the data is stored. I can export individual projects as json for example, but can I somehow backup my entire knowledge-base?
Even if it's not a built in feature, it could be substituted with the local storage + some sync tool like syncthing. So my question is, where / how does Knowledge store the data, and is there any way to back it up?
Thanks in advance!
Barney
Title says it all.
It would improve UX to be able to access source chats with the least number of clicks.
Trying to build the project but seems the version might not be locked and might be upgrading to a version it doesn't support yet?
Error: ../../node_modules/@types/eslint/index.d.ts:462:42 - error TS2724: '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member named 'ChainExpression'. Did you mean 'Expression'?
462 ChainExpression?: ((node: ESTree.ChainExpression & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:463:49 - error TS2724: '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member named 'ChainExpression'. Did you mean 'Expression'?
463 "ChainExpression:exit"?: ((node: ESTree.ChainExpression & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:508:43 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'ImportExpression'.
508 ImportExpression?: ((node: ESTree.ImportExpression & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:509:50 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'ImportExpression'.
509 "ImportExpression:exit"?: ((node: ESTree.ImportExpression & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:532:44 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'PrivateIdentifier'.
532 PrivateIdentifier?: ((node: ESTree.PrivateIdentifier & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:533:51 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'PrivateIdentifier'.
533 "PrivateIdentifier:exit"?: ((node: ESTree.PrivateIdentifier & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:538:45 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'PropertyDefinition'.
538 PropertyDefinition?: ((node: ESTree.PropertyDefinition & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:539:52 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'PropertyDefinition'.
539 "PropertyDefinition:exit"?: ((node: ESTree.PropertyDefinition & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:548:38 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'StaticBlock'.
548 StaticBlock?: ((node: ESTree.StaticBlock & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:549:45 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'StaticBlock'.
549 "StaticBlock:exit"?: ((node: ESTree.StaticBlock & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~
~/Pr/knowledge on main !1 ?1 ❯ cd src/kc_angular
~/Pr/knowledge/s/kc_angular on main !1 ?1 ❯ rm -rf node_modules
~/Pr/knowledge/s/kc_angular on main !1 ?1 ❯ npm run build
> [email protected] build
> ng build main --configuration production --base-href ./
Node.js version v19.6.0 detected.
Odd numbered Node.js versions will not enter LTS status and should not be used for production. For more information, please see https://nodejs.org/en/about/releases/.
✔ Browser application bundle generation complete.
Warning: /Users/lluis/Projects/knowledge/node_modules/@fullcalendar/angular/__ivy_ngcc__/fesm2015/fullcalendar-angular.js depends on 'fast-deep-equal'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies
Error: ../../node_modules/@types/eslint/index.d.ts:462:42 - error TS2724: '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member named 'ChainExpression'. Did you mean 'Expression'?
462 ChainExpression?: ((node: ESTree.ChainExpression & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:463:49 - error TS2724: '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member named 'ChainExpression'. Did you mean 'Expression'?
463 "ChainExpression:exit"?: ((node: ESTree.ChainExpression & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:508:43 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'ImportExpression'.
508 ImportExpression?: ((node: ESTree.ImportExpression & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:509:50 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'ImportExpression'.
509 "ImportExpression:exit"?: ((node: ESTree.ImportExpression & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:532:44 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'PrivateIdentifier'.
532 PrivateIdentifier?: ((node: ESTree.PrivateIdentifier & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:533:51 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'PrivateIdentifier'.
533 "PrivateIdentifier:exit"?: ((node: ESTree.PrivateIdentifier & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:538:45 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'PropertyDefinition'.
538 PropertyDefinition?: ((node: ESTree.PropertyDefinition & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:539:52 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'PropertyDefinition'.
539 "PropertyDefinition:exit"?: ((node: ESTree.PropertyDefinition & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:548:38 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'StaticBlock'.
548 StaticBlock?: ((node: ESTree.StaticBlock & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~
Error: ../../node_modules/@types/eslint/index.d.ts:549:45 - error TS2694: Namespace '"/Users/lluis/Projects/knowledge/node_modules/@types/estree/index"' has no exported member 'StaticBlock'.
549 "StaticBlock:exit"?: ((node: ESTree.StaticBlock & NodeParentExtension) => void) | undefined;
~~~~~~~~~~~
I have not investigated further to fix the problem. Will report back.
Initial investigation:
./src/main.ts - Error: Module build failed (from ../../node_modules/@angular-devkit/build-angular/node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Emit attempted before Angular Webpack plugin initialization.
./src/polyfills.ts - Error: Module build failed (from ../../node_modules/@angular-devkit/build-angular/node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Emit attempted before Angular Webpack plugin initialization.
Error: Failed to initialize Angular compilation - The Angular Compiler requires TypeScript >=4.6.2 and <4.9.0 but 4.9.5 was found instead.
Looking at package.json
"typescript": "^4.8.4",
Describe the bug
Something is broken in the "Table" settings menu. When you press "Show Countdown", it simultaneously turns "Show Subproject sources" off. However, the "Show Subproject sources" button does not toggle, only the underlying data. In other words, the button stays the same, but the sources displayed in the table do not include the subproject sources, contrary to what the button says.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Pressing "Show Countdown" should have no effect on "Show Subproject sources"
Operating System (please complete the following information):
Describe the bug
On occasion, performing a drag-and-drop operation to move one project into another (as a subproject) results in an incomplete tree, even though the project is moved successfully. For instance, given the following project structure:
- Project_1
- Project_2
- Project_3
Dragging Project_3 into Project_1 may result in:
- Project_1
- Project_2
However, going to Project_1 and clicking the breadcrumb shows that Project_3 is, in fact, a subproject of Project_1. Therefore, the move works as expected, but the project tree is not sufficiently updated in the process.
To Reproduce
Steps to reproduce the behavior:
Note: it does not happen consistently and I am unable to determine what specific scenarios lead to the issue.
Expected behavior
Using the example above, you would expect to see a final project tree of:
- Project_1
- Project_3
- Project_2
Screenshots
If applicable, add screenshots to help explain your problem.
The first screenshot shows the project tree after moving a project titled HPC
into the project HPC CUDA JupyterHub
. The second screenshot shows the breadcrumb dropdown of the latter and indicates that the move was successful.
Operating System (please complete the following information):
Hi!
Having Physics - Simulate enabled disrupts graph ordering. Can reproduce 100% of the time.
Steps to reproduce:
Thanks!
When I query something using chat, it often provides other generic info
If you try to rename an already existing project to a 3 letter name it doesn't work, it shows no notification (showing debug level notifications) and doesn't save the changes.
Creating a 3 letter name new project works fine
Hi,
Just setup version 0.8.3 on my Win1O workstation, added OpenAI API key, created a couple of projects and subprojects, imported a handful of docs and URLs… Everything beautiful 👍
But I can't use the chat, neither at project level nor at document level, with slightly different issues:
I've tried to disable all fancy chat settings, to no luck.
Also note that disabling automatic introduction is only effective on project chat.
Hi is possible to add local LLMA support or give option for api aside openai ? thanks.
Currently, when changing the Autoscan path, any files in the new path will be copied to the pending
folder. However, this is bug prone due to the lack of support for importing entire folders (see #33).
Expected behavior: when a new Autoscan path is chosen, verify that it is either empty or only contains files (no folders).
When starting my first project is to try and link and organise my bookmarks.
It would be great to be able to input a load of links in csv or txt string format
Hello
I would like to use Knowledge for a small organization. Is it possible to save the files on another drive, perhaps one that is shared, so everyone can load the same files and add new sources?
Describe the bug
Title
To Reproduce
Steps to reproduce the behavior:
Table
viewExpected behavior
Create a copy and move that to the dragout location, instead of moving the original
On Windows (tested on Win10) clicking on the button to maximize the window will resize Knowledge to fit the whole screen covering the taskbar as well, this does not happen when using Window's window snapping feature (dragging the Knowledge window to the top edge of the screen)
Describe the bug
Pressing the esc
key closes the modal import dialog, even if the active focus is not on the import dialog itself (e.g. pressing the info
button on a card in the dialog and pressing esc
when the info
window is visible).
To Reproduce
Steps to reproduce the behavior:
+
buttoninfo
button on the Knowledge Sourceesc
info
dialog and the import dialogExpected behavior
The previous sequence should only close the info
dialog and not the import dialog. Or, at a minimum, the user should be prompted to confirm closing the import dialog when there is at least one Knowledge Source waiting to be imported.
Operating System (please complete the following information):
While reading through the page [1] I found the text "supported digital resources" pointing to a non-existing wiki page [2]
[1] https://github.com/KnowledgeCanvas/knowledge/wiki/Basics:-Sources
[2] https://github.com/KnowledgeCanvas/knowledge/wiki/Supported-Import-Types
Knowledge becomes unresponsive and eventually halts when the autoscan folder contains many files. I suspect this should be a consideration for #33 as it would likely leverage similar routines.
I don't know enough about how autoscan works to propose a solution yet.
Steps to recreate:
1. Set the autoscan directory to a folder containing many files (e.g. Knowledge source folder)
2. Wait for autoscan to occur
3. ???
4. Profit
Tested on Windows 11
Describe the bug
When in Grid
view with a filter active, modifying any knowledge source will cause the filter to reset.
To Reproduce
Steps to reproduce the behavior:
Grid
viewExpected behavior
The filter should remain active until explicitly removed by the user.
Operating System (please complete the following information):
Additional context
This same issue does not occur in the Table
view.
Currently, icons are retrieved once on import and cached in local storage. If an icon is unavailable on first import, the icon is forever saved as the "default" icon. It would be nice to implement the following features:
Projects
to have icons (currently only Sources
have them)Project/Source
Source
details page for individual Sources
Source
icon or somewhere in the form for (3)Need to integrate Knowledge Graph into the main app, so as to stop using a modal Electron window to display it.
Also need to correctly reference the KcMainWindow
properly. As of now, if another window is open, the app cannot correctly identify the main window, causing the app to behave erratically.
Is your feature request related to a problem? Please describe.
No.
Describe the solution you'd like
Knowledge Canvas should automatically extract all dc:
tags, in the same way it extracts og:
tags.
Additional context
The app already extracts Open Graph meta tags using the prefix og:
. Dublin Core tags (dc:
) are related to Open Graph tags and are widely used as an alternative or in addition to og:
.
This should be a very easy addition, with implementation almost identical to the Open Graph extractor. See Extraction Service
Currently, we only support importing specific files. If a directory is dragged into Knowledge Canvas, it is treated as a Knowledge Source but doesn't do anything useful.
Instead, when directories are imported, the user should have the option to:
Is your feature request related to a problem? Please describe.
Yes. Currently, web links that lead to PDF files are treated as normal websites.
Describe the solution you'd like
Describe alternatives you've considered
None
Additional context
None
Well I really like the project , it will be really useful if one could selfhost on a vps and access it via webui.
Is your feature request related to a problem? Please describe.
Yes. Titles extracted from websites will sometimes contain extraneous whitespace at the beginning and end of the title.
Describe the solution you'd like
All whitespace is "trimmed" from text fields upon importing any source.
Describe alternatives you've considered
Doing it manually, which sucks!
Additional context
None.
successful yarn install.
yarn build produces the following:
knowledgecanvas:/opt/knowledge-canvas# yarn build
Usage Error: Couldn't find the node_modules state file - running an install might help (findPackageLocation)
Hi!
I'm not sure how feasible this is or how much of a rewrite it would require, but currently only sources can be moved between projects.
Let's say I'm planning a trip and forget to create a main "Travel" project and created 2 projects titled "Tokyo" and "Kyoto" instead, and collect websites etc I'd like to visit there. Retroactively moving these 2 projects into 1 would be super useful.
P.S.: Exporting a project as JSON (which is currently possible) and then importing it on another device would be fantastic as well (for example for sharing projects with friends etc. Incidentally, this would kind of solve the project move issue as well)
Thanks!
for people like me who will never use closed source tool for anything.
Is your feature request related to a problem? Please describe.
No.
Describe the solution you'd like
Add a way to filter entries in the Calendar
view, the same way they are in Table
and Grid
views.
Additional context
It probably makes more sense to put filtering and sorting at a higher level so that we are not repeating ourselves by implementing it separately for each view.
Where's GPT-4 support?
This is easily one of the best apps I've had the pleasure to find and use, open source too.
I'm currently using Knowledge as a sort of TODO tracker by using subprojects as items/categories (example project shown in the pic below), it would be nice having a way to customize the titles of individual subprojects for example adding the option to change their color or appearance in such a way we could mark them for example we could mark "Completed" tasks in green, "In Progress" in blue and so on.
Alternatively a way to mark elements as "completed" so that the titles would appear as crossed like Example completed task and doing so on a subproject could perhaps propagate to all its subprojects and sources recursively
If this is out of the scope and usage of Knowledge I'd then just settle with being able to change parent projects of subprojects allowing me to create "Completed", "In Progress" subprojects and whenever I complete a task I could just switch its parent to those.
It wouldn't be the ideal solution as this would mean losing the hierarchy and the original location of the element, but it would be a solution nonetheless.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.