SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
4e23b01 verified
Raw History Blame Contribute Delete
1.43 kB
/**
* `configService` — layered global config service. Mirrors
* `agent-core-v2/app/config/config.ts`.
*/
import { z } from 'zod';
import { noResult } from '../helpers.js';
import type { ServiceContract } from '../types.js';
export const configTargetSchema = z.enum(['user', 'memory']);
export const configInspectValueSchema = z.object({
value: z.unknown().optional(),
defaultValue: z.unknown().optional(),
userValue: z.unknown().optional(),
memoryValue: z.unknown().optional(),
});
export const configDiagnosticSchema = z.object({
domain: z.string().optional(),
severity: z.enum(['warning', 'error']),
message: z.string(),
});
export const configContract = {
get: { input: z.tuple([z.string()]), output: z.unknown() },
inspect: { input: z.tuple([z.string()]), output: configInspectValueSchema },
getAll: { input: z.tuple([]), output: z.record(z.string(), z.unknown()) },
set: {
input: z.tuple([z.string(), z.unknown(), configTargetSchema.optional()]),
output: noResult,
},
replace: {
input: z.tuple([z.string(), z.unknown(), configTargetSchema.optional()]),
output: noResult,
},
replaceSections: {
input: z.tuple([z.record(z.string(), z.unknown()), configTargetSchema.optional()]),
output: noResult,
},
reload: { input: z.tuple([]), output: noResult },
diagnostics: { input: z.tuple([]), output: z.array(configDiagnosticSchema) },
} satisfies ServiceContract;