Przeglądaj źródła

fix: share page

Adam 3 miesięcy temu
rodzic
commit
b7a9cbfc68

+ 17 - 15
bun.lock

@@ -174,7 +174,7 @@
       "dependencies": {
       "dependencies": {
         "@opencode-ai/ui": "workspace:*",
         "@opencode-ai/ui": "workspace:*",
         "@opencode-ai/util": "workspace:*",
         "@opencode-ai/util": "workspace:*",
-        "@pierre/precision-diffs": "catalog:",
+        "@pierre/diffs": "catalog:",
         "@solidjs/meta": "catalog:",
         "@solidjs/meta": "catalog:",
         "@solidjs/router": "catalog:",
         "@solidjs/router": "catalog:",
         "@solidjs/start": "catalog:",
         "@solidjs/start": "catalog:",
@@ -248,7 +248,7 @@
         "@opentui/core": "0.0.0-20251211-4403a69a",
         "@opentui/core": "0.0.0-20251211-4403a69a",
         "@opentui/solid": "0.0.0-20251211-4403a69a",
         "@opentui/solid": "0.0.0-20251211-4403a69a",
         "@parcel/watcher": "2.5.1",
         "@parcel/watcher": "2.5.1",
-        "@pierre/precision-diffs": "catalog:",
+        "@pierre/diffs": "catalog:",
         "@solid-primitives/event-bus": "1.1.2",
         "@solid-primitives/event-bus": "1.1.2",
         "@standard-schema/spec": "1.0.0",
         "@standard-schema/spec": "1.0.0",
         "@zip.js/zip.js": "2.7.62",
         "@zip.js/zip.js": "2.7.62",
@@ -381,7 +381,7 @@
         "@kobalte/core": "catalog:",
         "@kobalte/core": "catalog:",
         "@opencode-ai/sdk": "workspace:*",
         "@opencode-ai/sdk": "workspace:*",
         "@opencode-ai/util": "workspace:*",
         "@opencode-ai/util": "workspace:*",
-        "@pierre/precision-diffs": "catalog:",
+        "@pierre/diffs": "catalog:",
         "@shikijs/transformers": "3.9.2",
         "@shikijs/transformers": "3.9.2",
         "@solid-primitives/bounds": "0.1.3",
         "@solid-primitives/bounds": "0.1.3",
         "@solid-primitives/resize-observer": "2.1.3",
         "@solid-primitives/resize-observer": "2.1.3",
@@ -471,7 +471,7 @@
     "@hono/zod-validator": "0.4.2",
     "@hono/zod-validator": "0.4.2",
     "@kobalte/core": "0.13.11",
     "@kobalte/core": "0.13.11",
     "@openauthjs/openauth": "0.0.0-20250322224806",
     "@openauthjs/openauth": "0.0.0-20250322224806",
-    "@pierre/precision-diffs": "0.6.1",
+    "@pierre/diffs": "1.0.0-beta.3",
     "@solidjs/meta": "0.29.4",
     "@solidjs/meta": "0.29.4",
     "@solidjs/router": "0.15.4",
     "@solidjs/router": "0.15.4",
     "@solidjs/start": "https://pkg.pr.new/@solidjs/start@dfb2020",
     "@solidjs/start": "https://pkg.pr.new/@solidjs/start@dfb2020",
@@ -1286,7 +1286,7 @@
 
 
     "@petamoriken/float16": ["@petamoriken/[email protected]", "", {}, "sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g=="],
     "@petamoriken/float16": ["@petamoriken/[email protected]", "", {}, "sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g=="],
 
 
-    "@pierre/precision-diffs": ["@pierre/[email protected]", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/transformers": "3.15.0", "diff": "8.0.2", "fast-deep-equal": "3.1.3", "hast-util-to-html": "9.0.5", "lru_map": "0.4.1", "shiki": "3.15.0" }, "peerDependencies": { "react": "^18.3.1 || ^19.0.0", "react-dom": "^18.3.1 || ^19.0.0" } }, "sha512-HXafRSOly6B0rRt6fuP0yy1MimHJMQ2NNnBGcIHhHwsgK4WWs+SBWRWt1usdgz0NIuSgXdIyQn8HY3F1jKyDBQ=="],
+    "@pierre/diffs": ["@pierre/[email protected]", "", { "dependencies": { "@shikijs/core": "3.19.0", "@shikijs/engine-javascript": "3.19.0", "@shikijs/transformers": "3.19.0", "diff": "8.0.2", "hast-util-to-html": "9.0.5", "lru_map": "0.4.1", "shiki": "3.19.0" }, "peerDependencies": { "react": "^18.3.1 || ^19.0.0", "react-dom": "^18.3.1 || ^19.0.0" } }, "sha512-W3dFWdFOBZ9OskGSOgN16aci8dsUyAavCxz3ZvbbVLTb2qRzMZ7H90qdfON13/N2l1HTyh84lkrCs1/sDvnRjQ=="],
 
 
     "@pkgjs/parseargs": ["@pkgjs/[email protected]", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="],
     "@pkgjs/parseargs": ["@pkgjs/[email protected]", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="],
 
 
@@ -4112,11 +4112,13 @@
 
 
     "@parcel/watcher/node-addon-api": ["[email protected]", "", {}, "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="],
     "@parcel/watcher/node-addon-api": ["[email protected]", "", {}, "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="],
 
 
-    "@pierre/precision-diffs/@shikijs/core": ["@shikijs/[email protected]", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg=="],
+    "@pierre/diffs/@shikijs/core": ["@shikijs/[email protected]", "", { "dependencies": { "@shikijs/types": "3.19.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-L7SrRibU7ZoYi1/TrZsJOFAnnHyLTE1SwHG1yNWjZIVCqjOEmCSuK2ZO9thnRbJG6TOkPp+Z963JmpCNw5nzvA=="],
 
 
-    "@pierre/precision-diffs/@shikijs/transformers": ["@shikijs/[email protected]", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/types": "3.15.0" } }, "sha512-Hmwip5ovvSkg+Kc41JTvSHHVfCYF+C8Cp1omb5AJj4Xvd+y9IXz2rKJwmFRGsuN0vpHxywcXJ1+Y4B9S7EG1/A=="],
+    "@pierre/diffs/@shikijs/engine-javascript": ["@shikijs/[email protected]", "", { "dependencies": { "@shikijs/types": "3.19.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.4" } }, "sha512-ZfWJNm2VMhKkQIKT9qXbs76RRcT0SF/CAvEz0+RkpUDAoDaCx0uFdCGzSRiD9gSlhm6AHkjdieOBJMaO2eC1rQ=="],
 
 
-    "@pierre/precision-diffs/shiki": ["[email protected]", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/engine-javascript": "3.15.0", "@shikijs/engine-oniguruma": "3.15.0", "@shikijs/langs": "3.15.0", "@shikijs/themes": "3.15.0", "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw=="],
+    "@pierre/diffs/@shikijs/transformers": ["@shikijs/[email protected]", "", { "dependencies": { "@shikijs/core": "3.19.0", "@shikijs/types": "3.19.0" } }, "sha512-e6vwrsyw+wx4OkcrDbL+FVCxwx8jgKiCoXzakVur++mIWVcgpzIi8vxf4/b4dVTYrV/nUx5RjinMf4tq8YV8Fw=="],
+
+    "@pierre/diffs/shiki": ["[email protected]", "", { "dependencies": { "@shikijs/core": "3.19.0", "@shikijs/engine-javascript": "3.19.0", "@shikijs/engine-oniguruma": "3.19.0", "@shikijs/langs": "3.19.0", "@shikijs/themes": "3.19.0", "@shikijs/types": "3.19.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-77VJr3OR/VUZzPiStyRhADmO2jApMM0V2b1qf0RpfWya8Zr1PeZev5AEpPGAAKWdiYUtcZGBE4F5QvJml1PvWA=="],
 
 
     "@poppinss/dumper/supports-color": ["[email protected]", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="],
     "@poppinss/dumper/supports-color": ["[email protected]", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="],
 
 
@@ -4670,19 +4672,19 @@
 
 
     "@opentui/solid/@babel/core/semver": ["[email protected]", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
     "@opentui/solid/@babel/core/semver": ["[email protected]", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
 
 
-    "@pierre/precision-diffs/@shikijs/core/@shikijs/types": ["@shikijs/[email protected]5.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="],
+    "@pierre/diffs/@shikijs/core/@shikijs/types": ["@shikijs/[email protected]9.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-Z2hdeEQlzuntf/BZpFG8a+Fsw9UVXdML7w0o3TgSXV3yNESGon+bs9ITkQb3Ki7zxoXOOu5oJWqZ2uto06V9iQ=="],
 
 
-    "@pierre/precision-diffs/@shikijs/transformers/@shikijs/types": ["@shikijs/[email protected].0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="],
+    "@pierre/diffs/@shikijs/engine-javascript/@shikijs/types": ["@shikijs/[email protected].0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-Z2hdeEQlzuntf/BZpFG8a+Fsw9UVXdML7w0o3TgSXV3yNESGon+bs9ITkQb3Ki7zxoXOOu5oJWqZ2uto06V9iQ=="],
 
 
-    "@pierre/precision-diffs/shiki/@shikijs/engine-javascript": ["@shikijs/[email protected]", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg=="],
+    "@pierre/diffs/@shikijs/transformers/@shikijs/types": ["@shikijs/[email protected]", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-Z2hdeEQlzuntf/BZpFG8a+Fsw9UVXdML7w0o3TgSXV3yNESGon+bs9ITkQb3Ki7zxoXOOu5oJWqZ2uto06V9iQ=="],
 
 
-    "@pierre/precision-diffs/shiki/@shikijs/engine-oniguruma": ["@shikijs/[email protected]5.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA=="],
+    "@pierre/diffs/shiki/@shikijs/engine-oniguruma": ["@shikijs/[email protected]9.0", "", { "dependencies": { "@shikijs/types": "3.19.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-1hRxtYIJfJSZeM5ivbUXv9hcJP3PWRo5prG/V2sWwiubUKTa+7P62d2qxCW8jiVFX4pgRHhnHNp+qeR7Xl+6kg=="],
 
 
-    "@pierre/precision-diffs/shiki/@shikijs/langs": ["@shikijs/[email protected]", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A=="],
+    "@pierre/diffs/shiki/@shikijs/langs": ["@shikijs/[email protected]", "", { "dependencies": { "@shikijs/types": "3.19.0" } }, "sha512-dBMFzzg1QiXqCVQ5ONc0z2ebyoi5BKz+MtfByLm0o5/nbUu3Iz8uaTCa5uzGiscQKm7lVShfZHU1+OG3t5hgwg=="],
 
 
-    "@pierre/precision-diffs/shiki/@shikijs/themes": ["@shikijs/[email protected]5.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ=="],
+    "@pierre/diffs/shiki/@shikijs/themes": ["@shikijs/[email protected]9.0", "", { "dependencies": { "@shikijs/types": "3.19.0" } }, "sha512-H36qw+oh91Y0s6OlFfdSuQ0Ld+5CgB/VE6gNPK+Hk4VRbVG/XQgkjnt4KzfnnoO6tZPtKJKHPjwebOCfjd6F8A=="],
 
 
-    "@pierre/precision-diffs/shiki/@shikijs/types": ["@shikijs/[email protected].0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="],
+    "@pierre/diffs/shiki/@shikijs/types": ["@shikijs/[email protected].0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-Z2hdeEQlzuntf/BZpFG8a+Fsw9UVXdML7w0o3TgSXV3yNESGon+bs9ITkQb3Ki7zxoXOOu5oJWqZ2uto06V9iQ=="],
 
 
     "@slack/web-api/form-data/mime-types": ["[email protected]", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="],
     "@slack/web-api/form-data/mime-types": ["[email protected]", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="],
 
 

+ 1 - 1
package.json

@@ -30,7 +30,7 @@
       "@tsconfig/bun": "1.0.9",
       "@tsconfig/bun": "1.0.9",
       "@cloudflare/workers-types": "4.20251008.0",
       "@cloudflare/workers-types": "4.20251008.0",
       "@openauthjs/openauth": "0.0.0-20250322224806",
       "@openauthjs/openauth": "0.0.0-20250322224806",
-      "@pierre/precision-diffs": "0.6.1",
+      "@pierre/diffs": "1.0.0-beta.3",
       "@tailwindcss/vite": "4.1.11",
       "@tailwindcss/vite": "4.1.11",
       "diff": "8.0.2",
       "diff": "8.0.2",
       "ai": "5.0.97",
       "ai": "5.0.97",

+ 1 - 1
packages/enterprise/package.json

@@ -14,7 +14,7 @@
     "@opencode-ai/util": "workspace:*",
     "@opencode-ai/util": "workspace:*",
     "@opencode-ai/ui": "workspace:*",
     "@opencode-ai/ui": "workspace:*",
     "aws4fetch": "^1.0.20",
     "aws4fetch": "^1.0.20",
-    "@pierre/precision-diffs": "catalog:",
+    "@pierre/diffs": "catalog:",
     "@solidjs/router": "catalog:",
     "@solidjs/router": "catalog:",
     "@solidjs/start": "catalog:",
     "@solidjs/start": "catalog:",
     "@solidjs/meta": "catalog:",
     "@solidjs/meta": "catalog:",

+ 1 - 1
packages/enterprise/src/routes/share/[shareID].tsx

@@ -19,7 +19,7 @@ import { createStore } from "solid-js/store"
 import z from "zod"
 import z from "zod"
 import NotFound from "../[...404]"
 import NotFound from "../[...404]"
 import { Tabs } from "@opencode-ai/ui/tabs"
 import { Tabs } from "@opencode-ai/ui/tabs"
-import { preloadMultiFileDiff, PreloadMultiFileDiffResult } from "@pierre/precision-diffs/ssr"
+import { preloadMultiFileDiff, PreloadMultiFileDiffResult } from "@pierre/diffs/ssr"
 import { Diff as SSRDiff } from "@opencode-ai/ui/diff-ssr"
 import { Diff as SSRDiff } from "@opencode-ai/ui/diff-ssr"
 import { clientOnly } from "@solidjs/start"
 import { clientOnly } from "@solidjs/start"
 import { type IconName } from "@opencode-ai/ui/icons/provider"
 import { type IconName } from "@opencode-ai/ui/icons/provider"

+ 1 - 1
packages/opencode/package.json

@@ -74,7 +74,7 @@
     "@opentui/core": "0.0.0-20251211-4403a69a",
     "@opentui/core": "0.0.0-20251211-4403a69a",
     "@opentui/solid": "0.0.0-20251211-4403a69a",
     "@opentui/solid": "0.0.0-20251211-4403a69a",
     "@parcel/watcher": "2.5.1",
     "@parcel/watcher": "2.5.1",
-    "@pierre/precision-diffs": "catalog:",
+    "@pierre/diffs": "catalog:",
     "@solid-primitives/event-bus": "1.1.2",
     "@solid-primitives/event-bus": "1.1.2",
     "@standard-schema/spec": "1.0.0",
     "@standard-schema/spec": "1.0.0",
     "@zip.js/zip.js": "2.7.62",
     "@zip.js/zip.js": "2.7.62",

+ 1 - 1
packages/ui/package.json

@@ -35,7 +35,7 @@
     "@kobalte/core": "catalog:",
     "@kobalte/core": "catalog:",
     "@opencode-ai/sdk": "workspace:*",
     "@opencode-ai/sdk": "workspace:*",
     "@opencode-ai/util": "workspace:*",
     "@opencode-ai/util": "workspace:*",
-    "@pierre/precision-diffs": "catalog:",
+    "@pierre/diffs": "catalog:",
     "@shikijs/transformers": "3.9.2",
     "@shikijs/transformers": "3.9.2",
     "@solid-primitives/bounds": "0.1.3",
     "@solid-primitives/bounds": "0.1.3",
     "@solid-primitives/resize-observer": "2.1.3",
     "@solid-primitives/resize-observer": "2.1.3",

+ 1 - 1
packages/ui/src/components/code.tsx

@@ -1,4 +1,4 @@
-import { type FileContents, File, FileOptions, LineAnnotation } from "@pierre/precision-diffs"
+import { type FileContents, File, FileOptions, LineAnnotation } from "@pierre/diffs"
 import { ComponentProps, createEffect, createMemo, splitProps } from "solid-js"
 import { ComponentProps, createEffect, createMemo, splitProps } from "solid-js"
 import { createDefaultOptions, styleVariables } from "../pierre"
 import { createDefaultOptions, styleVariables } from "../pierre"
 import { workerPool } from "../pierre/worker"
 import { workerPool } from "../pierre/worker"

+ 4 - 4
packages/ui/src/components/diff-ssr.tsx

@@ -1,5 +1,5 @@
-import { FileDiff } from "@pierre/precision-diffs"
-import { PreloadMultiFileDiffResult } from "@pierre/precision-diffs/ssr"
+import { FileDiff } from "@pierre/diffs"
+import { PreloadMultiFileDiffResult } from "@pierre/diffs/ssr"
 import { onCleanup, onMount, Show, splitProps } from "solid-js"
 import { onCleanup, onMount, Show, splitProps } from "solid-js"
 import { isServer } from "solid-js/web"
 import { isServer } from "solid-js/web"
 import { createDefaultOptions, styleVariables, type DiffProps } from "../pierre"
 import { createDefaultOptions, styleVariables, type DiffProps } from "../pierre"
@@ -65,11 +65,11 @@ export function Diff<T>(props: SSRDiffProps<T>) {
 
 
   return (
   return (
     <div data-component="diff" style={styleVariables} ref={container}>
     <div data-component="diff" style={styleVariables} ref={container}>
-      <file-diff ref={fileDiffRef} id="ssr-diff">
+      <diffs-container ref={fileDiffRef} id="ssr-diff">
         <Show when={isServer}>
         <Show when={isServer}>
           <template shadowrootmode="open" innerHTML={props.preloadedDiff.prerenderedHTML} />
           <template shadowrootmode="open" innerHTML={props.preloadedDiff.prerenderedHTML} />
         </Show>
         </Show>
-      </file-diff>
+      </diffs-container>
     </div>
     </div>
   )
   )
 }
 }

+ 2 - 2
packages/ui/src/components/diff.css

@@ -19,8 +19,8 @@
     position: sticky;
     position: sticky;
     background-color: var(--surface-diff-hidden-base);
     background-color: var(--surface-diff-hidden-base);
     color: var(--text-base);
     color: var(--text-base);
-    width: var(--pjs-column-content-width);
-    left: var(--pjs-column-number-width);
+    width: var(--diffs-column-content-width);
+    left: var(--diffs-column-number-width);
     padding-left: 8px;
     padding-left: 8px;
     user-select: none;
     user-select: none;
     cursor: default;
     cursor: default;

+ 1 - 1
packages/ui/src/components/diff.tsx

@@ -1,4 +1,4 @@
-import { FileDiff } from "@pierre/precision-diffs"
+import { FileDiff } from "@pierre/diffs"
 import { createEffect, createMemo, onCleanup, splitProps } from "solid-js"
 import { createEffect, createMemo, onCleanup, splitProps } from "solid-js"
 import { createDefaultOptions, type DiffProps, styleVariables } from "../pierre"
 import { createDefaultOptions, type DiffProps, styleVariables } from "../pierre"
 import { workerPool } from "../pierre/worker"
 import { workerPool } from "../pierre/worker"

+ 13 - 15
packages/ui/src/components/message-part.tsx

@@ -19,8 +19,6 @@ import { Checkbox } from "./checkbox"
 import { DiffChanges } from "./diff-changes"
 import { DiffChanges } from "./diff-changes"
 import { Markdown } from "./markdown"
 import { Markdown } from "./markdown"
 import { getDirectory as _getDirectory, getFilename } from "@opencode-ai/util/path"
 import { getDirectory as _getDirectory, getFilename } from "@opencode-ai/util/path"
-import { Code } from "./code"
-import { checksum } from "@opencode-ai/util/encode"
 
 
 export interface MessageProps {
 export interface MessageProps {
   message: MessageType
   message: MessageType
@@ -509,19 +507,19 @@ ToolRegistry.register({
           </div>
           </div>
         }
         }
       >
       >
-        <Show when={props.input.content}>
-          <div data-component="write-content">
-            <Code
-              file={{
-                name: props.input.filePath,
-                contents: props.input.content,
-                cacheKey: checksum(props.input.content),
-              }}
-              overflow="scroll"
-              class="pb-40"
-            />
-          </div>
-        </Show>
+        {/* <Show when={props.input.content}> */}
+        {/*   <div data-component="write-content"> */}
+        {/*     <Code */}
+        {/*       file={{ */}
+        {/*         name: props.input.filePath, */}
+        {/*         contents: props.input.content, */}
+        {/*         cacheKey: checksum(props.input.content), */}
+        {/*       }} */}
+        {/*       overflow="scroll" */}
+        {/*       class="pb-40" */}
+        {/*     /> */}
+        {/*   </div> */}
+        {/* </Show> */}
       </BasicTool>
       </BasicTool>
     )
     )
   },
   },

+ 1 - 1
packages/ui/src/components/session-review.tsx

@@ -9,7 +9,7 @@ import { getDirectory, getFilename } from "@opencode-ai/util/path"
 import { For, Match, Show, Switch, type JSX } from "solid-js"
 import { For, Match, Show, Switch, type JSX } from "solid-js"
 import { createStore } from "solid-js/store"
 import { createStore } from "solid-js/store"
 import { type FileDiff } from "@opencode-ai/sdk/v2"
 import { type FileDiff } from "@opencode-ai/sdk/v2"
-import { PreloadMultiFileDiffResult } from "@pierre/precision-diffs/ssr"
+import { PreloadMultiFileDiffResult } from "@pierre/diffs/ssr"
 import { Dynamic } from "solid-js/web"
 import { Dynamic } from "solid-js/web"
 import { checksum } from "@opencode-ai/util/encode"
 import { checksum } from "@opencode-ai/util/encode"
 
 

+ 1 - 1
packages/ui/src/context/data.tsx

@@ -1,6 +1,6 @@
 import type { Message, Session, Part, FileDiff, SessionStatus } from "@opencode-ai/sdk/v2"
 import type { Message, Session, Part, FileDiff, SessionStatus } from "@opencode-ai/sdk/v2"
 import { createSimpleContext } from "./helper"
 import { createSimpleContext } from "./helper"
-import { PreloadMultiFileDiffResult } from "@pierre/precision-diffs/ssr"
+import { PreloadMultiFileDiffResult } from "@pierre/diffs/ssr"
 
 
 type Data = {
 type Data = {
   session: Session[]
   session: Session[]

+ 1 - 1
packages/ui/src/context/marked.tsx

@@ -2,7 +2,7 @@ import { marked } from "marked"
 import markedShiki from "marked-shiki"
 import markedShiki from "marked-shiki"
 import { bundledLanguages, type BundledLanguage } from "shiki"
 import { bundledLanguages, type BundledLanguage } from "shiki"
 import { createSimpleContext } from "./helper"
 import { createSimpleContext } from "./helper"
-import { getSharedHighlighter, registerCustomTheme, ThemeRegistrationResolved } from "@pierre/precision-diffs"
+import { getSharedHighlighter, registerCustomTheme, ThemeRegistrationResolved } from "@pierre/diffs"
 
 
 registerCustomTheme("OpenCode", () => {
 registerCustomTheme("OpenCode", () => {
   return Promise.resolve({
   return Promise.resolve({

+ 4 - 4
packages/ui/src/custom-elements.d.ts

@@ -1,12 +1,12 @@
 /**
 /**
- * TypeScript declaration for the <file-diff> custom element.
- * This tells TypeScript that <file-diff> is a valid JSX element in SolidJS.
- * Required for using the precision-diffs web component in .tsx files.
+ * TypeScript declaration for the <diffs-container> custom element.
+ * This tells TypeScript that <diffs-container> is a valid JSX element in SolidJS.
+ * Required for using the @pierre/diffs web component in .tsx files.
  */
  */
 declare module "solid-js" {
 declare module "solid-js" {
   namespace JSX {
   namespace JSX {
     interface IntrinsicElements {
     interface IntrinsicElements {
-      "file-diff": HTMLAttributes<HTMLElement>
+      "diffs-container": HTMLAttributes<HTMLElement>
     }
     }
   }
   }
 }
 }

+ 11 - 11
packages/ui/src/pierre/index.ts

@@ -1,4 +1,4 @@
-import { DiffLineAnnotation, FileContents, FileDiffOptions } from "@pierre/precision-diffs"
+import { DiffLineAnnotation, FileContents, FileDiffOptions } from "@pierre/diffs"
 import { ComponentProps } from "solid-js"
 import { ComponentProps } from "solid-js"
 
 
 export type DiffProps<T = {}> = FileDiffOptions<T> & {
 export type DiffProps<T = {}> = FileDiffOptions<T> & {
@@ -10,8 +10,8 @@ export type DiffProps<T = {}> = FileDiffOptions<T> & {
 }
 }
 
 
 const unsafeCSS = `
 const unsafeCSS = `
-[data-pjs-header],
-[data-pjs] {
+[data-diffs-header],
+[data-diffs] {
   [data-separator-wrapper] {
   [data-separator-wrapper] {
     margin: 0 !important;
     margin: 0 !important;
     border-radius: 0 !important;
     border-radius: 0 !important;
@@ -71,12 +71,12 @@ export function createDefaultOptions<T>(style: FileDiffOptions<T>["diffStyle"])
 }
 }
 
 
 export const styleVariables = {
 export const styleVariables = {
-  "--pjs-font-family": "var(--font-family-mono)",
-  "--pjs-font-size": "var(--font-size-small)",
-  "--pjs-line-height": "24px",
-  "--pjs-tab-size": 2,
-  "--pjs-font-features": "var(--font-family-mono--font-feature-settings)",
-  "--pjs-header-font-family": "var(--font-family-sans)",
-  "--pjs-gap-block": 0,
-  "--pjs-min-number-column-width": "4ch",
+  "--diffs-font-family": "var(--font-family-mono)",
+  "--diffs-font-size": "var(--font-size-small)",
+  "--diffs-line-height": "24px",
+  "--diffs-tab-size": 2,
+  "--diffs-font-features": "var(--font-family-mono--font-feature-settings)",
+  "--diffs-header-font-family": "var(--font-family-sans)",
+  "--diffs-gap-block": 0,
+  "--diffs-min-number-column-width": "4ch",
 }
 }

+ 2 - 2
packages/ui/src/pierre/worker.ts

@@ -1,5 +1,5 @@
-import { getOrCreateWorkerPoolSingleton } from "@pierre/precision-diffs/worker"
-import ShikiWorkerUrl from "@pierre/precision-diffs/worker/worker.js?worker&url"
+import { getOrCreateWorkerPoolSingleton } from "@pierre/diffs/worker"
+import ShikiWorkerUrl from "@pierre/diffs/worker/worker.js?worker&url"
 
 
 export function workerFactory(): Worker {
 export function workerFactory(): Worker {
   return new Worker(ShikiWorkerUrl, { type: "module" })
   return new Worker(ShikiWorkerUrl, { type: "module" })