import { z } from "zod";
import { obsidianPropertyOutputSchema } from "../generate_property/params.js";
// input properties
const sourcePath = z
.string()
.describe(
'The path to the source markdown file to read and analyze (e.g., "draft/my-article.md")',
);
const outputPath = z
.string()
.optional()
.describe(
"The path where the processed file with properties will be saved. If not provided, the source file will be updated in place.",
);
const overwrite = z
.boolean()
.default(false)
.describe(
"If set to true, existing properties will be overwritten by the AI-generated content. Default: false.",
);
const aiGeneratedProperties = obsidianPropertyOutputSchema
.optional()
.describe(
"AI-generated properties based on content analysis. If provided, these will be used instead of internal analysis.",
);
const quiet = z
.boolean()
.optional()
.default(false)
.describe(
"If true, the final write operation will return a minimal success message.",
);
// input schema
export const createDocumentWithPropertiesParamsSchema = z
.object({
sourcePath: sourcePath,
outputPath: outputPath,
overwrite: overwrite.optional(),
aiGeneratedProperties: aiGeneratedProperties.optional(),
quiet: quiet,
})
.describe(
"Parameters for creating or updating a document with automatically generated properties",
);
export type CreateDocumentWithPropertiesParams = z.infer<
typeof createDocumentWithPropertiesParamsSchema
>;