createSummaryView cria uma visualização resumida dos arquivos
(files []utils.FileInfo)
| 153 | |
| 154 | // createSummaryView cria uma visualização resumida dos arquivos |
| 155 | func (p *Processor) createSummaryView(files []utils.FileInfo) []utils.FileInfo { |
| 156 | summaryFiles := make([]utils.FileInfo, len(files)) |
| 157 | |
| 158 | for i, file := range files { |
| 159 | // Para summary, manter apenas metadados e primeiras linhas |
| 160 | const maxPreviewLines = 10 |
| 161 | const maxPreviewChars = 500 |
| 162 | |
| 163 | lines := strings.Split(file.Content, "\n") |
| 164 | preview := "" |
| 165 | |
| 166 | if len(lines) > maxPreviewLines { |
| 167 | preview = strings.Join(lines[:maxPreviewLines], "\n") |
| 168 | preview += fmt.Sprintf("\n... (%d linhas omitidas) ...", len(lines)-maxPreviewLines) |
| 169 | } else { |
| 170 | preview = file.Content |
| 171 | } |
| 172 | |
| 173 | if len(preview) > maxPreviewChars { |
| 174 | preview = preview[:maxPreviewChars] + "..." |
| 175 | } |
| 176 | |
| 177 | summaryFiles[i] = utils.FileInfo{ |
| 178 | Path: file.Path, |
| 179 | Content: preview, |
| 180 | Size: file.Size, |
| 181 | Type: file.Type, |
| 182 | } |
| 183 | } |
| 184 | |
| 185 | p.logger.Debug("Visualização de summary criada", |
| 186 | zap.Int("files", len(summaryFiles))) |
| 187 | |
| 188 | return summaryFiles |
| 189 | } |
| 190 | |
| 191 | // EstimateTokenCount estima o número de tokens em um conjunto de arquivos |
| 192 | func (p *Processor) EstimateTokenCount(files []utils.FileInfo) int { |
no outgoing calls