From eeb4e44367e23f0c8da503b9ef07df83e1b67821 Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 15 Apr 2025 20:48:35 +0100 Subject: [PATCH] Improved AI tools --- chroma.log | 220 ++++++++++++++++++++++++++++++++++ codecompanion-workspace.json | 114 ++++++++++++++++++ lua/autocmd.lua | 30 +++++ lua/keymap.lua | 8 +- lua/plugins/codecompanion.lua | 31 +++-- lua/plugins/fidget.lua | 3 + lua/plugins/git_blame.lua | 10 ++ lua/plugins/gitsigns.lua | 1 + lua/plugins/vectorcode.lua | 8 ++ lua/utils/fidget_helper.lua | 53 ++++++++ 10 files changed, 469 insertions(+), 9 deletions(-) create mode 100644 chroma.log create mode 100644 codecompanion-workspace.json create mode 100644 lua/plugins/fidget.lua create mode 100644 lua/plugins/git_blame.lua create mode 100644 lua/plugins/vectorcode.lua create mode 100644 lua/utils/fidget_helper.lua diff --git a/chroma.log b/chroma.log new file mode 100644 index 0000000..202b1eb --- /dev/null +++ b/chroma.log @@ -0,0 +1,220 @@ +INFO: [15-04-2025 11:08:19] Set chroma_server_nofile to 65535 +DEBUG: [15-04-2025 11:08:19] Starting component System +DEBUG: [15-04-2025 11:08:19] Starting component OpenTelemetryClient +DEBUG: [15-04-2025 11:08:19] Starting component SqliteDB +DEBUG: [15-04-2025 11:08:19] Starting component SimpleQuotaEnforcer +DEBUG: [15-04-2025 11:08:19] Starting component Posthog +DEBUG: [15-04-2025 11:08:19] Starting component SimpleRateLimitEnforcer +DEBUG: [15-04-2025 11:08:19] Starting component LocalSegmentManager +DEBUG: [15-04-2025 11:08:19] Starting component LocalExecutor +DEBUG: [15-04-2025 11:08:19] Starting component SegmentAPI +DEBUG: [15-04-2025 11:08:19] Starting component SimpleAsyncRateLimitEnforcer +INFO: [15-04-2025 11:08:20] Started server process [20213] +INFO: [15-04-2025 11:08:20] Waiting for application startup. +INFO: [15-04-2025 11:08:20] Application startup complete. +INFO: [15-04-2025 11:08:20] Uvicorn running on http://localhost:54131 (Press CTRL+C to quit) +INFO: [15-04-2025 11:08:20] 127.0.0.1:54158 - "GET /api/v1/heartbeat HTTP/1.1" 200 +INFO: [15-04-2025 11:08:20] 127.0.0.1:54160 - "GET /api/v2/auth/identity HTTP/1.1" 200 +INFO: [15-04-2025 11:08:20] 127.0.0.1:54160 - "GET /api/v2/tenants/default_tenant HTTP/1.1" 200 +INFO: [15-04-2025 11:08:20] 127.0.0.1:54160 - "GET /api/v2/tenants/default_tenant/databases/default_database?tenant=default_tenant HTTP/1.1" 200 +INFO: [15-04-2025 11:08:49] Shutting down +INFO: [15-04-2025 11:08:49] Waiting for application shutdown. +DEBUG: [15-04-2025 11:08:49] Stopping component System +DEBUG: [15-04-2025 11:08:49] Stopping component SegmentAPI +DEBUG: [15-04-2025 11:08:49] Stopping component LocalExecutor +DEBUG: [15-04-2025 11:08:49] Stopping component LocalSegmentManager +DEBUG: [15-04-2025 11:08:49] Stopping component SimpleAsyncRateLimitEnforcer +DEBUG: [15-04-2025 11:08:49] Stopping component SimpleRateLimitEnforcer +DEBUG: [15-04-2025 11:08:49] Stopping component Posthog +DEBUG: [15-04-2025 11:08:49] Stopping component SimpleQuotaEnforcer +DEBUG: [15-04-2025 11:08:49] Stopping component SqliteDB +DEBUG: [15-04-2025 11:08:49] Stopping component OpenTelemetryClient +INFO: [15-04-2025 11:08:49] Application shutdown complete. +INFO: [15-04-2025 11:08:49] Finished server process [20213] +INFO: [15-04-2025 11:53:31] Set chroma_server_nofile to 65535 +DEBUG: [15-04-2025 11:53:31] Starting component System +DEBUG: [15-04-2025 11:53:31] Starting component OpenTelemetryClient +DEBUG: [15-04-2025 11:53:31] Starting component SqliteDB +DEBUG: [15-04-2025 11:53:31] Starting component SimpleQuotaEnforcer +DEBUG: [15-04-2025 11:53:31] Starting component Posthog +DEBUG: [15-04-2025 11:53:31] Starting component SimpleRateLimitEnforcer +DEBUG: [15-04-2025 11:53:31] Starting component LocalSegmentManager +DEBUG: [15-04-2025 11:53:31] Starting component LocalExecutor +DEBUG: [15-04-2025 11:53:31] Starting component SegmentAPI +DEBUG: [15-04-2025 11:53:31] Starting component SimpleAsyncRateLimitEnforcer +INFO: [15-04-2025 11:53:31] Started server process [21405] +INFO: [15-04-2025 11:53:31] Waiting for application startup. +INFO: [15-04-2025 11:53:31] Application startup complete. +INFO: [15-04-2025 11:53:31] Uvicorn running on http://localhost:61221 (Press CTRL+C to quit) +INFO: [15-04-2025 11:53:31] 127.0.0.1:61237 - "GET /api/v1/heartbeat HTTP/1.1" 200 +INFO: [15-04-2025 11:53:31] 127.0.0.1:61239 - "GET /api/v2/auth/identity HTTP/1.1" 200 +INFO: [15-04-2025 11:53:31] 127.0.0.1:61239 - "GET /api/v2/tenants/default_tenant HTTP/1.1" 200 +INFO: [15-04-2025 11:53:31] 127.0.0.1:61239 - "GET /api/v2/tenants/default_tenant/databases/default_database?tenant=default_tenant HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "GET /api/v2/pre-flight-checks HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:48] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +DEBUG: [15-04-2025 11:53:49] Starting component PersistentLocalHnswSegment +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/add HTTP/1.1" 201 +INFO: [15-04-2025 11:53:49] 127.0.0.1:61314 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/get HTTP/1.1" 200 +INFO: [15-04-2025 11:53:49] Shutting down +INFO: [15-04-2025 11:53:49] Waiting for application shutdown. +DEBUG: [15-04-2025 11:53:49] Stopping component System +DEBUG: [15-04-2025 11:53:49] Stopping component SegmentAPI +DEBUG: [15-04-2025 11:53:49] Stopping component LocalExecutor +DEBUG: [15-04-2025 11:53:49] Stopping component PersistentLocalHnswSegment +DEBUG: [15-04-2025 11:53:49] Stopping component LocalSegmentManager +DEBUG: [15-04-2025 11:53:49] Stopping component SimpleAsyncRateLimitEnforcer +DEBUG: [15-04-2025 11:53:49] Stopping component SimpleRateLimitEnforcer +DEBUG: [15-04-2025 11:53:49] Stopping component Posthog +DEBUG: [15-04-2025 11:53:49] Stopping component SimpleQuotaEnforcer +DEBUG: [15-04-2025 11:53:49] Stopping component SqliteDB +DEBUG: [15-04-2025 11:53:49] Stopping component OpenTelemetryClient +INFO: [15-04-2025 11:53:49] Application shutdown complete. +INFO: [15-04-2025 11:53:49] Finished server process [21405] +INFO: [15-04-2025 11:54:12] Set chroma_server_nofile to 65535 +DEBUG: [15-04-2025 11:54:12] Starting component System +DEBUG: [15-04-2025 11:54:12] Starting component OpenTelemetryClient +DEBUG: [15-04-2025 11:54:12] Starting component SqliteDB +DEBUG: [15-04-2025 11:54:12] Starting component SimpleQuotaEnforcer +DEBUG: [15-04-2025 11:54:12] Starting component Posthog +DEBUG: [15-04-2025 11:54:12] Starting component SimpleRateLimitEnforcer +DEBUG: [15-04-2025 11:54:12] Starting component LocalSegmentManager +DEBUG: [15-04-2025 11:54:12] Starting component LocalExecutor +DEBUG: [15-04-2025 11:54:12] Starting component SegmentAPI +DEBUG: [15-04-2025 11:54:12] Starting component SimpleAsyncRateLimitEnforcer +INFO: [15-04-2025 11:54:12] Started server process [21526] +INFO: [15-04-2025 11:54:12] Waiting for application startup. +INFO: [15-04-2025 11:54:12] Application startup complete. +INFO: [15-04-2025 11:54:12] Uvicorn running on http://localhost:61415 (Press CTRL+C to quit) +INFO: [15-04-2025 11:54:12] 127.0.0.1:61431 - "GET /api/v1/heartbeat HTTP/1.1" 200 +INFO: [15-04-2025 11:54:12] 127.0.0.1:61433 - "GET /api/v2/auth/identity HTTP/1.1" 200 +INFO: [15-04-2025 11:54:12] 127.0.0.1:61433 - "GET /api/v2/tenants/default_tenant HTTP/1.1" 200 +INFO: [15-04-2025 11:54:12] 127.0.0.1:61433 - "GET /api/v2/tenants/default_tenant/databases/default_database?tenant=default_tenant HTTP/1.1" 200 +INFO: [15-04-2025 11:54:16] 127.0.0.1:61433 - "GET /api/v2/tenants/default_tenant/databases/default_database/collections/2464dff91bf19cf59711c4ad9589d971881dee3b4724247c204882ed9a916c7 HTTP/1.1" 200 +INFO: [15-04-2025 11:54:16] 127.0.0.1:61433 - "GET /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/count HTTP/1.1" 200 +INFO: [15-04-2025 11:54:16] 127.0.0.1:61433 - "GET /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/count HTTP/1.1" 200 +DEBUG: [15-04-2025 11:54:16] Starting component PersistentLocalHnswSegment +INFO: [15-04-2025 11:54:16] 127.0.0.1:61433 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/query HTTP/1.1" 200 +INFO: [15-04-2025 11:54:31] Shutting down +INFO: [15-04-2025 11:54:31] Waiting for application shutdown. +DEBUG: [15-04-2025 11:54:31] Stopping component System +DEBUG: [15-04-2025 11:54:31] Stopping component SegmentAPI +DEBUG: [15-04-2025 11:54:31] Stopping component LocalExecutor +DEBUG: [15-04-2025 11:54:31] Stopping component PersistentLocalHnswSegment +DEBUG: [15-04-2025 11:54:31] Stopping component LocalSegmentManager +DEBUG: [15-04-2025 11:54:31] Stopping component SimpleAsyncRateLimitEnforcer +DEBUG: [15-04-2025 11:54:31] Stopping component SimpleRateLimitEnforcer +DEBUG: [15-04-2025 11:54:31] Stopping component Posthog +DEBUG: [15-04-2025 11:54:31] Stopping component SimpleQuotaEnforcer +DEBUG: [15-04-2025 11:54:31] Stopping component SqliteDB +DEBUG: [15-04-2025 11:54:31] Stopping component OpenTelemetryClient +INFO: [15-04-2025 11:54:31] Application shutdown complete. +INFO: [15-04-2025 11:54:31] Finished server process [21526] +INFO: [15-04-2025 12:59:41] Set chroma_server_nofile to 65535 +DEBUG: [15-04-2025 12:59:41] Starting component System +DEBUG: [15-04-2025 12:59:41] Starting component OpenTelemetryClient +DEBUG: [15-04-2025 12:59:41] Starting component SqliteDB +DEBUG: [15-04-2025 12:59:41] Starting component SimpleQuotaEnforcer +DEBUG: [15-04-2025 12:59:41] Starting component Posthog +DEBUG: [15-04-2025 12:59:41] Starting component SimpleRateLimitEnforcer +DEBUG: [15-04-2025 12:59:41] Starting component LocalSegmentManager +DEBUG: [15-04-2025 12:59:41] Starting component LocalExecutor +DEBUG: [15-04-2025 12:59:41] Starting component SegmentAPI +DEBUG: [15-04-2025 12:59:41] Starting component SimpleAsyncRateLimitEnforcer +INFO: [15-04-2025 12:59:41] Started server process [24842] +INFO: [15-04-2025 12:59:41] Waiting for application startup. +INFO: [15-04-2025 12:59:41] Application startup complete. +INFO: [15-04-2025 12:59:41] Uvicorn running on http://localhost:62331 (Press CTRL+C to quit) +INFO: [15-04-2025 12:59:41] 127.0.0.1:62346 - "GET /api/v1/heartbeat HTTP/1.1" 200 +INFO: [15-04-2025 12:59:41] 127.0.0.1:62348 - "GET /api/v2/auth/identity HTTP/1.1" 200 +INFO: [15-04-2025 12:59:41] 127.0.0.1:62348 - "GET /api/v2/tenants/default_tenant HTTP/1.1" 200 +INFO: [15-04-2025 12:59:41] 127.0.0.1:62348 - "GET /api/v2/tenants/default_tenant/databases/default_database?tenant=default_tenant HTTP/1.1" 200 +INFO: [15-04-2025 12:59:46] 127.0.0.1:62348 - "GET /api/v2/tenants/default_tenant/databases/default_database/collections/2464dff91bf19cf59711c4ad9589d971881dee3b4724247c204882ed9a916c7 HTTP/1.1" 200 +INFO: [15-04-2025 12:59:46] 127.0.0.1:62348 - "GET /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/count HTTP/1.1" 200 +INFO: [15-04-2025 12:59:46] 127.0.0.1:62348 - "GET /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/count HTTP/1.1" 200 +DEBUG: [15-04-2025 12:59:46] Starting component PersistentLocalHnswSegment +INFO: [15-04-2025 12:59:46] 127.0.0.1:62348 - "POST /api/v2/tenants/default_tenant/databases/default_database/collections/79ccccf4-e887-41d8-b859-69da50490f8c/query HTTP/1.1" 200 +INFO: [15-04-2025 12:59:49] Shutting down +INFO: [15-04-2025 12:59:49] Waiting for application shutdown. +DEBUG: [15-04-2025 12:59:49] Stopping component System +DEBUG: [15-04-2025 12:59:49] Stopping component SegmentAPI +DEBUG: [15-04-2025 12:59:49] Stopping component LocalExecutor +DEBUG: [15-04-2025 12:59:49] Stopping component PersistentLocalHnswSegment +DEBUG: [15-04-2025 12:59:49] Stopping component LocalSegmentManager +DEBUG: [15-04-2025 12:59:49] Stopping component SimpleAsyncRateLimitEnforcer +DEBUG: [15-04-2025 12:59:49] Stopping component SimpleRateLimitEnforcer +DEBUG: [15-04-2025 12:59:49] Stopping component Posthog +DEBUG: [15-04-2025 12:59:49] Stopping component SimpleQuotaEnforcer +DEBUG: [15-04-2025 12:59:49] Stopping component SqliteDB +DEBUG: [15-04-2025 12:59:49] Stopping component OpenTelemetryClient +INFO: [15-04-2025 12:59:49] Application shutdown complete. +INFO: [15-04-2025 12:59:49] Finished server process [24842] diff --git a/codecompanion-workspace.json b/codecompanion-workspace.json new file mode 100644 index 0000000..511eba7 --- /dev/null +++ b/codecompanion-workspace.json @@ -0,0 +1,114 @@ +{ + "name": "Neovim Configuration", + "version": "1.0.0", + "system_prompt": "You are an expert Neovim configuration assistant. Help the user understand and modify their Neovim setup. Focus on clear explanations and suggest improvements when appropriate.", + "vars": { + "lua_dir": "lua" + }, + "groups": [ + { + "name": "Core Configuration", + "system_prompt": "These files define the core Neovim behavior including options, keymaps, and autocommands. When suggesting changes, ensure they align with Neovim best practices.", + "data": [ + "core_opt", + "core_keymap", + "core_autocmd", + "core_helpers" + ] + }, + { + "name": "Plugin Management", + "system_prompt": "This file contains the plugin manager setup. Help the user understand plugin dependencies and installation patterns.", + "data": [ + "lazy_init" + ] + }, + { + "name": "LSP Configuration", + "system_prompt": "These files define the Language Server Protocol setup. Help the user configure language servers, diagnostics, and code actions.", + "data": [ + "lsp_config" + ] + }, + { + "name": "Frequently Used Plugins", + "system_prompt": "These are plugins the user frequently configures. Provide detailed explanations about their options and how they interact with the rest of the configuration.", + "data": [ + "plugin_codecompanion", + "plugin_edgy", + "plugin_snacks", + "plugin_mini", + "plugin_telescope" + ] + }, + { + "name": "UI and Theme", + "system_prompt": "These files define the visual appearance of Neovim. Help the user understand how to customize colors and UI elements.", + "data": [ + "plugin_colorscheme" + ] + } + ], + "data": { + "core_opt": { + "type": "file", + "path": "${lua_dir}/opt.lua", + "description": "Neovim options configuration" + }, + "core_keymap": { + "type": "file", + "path": "${lua_dir}/keymap.lua", + "description": "Key mappings configuration" + }, + "core_autocmd": { + "type": "file", + "path": "${lua_dir}/autocmd.lua", + "description": "Automatic commands configuration" + }, + "core_helpers": { + "type": "file", + "path": "${lua_dir}/helpers.lua", + "description": "Helper functions for Neovim configuration" + }, + "lazy_init": { + "type": "file", + "path": "${lua_dir}/lazy_init.lua", + "description": "Lazy plugin manager initialization" + }, + "lsp_config": { + "type": "file", + "path": "${lua_dir}/plugins/lsp.lua", + "description": "LSP plugins and configuration" + }, + "plugin_codecompanion": { + "type": "file", + "path": "${lua_dir}/plugins/codecompanion.lua", + "description": "CodeCompanion plugin configuration" + }, + "plugin_edgy": { + "type": "file", + "path": "${lua_dir}/plugins/edgy.lua", + "description": "Edgy plugin configuration" + }, + "plugin_snacks": { + "type": "file", + "path": "${lua_dir}/plugins/snacks.lua", + "description": "Snacks plugin configuration" + }, + "plugin_mini": { + "type": "file", + "path": "${lua_dir}/plugins/mini.lua", + "description": "Mini plugins configuration" + }, + "plugin_telescope": { + "type": "file", + "path": "${lua_dir}/plugins/telescope.lua", + "description": "Telescope fuzzy finder configuration" + }, + "plugin_colorscheme": { + "type": "file", + "path": "${lua_dir}/plugins/color.lua", + "description": "Color scheme and UI appearance configuration" + } + } +} diff --git a/lua/autocmd.lua b/lua/autocmd.lua index 8c3fc75..cdc4c40 100644 --- a/lua/autocmd.lua +++ b/lua/autocmd.lua @@ -41,4 +41,34 @@ vim.api.nvim_create_autocmd("User", { end, }) + + +local fidget_group = vim.api.nvim_create_augroup("CodeCompanionFidgetHooks", { clear = true }) + +vim.api.nvim_create_autocmd({ "User" }, { + pattern = "CodeCompanionRequestStarted", + group = fidget_group, + callback = function(event) + local FidgetHelper = require('utils.fidget_helper') + -- Pass event instead of request if the callback receives the full event object + local handle = FidgetHelper:create_progress_handle(event) + FidgetHelper:store_progress_handle(event.data.id, handle) + end, +}) + +vim.api.nvim_create_autocmd({ "User" }, { + pattern = "CodeCompanionRequestFinished", + group = fidget_group, + callback = function(event) + local FidgetHelper = require('utils.fidget_helper') + -- Pass event instead of request if the callback receives the full event object + -- Pass event instead of request if the callback receives the full event object + local handle = FidgetHelper:pop_progress_handle(event.data.id) + if handle then + FidgetHelper:report_exit_status(handle, event) + handle:finish() + end + end, +}) + require('helpers').edit_cf('a', '/lua/autocmd.lua') diff --git a/lua/keymap.lua b/lua/keymap.lua index 5138f98..5bfdbed 100644 --- a/lua/keymap.lua +++ b/lua/keymap.lua @@ -40,7 +40,11 @@ vim.keymap.set({ 'n', 'v', 'c', 'i' }, '', 'Telescope lsp_document_sym vim.keymap.set({ 'n', 'v', 'c', 'i' }, '', 'Telescope lsp_workspace_symbols', { desc = 'Show symbols in workspace' }) vim.keymap.set({ 'n', 'v', 'c', 'i' }, '', 'Telescope oldfiles', { desc = 'Show recently opened files' }) vim.keymap.set({ 'n', 'v', 'c', 'i' }, '', function() - require('telescope.builtin').git_files() + require('telescope.builtin').find_files { + show_untracked = true, + no_ignore = false, + hidden = true, + } end, { desc = 'Find all files' }) vim.keymap.set({ 'n', 'v', 'c', 'i' }, '', function() require('telescope.builtin').find_files { @@ -93,7 +97,7 @@ vim.keymap.set('n', 'gd', 'Git diff', { desc = 'Git diff' }) vim.keymap.set('n', 'gdc', 'Git diff --cached', { desc = 'Git diff' }) vim.keymap.set('n', 'gl', 'Git log', { desc = 'Git log' }) vim.keymap.set('n', 'gun', 'Git reset -- %', { desc = 'Git unstage file' }) -vim.keymap.set('n', 'gco', 'Git checkout', { desc = 'Git checkout' }) +vim.keymap.set('n', 'gco', 'Git checkout -- %', { desc = 'Git checkout' }) vim.keymap.set('n', 'G', 'Git', { desc = 'Git' }) vim.keymap.set('n', 'gsta', 'Git stash push', { desc = 'Git stash' }) vim.keymap.set('n', 'gstA', 'Git stash apply', { desc = 'Git stash apply' }) diff --git a/lua/plugins/codecompanion.lua b/lua/plugins/codecompanion.lua index 50a7595..9663a1b 100644 --- a/lua/plugins/codecompanion.lua +++ b/lua/plugins/codecompanion.lua @@ -2,26 +2,43 @@ require('helpers').edit_cf('pa', '/lua/plugins/codecompanion.lua') return { 'olimorris/codecompanion.nvim', - opts = { - adapters = { + opts = function(_, opts) + opts.adapters = { copilot = function() return require('codecompanion.adapters').extend('copilot', { schema = { model = { - default = 'claude-3.7-sonnet', + default = 'gpt-4o', }, }, }) end, - }, - display = { + } + + opts.display = { chat = { show_settings = true, }, - }, - }, + } + + opts.strategies = { + chat = { + adapter = 'copilot', + slash_commands = { + codebase = require('vectorcode.integrations').codecompanion.chat.make_slash_command(), + }, + tools = { + vectorcode = { + description = 'Run VectorCode to retrieve the project context.', + callback = require('vectorcode.integrations').codecompanion.chat.make_tool(), + }, + }, + }, + } + end, dependencies = { 'nvim-lua/plenary.nvim', 'nvim-treesitter/nvim-treesitter', + 'Davidyz/VectorCode', }, } diff --git a/lua/plugins/fidget.lua b/lua/plugins/fidget.lua new file mode 100644 index 0000000..29d3e41 --- /dev/null +++ b/lua/plugins/fidget.lua @@ -0,0 +1,3 @@ +return { + 'j-hui/fidget.nvim', +} diff --git a/lua/plugins/git_blame.lua b/lua/plugins/git_blame.lua new file mode 100644 index 0000000..2ee26bb --- /dev/null +++ b/lua/plugins/git_blame.lua @@ -0,0 +1,10 @@ +return { + 'f-person/git-blame.nvim', + event = 'VeryLazy', + opts = { + enabled = true, -- if you want to enable the plugin + message_template = ' • <>', -- template for the blame message, check the Message template section for more options + date_format = '%m-%d-%Y %H:%M:%S', -- template for the date, check Date format section for more options + virtual_text_column = 1, -- virtual text start column, check Start virtual text at column section for more options + }, +} diff --git a/lua/plugins/gitsigns.lua b/lua/plugins/gitsigns.lua index a3d1b9f..fe8fcf5 100644 --- a/lua/plugins/gitsigns.lua +++ b/lua/plugins/gitsigns.lua @@ -1,3 +1,4 @@ +require('helpers').edit_cf('pg', '/lua/plugins/gitsigns.lua') -- Adds git related signs to the gutter, as well as utilities for managing changes -- See `:help gitsigns` return { diff --git a/lua/plugins/vectorcode.lua b/lua/plugins/vectorcode.lua new file mode 100644 index 0000000..6470792 --- /dev/null +++ b/lua/plugins/vectorcode.lua @@ -0,0 +1,8 @@ +require('helpers').edit_cf('pv', '/lua/plugins/vectorcode.lua') +return { + 'Davidyz/VectorCode', + version = '*', -- optional, depending on whether you're on nightly or release + dependencies = { 'nvim-lua/plenary.nvim' }, + build = 'pipx upgrade vectorcode', + cmd = 'VectorCode', -- if you're lazy-loading VectorCode +} diff --git a/lua/utils/fidget_helper.lua b/lua/utils/fidget_helper.lua new file mode 100644 index 0000000..e452184 --- /dev/null +++ b/lua/utils/fidget_helper.lua @@ -0,0 +1,53 @@ +local progress = require 'fidget.progress' +local M = {} + +M.handles = {} + +function M:store_progress_handle(id, handle) + M.handles[id] = handle +end + +function M:pop_progress_handle(id) + local handle = M.handles[id] + M.handles[id] = nil + return handle +end + +function M:create_progress_handle(request) + -- Ensure request.data and request.data.adapter exist before accessing them + local strategy = request.data and request.data.strategy or 'unknown' + local adapter_info = request.data and request.data.adapter or {} + + return progress.handle.create { + title = ' Requesting assistance (' .. strategy .. ')', + message = 'In progress...', + lsp_client = { + name = M:llm_role_title(adapter_info), + }, + } +end + +function M:llm_role_title(adapter) + local parts = {} + -- Use adapter.formatted_name if available, otherwise default + local name = adapter.formatted_name or 'LLM' + table.insert(parts, name) + if adapter.model and adapter.model ~= '' then + table.insert(parts, '(' .. adapter.model .. ')') + end + return table.concat(parts, ' ') +end + +function M:report_exit_status(handle, request) + -- Ensure request.data exists before accessing status + local status = request.data and request.data.status or 'unknown' + if status == 'success' then + handle.message = 'Completed' + elseif status == 'error' then + handle.message = ' Error' + else -- Includes "cancelled" or any other status + handle.message = '󰜺 Cancelled/Other' + end +end + +return M