diff --git a/README.md b/README.md index 84eba6b..87c630e 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,9 @@ [![GitHub stars](https://img.shields.io/github/stars/syntaxpriest/openvisio-oss?style=social)](https://github.com/syntaxpriest/openvisio-oss) [![CI](https://github.com/syntaxpriest/openvisio-oss/actions/workflows/ci.yml/badge.svg)](https://github.com/syntaxpriest/openvisio-oss/actions/workflows/ci.yml) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)]() +[![Website](https://img.shields.io/badge/website-openvisio.io-amber?logo=googlechrome&logoColor=white)](https://openvisio.io) + +**Website: [openvisio.io](https://openvisio.io)** · [npm](https://www.npmjs.com/package/openvisio) · [docs](https://openvisio.io) > **Stop paying for tokens your coding agent wastes reading files.** OpenVisio is > an [MCP server](https://modelcontextprotocol.io) that turns any repository into diff --git a/core/package.json b/core/package.json index 5570561..1f1dbf0 100644 --- a/core/package.json +++ b/core/package.json @@ -1,11 +1,11 @@ { "name": "@openvisio/core", - "version": "0.2.2", + "version": "0.2.3", "description": "Deterministic, local-first code-graph engine for OpenVisio: tree-sitter symbol/import extraction, PageRank ranking, token-budgeted skeletons and slices. No LLM, no network.", "type": "module", "license": "MIT", "author": "OpenVisio contributors", - "homepage": "https://github.com/syntaxpriest/openvisio-oss#readme", + "homepage": "https://openvisio.io", "repository": { "type": "git", "url": "git+https://github.com/syntaxpriest/openvisio-oss.git", @@ -41,5 +41,792 @@ "@types/node": "^22.19.21", "tsx": "^4.19.2", "typescript": "^5.7.2" - } + }, + "keywords": [ + "3d-visualization", + "abstract-syntax-tree", + "agent", + "agent-memory", + "agentic", + "agentic-ai", + "agentic-coding", + "agentic-workflow", + "agents", + "ai", + "ai-agent", + "ai-agents", + "ai-assistant", + "ai-code-completion", + "ai-code-review", + "ai-coding", + "ai-coding-agent", + "ai-coding-assistant", + "ai-coding-tools", + "ai-context", + "ai-cost", + "ai-cost-reduction", + "ai-dev-tools", + "ai-developer-tools", + "ai-engineering", + "ai-memory", + "ai-native", + "ai-orchestration", + "ai-pair-programmer", + "ai-pair-programming", + "ai-powered", + "ai-tooling", + "ai-tools", + "aider", + "aider-code-graph", + "aider-context", + "aider-extension", + "aider-integration", + "aider-mcp", + "aider-mcp-server", + "aider-plugin", + "aider-tokens", + "aider-tools", + "amp-code", + "anchors", + "anthropic", + "anthropic-claude", + "anthropic-mcp", + "api", + "architecture", + "architecture-analysis", + "architecture-diagram", + "architecture-map", + "architecture-visualization", + "artificial-intelligence", + "ast", + "augment", + "augment-code", + "augment-code-graph", + "augment-context", + "augment-extension", + "augment-integration", + "augment-mcp", + "augment-mcp-server", + "augment-plugin", + "augment-tokens", + "augment-tools", + "auto-documentation", + "automation", + "autonomous-agent", + "autonomous-coding", + "bash", + "blast-radius", + "block-goose", + "bolt", + "bolt-new", + "budgeted-context", + "bug-finding", + "build-tools", + "c", + "c-plus-plus", + "c-sharp", + "call-graph", + "callgraph", + "centrality", + "cheaper-ai", + "churn", + "claude", + "claude-ai", + "claude-code", + "claude-code-code-graph", + "claude-code-context", + "claude-code-extension", + "claude-code-graph", + "claude-code-integration", + "claude-code-mcp", + "claude-code-mcp-server", + "claude-code-plugin", + "claude-code-tokens", + "claude-code-tools", + "claude-context", + "claude-desktop", + "claude-extension", + "claude-integration", + "claude-mcp", + "claude-mcp-server", + "claude-plugin", + "claude-tokens", + "claude-tools", + "cli", + "cli-tool", + "cline", + "cline-code-graph", + "cline-context", + "cline-extension", + "cline-integration", + "cline-mcp", + "cline-mcp-server", + "cline-plugin", + "cline-tokens", + "cline-tools", + "clojure", + "cloudless", + "code-analysis", + "code-assistant", + "code-atlas", + "code-browser", + "code-city", + "code-completion", + "code-complexity", + "code-comprehension", + "code-context", + "code-context-protocol", + "code-diagram", + "code-discovery", + "code-documentation", + "code-exploration", + "code-explorer", + "code-graph", + "code-graph-rag", + "code-index", + "code-indexing", + "code-intel", + "code-intelligence", + "code-knowledge-graph", + "code-map", + "code-metrics", + "code-migration", + "code-navigation", + "code-quality", + "code-rag", + "code-refactoring", + "code-review", + "code-reviews", + "code-search", + "code-search-engine", + "code-skeleton", + "code-structure", + "code-summarization", + "code-summary", + "code-understanding", + "code-viewer", + "code-visualisation", + "code-visualization", + "codebase-analysis", + "codebase-context", + "codebase-documentation", + "codebase-exploration", + "codebase-graph", + "codebase-indexing", + "codebase-insights", + "codebase-map", + "codebase-navigation", + "codebase-onboarding", + "codebase-search", + "codebase-understanding", + "codebase-visualisation", + "codebase-visualization", + "codeium", + "codeium-code-graph", + "codeium-context", + "codeium-extension", + "codeium-integration", + "codeium-mcp", + "codeium-mcp-server", + "codeium-plugin", + "codeium-tokens", + "codeium-tools", + "codex", + "codex-cli", + "codex-code-graph", + "codex-context", + "codex-extension", + "codex-integration", + "codex-mcp", + "codex-mcp-server", + "codex-plugin", + "codex-tokens", + "codex-tools", + "coding", + "coding-agent", + "coding-assistant", + "coding-tools", + "cody", + "cognition-devin", + "command-line", + "command-line-interface", + "command-line-tool", + "complexity", + "concrete-syntax-tree", + "context", + "context-budget", + "context-compression", + "context-engineering", + "context-management", + "context-optimization", + "context-provider", + "context-retrieval", + "context-window", + "context7-alternative", + "continue", + "continue-code-graph", + "continue-context", + "continue-dev", + "continue-extension", + "continue-integration", + "continue-mcp", + "continue-mcp-server", + "continue-plugin", + "continue-tokens", + "continue-tools", + "control-flow-graph", + "copilot", + "copilot-chat", + "copilot-code-graph", + "copilot-context", + "copilot-extension", + "copilot-integration", + "copilot-mcp", + "copilot-mcp-server", + "copilot-plugin", + "copilot-tokens", + "copilot-tools", + "cost-optimization", + "cpp", + "cpp-ast", + "cpp-call-graph", + "cpp-code-analysis", + "cpp-code-graph", + "cpp-codebase", + "cpp-dependency-graph", + "cpp-static-analysis", + "cpp-tree-sitter", + "crystal", + "csharp", + "csharp-ast", + "csharp-call-graph", + "csharp-code-analysis", + "csharp-code-graph", + "csharp-codebase", + "csharp-dependency-graph", + "csharp-static-analysis", + "csharp-tree-sitter", + "css", + "cst", + "cursor", + "cursor-ai", + "cursor-code-graph", + "cursor-context", + "cursor-extension", + "cursor-ide", + "cursor-integration", + "cursor-mcp", + "cursor-mcp-server", + "cursor-plugin", + "cursor-tokens", + "cursor-tools", + "cut-tokens", + "dart", + "data-flow", + "data-flow-analysis", + "data-visualization", + "dead-code", + "dead-code-detection", + "debug", + "debugging", + "definitions", + "dependencies", + "dependency-analysis", + "dependency-graph", + "dependency-visualization", + "deterministic", + "deterministic-code-graph", + "developer-experience", + "developer-onboarding", + "developer-productivity", + "developer-tools", + "developer-workflow", + "devin", + "devtool", + "devtools", + "devx", + "diagram", + "directed-graph", + "documentation", + "dotnet", + "dx", + "ecmascript", + "edges", + "efficient-context", + "elixir", + "embedding-free", + "engineering-insights", + "engineering-productivity", + "enterprise-codebase", + "erlang", + "fast", + "fewer-tokens", + "find-references", + "foundation-model", + "framework", + "fsharp", + "function-calling", + "gemini-cli", + "gemini-cli-code-graph", + "gemini-cli-context", + "gemini-cli-extension", + "gemini-cli-integration", + "gemini-cli-mcp", + "gemini-cli-mcp-server", + "gemini-cli-plugin", + "gemini-cli-tokens", + "gemini-cli-tools", + "gemini-code-assist", + "gen-ai", + "genai", + "generative-ai", + "git", + "github", + "github-copilot", + "go", + "go-ast", + "go-call-graph", + "go-code-analysis", + "go-code-graph", + "go-codebase", + "go-dependency-graph", + "go-static-analysis", + "go-to-definition", + "go-tree-sitter", + "golang", + "google-gemini", + "goose", + "graph", + "graph-algorithms", + "graph-analysis", + "graph-database", + "graph-native", + "graph-query", + "graph-rag", + "graph-ranking", + "graph-traversal", + "graph-viewer", + "graph-visualization", + "graphql", + "graphrag", + "graphs", + "groovy", + "grounding", + "haskell", + "hotspots", + "html", + "impact-analysis", + "import-analysis", + "import-graph", + "in-context-learning", + "incremental-parsing", + "indexing", + "interactive-visualization", + "java", + "java-ast", + "java-call-graph", + "java-code-analysis", + "java-code-graph", + "java-codebase", + "java-dependency-graph", + "java-static-analysis", + "java-tree-sitter", + "javascript", + "javascript-ast", + "javascript-call-graph", + "javascript-code-analysis", + "javascript-code-graph", + "javascript-codebase", + "javascript-dependency-graph", + "javascript-static-analysis", + "javascript-tree-sitter", + "jetbrains-ai", + "jetbrains-assistant", + "jsx", + "julia", + "kilo-code", + "kilo-code-code-graph", + "kilo-code-context", + "kilo-code-extension", + "kilo-code-integration", + "kilo-code-mcp", + "kilo-code-mcp-server", + "kilo-code-plugin", + "kilo-code-tokens", + "kilo-code-tools", + "kiro", + "kiro-code-graph", + "kiro-context", + "kiro-extension", + "kiro-integration", + "kiro-mcp", + "kiro-mcp-server", + "kiro-plugin", + "kiro-tokens", + "kiro-tools", + "knowledge-graph", + "kotlin", + "kotlin-ast", + "kotlin-call-graph", + "kotlin-code-analysis", + "kotlin-code-graph", + "kotlin-codebase", + "kotlin-dependency-graph", + "kotlin-static-analysis", + "kotlin-tree-sitter", + "language-server", + "language-server-protocol", + "large-codebase", + "large-codebases", + "large-language-model", + "large-language-models", + "lean-context", + "legacy-code", + "legacy-modernization", + "lexer", + "library", + "lightweight", + "llm", + "llm-agent", + "llm-agents", + "llm-app", + "llm-application", + "llm-cost", + "llm-cost-reduction", + "llm-free", + "llm-orchestration", + "llm-tooling", + "llm-tools", + "llms", + "local", + "local-first", + "local-mcp", + "lovable", + "lsp", + "lua", + "maintainability", + "mcp", + "mcp-agent", + "mcp-agents", + "mcp-ai", + "mcp-app", + "mcp-cli", + "mcp-client", + "mcp-code", + "mcp-code-graph", + "mcp-codebase", + "mcp-connector", + "mcp-context", + "mcp-developer-tools", + "mcp-ecosystem", + "mcp-extension", + "mcp-for-aider", + "mcp-for-augment", + "mcp-for-claude", + "mcp-for-claude-code", + "mcp-for-cline", + "mcp-for-codeium", + "mcp-for-codex", + "mcp-for-continue", + "mcp-for-copilot", + "mcp-for-cursor", + "mcp-for-gemini-cli", + "mcp-for-kilo-code", + "mcp-for-kiro", + "mcp-for-roo-code", + "mcp-for-sourcegraph", + "mcp-for-tabnine", + "mcp-for-trae", + "mcp-for-warp", + "mcp-for-windsurf", + "mcp-for-zed", + "mcp-host", + "mcp-integration", + "mcp-plugin", + "mcp-prompt", + "mcp-registry", + "mcp-resource", + "mcp-server", + "mcp-static-analysis", + "mcp-stdio", + "mcp-tool", + "mcp-toolkit", + "mcp-tools", + "mcp-transport", + "minimal-context", + "model-context-protocol", + "modelcontextprotocol", + "modernization", + "module-graph", + "monorepo", + "monorepos", + "neighborhood", + "network-free", + "nim", + "no-cloud", + "no-embeddings", + "no-llm", + "no-network", + "nodes", + "objective-c", + "ocaml", + "offline", + "offline-first", + "on-device", + "on-prem", + "on-premise", + "onboarding", + "open-source", + "openai-codex", + "opendevin", + "openhands", + "openvisio", + "oss", + "page-rank", + "pagerank", + "pair-programming", + "parser", + "parsing", + "path-line-anchors", + "pear-ai", + "pearai", + "perl", + "php", + "php-ast", + "php-call-graph", + "php-code-analysis", + "php-code-graph", + "php-codebase", + "php-dependency-graph", + "php-static-analysis", + "php-tree-sitter", + "polyglot", + "polyglot-codebase", + "powershell", + "privacy", + "privacy-first", + "private", + "productivity", + "program-analysis", + "programming", + "programming-tools", + "prompt", + "prompt-compression", + "prompt-engineering", + "python", + "python-ast", + "python-call-graph", + "python-code-analysis", + "python-code-graph", + "python-codebase", + "python-dependency-graph", + "python-static-analysis", + "python-tree-sitter", + "qwen-coder", + "r-lang", + "rag", + "ranked", + "ranked-context", + "ranking", + "reachability", + "react-three-fiber", + "read-only", + "reduce-tokens", + "refactor", + "refactoring", + "reference-graph", + "references", + "remote-mcp", + "replit", + "replit-agent", + "replit-ai", + "repo-analysis", + "repo-indexing", + "repo-map", + "repository-analysis", + "repository-map", + "reproducible", + "retrieval", + "retrieval-augmented-generation", + "roo-cline", + "roo-code", + "roo-code-code-graph", + "roo-code-context", + "roo-code-extension", + "roo-code-integration", + "roo-code-mcp", + "roo-code-mcp-server", + "roo-code-plugin", + "roo-code-tokens", + "roo-code-tools", + "ruby", + "ruby-ast", + "ruby-call-graph", + "ruby-code-analysis", + "ruby-code-graph", + "ruby-codebase", + "ruby-dependency-graph", + "ruby-static-analysis", + "ruby-tree-sitter", + "rust", + "rust-ast", + "rust-call-graph", + "rust-code-analysis", + "rust-code-graph", + "rust-codebase", + "rust-dependency-graph", + "rust-static-analysis", + "rust-tree-sitter", + "save-tokens", + "scala", + "sdk", + "secure", + "self-hosted", + "selfhosted", + "semantic-analysis", + "semantic-code", + "semantic-search", + "shell", + "single-binary", + "skeleton", + "software-architecture", + "software-development", + "software-engineering", + "software-visualization", + "solidity", + "source-code-analysis", + "source-graph", + "sourcegraph", + "sourcegraph-code-graph", + "sourcegraph-cody", + "sourcegraph-context", + "sourcegraph-extension", + "sourcegraph-integration", + "sourcegraph-mcp", + "sourcegraph-mcp-server", + "sourcegraph-plugin", + "sourcegraph-tokens", + "sourcegraph-tools", + "sql", + "static-analysis", + "static-code-analysis", + "structure", + "subgraph", + "swift", + "swift-ast", + "swift-call-graph", + "swift-code-analysis", + "swift-code-graph", + "swift-codebase", + "swift-dependency-graph", + "swift-static-analysis", + "swift-tree-sitter", + "symbol-graph", + "symbol-index", + "symbol-search", + "symbol-table", + "symbols", + "syntax-tree", + "system-design", + "tabnine", + "tabnine-code-graph", + "tabnine-context", + "tabnine-extension", + "tabnine-integration", + "tabnine-mcp", + "tabnine-mcp-server", + "tabnine-plugin", + "tabnine-tokens", + "tabnine-tools", + "tech-debt", + "technical-debt", + "terminal", + "terminal-tool", + "three-js", + "threejs", + "token", + "token-aware", + "token-budget", + "token-budgeting", + "token-cost", + "token-efficiency", + "token-efficient", + "token-optimization", + "token-optimized", + "token-reduction", + "token-saving", + "token-savings", + "token-usage", + "tokens", + "tool-calling", + "tool-use", + "toolkit", + "trae", + "trae-ai", + "trae-code-graph", + "trae-context", + "trae-extension", + "trae-integration", + "trae-mcp", + "trae-mcp-server", + "trae-plugin", + "trae-tokens", + "trae-tools", + "tree-sitter", + "tsx", + "typescript", + "typescript-ast", + "typescript-call-graph", + "typescript-code-analysis", + "typescript-code-graph", + "typescript-codebase", + "typescript-dependency-graph", + "typescript-static-analysis", + "typescript-tree-sitter", + "unused-code", + "utility", + "v0", + "vercel-v0", + "visualization", + "void-editor", + "vue-lang", + "warp", + "warp-code-graph", + "warp-context", + "warp-extension", + "warp-integration", + "warp-mcp", + "warp-mcp-server", + "warp-plugin", + "warp-terminal", + "warp-tokens", + "warp-tools", + "wayfinding", + "webgl", + "windsurf", + "windsurf-code-graph", + "windsurf-context", + "windsurf-extension", + "windsurf-ide", + "windsurf-integration", + "windsurf-mcp", + "windsurf-mcp-server", + "windsurf-plugin", + "windsurf-tokens", + "windsurf-tools", + "zed", + "zed-ai", + "zed-code-graph", + "zed-context", + "zed-editor", + "zed-extension", + "zed-integration", + "zed-mcp", + "zed-mcp-server", + "zed-plugin", + "zed-tokens", + "zed-tools", + "zero-config", + "zig" + ] } diff --git a/mcp/package.json b/mcp/package.json index bd2def4..c9b55f3 100644 --- a/mcp/package.json +++ b/mcp/package.json @@ -1,11 +1,11 @@ { "name": "openvisio", - "version": "0.2.3", + "version": "0.2.4", "description": "Cut your AI coding agent's token usage. MCP server + CLI that turns any codebase into a deterministic code graph and serves Claude Code, Cursor, Codex & Windsurf a ranked, token-budgeted query surface — agents query structure (symbols, imports, call edges, path:line anchors) instead of crawling files. ~30x fewer exploration tokens. Local-first, read-only, no network, no embeddings.", "type": "module", "license": "MIT", "author": "OpenVisio contributors", - "homepage": "https://github.com/syntaxpriest/openvisio-oss#readme", + "homepage": "https://openvisio.io", "repository": { "type": "git", "url": "git+https://github.com/syntaxpriest/openvisio-oss.git", @@ -15,30 +15,856 @@ "url": "https://github.com/syntaxpriest/openvisio-oss/issues" }, "keywords": [ - "mcp", - "mcp-server", - "model-context-protocol", - "token-savings", - "reduce-tokens", - "context-engineering", + "3d-visualization", + "abstract-syntax-tree", + "agent", + "agent-memory", + "agentic", + "agentic-ai", + "agentic-coding", + "agentic-workflow", + "agents", + "ai", + "ai-agent", + "ai-agents", + "ai-assistant", + "ai-code-completion", + "ai-code-review", + "ai-coding", + "ai-coding-agent", + "ai-coding-assistant", + "ai-coding-tools", + "ai-context", + "ai-cost", + "ai-cost-reduction", + "ai-dev-tools", + "ai-developer-tools", + "ai-engineering", + "ai-memory", + "ai-native", + "ai-orchestration", + "ai-pair-programmer", + "ai-pair-programming", + "ai-powered", + "ai-tooling", + "ai-tools", + "aider", + "aider-code-graph", + "aider-context", + "aider-extension", + "aider-integration", + "aider-mcp", + "aider-mcp-server", + "aider-plugin", + "aider-tokens", + "aider-tools", + "amp-code", + "anchors", + "android", + "angular", + "anthropic", + "anthropic-claude", + "anthropic-mcp", + "api", + "architecture", + "architecture-analysis", + "architecture-diagram", + "architecture-map", + "architecture-visualization", + "artificial-intelligence", + "ast", + "astro", + "augment", + "augment-code", + "augment-code-graph", + "augment-context", + "augment-extension", + "augment-integration", + "augment-mcp", + "augment-mcp-server", + "augment-plugin", + "augment-tokens", + "augment-tools", + "auto-documentation", + "automation", + "autonomous-agent", + "autonomous-coding", + "backend", + "bash", + "blast-radius", + "block-goose", + "bolt", + "bolt-new", + "budgeted-context", + "bug-finding", + "build-tools", + "bun", + "c", + "c-plus-plus", + "c-sharp", + "call-graph", + "callgraph", + "centrality", + "cheaper-ai", + "churn", + "claude", + "claude-ai", + "claude-code", + "claude-code-code-graph", + "claude-code-context", + "claude-code-extension", + "claude-code-graph", + "claude-code-integration", + "claude-code-mcp", + "claude-code-mcp-server", + "claude-code-plugin", + "claude-code-tokens", + "claude-code-tools", + "claude-context", + "claude-desktop", + "claude-extension", + "claude-integration", + "claude-mcp", + "claude-mcp-server", + "claude-plugin", + "claude-tokens", + "claude-tools", + "cli", + "cli-tool", + "cline", + "cline-code-graph", + "cline-context", + "cline-extension", + "cline-integration", + "cline-mcp", + "cline-mcp-server", + "cline-plugin", + "cline-tokens", + "cline-tools", + "clion", + "clojure", + "cloudless", + "code-analysis", + "code-assistant", + "code-atlas", + "code-browser", + "code-city", + "code-completion", + "code-complexity", + "code-comprehension", + "code-context", + "code-context-protocol", + "code-diagram", + "code-discovery", + "code-documentation", + "code-editor", + "code-exploration", + "code-explorer", "code-graph", + "code-graph-rag", + "code-index", + "code-indexing", + "code-intel", + "code-intelligence", "code-knowledge-graph", - "claude-code", + "code-map", + "code-metrics", + "code-migration", + "code-navigation", + "code-quality", + "code-rag", + "code-refactoring", + "code-review", + "code-reviews", + "code-search", + "code-search-engine", + "code-skeleton", + "code-structure", + "code-summarization", + "code-summary", + "code-understanding", + "code-viewer", + "code-visualisation", + "code-visualization", + "codebase-analysis", + "codebase-context", + "codebase-documentation", + "codebase-exploration", + "codebase-graph", + "codebase-indexing", + "codebase-insights", + "codebase-map", + "codebase-navigation", + "codebase-onboarding", + "codebase-search", + "codebase-understanding", + "codebase-visualisation", + "codebase-visualization", + "codeium", + "codeium-code-graph", + "codeium-context", + "codeium-extension", + "codeium-integration", + "codeium-mcp", + "codeium-mcp-server", + "codeium-plugin", + "codeium-tokens", + "codeium-tools", "codex", + "codex-cli", + "codex-code-graph", + "codex-context", + "codex-extension", + "codex-integration", + "codex-mcp", + "codex-mcp-server", + "codex-plugin", + "codex-tokens", + "codex-tools", + "coding", + "coding-agent", + "coding-assistant", + "coding-tools", + "cody", + "cognition-devin", + "command-line", + "command-line-interface", + "command-line-tool", + "complexity", + "concrete-syntax-tree", + "context", + "context-budget", + "context-compression", + "context-engineering", + "context-management", + "context-optimization", + "context-provider", + "context-retrieval", + "context-window", + "context7-alternative", + "continue", + "continue-code-graph", + "continue-context", + "continue-dev", + "continue-extension", + "continue-integration", + "continue-mcp", + "continue-mcp-server", + "continue-plugin", + "continue-tokens", + "continue-tools", + "control-flow-graph", + "copilot", + "copilot-chat", + "copilot-code-graph", + "copilot-context", + "copilot-extension", + "copilot-integration", + "copilot-mcp", + "copilot-mcp-server", + "copilot-plugin", + "copilot-tokens", + "copilot-tools", + "cost-optimization", + "cpp", + "cpp-ast", + "cpp-call-graph", + "cpp-code-analysis", + "cpp-code-graph", + "cpp-codebase", + "cpp-dependency-graph", + "cpp-static-analysis", + "cpp-tree-sitter", + "crystal", + "csharp", + "csharp-ast", + "csharp-call-graph", + "csharp-code-analysis", + "csharp-code-graph", + "csharp-codebase", + "csharp-dependency-graph", + "csharp-static-analysis", + "csharp-tree-sitter", + "css", + "cst", "cursor", - "windsurf", - "cline", - "ai-coding-agent", - "ai-agents", - "ai-pair-programmer", - "tree-sitter", - "static-analysis", + "cursor-ai", + "cursor-code-graph", + "cursor-context", + "cursor-extension", + "cursor-ide", + "cursor-integration", + "cursor-mcp", + "cursor-mcp-server", + "cursor-plugin", + "cursor-tokens", + "cursor-tools", + "cut-tokens", + "dart", + "data-flow", + "data-flow-analysis", + "data-visualization", + "datagrip", + "dead-code", + "dead-code-detection", + "debug", + "debugging", + "definitions", + "deno", + "dependencies", + "dependency-analysis", "dependency-graph", - "call-graph", - "codebase-visualization", - "code-map", + "dependency-visualization", + "deterministic", + "deterministic-code-graph", + "developer-experience", + "developer-onboarding", + "developer-productivity", "developer-tools", - "local-first" + "developer-workflow", + "devin", + "devtool", + "devtools", + "devx", + "diagram", + "directed-graph", + "django", + "documentation", + "dotnet", + "dotnet-core", + "dx", + "ecmascript", + "edges", + "editor", + "efficient-context", + "elixir", + "emacs", + "embedding-free", + "engineering-insights", + "engineering-productivity", + "enterprise-codebase", + "erlang", + "express", + "expressjs", + "fast", + "fastapi", + "fastify", + "fewer-tokens", + "find-references", + "flask", + "flutter", + "foundation-model", + "framework", + "frontend", + "fsharp", + "fullstack", + "function-calling", + "gemini-cli", + "gemini-cli-code-graph", + "gemini-cli-context", + "gemini-cli-extension", + "gemini-cli-integration", + "gemini-cli-mcp", + "gemini-cli-mcp-server", + "gemini-cli-plugin", + "gemini-cli-tokens", + "gemini-cli-tools", + "gemini-code-assist", + "gen-ai", + "genai", + "generative-ai", + "git", + "github", + "github-copilot", + "go", + "go-ast", + "go-call-graph", + "go-code-analysis", + "go-code-graph", + "go-codebase", + "go-dependency-graph", + "go-static-analysis", + "go-to-definition", + "go-tree-sitter", + "goland", + "golang", + "google-gemini", + "goose", + "graph", + "graph-algorithms", + "graph-analysis", + "graph-database", + "graph-native", + "graph-query", + "graph-rag", + "graph-ranking", + "graph-traversal", + "graph-viewer", + "graph-visualization", + "graphql", + "graphrag", + "graphs", + "groovy", + "grounding", + "haskell", + "hotspots", + "html", + "ide", + "ide-integration", + "impact-analysis", + "import-analysis", + "import-graph", + "in-context-learning", + "incremental-parsing", + "indexing", + "intellij", + "intellij-idea", + "interactive-visualization", + "ios", + "java", + "java-ast", + "java-call-graph", + "java-code-analysis", + "java-code-graph", + "java-codebase", + "java-dependency-graph", + "java-static-analysis", + "java-tree-sitter", + "javascript", + "javascript-ast", + "javascript-call-graph", + "javascript-code-analysis", + "javascript-code-graph", + "javascript-codebase", + "javascript-dependency-graph", + "javascript-static-analysis", + "javascript-tree-sitter", + "jetbrains", + "jetbrains-ai", + "jetbrains-assistant", + "jsx", + "julia", + "kilo-code", + "kilo-code-code-graph", + "kilo-code-context", + "kilo-code-extension", + "kilo-code-integration", + "kilo-code-mcp", + "kilo-code-mcp-server", + "kilo-code-plugin", + "kilo-code-tokens", + "kilo-code-tools", + "kiro", + "kiro-code-graph", + "kiro-context", + "kiro-extension", + "kiro-integration", + "kiro-mcp", + "kiro-mcp-server", + "kiro-plugin", + "kiro-tokens", + "kiro-tools", + "knowledge-graph", + "kotlin", + "kotlin-ast", + "kotlin-call-graph", + "kotlin-code-analysis", + "kotlin-code-graph", + "kotlin-codebase", + "kotlin-dependency-graph", + "kotlin-static-analysis", + "kotlin-tree-sitter", + "language-server", + "language-server-protocol", + "laravel", + "large-codebase", + "large-codebases", + "large-language-model", + "large-language-models", + "lean-context", + "legacy-code", + "legacy-modernization", + "lexer", + "library", + "lightweight", + "llm", + "llm-agent", + "llm-agents", + "llm-app", + "llm-application", + "llm-cost", + "llm-cost-reduction", + "llm-free", + "llm-orchestration", + "llm-tooling", + "llm-tools", + "llms", + "local", + "local-first", + "local-mcp", + "lovable", + "lsp", + "lua", + "maintainability", + "mcp", + "mcp-agent", + "mcp-agents", + "mcp-ai", + "mcp-app", + "mcp-cli", + "mcp-client", + "mcp-code", + "mcp-code-graph", + "mcp-codebase", + "mcp-connector", + "mcp-context", + "mcp-developer-tools", + "mcp-ecosystem", + "mcp-extension", + "mcp-for-aider", + "mcp-for-augment", + "mcp-for-claude", + "mcp-for-claude-code", + "mcp-for-cline", + "mcp-for-codeium", + "mcp-for-codex", + "mcp-for-continue", + "mcp-for-copilot", + "mcp-for-cursor", + "mcp-for-gemini-cli", + "mcp-for-kilo-code", + "mcp-for-kiro", + "mcp-for-roo-code", + "mcp-for-sourcegraph", + "mcp-for-tabnine", + "mcp-for-trae", + "mcp-for-warp", + "mcp-for-windsurf", + "mcp-for-zed", + "mcp-host", + "mcp-integration", + "mcp-plugin", + "mcp-prompt", + "mcp-registry", + "mcp-resource", + "mcp-server", + "mcp-static-analysis", + "mcp-stdio", + "mcp-tool", + "mcp-toolkit", + "mcp-tools", + "mcp-transport", + "minimal-context", + "model-context-protocol", + "modelcontextprotocol", + "modernization", + "module-graph", + "monorepo", + "monorepos", + "neighborhood", + "neovim", + "nestjs", + "network-free", + "next-js", + "nextjs", + "nim", + "no-cloud", + "no-embeddings", + "no-llm", + "no-network", + "node", + "node-js", + "nodejs", + "nodes", + "npm", + "npm-package", + "nvim", + "objective-c", + "ocaml", + "offline", + "offline-first", + "on-device", + "on-prem", + "on-premise", + "onboarding", + "open-source", + "openai-codex", + "opendevin", + "openhands", + "openvisio", + "oss", + "page-rank", + "pagerank", + "pair-programming", + "parser", + "parsing", + "path-line-anchors", + "pear-ai", + "pearai", + "perl", + "php", + "php-ast", + "php-call-graph", + "php-code-analysis", + "php-code-graph", + "php-codebase", + "php-dependency-graph", + "php-static-analysis", + "php-tree-sitter", + "phpstorm", + "polyglot", + "polyglot-codebase", + "powershell", + "privacy", + "privacy-first", + "private", + "productivity", + "program-analysis", + "programming", + "programming-tools", + "prompt", + "prompt-compression", + "prompt-engineering", + "pycharm", + "python", + "python-ast", + "python-call-graph", + "python-code-analysis", + "python-code-graph", + "python-codebase", + "python-dependency-graph", + "python-static-analysis", + "python-tree-sitter", + "qwen-coder", + "r-lang", + "rag", + "rails", + "ranked", + "ranked-context", + "ranking", + "reachability", + "react", + "react-native", + "react-three-fiber", + "reactjs", + "read-only", + "reduce-tokens", + "refactor", + "refactoring", + "reference-graph", + "references", + "remix", + "remote-mcp", + "replit", + "replit-agent", + "replit-ai", + "repo-analysis", + "repo-indexing", + "repo-map", + "repository-analysis", + "repository-map", + "reproducible", + "retrieval", + "retrieval-augmented-generation", + "rider", + "roo-cline", + "roo-code", + "roo-code-code-graph", + "roo-code-context", + "roo-code-extension", + "roo-code-integration", + "roo-code-mcp", + "roo-code-mcp-server", + "roo-code-plugin", + "roo-code-tokens", + "roo-code-tools", + "ruby", + "ruby-ast", + "ruby-call-graph", + "ruby-code-analysis", + "ruby-code-graph", + "ruby-codebase", + "ruby-dependency-graph", + "ruby-on-rails", + "ruby-static-analysis", + "ruby-tree-sitter", + "rubymine", + "rust", + "rust-ast", + "rust-call-graph", + "rust-code-analysis", + "rust-code-graph", + "rust-codebase", + "rust-dependency-graph", + "rust-static-analysis", + "rust-tree-sitter", + "save-tokens", + "scala", + "sdk", + "secure", + "self-hosted", + "selfhosted", + "semantic-analysis", + "semantic-code", + "semantic-search", + "shell", + "single-binary", + "skeleton", + "software-architecture", + "software-development", + "software-engineering", + "software-visualization", + "solidity", + "solidjs", + "source-code-analysis", + "source-graph", + "sourcegraph", + "sourcegraph-code-graph", + "sourcegraph-cody", + "sourcegraph-context", + "sourcegraph-extension", + "sourcegraph-integration", + "sourcegraph-mcp", + "sourcegraph-mcp-server", + "sourcegraph-plugin", + "sourcegraph-tokens", + "sourcegraph-tools", + "spring", + "spring-boot", + "sql", + "static-analysis", + "static-code-analysis", + "structure", + "subgraph", + "sublime-text", + "svelte", + "sveltekit", + "swift", + "swift-ast", + "swift-call-graph", + "swift-code-analysis", + "swift-code-graph", + "swift-codebase", + "swift-dependency-graph", + "swift-static-analysis", + "swift-tree-sitter", + "symbol-graph", + "symbol-index", + "symbol-search", + "symbol-table", + "symbols", + "syntax-tree", + "system-design", + "tabnine", + "tabnine-code-graph", + "tabnine-context", + "tabnine-extension", + "tabnine-integration", + "tabnine-mcp", + "tabnine-mcp-server", + "tabnine-plugin", + "tabnine-tokens", + "tabnine-tools", + "tech-debt", + "technical-debt", + "terminal", + "terminal-tool", + "text-editor", + "three-js", + "threejs", + "token", + "token-aware", + "token-budget", + "token-budgeting", + "token-cost", + "token-efficiency", + "token-efficient", + "token-optimization", + "token-optimized", + "token-reduction", + "token-saving", + "token-savings", + "token-usage", + "tokens", + "tool-calling", + "tool-use", + "toolkit", + "trae", + "trae-ai", + "trae-code-graph", + "trae-context", + "trae-extension", + "trae-integration", + "trae-mcp", + "trae-mcp-server", + "trae-plugin", + "trae-tokens", + "trae-tools", + "tree-sitter", + "tsx", + "typescript", + "typescript-ast", + "typescript-call-graph", + "typescript-code-analysis", + "typescript-code-graph", + "typescript-codebase", + "typescript-dependency-graph", + "typescript-static-analysis", + "typescript-tree-sitter", + "unused-code", + "utility", + "v0", + "vercel-v0", + "vim", + "visual-studio-code", + "visualization", + "void-editor", + "vs-code", + "vscode", + "vscode-extension", + "vue", + "vue-lang", + "vuejs", + "warp", + "warp-code-graph", + "warp-context", + "warp-extension", + "warp-integration", + "warp-mcp", + "warp-mcp-server", + "warp-plugin", + "warp-terminal", + "warp-tokens", + "warp-tools", + "wayfinding", + "web-development", + "webgl", + "webstorm", + "windsurf", + "windsurf-code-graph", + "windsurf-context", + "windsurf-extension", + "windsurf-ide", + "windsurf-integration", + "windsurf-mcp", + "windsurf-mcp-server", + "windsurf-plugin", + "windsurf-tokens", + "windsurf-tools", + "zed", + "zed-ai", + "zed-code-graph", + "zed-context", + "zed-editor", + "zed-extension", + "zed-integration", + "zed-mcp", + "zed-mcp-server", + "zed-plugin", + "zed-tokens", + "zed-tools", + "zero-config", + "zig" ], "engines": { "node": ">=18.17" diff --git a/package-lock.json b/package-lock.json index 4c89774..113b7be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ }, "core": { "name": "@openvisio/core", - "version": "0.2.2", + "version": "0.2.3", "license": "MIT", "dependencies": { "lmdb": "^3.2.6", @@ -33,7 +33,7 @@ }, "mcp": { "name": "openvisio", - "version": "0.2.3", + "version": "0.2.4", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -5188,7 +5188,7 @@ }, "viewer": { "name": "openvisio-viewer", - "version": "0.2.2", + "version": "0.2.3", "license": "MIT", "devDependencies": { "@netlify/blobs": "^8.1.0", diff --git a/package.json b/package.json index 406ac7f..b864d8b 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "description": "OpenVisio monorepo. The deterministic code-graph core, the standalone MCP CLI published to npm as `openvisio`, and a local-first viewer (Atlas + City). See any codebase as a graph; give coding agents a token-cheap, graph-native query surface.", "license": "MIT", - "homepage": "https://github.com/syntaxpriest/openvisio-oss#readme", + "homepage": "https://openvisio.io", "repository": { "type": "git", "url": "git+https://github.com/syntaxpriest/openvisio-oss.git" diff --git a/scripts/gen-keywords.mjs b/scripts/gen-keywords.mjs new file mode 100644 index 0000000..17620b0 --- /dev/null +++ b/scripts/gen-keywords.mjs @@ -0,0 +1,253 @@ +// Generates a large, curated, de-duplicated keyword set for the OpenVisio npm +// packages. All keywords are domain-relevant (MCP / code-graph / AI coding +// agents / static analysis), following the high-volume-keyword growth strategy. +// Usage: node scripts/gen-keywords.mjs -> prints count + list +// node scripts/gen-keywords.mjs --write -> writes into mcp/core/viewer package.json + +import { readFileSync, writeFileSync } from "node:fs"; +import { fileURLToPath } from "node:url"; +import { dirname, join } from "node:path"; + +const root = join(dirname(fileURLToPath(import.meta.url)), ".."); + +// npm constraints we respect: lowercase, <=214 chars per keyword (we stay short), +// hyphenated, no spaces. +const norm = (s) => + s + .toLowerCase() + .trim() + .replace(/\s+/g, "-") + .replace(/[^a-z0-9.+-]/g, ""); + +const out = new Set(); +const add = (...xs) => xs.flat().forEach((x) => x && out.add(norm(x))); + +// 1) Core identity --------------------------------------------------------- +add( + "openvisio", "code-graph", "code-knowledge-graph", "knowledge-graph", + "codebase-graph", "code-map", "codebase-map", "repo-map", "repository-map", + "code-atlas", "code-city", "graph-native", "deterministic-code-graph", +); + +// 2) MCP ecosystem --------------------------------------------------------- +const mcp = [ + "mcp", "mcp-server", "mcp-client", "mcp-cli", "mcp-tool", "mcp-tools", + "mcp-toolkit", "mcp-integration", "mcp-host", "mcp-resource", "mcp-prompt", + "mcp-stdio", "mcp-transport", "model-context-protocol", "modelcontextprotocol", + "anthropic-mcp", "mcp-ai", "mcp-agent", "mcp-agents", "mcp-context", + "mcp-code", "mcp-codebase", "mcp-code-graph", "mcp-static-analysis", + "mcp-developer-tools", "mcp-ecosystem", "mcp-plugin", "mcp-extension", + "mcp-connector", "remote-mcp", "local-mcp", "mcp-registry", "mcp-app", +]; +add(mcp); + +// 3) AI coding agents / assistants (by name) ------------------------------- +const agents = [ + "claude", "claude-ai", "claude-code", "claude-desktop", "anthropic", + "anthropic-claude", "cursor", "cursor-ai", "cursor-ide", "codex", + "openai-codex", "codex-cli", "windsurf", "windsurf-ide", "codeium", + "cline", "continue", "continue-dev", "aider", "github-copilot", "copilot", + "copilot-chat", "roo-code", "roo-cline", "kilo-code", "zed", "zed-editor", + "zed-ai", "tabnine", "sourcegraph", "sourcegraph-cody", "cody", "amp-code", + "augment", "augment-code", "devin", "cognition-devin", "replit", "replit-ai", + "replit-agent", "bolt", "bolt-new", "lovable", "v0", "vercel-v0", "gemini-cli", + "google-gemini", "gemini-code-assist", "qwen-coder", "kiro", "trae", "trae-ai", + "pear-ai", "pearai", "void-editor", "jetbrains-ai", "jetbrains-assistant", + "warp", "warp-terminal", "openhands", "opendevin", "goose", "block-goose", +]; +add(agents); + +// 4) AI / LLM / agentic terms --------------------------------------------- +const ai = [ + "ai", "artificial-intelligence", "llm", "llms", "large-language-model", + "large-language-models", "generative-ai", "genai", "gen-ai", "foundation-model", + "ai-agent", "ai-agents", "agent", "agents", "agentic", "agentic-ai", + "agentic-coding", "agentic-workflow", "autonomous-agent", "autonomous-coding", + "ai-coding", "ai-coding-agent", "ai-coding-assistant", "ai-coding-tools", + "ai-developer-tools", "ai-dev-tools", "ai-pair-programming", "ai-pair-programmer", + "pair-programming", "coding-agent", "coding-assistant", "code-assistant", + "code-completion", "ai-code-completion", "ai-assistant", "ai-tooling", + "ai-tools", "ai-powered", "ai-native", "llm-tools", "llm-agent", "llm-agents", + "llm-application", "llm-app", "llm-tooling", "llm-orchestration", "ai-orchestration", + "rag", "retrieval-augmented-generation", "code-rag", "retrieval", "grounding", + "ai-context", "context", "context-engineering", "context-window", "context-management", + "context-provider", "context-retrieval", "prompt", "prompt-engineering", + "in-context-learning", "tool-use", "tool-calling", "function-calling", + "ai-memory", "agent-memory", "code-context", "codebase-context", +]; +add(ai); + +// 5) Token / cost economics ----------------------------------------------- +const tokens = [ + "tokens", "token", "token-usage", "token-cost", "token-savings", "token-saving", + "save-tokens", "reduce-tokens", "cut-tokens", "fewer-tokens", "token-reduction", + "token-budget", "token-budgeting", "token-efficient", "token-efficiency", + "token-optimization", "token-optimized", "token-aware", "context-budget", + "context-compression", "context-optimization", "prompt-compression", + "llm-cost", "llm-cost-reduction", "ai-cost", "ai-cost-reduction", "cost-optimization", + "cheaper-ai", "efficient-context", "minimal-context", "lean-context", +]; +add(tokens); + +// 6) Static analysis / code intelligence ----------------------------------- +const analysis = [ + "static-analysis", "static-code-analysis", "code-analysis", "codebase-analysis", + "source-code-analysis", "program-analysis", "code-intelligence", "code-intel", + "semantic-code", "semantic-analysis", "code-navigation", "go-to-definition", + "code-search", "codebase-search", "semantic-search", "code-understanding", + "codebase-understanding", "code-comprehension", "code-exploration", + "codebase-exploration", "code-discovery", "symbol-search", "symbol-index", + "symbols", "symbol-table", "definitions", "references", "find-references", + "ast", "abstract-syntax-tree", "parser", "parsing", "tree-sitter", + "incremental-parsing", "lexer", "syntax-tree", "cst", "concrete-syntax-tree", + "lsp", "language-server", "language-server-protocol", "indexing", "code-indexing", + "code-index", "repo-indexing", "codebase-indexing", +]; +add(analysis); + +// 7) Graph terms ----------------------------------------------------------- +const graph = [ + "graph", "graphs", "dependency-graph", "dependency-analysis", "dependencies", + "import-graph", "import-analysis", "module-graph", "call-graph", "callgraph", + "control-flow-graph", "data-flow", "data-flow-analysis", "symbol-graph", + "reference-graph", "graph-analysis", "graph-algorithms", "graph-database", + "graph-query", "pagerank", "page-rank", "centrality", "ranking", "ranked", + "graph-ranking", "graph-traversal", "directed-graph", "edges", "nodes", + "neighborhood", "subgraph", "impact-analysis", "blast-radius", "reachability", +]; +add(graph); + +// 8) Visualization --------------------------------------------------------- +const viz = [ + "visualization", "code-visualization", "codebase-visualization", + "code-visualisation", "codebase-visualisation", "graph-visualization", + "dependency-visualization", "architecture-visualization", "software-visualization", + "code-viewer", "graph-viewer", "code-explorer", "interactive-visualization", + "3d-visualization", "three-js", "threejs", "webgl", "react-three-fiber", + "data-visualization", "diagram", "code-diagram", "architecture-diagram", +]; +add(viz); + +// 9) Developer tooling ----------------------------------------------------- +const devtools = [ + "developer-tools", "devtools", "developer-experience", "devx", "dx", + "cli", "cli-tool", "command-line", "command-line-tool", "command-line-interface", + "terminal", "terminal-tool", "productivity", "developer-productivity", + "engineering-productivity", "software-engineering", "software-development", + "programming", "programming-tools", "coding", "coding-tools", "build-tools", + "automation", "developer-workflow", "devtool", "sdk", "api", "library", + "toolkit", "framework", "utility", "open-source", "oss", +]; +add(devtools); + +// 10) Use cases ------------------------------------------------------------ +const usecases = [ + "refactoring", "refactor", "code-refactoring", "code-review", "code-reviews", + "ai-code-review", "debugging", "debug", "bug-finding", "onboarding", + "developer-onboarding", "codebase-onboarding", "legacy-code", "legacy-modernization", + "code-migration", "modernization", "monorepo", "monorepos", "large-codebase", + "large-codebases", "enterprise-codebase", "polyglot", "polyglot-codebase", + "dead-code", "dead-code-detection", "unused-code", "code-quality", + "technical-debt", "tech-debt", "maintainability", "code-metrics", "complexity", + "code-complexity", "hotspots", "churn", "architecture", "software-architecture", + "system-design", "architecture-analysis", "documentation", "code-documentation", + "auto-documentation", "codebase-documentation", "code-summary", "code-summarization", +]; +add(usecases); + +// 11) Privacy / local-first ------------------------------------------------ +const privacy = [ + "local-first", "local", "offline", "offline-first", "privacy", "privacy-first", + "private", "secure", "no-cloud", "cloudless", "self-hosted", "selfhosted", + "on-device", "on-premise", "on-prem", "read-only", "no-network", "network-free", + "no-embeddings", "embedding-free", "no-llm", "llm-free", "deterministic", + "reproducible", "fast", "lightweight", "zero-config", "single-binary", +]; +add(privacy); + +// 12) Languages (search reach) -------------------------------------------- +const langs = [ + "javascript", "typescript", "tsx", "jsx", "ecmascript", "python", "java", + "go", "golang", "rust", "c", "cpp", "c-plus-plus", "c-sharp", "csharp", + "dotnet", "ruby", "php", "swift", "kotlin", "scala", "dart", "elixir", + "erlang", "haskell", "ocaml", "fsharp", "clojure", "lua", "perl", "r-lang", + "julia", "objective-c", "groovy", "solidity", "zig", "nim", "crystal", + "bash", "shell", "powershell", "sql", "graphql", "html", "css", "vue-lang", +]; +add(langs); + +// 13) Stacks / runtimes (people search by their stack) --------------------- +const stacks = [ + "node", "nodejs", "node-js", "deno", "bun", "npm", "npm-package", + "react", "reactjs", "nextjs", "next-js", "vue", "vuejs", "angular", "svelte", + "sveltekit", "solidjs", "express", "expressjs", "nestjs", "fastify", "remix", + "astro", "django", "flask", "fastapi", "rails", "ruby-on-rails", "laravel", + "spring", "spring-boot", "dotnet-core", "android", "ios", "flutter", + "react-native", "web-development", "backend", "frontend", "fullstack", +]; +add(stacks); + +// 14) Editors / IDEs ------------------------------------------------------- +const editors = [ + "vscode", "vs-code", "visual-studio-code", "vscode-extension", "neovim", + "nvim", "vim", "emacs", "sublime-text", "jetbrains", "intellij", "intellij-idea", + "pycharm", "webstorm", "phpstorm", "goland", "rider", "clion", "rubymine", + "datagrip", "ide", "ide-integration", "editor", "code-editor", "text-editor", +]; +add(editors); + +// 15) Combinatorial: agent-targeted MCP terms (high search value) ---------- +const targetAgents = [ + "claude-code", "claude", "cursor", "codex", "windsurf", "cline", "copilot", + "codeium", "aider", "zed", "continue", "roo-code", "kilo-code", "gemini-cli", + "trae", "kiro", "warp", "augment", "tabnine", "sourcegraph", +]; +for (const a of targetAgents) { + add(`${a}-mcp`, `mcp-for-${a}`, `${a}-mcp-server`, `${a}-tools`, + `${a}-context`, `${a}-tokens`, `${a}-extension`, `${a}-plugin`, + `${a}-integration`, `${a}-code-graph`); +} + +// 16) Combinatorial: language-targeted analysis terms ---------------------- +const targetLangs = [ + "javascript", "typescript", "python", "go", "rust", "java", "csharp", + "ruby", "php", "cpp", "kotlin", "swift", +]; +for (const l of targetLangs) { + add(`${l}-code-graph`, `${l}-static-analysis`, `${l}-dependency-graph`, + `${l}-call-graph`, `${l}-ast`, `${l}-code-analysis`, + `${l}-codebase`, `${l}-tree-sitter`); +} + +// 17) Misc adjacent -------------------------------------------------------- +add( + "code-search-engine", "repository-analysis", "repo-analysis", "git", "github", + "source-graph", "code-browser", "structure", "code-structure", "architecture-map", + "wayfinding", "codebase-navigation", "codebase-insights", "engineering-insights", + "ai-engineering", "context7-alternative", "code-context-protocol", + "anchors", "path-line-anchors", "skeleton", "code-skeleton", "ranked-context", + "budgeted-context", "graph-rag", "graphrag", "code-graph-rag", +); + +const keywords = [...out].sort(); + +if (process.argv.includes("--write")) { + const targets = { + "mcp/package.json": keywords, // full set on the primary published package + "core/package.json": keywords.filter((k) => + !editors.includes(k) && !stacks.includes(k)), // engine: drop IDE/stack noise + "viewer/package.json": [ + ...viz, ...graph.slice(0, 12), "openvisio", "code-graph", + "codebase-visualization", "three-js", "webgl", "react", "viewer", + ].map(norm), + }; + for (const [rel, kws] of Object.entries(targets)) { + const p = join(root, rel); + const pkg = JSON.parse(readFileSync(p, "utf8")); + pkg.keywords = [...new Set(kws)].sort(); + writeFileSync(p, JSON.stringify(pkg, null, 2) + "\n"); + console.log(`wrote ${kws.length} keywords -> ${rel}`); + } +} + +console.log(`total unique keywords (primary set): ${keywords.length}`); diff --git a/scripts/github-seo.sh b/scripts/github-seo.sh new file mode 100755 index 0000000..d8ab831 --- /dev/null +++ b/scripts/github-seo.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +# Applies GitHub discoverability/SEO settings for openvisio-oss: +# 1. Repository topics (max 20) — drive GitHub search ranking -> traffic/installs +# 2. Repository website URL -> https://openvisio.io +# 3. A versioned release tag so GitHub tracks (tarball) download counts +# +# Requires: gh auth login (with repo admin rights on syntaxpriest/openvisio-oss) +set -euo pipefail + +REPO="syntaxpriest/openvisio-oss" +SITE="https://openvisio.io" +# Match the published `openvisio` (mcp) package version. +VERSION="v$(node -p "require('./mcp/package.json').version")" + +echo "==> Setting repository website -> ${SITE}" +gh repo edit "$REPO" --homepage "$SITE" + +echo "==> Adding repository topics (20 highest-value)" +gh repo edit "$REPO" --add-topic \ +mcp,mcp-server,model-context-protocol,code-graph,code-knowledge-graph,\ +ai-coding-agent,ai-agents,claude-code,cursor,codex,windsurf,\ +static-analysis,dependency-graph,call-graph,tree-sitter,\ +developer-tools,token-optimization,context-engineering,\ +codebase-visualization,local-first + +echo "==> Ensuring release tag ${VERSION} exists (for download tracking)" +if gh release view "$VERSION" --repo "$REPO" >/dev/null 2>&1; then + echo " release ${VERSION} already exists — skipping" +else + gh release create "$VERSION" --repo "$REPO" \ + --title "OpenVisio ${VERSION}" \ + --notes "OpenVisio ${VERSION} — see https://www.npmjs.com/package/openvisio and ${SITE}. Auto-generated source archives below provide GitHub download metrics." \ + --target main +fi + +echo "==> Done. Verify:" +gh repo view "$REPO" --json homepageUrl,repositoryTopics diff --git a/viewer/package.json b/viewer/package.json index 5421b85..ef8710d 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -1,6 +1,6 @@ { "name": "openvisio-viewer", - "version": "0.2.2", + "version": "0.2.3", "description": "Self-contained Atlas + City graph viewer for OpenVisio — the same React/Three.js views from the app, served locally by `openvisio view`.", "license": "MIT", "type": "module", @@ -36,5 +36,46 @@ "@openvisio/core": "*", "path-browserify": "^1.0.1", "@netlify/blobs": "^8.1.0" - } + }, + "keywords": [ + "3d-visualization", + "architecture-diagram", + "architecture-visualization", + "call-graph", + "callgraph", + "code-diagram", + "code-explorer", + "code-graph", + "code-viewer", + "code-visualisation", + "code-visualization", + "codebase-visualisation", + "codebase-visualization", + "control-flow-graph", + "data-flow", + "data-visualization", + "dependencies", + "dependency-analysis", + "dependency-graph", + "dependency-visualization", + "diagram", + "graph", + "graph-viewer", + "graph-visualization", + "graphs", + "import-analysis", + "import-graph", + "interactive-visualization", + "module-graph", + "openvisio", + "react", + "react-three-fiber", + "software-visualization", + "three-js", + "threejs", + "viewer", + "visualization", + "webgl" + ], + "homepage": "https://openvisio.io" }