Variable configObjectSchemaConst
configObjectSchema: ZodObject<
{
$schema: ZodOptional<ZodString>;
instance: ZodObject<{ baseDir: ZodString; name: ZodString }, $strip>;
integrations: ZodDefault<
ZodObject<
{
gh: ZodDefault<
ZodObject<
{
account: ZodOptional<ZodString>;
bin: ZodOptional<ZodString>;
botUser: ZodOptional<ZodString>;
configDir: ZodOptional<ZodString>;
},
$strip,
>,
>;
gog: ZodDefault<ZodObject<{ bin: ZodOptional<ZodString> }, $strip>>;
jira: ZodDefault<
ZodObject<
{
apiTokenPath: ZodOptional<ZodString>;
boardId: ZodOptional<ZodNumber>;
email: ZodOptional<ZodString>;
fieldsFilename: ZodOptional<ZodString>;
maxHistory: ZodOptional<ZodNumber>;
siteUrl: ZodOptional<ZodString>;
},
$strip,
>,
>;
linear: ZodDefault<
ZodObject<
{
configPath: ZodOptional<ZodString>;
maxHistory: ZodOptional<ZodNumber>;
},
$strip,
>,
>;
notion: ZodDefault<
ZodObject<{ version: ZodOptional<ZodString> }, $strip>,
>;
qdrant: ZodDefault<
ZodObject<
{
apiUrl: ZodOptional<ZodString>;
serviceName: ZodOptional<ZodString>;
},
$strip,
>,
>;
x: ZodDefault<
ZodObject<
{
accounts: ZodDefault<
ZodRecord<ZodString, ZodObject<(...), (...)>>,
>;
},
$strip,
>,
>;
},
$strip,
>,
>;
jobs: ZodDefault<
ZodRecord<
ZodString,
ZodObject<
{
account: ZodOptional<ZodString>;
args: ZodOptional<ZodArray<ZodString>>;
contextThreshold: ZodOptional<ZodNumber>;
enabled: ZodOptional<ZodBoolean>;
env: ZodOptional<ZodRecord<ZodString, ZodString>>;
excludedKeys: ZodOptional<ZodArray<ZodString>>;
extraDirs: ZodOptional<ZodArray<ZodString>>;
files: ZodOptional<
ZodArray<
ZodObject<{ source: ZodString; target: ZodString }, $strip>,
>,
>;
idleMinutes: ZodOptional<ZodNumber>;
on_failure: ZodOptional<ZodNullable<ZodString>>;
owners: ZodOptional<
ZodArray<
ZodObject<
{
exclude: ZodOptional<(...)>;
include: ZodOptional<(...)>;
owner: ZodString;
ruleset: ZodOptional<(...)>;
type: ZodEnum<(...)>;
},
$strip,
>,
>,
>;
ruleset: ZodOptional<
ZodObject<
{
enforcement: ZodString;
name: ZodString;
rules: ZodArray<ZodObject<(...), (...)>>;
target: ZodString;
},
$loose,
>,
>;
schedule: ZodOptional<
ZodUnion<readonly [ZodString, ZodRecord<ZodString, ZodUnknown>]>,
>;
silo: ZodOptional<ZodString>;
taskFile: ZodOptional<ZodString>;
timeout_seconds: ZodOptional<ZodNumber>;
},
$strip,
>,
>,
>;
library: ZodDefault<
ZodObject<
{
mirrors: ZodDefault<
ZodArray<
ZodObject<
{
adopt: ZodDefault<ZodBoolean>;
dest: ZodString;
exclude: ZodDefault<ZodArray<(...)>>;
id: ZodString;
minRatio: ZodDefault<ZodNumber>;
ref: ZodDefault<ZodString>;
repo: ZodString;
siteLinks: ZodOptional<ZodObject<(...), (...)>>;
subdir: ZodDefault<ZodString>;
},
$strip,
>,
>,
>;
},
$strip,
>,
>;
local: ZodOptional<ZodUnknown>;
paths: ZodDefault<
ZodObject<
{
configDir: ZodOptional<ZodString>;
contentDir: ZodOptional<ZodString>;
credentialsDir: ZodOptional<ZodString>;
gogHome: ZodOptional<ZodString>;
scriptsDir: ZodOptional<ZodString>;
stateDir: ZodOptional<ZodString>;
tokenMetricsDir: ZodOptional<ZodString>;
},
$strip,
>,
>;
people: ZodDefault<
ZodRecord<
ZodString,
ZodObject<
{
accounts: ZodOptional<
ZodArray<
ZodObject<
{ account: ZodString; channel: ZodString; id: ZodString },
$strict,
>,
>,
>;
emails: ZodOptional<ZodArray<ZodEmail>>;
name: ZodString;
},
$strict,
>,
>,
>;
pipeline: ZodOptional<
ZodObject<
{
accounts: ZodArray<
ZodObject<
{
calendar: ZodOptional<ZodUnion<readonly [(...), (...)]>>;
email: ZodString;
emailPolling: ZodBoolean;
folders: ZodOptional<ZodArray<ZodString>>;
imap: ZodOptional<
ZodObject<
{ host: ...; password: ...; port: ...; tls: ...; user: ... },
$strip,
>,
>;
reportOnly: ZodOptional<ZodBoolean>;
type: ZodEnum<{ gmail: "gmail"; imap: "imap" }>;
},
$strip,
>,
>;
buckets: ZodObject<
{
domains: ZodArray<
ZodObject<{ bucket: ZodString; pattern: ZodString }, $strip>,
>;
priority: ZodArray<ZodString>;
},
$strip,
>;
emailConfig: ZodObject<
{
backfill: ZodOptional<
ZodObject<
{
accounts: ZodArray<(...)>;
lookbackDays: ZodNumber;
windowDays: ZodNumber;
},
$strip,
>,
>;
digest: ZodObject<{ slackChannelId: ZodString }, $strip>;
meetings: ZodOptional<ZodObject<{ archive: ZodBoolean }, $strip>>;
reportOnly: ZodBoolean;
respond: ZodOptional<
ZodObject<
{
allowedSenders: ZodArray<(...)>;
dryRun: ZodOptional<(...)>;
label: ZodDefault<(...)>;
mailbox: ZodString;
maxPerRun: ZodDefault<(...)>;
maxRepliesPerThreadPerHour: ZodDefault<(...)>;
slackMirror: ZodDefault<(...)>;
},
$strict,
>,
>;
},
$strip,
>;
googleDrive: ZodOptional<ZodUnknown>;
refs: ZodRecord<ZodString, ZodString>;
},
$strip,
>,
>;
punchList: ZodOptional<
ZodObject<
{
cursorFile: ZodOptional<ZodString>;
dir: ZodString;
inboxDir: ZodOptional<ZodString>;
inputRoots: ZodOptional<ZodArray<ZodString>>;
installMap: ZodDefault<
ZodRecord<
ZodString,
ZodArray<
ZodObject<
{ component: ZodString; packageJson: ZodString },
$strip,
>,
>,
>,
>;
lockFile: ZodOptional<ZodString>;
pendingFile: ZodOptional<ZodString>;
retentionDays: ZodDefault<ZodNumber>;
scriptsRepo: ZodObject<{ clone: ZodString; repo: ZodString }, $strip>;
slack: ZodObject<
{
account: ZodDefault<ZodString>;
channel: ZodString;
pinnedTs: ZodOptional<ZodString>;
},
$strip,
>;
specPath: ZodOptional<ZodString>;
timeZone: ZodString;
},
$strip,
>,
>;
siloRouting: ZodDefault<
ZodObject<
{
defaultBasePath: ZodOptional<ZodString>;
silos: ZodDefault<
ZodRecord<
ZodString,
ZodObject<
{
basePath: ZodString;
emailDomains: ZodOptional<ZodArray<(...)>>;
githubOrgs: ZodOptional<ZodArray<(...)>>;
jira: ZodOptional<ZodBoolean>;
linear: ZodOptional<ZodBoolean>;
slackWorkspaces: ZodOptional<ZodArray<(...)>>;
},
$strip,
>,
>,
>;
},
$strip,
>,
>;
skillReview: ZodOptional<
ZodObject<
{
budgetAlertPercent: ZodDefault<ZodNumber>;
outputDir: ZodOptional<ZodString>;
reportAccount: ZodDefault<ZodString>;
reportChannel: ZodString;
serverKey: ZodString;
timezone: ZodString;
},
$strict,
>,
>;
slack: ZodDefault<
ZodObject<
{
backfillBudgetSeconds: ZodDefault<ZodNumber>;
channelMeta: ZodOptional<
ZodObject<
{
activityDays: ZodDefault<ZodNumber>;
descriptionMaxChars: ZodDefault<ZodNumber>;
excludeChannels: ZodDefault<ZodArray<ZodString>>;
maxChannels: ZodDefault<ZodNumber>;
outputDir: ZodOptional<ZodString>;
pathRoots: ZodDefault<ZodRecord<ZodString, ZodString>>;
relativeRoot: ZodOptional<ZodString>;
reportAccount: ZodOptional<ZodString>;
reportChannel: ZodOptional<ZodString>;
reportTextAccounts: ZodOptional<ZodArray<ZodString>>;
serverKey: ZodString;
sweepPatterns: ZodDefault<ZodArray<ZodString>>;
timezone: ZodString;
topicMaxChars: ZodDefault<ZodNumber>;
updateDescriptions: ZodDefault<ZodBoolean>;
updateTopics: ZodDefault<ZodBoolean>;
},
$strict,
>,
>;
channels: ZodDefault<
ZodRecord<
ZodString,
ZodObject<
{
homeDir: ZodOptional<ZodString>;
project: ZodOptional<ZodString>;
},
$strict,
>,
>,
>;
newChannelLookbackDays: ZodOptional<ZodNumber>;
},
$strip,
>,
>;
transcripts: ZodOptional<
ZodObject<
{
libraryDir: ZodOptional<ZodString>;
scratchDir: ZodOptional<ZodString>;
userAgent: ZodOptional<ZodString>;
},
$strip,
>,
>;
},
$strip,
> = ...
The plain config shape, with no secret-literal scan. Exported separately so JSON Schema generation (
config/json-schema.ts) has a concrete object schema to introspect; use configSchema to validate.