argustack 0.2.0 → 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 -115
- 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.js +4 -4
- package/dist/adapters/lmstudio/embedding-provider.js.map +1 -1
- package/dist/adapters/lsp/jsonrpc.js +1 -1
- package/dist/adapters/lsp/jsonrpc.js.map +1 -1
- package/dist/adapters/lsp/typescript-lsp.js +7 -7
- package/dist/adapters/lsp/typescript-lsp.js.map +1 -1
- package/dist/adapters/neo4j/client.js +2 -2
- package/dist/adapters/neo4j/client.js.map +1 -1
- package/dist/adapters/neo4j/graph-store.js +3 -3
- package/dist/adapters/neo4j/graph-store.js.map +1 -1
- package/dist/adapters/neo4j/mapper.js +4 -4
- package/dist/adapters/neo4j/mapper.js.map +1 -1
- 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.js +13 -13
- package/dist/adapters/postgres/code-meta.js.map +1 -1
- package/dist/adapters/postgres/index.d.ts +2 -0
- package/dist/adapters/postgres/index.d.ts.map +1 -1
- package/dist/adapters/postgres/index.js +2 -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 +159 -113
- 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 +47 -31
- package/dist/adapters/postgres/storage.d.ts.map +1 -1
- package/dist/adapters/postgres/storage.js +86 -602
- 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.js +1 -1
- package/dist/adapters/qdrant/client.js.map +1 -1
- package/dist/adapters/qdrant/mapper.d.ts.map +1 -1
- package/dist/adapters/qdrant/mapper.js +11 -4
- package/dist/adapters/qdrant/mapper.js.map +1 -1
- package/dist/adapters/qdrant/vector-store.d.ts +1 -0
- package/dist/adapters/qdrant/vector-store.d.ts.map +1 -1
- package/dist/adapters/qdrant/vector-store.js +40 -10
- package/dist/adapters/qdrant/vector-store.js.map +1 -1
- package/dist/adapters/tree-sitter/parser.d.ts.map +1 -1
- package/dist/adapters/tree-sitter/parser.js +12 -12
- package/dist/adapters/tree-sitter/parser.js.map +1 -1
- package/dist/adapters/voyage/embedding-provider.js +2 -2
- package/dist/adapters/voyage/embedding-provider.js.map +1 -1
- 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.map +1 -1
- package/dist/cli/code.js +95 -193
- package/dist/cli/code.js.map +1 -1
- 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 +28 -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 -354
- 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 -317
- 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/file-discovery.js +3 -3
- package/dist/code-intel/file-discovery.js.map +1 -1
- package/dist/code-intel/indexer.js +8 -8
- package/dist/code-intel/indexer.js.map +1 -1
- package/dist/code-intel/lsp-resolver.js +5 -5
- package/dist/code-intel/lsp-resolver.js.map +1 -1
- package/dist/code-intel/ranker.d.ts +14 -0
- package/dist/code-intel/ranker.d.ts.map +1 -1
- package/dist/code-intel/ranker.js +54 -0
- package/dist/code-intel/ranker.js.map +1 -1
- package/dist/code-intel/resolver.js +4 -4
- package/dist/code-intel/resolver.js.map +1 -1
- package/dist/code-intel/tsconfig-paths.js +2 -2
- package/dist/code-intel/tsconfig-paths.js.map +1 -1
- package/dist/code-intel/watcher.js +4 -4
- package/dist/code-intel/watcher.js.map +1 -1
- 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-meta.d.ts +4 -0
- package/dist/core/ports/code-meta.d.ts.map +1 -1
- package/dist/core/ports/code-vector-store.d.ts +5 -0
- package/dist/core/ports/code-vector-store.d.ts.map +1 -1
- 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 +4 -0
- package/dist/core/ports/index.d.ts.map +1 -1
- 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/index.d.ts +2 -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 +121 -30
- package/dist/mcp/helpers.d.ts.map +1 -1
- package/dist/mcp/helpers.js +240 -264
- package/dist/mcp/helpers.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +43 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/code-graph.d.ts.map +1 -1
- package/dist/mcp/tools/code-graph.js +109 -74
- package/dist/mcp/tools/code-graph.js.map +1 -1
- package/dist/mcp/tools/code-hybrid.d.ts.map +1 -1
- package/dist/mcp/tools/code-hybrid.js +75 -51
- package/dist/mcp/tools/code-hybrid.js.map +1 -1
- package/dist/mcp/tools/code-search.d.ts.map +1 -1
- package/dist/mcp/tools/code-search.js +32 -32
- package/dist/mcp/tools/code-search.js.map +1 -1
- 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 +29 -5
- package/dist/use-cases/code-search.d.ts.map +1 -1
- package/dist/use-cases/code-search.js +98 -9
- package/dist/use-cases/code-search.js.map +1 -1
- 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.js +2 -2
- package/dist/use-cases/index-code.js.map +1 -1
- 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 +8 -0
- package/dist/use-cases/register-code-project.d.ts.map +1 -1
- package/dist/use-cases/register-code-project.js +8 -0
- package/dist/use-cases/register-code-project.js.map +1 -1
- package/dist/use-cases/watch-code.js +1 -1
- package/dist/use-cases/watch-code.js.map +1 -1
- 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 +4 -2
- 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,51 @@
|
|
|
1
|
+
import type pg from 'pg';
|
|
2
|
+
import type { IWorkspaceStore } from '../core/ports/workspace-store.js';
|
|
3
|
+
import { type CountMismatch } from '../adapters/postgres/migrate-helpers.js';
|
|
4
|
+
export interface LegacyWorkspaceInfo {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly path: string;
|
|
8
|
+
}
|
|
9
|
+
export interface MigrateOptions {
|
|
10
|
+
readonly dryRun?: boolean;
|
|
11
|
+
readonly allowConflicts?: boolean;
|
|
12
|
+
readonly keepLegacy?: boolean;
|
|
13
|
+
readonly rename?: Readonly<Record<string, string>>;
|
|
14
|
+
readonly onProgress?: (message: string) => void;
|
|
15
|
+
}
|
|
16
|
+
export interface MigrateResult {
|
|
17
|
+
readonly migrated: readonly string[];
|
|
18
|
+
readonly skipped: readonly string[];
|
|
19
|
+
readonly mismatches: readonly {
|
|
20
|
+
workspaceId: string;
|
|
21
|
+
mismatches: readonly CountMismatch[];
|
|
22
|
+
}[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Use Case: migrate legacy per-workspace Postgres stacks into the hub.
|
|
26
|
+
*
|
|
27
|
+
* For each legacy workspace:
|
|
28
|
+
* 1. Discover its DB port from `<root>/.env`
|
|
29
|
+
* 2. Connect to legacy pg as a read-only source
|
|
30
|
+
* 3. Insert/upsert into `workspaces` (apply --rename if requested)
|
|
31
|
+
* 4. Copy `issues` and `releases` (composite tables that lead with workspace_id)
|
|
32
|
+
* 5. Copy `commits` and `pull_requests` (PKs change, but composite FKs work)
|
|
33
|
+
* 6. Rebuild `graph_entities` with new SERIAL ids and remap relationships
|
|
34
|
+
* 7. Copy all child tables via `copyTable`
|
|
35
|
+
* 8. Verify row counts
|
|
36
|
+
* 9. Write a `.hub-migrated` marker so legacy CLI invocations can detect it
|
|
37
|
+
*/
|
|
38
|
+
export declare class MigrateToHubUseCase {
|
|
39
|
+
private readonly hubPool;
|
|
40
|
+
private readonly hubStore;
|
|
41
|
+
constructor(hubPool: pg.Pool, hubStore: IWorkspaceStore);
|
|
42
|
+
execute(legacy: readonly LegacyWorkspaceInfo[], options?: MigrateOptions): Promise<MigrateResult>;
|
|
43
|
+
private copyIssues;
|
|
44
|
+
private copyCommits;
|
|
45
|
+
private copyPullRequests;
|
|
46
|
+
private copyReleases;
|
|
47
|
+
private copyGraphRelationships;
|
|
48
|
+
private copyGraphObservations;
|
|
49
|
+
private writeMarker;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=migrate-to-hub-impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-to-hub-impl.d.ts","sourceRoot":"","sources":["../../src/cli/migrate-to-hub-impl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,yCAAyC,CAAC;AAKjD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,SAAS;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;KAAE,EAAE,CAAC;CAC/F;AA4BD;;;;;;;;;;;;;GAaG;AACH,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,OAAO,EAAE,EAAE,CAAC,IAAI,EAChB,QAAQ,EAAE,eAAe;IAGtC,OAAO,CACX,MAAM,EAAE,SAAS,mBAAmB,EAAE,EACtC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC;YAiEX,UAAU;YAYV,WAAW;YAKX,gBAAgB;YAWhB,YAAY;YAQZ,sBAAsB;YA6BtB,qBAAqB;IAyBnC,OAAO,CAAC,WAAW;CAWpB"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { writeFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { copyTable, copyGraphEntities, countTable, verifyCounts, discoverLegacyDbConfig, } from '../adapters/postgres/migrate-helpers.js';
|
|
4
|
+
import { createPool } from '../adapters/postgres/connection.js';
|
|
5
|
+
function noop(_message) { }
|
|
6
|
+
const TENANT_TABLES_TO_COPY = [
|
|
7
|
+
{ table: 'issue_comments', columns: ['issue_key', 'comment_id', 'author', 'body', 'created', 'updated'] },
|
|
8
|
+
{ table: 'issue_changelogs', columns: ['issue_key', 'author', 'field', 'from_value', 'to_value', 'changed_at'] },
|
|
9
|
+
{ table: 'issue_worklogs', columns: ['issue_key', 'author', 'time_spent', 'time_spent_seconds', 'comment', 'started'] },
|
|
10
|
+
{ table: 'issue_links', columns: ['source_key', 'target_key', 'link_type', 'direction'] },
|
|
11
|
+
{ table: 'commit_files', columns: ['commit_hash', 'file_path', 'status', 'additions', 'deletions'] },
|
|
12
|
+
{ table: 'commit_issue_refs', columns: ['commit_hash', 'issue_key'] },
|
|
13
|
+
{ table: 'pr_reviews', columns: ['pr_number', 'repo_full_name', 'review_id', 'reviewer', 'state', 'body', 'submitted_at'] },
|
|
14
|
+
{ table: 'pr_comments', columns: ['pr_number', 'repo_full_name', 'comment_id', 'author', 'body', 'path', 'line', 'created_at', 'updated_at'] },
|
|
15
|
+
{ table: 'pr_files', columns: ['pr_number', 'repo_full_name', 'file_path', 'status', 'additions', 'deletions'] },
|
|
16
|
+
{ table: 'pr_issue_refs', columns: ['pr_number', 'repo_full_name', 'issue_key'] },
|
|
17
|
+
{ table: 'db_tables', columns: ['source_name', 'table_schema', 'table_name', 'row_count', 'size_bytes'] },
|
|
18
|
+
{ table: 'db_columns', columns: ['source_name', 'table_schema', 'table_name', 'column_name', 'data_type', 'is_nullable', 'default_value', 'is_primary_key', 'ordinal_position'] },
|
|
19
|
+
{ table: 'db_foreign_keys', columns: ['source_name', 'table_name', 'column_name', 'referenced_table', 'referenced_column'] },
|
|
20
|
+
{ table: 'db_indexes', columns: ['source_name', 'table_name', 'index_name', 'columns', 'is_unique', 'is_primary'] },
|
|
21
|
+
];
|
|
22
|
+
const VERIFY_TABLES = [
|
|
23
|
+
'issues', 'issue_comments', 'issue_changelogs', 'issue_worklogs', 'issue_links',
|
|
24
|
+
'commits', 'commit_files', 'commit_issue_refs',
|
|
25
|
+
'pull_requests', 'pr_reviews', 'pr_comments', 'pr_files', 'pr_issue_refs',
|
|
26
|
+
'releases',
|
|
27
|
+
'graph_entities', 'graph_relationships', 'graph_observations',
|
|
28
|
+
'db_tables', 'db_columns', 'db_foreign_keys', 'db_indexes',
|
|
29
|
+
];
|
|
30
|
+
/**
|
|
31
|
+
* Use Case: migrate legacy per-workspace Postgres stacks into the hub.
|
|
32
|
+
*
|
|
33
|
+
* For each legacy workspace:
|
|
34
|
+
* 1. Discover its DB port from `<root>/.env`
|
|
35
|
+
* 2. Connect to legacy pg as a read-only source
|
|
36
|
+
* 3. Insert/upsert into `workspaces` (apply --rename if requested)
|
|
37
|
+
* 4. Copy `issues` and `releases` (composite tables that lead with workspace_id)
|
|
38
|
+
* 5. Copy `commits` and `pull_requests` (PKs change, but composite FKs work)
|
|
39
|
+
* 6. Rebuild `graph_entities` with new SERIAL ids and remap relationships
|
|
40
|
+
* 7. Copy all child tables via `copyTable`
|
|
41
|
+
* 8. Verify row counts
|
|
42
|
+
* 9. Write a `.hub-migrated` marker so legacy CLI invocations can detect it
|
|
43
|
+
*/
|
|
44
|
+
export class MigrateToHubUseCase {
|
|
45
|
+
hubPool;
|
|
46
|
+
hubStore;
|
|
47
|
+
constructor(hubPool, hubStore) {
|
|
48
|
+
this.hubPool = hubPool;
|
|
49
|
+
this.hubStore = hubStore;
|
|
50
|
+
}
|
|
51
|
+
async execute(legacy, options = {}) {
|
|
52
|
+
const log = options.onProgress ?? noop;
|
|
53
|
+
const migrated = [];
|
|
54
|
+
const skipped = [];
|
|
55
|
+
const allMismatches = [];
|
|
56
|
+
for (const entry of legacy) {
|
|
57
|
+
const workspaceId = options.rename?.[entry.id] ?? entry.id;
|
|
58
|
+
log(`\n=== ${entry.name} (${entry.path})`);
|
|
59
|
+
log(` → hub workspace_id="${workspaceId}"`);
|
|
60
|
+
const legacyDb = discoverLegacyDbConfig(entry.path);
|
|
61
|
+
log(` legacy db: ${legacyDb.host}:${String(legacyDb.port)}/${legacyDb.database}`);
|
|
62
|
+
const srcPool = createPool(legacyDb);
|
|
63
|
+
try {
|
|
64
|
+
const legacyIssues = await countTable(srcPool, 'issues').catch(() => 0);
|
|
65
|
+
const legacyCommits = await countTable(srcPool, 'commits').catch(() => 0);
|
|
66
|
+
const legacyPrs = await countTable(srcPool, 'pull_requests').catch(() => 0);
|
|
67
|
+
log(` legacy: ${String(legacyIssues)} issues, ${String(legacyCommits)} commits, ${String(legacyPrs)} PRs`);
|
|
68
|
+
if (options.dryRun === true) {
|
|
69
|
+
log(' [dry-run] skipping write');
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
await this.hubStore.create({ id: workspaceId, name: workspaceId });
|
|
73
|
+
await this.copyIssues(srcPool, workspaceId);
|
|
74
|
+
await this.copyCommits(srcPool, workspaceId);
|
|
75
|
+
await this.copyPullRequests(srcPool, workspaceId);
|
|
76
|
+
await this.copyReleases(srcPool, workspaceId);
|
|
77
|
+
const idRemap = await copyGraphEntities(srcPool, this.hubPool, workspaceId);
|
|
78
|
+
log(` remapped ${String(idRemap.size)} graph_entities`);
|
|
79
|
+
await this.copyGraphRelationships(srcPool, workspaceId, idRemap);
|
|
80
|
+
await this.copyGraphObservations(srcPool, workspaceId, idRemap);
|
|
81
|
+
for (const { table, columns } of TENANT_TABLES_TO_COPY) {
|
|
82
|
+
const copied = await copyTable(srcPool, this.hubPool, workspaceId, table, columns).catch(() => 0);
|
|
83
|
+
log(` ${table}: ${String(copied)} rows`);
|
|
84
|
+
}
|
|
85
|
+
const mismatches = await verifyCounts(srcPool, this.hubPool, workspaceId, VERIFY_TABLES);
|
|
86
|
+
if (mismatches.length > 0) {
|
|
87
|
+
allMismatches.push({ workspaceId, mismatches });
|
|
88
|
+
log(` ⚠ count mismatches: ${mismatches.map((m) => `${m.table}(${String(m.legacy)} vs ${String(m.hub)})`).join(', ')}`);
|
|
89
|
+
}
|
|
90
|
+
if (options.keepLegacy !== true) {
|
|
91
|
+
this.writeMarker(entry.path, workspaceId);
|
|
92
|
+
}
|
|
93
|
+
migrated.push(workspaceId);
|
|
94
|
+
log(` ✓ migrated → ${workspaceId}`);
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
skipped.push(workspaceId);
|
|
98
|
+
log(` ✗ ${err instanceof Error ? err.message : String(err)}`);
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
await srcPool.end();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return { migrated, skipped, mismatches: allMismatches };
|
|
105
|
+
}
|
|
106
|
+
async copyIssues(src, workspaceId) {
|
|
107
|
+
const cols = [
|
|
108
|
+
'issue_key', 'issue_id', 'project_key', 'summary', 'description',
|
|
109
|
+
'issue_type', 'status', 'status_category', 'priority', 'resolution',
|
|
110
|
+
'assignee', 'assignee_id', 'reporter', 'reporter_id', 'created', 'updated', 'resolved',
|
|
111
|
+
'due_date', 'labels', 'components', 'fix_versions', 'parent_key',
|
|
112
|
+
'sprint', 'story_points', 'original_estimate', 'remaining_estimate', 'time_spent',
|
|
113
|
+
'custom_fields', 'raw_json', 'source',
|
|
114
|
+
];
|
|
115
|
+
await copyTable(src, this.hubPool, workspaceId, 'issues', cols);
|
|
116
|
+
}
|
|
117
|
+
async copyCommits(src, workspaceId) {
|
|
118
|
+
const cols = ['hash', 'message', 'author', 'email', 'committed_at', 'parents', 'repo_path'];
|
|
119
|
+
await copyTable(src, this.hubPool, workspaceId, 'commits', cols);
|
|
120
|
+
}
|
|
121
|
+
async copyPullRequests(src, workspaceId) {
|
|
122
|
+
const cols = [
|
|
123
|
+
'number', 'repo_full_name', 'title', 'body', 'state', 'author',
|
|
124
|
+
'created_at', 'updated_at', 'merged_at', 'closed_at',
|
|
125
|
+
'merge_commit_sha', 'head_ref', 'base_ref',
|
|
126
|
+
'labels', 'reviewers', 'additions', 'deletions', 'changed_files',
|
|
127
|
+
'raw_json',
|
|
128
|
+
];
|
|
129
|
+
await copyTable(src, this.hubPool, workspaceId, 'pull_requests', cols);
|
|
130
|
+
}
|
|
131
|
+
async copyReleases(src, workspaceId) {
|
|
132
|
+
const cols = [
|
|
133
|
+
'id', 'repo_full_name', 'tag_name', 'name', 'body', 'author',
|
|
134
|
+
'draft', 'prerelease', 'created_at', 'published_at', 'raw_json',
|
|
135
|
+
];
|
|
136
|
+
await copyTable(src, this.hubPool, workspaceId, 'releases', cols);
|
|
137
|
+
}
|
|
138
|
+
async copyGraphRelationships(src, workspaceId, idRemap) {
|
|
139
|
+
const result = await src.query(`SELECT source_id, target_id, type, weight, source, properties FROM graph_relationships`);
|
|
140
|
+
for (const row of result.rows) {
|
|
141
|
+
const newSrc = idRemap.get(row.source_id);
|
|
142
|
+
const newTgt = idRemap.get(row.target_id);
|
|
143
|
+
if (newSrc === undefined || newTgt === undefined) {
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
await this.hubPool.query(`INSERT INTO graph_relationships (workspace_id, source_id, target_id, type, weight, source, properties)
|
|
147
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7::jsonb)
|
|
148
|
+
ON CONFLICT DO NOTHING`, [workspaceId, newSrc, newTgt, row.type, row.weight, row.source, JSON.stringify(row.properties ?? {})]);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
async copyGraphObservations(src, workspaceId, idRemap) {
|
|
152
|
+
const result = await src.query(`SELECT entity_id, content, author, created_at FROM graph_observations`);
|
|
153
|
+
for (const row of result.rows) {
|
|
154
|
+
const newEntity = idRemap.get(row.entity_id);
|
|
155
|
+
if (newEntity === undefined) {
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
await this.hubPool.query(`INSERT INTO graph_observations (workspace_id, entity_id, content, author, created_at)
|
|
159
|
+
VALUES ($1, $2, $3, $4, $5)`, [workspaceId, newEntity, row.content, row.author, row.created_at]);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
writeMarker(legacyRoot, workspaceId) {
|
|
163
|
+
const dir = join(legacyRoot, '.argustack');
|
|
164
|
+
if (!existsSync(dir)) {
|
|
165
|
+
mkdirSync(dir, { recursive: true });
|
|
166
|
+
}
|
|
167
|
+
const markerPath = join(dir, '.hub-migrated');
|
|
168
|
+
writeFileSync(markerPath, `${JSON.stringify({ workspaceId, migratedAt: new Date().toISOString() }, null, 2)}\n`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=migrate-to-hub-impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-to-hub-impl.js","sourceRoot":"","sources":["../../src/cli/migrate-to-hub-impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-to-hub.d.ts","sourceRoot":"","sources":["../../src/cli/migrate-to-hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsE7D"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { mkdirSync, writeFileSync, existsSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { loadHubConfig, hubDir } from '../workspace/hub-config.js';
|
|
5
|
+
import { listLegacyWorkspaces } from '../workspace/registry.js';
|
|
6
|
+
import { MigrateToHubUseCase } from './migrate-to-hub-impl.js';
|
|
7
|
+
function parseRenameFlags(values) {
|
|
8
|
+
if (values == null) {
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
const map = {};
|
|
12
|
+
for (const v of values) {
|
|
13
|
+
const eq = v.indexOf('=');
|
|
14
|
+
if (eq > 0) {
|
|
15
|
+
map[v.slice(0, eq)] = v.slice(eq + 1);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return map;
|
|
19
|
+
}
|
|
20
|
+
function workspaceSlug(name) {
|
|
21
|
+
return name.toLowerCase().replace(/[^a-z0-9-]/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');
|
|
22
|
+
}
|
|
23
|
+
export function registerMigrateCommand(program) {
|
|
24
|
+
program
|
|
25
|
+
.command('migrate-to-hub')
|
|
26
|
+
.description('Migrate legacy per-workspace Postgres stacks into the hub (idempotent)')
|
|
27
|
+
.option('--dry-run', 'Report what would happen, do not write')
|
|
28
|
+
.option('--keep-legacy', 'Do not write .hub-migrated marker')
|
|
29
|
+
.option('--allow-conflicts', 'Continue migration even when issue_key/commit hash collisions are detected')
|
|
30
|
+
.option('--rename <pairs...>', 'Rename legacy workspace ids: --rename old=new old2=new2')
|
|
31
|
+
.action(async (options) => {
|
|
32
|
+
const hub = loadHubConfig();
|
|
33
|
+
const legacyEntries = listLegacyWorkspaces();
|
|
34
|
+
if (legacyEntries.length === 0) {
|
|
35
|
+
console.log(chalk.yellow(' No legacy workspaces found in ~/.argustack/workspaces.json'));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const rename = parseRenameFlags(options.rename);
|
|
39
|
+
const targets = legacyEntries.map((entry) => ({
|
|
40
|
+
id: workspaceSlug(entry.name),
|
|
41
|
+
name: entry.name,
|
|
42
|
+
path: entry.path,
|
|
43
|
+
}));
|
|
44
|
+
console.log(chalk.bold('\n Argustack migrate-to-hub'));
|
|
45
|
+
console.log(chalk.dim(` hub: ${hub.db.host}:${String(hub.db.port)}/${hub.db.database}`));
|
|
46
|
+
console.log(chalk.dim(` legacy workspaces: ${String(legacyEntries.length)}\n`));
|
|
47
|
+
const { PostgresWorkspaceStore, createPool } = await import('../adapters/postgres/index.js');
|
|
48
|
+
const hubPool = createPool(hub.db);
|
|
49
|
+
const hubStore = new PostgresWorkspaceStore(hubPool);
|
|
50
|
+
try {
|
|
51
|
+
await hubStore.initialize();
|
|
52
|
+
const useCase = new MigrateToHubUseCase(hubPool, hubStore);
|
|
53
|
+
const logDir = join(hubDir(), 'migrations');
|
|
54
|
+
if (!existsSync(logDir)) {
|
|
55
|
+
mkdirSync(logDir, { recursive: true });
|
|
56
|
+
}
|
|
57
|
+
const logFile = join(logDir, `${new Date().toISOString().replace(/[:.]/g, '-')}.log`);
|
|
58
|
+
const logLines = [];
|
|
59
|
+
const result = await useCase.execute(targets, {
|
|
60
|
+
...(options.dryRun === true ? { dryRun: true } : {}),
|
|
61
|
+
...(options.keepLegacy === true ? { keepLegacy: true } : {}),
|
|
62
|
+
...(options.allowConflicts === true ? { allowConflicts: true } : {}),
|
|
63
|
+
rename,
|
|
64
|
+
onProgress: (msg) => {
|
|
65
|
+
console.log(msg);
|
|
66
|
+
logLines.push(msg);
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
if (logLines.length > 0) {
|
|
70
|
+
writeFileSync(logFile, `${logLines.join('\n')}\n`);
|
|
71
|
+
console.log(chalk.dim(`\n Log: ${logFile}`));
|
|
72
|
+
}
|
|
73
|
+
console.log('');
|
|
74
|
+
console.log(chalk.bold(' Summary:'));
|
|
75
|
+
const migratedList = result.migrated.join(', ');
|
|
76
|
+
console.log(` migrated: ${migratedList !== '' ? migratedList : '(none)'}`);
|
|
77
|
+
if (result.skipped.length > 0) {
|
|
78
|
+
console.log(chalk.yellow(` skipped: ${result.skipped.join(', ')}`));
|
|
79
|
+
}
|
|
80
|
+
if (result.mismatches.length > 0) {
|
|
81
|
+
console.log(chalk.yellow(` count mismatches in ${String(result.mismatches.length)} workspace(s)`));
|
|
82
|
+
}
|
|
83
|
+
console.log('');
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
await hubPool.end();
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=migrate-to-hub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-to-hub.js","sourceRoot":"","sources":["../../src/cli/migrate-to-hub.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/push.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/cli/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/cli/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyE1D"}
|
package/dist/cli/push.js
CHANGED
|
@@ -1,91 +1,88 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import ora from 'ora';
|
|
3
|
-
import dotenv from 'dotenv';
|
|
4
|
-
import { requireWorkspace } from '../workspace/resolver.js';
|
|
5
3
|
import { JiraProvider } from '../adapters/jira/index.js';
|
|
4
|
+
import { ProxyJiraProvider, loadProxyConfigForWorkspace, proxyConfigExistsForWorkspace, } from '../adapters/jira-proxy/index.js';
|
|
6
5
|
import { PostgresStorage } from '../adapters/postgres/index.js';
|
|
7
6
|
import { PushUseCase } from '../use-cases/push.js';
|
|
8
7
|
import { updateMdFrontmatter } from '../adapters/board/md-parser.js';
|
|
8
|
+
import { loadHubConfig } from '../workspace/hub-config.js';
|
|
9
|
+
import { openHubStore, resolveWorkspaceFlag } from './add/shared.js';
|
|
10
|
+
function buildJiraProvider(workspaceId, hub) {
|
|
11
|
+
if (proxyConfigExistsForWorkspace(workspaceId)) {
|
|
12
|
+
return new ProxyJiraProvider(loadProxyConfigForWorkspace(workspaceId));
|
|
13
|
+
}
|
|
14
|
+
if (hub.credentials.jiraUrl !== undefined && hub.credentials.jiraUrl !== '' &&
|
|
15
|
+
hub.credentials.jiraEmail !== undefined && hub.credentials.jiraEmail !== '' &&
|
|
16
|
+
hub.credentials.jiraApiToken !== undefined && hub.credentials.jiraApiToken !== '') {
|
|
17
|
+
return new JiraProvider({
|
|
18
|
+
host: hub.credentials.jiraUrl,
|
|
19
|
+
email: hub.credentials.jiraEmail,
|
|
20
|
+
apiToken: hub.credentials.jiraApiToken,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
9
25
|
export function registerPushCommand(program) {
|
|
10
26
|
program
|
|
11
27
|
.command('push')
|
|
12
|
-
.description('Push local board tasks to Jira')
|
|
28
|
+
.description('Push local board tasks (or modified issues) to Jira')
|
|
29
|
+
.option('--workspace <name>', 'Target workspace (defaults to active)')
|
|
13
30
|
.option('--updates', 'Push locally modified issues to Jira (update existing)')
|
|
14
31
|
.action(async (options) => {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
const hub = loadHubConfig();
|
|
33
|
+
const { store, close } = await openHubStore();
|
|
34
|
+
const storage = new PostgresStorage(hub.db);
|
|
35
|
+
try {
|
|
36
|
+
const workspaceId = await resolveWorkspaceFlag(store, options.workspace);
|
|
37
|
+
await storage.initialize();
|
|
38
|
+
const jira = buildJiraProvider(workspaceId, hub);
|
|
39
|
+
if (jira == null) {
|
|
40
|
+
console.log(chalk.red('\n Jira credentials missing in ~/.argustack/config.env (and no proxy config).'));
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
const useCase = new PushUseCase(jira, storage);
|
|
44
|
+
if (options.updates === true) {
|
|
45
|
+
const spinner = ora('Pushing modified issues to Jira...').start();
|
|
46
|
+
try {
|
|
47
|
+
const result = await useCase.executeUpdates(workspaceId, {
|
|
48
|
+
onProgress: (msg) => { spinner.text = msg; },
|
|
49
|
+
});
|
|
50
|
+
spinner.succeed(`Updated ${String(result.updated.length)} issue(s)${result.errors > 0 ? `, ${String(result.errors)} error(s)` : ''}`);
|
|
51
|
+
for (const item of result.updated) {
|
|
52
|
+
console.log(` ${chalk.green('✓')} ${item.key} — ${item.summary}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
spinner.fail('Push updates failed');
|
|
57
|
+
console.error(chalk.red(` ${err instanceof Error ? err.message : String(err)}`));
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const spinner = ora('Pushing local tasks to Jira...').start();
|
|
37
63
|
try {
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
onProgress: (msg) => {
|
|
41
|
-
progressLines.push(msg);
|
|
42
|
-
spinner.text = msg;
|
|
43
|
-
},
|
|
64
|
+
const result = await useCase.execute(workspaceId, {
|
|
65
|
+
onProgress: (msg) => { spinner.text = msg; },
|
|
44
66
|
});
|
|
45
|
-
|
|
46
|
-
(
|
|
47
|
-
|
|
48
|
-
console.log(` ${chalk.green('✓')} ${item.key} — ${item.summary}`);
|
|
49
|
-
}
|
|
50
|
-
if (result.errors > 0) {
|
|
51
|
-
for (const line of progressLines.filter((l) => l.includes('Failed'))) {
|
|
52
|
-
console.log(` ${chalk.red('✗')} ${line.trim()}`);
|
|
67
|
+
for (const item of result.created) {
|
|
68
|
+
if (item.mdPath !== null && item.mdPath !== '') {
|
|
69
|
+
updateMdFrontmatter(item.mdPath, { jiraKey: item.newKey });
|
|
53
70
|
}
|
|
54
71
|
}
|
|
72
|
+
spinner.succeed(`Pushed! Created ${String(result.created.length)} issue(s)${result.errors > 0 ? `, ${String(result.errors)} error(s)` : ''}`);
|
|
73
|
+
for (const item of result.created) {
|
|
74
|
+
console.log(` ${chalk.green('✓')} ${item.newKey} — ${chalk.dim(item.oldKey)}`);
|
|
75
|
+
}
|
|
55
76
|
}
|
|
56
77
|
catch (err) {
|
|
57
|
-
spinner.fail('Push
|
|
78
|
+
spinner.fail('Push failed');
|
|
58
79
|
console.error(chalk.red(` ${err instanceof Error ? err.message : String(err)}`));
|
|
59
80
|
process.exit(1);
|
|
60
81
|
}
|
|
61
|
-
finally {
|
|
62
|
-
await storage.close();
|
|
63
|
-
}
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
const spinner = ora('Pushing local tasks to Jira...').start();
|
|
67
|
-
try {
|
|
68
|
-
const result = await useCase.execute({
|
|
69
|
-
onProgress: (msg) => { spinner.text = msg; },
|
|
70
|
-
});
|
|
71
|
-
for (const item of result.created) {
|
|
72
|
-
if (item.mdPath) {
|
|
73
|
-
updateMdFrontmatter(item.mdPath, { jiraKey: item.newKey });
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
spinner.succeed(`Pushed! Created ${String(result.created.length)} issue(s)` +
|
|
77
|
-
(result.errors > 0 ? `, ${String(result.errors)} error(s)` : ''));
|
|
78
|
-
for (const item of result.created) {
|
|
79
|
-
console.log(` ${chalk.green('✓')} ${item.newKey} — ${chalk.dim(item.oldKey)}`);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
catch (err) {
|
|
83
|
-
spinner.fail('Push failed');
|
|
84
|
-
console.error(chalk.red(` ${err instanceof Error ? err.message : String(err)}`));
|
|
85
|
-
process.exit(1);
|
|
86
82
|
}
|
|
87
83
|
finally {
|
|
88
84
|
await storage.close();
|
|
85
|
+
await close();
|
|
89
86
|
}
|
|
90
87
|
});
|
|
91
88
|
}
|
package/dist/cli/push.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/cli/push.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/cli/push.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/sources.d.ts
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
|
-
/**
|
|
3
|
-
* Register `argustack source` parent command with subcommands:
|
|
4
|
-
* source list — show all sources + status
|
|
5
|
-
* source add — first-time setup + enable
|
|
6
|
-
* source enable — re-enable a disabled source
|
|
7
|
-
* source disable — soft-disable (keeps credentials)
|
|
8
|
-
*/
|
|
9
2
|
export declare function registerSourceCommands(program: Command): void;
|
|
10
3
|
//# sourceMappingURL=sources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/cli/sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/cli/sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsC7D"}
|