{
  "name": "ForgeEmbed",
  "language": "swift",
  "version": "Swift package source snapshot",
  "description": "Swift ForgeEmbed library product.",
  "manifest": "forge-swift/Package.swift",
  "manifestSha256": "8579cd038904d9101db7b7714fa006f94144a6f951c0535512114bb00d4a3128",
  "status": "source-reference",
  "registryPublicationVerified": false,
  "route": "/libraries/swift/ForgeEmbed",
  "features": {},
  "files": [
    {
      "path": "forge-swift/Sources/ForgeEmbed/Chunking.swift",
      "sha256": "07f055e6dc3e3a0fcd302f67ca322d2486f9760416a9c548498d6cc16650b273",
      "artifactSha256": "5b257bb73b6e1069a9a1616cdcf3d8bce2084340412f0826bacb435e3cbf5015",
      "url": "/reference/source/forge-swift/Sources/ForgeEmbed/Chunking.swift.txt",
      "declarations": [
        {
          "name": "public struct TextChunk: Sendable",
          "line": 11,
          "signature": "public struct TextChunk: Sendable",
          "documentation": ""
        },
        {
          "name": "public let content: String",
          "line": 13,
          "signature": "public let content: String\n/// The zero-based index of this chunk.\npublic let index: Int\n/// The character offset in the original text.\npublic let offset: Int\n\npublic init(content: String, index: Int, offset: Int)",
          "documentation": ""
        },
        {
          "name": "public let index: Int",
          "line": 15,
          "signature": "public let index: Int\n/// The character offset in the original text.\npublic let offset: Int\n\npublic init(content: String, index: Int, offset: Int)",
          "documentation": ""
        },
        {
          "name": "public let offset: Int",
          "line": 17,
          "signature": "public let offset: Int\n\npublic init(content: String, index: Int, offset: Int)",
          "documentation": ""
        },
        {
          "name": "public init(content: String, index: Int, offset: Int)",
          "line": 19,
          "signature": "public init(content: String, index: Int, offset: Int)",
          "documentation": ""
        },
        {
          "name": "public protocol ChunkingStrategy: Sendable",
          "line": 27,
          "signature": "public protocol ChunkingStrategy: Sendable",
          "documentation": ""
        },
        {
          "name": "public struct FixedSizeChunker: ChunkingStrategy, Sendable",
          "line": 36,
          "signature": "public struct FixedSizeChunker: ChunkingStrategy, Sendable",
          "documentation": ""
        },
        {
          "name": "public let chunkSize: Int",
          "line": 38,
          "signature": "public let chunkSize: Int\n/// The number of characters to overlap between adjacent chunks.\npublic let overlap: Int\n\n/// Creates a fixed-size chunker.\n///\n/// - Parameters:\n///   - chunkSize: Maximum characters per chunk.\n///   - overlap: Character overlap between chunks.\npublic init(chunkSize: Int;",
          "documentation": ""
        },
        {
          "name": "public let overlap: Int",
          "line": 40,
          "signature": "public let overlap: Int\n\n/// Creates a fixed-size chunker.\n///\n/// - Parameters:\n///   - chunkSize: Maximum characters per chunk.\n///   - overlap: Character overlap between chunks.\npublic init(chunkSize: Int;",
          "documentation": ""
        },
        {
          "name": "public init(chunkSize: Int;",
          "line": 47,
          "signature": "public init(chunkSize: Int;",
          "documentation": ""
        },
        {
          "name": "public func chunk(_ text: String) -> [TextChunk]",
          "line": 52,
          "signature": "public func chunk(_ text: String) -> [TextChunk]",
          "documentation": ""
        },
        {
          "name": "public struct ParagraphChunker: ChunkingStrategy, Sendable",
          "line": 78,
          "signature": "public struct ParagraphChunker: ChunkingStrategy, Sendable",
          "documentation": ""
        },
        {
          "name": "public let maxChunkSize: Int",
          "line": 80,
          "signature": "public let maxChunkSize: Int\n\n/// Creates a paragraph chunker.\n///\n/// - Parameter maxChunkSize: Maximum characters per chunk.\npublic init(maxChunkSize: Int;",
          "documentation": ""
        },
        {
          "name": "public init(maxChunkSize: Int;",
          "line": 85,
          "signature": "public init(maxChunkSize: Int;",
          "documentation": ""
        },
        {
          "name": "public func chunk(_ text: String) -> [TextChunk]",
          "line": 89,
          "signature": "public func chunk(_ text: String) -> [TextChunk]",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-swift/Sources/ForgeEmbed/Provider.swift",
      "sha256": "43abe80d63c8dde6689e710a3909ae310ef10af3bdf20a0e04a1e14d1217e1ab",
      "artifactSha256": "37dc8118487410603648cf064d0f520bffe56bf1a03469b59d6fa77f1be9e45c",
      "url": "/reference/source/forge-swift/Sources/ForgeEmbed/Provider.swift.txt",
      "declarations": [
        {
          "name": "public struct EmbeddingResult: Sendable",
          "line": 12,
          "signature": "public struct EmbeddingResult: Sendable",
          "documentation": ""
        },
        {
          "name": "public let embedding: [Float]",
          "line": 14,
          "signature": "public let embedding: [Float]\n/// The input text that was embedded.\npublic let input: String\n/// Token usage for this embedding call.\npublic let usage: Usage\n\npublic init(embedding: [Float], input: String, usage: Usage)",
          "documentation": ""
        },
        {
          "name": "public let input: String",
          "line": 16,
          "signature": "public let input: String\n/// Token usage for this embedding call.\npublic let usage: Usage\n\npublic init(embedding: [Float], input: String, usage: Usage)",
          "documentation": ""
        },
        {
          "name": "public let usage: Usage",
          "line": 18,
          "signature": "public let usage: Usage\n\npublic init(embedding: [Float], input: String, usage: Usage)",
          "documentation": ""
        },
        {
          "name": "public init(embedding: [Float], input: String, usage: Usage)",
          "line": 20,
          "signature": "public init(embedding: [Float], input: String, usage: Usage)",
          "documentation": ""
        },
        {
          "name": "public protocol EmbeddingProvider: Sendable",
          "line": 31,
          "signature": "public protocol EmbeddingProvider: Sendable",
          "documentation": ""
        },
        {
          "name": "public func embedBatch(texts: [String], options: EmbedOptions) async throws -> [EmbeddingResult]",
          "line": 62,
          "signature": "public func embedBatch(texts: [String], options: EmbedOptions) async throws -> [EmbeddingResult]",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-swift/Sources/ForgeEmbed/Similarity.swift",
      "sha256": "2b537c18e1d0b409f04e811c1092f23075f4d3ce894bc81ba780416f03e12ca8",
      "artifactSha256": "7b174b05ead579625a0038d8932bc79b8f1da6d452048391ab14ef96c46917cc",
      "url": "/reference/source/forge-swift/Sources/ForgeEmbed/Similarity.swift.txt",
      "declarations": [
        {
          "name": "public enum DistanceMetric: String, Codable, Sendable",
          "line": 11,
          "signature": "public enum DistanceMetric: String, Codable, Sendable",
          "documentation": ""
        },
        {
          "name": "public func computeSimilarity(",
          "line": 29,
          "signature": "public func computeSimilarity(\n_ a: [Float],\n_ b: [Float],\nmetric: DistanceMetric\n) -> Float",
          "documentation": ""
        },
        {
          "name": "public func cosineSimilarity(_ a: [Float], _ b: [Float]) -> Float",
          "line": 49,
          "signature": "public func cosineSimilarity(_ a: [Float], _ b: [Float]) -> Float",
          "documentation": ""
        },
        {
          "name": "public func euclideanDistance(_ a: [Float], _ b: [Float]) -> Float",
          "line": 60,
          "signature": "public func euclideanDistance(_ a: [Float], _ b: [Float]) -> Float",
          "documentation": ""
        },
        {
          "name": "public func dotProduct(_ a: [Float], _ b: [Float]) -> Float",
          "line": 72,
          "signature": "public func dotProduct(_ a: [Float], _ b: [Float]) -> Float",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-swift/Sources/ForgeEmbed/VectorStore.swift",
      "sha256": "997144a27ae045a83b4c30de42b686cdda9d9008d432ee64fa489bbb81057b15",
      "artifactSha256": "7fecaa553a2ab0629930ae70a7b7710972a961f4f6c4de9422092c2e69a43a98",
      "url": "/reference/source/forge-swift/Sources/ForgeEmbed/VectorStore.swift.txt",
      "declarations": [
        {
          "name": "public struct VectorDocument: Sendable",
          "line": 13,
          "signature": "public struct VectorDocument: Sendable",
          "documentation": ""
        },
        {
          "name": "public let id: String",
          "line": 15,
          "signature": "public let id: String\n/// The original text content.\npublic let content: String\n/// The embedding vector.\npublic let embedding: [Float]\n/// Optional metadata.\npublic let metadata: [String: JSONValue]\n\npublic init(id: String, content: String, embedding: [Float], metadata: [String: JSONValue];",
          "documentation": ""
        },
        {
          "name": "public let content: String",
          "line": 17,
          "signature": "public let content: String\n/// The embedding vector.\npublic let embedding: [Float]\n/// Optional metadata.\npublic let metadata: [String: JSONValue]\n\npublic init(id: String, content: String, embedding: [Float], metadata: [String: JSONValue];",
          "documentation": ""
        },
        {
          "name": "public let embedding: [Float]",
          "line": 19,
          "signature": "public let embedding: [Float]\n/// Optional metadata.\npublic let metadata: [String: JSONValue]\n\npublic init(id: String, content: String, embedding: [Float], metadata: [String: JSONValue];",
          "documentation": ""
        },
        {
          "name": "public let metadata: [String: JSONValue]",
          "line": 21,
          "signature": "public let metadata: [String: JSONValue]\n\npublic init(id: String, content: String, embedding: [Float], metadata: [String: JSONValue];",
          "documentation": ""
        },
        {
          "name": "public init(id: String, content: String, embedding: [Float], metadata: [String: JSONValue];",
          "line": 23,
          "signature": "public init(id: String, content: String, embedding: [Float], metadata: [String: JSONValue];",
          "documentation": ""
        },
        {
          "name": "public struct SearchResult: Sendable",
          "line": 32,
          "signature": "public struct SearchResult: Sendable",
          "documentation": ""
        },
        {
          "name": "public let document: VectorDocument",
          "line": 34,
          "signature": "public let document: VectorDocument\n/// The similarity score.\npublic let score: Float\n\npublic init(document: VectorDocument, score: Float)",
          "documentation": ""
        },
        {
          "name": "public let score: Float",
          "line": 36,
          "signature": "public let score: Float\n\npublic init(document: VectorDocument, score: Float)",
          "documentation": ""
        },
        {
          "name": "public init(document: VectorDocument, score: Float)",
          "line": 38,
          "signature": "public init(document: VectorDocument, score: Float)",
          "documentation": ""
        },
        {
          "name": "public final class InMemoryVectorStore: @unchecked Sendable",
          "line": 49,
          "signature": "public final class InMemoryVectorStore: @unchecked Sendable",
          "documentation": ""
        },
        {
          "name": "public init(metric: DistanceMetric;",
          "line": 57,
          "signature": "public init(metric: DistanceMetric;",
          "documentation": ""
        },
        {
          "name": "public func add(_ document: VectorDocument)",
          "line": 64,
          "signature": "public func add(_ document: VectorDocument)",
          "documentation": ""
        },
        {
          "name": "public func addBatch(_ documents: [VectorDocument])",
          "line": 73,
          "signature": "public func addBatch(_ documents: [VectorDocument])",
          "documentation": ""
        },
        {
          "name": "public func search(query: [Float], topK: Int;",
          "line": 88,
          "signature": "public func search(query: [Float], topK: Int;",
          "documentation": ""
        },
        {
          "name": "public func remove(_ id: String) -> VectorDocument?",
          "line": 124,
          "signature": "public func remove(_ id: String) -> VectorDocument?",
          "documentation": ""
        },
        {
          "name": "public var count: Int",
          "line": 131,
          "signature": "public var count: Int",
          "documentation": ""
        }
      ]
    }
  ]
}
