From 0b42f3a92420982823266346544c318b7bcce2e9 Mon Sep 17 00:00:00 2001 From: Prabhat Ranjan Date: Sun, 5 Apr 2026 21:35:14 +1000 Subject: [PATCH] =?UTF-8?q?Rebrand:=20NQL=E2=86=92SensibleQL,=20light=20mo?= =?UTF-8?q?de=20UI,=20updated=20docs,=20icons,=20and=20landing=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rename all NQL/NexusQL references to SensibleQL across entire codebase (59 files) - Rename directories: docs/nexusql→docs/sensibleql, nql-tests→sensibleql-tests - Rename files: NqlEditor→SensibleQLEditor, nql.rs→sensibleql.rs, nl-to-nql→nl-to-sensibleql - Convert Explorer UI from dark mode to light mode using logo color palette (indigo #6366f1) - Fix header title overlap with macOS traffic light buttons (centered layout) - Improve graph view default node spacing (force simulation tuning) - Regenerate app icons from SensibleDB logo SVG (32px, 128px, 256px, icns, ico) - Fix logo tagline to 'EXPLORE YOUR DATA' - Replace GitHub Pages landing page with clean SensibleDB explanation - Update mkdocs.yml navigation with Home page --- ARCHITECTURAL_GUARDRAILS.md | 4 +- CONTRIBUTORS.md | 16 +- Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 2 +- assets/sensible-db-logo.svg | 2 +- clippy_check.sh | 4 +- docs/INDEX.md | 464 +++--------------- docs/architecture/diagrams/system-context.mmd | 2 +- docs/design/explorer-redesign.md | 8 +- docs/getting-started/installation.md | 4 +- .../crud-operations.md | 8 +- docs/{nexusql => sensibleql}/overview.md | 4 +- .../schema-definition.md | 4 +- docs/{nexusql => sensibleql}/traversals.md | 12 +- .../vector-operations.md | 8 +- e2e/chat-view.spec.ts | 6 +- e2e/fixtures.ts | 2 +- e2e/onboarding-and-polish.spec.ts | 8 +- mkdocs.yml | 1 + sensibledb-cli/src/github_issue.rs | 4 +- .../src/sensibledbc/generator/queries.rs | 4 +- .../sensibledbc/generator/return_values.rs | 2 +- .../sensibledbc/generator/traversal_steps.rs | 2 +- .../src/sensibledbc/parser/README.md | 4 +- sensibledb-explorer/icons/128x128.png | Bin 1375 -> 4303 bytes sensibledb-explorer/icons/128x128@2x.png | Bin 2823 -> 9481 bytes sensibledb-explorer/icons/32x32.png | Bin 357 -> 1013 bytes .../icons/app.iconset/icon_1024x1024.png | Bin 0 -> 43251 bytes .../icons/app.iconset/icon_128x128.png | Bin 0 -> 4303 bytes .../icons/app.iconset/icon_128x128@2x.png | Bin 0 -> 9481 bytes .../icons/app.iconset/icon_16x16.png | Bin 0 -> 583 bytes .../icons/app.iconset/icon_16x16@2x.png | Bin 0 -> 1013 bytes .../icons/app.iconset/icon_256x256.png | Bin 0 -> 9481 bytes .../icons/app.iconset/icon_256x256@2x.png | Bin 0 -> 20422 bytes .../icons/app.iconset/icon_32x32.png | Bin 0 -> 1013 bytes .../icons/app.iconset/icon_32x32@2x.png | Bin 0 -> 1950 bytes .../icons/app.iconset/icon_512x512.png | Bin 0 -> 20422 bytes .../icons/app.iconset/icon_512x512@2x.png | Bin 0 -> 43251 bytes .../icons/app.iconset/icon_64x64.png | Bin 0 -> 1950 bytes .../icons/app.iconset/icon_64x64@2x.png | Bin 0 -> 4303 bytes sensibledb-explorer/icons/icon.icns | Bin 2823 -> 155030 bytes sensibledb-explorer/icons/icon.ico | Bin 0 -> 19912 bytes sensibledb-explorer/src/commands/database.rs | 277 +++++++++-- sensibledb-explorer/src/commands/mod.rs | 4 +- sensibledb-explorer/src/commands/nodes.rs | 54 +- .../src/commands/{nql.rs => sensibleql.rs} | 125 ++++- sensibledb-explorer/src/frontend/src/App.css | 13 +- sensibledb-explorer/src/frontend/src/App.tsx | 8 +- .../frontend/src/components/chat/ChatView.css | 18 +- .../frontend/src/components/chat/ChatView.tsx | 56 +-- .../{NqlEditor.css => SensibleQLEditor.css} | 10 +- .../{NqlEditor.tsx => SensibleQLEditor.tsx} | 22 +- .../src/components/graph/GraphView.tsx | 26 +- .../frontend/src/components/home/HomeView.css | 12 +- .../frontend/src/components/home/HomeView.tsx | 2 +- .../onboarding/ConnectionWizard.css | 4 +- .../src/components/onboarding/GuidedTour.css | 2 +- .../src/components/onboarding/GuidedTour.tsx | 6 +- .../src/components/report/ReportView.css | 18 +- .../src/components/sidebar/Sidebar.css | 4 +- .../src/components/sidebar/Sidebar.tsx | 2 +- .../src/frontend/src/data/glossary.ts | 4 +- .../src/frontend/src/index.css | 182 +------ .../src/frontend/src/lib/api.ts | 8 +- .../src/frontend/src/lib/glossary.ts | 4 +- .../lib/{nl-to-nql.ts => nl-to-sensibleql.ts} | 34 +- .../src/frontend/src/stores/app.ts | 4 +- sensibledb-explorer/src/main.rs | 2 +- {nql-tests => sensibleql-tests}/Cargo.lock | 0 {nql-tests => sensibleql-tests}/Cargo.toml | 2 +- {nql-tests => sensibleql-tests}/README.md | 6 +- {nql-tests => sensibleql-tests}/run.sh | 0 {nql-tests => sensibleql-tests}/src/main.rs | 12 +- {nql-tests => sensibleql-tests}/test.sh | 2 +- .../tests/add_e_borrowed_ids/config.hx.json | 0 .../tests/add_e_borrowed_ids/queries.hx | 0 .../tests/add_e_borrowed_ids/queries.rs | 0 .../tests/add_e_borrowed_ids/schema.hx | 0 .../tests/add_e_borrowed_ids/sensibledb.toml | 0 .../tests/add_n/config.hx.json | 0 .../tests/add_n/queries.hx | 0 .../tests/add_n/run.sh | 0 .../tests/add_n/schema.hx | 0 .../tests/add_n/sensibledb.toml | 0 .../tests/add_n_unique/config.hx.json | 0 .../tests/add_n_unique/queries.hx | 0 .../tests/add_n_unique/run.sh | 0 .../tests/add_n_unique/schema.hx | 0 .../tests/add_n_unique/sensibledb.toml | 0 .../adding_chunk_to_memory/config.hx.json | 0 .../tests/adding_chunk_to_memory/queries.hx | 0 .../tests/adding_chunk_to_memory/queries.rs | 0 .../tests/adding_chunk_to_memory/schema.hx | 0 .../adding_chunk_to_memory/sensibledb.toml | 0 .../tests/aggregate/config.hx.json | 0 .../tests/aggregate/queries.hx | 0 .../tests/aggregate/schema.hx | 0 .../tests/aggregate/sensibledb.toml | 0 .../tests/all_types_of_remappings/queries.hx | 0 .../tests/all_types_of_remappings/schema.hx | 0 .../all_types_of_remappings/sensibledb.toml | 0 .../tests/astar_shortest_path/config.hx.json | 0 .../tests/astar_shortest_path/queries.hx | 0 .../tests/astar_shortest_path/schema.hx | 0 .../tests/astar_shortest_path/sensibledb.toml | 0 .../basic_closure_remapping/config.hx.json | 0 .../tests/basic_closure_remapping/file6.hx | 0 .../tests/basic_closure_remapping/schema.hx | 0 .../basic_closure_remapping/sensibledb.toml | 0 .../basic_object_remapping/config.hx.json | 0 .../tests/basic_object_remapping/queries.hx | 0 .../tests/basic_object_remapping/schema.hx | 0 .../basic_object_remapping/sensibledb.toml | 0 .../tests/basic_search_v/config.hx.json | 0 .../tests/basic_search_v/queries.hx | 0 .../tests/basic_search_v/schema.hx | 0 .../tests/basic_search_v/sensibledb.toml | 0 .../basic_traversal_methods/config.hx.json | 0 .../tests/basic_traversal_methods/queries.hx | 0 .../tests/basic_traversal_methods/schema.hx | 0 .../basic_traversal_methods/sensibledb.toml | 0 .../tests/benchmarks/queries.hx | 6 +- .../tests/benchmarks/sensibledb.toml | 0 .../tests/brute_force_search_v/config.hx.json | 0 .../tests/brute_force_search_v/queries.hx | 0 .../tests/brute_force_search_v/schema.hx | 0 .../brute_force_search_v/sensibledb.toml | 0 .../tests/cloud_queries/config.hx.json | 0 .../tests/cloud_queries/queries.hx | 0 .../tests/cloud_queries/schema.hx | 0 .../tests/cloud_queries/sensibledb.toml | 0 .../tests/cloud_queries_2/config.hx.json | 0 .../tests/cloud_queries_2/queries.hx | 0 .../tests/cloud_queries_2/schema.hx | 0 .../tests/cloud_queries_2/sensibledb.toml | 0 .../tests/cognee/queries.hx | 0 .../tests/cognee/schema.hx | 0 .../tests/cognee/sensibledb.toml | 0 .../tests/companies_graph/config.hx.json | 0 .../tests/companies_graph/queries.hx | 0 .../tests/companies_graph/schema.hx | 0 .../tests/companies_graph/sensibledb.toml | 0 .../tests/companies_graph_v2/config.hx.json | 0 .../tests/companies_graph_v2/queries.hx | 0 .../tests/companies_graph_v2/schema.hx | 0 .../tests/companies_graph_v2/sensibledb.toml | 0 .../config.hx.json | 0 .../queries.hx | 0 .../schema.hx | 0 .../sensibledb.toml | 0 .../tests/contains/queries.hx | 0 .../tests/contains/schema.hx | 0 .../tests/contains/sensibledb.toml | 0 .../tests/count/config.hx.json | 0 .../tests/count/queries.hx | 0 .../tests/count/schema.hx | 0 .../tests/count/sensibledb.toml | 0 .../custom_return_objects/config.hx.json | 0 .../tests/custom_return_objects/queries.hx | 0 .../tests/custom_return_objects/schema.hx | 0 .../custom_return_objects/sensibledb.toml | 0 .../tests/date_comparisons/.gitignore | 0 .../tests/date_comparisons/config.hx.json | 0 .../tests/date_comparisons/queries.hx | 0 .../tests/date_comparisons/schema.hx | 0 .../tests/date_comparisons/sensibledb.toml | 0 .../tests/dates/queries.hx | 0 .../tests/dates/schema.hx | 0 .../tests/dates/sensibledb.toml | 0 .../default_schema_values/config.hx.json | 0 .../tests/default_schema_values/queries.hx | 0 .../tests/default_schema_values/schema.hx | 0 .../default_schema_values/sensibledb.toml | 0 .../tests/demo/queries.hx | 0 .../tests/demo/schema.hx | 0 .../tests/demo/sensibledb.toml | 0 .../tests/dijkstra_custom_weights/queries.hx | 0 .../tests/dijkstra_custom_weights/schema.hx | 0 .../dijkstra_custom_weights/sensibledb.toml | 0 .../tests/dijkstra_vs_bfs/config.hx.json | 0 .../tests/dijkstra_vs_bfs/queries.hx | 0 .../tests/dijkstra_vs_bfs/schema.hx | 0 .../tests/dijkstra_vs_bfs/sensibledb.toml | 0 .../tests/docs_add_e/queries.hx | 0 .../tests/docs_add_e/schema.hx | 0 .../tests/docs_add_e/sensibledb.toml | 0 .../tests/docs_add_n/queries.hx | 0 .../tests/docs_add_n/schema.hx | 0 .../tests/docs_add_n/sensibledb.toml | 0 .../tests/docs_add_v/config.hx.json | 0 .../tests/docs_add_v/queries.hx | 0 .../tests/docs_add_v/schema.hx | 0 .../tests/docs_add_v/sensibledb.toml | 0 .../tests/docs_aggregation/queries.hx | 0 .../tests/docs_aggregation/schema.hx | 0 .../tests/docs_aggregation/sensibledb.toml | 0 .../tests/docs_conditionals/queries.hx | 0 .../tests/docs_conditionals/schema.hx | 0 .../tests/docs_conditionals/sensibledb.toml | 0 .../tests/docs_delete/queries.hx | 0 .../tests/docs_delete/schema.hx | 0 .../tests/docs_delete/sensibledb.toml | 0 .../tests/docs_schema_definition/queries.hx | 0 .../tests/docs_schema_definition/schema.hx | 0 .../docs_schema_definition/sensibledb.toml | 0 .../tests/docs_select_e/queries.hx | 0 .../tests/docs_select_e/schema.hx | 0 .../tests/docs_select_e/sensibledb.toml | 0 .../tests/docs_select_n/queries.hx | 0 .../tests/docs_select_n/schema.hx | 0 .../tests/docs_select_n/sensibledb.toml | 0 .../tests/docs_select_v/config.hx.json | 0 .../tests/docs_select_v/queries.hx | 0 .../tests/docs_select_v/schema.hx | 0 .../tests/docs_select_v/sensibledb.toml | 0 .../tests/docs_shortest_path/queries.hx | 0 .../tests/docs_shortest_path/schema.hx | 0 .../tests/docs_shortest_path/sensibledb.toml | 0 .../tests/docs_social_network/queries.hx | 0 .../tests/docs_social_network/schema.hx | 0 .../tests/docs_social_network/sensibledb.toml | 0 .../tests/docs_traversal_edges/config.hx.json | 0 .../tests/docs_traversal_edges/queries.hx | 0 .../tests/docs_traversal_edges/schema.hx | 0 .../docs_traversal_edges/sensibledb.toml | 0 .../tests/docs_traversal_nodes/queries.hx | 0 .../tests/docs_traversal_nodes/schema.hx | 0 .../docs_traversal_nodes/sensibledb.toml | 0 .../tests/docs_update/queries.hx | 0 .../tests/docs_update/schema.hx | 0 .../tests/docs_update/sensibledb.toml | 0 .../tests/docs_upsert_e/queries.hx | 0 .../tests/docs_upsert_e/schema.hx | 0 .../tests/docs_upsert_e/sensibledb.toml | 0 .../tests/docs_upsert_n/queries.hx | 0 .../tests/docs_upsert_n/schema.hx | 0 .../tests/docs_upsert_n/sensibledb.toml | 0 .../tests/docs_upsert_v/config.hx.json | 0 .../tests/docs_upsert_v/queries.hx | 0 .../tests/docs_upsert_v/schema.hx | 0 .../tests/docs_upsert_v/sensibledb.toml | 0 .../tests/docs_vector_search/config.hx.json | 0 .../tests/docs_vector_search/queries.hx | 0 .../tests/docs_vector_search/schema.hx | 0 .../tests/docs_vector_search/sensibledb.toml | 0 .../tests/drop/config.hx.json | 0 .../tests/drop/queries.hx | 0 .../tests/drop/schema.hx | 0 .../tests/drop/sensibledb.toml | 0 .../tests/drop_from_search_v/config.hx.json | 0 .../tests/drop_from_search_v/queries.hx | 0 .../tests/drop_from_search_v/schema.hx | 0 .../tests/drop_from_search_v/sensibledb.toml | 0 .../edge_from_node_to_vec/config.hx.json | 0 .../tests/edge_from_node_to_vec/queries.hx | 0 .../tests/edge_from_node_to_vec/schema.hx | 0 .../edge_from_node_to_vec/sensibledb.toml | 0 .../tests/figoai/queries.hx | 0 .../tests/figoai/schema.hx | 0 .../tests/figoai/sensibledb.toml | 0 .../tests/first/config.hx.json | 0 .../tests/first/queries.hx | 0 .../tests/first/schema.hx | 0 .../tests/first/sensibledb.toml | 0 .../tests/full_project/queries.hx | 0 .../tests/full_project/queries.rs | 0 .../tests/full_project/schema.hx | 0 .../tests/full_project/sensibledb.toml | 0 .../tests/graphiti/config.hx.json | 0 .../tests/graphiti/queries.hx | 0 .../tests/graphiti/schema.hx | 0 .../tests/graphiti/sensibledb.toml | 0 .../tests/index_with_default/config.hx.json | 0 .../tests/index_with_default/queries.hx | 0 .../tests/index_with_default/schema.hx | 0 .../tests/index_with_default/sensibledb.toml | 0 .../tests/intersect/queries.hx | 0 .../tests/intersect/schema.hx | 0 .../tests/intersect/sensibledb.toml | 0 .../tests/is_in/queries.hx | 0 .../tests/is_in/queries.rs | 0 .../tests/is_in/schema.hx | 0 .../tests/is_in/sensibledb.toml | 0 .../tests/knowledge_graphs/queries.hx | 0 .../tests/knowledge_graphs/schema.hx | 0 .../tests/knowledge_graphs/sensibledb.toml | 0 .../tests/math/config.hx.json | 0 .../tests/math/queries.hx | 0 .../tests/math/schema.hx | 0 .../tests/math/sensibledb.toml | 0 .../tests/mcp_macro/config.hx.json | 0 .../tests/mcp_macro/queries.hx | 0 .../tests/mcp_macro/schema.hx | 0 .../tests/mcp_macro/sensibledb.toml | 0 .../tests/model_macro/config.hx.json | 0 .../tests/model_macro/queries.hx | 0 .../tests/model_macro/schema.hx | 0 .../tests/model_macro/sensibledb.toml | 0 .../multi_type_index_test/config.hx.json | 0 .../tests/multi_type_index_test/queries.hx | 2 +- .../tests/multi_type_index_test/schema.hx | 0 .../multi_type_index_test/sensibledb.toml | 0 .../tests/multiple_types/config.hx.json | 0 .../tests/multiple_types/queries.hx | 0 .../tests/multiple_types/schema.hx | 0 .../tests/multiple_types/sensibledb.toml | 0 .../tests/n_by_index/config.hx.json | 0 .../tests/n_by_index/queries.hx | 0 .../tests/n_by_index/schema.hx | 0 .../tests/n_by_index/sensibledb.toml | 0 .../tests/negating_exists/config.hx.json | 0 .../tests/negating_exists/queries.hx | 0 .../tests/negating_exists/schema.hx | 0 .../tests/negating_exists/sensibledb.toml | 0 .../tests/nested_and_ors/config.hx.json | 0 .../tests/nested_and_ors/queries.hx | 0 .../tests/nested_and_ors/schema.hx | 0 .../tests/nested_and_ors/sensibledb.toml | 0 .../tests/nested_for_loops/config.hx.json | 0 .../tests/nested_for_loops/queries.hx | 0 .../tests/nested_for_loops/schema.hx | 0 .../tests/nested_for_loops/sensibledb.toml | 0 .../tests/nested_remappings/config.hx.json | 0 .../tests/nested_remappings/queries.hx | 0 .../tests/nested_remappings/queries.rs | 0 .../tests/nested_remappings/schema.hx | 0 .../tests/nested_remappings/sensibledb.toml | 0 .../tests/order_by/config.hx.json | 0 .../tests/order_by/queries.hx | 0 .../tests/order_by/schema.hx | 0 .../tests/order_by/sensibledb.toml | 0 .../tests/path_macros/queries.hx | 2 +- .../tests/path_macros/schema.hx | 0 .../tests/path_macros/sensibledb.toml | 0 .../tests/putts_professor/config.hx.json | 0 .../tests/putts_professor/queries.hx | 0 .../tests/putts_professor/schema.hx | 0 .../tests/putts_professor/sensibledb.toml | 0 .../tests/rerankers/queries.hx | 0 .../tests/rerankers/schema.hx | 0 .../tests/rerankers/sensibledb.toml | 0 .../schema_trailing_commas/config.hx.json | 0 .../tests/schema_trailing_commas/queries.hx | 0 .../tests/schema_trailing_commas/schema.hx | 0 .../schema_trailing_commas/sensibledb.toml | 0 .../tests/search_bm25/config.hx.json | 0 .../tests/search_bm25/file14.hx | 0 .../tests/search_bm25/schema.hx | 0 .../tests/search_bm25/sensibledb.toml | 0 .../config.hx.json | 0 .../search_v_as_assignment_and_expr/file8.hx | 0 .../search_v_as_assignment_and_expr/schema.hx | 0 .../sensibledb.toml | 0 .../tests/search_v_with_embed/config.hx.json | 0 .../tests/search_v_with_embed/queries.hx | 0 .../tests/search_v_with_embed/schema.hx | 0 .../tests/search_v_with_embed/sensibledb.toml | 0 .../tests/series/config.hx.json | 0 .../tests/series/queries.hx | 0 .../tests/series/schema.hx | 0 .../tests/series/sensibledb.toml | 0 .../tests/shortest_path/config.hx.json | 0 .../tests/shortest_path/queries.hx | 0 .../tests/shortest_path/schema.hx | 0 .../tests/shortest_path/sensibledb.toml | 0 .../tests/unique_index/config.hx.json | 0 .../tests/unique_index/queries.hx | 0 .../tests/unique_index/schema.hx | 0 .../tests/unique_index/sensibledb.toml | 0 .../tests/update/config.hx.json | 0 .../tests/update/queries.hx | 0 .../tests/update/schema.hx | 0 .../tests/update/sensibledb.toml | 0 .../tests/update_drop_then_add/config.hx.json | 0 .../tests/update_drop_then_add/file52.hx | 0 .../tests/update_drop_then_add/schema.hx | 0 .../update_drop_then_add/sensibledb.toml | 0 .../tests/update_from_var/config.hx.json | 0 .../tests/update_from_var/queries.hx | 0 .../tests/update_from_var/schema.hx | 0 .../tests/update_from_var/sensibledb.toml | 0 .../tests/upsert_operations/config.hx.json | 0 .../tests/upsert_operations/queries.hx | 0 .../tests/upsert_operations/schema.hx | 0 .../tests/upsert_operations/sensibledb.toml | 0 .../tests/user_test_1/queries.hx | 0 .../tests/user_test_1/schema.hx | 0 .../tests/user_test_1/sensibledb.toml | 0 .../tests/user_test_10/queries.hx | 0 .../tests/user_test_10/schema.hx | 0 .../tests/user_test_10/sensibledb.toml | 0 .../tests/user_test_11/queries.hx | 0 .../tests/user_test_11/schema.hx | 0 .../tests/user_test_11/sensibledb.toml | 0 .../tests/user_test_12/queries.hx | 0 .../tests/user_test_12/schema.hx | 0 .../tests/user_test_12/sensibledb.toml | 0 .../tests/user_test_13/queries.hx | 0 .../tests/user_test_13/schema.hx | 0 .../tests/user_test_13/sensibledb.toml | 0 .../tests/user_test_14/queries.hx | 0 .../tests/user_test_14/schema.hx | 0 .../tests/user_test_14/sensibledb.toml | 0 .../tests/user_test_2/queries.hx | 0 .../tests/user_test_2/schema.hx | 0 .../tests/user_test_2/sensibledb.toml | 0 .../tests/user_test_3/queries.hx | 0 .../tests/user_test_3/schema.hx | 0 .../tests/user_test_3/sensibledb.toml | 0 .../tests/user_test_4/queries.hx | 0 .../tests/user_test_4/schema.hx | 0 .../tests/user_test_4/sensibledb.toml | 0 .../tests/user_test_5/queries.hx | 0 .../tests/user_test_5/schema.hx | 0 .../tests/user_test_5/sensibledb.toml | 0 .../tests/user_test_6/queries.hx | 0 .../tests/user_test_6/schema.hx | 0 .../tests/user_test_6/sensibledb.toml | 0 .../tests/user_test_7/queries.hx | 0 .../tests/user_test_7/schema.hx | 0 .../tests/user_test_7/sensibledb.toml | 0 .../tests/user_test_8/queries.hx | 2 +- .../tests/user_test_8/schema.hx | 0 .../tests/user_test_8/sensibledb.toml | 0 .../tests/user_test_9/queries.hx | 0 .../tests/user_test_9/schema.hx | 0 .../tests/user_test_9/sensibledb.toml | 0 .../tests/where_filter/config.hx.json | 0 .../tests/where_filter/queries.hx | 0 .../tests/where_filter/schema.hx | 0 .../tests/where_filter/sensibledb.toml | 0 .../config.hx.json | 0 .../file26.hx | 0 .../schema.hx | 0 .../sensibledb.toml | 0 .../queries.hx | 0 .../where_traversal_property_access/schema.hx | 0 .../sensibledb.toml | 0 439 files changed, 683 insertions(+), 831 deletions(-) rename docs/{nexusql => sensibleql}/crud-operations.md (91%) rename docs/{nexusql => sensibleql}/overview.md (96%) rename docs/{nexusql => sensibleql}/schema-definition.md (95%) rename docs/{nexusql => sensibleql}/traversals.md (90%) rename docs/{nexusql => sensibleql}/vector-operations.md (93%) create mode 100644 sensibledb-explorer/icons/app.iconset/icon_1024x1024.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_128x128.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_128x128@2x.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_16x16.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_16x16@2x.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_256x256.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_256x256@2x.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_32x32.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_32x32@2x.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_512x512.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_512x512@2x.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_64x64.png create mode 100644 sensibledb-explorer/icons/app.iconset/icon_64x64@2x.png create mode 100644 sensibledb-explorer/icons/icon.ico rename sensibledb-explorer/src/commands/{nql.rs => sensibleql.rs} (59%) rename sensibledb-explorer/src/frontend/src/components/editor/{NqlEditor.css => SensibleQLEditor.css} (94%) rename sensibledb-explorer/src/frontend/src/components/editor/{NqlEditor.tsx => SensibleQLEditor.tsx} (87%) rename sensibledb-explorer/src/frontend/src/lib/{nl-to-nql.ts => nl-to-sensibleql.ts} (91%) rename {nql-tests => sensibleql-tests}/Cargo.lock (100%) rename {nql-tests => sensibleql-tests}/Cargo.toml (92%) rename {nql-tests => sensibleql-tests}/README.md (93%) rename {nql-tests => sensibleql-tests}/run.sh (100%) rename {nql-tests => sensibleql-tests}/src/main.rs (98%) rename {nql-tests => sensibleql-tests}/test.sh (70%) rename {nql-tests => sensibleql-tests}/tests/add_e_borrowed_ids/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/add_e_borrowed_ids/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/add_e_borrowed_ids/queries.rs (100%) rename {nql-tests => sensibleql-tests}/tests/add_e_borrowed_ids/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/add_e_borrowed_ids/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/add_n/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/add_n/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/add_n/run.sh (100%) rename {nql-tests => sensibleql-tests}/tests/add_n/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/add_n/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/add_n_unique/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/add_n_unique/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/add_n_unique/run.sh (100%) rename {nql-tests => sensibleql-tests}/tests/add_n_unique/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/add_n_unique/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/adding_chunk_to_memory/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/adding_chunk_to_memory/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/adding_chunk_to_memory/queries.rs (100%) rename {nql-tests => sensibleql-tests}/tests/adding_chunk_to_memory/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/adding_chunk_to_memory/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/aggregate/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/aggregate/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/aggregate/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/aggregate/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/all_types_of_remappings/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/all_types_of_remappings/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/all_types_of_remappings/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/astar_shortest_path/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/astar_shortest_path/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/astar_shortest_path/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/astar_shortest_path/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/basic_closure_remapping/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/basic_closure_remapping/file6.hx (100%) rename {nql-tests => sensibleql-tests}/tests/basic_closure_remapping/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/basic_closure_remapping/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/basic_object_remapping/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/basic_object_remapping/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/basic_object_remapping/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/basic_object_remapping/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/basic_search_v/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/basic_search_v/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/basic_search_v/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/basic_search_v/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/basic_traversal_methods/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/basic_traversal_methods/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/basic_traversal_methods/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/basic_traversal_methods/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/benchmarks/queries.hx (94%) rename {nql-tests => sensibleql-tests}/tests/benchmarks/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/brute_force_search_v/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/brute_force_search_v/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/brute_force_search_v/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/brute_force_search_v/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/cloud_queries/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/cloud_queries/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/cloud_queries/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/cloud_queries/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/cloud_queries_2/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/cloud_queries_2/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/cloud_queries_2/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/cloud_queries_2/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/cognee/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/cognee/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/cognee/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/companies_graph/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/companies_graph/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/companies_graph/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/companies_graph/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/companies_graph_v2/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/companies_graph_v2/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/companies_graph_v2/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/companies_graph_v2/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/complete_vector_addition_and_search/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/complete_vector_addition_and_search/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/complete_vector_addition_and_search/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/complete_vector_addition_and_search/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/contains/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/contains/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/contains/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/count/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/count/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/count/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/count/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/custom_return_objects/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/custom_return_objects/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/custom_return_objects/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/custom_return_objects/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/date_comparisons/.gitignore (100%) rename {nql-tests => sensibleql-tests}/tests/date_comparisons/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/date_comparisons/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/date_comparisons/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/date_comparisons/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/dates/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/dates/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/dates/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/default_schema_values/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/default_schema_values/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/default_schema_values/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/default_schema_values/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/demo/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/demo/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/demo/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/dijkstra_custom_weights/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/dijkstra_custom_weights/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/dijkstra_custom_weights/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/dijkstra_vs_bfs/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/dijkstra_vs_bfs/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/dijkstra_vs_bfs/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/dijkstra_vs_bfs/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_add_e/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_add_e/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_add_e/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_add_n/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_add_n/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_add_n/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_add_v/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/docs_add_v/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_add_v/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_add_v/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_aggregation/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_aggregation/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_aggregation/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_conditionals/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_conditionals/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_conditionals/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_delete/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_delete/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_delete/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_schema_definition/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_schema_definition/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_schema_definition/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_select_e/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_select_e/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_select_e/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_select_n/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_select_n/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_select_n/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_select_v/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/docs_select_v/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_select_v/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_select_v/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_shortest_path/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_shortest_path/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_shortest_path/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_social_network/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_social_network/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_social_network/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_traversal_edges/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/docs_traversal_edges/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_traversal_edges/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_traversal_edges/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_traversal_nodes/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_traversal_nodes/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_traversal_nodes/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_update/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_update/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_update/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_upsert_e/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_upsert_e/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_upsert_e/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_upsert_n/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_upsert_n/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_upsert_n/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_upsert_v/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/docs_upsert_v/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_upsert_v/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_upsert_v/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/docs_vector_search/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/docs_vector_search/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_vector_search/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/docs_vector_search/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/drop/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/drop/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/drop/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/drop/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/drop_from_search_v/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/drop_from_search_v/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/drop_from_search_v/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/drop_from_search_v/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/edge_from_node_to_vec/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/edge_from_node_to_vec/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/edge_from_node_to_vec/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/edge_from_node_to_vec/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/figoai/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/figoai/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/figoai/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/first/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/first/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/first/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/first/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/full_project/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/full_project/queries.rs (100%) rename {nql-tests => sensibleql-tests}/tests/full_project/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/full_project/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/graphiti/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/graphiti/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/graphiti/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/graphiti/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/index_with_default/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/index_with_default/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/index_with_default/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/index_with_default/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/intersect/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/intersect/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/intersect/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/is_in/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/is_in/queries.rs (100%) rename {nql-tests => sensibleql-tests}/tests/is_in/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/is_in/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/knowledge_graphs/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/knowledge_graphs/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/knowledge_graphs/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/math/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/math/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/math/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/math/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/mcp_macro/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/mcp_macro/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/mcp_macro/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/mcp_macro/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/model_macro/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/model_macro/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/model_macro/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/model_macro/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/multi_type_index_test/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/multi_type_index_test/queries.hx (95%) rename {nql-tests => sensibleql-tests}/tests/multi_type_index_test/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/multi_type_index_test/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/multiple_types/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/multiple_types/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/multiple_types/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/multiple_types/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/n_by_index/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/n_by_index/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/n_by_index/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/n_by_index/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/negating_exists/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/negating_exists/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/negating_exists/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/negating_exists/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/nested_and_ors/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/nested_and_ors/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/nested_and_ors/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/nested_and_ors/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/nested_for_loops/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/nested_for_loops/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/nested_for_loops/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/nested_for_loops/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/nested_remappings/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/nested_remappings/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/nested_remappings/queries.rs (100%) rename {nql-tests => sensibleql-tests}/tests/nested_remappings/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/nested_remappings/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/order_by/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/order_by/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/order_by/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/order_by/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/path_macros/queries.hx (89%) rename {nql-tests => sensibleql-tests}/tests/path_macros/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/path_macros/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/putts_professor/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/putts_professor/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/putts_professor/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/putts_professor/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/rerankers/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/rerankers/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/rerankers/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/schema_trailing_commas/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/schema_trailing_commas/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/schema_trailing_commas/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/schema_trailing_commas/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/search_bm25/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/search_bm25/file14.hx (100%) rename {nql-tests => sensibleql-tests}/tests/search_bm25/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/search_bm25/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/search_v_as_assignment_and_expr/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/search_v_as_assignment_and_expr/file8.hx (100%) rename {nql-tests => sensibleql-tests}/tests/search_v_as_assignment_and_expr/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/search_v_as_assignment_and_expr/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/search_v_with_embed/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/search_v_with_embed/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/search_v_with_embed/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/search_v_with_embed/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/series/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/series/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/series/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/series/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/shortest_path/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/shortest_path/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/shortest_path/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/shortest_path/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/unique_index/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/unique_index/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/unique_index/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/unique_index/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/update/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/update/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/update/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/update/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/update_drop_then_add/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/update_drop_then_add/file52.hx (100%) rename {nql-tests => sensibleql-tests}/tests/update_drop_then_add/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/update_drop_then_add/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/update_from_var/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/update_from_var/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/update_from_var/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/update_from_var/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/upsert_operations/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/upsert_operations/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/upsert_operations/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/upsert_operations/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_1/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_1/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_1/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_10/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_10/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_10/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_11/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_11/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_11/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_12/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_12/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_12/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_13/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_13/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_13/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_14/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_14/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_14/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_2/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_2/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_2/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_3/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_3/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_3/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_4/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_4/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_4/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_5/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_5/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_5/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_6/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_6/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_6/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_7/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_7/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_7/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_8/queries.hx (99%) rename {nql-tests => sensibleql-tests}/tests/user_test_8/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_8/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_9/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_9/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/user_test_9/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/where_filter/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/where_filter/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/where_filter/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/where_filter/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/where_filter_with_count_comparison/config.hx.json (100%) rename {nql-tests => sensibleql-tests}/tests/where_filter_with_count_comparison/file26.hx (100%) rename {nql-tests => sensibleql-tests}/tests/where_filter_with_count_comparison/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/where_filter_with_count_comparison/sensibledb.toml (100%) rename {nql-tests => sensibleql-tests}/tests/where_traversal_property_access/queries.hx (100%) rename {nql-tests => sensibleql-tests}/tests/where_traversal_property_access/schema.hx (100%) rename {nql-tests => sensibleql-tests}/tests/where_traversal_property_access/sensibledb.toml (100%) diff --git a/ARCHITECTURAL_GUARDRAILS.md b/ARCHITECTURAL_GUARDRAILS.md index 7a9b6bfe..8540f6b4 100644 --- a/ARCHITECTURAL_GUARDRAILS.md +++ b/ARCHITECTURAL_GUARDRAILS.md @@ -38,7 +38,7 @@ The project is organized as a Cargo workspace with the following crates: | `sensibledb-cli` | `sensibledb-cli/` | CLI tool for project management and query deployment | | `sensibledb-explorer` | `sensibledb-explorer/` | Web-based data explorer UI | | `metrics` | `metrics/` | Observability and metrics collection | -| `nql-tests` | `nql-tests/` | SensibleQL query language test suite | +| `sensibleql-tests` | `sensibleql-tests/` | SensibleQL query language test suite | --- @@ -118,7 +118,7 @@ The project is organized as a Cargo workspace with the following crates: ## 8. Testing Guardrails - **Unit tests**: Co-located with source in each crate -- **Query tests**: `nql-tests/` crate for SensibleQL validation +- **Query tests**: `sensibleql-tests/` crate for SensibleQL validation - **E2E tests**: Playwright-based in `e2e/` directory - **Metrics**: Collected via `metrics/` crate diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index a1ff4343..dfa7673a 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -126,7 +126,7 @@ The heart of SensibleDB containing all database functionality. - `analyzer/` - Type checking, validation, and diagnostics - `generator/` - Rust code generation from parsed queries -- **`grammar.pest`** - 295-line Pest grammar defining NQL syntax +- **`grammar.pest`** - 295-line Pest grammar defining SensibleQL syntax - **`protocol/`** - Wire protocol and data types @@ -232,8 +232,8 @@ sensibledb-cli/ #### `/sensibledb-macros/` - Procedural Macros Procedural macros for SensibleDB including route registration and code generation utilities. -#### `/nql-tests/` - NQL Test Suite -Test files for the Nexus Query Language (NQL). +#### `/sensibleql-tests/` - SensibleQL Test Suite +Test files for the Nexus Query Language (SensibleQL). #### `/metrics/` - Performance Metrics Performance benchmarking and metrics collection. @@ -284,7 +284,7 @@ Run Clippy to check code quality: The `clippy_check.sh` script at the repository root runs clippy with project-specific rules: - Treats warnings as errors -- Excludes `nql-tests` crate +- Excludes `sensibleql-tests` crate - Can run in dashboard mode with additional features ### Testing @@ -308,8 +308,8 @@ SensibleDB has a comprehensive test suite organized across multiple levels: - `init_tests.rs` - Project initialization - `project_tests.rs` - Project management -**NQL End-to-End Tests** -- `/nql-tests/tests/` - 54+ test directories covering: +**SensibleQL End-to-End Tests** +- `/sensibleql-tests/tests/` - 54+ test directories covering: - Graph operations (add_n, add_e, traversals) - Vector search (search_v_with_embed) - Text search (search_bm25) @@ -334,8 +334,8 @@ cargo test --workspace cargo test -p sensibledb-db cargo test -p sensibledb-cli -# Run NQL tests -cd nql-tests +# Run SensibleQL tests +cd sensibleql-tests ./test.sh # Run benchmarks diff --git a/Cargo.lock b/Cargo.lock index ed133eea..1e32ab0f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3421,7 +3421,7 @@ dependencies = [ ] [[package]] -name = "nql-tests" +name = "sensibleql-tests" version = "0.1.0" dependencies = [ "anyhow", diff --git a/Cargo.toml b/Cargo.toml index f31f02e0..883e5d7c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = [ "sensibledb-container", "sensibledb-macros", "sensibledb-cli", - "nql-tests", + "sensibleql-tests", "metrics", "sensibledb-explorer", ] diff --git a/README.md b/README.md index 28da134b..afa9ad41 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ SensibleDB/ ├── sensibledb-container/ # Docker container deployment ├── sensibledb-macros/ # Procedural macros for SensibleQL ├── metrics/ # Telemetry and metrics -├── nql-tests/ # Query language test suite +├── sensibleql-tests/ # Query language test suite ├── e2e/ # Playwright E2E tests (65 tests) └── docs/ # Documentation source ``` diff --git a/assets/sensible-db-logo.svg b/assets/sensible-db-logo.svg index 9a46efca..f2bda0bc 100644 --- a/assets/sensible-db-logo.svg +++ b/assets/sensible-db-logo.svg @@ -29,6 +29,6 @@ SensibleDB - EXPLORE YOUR DATA'S CONNECTIONS + EXPLORE YOUR DATA diff --git a/clippy_check.sh b/clippy_check.sh index c4123082..88c36cd2 100755 --- a/clippy_check.sh +++ b/clippy_check.sh @@ -1,5 +1,5 @@ -# cargo clippy --workspace --locked --exclude nql-tests --exclude metrics -- -D warnings -A clippy::too_many_arguments -A clippy::let-and-return -A clippy::module-inception -A clippy::new-ret-no-self -A clippy::wrong-self-convention -A clippy::large-enum-variant -A clippy::inherent-to-string -A clippy::inherent_to_string_shadow_display -D clippy::unwrap_used +# cargo clippy --workspace --locked --exclude sensibleql-tests --exclude metrics -- -D warnings -A clippy::too_many_arguments -A clippy::let-and-return -A clippy::module-inception -A clippy::new-ret-no-self -A clippy::wrong-self-convention -A clippy::large-enum-variant -A clippy::inherent-to-string -A clippy::inherent_to_string_shadow_display -D clippy::unwrap_used if [ "$1" = "dashboard" ]; then cargo clippy -p sensibledb-container --features dev \ @@ -14,7 +14,7 @@ if [ "$1" = "dashboard" ]; then -A clippy::inherent_to_string_shadow_display fi -cargo clippy --workspace --locked --exclude nql-tests --exclude sensibledb-cli --exclude sensibledb-explorer \ +cargo clippy --workspace --locked --exclude sensibleql-tests --exclude sensibledb-cli --exclude sensibledb-explorer \ -- -D warnings \ -A clippy::too_many_arguments \ -A clippy::let-and-return \ diff --git a/docs/INDEX.md b/docs/INDEX.md index 975a4cb9..9a489f18 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -1,449 +1,143 @@ -# SensibleDB Documentation - -## Table of Contents - -- [Getting Started](#getting-started) - - [Overview](#overview) - - [Installation](#installation) -- [SensibleQL Query Language](#sensibleql-query-language) - - [Overview](#sensibleql-overview) - - [Schema Definition](#schema-definition) - - [CRUD Operations](#crud-operations) - - [Graph Traversals](#graph-traversals) - - [Vector Operations](#vector-operations) -- [CLI Reference](#cli-reference) -- [SDKs](#sdks) -- [Features](#features) +# SensibleDB ---- - -## Getting Started - -### Overview - -SensibleDB is a high-performance **graph-vector database** built from scratch in Rust, with its own query language designed for traversing and manipulating graph and vector data efficiently. +**Embedded Graph-Vector Database for AI Applications** -SensibleDB makes it easy to build all components needed for an AI application in a single platform. You no longer need a separate application DB, vector DB, graph DB, or application layers. Just use SensibleDB. +SensibleDB is a unified database that makes it easy to build all the components needed for an AI application in a single platform. You no longer need a separate application DB, vector DB, graph DB, or application layers managing multiple storage locations. -#### Key Features +Built in Rust with LMDB as its storage engine — like SQLite for knowledge graphs. -- **Built-in MCP Tools** — AI agents can discover data and walk the graph autonomously -- **Built-in Embeddings** — Use `Embed()` to vectorize text directly in queries -- **RAG Tooling** — Vector search, keyword search (BM25), and graph traversals -- **Secure by Default** — Private by default, accessible only through compiled queries -- **Ultra-Low Latency** — Rust + LMDB for near-zero overhead access -- **Type-Safe Queries** — 100% type-safe with compile-time validation - -#### Multi-Model Support +--- -| Model | Description | Use Case | -|-------|-------------|----------| -| **Graph** | Native node/edge with traversals | Knowledge graphs, social networks | -| **Vector** | Cosine similarity with embeddings | Semantic search, RAG | -| **KV** | Simple key-value lookups | Caching, configuration | -| **Document** | Flexible schema documents | Content management | -| **Relational** | Table-based queries with joins | Traditional data relationships | +## Why SensibleDB? -### Installation +| Before SensibleDB | With SensibleDB | +|---|---| +| PostgreSQL for app data | **One database** handles everything | +| Pinecone / Weaviate for vectors | Graph + vector + embedded in a single engine | +| Neo4j for graph relationships | Type-safe queries with compile-time validation | +| Custom auth & access layers | Secure by default — access only through compiled SensibleQL | -#### Prerequisites +## Key Features -- **Rust** 1.75.0 or higher -- **Docker Desktop** (for local development) -- **LMDB** system library +- **Built-in MCP Tools** — AI agents discover data and walk the graph instead of generating SQL +- **Built-in Embeddings** — Vectorize text directly in queries with `Embed()` +- **RAG Tooling** — Vector search, keyword search, and graph traversals out of the box +- **Secure by Default** — Private by default; access only through compiled SensibleQL queries +- **Ultra-Low Latency** — Rust + LMDB storage engine for extreme performance +- **Type-Safe Queries** — SensibleQL is 100% type-safe, catch errors at compile time +- **Embedded Mode** — Zero external dependencies, use directly in Rust applications +- **Visual Explorer** — Interactive graph visualization, natural language chat, and report generation -```bash -# Install Rust -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +--- -# Install LMDB -brew install lmdb # macOS -apt install liblmdb-dev # Ubuntu/Debian -pacman -S lmdb # Arch Linux -``` +## Quick Start -#### Step 1: Install NexusCLI +### 1. Install the CLI ```bash curl -sSL "https://install.sensibledb-db.com" | bash -nexus --version ``` -#### Step 2: Initialize a Project +### 2. Initialize a Project ```bash mkdir my-project && cd my-project -nexus init +sensibledb init ``` -Creates: -``` -my-project/ -├── sensibledb.toml # Project configuration -├── db/ -│ ├── schema.hx # Schema definitions -│ └── queries.hx # Query definitions -└── .sensibledb/ # Build artifacts -``` +### 3. Write Your Schema & Queries -#### Step 3: Write Schema and Queries +Open the generated `.hx` file and define your schema: -**schema.hx:** -```nql +```sensibleql N::User { INDEX name: String, - email: String, - created_at: Date DEFAULT NOW + age: U32 } -E::Follows { - From: User, - To: User, - Properties: { - since: Date - } +E::FRIENDS { + from: User, + to: User } -``` -**queries.hx:** -```nql -QUERY createUser(name: String, email: String) => - user <- AddN({name: name, email: email}) +QUERY getUser(user_name: String) => + user <- N({name: user_name}) RETURN user -QUERY getUser(name: String) => - user <- N({name: name}) - RETURN user - -QUERY getUserFollowers(user_id: ID) => - followers <- N(user_id)::In - RETURN followers +QUERY getFriends(user_id: U64) => + user <- N({id: user_id}) + friends <- TRAVERSE user -[FRIENDS]-> friend + RETURN friend ``` -#### Step 4: Check and Deploy +### 4. Deploy ```bash -nexus check # Validate compilation -nexus push dev # Deploy locally +sensibledb push dev ``` -#### Step 5: Test +### 5. Use in Your Application -```bash -curl -X POST http://localhost:6969/createUser \ - -H 'Content-Type: application/json' \ - -d '{"name": "John", "email": "john@example.com"}' - -curl -X POST http://localhost:6969/getUser \ - -H 'Content-Type: application/json' \ - -d '{"name": "John"}' -``` - ---- - -## SensibleQL Query Language - -### Overview - -SensibleQL is a **strongly typed, compiled query language** for SensibleDB that combines the best features of Gremlin, Cypher, and Rust. - -#### Why SensibleQL? - -| Feature | SensibleQL | Gremlin | Cypher | -|---------|---------|---------|--------| -| Type Safety | Compile-time | Runtime | Runtime | -| Syntax | Clean, concise | Verbose | Readable | -| Performance | Compiled | Interpreted | Interpreted | -| IDE Support | Autocomplete | Limited | Limited | -| Vector Support | Built-in | External | External | - -#### Query Structure - -```nql -QUERY QueryName(param1: Type, param2: Type) => - result <- traversal_expression - RETURN result -``` - -| Component | Description | -|-----------|-------------| -| `QUERY` | Start query definition | -| `QueryName` | Query identifier (becomes API endpoint) | -| `param: Type` | Typed input parameters | -| `=>` | Separates header from body | -| `<-` | Assignment operator | -| `RETURN` | Output values | - -### Schema Definition - -#### Node Schema - -```nql -N::User { - INDEX name: String, - email: String, - age: U32, - created_at: Date DEFAULT NOW -} -``` - -#### Edge Schema - -```nql -E::Follows { - From: User, - To: User, - Properties: { - since: Date - } -} -``` - -#### Supported Types - -| Type | Description | Example | -|------|-------------|---------| -| `String` | UTF-8 text | `"hello"` | -| `I32`, `I64` | Signed integers | `42` | -| `U8`, `U32`, `U64` | Unsigned integers | `42` | -| `F32`, `F64` | Floating point | `3.14` | -| `Boolean` | True/false | `true` | -| `Date` | Timestamp | `NOW` | -| `ID` | Unique identifier | Auto-generated | -| `Vector` | Float array | `[0.1, 0.2, ...]` | - -### CRUD Operations - -#### Create - -```nql -QUERY createUser(name: String, email: String) => - user <- AddN({name: name, email: email}) - RETURN user - -QUERY followUser(from_id: ID, to_id: ID, since: Date) => - edge <- AddE({since: since})::From(from_id)::To(to_id) - RETURN edge -``` - -#### Read - -```nql -QUERY getUser(name: String) => - user <- N({name: name}) - RETURN user - -QUERY getAllUsers() => - users <- N() - RETURN users -``` - -#### Update - -```nql -QUERY updateUserEmail(user_id: ID, email: String) => - updated <- N(user_id)::Update({email: email}) - RETURN updated -``` - -#### Delete - -```nql -QUERY deleteUser(user_id: ID) => - N(user_id)::Drop - RETURN "Deleted" -``` - -### Graph Traversals - -#### `::Out` — Outgoing Nodes - -```nql -QUERY GetUserFollowing(user_id: ID) => - following <- N(user_id)::Out - RETURN following -``` - -#### `::In` — Incoming Nodes - -```nql -QUERY GetUserFollowers(user_id: ID) => - followers <- N(user_id)::In - RETURN followers -``` - -#### `::OutE` — Outgoing Edges - -```nql -QUERY GetFollowingEdges(user_id: ID) => - edges <- N(user_id)::OutE - RETURN edges -``` - -#### `::InE` — Incoming Edges - -```nql -QUERY GetFollowerEdges(user_id: ID) => - edges <- N(user_id)::InE - RETURN edges -``` - -#### Chaining Traversals - -```nql -QUERY GetFriendsOfFriends(user_id: ID) => - fof <- N(user_id)::Out::Out - RETURN fof -``` - -#### Shortest Path - -```nql -QUERY FindPath(from_id: ID, to_id: ID) => - path <- N(from_id)::ShortestPath(to_id)> - RETURN path -``` - -### Vector Operations - -#### Vector Similarity Search - -```nql -QUERY searchSimilar(query_vec: [F32], limit: U32) => - results <- SearchV
({vector: query_vec, limit: limit}) - RETURN results -``` - -#### Automatic Embeddings - -```nql -QUERY searchArticles(query: String) => - results <- SearchV
({vector: Embed(query), limit: 10}) - RETURN results -``` - -#### Keyword Search (BM25) - -```nql -QUERY keywordSearch(query: String) => - results <- SearchBM25
({fields: ["title", "content"], query: query}) - RETURN results -``` - -#### Hybrid Search with RRF - -```nql -QUERY hybridSearch(query: String) => - vector_results <- SearchV
({vector: Embed(query), limit: 20}) - keyword_results <- SearchBM25
({fields: ["title"], query: query}) - combined <- vector_results::RRF(keyword_results) - RETURN combined -``` - -#### MMR Reranking - -```nql -QUERY diverseResults(query: String) => - results <- SearchV
({vector: Embed(query), limit: 50}) - diverse <- results::MMR({diversity: 0.5, limit: 10}) - RETURN diverse -``` - ---- - -## CLI Reference - -### Commands - -| Command | Description | -|---------|-------------| -| `nexus init` | Initialize a new project | -| `nexus check` | Validate schema and queries | -| `nexus push dev` | Deploy to local instance | -| `nexus status` | Show instance status | -| `nexus start ` | Start an instance | -| `nexus stop ` | Stop an instance | -| `nexus logs` | Stream instance logs | -| `nexus prune` | Clean up unused resources | -| `nexus update` | Update CLI to latest version | - -### Configuration (sensibledb.toml) - -```toml -[project] -name = "my-project" -build_mode = "debug" - -[vector] -dimensions = 384 -metric = "cosine" - -[instance] -name = "dev-instance" -port = 6969 -``` - ---- - -## SDKs - -### TypeScript - -```bash -npm install sensible-ts -``` +**TypeScript:** ```typescript import SensibleDB from "sensible-ts"; + const client = new SensibleDB(); -const user = await client.query("getUser", { name: "John" }); -``` -### Python +// Create a user +await client.query("addUser", { name: "John", age: 30 }); -```bash -pip install sensible-py +// Query with type safety +const user = await client.query("getUser", { user_name: "John" }); ``` +**Python:** + ```python -from nexus import Client -client = Client(local=True, port=6969) -user = client.query("getUser", {"name": "John"}) -``` +from sensibledb import SensibleDB -### Rust (Embedded) +client = SensibleDB() -```toml -[dependencies] -sensibledb-db = { version = "1.3", features = ["embedded"] } +# Query the database +user = client.query("getUser", user_name="John") +print(user) ``` +**Rust (Embedded):** + ```rust use sensibledb_db::embedded::{Database, Node}; + let db = Database::open("./my_db")?; +let mut tx = db.write_transaction()?; + +tx.put_node(Node { + id: 1, + label: "User".into(), +})?; + +tx.commit()?; ``` --- -## Features - -### Built-in MCP Tools -AI agents can discover data and walk the graph autonomously, constructing queries based on graph topology. +## Documentation -### Built-in Embeddings -Use `Embed()` directly in queries — no external embedding service needed. +| Section | Description | +|---|---| +| [Getting Started](getting-started/intro.md) | Installation and setup | +| [SensibleQL](sensibleql/overview.md) | Query language reference | +| [CLI](cli/getting-started.md) | Command-line tool guide | +| [SDKs](sdks/overview.md) | TypeScript, Python, and Rust SDKs | +| [Features](features/overview.md) | Full feature overview | -### RAG Tooling -Vector search, BM25 keyword search, graph traversals, hybrid search with RRF, and MMR reranking. +--- -### Security -Private by default. Data accessible only through compiled SensibleQL queries. Type-safe queries prevent injection attacks. +## License -### Ultra-Low Latency -Rust + LMDB memory-mapped B-trees for near-zero overhead access. +SensibleDB is licensed under the AGPL (Affero General Public License). -### Type-Safe Queries -Compile-time validation catches errors before production. IDE support with autocomplete. +## Commercial Support -### Multi-Model -Graph, vector, KV, document, and relational — all in one database. +SensibleDB is available as a managed service for selected users. For enterprise support or managed deployment, [contact us](mailto:founders@sensibledb-db.com). diff --git a/docs/architecture/diagrams/system-context.mmd b/docs/architecture/diagrams/system-context.mmd index 2fe3ef01..0656cf1a 100644 --- a/docs/architecture/diagrams/system-context.mmd +++ b/docs/architecture/diagrams/system-context.mmd @@ -4,7 +4,7 @@ title: SensibleDB - System Context Diagram (C4 Level 1) graph TB subgraph External["External Systems"] - Developer["👤 Developer
Writes NexusQL schemas & queries"] + Developer["👤 Developer
Writes SensibleQL schemas & queries"] AIApp["🤖 AI Application
RAG, Agents, LLM Apps"] MCPClient["🔧 MCP Client
AI Agent Tool Discovery"] end diff --git a/docs/design/explorer-redesign.md b/docs/design/explorer-redesign.md index 125f1d0d..a62d2f78 100644 --- a/docs/design/explorer-redesign.md +++ b/docs/design/explorer-redesign.md @@ -415,7 +415,7 @@ Step 4: Processing | Label/Type | Type | "What kind of item this is" | | Vector Embedding | Similarity | "Items that are alike are grouped together" | | Graph Traversal | Follow connections | "Starting from one item, see what it connects to" | -| NQL Query | Ask a question | "A way to ask your data questions" | +| SensibleQL Query | Ask a question | "A way to ask your data questions" | | Schema | Structure | "The blueprint of how your data is organized" | ### 6.2 Contextual Tooltips @@ -539,7 +539,7 @@ Every technical term gets a `?` icon that shows: ### Phase 1: Foundation (Week 1) - [ ] Design system tokens (CSS variables) ✅ started - [ ] Consistent component styles (buttons, inputs, cards) -- [ ] Fix NQL query execution (camelCase params) ✅ done +- [ ] Fix SensibleQL query execution (camelCase params) ✅ done - [ ] Graph interaction (zoom, pan, drag, select) ✅ done ### Phase 2: Home & Onboarding (Week 2) @@ -550,7 +550,7 @@ Every technical term gets a `?` icon that shows: ### Phase 3: Chat Interface (Week 3) - [ ] Chat view with conversation history -- [ ] Natural language to NQL translation (local) +- [ ] Natural language to SensibleQL translation (local) - [ ] Streaming response display - [ ] Follow-up question suggestions @@ -585,4 +585,4 @@ Every technical term gets a `?` icon that shows: | Query success rate | > 90% | % of queries that return results vs errors | | User retention (7-day) | > 60% | Analytics: returning users / total users | | Support tickets | < 5/week | Track user-reported issues | -| NQL usage vs Chat | < 30% NQL | Migration to natural language interface | +| SensibleQL usage vs Chat | < 30% SensibleQL | Migration to natural language interface | diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md index d5674c2e..a53cb7bd 100644 --- a/docs/getting-started/installation.md +++ b/docs/getting-started/installation.md @@ -25,7 +25,7 @@ nexus init ### 3. Write Schema and Queries **schema.hx:** -```nql +```sensibleql N::User { INDEX name: String, email: String, @@ -40,7 +40,7 @@ E::Follows { ``` **queries.hx:** -```nql +```sensibleql QUERY createUser(name: String, email: String) => user <- AddN({name: name, email: email}) RETURN user diff --git a/docs/nexusql/crud-operations.md b/docs/sensibleql/crud-operations.md similarity index 91% rename from docs/nexusql/crud-operations.md rename to docs/sensibleql/crud-operations.md index 52351ceb..09cc18e4 100644 --- a/docs/nexusql/crud-operations.md +++ b/docs/sensibleql/crud-operations.md @@ -2,7 +2,7 @@ ## Create -```nql +```sensibleql QUERY createUser(name: String, email: String) => user <- AddN({name: name, email: email}) RETURN user @@ -14,7 +14,7 @@ QUERY followUser(from_id: ID, to_id: ID, since: Date) => ## Read -```nql +```sensibleql QUERY getUser(name: String) => user <- N({name: name}) RETURN user @@ -22,7 +22,7 @@ QUERY getUser(name: String) => ## Update -```nql +```sensibleql QUERY updateUserEmail(user_id: ID, email: String) => updated <- N(user_id)::Update({email: email}) RETURN updated @@ -30,7 +30,7 @@ QUERY updateUserEmail(user_id: ID, email: String) => ## Delete -```nql +```sensibleql QUERY deleteUser(user_id: ID) => N(user_id)::Drop RETURN "Deleted" diff --git a/docs/nexusql/overview.md b/docs/sensibleql/overview.md similarity index 96% rename from docs/nexusql/overview.md rename to docs/sensibleql/overview.md index 755f9a97..48617f3f 100644 --- a/docs/nexusql/overview.md +++ b/docs/sensibleql/overview.md @@ -12,7 +12,7 @@ SensibleQL is a **strongly typed, compiled query language** for SensibleDB. ## Query Structure -```nql +```sensibleql QUERY QueryName(param1: Type, param2: Type) => result <- traversal_expression RETURN result @@ -20,7 +20,7 @@ QUERY QueryName(param1: Type, param2: Type) => ## Example -```nql +```sensibleql N::User { INDEX name: String, age: U32 diff --git a/docs/nexusql/schema-definition.md b/docs/sensibleql/schema-definition.md similarity index 95% rename from docs/nexusql/schema-definition.md rename to docs/sensibleql/schema-definition.md index 88dabd7e..420320d5 100644 --- a/docs/nexusql/schema-definition.md +++ b/docs/sensibleql/schema-definition.md @@ -2,7 +2,7 @@ ## Node Schema -```nql +```sensibleql N::User { INDEX name: String, email: String, @@ -13,7 +13,7 @@ N::User { ## Edge Schema -```nql +```sensibleql E::Follows { From: User, To: User, diff --git a/docs/nexusql/traversals.md b/docs/sensibleql/traversals.md similarity index 90% rename from docs/nexusql/traversals.md rename to docs/sensibleql/traversals.md index 75cbccb9..5ce5018c 100644 --- a/docs/nexusql/traversals.md +++ b/docs/sensibleql/traversals.md @@ -2,7 +2,7 @@ ## Out - Outgoing Nodes -```nql +```sensibleql QUERY GetUserFollowing(user_id: ID) => following <- N(user_id)::Out RETURN following @@ -10,7 +10,7 @@ QUERY GetUserFollowing(user_id: ID) => ## In - Incoming Nodes -```nql +```sensibleql QUERY GetUserFollowers(user_id: ID) => followers <- N(user_id)::In RETURN followers @@ -18,7 +18,7 @@ QUERY GetUserFollowers(user_id: ID) => ## OutE - Outgoing Edges -```nql +```sensibleql QUERY GetFollowingEdges(user_id: ID) => edges <- N(user_id)::OutE RETURN edges @@ -26,7 +26,7 @@ QUERY GetFollowingEdges(user_id: ID) => ## InE - Incoming Edges -```nql +```sensibleql QUERY GetFollowerEdges(user_id: ID) => edges <- N(user_id)::InE RETURN edges @@ -34,7 +34,7 @@ QUERY GetFollowerEdges(user_id: ID) => ## Chaining -```nql +```sensibleql QUERY GetFriendsOfFriends(user_id: ID) => fof <- N(user_id)::Out::Out RETURN fof @@ -42,7 +42,7 @@ QUERY GetFriendsOfFriends(user_id: ID) => ## Shortest Path -```nql +```sensibleql QUERY FindPath(from_id: ID, to_id: ID) => path <- N(from_id)::ShortestPath(to_id)> RETURN path diff --git a/docs/nexusql/vector-operations.md b/docs/sensibleql/vector-operations.md similarity index 93% rename from docs/nexusql/vector-operations.md rename to docs/sensibleql/vector-operations.md index 30d2dd9c..e79ae656 100644 --- a/docs/nexusql/vector-operations.md +++ b/docs/sensibleql/vector-operations.md @@ -2,7 +2,7 @@ ## Vector Similarity Search -```nql +```sensibleql QUERY searchSimilar(query_vec: [F32], limit: U32) => results <- SearchV
({vector: query_vec, limit: limit}) RETURN results @@ -10,7 +10,7 @@ QUERY searchSimilar(query_vec: [F32], limit: U32) => ## Automatic Embeddings -```nql +```sensibleql QUERY searchArticles(query: String) => results <- SearchV
({vector: Embed(query), limit: 10}) RETURN results @@ -18,7 +18,7 @@ QUERY searchArticles(query: String) => ## Keyword Search (BM25) -```nql +```sensibleql QUERY keywordSearch(query: String) => results <- SearchBM25
({fields: ["title", "content"], query: query}) RETURN results @@ -26,7 +26,7 @@ QUERY keywordSearch(query: String) => ## Hybrid Search with RRF -```nql +```sensibleql QUERY hybridSearch(query: String) => vector_results <- SearchV
({vector: Embed(query), limit: 20}) keyword_results <- SearchBM25
({fields: ["title"], query: query}) diff --git a/e2e/chat-view.spec.ts b/e2e/chat-view.spec.ts index f605eb9a..e1ced9dd 100644 --- a/e2e/chat-view.spec.ts +++ b/e2e/chat-view.spec.ts @@ -59,12 +59,12 @@ test.describe('Chat Interface', () => { await expect(page.locator('.follow-up-chips')).toBeVisible(); }); - test('"How did I get this?" expandable shows NQL query', async ({ page }) => { + test('"How did I get this?" expandable shows SensibleQL query', async ({ page }) => { const input = page.locator('.chat-input-area input'); await input.fill('What data do I have?'); await page.getByRole('button', { name: 'Send' }).click(); await expect(page.locator('.chat-message.assistant').last()).toBeVisible({ timeout: 5000 }); - const nqlToggle = page.locator('.nql-toggle-btn'); - await expect(nqlToggle).toBeVisible(); + const sensibleqlToggle = page.locator('.sensibleql-toggle-btn'); + await expect(sensibleqlToggle).toBeVisible(); }); }); diff --git a/e2e/fixtures.ts b/e2e/fixtures.ts index 3cabfb2e..d7ac189d 100644 --- a/e2e/fixtures.ts +++ b/e2e/fixtures.ts @@ -83,7 +83,7 @@ export async function injectTauriMock(page: Page) { return 'deleted'; case 'schema_get': return mockData.schema; - case 'nql_execute': { + case 'sensibleql_execute': { const query = (args?.query || '').trim().toUpperCase(); if (query.includes('COUNT') && query.includes('NODE')) { return { success: true, message: `Found ${mockData.nodes.length} nodes`, data: { nodes: mockData.nodes, edges: [] } }; diff --git a/e2e/onboarding-and-polish.spec.ts b/e2e/onboarding-and-polish.spec.ts index 57bf1082..1ce4c295 100644 --- a/e2e/onboarding-and-polish.spec.ts +++ b/e2e/onboarding-and-polish.spec.ts @@ -71,15 +71,15 @@ test.describe('Design System', () => { }); }); -test.describe('NQL Editor', () => { +test.describe('SensibleQL Editor', () => { test.beforeEach(async ({ page }) => { await page.goto('/'); - await page.getByRole('button', { name: 'NQL Editor' }).first().click(); + await page.getByRole('button', { name: 'SensibleQL Editor' }).first().click(); await page.waitForTimeout(500); }); - test('renders NQL editor', async ({ page }) => { - await expect(page.locator('.nql-editor')).toBeVisible(); + test('renders SensibleQL editor', async ({ page }) => { + await expect(page.locator('.sensibleql-editor')).toBeVisible(); }); test('displays sample queries', async ({ page }) => { diff --git a/mkdocs.yml b/mkdocs.yml index 12f2f7a9..52d95f2b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -43,6 +43,7 @@ markdown_extensions: - pymdownx.details nav: + - Home: index.md - Getting Started: - Overview: getting-started/intro.md - Installation: getting-started/installation.md diff --git a/sensibledb-cli/src/github_issue.rs b/sensibledb-cli/src/github_issue.rs index 2237b551..1c26e43e 100644 --- a/sensibledb-cli/src/github_issue.rs +++ b/sensibledb-cli/src/github_issue.rs @@ -53,8 +53,8 @@ impl GitHubIssueBuilder { /// Build the GitHub issue URL with query parameters. pub fn build_url(&self) -> String { let title = match &self.first_error { - Some(error) => format!("bug (nql): rust generation failure - {}", error), - None => "bug (nql): rust generation failure".to_string(), + Some(error) => format!("bug (sensibleql): rust generation failure - {}", error), + None => "bug (sensibleql): rust generation failure".to_string(), }; // URL encode the fixed parameters diff --git a/sensibledb-db/src/sensibledbc/generator/queries.rs b/sensibledb-db/src/sensibledbc/generator/queries.rs index d07482c7..30601075 100644 --- a/sensibledb-db/src/sensibledbc/generator/queries.rs +++ b/sensibledb-db/src/sensibledbc/generator/queries.rs @@ -300,7 +300,7 @@ impl Query { } } else if struct_def.is_collection { // Collection - generate mapping code - // Use NQL closure param name if available, otherwise fall back to singular form + // Use SensibleQL closure param name if available, otherwise fall back to singular form let singular_var = struct_def .closure_param_name .as_deref() @@ -1310,7 +1310,7 @@ impl Query { )?; } else if struct_def.is_collection { // Collection - generate mapping code - // Use NQL closure param name if available, otherwise fall back to singular form + // Use SensibleQL closure param name if available, otherwise fall back to singular form let singular_var = struct_def .closure_param_name .as_deref() diff --git a/sensibledb-db/src/sensibledbc/generator/return_values.rs b/sensibledb-db/src/sensibledbc/generator/return_values.rs index 2f10c2d4..4e066b29 100644 --- a/sensibledb-db/src/sensibledbc/generator/return_values.rs +++ b/sensibledb-db/src/sensibledbc/generator/return_values.rs @@ -53,7 +53,7 @@ pub struct ReturnValueStruct { pub field_infos: Vec, // Original field info for nested struct generation pub aggregate_properties: Vec, // Properties to group by (for closure-style aggregates) pub is_count_aggregate: bool, // True for COUNT mode aggregates - pub closure_param_name: Option, // NQL closure parameter name (e.g., "e" from entries::|e|) + pub closure_param_name: Option, // SensibleQL closure parameter name (e.g., "e" from entries::|e|) pub is_primitive: bool, // True for Count/Boolean/Scalar - emit variable directly pub primitive_literal_value: Option>, // For primitives with field access (e.g., user::ID) } diff --git a/sensibledb-db/src/sensibledbc/generator/traversal_steps.rs b/sensibledb-db/src/sensibledbc/generator/traversal_steps.rs index e85950a2..5d859658 100644 --- a/sensibledb-db/src/sensibledbc/generator/traversal_steps.rs +++ b/sensibledb-db/src/sensibledbc/generator/traversal_steps.rs @@ -140,7 +140,7 @@ pub struct Traversal { pub excluded_fields: Vec, pub nested_traversals: std::collections::HashMap, pub is_reused_variable: bool, - pub closure_param_name: Option, // NQL closure parameter name (e.g., "e" from entries::|e|) + pub closure_param_name: Option, // SensibleQL closure parameter name (e.g., "e" from entries::|e|) /// Maps output field name -> source property name for renamed fields /// e.g., "post" -> "content" for `post: content`, "file_id" -> "ID" pub field_name_mappings: std::collections::HashMap, diff --git a/sensibledb-db/src/sensibledbc/parser/README.md b/sensibledb-db/src/sensibledbc/parser/README.md index b10640d8..ebb75b6f 100644 --- a/sensibledb-db/src/sensibledbc/parser/README.md +++ b/sensibledb-db/src/sensibledbc/parser/README.md @@ -7,7 +7,7 @@ The parser module transforms SensibleQL source code into an Abstract Syntax Tree ### Core Components - **`mod.rs`** - Main parser entry point, orchestrates parsing of schemas, queries, and migrations -- **`grammar.pest`** - Pest grammar defining NQL syntax rules +- **`grammar.pest`** - Pest grammar defining SensibleQL syntax rules - **`types.rs`** - AST node definitions and data structures - **`location.rs`** - Location tracking for error reporting @@ -24,7 +24,7 @@ The parser module transforms SensibleQL source code into an Abstract Syntax Tree ## Parsing Flow -1. **Input**: NQL files containing schemas, queries, and migrations +1. **Input**: SensibleQL files containing schemas, queries, and migrations 2. **Lexing**: Pest tokenizes input according to `grammar.pest` rules 3. **AST Construction**: - Schemas parsed first (establishing type definitions) diff --git a/sensibledb-explorer/icons/128x128.png b/sensibledb-explorer/icons/128x128.png index 2243a78199cae2821536b0a3d69d56f41c7a12d9..ff1585363d1ebd3b25a294cd5b240e7dde93b2e3 100644 GIT binary patch literal 4303 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 delta 1357 zcmai!SyU2u6vqE-f`As_k_)9oWSYxVE~P1&mR5>o<(7fD=7vj7SSVOMqXh&^C$-|U1mJH3j%-h_Td(QXWr+dENH*6|F7jEVtC|>Ta z$5`cy72a2lM;H&>UbWQ=dg-p6?)ehg9nJ{Fgurt{cQwcP8`X#|xgv@ZCW85%=GA87 z9v%-5=3{@-iwHf!fQ1(2Z%?_i3&%@YI*>1To1*=ubagqyWte#`$1z9Ytde{d%G2g1 z9BC#Qw30r#WjC z1nZWLL`vupujS0bBYAtx8oi3LfgR?FP8$aI5IAG#loPmWf=O*PJ+CDE%6{$!G@YV> z%hER)=qc6=%&uC295r)Z|H&as227E5R(Ck57pL}62m6sdMs#0jwjR&Y%`j@cAJsFH zKd^FR>M_hlf71t-j25VJBil?l)LjP5GjQ}Y7LM94FDN)!j;Wfq<}I+x(N)vyE|Y`Zga|MQj7l3w?v-{||z=icB(>{UIY4N zT?(W=+GU&-t5sG<5Lg>S3?X2uj6SBEU!9h~D+R(#iz^+ujc~x#Ul-+|I>$6GIeDs^ zu(IrfI13#LnP;fB21=uLF2wL-wL)|N3IVt@+Ji({{q(U9vLQGHCC6@4Yw0;VI74%W z-CEamo!t1|hb_8FT^w19(Mjg4=zTJ8tKsAx>L)2em^zqR$xRd!9m<-lp#No31LX$hL# zwM99_BDj<%SbrT5c_j=hM&4K(?)K?~$s8E70j6R1V72YqC?dx%Emobt2Ji7 zo_{c$fkqp)=D%l;LPTvOu7FF7d)K5*<=H}BA%;#{(C!kc_>%5O-Yux8&5A4NQb&8( z3t0%Sk&^7A{J7)|+Wu*0w5U8k^}R-KgwG2{E;+#X&1Y6AlO;?5#PgfM&5uOC9HaaD(~q&{Dz)re-{R;Q~pizZ}HtV8;gRqSsMY_ep?}+HZd08gthdH9;R{fY Mmxqsgvl}DpZ;~EYhyVZp diff --git a/sensibledb-explorer/icons/128x128@2x.png b/sensibledb-explorer/icons/128x128@2x.png index dbd4d9079c5ace5903102b89f9bbd7c27ee549e1..3e087d83a33f0f27b37f786ff7be20d64bead092 100644 GIT binary patch literal 9481 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 diff --git a/sensibledb-explorer/icons/32x32.png b/sensibledb-explorer/icons/32x32.png index 3731e51aaefd2a2f4f9eb3970a6f6a3a0adf10fc..5098faf4c1628120593438d8c61bf275f60a6119 100644 GIT binary patch delta 992 zcmV<610Ve50`&)wBYyw}VoOIv0RI600RN!9r;`8x1FA_xK~z|U#aG{J990zl&dp{+ zX6R-^2pb~}mJ-32G{P1lTaX4!v_|kn3JnSw!;X3Iv9Cpa^bauX5-Vc#%?GWOrnE%+ z16l}eh_nwaMcNfslBS(qnO(cd&hcSqx;N>aADM#vo_6n??|+OIK4`_t7{>h&Tyo$=ZYz8~}3FT5TeZ zufPNh!yYsYdoYgUsC?xSpsfN?*Tj|2am!JtiVT~)L!m%w*FF?B&g#svshO- zdKz5t0G#dX?G=9ds{@I_Vo@*4_Rmy62&cI-IPK}G5OK4eHX-byDW86vuUrOjr2Uvd z;MIj<`t>MD%;v3|3>pQITL1>Ym%c8h-`s7hdO zf@qBhtL^IZC32e6D*M3tn5LZtfI>lEF-$8-2Y^(!e&JFlkj#Xc*E10@}| zhpV{t>Ob&~1LQ2J7(xC85U%YqayQb8!}s+kf9|)j(c8dgx`BH`HV)p`|9$Ivzf$jm z{3m210Kcer-GX6SSt`+ZIa5Er(c74Yd*++HPtF~>v+vu1a`(HlbCq?KPWbr`(E%sp z{(pQRi;R2Kev)m^wGv#1Lo>5;6)ep6T$A~JF+%16%C(G~RS>N~VBSv!Js75y6%d~? zJEMRYakuh(^8kZJ0gQwN2U=pq>>L7UMA}~5dBAJOt;@ETd4O7p!|j9sV$B0B@?I{t zHxIDH542Y;w&wvEJNtQ1?})VNlAqGEGE|>L^*&Ii%E3|!8AaL<;3X6>i|kEC&nC{4xpChgv=Z8Y>3qX)b>3- zbIA$;Jy|A(!?m0Yy0QrEG1e>$k(Q(vD;N$S*7pzJ{AVckWPfE~WhTu+bo0qh1CQVS zV>oi_A49ASE4fBc<^To;28M-)e>2#tGchQLG7gLbe*a})=-cs|q1>B|fr(5vP@D}f zKKjRS|MfoxFMYD=HR_ZD)Asyf;AA6DFImpM^!OjcrN_VE{4YQMGx+!aAj<(5AwX(< zPAWh*e{dGXv_uL8Y~~Km5MW@SekkBF4{r!i%Mtj@As7XeI)ae?q0uTP#UV897tjI> d-fT!O001<(TtWSa+m-+T002ovPDHLkV1h#*lHvdW diff --git a/sensibledb-explorer/icons/app.iconset/icon_1024x1024.png b/sensibledb-explorer/icons/app.iconset/icon_1024x1024.png new file mode 100644 index 0000000000000000000000000000000000000000..14853cbe74c55f1b0bb42029fe651d20dc33fdb9 GIT binary patch literal 43251 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 DWT{mh literal 0 HcmV?d00001 diff --git a/sensibledb-explorer/icons/app.iconset/icon_128x128.png b/sensibledb-explorer/icons/app.iconset/icon_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1585363d1ebd3b25a294cd5b240e7dde93b2e3 GIT binary patch literal 4303 zcmXX~2{hDE7yr)~jGb(QEFnvlQTA+;ean(H+l+lTM79`%gvgS}P9j+%vSph=QHZQ% zUlPeWS+Wh^^nKrX=e_&RJ@0qkJ@?&n@9(}u6C)iuYEEhZ0O<5|HSdrl_TPk3kk%em z#{rU{a5B)*1TOxK;*RnR0APHmr+LdfG=HlgDvjl5P9M%VWH@!+K3ERg-(3T{dxswq zm?%o95jO~Yp+Cs_Tuns0@s3qJZ90vsWLAt|A(@S~__C=3LYmUN|4d51Y^aUq!}5^1 zmhnq%NuI~q;Cn9YQ>?RbL`AixwxUyKH&k{(;W{sRI4E_mqQom_8?*2?tO$)m|DD-6 zZAWAX-OiQq94*x&ZB*?|I%rJ19qc~dE6VL;y19U2Tm=E3a@~^VzS@+|blo)5og0%+ zjh_I8^Z4}5~=#L$V?)!PPtlTg8kZ)y{26QqJi6RsvbzdXre zbNn@RBEunTfI+4mXj;h09lnI4LZy5$pbSdP@(nlI+AFcc+^P%#wXdwxU3N^o;65y1 z01E26;8!gJtb^X4X=>2$1xg{=ch8JY zoq;fdQbX7A-StM{KDD8E!CTeR<^Vx<2#o>iK6V|)xF7AgX~lJ(Z% zaecK08oZZ=7sooZ2&>k!qI4uINRM+r(Xx9=W7gA?8i{;fDk>ay+C{<$VM&nYm|c~Y z4Yver{I_bZ+X}Z)V}V{pk|Q^OsJDe;^c=}t+ZS2}xUmSLQ`7`)yKY0s-0?)%&m{dK zkVA*?RNb&AIML#=-;-CJRJ}q#flxUe5Zd0MMNHpQS|~cqyJ80rj{FVdBfxmqn2d8l z?h&?@NGW|m>)Zh4#$+maSh63G1|=GX1}=LYNHp_Cp7}+Ib|cB|-;s;C+du%M#Bwcp zfZexwnt$jq0vE;#m}VTy3kihs&=u~Nygk!nHO!CN)|!x}1AkqVAS0L;4AGpav$Q+O zl-Qie^5KOQ$CDap2~nLK@v!!>VXg9?dpmpn+KgN5XS9etZae24pWe~=`2hK`cI6%v z@g{#;M`Z`Y6G-Q%8wD$qII!JtVeQxqex3J;(T1udEn(H-;-1}W-k}`7wpQI=vyeJ_ ztOWY$=LHJ_q50Sgou)NJ`SX0>BhD84VH(~*E|qOG;|GGn&|B(4`#ot9idGB2N#fhm zlN>F%j4y0y)+@@CbznY|A|hAAS9+Valv_JnQ**)J{ieLSavNX9gF1ar(wCKRNAjog z@48k(Lt8I9wE=SU)9u~CJcIl7TS;D;VW$I%3yLLM?ANe0HQ%d%N7YEjQ&A6(^Y*51 zTbY%?hRw+8y`^Z93(|OBgip>}G!=4%oZM$&6lp}Z?5WftkJeC=^)o<(&qaT~1c*sh zFTRmiLCj(cCDHaITKf1R(eR|2{g8$oKi~1L510pLCat#VvkA!S_J4_g#IlEiY z=B*H)xl=edjwRFKdf^x7be>Pt!)TqQrmLvSP9+)u3fp>iErw=@@=wpwehR=O1+onm zo@s88DB>s_rXITOQ(6GH84u?UoE5}!xF_xw(Q?9Xn}Lg{#d4yi8#n%V_WkY(T0?4r z`w&Oef$Qz~Ylmd+`1biKr3g(k*GsmlAdDPxCJ~Oqh588uOO@15!i4d{(J5zt|fmMx<^_>@oY1=7(QP$?q5Nrrl zMl~@yopicxtai;=_?SJoXdd%v$16V&fB1vG=WLz7uNy?RiP7$ym_mXJkdL`fI|LcM z$ujhE%^7Ewo^Rvd>=8BjAi$9h;B}{jS6ypIYwY@u;5_Zm`~>~i)eTi>V=aB z0hpS*HXI9=4wb_)VolC>;L>l|lGl2!_)67ZeA@mL74i0MnvuXwUT84@c=NZc6P({^ zP|nW`mGXj)cmN5xdJo5CS#d6%?$cD|upedu(p)3Q2n0D`&er8(jjWC<*@>53$Fyv$ zsz1KP@K*KE&vJx4lZUo-FB+f$MBp)0_q`@{0!PI%MUVez3A^!?Dn^Z21W|p<&yN23 zY&_D-?_?vxG}3L!T0nsp+5%t=w9@Fk>$;|LSRXwU0bYxe8)=#NV>U`@fv;EnxZ9N@ zZ7oM^IX@m_V^>E~35O&%wi7DS-RYc{iT;);Y`kI#i@##78;VYL8f4zYVI>1LifVFO zEGF+Pg!%4uw<;imh_-BqEA!`iM!te%RxEC^?5Nn0aAnyRQdVyLFcYJWh)uY5FGkT>CI_s3!SPf2Ydrp z`QHi&XTqSJ-;o2>l^$ok%nP~`F60aubxg;TgB4I81zuoUrd#cCLl18g`JUYMI!ymSqxGolN=IcUe)bNIqwEE6ZjAw;o;m zVaC1per8HuBEm_1je~WM;$@n?Lw+^MDA?xIjRTvBs5m8Q7~zoW$fq%onqRjDwkpl0}PxgXj`XU31Vdq87H;lGL-!Ds$^T1Lt`#vy!*)l ztP_Ns5yoz_OSGS{lG5sCm)ufBK55?z=@hc%GPuIGTDhB9p-0T4E)Mvyh0Kp0(BzY} zuiIeovbb0ULv`CD!QyYSOi97TgO1J3^6#|oG5>_EW){>?mvdRPGt^KJa2`qIFbVP= zuBJ_HxfVfA0=~+kxJt6&!fGqOyQ(m^pN@&^11#soEi>9*_0c0uqOfBGotJ)BW8aK; zB!Yjp$c}B{8ObXZfDn5nj!a5~FUpZ{IB?6NBs#BSjRb8`ev-Ocih4F4Gf|uH;Rxwo zR%7($pT`p+91!Itxey`D>;U|s;n9<+Ife1-ezS}M@j~W4H!wM~;6$>Kr$Cm9%*2fBWM0zG^5F3XH9X(M-V!R`UAp^{z1cMwVgl3YHDwEaEBg%EX^#Qo&Bb<81T zEPUxq1O8)6>8C-|W_Zj&oszoQosjkGRnDh)EvD=*;wRnlb?2`iZ565za~3U#luiL2 zveZd(^^ZG$nY*8$@8`h9Y3qKRIo*5nxr{$8$S|0p@`AJA>G`kVJ05`nulXKZZ9bF@ zyEioTYoPuXGd6IIY^;s!ZaHD--S6n#XUa?EM-V@%2B2T!o0r}|&s@1J#`9CeXvH24 zi)L|La%WBSF9QkBV|8r2Hq$K>xryf+2hASB>!EMPqV24%y-=UD2^QjM{p4ZXTWuW! z2Dun0SQHSWkws3;%09ENTS;d$V~8${R=HxxnD&g;+4Qh!7=6AIe{<;A(X*8uVgv+R ztsBjDhDyD2BAis~2Lhe3*-?2xK8vW0@)N2U0)7U9bwugG@?PR_KwslZnNoB|FZkXXFxxO_sX?MLCPXl~m!r7U5cfy_r1mp~Jg zU`Ny~LGY#iL$V{t;(>z?%-)7N71fV^aX$Cw*t`;(lqazQmK;-x6Tk#wqW|z0Z&3BJ z4-6K=umN{v z-Y74M&rQD|DIezW$ke=Re~a`G{SiRF4kN;{noMfvH=jGUJn%bZ#mp)Cv=TFOgKg~* zpru0^UyuyXdycGpB);j~ZFPC;G-Lg6W}dx{vwMrZEl^~s>ae!{G*}>M8yROhj~U@- z^u{gLM$7o}mEQQ6>HOwtLR~|1$m}~jt)G-NF2yipSn_Whkr+!QF0-430{NFmHnMA? z-ta@m?XwNn3LL>|D%{m-&fGK>?g@y()C|>!hN$fownGg!7#(} z+qMX^O?&)94D3$PoSj!RXrI|p??4)!NbnS6;Ai8IM^ppQarX;~#t_xm`5Civ#r+BE zcftEo_~x*j_%6Yq_XXc2u}@<8$HXY5J2vn07*YKr%U>s0AF$%nKFJusa@A_L?lX*q zXpuPcHS8I5;vN53JEYqPmjVWNH6V|w|B**ss=w-nX+2IuuX?5#W`&jyFqHpzy0I$d zntU?m7V2bhuxfU*%r>DJEhT4}fLGMTZV>6uJa8N&+Sf|zQ!=sfTBTa}thvwD-RlQ4 z+qs)h1>0Q&R!$smzsO`DTC1$f7^_Voulm-aNXJ{_7F{e&O!@JXbDs|-jLJ2AaniCy zS24_o8Z`{RE=kPn=l}K}?BYGN>erwxEWkQ4%RZ~%Wnf@C}* svZ1v3yPop?Rr2^>i~s*#e|q<#Aaiabs-Sb5^g{vYX&GtOsH0;319q4zD*ylh literal 0 HcmV?d00001 diff --git a/sensibledb-explorer/icons/app.iconset/icon_128x128@2x.png b/sensibledb-explorer/icons/app.iconset/icon_128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3e087d83a33f0f27b37f786ff7be20d64bead092 GIT binary patch literal 9481 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 V2~iwDbRhr$002ovPDHLkV1irN5*Ppg literal 0 HcmV?d00001 diff --git a/sensibledb-explorer/icons/app.iconset/icon_16x16@2x.png b/sensibledb-explorer/icons/app.iconset/icon_16x16@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5098faf4c1628120593438d8c61bf275f60a6119 GIT binary patch literal 1013 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 DWT{mh literal 0 HcmV?d00001 diff --git a/sensibledb-explorer/icons/app.iconset/icon_64x64.png b/sensibledb-explorer/icons/app.iconset/icon_64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..2e77b984976da859803703cde28372cd8f564ee3 GIT binary patch literal 1950 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 literal 0 HcmV?d00001 diff --git a/sensibledb-explorer/icons/icon.icns b/sensibledb-explorer/icons/icon.icns index dbd4d9079c5ace5903102b89f9bbd7c27ee549e1..cb2a23dc6c42e7e8cc96b7632db3e2bcf381a805 100644 GIT binary patch literal 155030 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%0D`LGljf9f^ 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 diff --git a/sensibledb-explorer/icons/icon.ico b/sensibledb-explorer/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c535f9edb95e09207aff5bd6acd7af686f190a05 GIT binary patch literal 19912 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

-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, name: String) -> Result) -> Result, String> { let dbs = state.databases.lock().map_err(|e| e.to_string())?; let keys: Vec = dbs.keys().cloned().collect(); - let msg = format!("[DB_LIST] Returning {} databases: {:?} -", keys.len(), keys); + let msg = format!( + "[DB_LIST] Returning {} databases: {:?} +", + keys.len(), + keys + ); eprint!("{}", msg); - std::fs::write("/tmp/sensibledb-explorer.log", format!("{} + std::fs::write( + "/tmp/sensibledb-explorer.log", + format!( + "{} [DB_LIST] Returning {} databases: {:?} -", - std::fs::read_to_string("/tmp/sensibledb-explorer.log").unwrap_or_default(), keys.len(), keys)).ok(); +", + std::fs::read_to_string("/tmp/sensibledb-explorer.log").unwrap_or_default(), + keys.len(), + keys + ), + ) + .ok(); Ok(keys) } @@ -112,10 +124,13 @@ pub fn db_create_demo_internal(state: &AppState) -> Result<(), String> { #[tauri::command] pub fn db_create_demo(state: tauri::State) -> Result { - db_create_demo_internal(&state).map(|_| "Demo databases ready: health-patterns, project-management".to_string()) + db_create_demo_internal(&state) + .map(|_| "Demo databases ready: health-patterns, project-management".to_string()) } -fn populate_health_patterns(db: &sensibledb_db::embedded::database::Database) -> Result<(), String> { +fn populate_health_patterns( + db: &sensibledb_db::embedded::database::Database, +) -> Result<(), String> { db.put_node(Node { id: 1, label: "Person:Alex".to_string(), @@ -291,64 +306,236 @@ fn populate_health_patterns(db: &sensibledb_db::embedded::database::Database) -> #[tauri::command] pub fn log_error(msg: String) { eprintln!("[FRONTEND_ERROR] {}", msg); - let _ = std::fs::write("/tmp/sensibledb-explorer.log", format!("{} + let _ = std::fs::write( + "/tmp/sensibledb-explorer.log", + format!( + "{} [FRONTEND_ERROR] {} -", - std::fs::read_to_string("/tmp/sensibledb-explorer.log").unwrap_or_default(), msg)); +", + std::fs::read_to_string("/tmp/sensibledb-explorer.log").unwrap_or_default(), + msg + ), + ); } -fn populate_project_management(db: &sensibledb_db::embedded::database::Database) -> Result<(), String> { +fn populate_project_management( + db: &sensibledb_db::embedded::database::Database, +) -> Result<(), String> { // Team Members - db.put_node(Node { id: 1, label: "Person:Alice".to_string() }).map_err(|e| e.to_string())?; - db.put_node(Node { id: 2, label: "Person:Bob".to_string() }).map_err(|e| e.to_string())?; - db.put_node(Node { id: 3, label: "Person:Carol".to_string() }).map_err(|e| e.to_string())?; + db.put_node(Node { + id: 1, + label: "Person:Alice".to_string(), + }) + .map_err(|e| e.to_string())?; + db.put_node(Node { + id: 2, + label: "Person:Bob".to_string(), + }) + .map_err(|e| e.to_string())?; + db.put_node(Node { + id: 3, + label: "Person:Carol".to_string(), + }) + .map_err(|e| e.to_string())?; // Projects - db.put_node(Node { id: 10, label: "Project:WebsiteRedesign".to_string() }).map_err(|e| e.to_string())?; - db.put_node(Node { id: 11, label: "Project:MobileApp".to_string() }).map_err(|e| e.to_string())?; + db.put_node(Node { + id: 10, + label: "Project:WebsiteRedesign".to_string(), + }) + .map_err(|e| e.to_string())?; + db.put_node(Node { + id: 11, + label: "Project:MobileApp".to_string(), + }) + .map_err(|e| e.to_string())?; // Tasks - db.put_node(Node { id: 20, label: "Task:DesignMockups".to_string() }).map_err(|e| e.to_string())?; - db.put_node(Node { id: 21, label: "Task:FrontendDev".to_string() }).map_err(|e| e.to_string())?; - db.put_node(Node { id: 22, label: "Task:BackendAPI".to_string() }).map_err(|e| e.to_string())?; - db.put_node(Node { id: 23, label: "Task:Testing".to_string() }).map_err(|e| e.to_string())?; - db.put_node(Node { id: 24, label: "Task:Deployment".to_string() }).map_err(|e| e.to_string())?; + db.put_node(Node { + id: 20, + label: "Task:DesignMockups".to_string(), + }) + .map_err(|e| e.to_string())?; + db.put_node(Node { + id: 21, + label: "Task:FrontendDev".to_string(), + }) + .map_err(|e| e.to_string())?; + db.put_node(Node { + id: 22, + label: "Task:BackendAPI".to_string(), + }) + .map_err(|e| e.to_string())?; + db.put_node(Node { + id: 23, + label: "Task:Testing".to_string(), + }) + .map_err(|e| e.to_string())?; + db.put_node(Node { + id: 24, + label: "Task:Deployment".to_string(), + }) + .map_err(|e| e.to_string())?; // Tools - db.put_node(Node { id: 30, label: "Tool:Figma".to_string() }).map_err(|e| e.to_string())?; - db.put_node(Node { id: 31, label: "Tool:GitHub".to_string() }).map_err(|e| e.to_string())?; - db.put_node(Node { id: 32, label: "Tool:AWS".to_string() }).map_err(|e| e.to_string())?; + db.put_node(Node { + id: 30, + label: "Tool:Figma".to_string(), + }) + .map_err(|e| e.to_string())?; + db.put_node(Node { + id: 31, + label: "Tool:GitHub".to_string(), + }) + .map_err(|e| e.to_string())?; + db.put_node(Node { + id: 32, + label: "Tool:AWS".to_string(), + }) + .map_err(|e| e.to_string())?; // Assignments: Person -> Project - db.put_edge(Edge { id: 100, label: "ASSIGNED_TO".to_string(), from: 1, to: 10 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 101, label: "ASSIGNED_TO".to_string(), from: 2, to: 10 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 102, label: "ASSIGNED_TO".to_string(), from: 3, to: 11 }).map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 100, + label: "ASSIGNED_TO".to_string(), + from: 1, + to: 10, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 101, + label: "ASSIGNED_TO".to_string(), + from: 2, + to: 10, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 102, + label: "ASSIGNED_TO".to_string(), + from: 3, + to: 11, + }) + .map_err(|e| e.to_string())?; // Tasks belong to projects - db.put_edge(Edge { id: 110, label: "PART_OF".to_string(), from: 20, to: 10 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 111, label: "PART_OF".to_string(), from: 21, to: 10 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 112, label: "PART_OF".to_string(), from: 22, to: 11 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 113, label: "PART_OF".to_string(), from: 23, to: 11 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 114, label: "PART_OF".to_string(), from: 24, to: 11 }).map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 110, + label: "PART_OF".to_string(), + from: 20, + to: 10, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 111, + label: "PART_OF".to_string(), + from: 21, + to: 10, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 112, + label: "PART_OF".to_string(), + from: 22, + to: 11, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 113, + label: "PART_OF".to_string(), + from: 23, + to: 11, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 114, + label: "PART_OF".to_string(), + from: 24, + to: 11, + }) + .map_err(|e| e.to_string())?; // Task dependencies - db.put_edge(Edge { id: 120, label: "BLOCKS".to_string(), from: 20, to: 21 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 121, label: "BLOCKS".to_string(), from: 21, to: 23 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 122, label: "BLOCKS".to_string(), from: 22, to: 23 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 123, label: "BLOCKS".to_string(), from: 23, to: 24 }).map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 120, + label: "BLOCKS".to_string(), + from: 20, + to: 21, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 121, + label: "BLOCKS".to_string(), + from: 21, + to: 23, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 122, + label: "BLOCKS".to_string(), + from: 22, + to: 23, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 123, + label: "BLOCKS".to_string(), + from: 23, + to: 24, + }) + .map_err(|e| e.to_string())?; // Tasks use tools - db.put_edge(Edge { id: 130, label: "USES".to_string(), from: 20, to: 30 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 131, label: "USES".to_string(), from: 21, to: 31 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 132, label: "USES".to_string(), from: 22, to: 31 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 133, label: "USES".to_string(), from: 24, to: 32 }).map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 130, + label: "USES".to_string(), + from: 20, + to: 30, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 131, + label: "USES".to_string(), + from: 21, + to: 31, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 132, + label: "USES".to_string(), + from: 22, + to: 31, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 133, + label: "USES".to_string(), + from: 24, + to: 32, + }) + .map_err(|e| e.to_string())?; // Person owns tasks - db.put_edge(Edge { id: 140, label: "OWNS".to_string(), from: 1, to: 20 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 141, label: "OWNS".to_string(), from: 2, to: 21 }).map_err(|e| e.to_string())?; - db.put_edge(Edge { id: 142, label: "OWNS".to_string(), from: 3, to: 22 }).map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 140, + label: "OWNS".to_string(), + from: 1, + to: 20, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 141, + label: "OWNS".to_string(), + from: 2, + to: 21, + }) + .map_err(|e| e.to_string())?; + db.put_edge(Edge { + id: 142, + label: "OWNS".to_string(), + from: 3, + to: 22, + }) + .map_err(|e| e.to_string())?; Ok(()) } - - diff --git a/sensibledb-explorer/src/commands/mod.rs b/sensibledb-explorer/src/commands/mod.rs index 7d6b6af7..f17eaac0 100644 --- a/sensibledb-explorer/src/commands/mod.rs +++ b/sensibledb-explorer/src/commands/mod.rs @@ -1,11 +1,11 @@ pub mod database; pub mod edges; pub mod nodes; -pub mod nql; pub mod schema; +pub mod sensibleql; pub use database::*; pub use edges::*; pub use nodes::*; -pub use nql::*; pub use schema::*; +pub use sensibleql::*; diff --git a/sensibledb-explorer/src/commands/nodes.rs b/sensibledb-explorer/src/commands/nodes.rs index bbf2d99b..03d2bc3a 100644 --- a/sensibledb-explorer/src/commands/nodes.rs +++ b/sensibledb-explorer/src/commands/nodes.rs @@ -87,25 +87,51 @@ pub fn node_delete( #[tauri::command] pub fn node_list(state: tauri::State, db_name: String) -> Result, String> { - let log_msg = format!("[NODE_LIST] Called with db_name={} -", db_name); + let log_msg = format!( + "[NODE_LIST] Called with db_name={} +", + db_name + ); eprint!("{}", log_msg); - let _ = std::fs::write("/tmp/sensibledb-explorer.log", format!("{} -{}", - std::fs::read_to_string("/tmp/sensibledb-explorer.log").unwrap_or_default(), log_msg)); + let _ = std::fs::write( + "/tmp/sensibledb-explorer.log", + format!( + "{} +{}", + std::fs::read_to_string("/tmp/sensibledb-explorer.log").unwrap_or_default(), + log_msg + ), + ); let dbs = state.databases.lock().map_err(|e| e.to_string())?; - eprintln!("[NODE_LIST] Available DBs: {:?}", dbs.keys().collect::>()); - let db = dbs - .get(&db_name) - .ok_or_else(|| format!("Database '{}' not found. Available: {:?}", db_name, dbs.keys().collect::>()))?; + eprintln!( + "[NODE_LIST] Available DBs: {:?}", + dbs.keys().collect::>() + ); + let db = dbs.get(&db_name).ok_or_else(|| { + format!( + "Database '{}' not found. Available: {:?}", + db_name, + dbs.keys().collect::>() + ) + })?; let tx = db.read_transaction().map_err(|e| e.to_string())?; let nodes = tx.scan_nodes().map_err(|e| e.to_string())?; - let log_msg2 = format!("[NODE_LIST] db={} found {} nodes -", db_name, nodes.len()); + let log_msg2 = format!( + "[NODE_LIST] db={} found {} nodes +", + db_name, + nodes.len() + ); eprint!("{}", log_msg2); - let _ = std::fs::write("/tmp/sensibledb-explorer.log", format!("{} -{}", - std::fs::read_to_string("/tmp/sensibledb-explorer.log").unwrap_or_default(), log_msg2)); + let _ = std::fs::write( + "/tmp/sensibledb-explorer.log", + format!( + "{} +{}", + std::fs::read_to_string("/tmp/sensibledb-explorer.log").unwrap_or_default(), + log_msg2 + ), + ); Ok(nodes .into_iter() .map(|n| NodeDto { diff --git a/sensibledb-explorer/src/commands/nql.rs b/sensibledb-explorer/src/commands/sensibleql.rs similarity index 59% rename from sensibledb-explorer/src/commands/nql.rs rename to sensibledb-explorer/src/commands/sensibleql.rs index 2a725038..c90ac362 100644 --- a/sensibledb-explorer/src/commands/nql.rs +++ b/sensibledb-explorer/src/commands/sensibleql.rs @@ -3,13 +3,13 @@ use sensibledb_db::embedded::transaction::{Edge, Node, ReadTransaction}; use serde::{Deserialize, Serialize}; #[derive(Deserialize)] -pub struct NqlRequest { +pub struct SensibleqlRequest { pub db_name: String, pub query: String, } #[derive(Serialize, Deserialize)] -pub struct NqlResult { +pub struct SensibleqlResult { pub success: bool, pub message: String, pub data: Option, @@ -37,11 +37,11 @@ struct QResult { } #[tauri::command(rename_all = "camelCase")] -pub fn nql_execute( +pub fn sensibleql_execute( state: tauri::State, db_name: String, query: String, -) -> Result { +) -> Result { let dbs = state.databases.lock().map_err(|e| e.to_string())?; let db = dbs .get(&db_name) @@ -61,49 +61,105 @@ pub fn nql_execute( do_count(&q, &all_nodes, &all_edges)? } else { QResult { - nodes: all_nodes.iter().map(|n| QNode { id: n.id, label: n.label.clone() }).collect(), - edges: all_edges.iter().map(|e| QEdge { id: e.id, label: e.label.clone(), from: e.from, to: e.to }).collect(), + nodes: all_nodes + .iter() + .map(|n| QNode { + id: n.id, + label: n.label.clone(), + }) + .collect(), + edges: all_edges + .iter() + .map(|e| QEdge { + id: e.id, + label: e.label.clone(), + from: e.from, + to: e.to, + }) + .collect(), count: all_nodes.len(), } }; - Ok(NqlResult { + Ok(SensibleqlResult { success: true, - message: format!("Query returned {} nodes and {} edges", result.nodes.len(), result.edges.len()), + message: format!( + "Query returned {} nodes and {} edges", + result.nodes.len(), + result.edges.len() + ), data: Some(serde_json::to_value(&result).map_err(|e| e.to_string())?), }) } fn do_match(q: &str, nodes: &[Node], edges: &[Edge]) -> Result { let label = pick_label(q); - let matched: Vec = nodes.iter() - .filter(|n| label.as_ref().map_or(true, |l| n.label.to_lowercase().contains(l))) - .map(|n| QNode { id: n.id, label: n.label.clone() }) + let matched: Vec = nodes + .iter() + .filter(|n| { + label + .as_ref() + .map_or(true, |l| n.label.to_lowercase().contains(l)) + }) + .map(|n| QNode { + id: n.id, + label: n.label.clone(), + }) .collect(); let matched_edges: Vec = if q.contains(")-[") || q.contains("]->") { let el = pick_edge_label(q); - edges.iter() + edges + .iter() .filter(|e| { let nm = matched.iter().any(|n| n.id == e.from || n.id == e.to); - el.as_ref().map_or(nm, |x| e.label.to_lowercase().contains(x) && nm) + el.as_ref() + .map_or(nm, |x| e.label.to_lowercase().contains(x) && nm) + }) + .map(|e| QEdge { + id: e.id, + label: e.label.clone(), + from: e.from, + to: e.to, }) - .map(|e| QEdge { id: e.id, label: e.label.clone(), from: e.from, to: e.to }) .collect() - } else { vec![] }; - Ok(QResult { nodes: matched.clone(), edges: matched_edges, count: matched.len() }) + } else { + vec![] + }; + Ok(QResult { + nodes: matched.clone(), + edges: matched_edges, + count: matched.len(), + }) } fn do_get(q: &str, nodes: &[Node], edges: &[Edge]) -> Result { let term = pick_search(q); - let matched: Vec = nodes.iter() - .filter(|n| term.as_ref().map_or(true, |s| n.label.to_lowercase().contains(s))) - .map(|n| QNode { id: n.id, label: n.label.clone() }) + let matched: Vec = nodes + .iter() + .filter(|n| { + term.as_ref() + .map_or(true, |s| n.label.to_lowercase().contains(s)) + }) + .map(|n| QNode { + id: n.id, + label: n.label.clone(), + }) .collect(); - let matched_edges: Vec = edges.iter() + let matched_edges: Vec = edges + .iter() .filter(|e| matched.iter().any(|n| n.id == e.from || n.id == e.to)) - .map(|e| QEdge { id: e.id, label: e.label.clone(), from: e.from, to: e.to }) + .map(|e| QEdge { + id: e.id, + label: e.label.clone(), + from: e.from, + to: e.to, + }) .collect(); - Ok(QResult { nodes: matched.clone(), edges: matched_edges, count: matched.len() }) + Ok(QResult { + nodes: matched.clone(), + edges: matched_edges, + count: matched.len(), + }) } fn do_count(q: &str, nodes: &[Node], edges: &[Edge]) -> Result { @@ -111,9 +167,20 @@ fn do_count(q: &str, nodes: &[Node], edges: &[Edge]) -> Result let count = if q.contains("edge") || q.contains("relationship") { edges.len() } else { - nodes.iter().filter(|n| label.as_ref().map_or(true, |l| n.label.to_lowercase().contains(l))).count() + nodes + .iter() + .filter(|n| { + label + .as_ref() + .map_or(true, |l| n.label.to_lowercase().contains(l)) + }) + .count() }; - Ok(QResult { nodes: vec![], edges: vec![], count }) + Ok(QResult { + nodes: vec![], + edges: vec![], + count, + }) } fn pick_label(q: &str) -> Option { @@ -127,7 +194,9 @@ fn pick_label(q: &str) -> Option { // Node pattern: single letter variable like (n:Label) if between.len() <= 2 && between.chars().all(|c| c.is_alphabetic()) { let after = &q[i + 1..]; - let end = after.find(|c: char| !c.is_alphanumeric() && c != '_').unwrap_or(after.len()); + let end = after + .find(|c: char| !c.is_alphanumeric() && c != '_') + .unwrap_or(after.len()); if end > 0 { return Some(after[..end].to_string()); } @@ -143,7 +212,11 @@ fn pick_edge_label(q: &str) -> Option { let colon = rest.find(':')?; let after = &rest[colon + 1..]; let end = after.find(']')?; - if end > 0 { Some(after[..end].to_string()) } else { None } + if end > 0 { + Some(after[..end].to_string()) + } else { + None + } } fn pick_search(q: &str) -> Option { diff --git a/sensibledb-explorer/src/frontend/src/App.css b/sensibledb-explorer/src/frontend/src/App.css index 641b491f..b4ff01f5 100644 --- a/sensibledb-explorer/src/frontend/src/App.css +++ b/sensibledb-explorer/src/frontend/src/App.css @@ -13,8 +13,9 @@ border-bottom: 1px solid var(--border); display: flex; align-items: center; + justify-content: center; padding: 0 var(--space-lg); - gap: var(--space-lg); + position: relative; flex-shrink: 0; } @@ -22,6 +23,9 @@ display: flex; align-items: center; gap: var(--space-sm); + position: absolute; + left: 50%; + transform: translateX(-50%); } .header-logo { @@ -35,16 +39,19 @@ } .header-accent { - color: #6366f1; + color: var(--accent)6366f1; } .header-db-selector { - flex: 1; + position: absolute; + left: var(--space-lg); display: flex; align-items: center; } .header-actions { + position: absolute; + right: var(--space-lg); display: flex; gap: var(--space-sm); } diff --git a/sensibledb-explorer/src/frontend/src/App.tsx b/sensibledb-explorer/src/frontend/src/App.tsx index cd4f857c..f3743213 100644 --- a/sensibledb-explorer/src/frontend/src/App.tsx +++ b/sensibledb-explorer/src/frontend/src/App.tsx @@ -5,7 +5,7 @@ import GraphView from "./components/graph/GraphView"; import NodeList from "./components/entities/NodeList"; import EdgeList from "./components/entities/EdgeList"; import SchemaBrowser from "./components/sidebar/SchemaBrowser"; -import NqlEditor from "./components/editor/NqlEditor"; +import SensibleQLEditor from "./components/editor/SensibleQLEditor"; import HomeView from "./components/home/HomeView"; import ChatView from "./components/chat/ChatView"; import ReportView from "./components/report/ReportView"; @@ -61,7 +61,7 @@ const App: Component = () => { else if (e.key === "5") setActiveView("nodes"); else if (e.key === "6") setActiveView("edges"); else if (e.key === "7") setActiveView("schema"); - else if (e.key === "8") setActiveView("nql"); + else if (e.key === "8") setActiveView("sensibleql"); else if (e.key === "Escape") { if (selectedNode()) setSelectedNode(null); else setActiveView("home"); @@ -135,8 +135,8 @@ const App: Component = () => { - - + +