mindnet_obsidian/src/settings.ts

46 lines
1.7 KiB
TypeScript
Raw Normal View History

export interface MindnetSettings {
edgeVocabularyPath: string; // vault-relativ
graphSchemaPath: string; // vault-relativ (später)
maxHops: number;
strictMode: boolean;
showCanonicalHints: boolean;
chainDirection: "forward" | "backward" | "both";
interviewConfigPath: string; // vault-relativ
autoStartInterviewOnCreate: boolean;
interceptUnresolvedLinkClicks: boolean;
// Semantic mapping builder settings
mappingWrapperCalloutType: string; // default: "abstract"
mappingWrapperTitle: string; // default: "🕸️ Semantic Mapping"
mappingWrapperFolded: boolean; // default: true
defaultEdgeType: string; // default: ""
unassignedHandling: "prompt" | "none" | "defaultType" | "advisor"; // default: "prompt"
allowOverwriteExistingMappings: boolean; // default: false
2026-01-17 08:01:04 +01:00
defaultNotesFolder: string; // default: "" (vault root)
}
export const DEFAULT_SETTINGS: MindnetSettings = {
edgeVocabularyPath: "_system/dictionary/edge_vocabulary.md",
graphSchemaPath: "_system/dictionary/graph_schema.md",
maxHops: 3,
strictMode: false,
showCanonicalHints: false,
chainDirection: "forward",
interviewConfigPath: "_system/dictionary/interview_config.yaml",
autoStartInterviewOnCreate: false,
interceptUnresolvedLinkClicks: true,
mappingWrapperCalloutType: "abstract",
mappingWrapperTitle: "🕸️ Semantic Mapping",
mappingWrapperFolded: true,
defaultEdgeType: "",
unassignedHandling: "prompt",
allowOverwriteExistingMappings: false,
2026-01-17 08:01:04 +01:00
defaultNotesFolder: "",
};
/**
* Optional helper: normalize to Obsidian vault paths (forward slashes).
*/
export function normalizeVaultPath(p: string): string {
return (p || "").trim().replace(/\\/g, "/");
}