* fix(tlon): Fix Zod v4 record() and @urbit/aura v3 API changes
- Fix Zod v4.3.6 bug: single-arg z.record() fails with toJSONSchema()
- Use two-arg form: z.record(z.string(), schema)
- Fixes 'Cannot read properties of undefined (reading _zod)' error
- Fix @urbit/aura v3.0.0 API migration:
- unixToDa() → da.fromUnix()
- formatUd() → scot('ud', ...)
- Fixes '(0 , _aura.unixToDa) is not a function' error
These were blocking Tlon plugin loading and outbound messaging.
* fix: add tlon schema/aura tests (#1631) (thanks @arthyn)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
import { z } from "zod";
|
|
import { buildChannelConfigSchema } from "clawdbot/plugin-sdk";
|
|
|
|
const ShipSchema = z.string().min(1);
|
|
const ChannelNestSchema = z.string().min(1);
|
|
|
|
export const TlonChannelRuleSchema = z.object({
|
|
mode: z.enum(["restricted", "open"]).optional(),
|
|
allowedShips: z.array(ShipSchema).optional(),
|
|
});
|
|
|
|
export const TlonAuthorizationSchema = z.object({
|
|
channelRules: z.record(z.string(), TlonChannelRuleSchema).optional(),
|
|
});
|
|
|
|
export const TlonAccountSchema = z.object({
|
|
name: z.string().optional(),
|
|
enabled: z.boolean().optional(),
|
|
ship: ShipSchema.optional(),
|
|
url: z.string().optional(),
|
|
code: z.string().optional(),
|
|
groupChannels: z.array(ChannelNestSchema).optional(),
|
|
dmAllowlist: z.array(ShipSchema).optional(),
|
|
autoDiscoverChannels: z.boolean().optional(),
|
|
showModelSignature: z.boolean().optional(),
|
|
});
|
|
|
|
export const TlonConfigSchema = z.object({
|
|
name: z.string().optional(),
|
|
enabled: z.boolean().optional(),
|
|
ship: ShipSchema.optional(),
|
|
url: z.string().optional(),
|
|
code: z.string().optional(),
|
|
groupChannels: z.array(ChannelNestSchema).optional(),
|
|
dmAllowlist: z.array(ShipSchema).optional(),
|
|
autoDiscoverChannels: z.boolean().optional(),
|
|
showModelSignature: z.boolean().optional(),
|
|
authorization: TlonAuthorizationSchema.optional(),
|
|
defaultAuthorizedShips: z.array(ShipSchema).optional(),
|
|
accounts: z.record(z.string(), TlonAccountSchema).optional(),
|
|
});
|
|
|
|
export const tlonChannelConfigSchema = buildChannelConfigSchema(TlonConfigSchema);
|