IFClite TypeScript API
    Preparing search index...

    Interface ActionParams

    Per-intent parameter schemas. Each is a small, content-free metadata shape — counts, schema names, format labels. The miner uses these for sub-pattern discrimination (e.g. "CSV export" vs "JSON export").

    The keys are deliberately enumerated. If a parameter could carry user content (file names, property values, etc.) it does NOT belong here — keep the no-content rule (§06 §7).

    interface ActionParams {
        "chat.message": { intent: "query" | "fork" | "authoring" | "one-shot" };
        "export.run": { entityCount?: number; format: string };
        "extension.disable": { id: string };
        "extension.enable": { id: string };
        "extension.install": { id: string };
        "extension.uninstall": { id: string };
        "flavor.activate": { id: string };
        "flavor.export": Record<string, never>;
        "flavor.import": Record<string, never>;
        "lens.apply": { id?: string };
        "lens.clear": Record<string, never>;
        "model.load": { entityCount?: number; schema?: string; sizeBytes?: number };
        "model.unload": Record<string, never>;
        "query.run": { resultCount?: number; type?: string };
        "script.execute": { durationMs?: number; templateId?: string };
        "section.apply": Record<string, never>;
        "selection.change": { count: number };
        "view.change": { mode?: "2d" | "3d" };
    }
    Index
    "chat.message": { intent: "query" | "fork" | "authoring" | "one-shot" }
    "export.run": { entityCount?: number; format: string }
    "extension.disable": { id: string }
    "extension.enable": { id: string }
    "extension.install": { id: string }
    "extension.uninstall": { id: string }
    "flavor.activate": { id: string }
    "flavor.export": Record<string, never>
    "flavor.import": Record<string, never>
    "lens.apply": { id?: string }
    "lens.clear": Record<string, never>
    "model.load": { entityCount?: number; schema?: string; sizeBytes?: number }
    "model.unload": Record<string, never>
    "query.run": { resultCount?: number; type?: string }
    "script.execute": { durationMs?: number; templateId?: string }
    "section.apply": Record<string, never>
    "selection.change": { count: number }
    "view.change": { mode?: "2d" | "3d" }