diff --git a/llms.txt b/llms.txt index 40873f5..151859b 100644 --- a/llms.txt +++ b/llms.txt @@ -75,46 +75,24 @@ Why this layout: "dev": "NODE_ENV=development tsx watch server/index.ts", "build": "npm run build:server && npm run build:client", "build:server": "tsdown --out-dir build server/index.ts", - "build:client": "cd client && npm run build", + "build:client": "tsc -b && vite build --config client/vite.config.ts", "start": "node build/index.mjs" }, "dependencies": { - "@databricks/appkit": "^0.0.2" + "@databricks/appkit": "^0.1.2" + "@databricks/appkit-ui": "^0.1.2", + "react": "^19.2.3", + "react-dom": "^19.2.3" }, "devDependencies": { "@types/node": "^20.0.0", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "@vitejs/plugin-react": "^5.1.1", "tsdown": "^0.15.7", "tsx": "^4.19.0", - "typescript": "~5.6.0" - } -} -``` - -### `client/package.json` - -```json -{ - "name": "client", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview" - }, - "dependencies": { - "@databricks/appkit-ui": "^0.0.2", - "react": "^18.0.0", - "react-dom": "^18.0.0", - "recharts": "^3.0.0" - }, - "devDependencies": { - "@types/react": "^18.0.0", - "@types/react-dom": "^18.0.0", - "@vitejs/plugin-react": "^5.0.0", "typescript": "~5.6.0", - "vite": "^6.0.0" + "vite": "^7.2.4" } } ``` @@ -208,7 +186,6 @@ await createApp({ ```bash # Install dependencies npm install -cd client && npm install && cd .. # Development (starts backend + Vite dev server) npm run dev @@ -225,19 +202,14 @@ If you already have a React/Vite app and want to add AppKit: ### 1. Install dependencies ```bash -npm install @databricks/appkit -npm install -D tsx tsdown +npm install @databricks/appkit @databricks/appkit-ui react react-dom +npm install -D tsx tsdown vite @vitejs/plugin-react typescript # If you don't already have a client/ folder, create one and move your Vite app into it: # - move index.html -> client/index.html # - move vite.config.ts -> client/vite.config.ts # - move src/ -> client/src/ # -# Then install client deps: -cd client -npm install @databricks/appkit-ui react react-dom recharts -npm install -D vite @vitejs/plugin-react typescript -cd .. ``` ### 2. Create `server/index.ts` (new file) @@ -258,7 +230,7 @@ await createApp({ "dev": "NODE_ENV=development tsx watch server/index.ts", "build": "npm run build:server && npm run build:client", "build:server": "tsdown --out-dir build server/index.ts", - "build:client": "cd client && npm run build", + "build:client": "tsc -b && vite build --config client/vite.config.ts", "start": "node build/index.mjs" } } @@ -276,7 +248,7 @@ await createApp({ import { createApp, server, analytics } from "@databricks/appkit"; await createApp({ - plugins: [server(), analytics({})], + plugins: [server(), analytics()], }); ``` @@ -312,13 +284,17 @@ These are typically **provided by Databricks Apps runtime** (exact set can vary For local development, you need to authenticate with Databricks. Options: -**Option 1: Databricks CLI profile (recommended)** +**Option 1: Databricks CLI Auth (recommended)** ```bash # Configure once -databricks configure --profile my-profile +databricks auth login --host [host] --profile [profile-name] + +# If you used `DEFAULT` as the profile name then you can just run -# Then run with profile +`npm run dev` + +# To run with a specific profile DATABRICKS_CONFIG_PROFILE=my-profile npm run dev # If your Databricks SDK expects a different variable name, try: # DATABRICKS_PROFILE=my-profile npm run dev @@ -462,7 +438,7 @@ HTTP endpoints exposed (mounted under `/api/analytics`): Formats: - `format: "JSON"` (default) returns JSON rows -- `format: "ARROW"` returns an Arrow “external links” payload over SSE, then the client fetches binary Arrow from `/api/analytics/arrow-result/:jobId` +- `format: "ARROW"` returns an Arrow “statement_id” payload over SSE, then the client fetches binary Arrow from `/api/analytics/arrow-result/:jobId` ### Request context (`getRequestContext()`) @@ -980,6 +956,108 @@ function LoadingCard() { } ``` +## Stylesheet + +In the main css file import the following + +```css +@import "@databricks/appkit-ui/styles.css"; +``` + +That will provide a default theme for the app using css variables. + +### Customizing theme (light/dark mode) + +- Full list of variables to customize the theme. + +```css +@import "@databricks/appkit-ui/styles.css"; + +:root { + --radius: 0.625rem; + --background: oklch(1 0 0); + --foreground: oklch(0.141 0.005 285.823); + --card: oklch(1 0 0); + --card-foreground: oklch(0.141 0.005 285.823); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.141 0.005 285.823); + --primary: oklch(0.21 0.006 285.885); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.967 0.001 286.375); + --secondary-foreground: oklch(0.21 0.006 285.885); + --muted: oklch(0.967 0.001 286.375); + --muted-foreground: oklch(0.552 0.016 285.938); + --accent: oklch(0.967 0.001 286.375); + --accent-foreground: oklch(0.21 0.006 285.885); + --destructive: oklch(0.577 0.245 27.325); + --destructive-foreground: oklch(0.985 0 0); + --success: oklch(0.603 0.135 166.892); + --success-foreground: oklch(1 0 0); + --warning: oklch(0.795 0.157 78.748); + --warning-foreground: oklch(0.199 0.027 238.732); + --border: oklch(0.92 0.004 286.32); + --input: oklch(0.92 0.004 286.32); + --ring: oklch(0.705 0.015 286.067); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.141 0.005 285.823); + --sidebar-primary: oklch(0.21 0.006 285.885); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.967 0.001 286.375); + --sidebar-accent-foreground: oklch(0.21 0.006 285.885); + --sidebar-border: oklch(0.92 0.004 286.32); + --sidebar-ring: oklch(0.705 0.015 286.067); +} + +@media (prefers-color-scheme: dark) { + :root { + --background: oklch(0.141 0.005 285.823); + --foreground: oklch(0.985 0 0); + --card: oklch(0.21 0.006 285.885); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.21 0.006 285.885); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.92 0.004 286.32); + --primary-foreground: oklch(0.21 0.006 285.885); + --secondary: oklch(0.274 0.006 286.033); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.274 0.006 286.033); + --muted-foreground: oklch(0.705 0.015 286.067); + --accent: oklch(0.274 0.006 286.033); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --destructive-foreground: oklch(0.985 0 0); + --success: oklch(0.67 0.12 167); + --success-foreground: oklch(1 0 0); + --warning: oklch(0.83 0.165 85); + --warning-foreground: oklch(0.199 0.027 238.732); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.552 0.016 285.938); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.21 0.006 285.885); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.274 0.006 286.033); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.552 0.016 285.938); + } +} + +``` + +- If any variable is changed, it must be changed for both light and dark mode. + ## Type generation (QueryRegistry + IntelliSense) Goal: generate `client/src/appKitTypes.d.ts` so query keys, params, and result rows are type-safe. @@ -1054,7 +1132,6 @@ env: - `tsx` is in devDependencies for dev server - `dev` script uses `NODE_ENV=development tsx watch server/index.ts` - `client/index.html` exists with `
` and script pointing to `client/src/main.tsx` - - `client/package.json` exists and includes `@databricks/appkit-ui` - **Backend** - `await createApp({ plugins: [...] })` is used (or `void createApp` with intent) diff --git a/packages/appkit-ui/CLAUDE.md b/packages/appkit-ui/CLAUDE.md deleted file mode 100644 index 8ffdd96..0000000 --- a/packages/appkit-ui/CLAUDE.md +++ /dev/null @@ -1,3 +0,0 @@ -# CLAUDE.md - @databricks/appkit-ui - -## TBD \ No newline at end of file diff --git a/packages/appkit-ui/package.json b/packages/appkit-ui/package.json index f8c2190..b9c84f0 100644 --- a/packages/appkit-ui/package.json +++ b/packages/appkit-ui/package.json @@ -12,6 +12,7 @@ "bin", "scripts", "CLAUDE.md", + "AGENTS.md", "llms.txt", "README.md", "DCO", @@ -38,7 +39,7 @@ "clean:full": "rm -rf dist node_modules tmp", "clean": "rm -rf dist tmp", "dist": "tsx ../../tools/dist.ts", - "tarball": "tsx ../../tools/dist.ts && npm pack ./tmp --pack-destination ./tmp", + "tarball": "rm -rf tmp && tsx ../../tools/dist.ts && npm pack ./tmp --pack-destination ./tmp", "typecheck": "tsc --noEmit" }, "dependencies": { diff --git a/packages/appkit/CLAUDE.md b/packages/appkit/CLAUDE.md deleted file mode 100644 index d17f226..0000000 --- a/packages/appkit/CLAUDE.md +++ /dev/null @@ -1,3 +0,0 @@ -# CLAUDE.md - @databricks/appkit - -## TBD \ No newline at end of file diff --git a/packages/appkit/package.json b/packages/appkit/package.json index 67c3ac3..c5af725 100644 --- a/packages/appkit/package.json +++ b/packages/appkit/package.json @@ -15,6 +15,7 @@ "scripts", "CLAUDE.md", "llms.txt", + "AGENTS.md", "README.md", "DCO", "NOTICE.md" @@ -35,7 +36,7 @@ "clean:full": "rm -rf dist node_modules tmp", "clean": "rm -rf dist tmp", "dist": "tsx ../../tools/dist.ts", - "tarball": "tsx ../../tools/dist.ts && npm pack ./tmp --pack-destination ./tmp", + "tarball": "rm -rf tmp && tsx ../../tools/dist.ts && npm pack ./tmp --pack-destination ./tmp", "typecheck": "tsc --noEmit" }, "dependencies": { diff --git a/packages/shared/bin/setup-claude.js b/packages/shared/bin/setup-claude.js index 41538e5..cfbb669 100644 --- a/packages/shared/bin/setup-claude.js +++ b/packages/shared/bin/setup-claude.js @@ -33,7 +33,7 @@ function findInstalledPackages() { const installed = []; for (const pkg of PACKAGES) { - const claudePath = path.join(cwd, "node_modules", pkg.name, "CLAUDE.md"); + const claudePath = path.join(cwd, "node_modules", pkg.name, "package.json"); if (fs.existsSync(claudePath)) { installed.push(pkg); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9ef9f83..19567b5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3573,8 +3573,8 @@ packages: cpu: [arm64] os: [android] - '@rolldown/binding-android-arm64@1.0.0-beta.56': - resolution: {integrity: sha512-GFsly+vPnl1Sa61sC2LwK4Hrz48W+YBqBmLSxBEj9IJW6nHNsWof1wwh1gwnxMIm/yN5F9M0B/cRAwn6rTINyg==} + '@rolldown/binding-android-arm64@1.0.0-beta.57': + resolution: {integrity: sha512-GoOVDy8bjw9z1K30Oo803nSzXJS/vWhFijFsW3kzvZCO8IZwFnNa6pGctmbbJstKl3Fv6UBwyjJQN6msejW0IQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] @@ -3585,8 +3585,8 @@ packages: cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.0.0-beta.56': - resolution: {integrity: sha512-8fSkk5g5MVZpddrH8hOyc9O5t5Dqv2Vi3Qe628xe+2zJedJxucUc5DX/KY1OVBRp8XY09LJO+J1V56LsxeBVPA==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.57': + resolution: {integrity: sha512-9c4FOhRGpl+PX7zBK5p17c5efpF9aSpTPgyigv57hXf5NjQUaJOOiejPLAtFiKNBIfm5Uu6yFkvLKzOafNvlTw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] @@ -3597,8 +3597,8 @@ packages: cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.56': - resolution: {integrity: sha512-R+Q5zd763MKvgYSkBfr2gr/3nZQENaK88qEqfRUUYrpq/W0okOpbOJaxn5FDIIS+yq3cjyktYm115I5RiI6G5A==} + '@rolldown/binding-darwin-x64@1.0.0-beta.57': + resolution: {integrity: sha512-6RsB8Qy4LnGqNGJJC/8uWeLWGOvbRL/KG5aJ8XXpSEupg/KQtlBEiFaYU/Ma5Usj1s+bt3ItkqZYAI50kSplBA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] @@ -3609,8 +3609,8 @@ packages: cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.0.0-beta.56': - resolution: {integrity: sha512-YEsv0rfJoHHRNaVx6AfW/o4bmwTY7BJnSQ45rRCyU6DWEgvFZMojh6qzMQmW5ZVdcikE3cU1ZnrQQ2yem9H9Yg==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.57': + resolution: {integrity: sha512-uA9kG7+MYkHTbqwv67Tx+5GV5YcKd33HCJIi0311iYBd25yuwyIqvJfBdt1VVB8tdOlyTb9cPAgfCki8nhwTQg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] @@ -3621,8 +3621,8 @@ packages: cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.56': - resolution: {integrity: sha512-mpaV+NCKcHUOkcAThvz1KiXcNshLQRSBLNNKqum2dG7oLZKk+z+02Fxa8BSuFFqq/rmmO6Fq2TPAdZUgOrwiqw==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.57': + resolution: {integrity: sha512-3KkS0cHsllT2T+Te+VZMKHNw6FPQihYsQh+8J4jkzwgvAQpbsbXmrqhkw3YU/QGRrD8qgcOvBr6z5y6Jid+rmw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] @@ -3633,8 +3633,8 @@ packages: cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.56': - resolution: {integrity: sha512-wj1uQRN4GEhYw5cs0dobGzZg3oKMLuQ3hY3fW7cLzvlwi9XRdzW7NmU58e6YUp6boOQLarSxdmAaqCMgaMZfcQ==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.57': + resolution: {integrity: sha512-A3/wu1RgsHhqP3rVH2+sM81bpk+Qd2XaHTl8LtX5/1LNR7QVBFBCpAoiXwjTdGnI5cMdBVi7Z1pi52euW760Fw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -3645,8 +3645,8 @@ packages: cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.56': - resolution: {integrity: sha512-Z2PWbAHjW2EUflb1/tPvouMqppwWF5Va1Y9b4GQpO6QlpGK0Wqmn90GO2VKiheDh/gSZlsxZ7uOZoXh2y8R7Kg==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.57': + resolution: {integrity: sha512-d0kIVezTQtazpyWjiJIn5to8JlwfKITDqwsFv0Xc6s31N16CD2PC/Pl2OtKgS7n8WLOJbfqgIp5ixYzTAxCqMg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -3657,8 +3657,8 @@ packages: cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.56': - resolution: {integrity: sha512-Z/uv04/Tsf7oqhwjPUiDiSildhWmCpsklA0e5PEB+0eGGmm07B+M2SmqRe9Fd0ypfU2TPGhq+Hn7RVUGIfSMxg==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.57': + resolution: {integrity: sha512-E199LPijo98yrLjPCmETx8EF43sZf9t3guSrLee/ej1rCCc3zDVTR4xFfN9BRAapGVl7/8hYqbbiQPTkv73kUg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -3669,8 +3669,8 @@ packages: cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.56': - resolution: {integrity: sha512-u+yP0Pt9ar3PkLGGiyGmQKVj9j20X0E831DY0OVmbKYHAAbTyLKYx+UIIorCm+SQnhGKfkD+0pmwfTc2t2Vt/g==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.57': + resolution: {integrity: sha512-++EQDpk/UJ33kY/BNsh7A7/P1sr/jbMuQ8cE554ZIy+tCUWCivo9zfyjDUoiMdnxqX6HLJEqqGnbGQOvzm2OMQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -3681,8 +3681,8 @@ packages: cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.0.0-beta.56': - resolution: {integrity: sha512-Kuc6r5Uya+KxdJ7MUSok3K8zta/1bcsaSNxTvYujm2mWYuffadqgkkR3d0UCRbbCH5klZ+7VG6DR3VtPRlCntw==} + '@rolldown/binding-openharmony-arm64@1.0.0-beta.57': + resolution: {integrity: sha512-voDEBcNqxbUv/GeXKFtxXVWA+H45P/8Dec4Ii/SbyJyGvCqV1j+nNHfnFUIiRQ2Q40DwPe/djvgYBs9PpETiMA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] @@ -3692,8 +3692,8 @@ packages: engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.56': - resolution: {integrity: sha512-pejT5oLj8xlfn8tjC3bJKeuAsk/un6GKwjbsBQG0AchefdaHf2+S4QRn8XfEMB1l1ZTbe5yEiiV92mr7Jdjaeg==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.57': + resolution: {integrity: sha512-bRhcF7NLlCnpkzLVlVhrDEd0KH22VbTPkPTbMjlYvqhSmarxNIq5vtlQS8qmV7LkPKHrNLWyJW/V/sOyFba26Q==} engines: {node: '>=14.0.0'} cpu: [wasm32] @@ -3703,8 +3703,8 @@ packages: cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.56': - resolution: {integrity: sha512-1NKkRLQR2ghmHMd+14nm1noOhoLei62pkdGlf1g4F+9lfFws66+9LBnP6Z+E+KK8Do9hzQ6FFRwtkC3EADAeyA==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.57': + resolution: {integrity: sha512-rnDVGRks2FQ2hgJ2g15pHtfxqkGFGjJQUDWzYznEkE8Ra2+Vag9OffxdbJMZqBWXHVM0iS4dv8qSiEn7bO+n1Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] @@ -3721,8 +3721,8 @@ packages: cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.56': - resolution: {integrity: sha512-BC3mObCr7/O+1jMJ/Hm3INikBk5D25RTxCha10Rq8b1gHlBfb9eA460+7xQfc8FxUsMCUgHtvrK3Vs5izgwBOQ==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.57': + resolution: {integrity: sha512-OqIUyNid1M4xTj6VRXp/Lht/qIP8fo25QyAZlCP+p6D2ATCEhyW4ZIFLnC9zAGN/HMbXoCzvwfa8Jjg/8J4YEg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -3736,8 +3736,8 @@ packages: '@rolldown/pluginutils@1.0.0-beta.47': resolution: {integrity: sha512-8QagwMH3kNCuzD8EWL8R2YPW5e4OrHNSAHRFDdmFqEwEaD/KcNKjVoumo+gP2vW5eKB2UPbM6vTYiGZX0ixLnw==} - '@rolldown/pluginutils@1.0.0-beta.56': - resolution: {integrity: sha512-cw9jwAgCs024Nic4OB8PeFDLBHLD1Athcv3bRvyYATIVD9B/gL5X5cJkezT94Y7m7Dk9HXaUMcvb7ypvSX46sA==} + '@rolldown/pluginutils@1.0.0-beta.57': + resolution: {integrity: sha512-aQNelgx14tGA+n2tNSa9x6/jeoCL9fkDeCei7nOKnHx0fEFRRMu5ReiITo+zZD5TzWDGGRjbSYCs93IfRIyTuQ==} '@rollup/rollup-android-arm-eabi@4.52.4': resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==} @@ -9100,8 +9100,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rolldown@1.0.0-beta.56: - resolution: {integrity: sha512-9MHiUvRH2R8rb6ad6EaLxahS3RbQKdMMlrh9XKmbz2HiCGfK4IWKSNv4N6GhYr+7kHExg6oIc5EF1xA3iR4x1A==} + rolldown@1.0.0-beta.57: + resolution: {integrity: sha512-lMMxcNN71GMsSko8RyeTaFoATHkCh4IWU7pYF73ziMYjhHZWfVesC6GQ+iaJCvZmVjvgSks9Ks1aaqEkBd8udg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -14597,61 +14597,61 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0-beta.41': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.56': + '@rolldown/binding-android-arm64@1.0.0-beta.57': optional: true '@rolldown/binding-darwin-arm64@1.0.0-beta.41': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.56': + '@rolldown/binding-darwin-arm64@1.0.0-beta.57': optional: true '@rolldown/binding-darwin-x64@1.0.0-beta.41': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.56': + '@rolldown/binding-darwin-x64@1.0.0-beta.57': optional: true '@rolldown/binding-freebsd-x64@1.0.0-beta.41': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.56': + '@rolldown/binding-freebsd-x64@1.0.0-beta.57': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.41': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.56': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.57': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.41': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.56': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.57': optional: true '@rolldown/binding-linux-arm64-musl@1.0.0-beta.41': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.56': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.57': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0-beta.41': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.56': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.57': optional: true '@rolldown/binding-linux-x64-musl@1.0.0-beta.41': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.56': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.57': optional: true '@rolldown/binding-openharmony-arm64@1.0.0-beta.41': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.56': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.57': optional: true '@rolldown/binding-wasm32-wasi@1.0.0-beta.41': @@ -14659,7 +14659,7 @@ snapshots: '@napi-rs/wasm-runtime': 1.0.7 optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.56': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.57': dependencies: '@napi-rs/wasm-runtime': 1.1.0 optional: true @@ -14667,7 +14667,7 @@ snapshots: '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.41': optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.56': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.57': optional: true '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.41': @@ -14676,7 +14676,7 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.0.0-beta.41': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.56': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.57': optional: true '@rolldown/pluginutils@1.0.0-beta.38': {} @@ -14685,7 +14685,7 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.47': {} - '@rolldown/pluginutils@1.0.0-beta.56': {} + '@rolldown/pluginutils@1.0.0-beta.57': {} '@rollup/rollup-android-arm-eabi@4.52.4': optional: true @@ -15461,7 +15461,7 @@ snapshots: dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 - magic-string: 0.30.19 + magic-string: 0.30.21 optionalDependencies: vite: 7.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1) @@ -15478,7 +15478,7 @@ snapshots: '@vitest/snapshot@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.19 + magic-string: 0.30.21 pathe: 2.0.3 '@vitest/spy@3.2.4': @@ -16041,8 +16041,8 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.28.0 - caniuse-lite: 1.0.30001757 + browserslist: 4.28.1 + caniuse-lite: 1.0.30001760 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 @@ -16387,7 +16387,7 @@ snapshots: core-js-compat@3.47.0: dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 core-js-pure@3.47.0: {} @@ -16518,7 +16518,7 @@ snapshots: cssnano-preset-advanced@6.1.2(postcss@8.5.6): dependencies: autoprefixer: 10.4.23(postcss@8.5.6) - browserslist: 4.28.0 + browserslist: 4.28.1 cssnano-preset-default: 6.1.2(postcss@8.5.6) postcss: 8.5.6 postcss-discard-unused: 6.0.5(postcss@8.5.6) @@ -16528,7 +16528,7 @@ snapshots: cssnano-preset-default@6.1.2(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 css-declaration-sorter: 7.3.0(postcss@8.5.6) cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 @@ -19847,7 +19847,7 @@ snapshots: postcss-colormin@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.6 @@ -19855,7 +19855,7 @@ snapshots: postcss-convert-values@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -19979,7 +19979,7 @@ snapshots: postcss-merge-rules@6.1.1(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 caniuse-api: 3.0.0 cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 @@ -19999,7 +19999,7 @@ snapshots: postcss-minify-params@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -20068,7 +20068,7 @@ snapshots: postcss-normalize-unicode@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -20147,7 +20147,7 @@ snapshots: '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.6) '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.6) autoprefixer: 10.4.23(postcss@8.5.6) - browserslist: 4.28.0 + browserslist: 4.28.1 css-blank-pseudo: 7.0.1(postcss@8.5.6) css-has-pseudo: 7.0.3(postcss@8.5.6) css-prefers-color-scheme: 10.0.0(postcss@8.5.6) @@ -20191,7 +20191,7 @@ snapshots: postcss-reduce-initial@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 caniuse-api: 3.0.0 postcss: 8.5.6 @@ -20838,7 +20838,7 @@ snapshots: dependencies: glob: 10.5.0 - rolldown-plugin-dts@0.16.11(rolldown@1.0.0-beta.56)(typescript@5.9.3): + rolldown-plugin-dts@0.16.11(rolldown@1.0.0-beta.57)(typescript@5.9.3): dependencies: '@babel/generator': 7.28.3 '@babel/parser': 7.28.5 @@ -20849,7 +20849,7 @@ snapshots: dts-resolver: 2.1.2 get-tsconfig: 4.12.0 magic-string: 0.30.19 - rolldown: 1.0.0-beta.56 + rolldown: 1.0.0-beta.57 optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -20913,24 +20913,24 @@ snapshots: '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.41 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.41 - rolldown@1.0.0-beta.56: + rolldown@1.0.0-beta.57: dependencies: '@oxc-project/types': 0.103.0 - '@rolldown/pluginutils': 1.0.0-beta.56 + '@rolldown/pluginutils': 1.0.0-beta.57 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.56 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.56 - '@rolldown/binding-darwin-x64': 1.0.0-beta.56 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.56 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.56 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.56 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.56 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.56 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.56 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.56 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.56 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.56 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.56 + '@rolldown/binding-android-arm64': 1.0.0-beta.57 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.57 + '@rolldown/binding-darwin-x64': 1.0.0-beta.57 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.57 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.57 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.57 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.57 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.57 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.57 + '@rolldown/binding-openharmony-arm64': 1.0.0-beta.57 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.57 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.57 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.57 rollup@4.52.4: dependencies: @@ -21389,7 +21389,7 @@ snapshots: stylehacks@6.1.1(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 postcss: 8.5.6 postcss-selector-parser: 6.1.2 @@ -21559,8 +21559,8 @@ snapshots: diff: 8.0.2 empathic: 2.0.0 hookable: 5.5.3 - rolldown: 1.0.0-beta.56 - rolldown-plugin-dts: 0.16.11(rolldown@1.0.0-beta.56)(typescript@5.9.3) + rolldown: 1.0.0-beta.57 + rolldown-plugin-dts: 0.16.11(rolldown@1.0.0-beta.57)(typescript@5.9.3) semver: 7.7.3 tinyexec: 1.0.1 tinyglobby: 0.2.15 @@ -22137,7 +22137,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.28.0 + browserslist: 4.28.1 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 diff --git a/tools/dist.ts b/tools/dist.ts index 34d3b90..9faeee6 100644 --- a/tools/dist.ts +++ b/tools/dist.ts @@ -54,16 +54,16 @@ if (isAppKitPackage) { } } -if (fs.existsSync("CLAUDE.md")) { - fs.copyFileSync("CLAUDE.md", "tmp/CLAUDE.md"); -} - if (fs.existsSync("llms.txt")) { fs.copyFileSync("llms.txt", "tmp/llms.txt"); } else { fs.copyFileSync(path.join(__dirname, "../llms.txt"), "tmp/llms.txt"); } +// Copy llms.txt as CLAUDE.md and AGENTS.md (npm pack doesn't support symlinks) +fs.copyFileSync("tmp/llms.txt", "tmp/CLAUDE.md"); +fs.copyFileSync("tmp/llms.txt", "tmp/AGENTS.md"); + fs.copyFileSync(path.join(__dirname, "../README.md"), "tmp/README.md"); fs.copyFileSync(path.join(__dirname, "../LICENSE"), "tmp/LICENSE"); fs.copyFileSync(path.join(__dirname, "../DCO"), "tmp/DCO");