From 0c8aab501c09a1ec300d127f695e74430b03da10 Mon Sep 17 00:00:00 2001 From: cte Date: Tue, 22 Apr 2025 21:26:10 -0700 Subject: [PATCH 1/8] Split api and chat message persistence into a separate module --- src/core/Cline.ts | 99 +++++------------------ src/core/task-persistence/apiMessages.ts | 50 ++++++++++++ src/core/task-persistence/index.ts | 2 + src/core/task-persistence/taskMessages.ts | 84 +++++++++++++++++++ 4 files changed, 157 insertions(+), 78 deletions(-) create mode 100644 src/core/task-persistence/apiMessages.ts create mode 100644 src/core/task-persistence/index.ts create mode 100644 src/core/task-persistence/taskMessages.ts diff --git a/src/core/Cline.ts b/src/core/Cline.ts index 7c60ba12827..b2178c133de 100644 --- a/src/core/Cline.ts +++ b/src/core/Cline.ts @@ -1,4 +1,3 @@ -import fs from "fs/promises" import * as path from "path" import os from "os" import crypto from "crypto" @@ -8,7 +7,6 @@ import { Anthropic } from "@anthropic-ai/sdk" import cloneDeep from "clone-deep" import delay from "delay" import pWaitFor from "p-wait-for" -import getFolderSize from "get-folder-size" import { serializeError } from "serialize-error" import * as vscode from "vscode" @@ -58,7 +56,6 @@ import { TerminalRegistry } from "../integrations/terminal/TerminalRegistry" // utils import { calculateApiCostAnthropic } from "../utils/cost" -import { fileExistsAtPath } from "../utils/fs" import { arePathsEqual, getWorkspacePath } from "../utils/path" // tools @@ -93,6 +90,7 @@ import { truncateConversationIfNeeded } from "./sliding-window" import { ClineProvider } from "./webview/ClineProvider" import { validateToolUse } from "./mode-validator" import { MultiSearchReplaceDiffStrategy } from "./diff/strategies/multi-search-replace" +import { readApiMessages, saveApiMessages, readTaskMessages, saveTaskMessages } from "./task-persistence" type UserContent = Array @@ -164,6 +162,7 @@ export class Cline extends EventEmitter { consecutiveMistakeCountForApplyDiff: Map = new Map() // Not private since it needs to be accessible by tools. providerRef: WeakRef + private readonly globalStoragePath: string private abort: boolean = false didFinishAbortingStream = false abandoned = false @@ -203,7 +202,6 @@ export class Cline extends EventEmitter { task, images, historyItem, - experiments, startTask = true, rootTask, parentTask, @@ -222,9 +220,11 @@ export class Cline extends EventEmitter { this.rooIgnoreController = new RooIgnoreController(this.cwd) this.fileContextTracker = new FileContextTracker(provider, this.taskId) + this.rooIgnoreController.initialize().catch((error) => { console.error("Failed to initialize RooIgnoreController:", error) }) + this.apiConfiguration = apiConfiguration this.api = buildApiHandler(apiConfiguration) this.urlContentFetcher = new UrlContentFetcher(provider.context) @@ -234,6 +234,7 @@ export class Cline extends EventEmitter { this.fuzzyMatchThreshold = fuzzyMatchThreshold this.consecutiveMistakeLimit = consecutiveMistakeLimit this.providerRef = new WeakRef(provider) + this.globalStoragePath = provider.context.globalStorageUri.fsPath this.diffViewProvider = new DiffViewProvider(this.cwd) this.enableCheckpoints = enableCheckpoints @@ -284,26 +285,8 @@ export class Cline extends EventEmitter { // Storing task to disk for history - private async ensureTaskDirectoryExists(): Promise { - const globalStoragePath = this.providerRef.deref()?.context.globalStorageUri.fsPath - if (!globalStoragePath) { - throw new Error("Global storage uri is invalid") - } - - // Use storagePathManager to retrieve the task storage directory - const { getTaskDirectoryPath } = await import("../shared/storagePathManager") - return getTaskDirectoryPath(globalStoragePath, this.taskId) - } - private async getSavedApiConversationHistory(): Promise { - const filePath = path.join(await this.ensureTaskDirectoryExists(), GlobalFileNames.apiConversationHistory) - const fileExists = await fileExistsAtPath(filePath) - - if (fileExists) { - return JSON.parse(await fs.readFile(filePath, "utf8")) - } - - return [] + return readApiMessages({ taskId: this.taskId, globalStoragePath: this.globalStoragePath }) } private async addToApiConversationHistory(message: Anthropic.MessageParam) { @@ -319,8 +302,11 @@ export class Cline extends EventEmitter { private async saveApiConversationHistory() { try { - const filePath = path.join(await this.ensureTaskDirectoryExists(), GlobalFileNames.apiConversationHistory) - await fs.writeFile(filePath, JSON.stringify(this.apiConversationHistory)) + await saveApiMessages({ + messages: this.apiConversationHistory, + taskId: this.taskId, + globalStoragePath: this.globalStoragePath, + }) } catch (error) { // in the off chance this fails, we don't want to stop the task console.error("Failed to save API conversation history:", error) @@ -328,21 +314,7 @@ export class Cline extends EventEmitter { } private async getSavedClineMessages(): Promise { - const filePath = path.join(await this.ensureTaskDirectoryExists(), GlobalFileNames.uiMessages) - - if (await fileExistsAtPath(filePath)) { - return JSON.parse(await fs.readFile(filePath, "utf8")) - } else { - // check old location - const oldPath = path.join(await this.ensureTaskDirectoryExists(), "claude_messages.json") - if (await fileExistsAtPath(oldPath)) { - const data = JSON.parse(await fs.readFile(oldPath, "utf8")) - await fs.unlink(oldPath) // remove old file - return data - } - } - - return [] + return readTaskMessages({ taskId: this.taskId, globalStoragePath: this.globalStoragePath }) } private async addToClineMessages(message: ClineMessage) { @@ -364,46 +336,17 @@ export class Cline extends EventEmitter { private async saveClineMessages() { try { - const taskDir = await this.ensureTaskDirectoryExists() - const filePath = path.join(taskDir, GlobalFileNames.uiMessages) - await fs.writeFile(filePath, JSON.stringify(this.clineMessages)) + const { historyItem, tokenUsage } = await saveTaskMessages({ + messages: this.clineMessages, + taskId: this.taskId, + taskNumber: this.taskNumber, + globalStoragePath: this.globalStoragePath, + workspace: this.cwd, + }) - const tokenUsage = this.getTokenUsage() this.emit("taskTokenUsageUpdated", this.taskId, tokenUsage) - const taskMessage = this.clineMessages[0] // First message is always the task say - - const lastRelevantMessage = - this.clineMessages[ - findLastIndex( - this.clineMessages, - (m) => !(m.ask === "resume_task" || m.ask === "resume_completed_task"), - ) - ] - - let taskDirSize = 0 - - try { - taskDirSize = await getFolderSize.loose(taskDir) - } catch (err) { - console.error( - `[saveClineMessages] failed to get task directory size (${taskDir}): ${err instanceof Error ? err.message : String(err)}`, - ) - } - - await this.providerRef.deref()?.updateTaskHistory({ - id: this.taskId, - number: this.taskNumber, - ts: lastRelevantMessage.ts, - task: taskMessage.text ?? "", - tokensIn: tokenUsage.totalTokensIn, - tokensOut: tokenUsage.totalTokensOut, - cacheWrites: tokenUsage.totalCacheWrites, - cacheReads: tokenUsage.totalCacheReads, - totalCost: tokenUsage.totalCost, - size: taskDirSize, - workspace: this.cwd, - }) + await this.providerRef.deref()?.updateTaskHistory(historyItem) } catch (error) { console.error("Failed to save cline messages:", error) } @@ -853,7 +796,7 @@ export class Cline extends EventEmitter { } const wasRecent = lastClineMessage?.ts && Date.now() - lastClineMessage.ts < 30_000 - + newUserContent.push({ type: "text", text: diff --git a/src/core/task-persistence/apiMessages.ts b/src/core/task-persistence/apiMessages.ts new file mode 100644 index 00000000000..78642f68287 --- /dev/null +++ b/src/core/task-persistence/apiMessages.ts @@ -0,0 +1,50 @@ +import * as path from "path" +import * as fs from "fs/promises" + +import { Anthropic } from "@anthropic-ai/sdk" + +import { fileExistsAtPath } from "../../utils/fs" + +import { GlobalFileNames } from "../../shared/globalFileNames" +import { getTaskDirectoryPath } from "../../shared/storagePathManager" + +export type ApiMessage = Anthropic.MessageParam & { ts?: number } + +export async function readApiMessages({ + taskId, + globalStoragePath, +}: { + taskId: string + globalStoragePath: string +}): Promise { + const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) + const filePath = path.join(taskDir, GlobalFileNames.uiMessages) + + if (await fileExistsAtPath(filePath)) { + return JSON.parse(await fs.readFile(filePath, "utf8")) + } else { + const oldPath = path.join(taskDir, "claude_messages.json") + + if (await fileExistsAtPath(oldPath)) { + const data = JSON.parse(await fs.readFile(oldPath, "utf8")) + await fs.unlink(oldPath) + return data + } + } + + return [] +} + +export async function saveApiMessages({ + messages, + taskId, + globalStoragePath, +}: { + messages: ApiMessage[] + taskId: string + globalStoragePath: string +}) { + const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) + const filePath = path.join(taskDir, GlobalFileNames.apiConversationHistory) + await fs.writeFile(filePath, JSON.stringify(messages)) +} diff --git a/src/core/task-persistence/index.ts b/src/core/task-persistence/index.ts new file mode 100644 index 00000000000..16fbf03ea87 --- /dev/null +++ b/src/core/task-persistence/index.ts @@ -0,0 +1,2 @@ +export { readApiMessages, saveApiMessages } from "./apiMessages" +export { readTaskMessages, saveTaskMessages } from "./taskMessages" diff --git a/src/core/task-persistence/taskMessages.ts b/src/core/task-persistence/taskMessages.ts new file mode 100644 index 00000000000..9155117da8a --- /dev/null +++ b/src/core/task-persistence/taskMessages.ts @@ -0,0 +1,84 @@ +import * as path from "path" +import * as fs from "fs/promises" + +import getFolderSize from "get-folder-size" + +import { fileExistsAtPath } from "../../utils/fs" + +import { GlobalFileNames } from "../../shared/globalFileNames" +import { ClineMessage } from "../../shared/ExtensionMessage" +import { combineApiRequests } from "../../shared/combineApiRequests" +import { combineCommandSequences } from "../../shared/combineCommandSequences" +import { getApiMetrics } from "../../shared/getApiMetrics" +import { findLastIndex } from "../../shared/array" +import { HistoryItem } from "../../shared/HistoryItem" +import { getTaskDirectoryPath } from "../../shared/storagePathManager" + +export async function readTaskMessages({ + taskId, + globalStoragePath, +}: { + taskId: string + globalStoragePath: string +}): Promise { + const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) + const filePath = path.join(taskDir, GlobalFileNames.apiConversationHistory) + const fileExists = await fileExistsAtPath(filePath) + + if (fileExists) { + return JSON.parse(await fs.readFile(filePath, "utf8")) + } + + return [] +} + +export async function saveTaskMessages({ + messages, + taskId, + taskNumber, + globalStoragePath, + workspace, +}: { + messages: ClineMessage[] + taskId: string + taskNumber: number + globalStoragePath: string + workspace: string +}) { + const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) + const filePath = path.join(taskDir, GlobalFileNames.uiMessages) + await fs.writeFile(filePath, JSON.stringify(messages)) + + const taskMessage = messages[0] // First message is always the task say. + + const lastRelevantMessage = + messages[findLastIndex(messages, (m) => !(m.ask === "resume_task" || m.ask === "resume_completed_task"))] + + let taskDirSize = 0 + + try { + taskDirSize = await getFolderSize.loose(taskDir) + } catch (error) { + console.error( + `[saveTaskMessages] getFolderSize.loose failed -> ${error instanceof Error ? error.message : String(error)}`, + ) + } + + const tokenUsage = getApiMetrics(combineApiRequests(combineCommandSequences(messages.slice(1)))) + + const historyItem: HistoryItem = { + id: taskId, + number: taskNumber, + ts: lastRelevantMessage.ts, + task: taskMessage.text ?? "", + tokensIn: tokenUsage.totalTokensIn, + tokensOut: tokenUsage.totalTokensOut, + cacheWrites: tokenUsage.totalCacheWrites, + cacheReads: tokenUsage.totalCacheReads, + totalCost: tokenUsage.totalCost, + size: taskDirSize, + workspace, + } + + return { historyItem, tokenUsage } +} From 3e89c11dec2c361f07d84f894d03e6925633fe14 Mon Sep 17 00:00:00 2001 From: cte Date: Tue, 22 Apr 2025 22:00:30 -0700 Subject: [PATCH 2/8] Split metadata generator out from file operation functions --- src/core/Cline.ts | 10 +++- src/core/task-persistence/index.ts | 1 + src/core/task-persistence/taskMessages.ts | 64 ++++------------------- src/core/task-persistence/taskMetadata.ts | 59 +++++++++++++++++++++ 4 files changed, 78 insertions(+), 56 deletions(-) create mode 100644 src/core/task-persistence/taskMetadata.ts diff --git a/src/core/Cline.ts b/src/core/Cline.ts index b2178c133de..6c452c8c7ff 100644 --- a/src/core/Cline.ts +++ b/src/core/Cline.ts @@ -90,7 +90,7 @@ import { truncateConversationIfNeeded } from "./sliding-window" import { ClineProvider } from "./webview/ClineProvider" import { validateToolUse } from "./mode-validator" import { MultiSearchReplaceDiffStrategy } from "./diff/strategies/multi-search-replace" -import { readApiMessages, saveApiMessages, readTaskMessages, saveTaskMessages } from "./task-persistence" +import { readApiMessages, saveApiMessages, readTaskMessages, saveTaskMessages, taskMetadata } from "./task-persistence" type UserContent = Array @@ -336,7 +336,13 @@ export class Cline extends EventEmitter { private async saveClineMessages() { try { - const { historyItem, tokenUsage } = await saveTaskMessages({ + await saveTaskMessages({ + messages: this.clineMessages, + taskId: this.taskId, + globalStoragePath: this.globalStoragePath, + }) + + const { historyItem, tokenUsage } = await taskMetadata({ messages: this.clineMessages, taskId: this.taskId, taskNumber: this.taskNumber, diff --git a/src/core/task-persistence/index.ts b/src/core/task-persistence/index.ts index 16fbf03ea87..dccdf084706 100644 --- a/src/core/task-persistence/index.ts +++ b/src/core/task-persistence/index.ts @@ -1,2 +1,3 @@ export { readApiMessages, saveApiMessages } from "./apiMessages" export { readTaskMessages, saveTaskMessages } from "./taskMessages" +export { taskMetadata } from "./taskMetadata" diff --git a/src/core/task-persistence/taskMessages.ts b/src/core/task-persistence/taskMessages.ts index 9155117da8a..d12cd744247 100644 --- a/src/core/task-persistence/taskMessages.ts +++ b/src/core/task-persistence/taskMessages.ts @@ -1,26 +1,21 @@ import * as path from "path" import * as fs from "fs/promises" -import getFolderSize from "get-folder-size" - import { fileExistsAtPath } from "../../utils/fs" import { GlobalFileNames } from "../../shared/globalFileNames" import { ClineMessage } from "../../shared/ExtensionMessage" -import { combineApiRequests } from "../../shared/combineApiRequests" -import { combineCommandSequences } from "../../shared/combineCommandSequences" -import { getApiMetrics } from "../../shared/getApiMetrics" -import { findLastIndex } from "../../shared/array" -import { HistoryItem } from "../../shared/HistoryItem" import { getTaskDirectoryPath } from "../../shared/storagePathManager" +export type ReadTaskMessagesOptions = { + taskId: string + globalStoragePath: string +} + export async function readTaskMessages({ taskId, globalStoragePath, -}: { - taskId: string - globalStoragePath: string -}): Promise { +}: ReadTaskMessagesOptions): Promise { const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) const filePath = path.join(taskDir, GlobalFileNames.apiConversationHistory) const fileExists = await fileExistsAtPath(filePath) @@ -32,53 +27,14 @@ export async function readTaskMessages({ return [] } -export async function saveTaskMessages({ - messages, - taskId, - taskNumber, - globalStoragePath, - workspace, -}: { +export type SaveTaskMessagesOptions = { messages: ClineMessage[] taskId: string - taskNumber: number globalStoragePath: string - workspace: string -}) { +} + +export async function saveTaskMessages({ messages, taskId, globalStoragePath }: SaveTaskMessagesOptions) { const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) const filePath = path.join(taskDir, GlobalFileNames.uiMessages) await fs.writeFile(filePath, JSON.stringify(messages)) - - const taskMessage = messages[0] // First message is always the task say. - - const lastRelevantMessage = - messages[findLastIndex(messages, (m) => !(m.ask === "resume_task" || m.ask === "resume_completed_task"))] - - let taskDirSize = 0 - - try { - taskDirSize = await getFolderSize.loose(taskDir) - } catch (error) { - console.error( - `[saveTaskMessages] getFolderSize.loose failed -> ${error instanceof Error ? error.message : String(error)}`, - ) - } - - const tokenUsage = getApiMetrics(combineApiRequests(combineCommandSequences(messages.slice(1)))) - - const historyItem: HistoryItem = { - id: taskId, - number: taskNumber, - ts: lastRelevantMessage.ts, - task: taskMessage.text ?? "", - tokensIn: tokenUsage.totalTokensIn, - tokensOut: tokenUsage.totalTokensOut, - cacheWrites: tokenUsage.totalCacheWrites, - cacheReads: tokenUsage.totalCacheReads, - totalCost: tokenUsage.totalCost, - size: taskDirSize, - workspace, - } - - return { historyItem, tokenUsage } } diff --git a/src/core/task-persistence/taskMetadata.ts b/src/core/task-persistence/taskMetadata.ts new file mode 100644 index 00000000000..741ac13da51 --- /dev/null +++ b/src/core/task-persistence/taskMetadata.ts @@ -0,0 +1,59 @@ +import getFolderSize from "get-folder-size" + +import { ClineMessage } from "../../shared/ExtensionMessage" +import { combineApiRequests } from "../../shared/combineApiRequests" +import { combineCommandSequences } from "../../shared/combineCommandSequences" +import { getApiMetrics } from "../../shared/getApiMetrics" +import { findLastIndex } from "../../shared/array" +import { HistoryItem } from "../../shared/HistoryItem" +import { getTaskDirectoryPath } from "../../shared/storagePathManager" + +export type TaskMetadataOptions = { + messages: ClineMessage[] + taskId: string + taskNumber: number + globalStoragePath: string + workspace: string +} + +export async function taskMetadata({ + messages, + taskId, + taskNumber, + globalStoragePath, + workspace, +}: TaskMetadataOptions) { + const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) + const taskMessage = messages[0] // First message is always the task say. + + const lastRelevantMessage = + messages[findLastIndex(messages, (m) => !(m.ask === "resume_task" || m.ask === "resume_completed_task"))] + + let taskDirSize = 0 + + try { + taskDirSize = await getFolderSize.loose(taskDir) + } catch (error) { + console.error( + `[saveTaskMessages] getFolderSize.loose failed -> ${error instanceof Error ? error.message : String(error)}`, + ) + } + + const tokenUsage = getApiMetrics(combineApiRequests(combineCommandSequences(messages.slice(1)))) + + const historyItem: HistoryItem = { + id: taskId, + number: taskNumber, + ts: lastRelevantMessage.ts, + task: taskMessage.text ?? "", + tokensIn: tokenUsage.totalTokensIn, + tokensOut: tokenUsage.totalTokensOut, + cacheWrites: tokenUsage.totalCacheWrites, + cacheReads: tokenUsage.totalCacheReads, + totalCost: tokenUsage.totalCost, + size: taskDirSize, + workspace, + } + + return { historyItem, tokenUsage } +} From f11db7277f1b0fa3e33da6ff7068fb230826630f Mon Sep 17 00:00:00 2001 From: cte Date: Tue, 22 Apr 2025 22:30:23 -0700 Subject: [PATCH 3/8] Add a JSONL implementation with benchmark and findings --- scripts/benchmark-results.md | 67 +++++ scripts/benchmark-task-messages.ts | 254 ++++++++++++++++++ .../task-persistence/taskMessages.jsonl.ts | 56 ++++ 3 files changed, 377 insertions(+) create mode 100644 scripts/benchmark-results.md create mode 100644 scripts/benchmark-task-messages.ts create mode 100644 src/core/task-persistence/taskMessages.jsonl.ts diff --git a/scripts/benchmark-results.md b/scripts/benchmark-results.md new file mode 100644 index 00000000000..a56e60ff184 --- /dev/null +++ b/scripts/benchmark-results.md @@ -0,0 +1,67 @@ +# Task Message Storage Benchmark Results + +## Overview + +This document summarizes the performance comparison between JSON and JSONL (JSON Lines) formats for storing task messages in the Roo Code extension. + +## Test Methodology + +We benchmarked two different implementations: + +1. **JSON Implementation**: Stores all messages in a single JSON array. Each append operation requires reading the entire file, parsing it, adding the new message, and writing the entire file back. + +2. **JSONL Implementation**: Stores each message as a separate line of JSON. Each append operation simply appends the new message to the end of the file. + +The benchmark included: + +- Individual append operations with varying file sizes (10 to 50,000 messages) +- A sequential test simulating adding 100 messages in sequence (real-world scenario) + +## Results + +### Individual Append Operations + +| Message Count | JSON (ms) | JSONL (ms) | Speedup | +| ------------- | --------- | ---------- | ------- | +| 10 | 0.17 | 0.10 | 1.74x | +| 100 | 0.15 | 0.08 | 2.00x | +| 1,000 | 0.17 | 0.08 | 2.15x | +| 10,000 | 0.32 | 0.13 | 2.51x | +| 50,000 | 0.22 | 0.10 | 2.10x | + +### Sequential Append Test (100 messages) + +| Implementation | Total Time (ms) | +| -------------- | --------------- | +| JSON | 36.51 | +| JSONL | 5.57 | +| **Speedup** | **6.56x** | + +## Analysis + +1. **Individual Operations**: JSONL consistently outperforms JSON by a factor of 1.7x to 2.5x for individual append operations. + +2. **Sequential Operations**: The performance gap widens dramatically in the sequential test, with JSONL being 6.56x faster than JSON. This better represents real-world usage where messages are added over time. + +3. **Scaling Characteristics**: + + - JSON performance degrades as the file size increases because it must process the entire file for each operation + - JSONL maintains consistent performance regardless of file size since it only appends to the end + +4. **Memory Usage**: While not directly measured, the JSON implementation requires loading the entire message history into memory, which could cause issues with very large conversations. + +## Recommendation + +**Strongly recommend adopting the JSONL implementation** for task message storage for the following reasons: + +1. **Superior Performance**: Significantly faster, especially for sequential operations that mirror real-world usage patterns (6.56x speedup) + +2. **Better Scaling**: Performance remains consistent regardless of conversation size + +3. **Lower Memory Footprint**: Only needs to process the new message, not the entire conversation history + +4. **Append-Optimized**: Perfectly suited for chat applications where new messages are frequently added + +5. **Streaming Compatibility**: Easier to implement streaming reads for large conversation histories + +The performance advantage of JSONL becomes increasingly significant as conversations grow larger, making it the clear choice for a chat-based application like Roo Code. diff --git a/scripts/benchmark-task-messages.ts b/scripts/benchmark-task-messages.ts new file mode 100644 index 00000000000..f3780798336 --- /dev/null +++ b/scripts/benchmark-task-messages.ts @@ -0,0 +1,254 @@ +#!/usr/bin/env node + +// npx tsx scripts/benchmark-task-messages.ts + +import * as fs from "fs/promises" +import * as path from "path" +import { performance } from "perf_hooks" + +// Import only the type +import type { ClineMessage } from "../src/shared/ExtensionMessage" + +// Constants +const BENCHMARK_DIR = path.join(process.cwd(), "benchmark-test-storage") +const TASK_ID = "benchmark-test-task" +const TASK_DIR = path.join(BENCHMARK_DIR, TASK_ID) + +// File paths for both implementations +const JSON_FILE_PATH = path.join(TASK_DIR, "messages.json") +const JSONL_FILE_PATH = path.join(TASK_DIR, "messages.jsonl") + +// Function to create a sample message with much longer text +const createSampleMessage = (): ClineMessage => { + // Generate a long text message to better simulate real-world data + const longText = `This is a much longer test message that simulates a real-world conversation with an AI assistant. +It contains multiple paragraphs and a significant amount of text to better demonstrate the performance differences +between JSON and JSONL formats when dealing with larger message sizes. + +When working with large datasets or conversation histories, the efficiency of storage and retrieval becomes increasingly +important. This benchmark helps quantify those differences by measuring the time it takes to append messages using +both approaches. + +The JSON approach requires reading the entire file, parsing it into memory, appending the new message, and then +writing the entire content back to disk. This becomes increasingly expensive as the file grows larger. + +The JSONL approach, on the other hand, simply appends the new message to the end of the file without needing to +read or parse existing content. This should theoretically provide better performance, especially as the number +of messages increases. + +This benchmark will help us determine at what point the performance difference becomes significant and whether +the JSONL approach provides meaningful benefits for our specific use case in the VS Code extension.` + + return { + ts: Date.now(), + type: "say", + say: "text", + text: longText, + } +} + +// Function to create a directory if it doesn't exist +async function ensureDirectoryExists(dirPath: string): Promise { + try { + await fs.mkdir(dirPath, { recursive: true }) + } catch (error) { + console.error(`Error creating directory ${dirPath}:`, error) + throw error + } +} + +// Function to create test files with a specified number of messages +async function createTestFiles(messageCount: number): Promise { + console.log(`Creating test files with ${messageCount} messages...`) + + // Create JSON test file + const jsonMessages: ClineMessage[] = [] + for (let i = 0; i < messageCount; i++) { + jsonMessages.push(createSampleMessage()) + } + await fs.writeFile(JSON_FILE_PATH, JSON.stringify(jsonMessages)) + + // Create JSONL test file + const jsonlContent = jsonMessages.map((msg) => JSON.stringify(msg)).join("\n") + await fs.writeFile(JSONL_FILE_PATH, jsonlContent) + + console.log("Test files created successfully.") +} + +// Simplified implementation of saveTaskMessages +async function saveTaskMessages({ + messages, + taskId, + globalStoragePath, +}: { + messages: ClineMessage[] + taskId: string + globalStoragePath: string +}): Promise { + // For the benchmark, we write directly to the specified file + const filePath = path.join(globalStoragePath, "messages.json") + await fs.writeFile(filePath, JSON.stringify(messages)) +} + +// Simplified implementation of appendTaskMessage +async function appendTaskMessage({ + message, + taskId, + globalStoragePath, +}: { + message: ClineMessage + taskId: string + globalStoragePath: string +}): Promise { + // For the benchmark, we append directly to the specified file + const filePath = path.join(globalStoragePath, "messages.jsonl") + await fs.appendFile(filePath, JSON.stringify(message) + "\n") +} + +// Function to benchmark JSON implementation +async function benchmarkJSON(iterations: number): Promise { + const durations: number[] = [] + const messages: ClineMessage[] = [] + + for (let i = 0; i < iterations; i++) { + const newMessage = createSampleMessage() + + // Benchmark saveTaskMessages + const start = performance.now() + messages.push(newMessage) + await saveTaskMessages({ messages, taskId: TASK_ID, globalStoragePath: TASK_DIR }) + const end = performance.now() + + durations.push(end - start) + } + + return durations +} + +// Function to benchmark JSONL implementation +async function benchmarkJSONL(iterations: number): Promise { + const durations: number[] = [] + + for (let i = 0; i < iterations; i++) { + const newMessage = createSampleMessage() + + // Benchmark appendTaskMessage + const start = performance.now() + await appendTaskMessage({ message: newMessage, taskId: TASK_ID, globalStoragePath: TASK_DIR }) + const end = performance.now() + + durations.push(end - start) + } + + return durations +} + +// Function to calculate statistics +function calculateStats(durations: number[]): { min: number; max: number; avg: number; median: number } { + const sorted = [...durations].sort((a, b) => a - b) + return { + min: sorted[0], + max: sorted[sorted.length - 1], + avg: durations.reduce((sum, val) => sum + val, 0) / durations.length, + median: sorted[Math.floor(sorted.length / 2)], + } +} + +// Main benchmark function +async function runBenchmark(): Promise { + try { + // Ensure benchmark directory exists + await ensureDirectoryExists(TASK_DIR) + + // Define message counts to test + const messageCounts = [10, 100, 1000, 10000, 50000] + // Number of iterations for each test + const iterations = 10 + + // Add a sequential append test + async function runSequentialTest() { + console.log("\nRunning Sequential Append Test (100 messages in sequence)...") + console.log("This test simulates a more realistic scenario where messages are added over time") + + // Create empty files + await fs.writeFile(JSON_FILE_PATH, JSON.stringify([])) + await fs.writeFile(JSONL_FILE_PATH, "") + + // Test JSON sequential append + const jsonStart = performance.now() + let jsonMessages: ClineMessage[] = [] + + for (let i = 0; i < 100; i++) { + // For JSON, we need to read the entire file each time + jsonMessages = JSON.parse(await fs.readFile(JSON_FILE_PATH, "utf8")) + jsonMessages.push(createSampleMessage()) + await fs.writeFile(JSON_FILE_PATH, JSON.stringify(jsonMessages)) + } + + const jsonEnd = performance.now() + const jsonDuration = jsonEnd - jsonStart + + // Test JSONL sequential append + const jsonlStart = performance.now() + + for (let i = 0; i < 100; i++) { + // For JSONL, we just append + await fs.appendFile(JSONL_FILE_PATH, JSON.stringify(createSampleMessage()) + "\n") + } + + const jsonlEnd = performance.now() + const jsonlDuration = jsonlEnd - jsonlStart + + // Calculate speedup + const sequentialSpeedup = jsonDuration / jsonlDuration + + console.log(`JSON sequential append time: ${jsonDuration.toFixed(2)} ms`) + console.log(`JSONL sequential append time: ${jsonlDuration.toFixed(2)} ms`) + console.log(`Sequential append speedup: ${sequentialSpeedup.toFixed(2)}x`) + } + + console.log("Starting benchmark...") + console.log("=============================================") + console.log("| Message Count | Implementation | Min (ms) | Max (ms) | Avg (ms) | Median (ms) |") + console.log("|---------------|---------------|----------|----------|----------|-------------|") + + for (const count of messageCounts) { + // Create test files with the specified number of messages + await createTestFiles(count) + + // Benchmark JSON implementation + const jsonDurations = await benchmarkJSON(iterations) + const jsonStats = calculateStats(jsonDurations) + + // Reset the files to ensure consistent state + await createTestFiles(count) + + // Benchmark JSONL implementation + const jsonlDurations = await benchmarkJSONL(iterations) + const jsonlStats = calculateStats(jsonlDurations) + + // Print results + console.log( + `| ${count.toString().padEnd(13)} | JSON | ${jsonStats.min.toFixed(2).padEnd(8)} | ${jsonStats.max.toFixed(2).padEnd(8)} | ${jsonStats.avg.toFixed(2).padEnd(8)} | ${jsonStats.median.toFixed(2).padEnd(11)} |`, + ) + console.log( + `| ${" ".padEnd(13)} | JSONL | ${jsonlStats.min.toFixed(2).padEnd(8)} | ${jsonlStats.max.toFixed(2).padEnd(8)} | ${jsonlStats.avg.toFixed(2).padEnd(8)} | ${jsonlStats.median.toFixed(2).padEnd(11)} |`, + ) + + // Calculate and print speedup + const avgSpeedup = jsonStats.avg / jsonlStats.avg + console.log(`| ${" ".padEnd(13)} | Speedup | ${avgSpeedup.toFixed(2)}x ${" ".repeat(37)} |`) + console.log("|---------------|---------------|----------|----------|----------|-------------|") + } + + console.log("Benchmark completed!") + + // Run the sequential test + await runSequentialTest() + } catch (error) { + console.error("Error running benchmark:", error) + } +} + +// Run the benchmark +runBenchmark() diff --git a/src/core/task-persistence/taskMessages.jsonl.ts b/src/core/task-persistence/taskMessages.jsonl.ts new file mode 100644 index 00000000000..d4a0d3d1b02 --- /dev/null +++ b/src/core/task-persistence/taskMessages.jsonl.ts @@ -0,0 +1,56 @@ +import * as path from "path" +import * as fs from "fs/promises" +import * as readline from "readline" +import { createReadStream } from "fs" + +import { fileExistsAtPath } from "../../utils/fs" + +import { GlobalFileNames } from "../../shared/globalFileNames" +import { ClineMessage } from "../../shared/ExtensionMessage" +import { getTaskDirectoryPath } from "../../shared/storagePathManager" + +import type { ReadTaskMessagesOptions, SaveTaskMessagesOptions } from "./taskMessages" + +export async function readTaskMessages({ + taskId, + globalStoragePath, +}: ReadTaskMessagesOptions): Promise { + const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) + const filePath = path.join(taskDir, `${GlobalFileNames.apiConversationHistory}l`) + const fileExists = await fileExistsAtPath(filePath) + + if (!fileExists) { + return [] + } + + const messages: ClineMessage[] = [] + const fileStream = createReadStream(filePath, { encoding: "utf8" }) + const rl = readline.createInterface({ input: fileStream, crlfDelay: Infinity }) + + for await (const line of rl) { + if (line.trim()) { + messages.push(JSON.parse(line)) + } + } + + return messages +} + +export async function writeTaskMessages({ messages, taskId, globalStoragePath }: SaveTaskMessagesOptions) { + const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) + const filePath = path.join(taskDir, `${GlobalFileNames.apiConversationHistory}l`) + const content = messages.map((message) => JSON.stringify(message)).join("\n") + await fs.writeFile(filePath, content) +} + +export type AppendTaskMessageOptions = { + message: ClineMessage + taskId: string + globalStoragePath: string +} + +export async function appendTaskMessage({ message, taskId, globalStoragePath }: AppendTaskMessageOptions) { + const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) + const filePath = path.join(taskDir, `${GlobalFileNames.apiConversationHistory}l`) + await fs.appendFile(filePath, JSON.stringify(message) + "\n") +} From 9a6fa38ca022354777cd3e6695e3ef7e23e5ebdf Mon Sep 17 00:00:00 2001 From: Chris Estreich Date: Tue, 22 Apr 2025 22:35:40 -0700 Subject: [PATCH 4/8] Update src/core/task-persistence/taskMetadata.ts Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- src/core/task-persistence/taskMetadata.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/task-persistence/taskMetadata.ts b/src/core/task-persistence/taskMetadata.ts index 741ac13da51..0a5372d2ed6 100644 --- a/src/core/task-persistence/taskMetadata.ts +++ b/src/core/task-persistence/taskMetadata.ts @@ -35,7 +35,7 @@ export async function taskMetadata({ taskDirSize = await getFolderSize.loose(taskDir) } catch (error) { console.error( - `[saveTaskMessages] getFolderSize.loose failed -> ${error instanceof Error ? error.message : String(error)}`, + `[taskMetadata] getFolderSize.loose failed -> ${error instanceof Error ? error.message : String(error)}`, ) } From d0add53ccb9e19308d88179733ad431f68cf115f Mon Sep 17 00:00:00 2001 From: cte Date: Tue, 22 Apr 2025 22:36:54 -0700 Subject: [PATCH 5/8] Fix file paths --- src/core/task-persistence/apiMessages.ts | 2 +- src/core/task-persistence/taskMessages.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/task-persistence/apiMessages.ts b/src/core/task-persistence/apiMessages.ts index 78642f68287..b361016345b 100644 --- a/src/core/task-persistence/apiMessages.ts +++ b/src/core/task-persistence/apiMessages.ts @@ -18,7 +18,7 @@ export async function readApiMessages({ globalStoragePath: string }): Promise { const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) - const filePath = path.join(taskDir, GlobalFileNames.uiMessages) + const filePath = path.join(taskDir, GlobalFileNames.apiConversationHistory) if (await fileExistsAtPath(filePath)) { return JSON.parse(await fs.readFile(filePath, "utf8")) diff --git a/src/core/task-persistence/taskMessages.ts b/src/core/task-persistence/taskMessages.ts index d12cd744247..96129e62855 100644 --- a/src/core/task-persistence/taskMessages.ts +++ b/src/core/task-persistence/taskMessages.ts @@ -17,7 +17,7 @@ export async function readTaskMessages({ globalStoragePath, }: ReadTaskMessagesOptions): Promise { const taskDir = await getTaskDirectoryPath(globalStoragePath, taskId) - const filePath = path.join(taskDir, GlobalFileNames.apiConversationHistory) + const filePath = path.join(taskDir, GlobalFileNames.uiMessages) const fileExists = await fileExistsAtPath(filePath) if (fileExists) { From a566145dd4514acc40e2b53f7178fa2e12348984 Mon Sep 17 00:00:00 2001 From: cte Date: Wed, 23 Apr 2025 12:14:36 -0700 Subject: [PATCH 6/8] Revert these --- locales/ca/README.md | 50 +++++++++++------------ locales/de/README.md | 50 +++++++++++------------ locales/es/README.md | 50 +++++++++++------------ locales/fr/README.md | 50 +++++++++++------------ locales/hi/README.md | 50 +++++++++++------------ locales/it/README.md | 50 +++++++++++------------ locales/ja/README.md | 50 +++++++++++------------ locales/ko/README.md | 50 +++++++++++------------ locales/pl/README.md | 50 +++++++++++------------ locales/pt-BR/README.md | 50 +++++++++++------------ locales/tr/README.md | 50 +++++++++++------------ locales/vi/README.md | 50 +++++++++++------------ locales/zh-CN/README.md | 50 +++++++++++------------ locales/zh-TW/README.md | 50 +++++++++++------------ src/core/task-persistence/taskMetadata.ts | 2 +- 15 files changed, 337 insertions(+), 365 deletions(-) diff --git a/locales/ca/README.md b/locales/ca/README.md index 624f429954b..a04ea161c28 100644 --- a/locales/ca/README.md +++ b/locales/ca/README.md @@ -178,32 +178,30 @@ Ens encanten les contribucions de la comunitat! Comenceu llegint el nostre [CONT Gràcies a tots els nostres col·laboradors que han ajudat a millorar Roo Code! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## Llicència diff --git a/locales/de/README.md b/locales/de/README.md index 1294267c7e6..d3a55b6b0cf 100644 --- a/locales/de/README.md +++ b/locales/de/README.md @@ -178,32 +178,30 @@ Wir lieben Community-Beiträge! Beginnen Sie mit dem Lesen unserer [CONTRIBUTING Danke an alle unsere Mitwirkenden, die geholfen haben, Roo Code zu verbessern! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## Lizenz diff --git a/locales/es/README.md b/locales/es/README.md index fa35f38e5ee..68470e32bfd 100644 --- a/locales/es/README.md +++ b/locales/es/README.md @@ -178,32 +178,30 @@ Usamos [changesets](https://github.com/changesets/changesets) para versionar y p ¡Gracias a todos nuestros colaboradores que han ayudado a mejorar Roo Code! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## Licencia diff --git a/locales/fr/README.md b/locales/fr/README.md index 1c309e5f9cd..617f84f535b 100644 --- a/locales/fr/README.md +++ b/locales/fr/README.md @@ -178,32 +178,30 @@ Nous adorons les contributions de la communauté ! Commencez par lire notre [CON Merci à tous nos contributeurs qui ont aidé à améliorer Roo Code ! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## Licence diff --git a/locales/hi/README.md b/locales/hi/README.md index 8b7f93f3ac4..50ca4caa065 100644 --- a/locales/hi/README.md +++ b/locales/hi/README.md @@ -178,32 +178,30 @@ code --install-extension bin/roo-cline-.vsix Roo Code को बेहतर बनाने में मदद करने वाले हमारे सभी योगदानकर्ताओं को धन्यवाद! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## लाइसेंस diff --git a/locales/it/README.md b/locales/it/README.md index 117c749aa22..5b802fc8880 100644 --- a/locales/it/README.md +++ b/locales/it/README.md @@ -178,32 +178,30 @@ Amiamo i contributi della community! Inizia leggendo il nostro [CONTRIBUTING.md] Grazie a tutti i nostri contributori che hanno aiutato a migliorare Roo Code! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## Licenza diff --git a/locales/ja/README.md b/locales/ja/README.md index 619f15c6054..1b4ea0e8c09 100644 --- a/locales/ja/README.md +++ b/locales/ja/README.md @@ -178,32 +178,30 @@ code --install-extension bin/roo-cline-.vsix Roo Codeの改善に貢献してくれたすべての貢献者に感謝します! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## ライセンス diff --git a/locales/ko/README.md b/locales/ko/README.md index 35b1c7ab2d3..5bdf5efd377 100644 --- a/locales/ko/README.md +++ b/locales/ko/README.md @@ -178,32 +178,30 @@ code --install-extension bin/roo-cline-.vsix Roo Code를 더 좋게 만드는 데 도움을 준 모든 기여자에게 감사드립니다! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## 라이선스 diff --git a/locales/pl/README.md b/locales/pl/README.md index ca78cb91192..d3235ab1b0e 100644 --- a/locales/pl/README.md +++ b/locales/pl/README.md @@ -178,32 +178,30 @@ Kochamy wkład społeczności! Zacznij od przeczytania naszego [CONTRIBUTING.md] Dziękujemy wszystkim naszym współtwórcom, którzy pomogli ulepszyć Roo Code! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## Licencja diff --git a/locales/pt-BR/README.md b/locales/pt-BR/README.md index 4593a8e4c51..7f2f14d8f2b 100644 --- a/locales/pt-BR/README.md +++ b/locales/pt-BR/README.md @@ -178,32 +178,30 @@ Adoramos contribuições da comunidade! Comece lendo nosso [CONTRIBUTING.md](CON Obrigado a todos os nossos contribuidores que ajudaram a tornar o Roo Code melhor! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## Licença diff --git a/locales/tr/README.md b/locales/tr/README.md index e15c0b157f2..58e0e5a5ebf 100644 --- a/locales/tr/README.md +++ b/locales/tr/README.md @@ -178,32 +178,30 @@ Topluluk katkılarını seviyoruz! [CONTRIBUTING.md](CONTRIBUTING.md) dosyasın Roo Code'u daha iyi hale getirmeye yardımcı olan tüm katkıda bulunanlara teşekkür ederiz! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## Lisans diff --git a/locales/vi/README.md b/locales/vi/README.md index 3966918feb5..52d377b2d27 100644 --- a/locales/vi/README.md +++ b/locales/vi/README.md @@ -178,32 +178,30 @@ Chúng tôi rất hoan nghênh đóng góp từ cộng đồng! Bắt đầu b Cảm ơn tất cả những người đóng góp đã giúp cải thiện Roo Code! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## Giấy Phép diff --git a/locales/zh-CN/README.md b/locales/zh-CN/README.md index 4fe685509d6..835da775cd5 100644 --- a/locales/zh-CN/README.md +++ b/locales/zh-CN/README.md @@ -178,32 +178,30 @@ code --install-extension bin/roo-cline-.vsix 感谢所有帮助改进 Roo Code 的贡献者! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## 许可证 diff --git a/locales/zh-TW/README.md b/locales/zh-TW/README.md index bd9feedb0cc..a27cf1bbc9b 100644 --- a/locales/zh-TW/README.md +++ b/locales/zh-TW/README.md @@ -179,32 +179,30 @@ code --install-extension bin/roo-cline-.vsix 感謝所有幫助改進 Roo Code 的貢獻者! - -| mrubens
mrubens
| saoudrizwan
saoudrizwan
| cte
cte
| samhvw8
samhvw8
| daniel-lxs
daniel-lxs
| a8trejo
a8trejo
| -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| ColemanRoo
ColemanRoo
| stea9499
stea9499
| joemanley201
joemanley201
| System233
System233
| hannesrudolph
hannesrudolph
| nissa-seru
nissa-seru
| -| jquanton
jquanton
| KJ7LNW
KJ7LNW
| NyxJae
NyxJae
| MuriloFP
MuriloFP
| d-oit
d-oit
| punkpeye
punkpeye
| -| monotykamary
monotykamary
| Smartsheet-JB-Brown
Smartsheet-JB-Brown
| feifei325
feifei325
| wkordalski
wkordalski
| cannuri
cannuri
| lloydchang
lloydchang
| -| vigneshsubbiah16
vigneshsubbiah16
| Szpadel
Szpadel
| lupuletic
lupuletic
| qdaxb
qdaxb
| Premshay
Premshay
| psv2522
psv2522
| -| diarmidmackenzie
diarmidmackenzie
| olweraltuve
olweraltuve
| afshawnlotfi
afshawnlotfi
| aheizi
aheizi
| sachasayan
sachasayan
| RaySinner
RaySinner
| -| PeterDaveHello
PeterDaveHello
| nbihan-mediware
nbihan-mediware
| elianiva
elianiva
| dtrugman
dtrugman
| emshvac
emshvac
| kyle-apex
kyle-apex
| -| pdecat
pdecat
| pugazhendhi-m
pugazhendhi-m
| Lunchb0ne
Lunchb0ne
| arthurauffray
arthurauffray
| zhangtony239
zhangtony239
| upamune
upamune
| -| StevenTCramer
StevenTCramer
| sammcj
sammcj
| p12tic
p12tic
| gtaylor
gtaylor
| aitoroses
aitoroses
| yt3trees
yt3trees
| -| franekp
franekp
| yongjer
yongjer
| vincentsong
vincentsong
| vagadiya
vagadiya
| teddyOOXX
teddyOOXX
| eonghk
eonghk
| -| taisukeoe
taisukeoe
| heyseth
heyseth
| ross
ross
| axkirillov
axkirillov
| anton-otee
anton-otee
| benzntech
benzntech
| -| bramburn
bramburn
| GitlyHallows
GitlyHallows
| philfung
philfung
| napter
napter
| mdp
mdp
| jcbdev
jcbdev
| -| Chenjiayuan195
Chenjiayuan195
| SplittyDev
SplittyDev
| amittell
amittell
| ashktn
ashktn
| axmo
axmo
| bannzai
bannzai
| -| dairui1
dairui1
| dqroid
dqroid
| hongzio
hongzio
| im47cn
im47cn
| shoopapa
shoopapa
| jwcraig
jwcraig
| -| kinandan
kinandan
| kohii
kohii
| lightrabbit
lightrabbit
| olup
olup
| mecab
mecab
| moqimoqidea
moqimoqidea
| -| mosleyit
mosleyit
| nevermorec
nevermorec
| nobu007
nobu007
| oprstchn
oprstchn
| philipnext
philipnext
| pokutuna
pokutuna
| -| refactorthis
refactorthis
| ronyblum
ronyblum
| samir-nimbly
samir-nimbly
| seedlord
seedlord
| shaybc
shaybc
| shohei-ihaya
shohei-ihaya
| -| student20880
student20880
| cdlliuy
cdlliuy
| PretzelVector
PretzelVector
| AMHesch
AMHesch
| adamwlarson
adamwlarson
| alarno
alarno
| -| QuinsZouls
QuinsZouls
| andreastempsch
andreastempsch
| atlasgong
atlasgong
| Atlogit
Atlogit
| bogdan0083
bogdan0083
| chadgauth
chadgauth
| -| dleen
dleen
| dbasclpy
dbasclpy
| snoyiatk
snoyiatk
| linegel
linegel
| celestial-vault
celestial-vault
| DeXtroTip
DeXtroTip
| -| hesara
hesara
| eltociear
eltociear
| Jdo300
Jdo300
| shtse8
shtse8
| libertyteeth
libertyteeth
| mamertofabian
mamertofabian
| -| marvijo-code
marvijo-code
| kvokka
kvokka
| Sarke
Sarke
| 01Rian
01Rian
| samsilveira
samsilveira
| maekawataiki
maekawataiki
| -| tgfjt
tgfjt
| tmsjngx0
tmsjngx0
| NamesMT
NamesMT
| vladstudio
vladstudio
| Yoshino-Yukitaro
Yoshino-Yukitaro
| | - +|mrubens
mrubens
|saoudrizwan
saoudrizwan
|cte
cte
|samhvw8
samhvw8
|daniel-lxs
daniel-lxs
|a8trejo
a8trejo
| +|:---:|:---:|:---:|:---:|:---:|:---:| +|ColemanRoo
ColemanRoo
|stea9499
stea9499
|joemanley201
joemanley201
|System233
System233
|hannesrudolph
hannesrudolph
|nissa-seru
nissa-seru
| +|jquanton
jquanton
|KJ7LNW
KJ7LNW
|NyxJae
NyxJae
|MuriloFP
MuriloFP
|d-oit
d-oit
|punkpeye
punkpeye
| +|monotykamary
monotykamary
|Smartsheet-JB-Brown
Smartsheet-JB-Brown
|feifei325
feifei325
|wkordalski
wkordalski
|cannuri
cannuri
|lloydchang
lloydchang
| +|vigneshsubbiah16
vigneshsubbiah16
|Szpadel
Szpadel
|lupuletic
lupuletic
|qdaxb
qdaxb
|Premshay
Premshay
|psv2522
psv2522
| +|diarmidmackenzie
diarmidmackenzie
|olweraltuve
olweraltuve
|afshawnlotfi
afshawnlotfi
|aheizi
aheizi
|sachasayan
sachasayan
|RaySinner
RaySinner
| +|PeterDaveHello
PeterDaveHello
|nbihan-mediware
nbihan-mediware
|elianiva
elianiva
|dtrugman
dtrugman
|emshvac
emshvac
|kyle-apex
kyle-apex
| +|pdecat
pdecat
|pugazhendhi-m
pugazhendhi-m
|Lunchb0ne
Lunchb0ne
|arthurauffray
arthurauffray
|zhangtony239
zhangtony239
|upamune
upamune
| +|StevenTCramer
StevenTCramer
|sammcj
sammcj
|p12tic
p12tic
|gtaylor
gtaylor
|aitoroses
aitoroses
|yt3trees
yt3trees
| +|franekp
franekp
|yongjer
yongjer
|vincentsong
vincentsong
|vagadiya
vagadiya
|teddyOOXX
teddyOOXX
|eonghk
eonghk
| +|taisukeoe
taisukeoe
|heyseth
heyseth
|ross
ross
|axkirillov
axkirillov
|anton-otee
anton-otee
|benzntech
benzntech
| +|bramburn
bramburn
|GitlyHallows
GitlyHallows
|philfung
philfung
|napter
napter
|mdp
mdp
|jcbdev
jcbdev
| +|Chenjiayuan195
Chenjiayuan195
|SplittyDev
SplittyDev
|amittell
amittell
|ashktn
ashktn
|axmo
axmo
|bannzai
bannzai
| +|dairui1
dairui1
|dqroid
dqroid
|hongzio
hongzio
|im47cn
im47cn
|shoopapa
shoopapa
|jwcraig
jwcraig
| +|kinandan
kinandan
|kohii
kohii
|lightrabbit
lightrabbit
|olup
olup
|mecab
mecab
|moqimoqidea
moqimoqidea
| +|mosleyit
mosleyit
|nevermorec
nevermorec
|nobu007
nobu007
|oprstchn
oprstchn
|philipnext
philipnext
|pokutuna
pokutuna
| +|refactorthis
refactorthis
|ronyblum
ronyblum
|samir-nimbly
samir-nimbly
|seedlord
seedlord
|shaybc
shaybc
|shohei-ihaya
shohei-ihaya
| +|student20880
student20880
|cdlliuy
cdlliuy
|PretzelVector
PretzelVector
|AMHesch
AMHesch
|adamwlarson
adamwlarson
|alarno
alarno
| +|QuinsZouls
QuinsZouls
|andreastempsch
andreastempsch
|atlasgong
atlasgong
|Atlogit
Atlogit
|bogdan0083
bogdan0083
|chadgauth
chadgauth
| +|dleen
dleen
|dbasclpy
dbasclpy
|snoyiatk
snoyiatk
|linegel
linegel
|celestial-vault
celestial-vault
|DeXtroTip
DeXtroTip
| +|hesara
hesara
|eltociear
eltociear
|Jdo300
Jdo300
|shtse8
shtse8
|libertyteeth
libertyteeth
|mamertofabian
mamertofabian
| +|marvijo-code
marvijo-code
|kvokka
kvokka
|Sarke
Sarke
|01Rian
01Rian
|samsilveira
samsilveira
|maekawataiki
maekawataiki
| +|tgfjt
tgfjt
|tmsjngx0
tmsjngx0
|NamesMT
NamesMT
|vladstudio
vladstudio
|Yoshino-Yukitaro
Yoshino-Yukitaro
| | ## 授權 diff --git a/src/core/task-persistence/taskMetadata.ts b/src/core/task-persistence/taskMetadata.ts index 659ba580cf0..9784e622958 100644 --- a/src/core/task-persistence/taskMetadata.ts +++ b/src/core/task-persistence/taskMetadata.ts @@ -9,7 +9,7 @@ import { findLastIndex } from "../../shared/array" import { HistoryItem } from "../../shared/HistoryItem" import { getTaskDirectoryPath } from "../../shared/storagePathManager" -const taskSizeCache = new NodeCache({ stdTTL: 5 * 60, checkperiod: 30 }) +const taskSizeCache = new NodeCache({ stdTTL: 30, checkperiod: 5 * 60 }) export type TaskMetadataOptions = { messages: ClineMessage[] From 7dbbed0872efec289c3bd835ee6e52e8e84f40a3 Mon Sep 17 00:00:00 2001 From: cte Date: Wed, 23 Apr 2025 12:14:57 -0700 Subject: [PATCH 7/8] Remove these --- scripts/benchmark-results.md | 67 -------- scripts/benchmark-task-messages.ts | 254 ----------------------------- 2 files changed, 321 deletions(-) delete mode 100644 scripts/benchmark-results.md delete mode 100644 scripts/benchmark-task-messages.ts diff --git a/scripts/benchmark-results.md b/scripts/benchmark-results.md deleted file mode 100644 index a56e60ff184..00000000000 --- a/scripts/benchmark-results.md +++ /dev/null @@ -1,67 +0,0 @@ -# Task Message Storage Benchmark Results - -## Overview - -This document summarizes the performance comparison between JSON and JSONL (JSON Lines) formats for storing task messages in the Roo Code extension. - -## Test Methodology - -We benchmarked two different implementations: - -1. **JSON Implementation**: Stores all messages in a single JSON array. Each append operation requires reading the entire file, parsing it, adding the new message, and writing the entire file back. - -2. **JSONL Implementation**: Stores each message as a separate line of JSON. Each append operation simply appends the new message to the end of the file. - -The benchmark included: - -- Individual append operations with varying file sizes (10 to 50,000 messages) -- A sequential test simulating adding 100 messages in sequence (real-world scenario) - -## Results - -### Individual Append Operations - -| Message Count | JSON (ms) | JSONL (ms) | Speedup | -| ------------- | --------- | ---------- | ------- | -| 10 | 0.17 | 0.10 | 1.74x | -| 100 | 0.15 | 0.08 | 2.00x | -| 1,000 | 0.17 | 0.08 | 2.15x | -| 10,000 | 0.32 | 0.13 | 2.51x | -| 50,000 | 0.22 | 0.10 | 2.10x | - -### Sequential Append Test (100 messages) - -| Implementation | Total Time (ms) | -| -------------- | --------------- | -| JSON | 36.51 | -| JSONL | 5.57 | -| **Speedup** | **6.56x** | - -## Analysis - -1. **Individual Operations**: JSONL consistently outperforms JSON by a factor of 1.7x to 2.5x for individual append operations. - -2. **Sequential Operations**: The performance gap widens dramatically in the sequential test, with JSONL being 6.56x faster than JSON. This better represents real-world usage where messages are added over time. - -3. **Scaling Characteristics**: - - - JSON performance degrades as the file size increases because it must process the entire file for each operation - - JSONL maintains consistent performance regardless of file size since it only appends to the end - -4. **Memory Usage**: While not directly measured, the JSON implementation requires loading the entire message history into memory, which could cause issues with very large conversations. - -## Recommendation - -**Strongly recommend adopting the JSONL implementation** for task message storage for the following reasons: - -1. **Superior Performance**: Significantly faster, especially for sequential operations that mirror real-world usage patterns (6.56x speedup) - -2. **Better Scaling**: Performance remains consistent regardless of conversation size - -3. **Lower Memory Footprint**: Only needs to process the new message, not the entire conversation history - -4. **Append-Optimized**: Perfectly suited for chat applications where new messages are frequently added - -5. **Streaming Compatibility**: Easier to implement streaming reads for large conversation histories - -The performance advantage of JSONL becomes increasingly significant as conversations grow larger, making it the clear choice for a chat-based application like Roo Code. diff --git a/scripts/benchmark-task-messages.ts b/scripts/benchmark-task-messages.ts deleted file mode 100644 index f3780798336..00000000000 --- a/scripts/benchmark-task-messages.ts +++ /dev/null @@ -1,254 +0,0 @@ -#!/usr/bin/env node - -// npx tsx scripts/benchmark-task-messages.ts - -import * as fs from "fs/promises" -import * as path from "path" -import { performance } from "perf_hooks" - -// Import only the type -import type { ClineMessage } from "../src/shared/ExtensionMessage" - -// Constants -const BENCHMARK_DIR = path.join(process.cwd(), "benchmark-test-storage") -const TASK_ID = "benchmark-test-task" -const TASK_DIR = path.join(BENCHMARK_DIR, TASK_ID) - -// File paths for both implementations -const JSON_FILE_PATH = path.join(TASK_DIR, "messages.json") -const JSONL_FILE_PATH = path.join(TASK_DIR, "messages.jsonl") - -// Function to create a sample message with much longer text -const createSampleMessage = (): ClineMessage => { - // Generate a long text message to better simulate real-world data - const longText = `This is a much longer test message that simulates a real-world conversation with an AI assistant. -It contains multiple paragraphs and a significant amount of text to better demonstrate the performance differences -between JSON and JSONL formats when dealing with larger message sizes. - -When working with large datasets or conversation histories, the efficiency of storage and retrieval becomes increasingly -important. This benchmark helps quantify those differences by measuring the time it takes to append messages using -both approaches. - -The JSON approach requires reading the entire file, parsing it into memory, appending the new message, and then -writing the entire content back to disk. This becomes increasingly expensive as the file grows larger. - -The JSONL approach, on the other hand, simply appends the new message to the end of the file without needing to -read or parse existing content. This should theoretically provide better performance, especially as the number -of messages increases. - -This benchmark will help us determine at what point the performance difference becomes significant and whether -the JSONL approach provides meaningful benefits for our specific use case in the VS Code extension.` - - return { - ts: Date.now(), - type: "say", - say: "text", - text: longText, - } -} - -// Function to create a directory if it doesn't exist -async function ensureDirectoryExists(dirPath: string): Promise { - try { - await fs.mkdir(dirPath, { recursive: true }) - } catch (error) { - console.error(`Error creating directory ${dirPath}:`, error) - throw error - } -} - -// Function to create test files with a specified number of messages -async function createTestFiles(messageCount: number): Promise { - console.log(`Creating test files with ${messageCount} messages...`) - - // Create JSON test file - const jsonMessages: ClineMessage[] = [] - for (let i = 0; i < messageCount; i++) { - jsonMessages.push(createSampleMessage()) - } - await fs.writeFile(JSON_FILE_PATH, JSON.stringify(jsonMessages)) - - // Create JSONL test file - const jsonlContent = jsonMessages.map((msg) => JSON.stringify(msg)).join("\n") - await fs.writeFile(JSONL_FILE_PATH, jsonlContent) - - console.log("Test files created successfully.") -} - -// Simplified implementation of saveTaskMessages -async function saveTaskMessages({ - messages, - taskId, - globalStoragePath, -}: { - messages: ClineMessage[] - taskId: string - globalStoragePath: string -}): Promise { - // For the benchmark, we write directly to the specified file - const filePath = path.join(globalStoragePath, "messages.json") - await fs.writeFile(filePath, JSON.stringify(messages)) -} - -// Simplified implementation of appendTaskMessage -async function appendTaskMessage({ - message, - taskId, - globalStoragePath, -}: { - message: ClineMessage - taskId: string - globalStoragePath: string -}): Promise { - // For the benchmark, we append directly to the specified file - const filePath = path.join(globalStoragePath, "messages.jsonl") - await fs.appendFile(filePath, JSON.stringify(message) + "\n") -} - -// Function to benchmark JSON implementation -async function benchmarkJSON(iterations: number): Promise { - const durations: number[] = [] - const messages: ClineMessage[] = [] - - for (let i = 0; i < iterations; i++) { - const newMessage = createSampleMessage() - - // Benchmark saveTaskMessages - const start = performance.now() - messages.push(newMessage) - await saveTaskMessages({ messages, taskId: TASK_ID, globalStoragePath: TASK_DIR }) - const end = performance.now() - - durations.push(end - start) - } - - return durations -} - -// Function to benchmark JSONL implementation -async function benchmarkJSONL(iterations: number): Promise { - const durations: number[] = [] - - for (let i = 0; i < iterations; i++) { - const newMessage = createSampleMessage() - - // Benchmark appendTaskMessage - const start = performance.now() - await appendTaskMessage({ message: newMessage, taskId: TASK_ID, globalStoragePath: TASK_DIR }) - const end = performance.now() - - durations.push(end - start) - } - - return durations -} - -// Function to calculate statistics -function calculateStats(durations: number[]): { min: number; max: number; avg: number; median: number } { - const sorted = [...durations].sort((a, b) => a - b) - return { - min: sorted[0], - max: sorted[sorted.length - 1], - avg: durations.reduce((sum, val) => sum + val, 0) / durations.length, - median: sorted[Math.floor(sorted.length / 2)], - } -} - -// Main benchmark function -async function runBenchmark(): Promise { - try { - // Ensure benchmark directory exists - await ensureDirectoryExists(TASK_DIR) - - // Define message counts to test - const messageCounts = [10, 100, 1000, 10000, 50000] - // Number of iterations for each test - const iterations = 10 - - // Add a sequential append test - async function runSequentialTest() { - console.log("\nRunning Sequential Append Test (100 messages in sequence)...") - console.log("This test simulates a more realistic scenario where messages are added over time") - - // Create empty files - await fs.writeFile(JSON_FILE_PATH, JSON.stringify([])) - await fs.writeFile(JSONL_FILE_PATH, "") - - // Test JSON sequential append - const jsonStart = performance.now() - let jsonMessages: ClineMessage[] = [] - - for (let i = 0; i < 100; i++) { - // For JSON, we need to read the entire file each time - jsonMessages = JSON.parse(await fs.readFile(JSON_FILE_PATH, "utf8")) - jsonMessages.push(createSampleMessage()) - await fs.writeFile(JSON_FILE_PATH, JSON.stringify(jsonMessages)) - } - - const jsonEnd = performance.now() - const jsonDuration = jsonEnd - jsonStart - - // Test JSONL sequential append - const jsonlStart = performance.now() - - for (let i = 0; i < 100; i++) { - // For JSONL, we just append - await fs.appendFile(JSONL_FILE_PATH, JSON.stringify(createSampleMessage()) + "\n") - } - - const jsonlEnd = performance.now() - const jsonlDuration = jsonlEnd - jsonlStart - - // Calculate speedup - const sequentialSpeedup = jsonDuration / jsonlDuration - - console.log(`JSON sequential append time: ${jsonDuration.toFixed(2)} ms`) - console.log(`JSONL sequential append time: ${jsonlDuration.toFixed(2)} ms`) - console.log(`Sequential append speedup: ${sequentialSpeedup.toFixed(2)}x`) - } - - console.log("Starting benchmark...") - console.log("=============================================") - console.log("| Message Count | Implementation | Min (ms) | Max (ms) | Avg (ms) | Median (ms) |") - console.log("|---------------|---------------|----------|----------|----------|-------------|") - - for (const count of messageCounts) { - // Create test files with the specified number of messages - await createTestFiles(count) - - // Benchmark JSON implementation - const jsonDurations = await benchmarkJSON(iterations) - const jsonStats = calculateStats(jsonDurations) - - // Reset the files to ensure consistent state - await createTestFiles(count) - - // Benchmark JSONL implementation - const jsonlDurations = await benchmarkJSONL(iterations) - const jsonlStats = calculateStats(jsonlDurations) - - // Print results - console.log( - `| ${count.toString().padEnd(13)} | JSON | ${jsonStats.min.toFixed(2).padEnd(8)} | ${jsonStats.max.toFixed(2).padEnd(8)} | ${jsonStats.avg.toFixed(2).padEnd(8)} | ${jsonStats.median.toFixed(2).padEnd(11)} |`, - ) - console.log( - `| ${" ".padEnd(13)} | JSONL | ${jsonlStats.min.toFixed(2).padEnd(8)} | ${jsonlStats.max.toFixed(2).padEnd(8)} | ${jsonlStats.avg.toFixed(2).padEnd(8)} | ${jsonlStats.median.toFixed(2).padEnd(11)} |`, - ) - - // Calculate and print speedup - const avgSpeedup = jsonStats.avg / jsonlStats.avg - console.log(`| ${" ".padEnd(13)} | Speedup | ${avgSpeedup.toFixed(2)}x ${" ".repeat(37)} |`) - console.log("|---------------|---------------|----------|----------|----------|-------------|") - } - - console.log("Benchmark completed!") - - // Run the sequential test - await runSequentialTest() - } catch (error) { - console.error("Error running benchmark:", error) - } -} - -// Run the benchmark -runBenchmark() From fc9d4f57013068353d5223ba0195ebbd6614d808 Mon Sep 17 00:00:00 2001 From: cte Date: Wed, 23 Apr 2025 12:15:32 -0700 Subject: [PATCH 8/8] Add changeset --- .changeset/dull-hats-swim.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/dull-hats-swim.md diff --git a/.changeset/dull-hats-swim.md b/.changeset/dull-hats-swim.md new file mode 100644 index 00000000000..55bd00f33b6 --- /dev/null +++ b/.changeset/dull-hats-swim.md @@ -0,0 +1,5 @@ +--- +"roo-cline": patch +--- + +Add a JSONL version of task persistence