SPB Git

spb/poche Public

Agent personnel 100 % on-device — SwiftUI + Apple Foundation Models + EventKit + SwiftData. Aucune API, aucun serveur.

Swift 100%
1.0 KB · 36 lines swift
Raw Blame History
1//2//  ToolInput.swift3//  Poche4//5//  Author:  Simon-Pierre Boucher6//  Contact: contact@spboucher.ai7//89import Foundation1011/// Shared sanitation for model-provided tool arguments. Model output is12/// hostile input: trim it, cap it, never let it balloon the store or the13/// confirmation card.14enum ToolInput {15    static let maxTitleLength = 8016    static let maxBodyLength = 20001718    /// Trimmed, capped title — nil when effectively empty.19    static func title(_ raw: String) -> String? {20        let trimmed = raw.trimmingCharacters(in: .whitespacesAndNewlines)21        guard !trimmed.isEmpty else { return nil }22        return String(trimmed.prefix(maxTitleLength))23    }2425    static func body(_ raw: String) -> String? {26        let trimmed = raw.trimmingCharacters(in: .whitespacesAndNewlines)27        guard !trimmed.isEmpty else { return nil }28        return String(trimmed.prefix(maxBodyLength))29    }3031    static func optionalText(_ raw: String?) -> String? {32        guard let raw else { return nil }33        return title(raw)34    }35}36