diff --git a/.codex/config.toml b/.codex/config.toml deleted file mode 100644 index 5786792..0000000 --- a/.codex/config.toml +++ /dev/null @@ -1,3 +0,0 @@ -[mcp_servers.svelte] -command = "npx" -args = ["-y", "@sveltejs/mcp"] diff --git a/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md similarity index 100% rename from CODE_OF_CONDUCT.md rename to .github/CODE_OF_CONDUCT.md diff --git a/CONTRIBUTING.md b/.github/CONTRIBUTING.md similarity index 97% rename from CONTRIBUTING.md rename to .github/CONTRIBUTING.md index 85f1a55..595d51c 100644 --- a/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -19,12 +19,12 @@ Hyperkernel requires Node.js 24 or later and npm 11 or later. ```sh npm ci -cp .env.example .env +cp apps/playground/.env.example apps/playground/.env npm run dev ``` -The default SQLite database is `./local.db`. Local database files and `.env` -files are ignored by Git. +The default SQLite database is `apps/playground/local.db`. Local database files +and `.env` files are ignored by Git. ## Verification diff --git a/SECURITY.md b/.github/SECURITY.md similarity index 100% rename from SECURITY.md rename to .github/SECURITY.md diff --git a/.gitignore b/.gitignore index ec4fd81..2752eb9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,22 +1,2 @@ -# macOS +node_modules/ .DS_Store - -# Env -.env -.env.* -!.env.example -!.env.test - -# SQLite -*.db - -# Node.js -/node_modules - -# SvelteKit -/.svelte-kit -/build - -# Playwright -/.playwright-mcp -/test-results diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index 2312dc5..0000000 --- a/.husky/pre-commit +++ /dev/null @@ -1 +0,0 @@ -npx lint-staged diff --git a/.mcp.json b/.mcp.json deleted file mode 100644 index a8422b5..0000000 --- a/.mcp.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "mcpServers": { - "svelte": { - "command": "npx", - "args": ["-y", "@sveltejs/mcp"] - } - } -} diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 5948646..0000000 --- a/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -/drizzle diff --git a/.vscode/mcp.json b/.vscode/mcp.json deleted file mode 100644 index e6345a7..0000000 --- a/.vscode/mcp.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "servers": { - "svelte": { - "url": "https://mcp.svelte.dev/mcp" - } - } -} diff --git a/AGENTS.md b/AGENTS.md index 1e30a35..916ffd7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -186,25 +186,39 @@ Hyperkernel currently requires Node.js 24 or later and npm 11 or later. ## Repository boundaries -- `src/routes/` contains SvelteKit routes and transport/UI entry points. -- `src/lib/server/db/index.ts` owns the shared `DatabaseSync` connection. -- `src/lib/server/` is server-only and must never be imported by client code. -- `src/lib/components/` contains reusable interface components. +- `apps/playground/` contains the private example application that developers + use to learn and experiment with Hyperkernel. +- `apps/playground/src/routes/` contains SvelteKit routes and transport/UI entry + points. +- `apps/playground/src/lib/server/db/index.ts` owns the shared `DatabaseSync` + connection for the playground. +- `apps/playground/src/lib/server/` is server-only and must never be imported by + client code. +- `packages/ui/src/` contains reusable interface components exported through + `@hyperkernel/ui`. - `docs/adr/` contains architecture decision records for repository-wide architecture and governance definitions. - `docs/design/` contains numbered design records for significant contracts and decisions. - `docs/spikes/` contains isolated architecture experiments. Spikes are not production modules, supported APIs, or proof that a contract is implemented. -Keep database connection creation centralized in `src/lib/server/db/index.ts`. Use the built-in `node:sqlite` module. Do not introduce an ORM, another SQLite client, a second ad hoc connection, or direct database access outside the server boundary unless an intentional architecture change is documented and approved. +Keep database connection creation centralized in +`apps/playground/src/lib/server/db/index.ts`. Use the built-in `node:sqlite` +module. Do not introduce an ORM, another SQLite client, a second ad hoc +connection, or direct database access outside the server boundary unless an +intentional architecture change is documented and approved. Framework transports must be adapters around the command/query contracts. Do not make the kernel depend on SvelteKit request objects, remote-function internals, or UI component state. ## Svelte and interface guidance - Use Svelte 5 runes for application code. -- Experimental SvelteKit remote-function support is enabled in `vite.config.ts`; it may be used for RPC-style flows, but authoritative command, event, and projection contracts must remain framework-independent. +- Experimental SvelteKit remote-function support is enabled in + `apps/playground/vite.config.ts`; it may be used for RPC-style flows, but + authoritative command, event, and projection contracts must remain + framework-independent. - Use native CSS in scoped Svelte `