argustack 0.1.34 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -98
- package/dist/adapters/board/board-sync.js +2 -2
- package/dist/adapters/board/board-sync.js.map +1 -1
- package/dist/adapters/board/md-parser.js +3 -3
- package/dist/adapters/board/md-parser.js.map +1 -1
- package/dist/adapters/board/skill-discovery.js +2 -2
- package/dist/adapters/board/skill-discovery.js.map +1 -1
- package/dist/adapters/board/skill-runner.js +2 -2
- package/dist/adapters/board/skill-runner.js.map +1 -1
- package/dist/adapters/board/store.d.ts.map +1 -1
- package/dist/adapters/board/store.js +11 -11
- package/dist/adapters/board/store.js.map +1 -1
- package/dist/adapters/csv/mapper.js +11 -11
- package/dist/adapters/csv/mapper.js.map +1 -1
- package/dist/adapters/csv/parser.d.ts.map +1 -1
- package/dist/adapters/csv/parser.js +8 -7
- package/dist/adapters/csv/parser.js.map +1 -1
- package/dist/adapters/csv/provider.js +4 -4
- package/dist/adapters/csv/provider.js.map +1 -1
- package/dist/adapters/db/client.js +2 -2
- package/dist/adapters/db/client.js.map +1 -1
- package/dist/adapters/db/index.js +1 -0
- package/dist/adapters/db/index.js.map +1 -1
- package/dist/adapters/db/mapper.js +1 -1
- package/dist/adapters/db/mapper.js.map +1 -1
- package/dist/adapters/db/provider.js +4 -4
- package/dist/adapters/db/provider.js.map +1 -1
- package/dist/adapters/db/sql-validator.js +2 -2
- package/dist/adapters/db/sql-validator.js.map +1 -1
- package/dist/adapters/docker/cli-docker-control.d.ts +13 -0
- package/dist/adapters/docker/cli-docker-control.d.ts.map +1 -0
- package/dist/adapters/docker/cli-docker-control.js +70 -0
- package/dist/adapters/docker/cli-docker-control.js.map +1 -0
- package/dist/adapters/docker/index.d.ts +2 -0
- package/dist/adapters/docker/index.d.ts.map +1 -0
- package/dist/adapters/docker/index.js +2 -0
- package/dist/adapters/docker/index.js.map +1 -0
- package/dist/adapters/git/mapper.js +1 -1
- package/dist/adapters/git/mapper.js.map +1 -1
- package/dist/adapters/git/provider.js +4 -4
- package/dist/adapters/git/provider.js.map +1 -1
- package/dist/adapters/github/mapper.js +3 -3
- package/dist/adapters/github/mapper.js.map +1 -1
- package/dist/adapters/github/provider.d.ts.map +1 -1
- package/dist/adapters/github/provider.js +2 -2
- package/dist/adapters/github/provider.js.map +1 -1
- package/dist/adapters/jira/mapper.js +4 -4
- package/dist/adapters/jira/mapper.js.map +1 -1
- package/dist/adapters/jira/provider.js +8 -8
- package/dist/adapters/jira/provider.js.map +1 -1
- package/dist/adapters/jira-proxy/client.js +4 -4
- package/dist/adapters/jira-proxy/client.js.map +1 -1
- package/dist/adapters/jira-proxy/config-loader.d.ts +9 -0
- package/dist/adapters/jira-proxy/config-loader.d.ts.map +1 -1
- package/dist/adapters/jira-proxy/config-loader.js +26 -3
- package/dist/adapters/jira-proxy/config-loader.js.map +1 -1
- package/dist/adapters/jira-proxy/index.d.ts +1 -1
- package/dist/adapters/jira-proxy/index.d.ts.map +1 -1
- package/dist/adapters/jira-proxy/index.js +1 -1
- package/dist/adapters/jira-proxy/index.js.map +1 -1
- package/dist/adapters/jira-proxy/mapper.js +2 -2
- package/dist/adapters/jira-proxy/mapper.js.map +1 -1
- package/dist/adapters/jira-proxy/provider.d.ts.map +1 -1
- package/dist/adapters/jira-proxy/provider.js +19 -8
- package/dist/adapters/jira-proxy/provider.js.map +1 -1
- package/dist/adapters/lmstudio/embedding-provider.d.ts +37 -0
- package/dist/adapters/lmstudio/embedding-provider.d.ts.map +1 -0
- package/dist/adapters/lmstudio/embedding-provider.js +174 -0
- package/dist/adapters/lmstudio/embedding-provider.js.map +1 -0
- package/dist/adapters/lmstudio/index.d.ts +3 -0
- package/dist/adapters/lmstudio/index.d.ts.map +1 -0
- package/dist/adapters/lmstudio/index.js +2 -0
- package/dist/adapters/lmstudio/index.js.map +1 -0
- package/dist/adapters/lsp/index.d.ts +4 -0
- package/dist/adapters/lsp/index.d.ts.map +1 -0
- package/dist/adapters/lsp/index.js +3 -0
- package/dist/adapters/lsp/index.js.map +1 -0
- package/dist/adapters/lsp/jsonrpc.d.ts +12 -0
- package/dist/adapters/lsp/jsonrpc.d.ts.map +1 -0
- package/dist/adapters/lsp/jsonrpc.js +30 -0
- package/dist/adapters/lsp/jsonrpc.js.map +1 -0
- package/dist/adapters/lsp/typescript-lsp.d.ts +25 -0
- package/dist/adapters/lsp/typescript-lsp.d.ts.map +1 -0
- package/dist/adapters/lsp/typescript-lsp.js +131 -0
- package/dist/adapters/lsp/typescript-lsp.js.map +1 -0
- package/dist/adapters/neo4j/client.d.ts +11 -0
- package/dist/adapters/neo4j/client.d.ts.map +1 -0
- package/dist/adapters/neo4j/client.js +14 -0
- package/dist/adapters/neo4j/client.js.map +1 -0
- package/dist/adapters/neo4j/cypher.d.ts +23 -0
- package/dist/adapters/neo4j/cypher.d.ts.map +1 -0
- package/dist/adapters/neo4j/cypher.js +138 -0
- package/dist/adapters/neo4j/cypher.js.map +1 -0
- package/dist/adapters/neo4j/graph-store.d.ts +33 -0
- package/dist/adapters/neo4j/graph-store.d.ts.map +1 -0
- package/dist/adapters/neo4j/graph-store.js +282 -0
- package/dist/adapters/neo4j/graph-store.js.map +1 -0
- package/dist/adapters/neo4j/index.d.ts +4 -0
- package/dist/adapters/neo4j/index.d.ts.map +1 -0
- package/dist/adapters/neo4j/index.js +3 -0
- package/dist/adapters/neo4j/index.js.map +1 -0
- package/dist/adapters/neo4j/mapper.d.ts +5 -0
- package/dist/adapters/neo4j/mapper.d.ts.map +1 -0
- package/dist/adapters/neo4j/mapper.js +49 -0
- package/dist/adapters/neo4j/mapper.js.map +1 -0
- package/dist/adapters/ollama/chat-llm.d.ts +24 -0
- package/dist/adapters/ollama/chat-llm.d.ts.map +1 -0
- package/dist/adapters/ollama/chat-llm.js +53 -0
- package/dist/adapters/ollama/chat-llm.js.map +1 -0
- package/dist/adapters/ollama/embedding-provider.d.ts +30 -0
- package/dist/adapters/ollama/embedding-provider.d.ts.map +1 -0
- package/dist/adapters/ollama/embedding-provider.js +124 -0
- package/dist/adapters/ollama/embedding-provider.js.map +1 -0
- package/dist/adapters/ollama/http-ollama-control.d.ts +24 -0
- package/dist/adapters/ollama/http-ollama-control.d.ts.map +1 -0
- package/dist/adapters/ollama/http-ollama-control.js +224 -0
- package/dist/adapters/ollama/http-ollama-control.js.map +1 -0
- package/dist/adapters/ollama/index.d.ts +6 -0
- package/dist/adapters/ollama/index.d.ts.map +1 -0
- package/dist/adapters/ollama/index.js +4 -0
- package/dist/adapters/ollama/index.js.map +1 -0
- package/dist/adapters/platform/index.d.ts +2 -0
- package/dist/adapters/platform/index.d.ts.map +1 -0
- package/dist/adapters/platform/index.js +2 -0
- package/dist/adapters/platform/index.js.map +1 -0
- package/dist/adapters/platform/node-platform-probe.d.ts +9 -0
- package/dist/adapters/platform/node-platform-probe.d.ts.map +1 -0
- package/dist/adapters/platform/node-platform-probe.js +88 -0
- package/dist/adapters/platform/node-platform-probe.js.map +1 -0
- package/dist/adapters/postgres/code-meta.d.ts +21 -0
- package/dist/adapters/postgres/code-meta.d.ts.map +1 -0
- package/dist/adapters/postgres/code-meta.js +150 -0
- package/dist/adapters/postgres/code-meta.js.map +1 -0
- package/dist/adapters/postgres/index.d.ts +3 -0
- package/dist/adapters/postgres/index.d.ts.map +1 -1
- package/dist/adapters/postgres/index.js +3 -0
- package/dist/adapters/postgres/index.js.map +1 -1
- package/dist/adapters/postgres/migrate-helpers.d.ts +43 -0
- package/dist/adapters/postgres/migrate-helpers.d.ts.map +1 -0
- package/dist/adapters/postgres/migrate-helpers.js +136 -0
- package/dist/adapters/postgres/migrate-helpers.js.map +1 -0
- package/dist/adapters/postgres/readiness-probe.d.ts +22 -0
- package/dist/adapters/postgres/readiness-probe.d.ts.map +1 -0
- package/dist/adapters/postgres/readiness-probe.js +47 -0
- package/dist/adapters/postgres/readiness-probe.js.map +1 -0
- package/dist/adapters/postgres/schema.d.ts +11 -1
- package/dist/adapters/postgres/schema.d.ts.map +1 -1
- package/dist/adapters/postgres/schema.js +192 -108
- package/dist/adapters/postgres/schema.js.map +1 -1
- package/dist/adapters/postgres/storage-commits.d.ts +13 -0
- package/dist/adapters/postgres/storage-commits.d.ts.map +1 -0
- package/dist/adapters/postgres/storage-commits.js +63 -0
- package/dist/adapters/postgres/storage-commits.js.map +1 -0
- package/dist/adapters/postgres/storage-dbschema.d.ts +14 -0
- package/dist/adapters/postgres/storage-dbschema.d.ts.map +1 -0
- package/dist/adapters/postgres/storage-dbschema.js +63 -0
- package/dist/adapters/postgres/storage-dbschema.js.map +1 -0
- package/dist/adapters/postgres/storage-graph.d.ts +18 -0
- package/dist/adapters/postgres/storage-graph.d.ts.map +1 -0
- package/dist/adapters/postgres/storage-graph.js +127 -0
- package/dist/adapters/postgres/storage-graph.js.map +1 -0
- package/dist/adapters/postgres/storage-issues.d.ts +26 -0
- package/dist/adapters/postgres/storage-issues.d.ts.map +1 -0
- package/dist/adapters/postgres/storage-issues.js +233 -0
- package/dist/adapters/postgres/storage-issues.js.map +1 -0
- package/dist/adapters/postgres/storage-prs.d.ts +15 -0
- package/dist/adapters/postgres/storage-prs.d.ts.map +1 -0
- package/dist/adapters/postgres/storage-prs.js +142 -0
- package/dist/adapters/postgres/storage-prs.js.map +1 -0
- package/dist/adapters/postgres/storage-query.d.ts +26 -0
- package/dist/adapters/postgres/storage-query.d.ts.map +1 -0
- package/dist/adapters/postgres/storage-query.js +74 -0
- package/dist/adapters/postgres/storage-query.js.map +1 -0
- package/dist/adapters/postgres/storage-search.d.ts +18 -0
- package/dist/adapters/postgres/storage-search.d.ts.map +1 -0
- package/dist/adapters/postgres/storage-search.js +90 -0
- package/dist/adapters/postgres/storage-search.js.map +1 -0
- package/dist/adapters/postgres/storage.d.ts +49 -33
- package/dist/adapters/postgres/storage.d.ts.map +1 -1
- package/dist/adapters/postgres/storage.js +89 -605
- package/dist/adapters/postgres/storage.js.map +1 -1
- package/dist/adapters/postgres/workspace-store.d.ts +26 -0
- package/dist/adapters/postgres/workspace-store.d.ts.map +1 -0
- package/dist/adapters/postgres/workspace-store.js +94 -0
- package/dist/adapters/postgres/workspace-store.js.map +1 -0
- package/dist/adapters/qdrant/client.d.ts +8 -0
- package/dist/adapters/qdrant/client.d.ts.map +1 -0
- package/dist/adapters/qdrant/client.js +12 -0
- package/dist/adapters/qdrant/client.js.map +1 -0
- package/dist/adapters/qdrant/index.d.ts +4 -0
- package/dist/adapters/qdrant/index.d.ts.map +1 -0
- package/dist/adapters/qdrant/index.js +3 -0
- package/dist/adapters/qdrant/index.js.map +1 -0
- package/dist/adapters/qdrant/mapper.d.ts +16 -0
- package/dist/adapters/qdrant/mapper.d.ts.map +1 -0
- package/dist/adapters/qdrant/mapper.js +59 -0
- package/dist/adapters/qdrant/mapper.js.map +1 -0
- package/dist/adapters/qdrant/vector-store.d.ts +20 -0
- package/dist/adapters/qdrant/vector-store.d.ts.map +1 -0
- package/dist/adapters/qdrant/vector-store.js +144 -0
- package/dist/adapters/qdrant/vector-store.js.map +1 -0
- package/dist/adapters/tree-sitter/index.d.ts +4 -0
- package/dist/adapters/tree-sitter/index.d.ts.map +1 -0
- package/dist/adapters/tree-sitter/index.js +3 -0
- package/dist/adapters/tree-sitter/index.js.map +1 -0
- package/dist/adapters/tree-sitter/parser.d.ts +15 -0
- package/dist/adapters/tree-sitter/parser.d.ts.map +1 -0
- package/dist/adapters/tree-sitter/parser.js +186 -0
- package/dist/adapters/tree-sitter/parser.js.map +1 -0
- package/dist/adapters/tree-sitter/queries.d.ts +14 -0
- package/dist/adapters/tree-sitter/queries.d.ts.map +1 -0
- package/dist/adapters/tree-sitter/queries.js +14 -0
- package/dist/adapters/tree-sitter/queries.js.map +1 -0
- package/dist/adapters/voyage/embedding-provider.d.ts +25 -0
- package/dist/adapters/voyage/embedding-provider.d.ts.map +1 -0
- package/dist/adapters/voyage/embedding-provider.js +105 -0
- package/dist/adapters/voyage/embedding-provider.js.map +1 -0
- package/dist/adapters/voyage/index.d.ts +3 -0
- package/dist/adapters/voyage/index.d.ts.map +1 -0
- package/dist/adapters/voyage/index.js +2 -0
- package/dist/adapters/voyage/index.js.map +1 -0
- package/dist/cli/add/code.d.ts +3 -0
- package/dist/cli/add/code.d.ts.map +1 -0
- package/dist/cli/add/code.js +97 -0
- package/dist/cli/add/code.js.map +1 -0
- package/dist/cli/add/csv.d.ts +3 -0
- package/dist/cli/add/csv.d.ts.map +1 -0
- package/dist/cli/add/csv.js +26 -0
- package/dist/cli/add/csv.js.map +1 -0
- package/dist/cli/add/db.d.ts +3 -0
- package/dist/cli/add/db.d.ts.map +1 -0
- package/dist/cli/add/db.js +46 -0
- package/dist/cli/add/db.js.map +1 -0
- package/dist/cli/add/git.d.ts +3 -0
- package/dist/cli/add/git.d.ts.map +1 -0
- package/dist/cli/add/git.js +26 -0
- package/dist/cli/add/git.js.map +1 -0
- package/dist/cli/add/github.d.ts +3 -0
- package/dist/cli/add/github.d.ts.map +1 -0
- package/dist/cli/add/github.js +32 -0
- package/dist/cli/add/github.js.map +1 -0
- package/dist/cli/add/index.d.ts +3 -0
- package/dist/cli/add/index.d.ts.map +1 -0
- package/dist/cli/add/index.js +18 -0
- package/dist/cli/add/index.js.map +1 -0
- package/dist/cli/add/jira.d.ts +3 -0
- package/dist/cli/add/jira.d.ts.map +1 -0
- package/dist/cli/add/jira.js +45 -0
- package/dist/cli/add/jira.js.map +1 -0
- package/dist/cli/add/shared.d.ts +31 -0
- package/dist/cli/add/shared.d.ts.map +1 -0
- package/dist/cli/add/shared.js +102 -0
- package/dist/cli/add/shared.js.map +1 -0
- package/dist/cli/board-server.js +1 -1
- package/dist/cli/board-server.js.map +1 -1
- package/dist/cli/board.d.ts.map +1 -1
- package/dist/cli/board.js +11 -12
- package/dist/cli/board.js.map +1 -1
- package/dist/cli/code.d.ts +3 -0
- package/dist/cli/code.d.ts.map +1 -0
- package/dist/cli/code.js +467 -0
- package/dist/cli/code.js.map +1 -0
- package/dist/cli/embed.d.ts.map +1 -1
- package/dist/cli/embed.js +21 -26
- package/dist/cli/embed.js.map +1 -1
- package/dist/cli/graph.d.ts.map +1 -1
- package/dist/cli/graph.js +37 -55
- package/dist/cli/graph.js.map +1 -1
- package/dist/cli/index.js +30 -25
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/cleanup.d.ts +11 -0
- package/dist/cli/init/cleanup.d.ts.map +1 -0
- package/dist/cli/init/cleanup.js +39 -0
- package/dist/cli/init/cleanup.js.map +1 -0
- package/dist/cli/init/generators.js +27 -27
- package/dist/cli/init/generators.js.map +1 -1
- package/dist/cli/init/index.d.ts +0 -10
- package/dist/cli/init/index.d.ts.map +1 -1
- package/dist/cli/init/index.js +386 -351
- package/dist/cli/init/index.js.map +1 -1
- package/dist/cli/init/presenter.d.ts +30 -0
- package/dist/cli/init/presenter.d.ts.map +1 -0
- package/dist/cli/init/presenter.js +152 -0
- package/dist/cli/init/presenter.js.map +1 -0
- package/dist/cli/init/prompts.d.ts +28 -0
- package/dist/cli/init/prompts.d.ts.map +1 -0
- package/dist/cli/init/prompts.js +110 -0
- package/dist/cli/init/prompts.js.map +1 -0
- package/dist/cli/init/setup-csv.js +2 -2
- package/dist/cli/init/setup-csv.js.map +1 -1
- package/dist/cli/init/setup-db.d.ts.map +1 -1
- package/dist/cli/init/setup-db.js +17 -14
- package/dist/cli/init/setup-db.js.map +1 -1
- package/dist/cli/init/setup-git.js +16 -16
- package/dist/cli/init/setup-git.js.map +1 -1
- package/dist/cli/init/setup-github.d.ts.map +1 -1
- package/dist/cli/init/setup-github.js +7 -5
- package/dist/cli/init/setup-github.js.map +1 -1
- package/dist/cli/init/setup-jira.d.ts.map +1 -1
- package/dist/cli/init/setup-jira.js +11 -9
- package/dist/cli/init/setup-jira.js.map +1 -1
- package/dist/cli/init/types.d.ts +4 -0
- package/dist/cli/init/types.d.ts.map +1 -1
- package/dist/cli/init/types.js +4 -4
- package/dist/cli/init/types.js.map +1 -1
- package/dist/cli/mcp-install.d.ts +1 -1
- package/dist/cli/mcp-install.d.ts.map +1 -1
- package/dist/cli/mcp-install.js +10 -24
- package/dist/cli/mcp-install.js.map +1 -1
- package/dist/cli/migrate-to-hub-impl.d.ts +51 -0
- package/dist/cli/migrate-to-hub-impl.d.ts.map +1 -0
- package/dist/cli/migrate-to-hub-impl.js +171 -0
- package/dist/cli/migrate-to-hub-impl.js.map +1 -0
- package/dist/cli/migrate-to-hub.d.ts +3 -0
- package/dist/cli/migrate-to-hub.d.ts.map +1 -0
- package/dist/cli/migrate-to-hub.js +90 -0
- package/dist/cli/migrate-to-hub.js.map +1 -0
- package/dist/cli/push.d.ts.map +1 -1
- package/dist/cli/push.js +62 -65
- package/dist/cli/push.js.map +1 -1
- package/dist/cli/sources.d.ts +0 -7
- package/dist/cli/sources.d.ts.map +1 -1
- package/dist/cli/sources.js +47 -112
- package/dist/cli/sources.js.map +1 -1
- package/dist/cli/status.d.ts +0 -3
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +95 -70
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/sync.d.ts +0 -10
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +186 -314
- package/dist/cli/sync.js.map +1 -1
- package/dist/cli/workspace/add.d.ts +3 -0
- package/dist/cli/workspace/add.d.ts.map +1 -0
- package/dist/cli/workspace/add.js +38 -0
- package/dist/cli/workspace/add.js.map +1 -0
- package/dist/cli/workspace/index.d.ts +3 -0
- package/dist/cli/workspace/index.d.ts.map +1 -0
- package/dist/cli/workspace/index.js +16 -0
- package/dist/cli/workspace/index.js.map +1 -0
- package/dist/cli/workspace/info.d.ts +3 -0
- package/dist/cli/workspace/info.d.ts.map +1 -0
- package/dist/cli/workspace/info.js +69 -0
- package/dist/cli/workspace/info.js.map +1 -0
- package/dist/cli/workspace/list.d.ts +3 -0
- package/dist/cli/workspace/list.d.ts.map +1 -0
- package/dist/cli/workspace/list.js +36 -0
- package/dist/cli/workspace/list.js.map +1 -0
- package/dist/cli/workspace/remove.d.ts +3 -0
- package/dist/cli/workspace/remove.d.ts.map +1 -0
- package/dist/cli/workspace/remove.js +43 -0
- package/dist/cli/workspace/remove.js.map +1 -0
- package/dist/cli/workspace/shared.d.ts +7 -0
- package/dist/cli/workspace/shared.d.ts.map +1 -0
- package/dist/cli/workspace/shared.js +17 -0
- package/dist/cli/workspace/shared.js.map +1 -0
- package/dist/cli/workspace/use.d.ts +3 -0
- package/dist/cli/workspace/use.d.ts.map +1 -0
- package/dist/cli/workspace/use.js +27 -0
- package/dist/cli/workspace/use.js.map +1 -0
- package/dist/code-intel/chunker.d.ts +15 -0
- package/dist/code-intel/chunker.d.ts.map +1 -0
- package/dist/code-intel/chunker.js +39 -0
- package/dist/code-intel/chunker.js.map +1 -0
- package/dist/code-intel/file-discovery.d.ts +19 -0
- package/dist/code-intel/file-discovery.d.ts.map +1 -0
- package/dist/code-intel/file-discovery.js +80 -0
- package/dist/code-intel/file-discovery.js.map +1 -0
- package/dist/code-intel/hash.d.ts +2 -0
- package/dist/code-intel/hash.d.ts.map +1 -0
- package/dist/code-intel/hash.js +5 -0
- package/dist/code-intel/hash.js.map +1 -0
- package/dist/code-intel/index.d.ts +17 -0
- package/dist/code-intel/index.d.ts.map +1 -0
- package/dist/code-intel/index.js +11 -0
- package/dist/code-intel/index.js.map +1 -0
- package/dist/code-intel/indexer.d.ts +43 -0
- package/dist/code-intel/indexer.d.ts.map +1 -0
- package/dist/code-intel/indexer.js +234 -0
- package/dist/code-intel/indexer.js.map +1 -0
- package/dist/code-intel/job-lock.d.ts +7 -0
- package/dist/code-intel/job-lock.d.ts.map +1 -0
- package/dist/code-intel/job-lock.js +18 -0
- package/dist/code-intel/job-lock.js.map +1 -0
- package/dist/code-intel/layer-detector.d.ts +9 -0
- package/dist/code-intel/layer-detector.d.ts.map +1 -0
- package/dist/code-intel/layer-detector.js +31 -0
- package/dist/code-intel/layer-detector.js.map +1 -0
- package/dist/code-intel/lsp-resolver.d.ts +24 -0
- package/dist/code-intel/lsp-resolver.d.ts.map +1 -0
- package/dist/code-intel/lsp-resolver.js +125 -0
- package/dist/code-intel/lsp-resolver.js.map +1 -0
- package/dist/code-intel/ranker.d.ts +42 -0
- package/dist/code-intel/ranker.d.ts.map +1 -0
- package/dist/code-intel/ranker.js +123 -0
- package/dist/code-intel/ranker.js.map +1 -0
- package/dist/code-intel/resolver.d.ts +14 -0
- package/dist/code-intel/resolver.d.ts.map +1 -0
- package/dist/code-intel/resolver.js +59 -0
- package/dist/code-intel/resolver.js.map +1 -0
- package/dist/code-intel/tsconfig-paths.d.ts +11 -0
- package/dist/code-intel/tsconfig-paths.d.ts.map +1 -0
- package/dist/code-intel/tsconfig-paths.js +67 -0
- package/dist/code-intel/tsconfig-paths.js.map +1 -0
- package/dist/code-intel/watcher.d.ts +27 -0
- package/dist/code-intel/watcher.d.ts.map +1 -0
- package/dist/code-intel/watcher.js +93 -0
- package/dist/code-intel/watcher.js.map +1 -0
- package/dist/core/board/board-column.value-object.js +1 -1
- package/dist/core/board/board-column.value-object.js.map +1 -1
- package/dist/core/board/pipeline.value-object.js +1 -1
- package/dist/core/board/pipeline.value-object.js.map +1 -1
- package/dist/core/board/skill-execution.entity.js +1 -1
- package/dist/core/board/skill-execution.entity.js.map +1 -1
- package/dist/core/board/task-title.value-object.js +1 -1
- package/dist/core/board/task-title.value-object.js.map +1 -1
- package/dist/core/ports/chat-llm.d.ts +36 -0
- package/dist/core/ports/chat-llm.d.ts.map +1 -0
- package/dist/core/ports/chat-llm.js +2 -0
- package/dist/core/ports/chat-llm.js.map +1 -0
- package/dist/core/ports/code-embedding.d.ts +42 -0
- package/dist/core/ports/code-embedding.d.ts.map +1 -0
- package/dist/core/ports/code-embedding.js +2 -0
- package/dist/core/ports/code-embedding.js.map +1 -0
- package/dist/core/ports/code-graph.d.ts +56 -0
- package/dist/core/ports/code-graph.d.ts.map +1 -0
- package/dist/core/ports/code-graph.js +2 -0
- package/dist/core/ports/code-graph.js.map +1 -0
- package/dist/core/ports/code-meta.d.ts +37 -0
- package/dist/core/ports/code-meta.d.ts.map +1 -0
- package/dist/core/ports/code-meta.js +2 -0
- package/dist/core/ports/code-meta.js.map +1 -0
- package/dist/core/ports/code-parser.d.ts +13 -0
- package/dist/core/ports/code-parser.d.ts.map +1 -0
- package/dist/core/ports/code-parser.js +2 -0
- package/dist/core/ports/code-parser.js.map +1 -0
- package/dist/core/ports/code-vector-store.d.ts +42 -0
- package/dist/core/ports/code-vector-store.d.ts.map +1 -0
- package/dist/core/ports/code-vector-store.js +2 -0
- package/dist/core/ports/code-vector-store.js.map +1 -0
- package/dist/core/ports/docker-control.d.ts +44 -0
- package/dist/core/ports/docker-control.d.ts.map +1 -0
- package/dist/core/ports/docker-control.js +8 -0
- package/dist/core/ports/docker-control.js.map +1 -0
- package/dist/core/ports/hub-readiness-probe.d.ts +22 -0
- package/dist/core/ports/hub-readiness-probe.d.ts.map +1 -0
- package/dist/core/ports/hub-readiness-probe.js +2 -0
- package/dist/core/ports/hub-readiness-probe.js.map +1 -0
- package/dist/core/ports/index.d.ts +10 -0
- package/dist/core/ports/index.d.ts.map +1 -1
- package/dist/core/ports/lsp-client.d.ts +22 -0
- package/dist/core/ports/lsp-client.d.ts.map +1 -0
- package/dist/core/ports/lsp-client.js +2 -0
- package/dist/core/ports/lsp-client.js.map +1 -0
- package/dist/core/ports/ollama-control.d.ts +61 -0
- package/dist/core/ports/ollama-control.d.ts.map +1 -0
- package/dist/core/ports/ollama-control.js +7 -0
- package/dist/core/ports/ollama-control.js.map +1 -0
- package/dist/core/ports/platform-probe.d.ts +47 -0
- package/dist/core/ports/platform-probe.d.ts.map +1 -0
- package/dist/core/ports/platform-probe.js +8 -0
- package/dist/core/ports/platform-probe.js.map +1 -0
- package/dist/core/ports/storage.d.ts +62 -29
- package/dist/core/ports/storage.d.ts.map +1 -1
- package/dist/core/ports/workspace-store.d.ts +52 -0
- package/dist/core/ports/workspace-store.d.ts.map +1 -0
- package/dist/core/ports/workspace-store.js +2 -0
- package/dist/core/ports/workspace-store.js.map +1 -0
- package/dist/core/types/code.d.ts +153 -0
- package/dist/core/types/code.d.ts.map +1 -0
- package/dist/core/types/code.js +2 -0
- package/dist/core/types/code.js.map +1 -0
- package/dist/core/types/config.d.ts +1 -1
- package/dist/core/types/config.d.ts.map +1 -1
- package/dist/core/types/config.js +8 -1
- package/dist/core/types/config.js.map +1 -1
- package/dist/core/types/index.d.ts +3 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/init.d.ts +29 -0
- package/dist/core/types/init.d.ts.map +1 -0
- package/dist/core/types/init.js +2 -0
- package/dist/core/types/init.js.map +1 -0
- package/dist/core/types/workspace.d.ts +78 -0
- package/dist/core/types/workspace.d.ts.map +1 -0
- package/dist/core/types/workspace.js +2 -0
- package/dist/core/types/workspace.js.map +1 -0
- package/dist/mcp/helpers.d.ts +131 -19
- package/dist/mcp/helpers.d.ts.map +1 -1
- package/dist/mcp/helpers.js +271 -141
- package/dist/mcp/helpers.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +49 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/code-graph.d.ts +3 -0
- package/dist/mcp/tools/code-graph.d.ts.map +1 -0
- package/dist/mcp/tools/code-graph.js +330 -0
- package/dist/mcp/tools/code-graph.js.map +1 -0
- package/dist/mcp/tools/code-hybrid.d.ts +3 -0
- package/dist/mcp/tools/code-hybrid.d.ts.map +1 -0
- package/dist/mcp/tools/code-hybrid.js +142 -0
- package/dist/mcp/tools/code-hybrid.js.map +1 -0
- package/dist/mcp/tools/code-search.d.ts +3 -0
- package/dist/mcp/tools/code-search.d.ts.map +1 -0
- package/dist/mcp/tools/code-search.js +95 -0
- package/dist/mcp/tools/code-search.js.map +1 -0
- package/dist/mcp/tools/database.d.ts.map +1 -1
- package/dist/mcp/tools/database.js +86 -97
- package/dist/mcp/tools/database.js.map +1 -1
- package/dist/mcp/tools/estimate.d.ts.map +1 -1
- package/dist/mcp/tools/estimate.js +106 -82
- package/dist/mcp/tools/estimate.js.map +1 -1
- package/dist/mcp/tools/graph.d.ts.map +1 -1
- package/dist/mcp/tools/graph.js +142 -157
- package/dist/mcp/tools/graph.js.map +1 -1
- package/dist/mcp/tools/issue.d.ts.map +1 -1
- package/dist/mcp/tools/issue.js +172 -172
- package/dist/mcp/tools/issue.js.map +1 -1
- package/dist/mcp/tools/push.d.ts.map +1 -1
- package/dist/mcp/tools/push.js +70 -100
- package/dist/mcp/tools/push.js.map +1 -1
- package/dist/mcp/tools/query.d.ts.map +1 -1
- package/dist/mcp/tools/query.js +187 -246
- package/dist/mcp/tools/query.js.map +1 -1
- package/dist/mcp/tools/search.d.ts.map +1 -1
- package/dist/mcp/tools/search.js +25 -22
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/mcp/tools/workspace.d.ts.map +1 -1
- package/dist/mcp/tools/workspace.js +120 -73
- package/dist/mcp/tools/workspace.js.map +1 -1
- package/dist/use-cases/build-graph.d.ts +1 -1
- package/dist/use-cases/build-graph.d.ts.map +1 -1
- package/dist/use-cases/build-graph.js +63 -50
- package/dist/use-cases/build-graph.js.map +1 -1
- package/dist/use-cases/code-search.d.ts +60 -0
- package/dist/use-cases/code-search.d.ts.map +1 -0
- package/dist/use-cases/code-search.js +163 -0
- package/dist/use-cases/code-search.js.map +1 -0
- package/dist/use-cases/embed.d.ts +1 -1
- package/dist/use-cases/embed.d.ts.map +1 -1
- package/dist/use-cases/embed.js +5 -5
- package/dist/use-cases/embed.js.map +1 -1
- package/dist/use-cases/index-code.d.ts +24 -0
- package/dist/use-cases/index-code.d.ts.map +1 -0
- package/dist/use-cases/index-code.js +43 -0
- package/dist/use-cases/index-code.js.map +1 -0
- package/dist/use-cases/init/bootstrap-hub.d.ts +55 -0
- package/dist/use-cases/init/bootstrap-hub.d.ts.map +1 -0
- package/dist/use-cases/init/bootstrap-hub.js +116 -0
- package/dist/use-cases/init/bootstrap-hub.js.map +1 -0
- package/dist/use-cases/init/check-dims-conflict.d.ts +33 -0
- package/dist/use-cases/init/check-dims-conflict.d.ts.map +1 -0
- package/dist/use-cases/init/check-dims-conflict.js +39 -0
- package/dist/use-cases/init/check-dims-conflict.js.map +1 -0
- package/dist/use-cases/init/check-hub-exists.d.ts +23 -0
- package/dist/use-cases/init/check-hub-exists.d.ts.map +1 -0
- package/dist/use-cases/init/check-hub-exists.js +39 -0
- package/dist/use-cases/init/check-hub-exists.js.map +1 -0
- package/dist/use-cases/init/check-ports.d.ts +18 -0
- package/dist/use-cases/init/check-ports.d.ts.map +1 -0
- package/dist/use-cases/init/check-ports.js +25 -0
- package/dist/use-cases/init/check-ports.js.map +1 -0
- package/dist/use-cases/init/check-versions.d.ts +37 -0
- package/dist/use-cases/init/check-versions.d.ts.map +1 -0
- package/dist/use-cases/init/check-versions.js +50 -0
- package/dist/use-cases/init/check-versions.js.map +1 -0
- package/dist/use-cases/init/clear-stale-active.d.ts +20 -0
- package/dist/use-cases/init/clear-stale-active.d.ts.map +1 -0
- package/dist/use-cases/init/clear-stale-active.js +26 -0
- package/dist/use-cases/init/clear-stale-active.js.map +1 -0
- package/dist/use-cases/init/ensure-embedding-model.d.ts +20 -0
- package/dist/use-cases/init/ensure-embedding-model.d.ts.map +1 -0
- package/dist/use-cases/init/ensure-embedding-model.js +24 -0
- package/dist/use-cases/init/ensure-embedding-model.js.map +1 -0
- package/dist/use-cases/init/ensure-ollama-running.d.ts +19 -0
- package/dist/use-cases/init/ensure-ollama-running.d.ts.map +1 -0
- package/dist/use-cases/init/ensure-ollama-running.js +24 -0
- package/dist/use-cases/init/ensure-ollama-running.js.map +1 -0
- package/dist/use-cases/init/health-check-existing-llm.d.ts +25 -0
- package/dist/use-cases/init/health-check-existing-llm.d.ts.map +1 -0
- package/dist/use-cases/init/health-check-existing-llm.js +42 -0
- package/dist/use-cases/init/health-check-existing-llm.js.map +1 -0
- package/dist/use-cases/init/install-ollama.d.ts +27 -0
- package/dist/use-cases/init/install-ollama.d.ts.map +1 -0
- package/dist/use-cases/init/install-ollama.js +51 -0
- package/dist/use-cases/init/install-ollama.js.map +1 -0
- package/dist/use-cases/init/probe-llm.d.ts +32 -0
- package/dist/use-cases/init/probe-llm.d.ts.map +1 -0
- package/dist/use-cases/init/probe-llm.js +42 -0
- package/dist/use-cases/init/probe-llm.js.map +1 -0
- package/dist/use-cases/init/resolve-hub-ports.d.ts +46 -0
- package/dist/use-cases/init/resolve-hub-ports.d.ts.map +1 -0
- package/dist/use-cases/init/resolve-hub-ports.js +77 -0
- package/dist/use-cases/init/resolve-hub-ports.js.map +1 -0
- package/dist/use-cases/init/validate-workspace-name.d.ts +26 -0
- package/dist/use-cases/init/validate-workspace-name.d.ts.map +1 -0
- package/dist/use-cases/init/validate-workspace-name.js +39 -0
- package/dist/use-cases/init/validate-workspace-name.js.map +1 -0
- package/dist/use-cases/init/wait-for-docker.d.ts +16 -0
- package/dist/use-cases/init/wait-for-docker.d.ts.map +1 -0
- package/dist/use-cases/init/wait-for-docker.js +16 -0
- package/dist/use-cases/init/wait-for-docker.js.map +1 -0
- package/dist/use-cases/init/write-config-env.d.ts +32 -0
- package/dist/use-cases/init/write-config-env.d.ts.map +1 -0
- package/dist/use-cases/init/write-config-env.js +118 -0
- package/dist/use-cases/init/write-config-env.js.map +1 -0
- package/dist/use-cases/move-task.js +2 -2
- package/dist/use-cases/move-task.js.map +1 -1
- package/dist/use-cases/pull-db.d.ts +1 -1
- package/dist/use-cases/pull-db.d.ts.map +1 -1
- package/dist/use-cases/pull-db.js +3 -3
- package/dist/use-cases/pull-db.js.map +1 -1
- package/dist/use-cases/pull-git.d.ts +1 -1
- package/dist/use-cases/pull-git.d.ts.map +1 -1
- package/dist/use-cases/pull-git.js +5 -5
- package/dist/use-cases/pull-git.js.map +1 -1
- package/dist/use-cases/pull-github.d.ts +1 -1
- package/dist/use-cases/pull-github.d.ts.map +1 -1
- package/dist/use-cases/pull-github.js +6 -6
- package/dist/use-cases/pull-github.js.map +1 -1
- package/dist/use-cases/pull.d.ts +1 -1
- package/dist/use-cases/pull.d.ts.map +1 -1
- package/dist/use-cases/pull.js +6 -6
- package/dist/use-cases/pull.js.map +1 -1
- package/dist/use-cases/push.d.ts +2 -2
- package/dist/use-cases/push.d.ts.map +1 -1
- package/dist/use-cases/push.js +8 -8
- package/dist/use-cases/push.js.map +1 -1
- package/dist/use-cases/register-code-project.d.ts +29 -0
- package/dist/use-cases/register-code-project.d.ts.map +1 -0
- package/dist/use-cases/register-code-project.js +27 -0
- package/dist/use-cases/register-code-project.js.map +1 -0
- package/dist/use-cases/unregister-code-project.d.ts +11 -0
- package/dist/use-cases/unregister-code-project.d.ts.map +1 -0
- package/dist/use-cases/unregister-code-project.js +19 -0
- package/dist/use-cases/unregister-code-project.js.map +1 -0
- package/dist/use-cases/watch-code.d.ts +33 -0
- package/dist/use-cases/watch-code.d.ts.map +1 -0
- package/dist/use-cases/watch-code.js +52 -0
- package/dist/use-cases/watch-code.js.map +1 -0
- package/dist/workspace/active-workspace.d.ts +26 -0
- package/dist/workspace/active-workspace.d.ts.map +1 -0
- package/dist/workspace/active-workspace.js +69 -0
- package/dist/workspace/active-workspace.js.map +1 -0
- package/dist/workspace/adf.d.ts.map +1 -1
- package/dist/workspace/adf.js +20 -19
- package/dist/workspace/adf.js.map +1 -1
- package/dist/workspace/config.d.ts +11 -0
- package/dist/workspace/config.d.ts.map +1 -1
- package/dist/workspace/config.js +76 -22
- package/dist/workspace/config.js.map +1 -1
- package/dist/workspace/hub-config.d.ts +74 -0
- package/dist/workspace/hub-config.d.ts.map +1 -0
- package/dist/workspace/hub-config.js +164 -0
- package/dist/workspace/hub-config.js.map +1 -0
- package/dist/workspace/registry.d.ts +23 -3
- package/dist/workspace/registry.d.ts.map +1 -1
- package/dist/workspace/registry.js +32 -14
- package/dist/workspace/registry.js.map +1 -1
- package/dist/workspace/resolver.d.ts +20 -18
- package/dist/workspace/resolver.d.ts.map +1 -1
- package/dist/workspace/resolver.js +100 -59
- package/dist/workspace/resolver.js.map +1 -1
- package/package.json +13 -4
- package/templates/code-docker-compose.yml +51 -0
- package/templates/env.example +16 -0
- package/templates/hub-config.env +65 -0
- package/templates/hub-docker-compose.yml +88 -0
- package/templates/migrate-to-hub.sql +90 -0
- package/dist/cli/workspaces.d.ts +0 -3
- package/dist/cli/workspaces.d.ts.map +0 -1
- package/dist/cli/workspaces.js +0 -34
- package/dist/cli/workspaces.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-provider.js","sourceRoot":"","sources":["../../../src/adapters/lmstudio/embedding-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/lmstudio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/lmstudio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/lsp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/lsp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP framing helpers (Content-Length + body).
|
|
3
|
+
* `vscode-jsonrpc` does the heavy lifting at runtime; this module is here
|
|
4
|
+
* for a low-level fallback / future migration off the dependency.
|
|
5
|
+
*/
|
|
6
|
+
export declare function encodeMessage(payload: unknown): Buffer;
|
|
7
|
+
export interface DecodedMessage {
|
|
8
|
+
payload: unknown;
|
|
9
|
+
consumed: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function tryDecodeMessage(buffer: Buffer): DecodedMessage | null;
|
|
12
|
+
//# sourceMappingURL=jsonrpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonrpc.d.ts","sourceRoot":"","sources":["../../../src/adapters/lsp/jsonrpc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAKtD;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAiBtE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP framing helpers (Content-Length + body).
|
|
3
|
+
* `vscode-jsonrpc` does the heavy lifting at runtime; this module is here
|
|
4
|
+
* for a low-level fallback / future migration off the dependency.
|
|
5
|
+
*/
|
|
6
|
+
export function encodeMessage(payload) {
|
|
7
|
+
const json = JSON.stringify(payload);
|
|
8
|
+
const body = Buffer.from(json, 'utf8');
|
|
9
|
+
const header = `Content-Length: ${String(body.byteLength)}\r\n\r\n`;
|
|
10
|
+
return Buffer.concat([Buffer.from(header, 'utf8'), body]);
|
|
11
|
+
}
|
|
12
|
+
export function tryDecodeMessage(buffer) {
|
|
13
|
+
const headerEnd = buffer.indexOf('\r\n\r\n');
|
|
14
|
+
if (headerEnd === -1) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const header = buffer.subarray(0, headerEnd).toString('utf8');
|
|
18
|
+
const match = /Content-Length: (\d+)/i.exec(header);
|
|
19
|
+
if (match?.[1] === undefined || match[1] === '') {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const length = Number(match[1]);
|
|
23
|
+
const bodyStart = headerEnd + 4;
|
|
24
|
+
if (buffer.length < bodyStart + length) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const body = buffer.subarray(bodyStart, bodyStart + length).toString('utf8');
|
|
28
|
+
return { payload: JSON.parse(body), consumed: bodyStart + length };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=jsonrpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonrpc.js","sourceRoot":"","sources":["../../../src/adapters/lsp/jsonrpc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,mBAAmB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;IACpE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAOD,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,EAAE,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ILspClient } from '../../core/ports/lsp-client.js';
|
|
2
|
+
import type { LspSymbol, LspLocation } from '../../core/types/code.js';
|
|
3
|
+
export interface TypeScriptLspOptions {
|
|
4
|
+
command?: string;
|
|
5
|
+
args?: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare class TypeScriptLspClient implements ILspClient {
|
|
8
|
+
private process;
|
|
9
|
+
private connection;
|
|
10
|
+
private readonly command;
|
|
11
|
+
private readonly args;
|
|
12
|
+
constructor(options?: TypeScriptLspOptions);
|
|
13
|
+
start(projectRoot: string): Promise<void>;
|
|
14
|
+
stop(): Promise<void>;
|
|
15
|
+
didOpen(uri: string, text: string): Promise<void>;
|
|
16
|
+
didChange(uri: string, text: string): Promise<void>;
|
|
17
|
+
documentSymbols(uri: string): Promise<LspSymbol[]>;
|
|
18
|
+
references(uri: string, line: number, character: number): Promise<LspLocation[]>;
|
|
19
|
+
definition(uri: string, line: number, character: number): Promise<LspLocation[]>;
|
|
20
|
+
implementations(uri: string, line: number, character: number): Promise<LspLocation[]>;
|
|
21
|
+
typeDefinition(uri: string, line: number, character: number): Promise<LspLocation[]>;
|
|
22
|
+
private locationRequest;
|
|
23
|
+
private requireConnection;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=typescript-lsp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-lsp.d.ts","sourceRoot":"","sources":["../../../src/adapters/lsp/typescript-lsp.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAwBvE,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,qBAAa,mBAAoB,YAAW,UAAU;IACpD,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAEpB,OAAO,GAAE,oBAAyB;IAKxC,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAerB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IASlD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAahF,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAIhF,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAIrF,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAI5E,eAAe;IAgB7B,OAAO,CAAC,iBAAiB;CAM1B"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { pathToFileURL } from 'node:url';
|
|
3
|
+
import { createMessageConnection, StreamMessageReader, StreamMessageWriter, } from 'vscode-jsonrpc/node.js';
|
|
4
|
+
export class TypeScriptLspClient {
|
|
5
|
+
process = null;
|
|
6
|
+
connection = null;
|
|
7
|
+
command;
|
|
8
|
+
args;
|
|
9
|
+
constructor(options = {}) {
|
|
10
|
+
this.command = options.command ?? 'typescript-language-server';
|
|
11
|
+
this.args = options.args ?? ['--stdio'];
|
|
12
|
+
}
|
|
13
|
+
async start(projectRoot) {
|
|
14
|
+
if (this.process !== null) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const child = spawn(this.command, this.args, { cwd: projectRoot });
|
|
18
|
+
this.process = child;
|
|
19
|
+
const reader = new StreamMessageReader(child.stdout);
|
|
20
|
+
const writer = new StreamMessageWriter(child.stdin);
|
|
21
|
+
const connection = createMessageConnection(reader, writer);
|
|
22
|
+
this.connection = connection;
|
|
23
|
+
connection.listen();
|
|
24
|
+
child.stderr.on('data', () => { });
|
|
25
|
+
await connection.sendRequest('initialize', {
|
|
26
|
+
processId: process.pid,
|
|
27
|
+
rootUri: pathToFileURL(projectRoot).toString(),
|
|
28
|
+
capabilities: {},
|
|
29
|
+
workspaceFolders: [
|
|
30
|
+
{ uri: pathToFileURL(projectRoot).toString(), name: 'workspace' },
|
|
31
|
+
],
|
|
32
|
+
});
|
|
33
|
+
await connection.sendNotification('initialized', {});
|
|
34
|
+
}
|
|
35
|
+
async stop() {
|
|
36
|
+
if (this.connection !== null) {
|
|
37
|
+
try {
|
|
38
|
+
await this.connection.sendRequest('shutdown');
|
|
39
|
+
await this.connection.sendNotification('exit');
|
|
40
|
+
}
|
|
41
|
+
catch { /* server may already be dead */ }
|
|
42
|
+
this.connection.dispose();
|
|
43
|
+
this.connection = null;
|
|
44
|
+
}
|
|
45
|
+
if (this.process !== null) {
|
|
46
|
+
this.process.kill();
|
|
47
|
+
this.process = null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async didOpen(uri, text) {
|
|
51
|
+
const conn = this.requireConnection();
|
|
52
|
+
await conn.sendNotification('textDocument/didOpen', {
|
|
53
|
+
textDocument: { uri, languageId: 'typescript', version: 1, text },
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async didChange(uri, text) {
|
|
57
|
+
const conn = this.requireConnection();
|
|
58
|
+
await conn.sendNotification('textDocument/didChange', {
|
|
59
|
+
textDocument: { uri, version: Date.now() },
|
|
60
|
+
contentChanges: [{ text }],
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
async documentSymbols(uri) {
|
|
64
|
+
const conn = this.requireConnection();
|
|
65
|
+
const result = await conn.sendRequest('textDocument/documentSymbol', { textDocument: { uri } });
|
|
66
|
+
return flattenSymbols(result ?? [], uri);
|
|
67
|
+
}
|
|
68
|
+
async references(uri, line, character) {
|
|
69
|
+
const conn = this.requireConnection();
|
|
70
|
+
const result = await conn.sendRequest('textDocument/references', {
|
|
71
|
+
textDocument: { uri },
|
|
72
|
+
position: { line, character },
|
|
73
|
+
context: { includeDeclaration: false },
|
|
74
|
+
});
|
|
75
|
+
return (result ?? []).map(toLspLocation);
|
|
76
|
+
}
|
|
77
|
+
async definition(uri, line, character) {
|
|
78
|
+
return this.locationRequest('textDocument/definition', uri, line, character);
|
|
79
|
+
}
|
|
80
|
+
async implementations(uri, line, character) {
|
|
81
|
+
return this.locationRequest('textDocument/implementation', uri, line, character);
|
|
82
|
+
}
|
|
83
|
+
async typeDefinition(uri, line, character) {
|
|
84
|
+
return this.locationRequest('textDocument/typeDefinition', uri, line, character);
|
|
85
|
+
}
|
|
86
|
+
async locationRequest(method, uri, line, character) {
|
|
87
|
+
const conn = this.requireConnection();
|
|
88
|
+
const result = await conn.sendRequest(method, { textDocument: { uri }, position: { line, character } });
|
|
89
|
+
if (result === null) {
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
const raw = Array.isArray(result) ? result : [result];
|
|
93
|
+
return raw.map(toLspLocation);
|
|
94
|
+
}
|
|
95
|
+
requireConnection() {
|
|
96
|
+
if (this.connection === null) {
|
|
97
|
+
throw new Error('LSP client not started — call start() first');
|
|
98
|
+
}
|
|
99
|
+
return this.connection;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function toLspLocation(raw) {
|
|
103
|
+
return {
|
|
104
|
+
uri: raw.uri,
|
|
105
|
+
startLine: raw.range.start.line,
|
|
106
|
+
startChar: raw.range.start.character,
|
|
107
|
+
endLine: raw.range.end.line,
|
|
108
|
+
endChar: raw.range.end.character,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function flattenSymbols(symbols, uri, container) {
|
|
112
|
+
const out = [];
|
|
113
|
+
for (const sym of symbols) {
|
|
114
|
+
const lspSymbol = {
|
|
115
|
+
name: sym.name,
|
|
116
|
+
kind: sym.kind,
|
|
117
|
+
filePath: uri,
|
|
118
|
+
startLine: sym.range.start.line + 1,
|
|
119
|
+
endLine: sym.range.end.line + 1,
|
|
120
|
+
};
|
|
121
|
+
if (container !== undefined && container !== '') {
|
|
122
|
+
lspSymbol.containerName = container;
|
|
123
|
+
}
|
|
124
|
+
out.push(lspSymbol);
|
|
125
|
+
if (sym.children !== undefined && sym.children.length > 0) {
|
|
126
|
+
out.push(...flattenSymbols(sym.children, uri, sym.name));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return out;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=typescript-lsp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-lsp.js","sourceRoot":"","sources":["../../../src/adapters/lsp/typescript-lsp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Driver, type Session } from 'neo4j-driver';
|
|
2
|
+
export interface Neo4jConfig {
|
|
3
|
+
uri: string;
|
|
4
|
+
user: string;
|
|
5
|
+
password: string;
|
|
6
|
+
database?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function createDriver(config: Neo4jConfig): Driver;
|
|
9
|
+
export declare function openSession(driver: Driver, database?: string): Session;
|
|
10
|
+
export declare function verifyConnectivity(driver: Driver): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/adapters/neo4j/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAKxD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import neo4j, {} from 'neo4j-driver';
|
|
2
|
+
export function createDriver(config) {
|
|
3
|
+
return neo4j.driver(config.uri, neo4j.auth.basic(config.user, config.password), {
|
|
4
|
+
maxConnectionPoolSize: 50,
|
|
5
|
+
connectionAcquisitionTimeout: 30_000,
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
export function openSession(driver, database) {
|
|
9
|
+
return database !== undefined && database !== '' ? driver.session({ database }) : driver.session();
|
|
10
|
+
}
|
|
11
|
+
export async function verifyConnectivity(driver) {
|
|
12
|
+
await driver.verifyConnectivity();
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/adapters/neo4j/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,MAAM,cAAc,CAAC;AAShE,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;QAC9E,qBAAqB,EAAE,EAAE;QACzB,4BAA4B,EAAE,MAAM;KACrC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,QAAiB;IAC3D,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACrG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAc;IACrD,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const CONSTRAINTS: readonly string[];
|
|
2
|
+
export declare const MERGE_PROJECT = "\n MERGE (p:Project {id: $id})\n SET p.name = $name, p.root = $root, p.language = $language\n";
|
|
3
|
+
export declare const MERGE_FILES = "\n UNWIND $rows AS r\n MATCH (p:Project {id: r.projectId})\n MERGE (f:File {projectId: r.projectId, path: r.path})\n SET f.language = r.language, f.layer = r.layer, f.hash = r.hash, f.gitSha = r.gitSha\n MERGE (f)-[:IN_PROJECT]->(p)\n";
|
|
4
|
+
export declare const DELETE_FILE = "\n MATCH (f:File {projectId: $projectId, path: $path})\n OPTIONAL MATCH (s:Symbol {projectId: $projectId, filePath: $path})\n DETACH DELETE s, f\n";
|
|
5
|
+
export declare const REPLACE_FILE_SYMBOLS_DELETE = "\n MATCH (s:Symbol {projectId: $projectId, filePath: $filePath})\n DETACH DELETE s\n";
|
|
6
|
+
export declare const MERGE_SYMBOLS = "\n UNWIND $rows AS r\n MATCH (f:File {projectId: r.projectId, path: r.filePath})\n MERGE (s:Symbol {projectId: r.projectId, qualifiedName: r.qualifiedName})\n SET s.name = r.name, s.kind = r.kind, s.filePath = r.filePath,\n s.startLine = r.startLine, s.endLine = r.endLine,\n s.signature = r.signature, s.visibility = r.visibility, s.layer = r.layer\n MERGE (s)-[:DEFINED_IN]->(f)\n";
|
|
7
|
+
export declare const MERGE_IMPORTS = "\n UNWIND $rows AS r\n MATCH (a:File {projectId: r.projectId, path: r.fromFile})\n MATCH (b:File {projectId: r.projectId, path: r.toFile})\n MERGE (a)-[rel:IMPORTS]->(b)\n SET rel.names = r.names\n";
|
|
8
|
+
export declare const MERGE_CALLS = "\n UNWIND $rows AS r\n MATCH (a:Symbol {projectId: r.projectId, qualifiedName: r.fromQn})\n MATCH (b:Symbol {projectId: r.projectId, qualifiedName: r.toQn})\n MERGE (a)-[rel:CALLS]->(b)\n SET rel.count = r.count\n";
|
|
9
|
+
export declare const MERGE_IMPLEMENTS = "\n UNWIND $rows AS r\n MATCH (a:Symbol {projectId: r.projectId, qualifiedName: r.classQn})\n MATCH (b:Symbol {projectId: r.projectId, qualifiedName: r.interfaceQn})\n MERGE (a)-[:IMPLEMENTS]->(b)\n";
|
|
10
|
+
export declare const MERGE_EXTENDS = "\n UNWIND $rows AS r\n MATCH (a:Symbol {projectId: r.projectId, qualifiedName: r.childQn})\n MATCH (b:Symbol {projectId: r.projectId, qualifiedName: r.parentQn})\n MERGE (a)-[:EXTENDS]->(b)\n";
|
|
11
|
+
export declare const MERGE_INJECTS = "\n UNWIND $rows AS r\n MATCH (a:Symbol {projectId: r.projectId, qualifiedName: r.consumerQn})\n MATCH (b:Symbol {projectId: r.projectId, qualifiedName: r.providerQn})\n MERGE (a)-[:INJECTS]->(b)\n";
|
|
12
|
+
export declare const FIND_SYMBOL = "\n MATCH (s:Symbol {projectId: $projectId})\n WHERE toLower(s.name) CONTAINS toLower($query)\n AND ($kind IS NULL OR s.kind = $kind)\n AND ($layer IS NULL OR s.layer = $layer)\n RETURN s\n ORDER BY size(s.name) ASC, s.name\n LIMIT $limit\n";
|
|
13
|
+
export declare const GET_DEPENDENCIES = "\n MATCH (f:File {projectId: $projectId, path: $file})-[:IMPORTS*1..]->(t:File)\n RETURN DISTINCT t\n LIMIT $maxRows\n";
|
|
14
|
+
export declare const GET_DEPENDENTS = "\n MATCH (t:File)-[:IMPORTS*1..]->(f:File {projectId: $projectId, path: $file})\n RETURN DISTINCT t\n LIMIT $maxRows\n";
|
|
15
|
+
export declare const GET_CALLERS = "\n MATCH (caller:Symbol)-[:CALLS*1..]->(target:Symbol {projectId: $projectId, qualifiedName: $qn})\n RETURN DISTINCT caller\n LIMIT $maxRows\n";
|
|
16
|
+
export declare const GET_CALLEES = "\n MATCH (source:Symbol {projectId: $projectId, qualifiedName: $qn})-[:CALLS*1..]->(callee:Symbol)\n RETURN DISTINCT callee\n LIMIT $maxRows\n";
|
|
17
|
+
export declare const CALL_PATH = "\n MATCH p = shortestPath(\n (a:Symbol {projectId: $projectId, qualifiedName: $from})\n -[:CALLS*..15]->\n (b:Symbol {projectId: $projectId, qualifiedName: $to})\n )\n RETURN nodes(p) AS path\n";
|
|
18
|
+
export declare const ARCH_VIOLATIONS = "\n MATCH (a:Symbol {projectId: $projectId})-[:CALLS]->(b:Symbol {projectId: $projectId})\n WHERE a.layer IS NOT NULL AND b.layer IS NOT NULL\n AND (\n (a.layer = 'domain' AND b.layer IN ['infrastructure', 'presentation'])\n OR (a.layer = 'application' AND b.layer = 'presentation')\n )\n RETURN a, b\n LIMIT 500\n";
|
|
19
|
+
export declare const UNUSED_EXPORTS = "\n MATCH (s:Symbol {projectId: $projectId})\n WHERE NOT (s)<-[:CALLS]-() AND NOT (s)<-[:IMPLEMENTS]-() AND NOT (s)<-[:EXTENDS]-()\n RETURN s\n LIMIT 500\n";
|
|
20
|
+
export declare const IMPLEMENTERS = "\n MATCH (impl:Symbol)-[:IMPLEMENTS]->(iface:Symbol {projectId: $projectId, qualifiedName: $interfaceQn})\n RETURN impl\n";
|
|
21
|
+
export declare const LAYER_SYMBOLS = "\n MATCH (s:Symbol {projectId: $projectId, layer: $layer})\n RETURN s\n LIMIT 1000\n";
|
|
22
|
+
export declare const DELETE_PROJECT = "\n MATCH (p:Project {id: $projectId})\n OPTIONAL MATCH (f:File {projectId: $projectId})\n OPTIONAL MATCH (s:Symbol {projectId: $projectId})\n DETACH DELETE s, f, p\n";
|
|
23
|
+
//# sourceMappingURL=cypher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cypher.d.ts","sourceRoot":"","sources":["../../../src/adapters/neo4j/cypher.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAOxC,CAAC;AAEF,eAAO,MAAM,aAAa,oGAGzB,CAAC;AAEF,eAAO,MAAM,WAAW,oPAMvB,CAAC;AAEF,eAAO,MAAM,WAAW,0JAIvB,CAAC;AAEF,eAAO,MAAM,2BAA2B,2FAGvC,CAAC;AAEF,eAAO,MAAM,aAAa,kZAQzB,CAAC;AAEF,eAAO,MAAM,aAAa,+MAMzB,CAAC;AAEF,eAAO,MAAM,WAAW,+NAMvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,8MAK5B,CAAC;AAEF,eAAO,MAAM,aAAa,wMAKzB,CAAC;AAEF,eAAO,MAAM,aAAa,6MAKzB,CAAC;AAEF,eAAO,MAAM,WAAW,+PAQvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,8HAI5B,CAAC;AAEF,eAAO,MAAM,cAAc,8HAI1B,CAAC;AAEF,eAAO,MAAM,WAAW,sJAIvB,CAAC;AAEF,eAAO,MAAM,WAAW,sJAIvB,CAAC;AAEF,eAAO,MAAM,SAAS,kNAOrB,CAAC;AAEF,eAAO,MAAM,eAAe,kVAS3B,CAAC;AAEF,eAAO,MAAM,cAAc,mKAK1B,CAAC;AAEF,eAAO,MAAM,YAAY,gIAGxB,CAAC;AAEF,eAAO,MAAM,aAAa,4FAIzB,CAAC;AAEF,eAAO,MAAM,cAAc,8KAK1B,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
export const CONSTRAINTS = [
|
|
2
|
+
`CREATE CONSTRAINT code_project_id IF NOT EXISTS FOR (p:Project) REQUIRE p.id IS UNIQUE`,
|
|
3
|
+
`CREATE CONSTRAINT code_file_unique IF NOT EXISTS FOR (f:File) REQUIRE (f.projectId, f.path) IS UNIQUE`,
|
|
4
|
+
`CREATE CONSTRAINT code_symbol_unique IF NOT EXISTS FOR (s:Symbol) REQUIRE (s.projectId, s.qualifiedName) IS UNIQUE`,
|
|
5
|
+
`CREATE INDEX code_symbol_name IF NOT EXISTS FOR (s:Symbol) ON (s.projectId, s.name)`,
|
|
6
|
+
`CREATE INDEX code_symbol_kind IF NOT EXISTS FOR (s:Symbol) ON (s.projectId, s.kind)`,
|
|
7
|
+
`CREATE INDEX code_symbol_layer IF NOT EXISTS FOR (s:Symbol) ON (s.projectId, s.layer)`,
|
|
8
|
+
];
|
|
9
|
+
export const MERGE_PROJECT = `
|
|
10
|
+
MERGE (p:Project {id: $id})
|
|
11
|
+
SET p.name = $name, p.root = $root, p.language = $language
|
|
12
|
+
`;
|
|
13
|
+
export const MERGE_FILES = `
|
|
14
|
+
UNWIND $rows AS r
|
|
15
|
+
MATCH (p:Project {id: r.projectId})
|
|
16
|
+
MERGE (f:File {projectId: r.projectId, path: r.path})
|
|
17
|
+
SET f.language = r.language, f.layer = r.layer, f.hash = r.hash, f.gitSha = r.gitSha
|
|
18
|
+
MERGE (f)-[:IN_PROJECT]->(p)
|
|
19
|
+
`;
|
|
20
|
+
export const DELETE_FILE = `
|
|
21
|
+
MATCH (f:File {projectId: $projectId, path: $path})
|
|
22
|
+
OPTIONAL MATCH (s:Symbol {projectId: $projectId, filePath: $path})
|
|
23
|
+
DETACH DELETE s, f
|
|
24
|
+
`;
|
|
25
|
+
export const REPLACE_FILE_SYMBOLS_DELETE = `
|
|
26
|
+
MATCH (s:Symbol {projectId: $projectId, filePath: $filePath})
|
|
27
|
+
DETACH DELETE s
|
|
28
|
+
`;
|
|
29
|
+
export const MERGE_SYMBOLS = `
|
|
30
|
+
UNWIND $rows AS r
|
|
31
|
+
MATCH (f:File {projectId: r.projectId, path: r.filePath})
|
|
32
|
+
MERGE (s:Symbol {projectId: r.projectId, qualifiedName: r.qualifiedName})
|
|
33
|
+
SET s.name = r.name, s.kind = r.kind, s.filePath = r.filePath,
|
|
34
|
+
s.startLine = r.startLine, s.endLine = r.endLine,
|
|
35
|
+
s.signature = r.signature, s.visibility = r.visibility, s.layer = r.layer
|
|
36
|
+
MERGE (s)-[:DEFINED_IN]->(f)
|
|
37
|
+
`;
|
|
38
|
+
export const MERGE_IMPORTS = `
|
|
39
|
+
UNWIND $rows AS r
|
|
40
|
+
MATCH (a:File {projectId: r.projectId, path: r.fromFile})
|
|
41
|
+
MATCH (b:File {projectId: r.projectId, path: r.toFile})
|
|
42
|
+
MERGE (a)-[rel:IMPORTS]->(b)
|
|
43
|
+
SET rel.names = r.names
|
|
44
|
+
`;
|
|
45
|
+
export const MERGE_CALLS = `
|
|
46
|
+
UNWIND $rows AS r
|
|
47
|
+
MATCH (a:Symbol {projectId: r.projectId, qualifiedName: r.fromQn})
|
|
48
|
+
MATCH (b:Symbol {projectId: r.projectId, qualifiedName: r.toQn})
|
|
49
|
+
MERGE (a)-[rel:CALLS]->(b)
|
|
50
|
+
SET rel.count = r.count
|
|
51
|
+
`;
|
|
52
|
+
export const MERGE_IMPLEMENTS = `
|
|
53
|
+
UNWIND $rows AS r
|
|
54
|
+
MATCH (a:Symbol {projectId: r.projectId, qualifiedName: r.classQn})
|
|
55
|
+
MATCH (b:Symbol {projectId: r.projectId, qualifiedName: r.interfaceQn})
|
|
56
|
+
MERGE (a)-[:IMPLEMENTS]->(b)
|
|
57
|
+
`;
|
|
58
|
+
export const MERGE_EXTENDS = `
|
|
59
|
+
UNWIND $rows AS r
|
|
60
|
+
MATCH (a:Symbol {projectId: r.projectId, qualifiedName: r.childQn})
|
|
61
|
+
MATCH (b:Symbol {projectId: r.projectId, qualifiedName: r.parentQn})
|
|
62
|
+
MERGE (a)-[:EXTENDS]->(b)
|
|
63
|
+
`;
|
|
64
|
+
export const MERGE_INJECTS = `
|
|
65
|
+
UNWIND $rows AS r
|
|
66
|
+
MATCH (a:Symbol {projectId: r.projectId, qualifiedName: r.consumerQn})
|
|
67
|
+
MATCH (b:Symbol {projectId: r.projectId, qualifiedName: r.providerQn})
|
|
68
|
+
MERGE (a)-[:INJECTS]->(b)
|
|
69
|
+
`;
|
|
70
|
+
export const FIND_SYMBOL = `
|
|
71
|
+
MATCH (s:Symbol {projectId: $projectId})
|
|
72
|
+
WHERE toLower(s.name) CONTAINS toLower($query)
|
|
73
|
+
AND ($kind IS NULL OR s.kind = $kind)
|
|
74
|
+
AND ($layer IS NULL OR s.layer = $layer)
|
|
75
|
+
RETURN s
|
|
76
|
+
ORDER BY size(s.name) ASC, s.name
|
|
77
|
+
LIMIT $limit
|
|
78
|
+
`;
|
|
79
|
+
export const GET_DEPENDENCIES = `
|
|
80
|
+
MATCH (f:File {projectId: $projectId, path: $file})-[:IMPORTS*1..]->(t:File)
|
|
81
|
+
RETURN DISTINCT t
|
|
82
|
+
LIMIT $maxRows
|
|
83
|
+
`;
|
|
84
|
+
export const GET_DEPENDENTS = `
|
|
85
|
+
MATCH (t:File)-[:IMPORTS*1..]->(f:File {projectId: $projectId, path: $file})
|
|
86
|
+
RETURN DISTINCT t
|
|
87
|
+
LIMIT $maxRows
|
|
88
|
+
`;
|
|
89
|
+
export const GET_CALLERS = `
|
|
90
|
+
MATCH (caller:Symbol)-[:CALLS*1..]->(target:Symbol {projectId: $projectId, qualifiedName: $qn})
|
|
91
|
+
RETURN DISTINCT caller
|
|
92
|
+
LIMIT $maxRows
|
|
93
|
+
`;
|
|
94
|
+
export const GET_CALLEES = `
|
|
95
|
+
MATCH (source:Symbol {projectId: $projectId, qualifiedName: $qn})-[:CALLS*1..]->(callee:Symbol)
|
|
96
|
+
RETURN DISTINCT callee
|
|
97
|
+
LIMIT $maxRows
|
|
98
|
+
`;
|
|
99
|
+
export const CALL_PATH = `
|
|
100
|
+
MATCH p = shortestPath(
|
|
101
|
+
(a:Symbol {projectId: $projectId, qualifiedName: $from})
|
|
102
|
+
-[:CALLS*..15]->
|
|
103
|
+
(b:Symbol {projectId: $projectId, qualifiedName: $to})
|
|
104
|
+
)
|
|
105
|
+
RETURN nodes(p) AS path
|
|
106
|
+
`;
|
|
107
|
+
export const ARCH_VIOLATIONS = `
|
|
108
|
+
MATCH (a:Symbol {projectId: $projectId})-[:CALLS]->(b:Symbol {projectId: $projectId})
|
|
109
|
+
WHERE a.layer IS NOT NULL AND b.layer IS NOT NULL
|
|
110
|
+
AND (
|
|
111
|
+
(a.layer = 'domain' AND b.layer IN ['infrastructure', 'presentation'])
|
|
112
|
+
OR (a.layer = 'application' AND b.layer = 'presentation')
|
|
113
|
+
)
|
|
114
|
+
RETURN a, b
|
|
115
|
+
LIMIT 500
|
|
116
|
+
`;
|
|
117
|
+
export const UNUSED_EXPORTS = `
|
|
118
|
+
MATCH (s:Symbol {projectId: $projectId})
|
|
119
|
+
WHERE NOT (s)<-[:CALLS]-() AND NOT (s)<-[:IMPLEMENTS]-() AND NOT (s)<-[:EXTENDS]-()
|
|
120
|
+
RETURN s
|
|
121
|
+
LIMIT 500
|
|
122
|
+
`;
|
|
123
|
+
export const IMPLEMENTERS = `
|
|
124
|
+
MATCH (impl:Symbol)-[:IMPLEMENTS]->(iface:Symbol {projectId: $projectId, qualifiedName: $interfaceQn})
|
|
125
|
+
RETURN impl
|
|
126
|
+
`;
|
|
127
|
+
export const LAYER_SYMBOLS = `
|
|
128
|
+
MATCH (s:Symbol {projectId: $projectId, layer: $layer})
|
|
129
|
+
RETURN s
|
|
130
|
+
LIMIT 1000
|
|
131
|
+
`;
|
|
132
|
+
export const DELETE_PROJECT = `
|
|
133
|
+
MATCH (p:Project {id: $projectId})
|
|
134
|
+
OPTIONAL MATCH (f:File {projectId: $projectId})
|
|
135
|
+
OPTIONAL MATCH (s:Symbol {projectId: $projectId})
|
|
136
|
+
DETACH DELETE s, f, p
|
|
137
|
+
`;
|
|
138
|
+
//# sourceMappingURL=cypher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cypher.js","sourceRoot":"","sources":["../../../src/adapters/neo4j/cypher.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,wFAAwF;IACxF,uGAAuG;IACvG,oHAAoH;IACpH,qFAAqF;IACrF,qFAAqF;IACrF,uFAAuF;CACxF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;CAG5B,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;CAM1B,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;;;;CAI1B,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;CAG1C,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;CAQ5B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;CAM5B,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;CAM1B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;CAK/B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;CAK5B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;CAK5B,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;CAQ1B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;CAI/B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;CAI7B,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;;;;CAI1B,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;;;;CAI1B,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;CAOxB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;CAS9B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;CAK7B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;CAG3B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;CAI5B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;CAK7B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ICodeGraph, FindSymbolOptions } from '../../core/ports/code-graph.js';
|
|
2
|
+
import type { CodeProject, CodeFile, CodeSymbol, CodeImport, CodeCallEdge, CodeImplementsEdge, CodeExtendsEdge, CodeInjectsEdge, CodeLayer } from '../../core/types/code.js';
|
|
3
|
+
import { type Neo4jConfig } from './client.js';
|
|
4
|
+
export declare class Neo4jCodeGraphStore implements ICodeGraph {
|
|
5
|
+
readonly name = "Neo4jCodeGraph";
|
|
6
|
+
private readonly driver;
|
|
7
|
+
private readonly database?;
|
|
8
|
+
constructor(config: Neo4jConfig);
|
|
9
|
+
initialize(): Promise<void>;
|
|
10
|
+
ensureProject(project: CodeProject): Promise<void>;
|
|
11
|
+
deleteProject(projectId: string): Promise<void>;
|
|
12
|
+
upsertFiles(projectId: string, files: CodeFile[]): Promise<void>;
|
|
13
|
+
deleteFile(projectId: string, path: string): Promise<void>;
|
|
14
|
+
replaceFileSymbols(projectId: string, filePath: string, symbols: CodeSymbol[]): Promise<void>;
|
|
15
|
+
upsertImports(edges: CodeImport[]): Promise<void>;
|
|
16
|
+
upsertCalls(edges: CodeCallEdge[]): Promise<void>;
|
|
17
|
+
upsertImplements(edges: CodeImplementsEdge[]): Promise<void>;
|
|
18
|
+
upsertExtends(edges: CodeExtendsEdge[]): Promise<void>;
|
|
19
|
+
upsertInjects(edges: CodeInjectsEdge[]): Promise<void>;
|
|
20
|
+
findSymbol(opts: FindSymbolOptions): Promise<CodeSymbol[]>;
|
|
21
|
+
getDependencies(projectId: string, file: string, _depth: number): Promise<CodeFile[]>;
|
|
22
|
+
getDependents(projectId: string, file: string, _depth: number): Promise<CodeFile[]>;
|
|
23
|
+
getCallers(projectId: string, qualifiedName: string, _depth: number): Promise<CodeSymbol[]>;
|
|
24
|
+
getCallees(projectId: string, qualifiedName: string, _depth: number): Promise<CodeSymbol[]>;
|
|
25
|
+
getCallPath(projectId: string, fromQn: string, toQn: string): Promise<CodeSymbol[] | null>;
|
|
26
|
+
findArchViolations(projectId: string, _layerOrder?: CodeLayer[]): Promise<CodeCallEdge[]>;
|
|
27
|
+
findUnusedExports(projectId: string): Promise<CodeSymbol[]>;
|
|
28
|
+
getImplementers(projectId: string, interfaceQn: string): Promise<CodeSymbol[]>;
|
|
29
|
+
getLayerSymbols(projectId: string, layer: CodeLayer): Promise<CodeSymbol[]>;
|
|
30
|
+
close(): Promise<void>;
|
|
31
|
+
private runBatched;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=graph-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-store.d.ts","sourceRoot":"","sources":["../../../src/adapters/neo4j/graph-store.ts"],"names":[],"mappings":"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"}
|