Feat/monorepo#1
Merged
Merged
Conversation
Set up the workspace that hosts the full Solarch stack as apps/web + apps/server: pnpm workspaces, a Turborepo task pipeline, a shared tsconfig base, and unified .gitignore / .editorconfig / .nvmrc. Node >=20.19, pnpm 10, a single lockfile.
Import the canvas web app (Vite + React 19) as apps/web and the graph backend (NestJS + Neo4j) as apps/server. Clean import — no prior private history. - web: drop the Linux-only @rolldown native binding so installs are cross-platform - server: resolve the @solarch/cli fill engine from the published npm package (require.resolve), with a sibling solarch-tools checkout as a dev fallback - server: make the listen host configurable (HOST env) for containerized runs
`docker compose up --build` brings up Neo4j, the server, and a Caddy front that serves the SPA and reverse-proxies /api (single origin so the Clerk session is valid for both). The server image pre-fetches the local embedding model and bootstraps the graph DB (schema, vector index, pattern seed) idempotently on boot.
Add CI (build + server unit tests as the gate; lint informational), issue/PR
templates, SECURITY and CODE_OF_CONDUCT, and docs/{self-hosting,architecture}.
Flip the README Self-Hosting section from "coming soon" to working instructions
and update CONTRIBUTING with the monorepo dev flow.
…q, OpenRouter, Ollama Rewrite the LLM factory as a provider registry. Alongside the existing DeepSeek and Bedrock, add first-class OpenAI, Anthropic, Google Gemini, Mistral, Groq, Ollama (local/offline), an OpenRouter gateway, and a generic OpenAI-compatible escape hatch (xAI, Together, vLLM, ...). The frontend is provider-agnostic, so this is server-only: env selects the provider (LLM_GENERATION_PROVIDER / LLM_CHAT_PROVIDER) and ai.service drives any of them via the shared bindTools / tool_calls interface. ai.service now passes a logical tier (agent/instruct) instead of a DeepSeek model name, so each provider resolves its own model. DeepSeek's json_object / thinking quirks stay scoped to its builder. env-check reports the active provider's missing key. Also adds the BILLING_ENABLED env (used by the next commit).
When BILLING_ENABLED=false, all metering/gating is bypassed (consume/refund no-op; the canGenerate/canCodegen/projectCap asserts pass; getState reports the top plan). The self-host docker-compose sets it false by default, so running your own instance with your own API key is unlimited and needs no Polar config. The SaaS keeps it true (the schema default).
An interactive setup wizard (Linux/macOS bash + Windows PowerShell, no Node needed — only Docker) that asks for an AI provider + API key, Clerk keys, and a database password, generates the guest-token secret, writes a fresh .env (mode 600, billing disabled), and optionally starts the stack. Secrets are read hidden and never echoed or logged.
Add docs/ai-providers.md (how AI is used, the provider table with tool-calling support, how to switch, the self-host unlimited switch, local Ollama). Expand .env.example with every provider key + BILLING_ENABLED, and point the README / self-hosting guide at the ./install.sh wizard.
… README Remove SaaS auth/billing (Clerk, Polar, guest), wire LocalAuthGuard and API keys, require explicit LLM provider config, and English-only runtime surface. Add full docs/ guide set, CI grep gates, deploy cleanup, and README that leads with app.solarch.dev while documenting docker self-host. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.