Quellcode durchsuchen

Remove redundant ID Zod overrides (#26633)

Kit Langton vor 3 Monaten
Ursprung
Commit
fb4bab8a66

+ 2 - 4
packages/opencode/src/control-plane/schema.ts

@@ -1,12 +1,10 @@
 import { Schema } from "effect"
 
 import { Identifier } from "@/id/id"
-import { zod, ZodOverride } from "@opencode-ai/core/effect-zod"
+import { zod } from "@opencode-ai/core/effect-zod"
 import { withStatics } from "@opencode-ai/core/schema"
 
-const workspaceIdSchema = Schema.String.check(Schema.isStartsWith("wrk"))
-  .annotate({ [ZodOverride]: Identifier.schema("workspace") })
-  .pipe(Schema.brand("WorkspaceID"))
+const workspaceIdSchema = Schema.String.check(Schema.isStartsWith("wrk")).pipe(Schema.brand("WorkspaceID"))
 
 export type WorkspaceID = typeof workspaceIdSchema.Type
 

+ 0 - 8
packages/opencode/src/id/id.ts

@@ -1,4 +1,3 @@
-import z from "zod"
 import { randomBytes } from "crypto"
 
 const prefixes = {
@@ -7,19 +6,12 @@ const prefixes = {
   message: "msg",
   permission: "per",
   question: "que",
-  user: "usr",
   part: "prt",
   pty: "pty",
   tool: "tool",
   workspace: "wrk",
-  entry: "ent",
-  account: "act",
 } as const
 
-export function schema(prefix: keyof typeof prefixes) {
-  return z.string().startsWith(prefixes[prefix])
-}
-
 const LENGTH = 26
 
 // State for monotonic ID generation

+ 2 - 2
packages/opencode/src/permission/schema.ts

@@ -1,12 +1,12 @@
 import { Schema } from "effect"
 
 import { Identifier } from "@/id/id"
-import { zod, ZodOverride } from "@opencode-ai/core/effect-zod"
+import { zod } from "@opencode-ai/core/effect-zod"
 import { Newtype } from "@opencode-ai/core/schema"
 
 export class PermissionID extends Newtype<PermissionID>()(
   "PermissionID",
-  Schema.String.check(Schema.isStartsWith("per")).annotate({ [ZodOverride]: Identifier.schema("permission") }),
+  Schema.String.check(Schema.isStartsWith("per")),
 ) {
   static ascending(id?: string): PermissionID {
     return this.make(Identifier.ascending("permission", id))

+ 2 - 4
packages/opencode/src/pty/schema.ts

@@ -1,12 +1,10 @@
 import { Schema } from "effect"
 
 import { Identifier } from "@/id/id"
-import { zod, ZodOverride } from "@opencode-ai/core/effect-zod"
+import { zod } from "@opencode-ai/core/effect-zod"
 import { withStatics } from "@opencode-ai/core/schema"
 
-const ptyIdSchema = Schema.String.check(Schema.isStartsWith("pty"))
-  .annotate({ [ZodOverride]: Identifier.schema("pty") })
-  .pipe(Schema.brand("PtyID"))
+const ptyIdSchema = Schema.String.check(Schema.isStartsWith("pty")).pipe(Schema.brand("PtyID"))
 
 export type PtyID = typeof ptyIdSchema.Type
 

+ 2 - 5
packages/opencode/src/question/schema.ts

@@ -1,13 +1,10 @@
 import { Schema } from "effect"
 
 import { Identifier } from "@/id/id"
-import { zod, ZodOverride } from "@opencode-ai/core/effect-zod"
+import { zod } from "@opencode-ai/core/effect-zod"
 import { Newtype } from "@opencode-ai/core/schema"
 
-export class QuestionID extends Newtype<QuestionID>()(
-  "QuestionID",
-  Schema.String.check(Schema.isStartsWith("que")).annotate({ [ZodOverride]: Identifier.schema("question") }),
-) {
+export class QuestionID extends Newtype<QuestionID>()("QuestionID", Schema.String.check(Schema.isStartsWith("que"))) {
   static ascending(id?: string): QuestionID {
     return this.make(Identifier.ascending("question", id))
   }

+ 22 - 34
packages/opencode/src/session/schema.ts

@@ -1,47 +1,35 @@
 import { Schema } from "effect"
 
 import { Identifier } from "@/id/id"
-import { zod, ZodOverride } from "@opencode-ai/core/effect-zod"
+import { zod } from "@opencode-ai/core/effect-zod"
 import { withStatics } from "@opencode-ai/core/schema"
 
-export const SessionID = Schema.String.check(Schema.isStartsWith("ses"))
-  .annotate({
-    [ZodOverride]: Identifier.schema("session"),
-  })
-  .pipe(
-    Schema.brand("SessionID"),
-    withStatics((s) => ({
-      descending: (id?: string) => s.make(Identifier.descending("session", id)),
-      zod: zod(s),
-    })),
-  )
+export const SessionID = Schema.String.check(Schema.isStartsWith("ses")).pipe(
+  Schema.brand("SessionID"),
+  withStatics((s) => ({
+    descending: (id?: string) => s.make(Identifier.descending("session", id)),
+    zod: zod(s),
+  })),
+)
 
 export type SessionID = Schema.Schema.Type<typeof SessionID>
 
-export const MessageID = Schema.String.check(Schema.isStartsWith("msg"))
-  .annotate({
-    [ZodOverride]: Identifier.schema("message"),
-  })
-  .pipe(
-    Schema.brand("MessageID"),
-    withStatics((s) => ({
-      ascending: (id?: string) => s.make(Identifier.ascending("message", id)),
-      zod: zod(s),
-    })),
-  )
+export const MessageID = Schema.String.check(Schema.isStartsWith("msg")).pipe(
+  Schema.brand("MessageID"),
+  withStatics((s) => ({
+    ascending: (id?: string) => s.make(Identifier.ascending("message", id)),
+    zod: zod(s),
+  })),
+)
 
 export type MessageID = Schema.Schema.Type<typeof MessageID>
 
-export const PartID = Schema.String.check(Schema.isStartsWith("prt"))
-  .annotate({
-    [ZodOverride]: Identifier.schema("part"),
-  })
-  .pipe(
-    Schema.brand("PartID"),
-    withStatics((s) => ({
-      ascending: (id?: string) => s.make(Identifier.ascending("part", id)),
-      zod: zod(s),
-    })),
-  )
+export const PartID = Schema.String.check(Schema.isStartsWith("prt")).pipe(
+  Schema.brand("PartID"),
+  withStatics((s) => ({
+    ascending: (id?: string) => s.make(Identifier.ascending("part", id)),
+    zod: zod(s),
+  })),
+)
 
 export type PartID = Schema.Schema.Type<typeof PartID>

+ 2 - 2
packages/opencode/src/sync/schema.ts

@@ -1,10 +1,10 @@
 import { Schema } from "effect"
 
 import { Identifier } from "@/id/id"
-import { zod, ZodOverride } from "@opencode-ai/core/effect-zod"
+import { zod } from "@opencode-ai/core/effect-zod"
 import { withStatics } from "@opencode-ai/core/schema"
 
-export const EventID = Schema.String.annotate({ [ZodOverride]: Identifier.schema("event") }).pipe(
+export const EventID = Schema.String.check(Schema.isStartsWith("evt")).pipe(
   Schema.brand("EventID"),
   withStatics((s) => ({
     ascending: (id?: string) => s.make(Identifier.ascending("event", id)),

+ 2 - 2
packages/opencode/src/tool/schema.ts

@@ -1,10 +1,10 @@
 import { Schema } from "effect"
 
 import { Identifier } from "@/id/id"
-import { zod, ZodOverride } from "@opencode-ai/core/effect-zod"
+import { zod } from "@opencode-ai/core/effect-zod"
 import { withStatics } from "@opencode-ai/core/schema"
 
-const toolIdSchema = Schema.String.annotate({ [ZodOverride]: Identifier.schema("tool") }).pipe(Schema.brand("ToolID"))
+const toolIdSchema = Schema.String.check(Schema.isStartsWith("tool")).pipe(Schema.brand("ToolID"))
 
 export type ToolID = typeof toolIdSchema.Type