diff --git a/.changeset/config.json b/.changeset/config.json index e2acc376621d..cd76513fba8b 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -2,7 +2,7 @@ "$schema": "https://unpkg.com/@changesets/config@3.0.4/schema.json", "changelog": "./changelog-config.js", "commit": false, - "fixed": [["roo-cline"]], + "fixed": [["zgsm"]], "linked": [], "access": "restricted", "baseBranch": "main", diff --git a/.changeset/v3.29.4.md b/.changeset/v3.29.4.md deleted file mode 100644 index 4469bf14a412..000000000000 --- a/.changeset/v3.29.4.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"roo-cline": patch ---- - -- Add Minimax Provider support (thanks @Maosghoul!) -- Fix: custom modes under custom path not showing (#8122 by @hannesrudolph, PR by @elianiva) -- Fix: prevent MCP server restart when toggling tool permissions (#8231 by @hannesrudolph, PR by @heyseth) -- Fix: auto-sync enableReasoningEffort with reasoning dropdown selection (thanks @daniel-lxs!) -- Prevent noisy cloud agent exception (thanks @cte!) -- Docs: clarify VS Code LM API integration warning (thanks @hannesrudolph!) diff --git a/.env.sample b/.env.sample deleted file mode 100644 index aebe5cca44a6..000000000000 --- a/.env.sample +++ /dev/null @@ -1,6 +0,0 @@ -POSTHOG_API_KEY=key-goes-here - -# Roo Code Cloud / Local Development -CLERK_BASE_URL=https://epic-chamois-85.clerk.accounts.dev -ROO_CODE_API_URL=http://localhost:3000 -ROO_CODE_PROVIDER_URL=http://localhost:8080/proxy/v1 diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 2a350d20e8b4..b8b4de6b617c 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -1,3 +1,3 @@ -# Ran Prettier on all files - https://github.com/RooCodeInc/Roo-Code/pull/404 +# Ran Prettier on all files - https://github.com/zgsm-ai/costrict/pull/404 60a0a824b96a0b326af4d8871b6903f4ddcfe114 579bdd9dbf6d2d569e5e7adb5ff6292b1e42ea34 diff --git a/.gitattributes b/.gitattributes index e9e36432cdc4..ff24b908ad1f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16,10 +16,13 @@ locales/** linguist-generated=true # Mark all locale directories as generated first src/i18n/locales/** linguist-generated=true +src/i18n/costrict-i18n/locales/** linguist-generated=true webview-ui/src/i18n/locales/** linguist-generated=true +webview-ui/src/i18n/costrict-i18n/locales/** linguist-generated=true # Then explicitly mark English directories as NOT generated (override the above) src/i18n/locales/en/** linguist-generated=false webview-ui/src/i18n/locales/en/** linguist-generated=false - +src/i18n/costrict-i18n/locales/en/** linguist-generated=false +webview-ui/src/i18n/costrict-i18n/locales/en/** linguist-generated=false # This approach uses gitattributes' last-match-wins rule to exclude English while including all other locales diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 9e22303a3509..15989bb469ad 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -7,7 +7,7 @@ body: attributes: value: | Thank you for your report! Please search existing issues first: - https://github.com/RooCodeInc/Roo-Code/issues + https://github.com/zgsm-ai/costrict/issues - type: textarea id: problem @@ -62,19 +62,53 @@ body: description: Different browsers, devices, providers, or settings you tried. placeholder: e.g., "Tried Chrome/Firefox, disabling dark theme, switching providers." - - type: input - id: version - attributes: - label: App Version - description: What version of Roo Code are you using? (e.g., v3.3.1) - validations: - required: true + - type: dropdown + id: provider + attributes: + label: API Provider + description: Choose the API provider involved + multiple: false + options: + - Zgsm + - Anthropic + - AWS Bedrock + - Chutes AI + - DeepSeek + - Fireworks AI + - Glama + - Google Gemini + - Google Vertex AI + - Groq + - Human Relay Provider + - LiteLLM + - LM Studio + - Mistral AI + - Ollama + - OpenAI + - OpenAI Compatible + - OpenRouter + - Requesty + - SambaNova + - Unbound + - VS Code Language Model API + - xAI (Grok) + - Not Applicable / Other + validations: + required: true + - type: input + id: model + attributes: + label: Model Used + description: Exact model name (e.g., Claude 3.7 Sonnet). Use N/A if irrelevant. + validations: + required: true - type: dropdown id: provider attributes: label: API Provider (optional) options: + - CoStrict - Anthropic - AWS Bedrock - Chutes AI @@ -106,13 +140,6 @@ body: label: Model Used (optional) description: Exact model name (e.g., Claude 3.7 Sonnet). Use N/A if irrelevant. - - type: textarea - id: roo-code-tasks - attributes: - label: Roo Code Task Links (optional) - description: If you have any publicly shared Roo Code task links that demonstrate the issue, paste them here. - placeholder: Paste your Roo Code share links here, one per line - - type: textarea id: logs attributes: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 0351ad193010..df08a36de229 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: false contact_links: - name: Feature Request - url: https://github.com/RooCodeInc/Roo-Code/discussions/categories/feature-requests - about: Share and vote on feature requests for Roo Code + url: https://github.com/zgsm-ai/costrict/discussions/categories/feature-requests + about: Share and vote on feature requests for CoStrict - name: Leave a Review - url: https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline&ssr=false#review-details - about: Enjoying Roo Code? Leave a review here! + url: https://marketplace.visualstudio.com/items?itemName=zgsm-ai.zgsm&ssr=false#review-details + about: Enjoying CoStrict? Leave a review here! diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 7e140ec08cc8..251a36de0ae2 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -6,7 +6,7 @@ body: - type: markdown attributes: value: | - Thank you for helping improve Roo Code! + Thank you for helping improve CoStrict! Please focus on the problem and the desired behavior in plain language. - type: textarea @@ -53,13 +53,6 @@ body: - label: This describes a specific problem with clear context and impact required: true - - type: textarea - id: roo-code-tasks - attributes: - label: Roo Code Task Links (optional) - description: If you explored this with Roo Code, share public task links for context. - placeholder: Paste your Roo Code share links here, one per line - - type: markdown attributes: value: | diff --git a/.github/ISSUE_TEMPLATE/marketplace.yml b/.github/ISSUE_TEMPLATE/marketplace.yml index f314ca520a13..2ee51cb26aac 100644 --- a/.github/ISSUE_TEMPLATE/marketplace.yml +++ b/.github/ISSUE_TEMPLATE/marketplace.yml @@ -5,7 +5,7 @@ body: - type: markdown attributes: value: | - **Thanks for your feedback!** Please check existing issues first: https://github.com/RooCodeInc/Roo-Code/issues + **Thanks for your feedback!** Please check existing issues first: https://github.com/zgsm-ai/costrict/issues - type: dropdown id: feedback-type diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index e83e44cd66d4..0ed46b7f29e7 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,5 +1,5 @@ -### Roo Code Task Context (Optional) - - - ### Description +### Type of Change + + + +- [ ] 🐛 **Bug Fix**: Non-breaking change that fixes an issue. +- [ ] ✨ **New Feature**: Non-breaking change that adds functionality. +- [ ] 💥 **Breaking Change**: Fix or feature that would cause existing functionality to not work as expected. +- [ ] ♻️ **Refactor**: Code change that neither fixes a bug nor adds a feature. +- [ ] 💅 **Style**: Changes that do not affect the meaning of the code (white-space, formatting, etc.). +- [ ] 📚 **Documentation**: Updates to documentation files. +- [ ] ⚙️ **Build/CI**: Changes to the build process or CI configuration. +- [ ] 🧹 **Chore**: Other changes that don't modify `src` or test files. + ### Pre-Submission Checklist @@ -45,9 +50,18 @@ Detail the steps to test your changes. This helps reviewers verify your work. - [ ] **Issue Linked**: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above). - [ ] **Scope**: My changes are focused on the linked issue (one major feature/fix per PR). - [ ] **Self-Review**: I have performed a thorough self-review of my code. -- [ ] **Testing**: New and/or updated tests have been added to cover my changes (if applicable). +- [ ] **Code Quality**: + - [ ] My code adheres to the project's style guidelines. + - [ ] There are no new linting errors or warnings (`npm run lint`). + - [ ] All debug code (e.g., `console.log`) has been removed. +- [ ] **Testing**: + - [ ] New and/or updated tests have been added to cover my changes. + - [ ] All tests pass locally (`npm test`). + - [ ] The application builds successfully with my changes. +- [ ] **Branch Hygiene**: My branch is up-to-date (rebased) with the `main` branch. - [ ] **Documentation Impact**: I have considered if my changes require documentation updates (see "Documentation Updates" section below). -- [ ] **Contribution Guidelines**: I have read and agree to the [Contributor Guidelines](/CONTRIBUTING.md). +- [ ] **Changeset**: A changeset has been created using `npm run changeset` if this PR includes user-facing changes or dependency updates. +- [ ] **Contribution Guidelines**: I have read and agree to the [Contributor Guidelines](../CONTRIBUTING.md). ### Screenshots / Videos diff --git a/.github/workflows/code-qa.yml b/.github/workflows/code-qa.yml index f8ac0c8642ba..bbbf33a6e2e3 100644 --- a/.github/workflows/code-qa.yml +++ b/.github/workflows/code-qa.yml @@ -1,12 +1,16 @@ -name: Code QA Roo Code +name: Code QA CoStrict on: workflow_dispatch: push: - branches: [main] + branches: + - main + - dev pull_request: types: [opened, reopened, ready_for_review, synchronize] - branches: [main] + branches: + - main + - dev jobs: check-translations: @@ -19,30 +23,18 @@ jobs: - name: Verify all translations are complete run: node scripts/find-missing-translations.js - knip: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - name: Setup Node.js and pnpm - uses: ./.github/actions/setup-node-pnpm - - name: Run knip checks - run: pnpm knip + # knip: + # runs-on: ubuntu-latest + # steps: + # - name: Checkout code + # uses: actions/checkout@v4 + # - name: Setup Node.js and pnpm + # uses: ./.github/actions/setup-node-pnpm + # - name: Run knip checks + # run: pnpm knip compile: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - name: Setup Node.js and pnpm - uses: ./.github/actions/setup-node-pnpm - - name: Lint - run: pnpm lint - - name: Check types - run: pnpm check-types - - unit-test: - name: platform-unit-test (${{ matrix.name }}) + name: platform-compile (${{ matrix.name }}) runs-on: ${{ matrix.os }} strategy: matrix: @@ -56,68 +48,17 @@ jobs: uses: actions/checkout@v4 - name: Setup Node.js and pnpm uses: ./.github/actions/setup-node-pnpm - - name: Run unit tests - run: pnpm test - - check-openrouter-api-key: - runs-on: ubuntu-latest - outputs: - exists: ${{ steps.openrouter-api-key-check.outputs.defined }} - steps: - - name: Check if OpenRouter API key exists - id: openrouter-api-key-check - shell: bash - run: | - if [ "${{ secrets.OPENROUTER_API_KEY }}" != '' ]; then - echo "defined=true" >> $GITHUB_OUTPUT; - else - echo "defined=false" >> $GITHUB_OUTPUT; - fi + - name: Lint + run: pnpm lint + - name: Check types + run: pnpm check-types - integration-test: + unit-test: runs-on: ubuntu-latest - needs: [check-openrouter-api-key] - if: needs.check-openrouter-api-key.outputs.exists == 'true' steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js and pnpm uses: ./.github/actions/setup-node-pnpm - - name: Create .env.local file - working-directory: apps/vscode-e2e - run: echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" > .env.local - - name: Set VS Code test version - run: echo "VSCODE_VERSION=1.101.2" >> $GITHUB_ENV - - name: Cache VS Code test runtime - uses: actions/cache@v4 - with: - path: apps/vscode-e2e/.vscode-test - key: ${{ runner.os }}-vscode-test-${{ env.VSCODE_VERSION }} - - name: Pre-download VS Code test runtime with retry - working-directory: apps/vscode-e2e - run: | - for attempt in 1 2 3; do - echo "Download attempt $attempt of 3..." - node -e " - const { downloadAndUnzipVSCode } = require('@vscode/test-electron'); - downloadAndUnzipVSCode({ version: process.env.VSCODE_VERSION || '1.101.2' }) - .then(() => { - console.log('✅ VS Code test runtime downloaded successfully'); - process.exit(0); - }) - .catch(err => { - console.error('❌ Failed to download VS Code (attempt $attempt):', err); - process.exit(1); - }); - " && break || { - if [ $attempt -eq 3 ]; then - echo "All download attempts failed" - exit 1 - fi - echo "Retrying in 5 seconds..." - sleep 5 - } - done - - name: Run integration tests - working-directory: apps/vscode-e2e - run: xvfb-run -a pnpm test:ci + - name: Run unit tests + run: pnpm test \ No newline at end of file diff --git a/.github/workflows/marketplace-publish.yml b/.github/workflows/marketplace-publish.yml index aef91b2d3231..3628d7c615c2 100644 --- a/.github/workflows/marketplace-publish.yml +++ b/.github/workflows/marketplace-publish.yml @@ -37,34 +37,34 @@ jobs: pnpm vsix # Save VSIX contents to a temporary file to avoid broken pipe issues. - unzip -l bin/roo-cline-${current_package_version}.vsix > /tmp/roo-code-vsix-contents.txt + unzip -l bin/zgsm-${current_package_version}.vsix > /tmp/costrict-vsix-contents.txt # Check for required files. - grep -q "extension/package.json" /tmp/roo-code-vsix-contents.txt || exit 1 - grep -q "extension/package.nls.json" /tmp/roo-code-vsix-contents.txt || exit 1 - grep -q "extension/dist/extension.js" /tmp/roo-code-vsix-contents.txt || exit 1 - grep -q "extension/webview-ui/audio/celebration.wav" /tmp/roo-code-vsix-contents.txt || exit 1 - grep -q "extension/webview-ui/build/assets/index.js" /tmp/roo-code-vsix-contents.txt || exit 1 - grep -q "extension/assets/codicons/codicon.ttf" /tmp/roo-code-vsix-contents.txt || exit 1 - grep -q "extension/assets/vscode-material-icons/icons/3d.svg" /tmp/roo-code-vsix-contents.txt || exit 1 - grep -q ".env" /tmp/roo-code-vsix-contents.txt || exit 1 + grep -q "extension/package.json" /tmp/costrict-vsix-contents.txt || exit 1 + grep -q "extension/package.nls.json" /tmp/costrict-vsix-contents.txt || exit 1 + grep -q "extension/dist/extension.js" /tmp/costrict-vsix-contents.txt || exit 1 + grep -q "extension/webview-ui/audio/celebration.wav" /tmp/costrict-vsix-contents.txt || exit 1 + grep -q "extension/webview-ui/build/assets/index.js" /tmp/costrict-vsix-contents.txt || exit 1 + grep -q "extension/assets/codicons/codicon.ttf" /tmp/costrict-vsix-contents.txt || exit 1 + grep -q "extension/assets/vscode-material-icons/icons/3d.svg" /tmp/costrict-vsix-contents.txt || exit 1 + grep -q ".env" /tmp/costrict-vsix-contents.txt || exit 1 # Clean up temporary file. - rm /tmp/roo-code-vsix-contents.txt + rm /tmp/costrict-vsix-contents.txt - name: Create and Push Git Tag run: | current_package_version=$(node -p "require('./src/package.json').version") git tag -a "v${current_package_version}" -m "Release v${current_package_version}" git push origin "v${current_package_version}" --no-verify echo "Successfully created and pushed git tag v${current_package_version}" - - name: Publish Extension - env: - VSCE_PAT: ${{ secrets.VSCE_PAT }} - OVSX_PAT: ${{ secrets.OVSX_PAT }} - run: | - current_package_version=$(node -p "require('./src/package.json').version") - pnpm --filter roo-cline publish:marketplace - echo "Successfully published version $current_package_version to VS Code Marketplace" + # - name: Publish Extension + # env: + # VSCE_PAT: ${{ secrets.VSCE_PAT }} + # OVSX_PAT: ${{ secrets.OVSX_PAT }} + # run: | + # current_package_version=$(node -p "require('./src/package.json').version") + # pnpm --filter zgsm publish:marketplace + # echo "Successfully published version $current_package_version to VS Code Marketplace" - name: Create GitHub Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -88,5 +88,5 @@ jobs: --title "Release v${current_package_version}" \ --notes "$changelog_content" \ --target ${{ env.GIT_REF }} \ - bin/roo-cline-${current_package_version}.vsix + bin/zgsm-${current_package_version}.vsix echo "Successfully created GitHub Release v${current_package_version}" diff --git a/.github/workflows/nightly-publish.yml b/.github/workflows/nightly-publish.yml index e25bdba990af..696c574f83c4 100644 --- a/.github/workflows/nightly-publish.yml +++ b/.github/workflows/nightly-publish.yml @@ -42,11 +42,11 @@ jobs: EOF - name: Build VSIX run: pnpm vsix:nightly # Produces bin/roo-code-nightly-0.0.[count].vsix - - name: Publish to VS Code Marketplace - env: - VSCE_PAT: ${{ secrets.VSCE_PAT }} - run: npx vsce publish --packagePath "bin/$(/bin/ls bin | head -n1)" - - name: Publish to Open VSX Registry - env: - OVSX_PAT: ${{ secrets.OVSX_PAT }} - run: npx ovsx publish "bin/$(ls bin | head -n1)" + # - name: Publish to VS Code Marketplace + # env: + # VSCE_PAT: ${{ secrets.VSCE_PAT }} + # run: npx vsce publish --packagePath "bin/$(/bin/ls bin | head -n1)" + # - name: Publish to Open VSX Registry + # env: + # OVSX_PAT: ${{ secrets.OVSX_PAT }} + # run: npx ovsx publish "bin/$(ls bin | head -n1)" diff --git a/.github/workflows/website-deploy.yml b/.github/workflows/website-deploy.yml.disabled similarity index 98% rename from .github/workflows/website-deploy.yml rename to .github/workflows/website-deploy.yml.disabled index 20eea4288a94..6fcaf79f3e91 100644 --- a/.github/workflows/website-deploy.yml +++ b/.github/workflows/website-deploy.yml.disabled @@ -1,4 +1,4 @@ -name: Deploy roocode.com +name: Deploy costrict.ai on: push: diff --git a/.github/workflows/website-preview.yml b/.github/workflows/website-preview.yml.disabled similarity index 99% rename from .github/workflows/website-preview.yml rename to .github/workflows/website-preview.yml.disabled index 6966005eafb2..8e0b3e637813 100644 --- a/.github/workflows/website-preview.yml +++ b/.github/workflows/website-preview.yml.disabled @@ -1,4 +1,4 @@ -name: Preview roocode.com +name: Preview costrict.ai on: push: diff --git a/.gitignore b/.gitignore index e044fc32a7b1..924e5f042544 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,14 @@ .pnpm-store -dist +**/dist/** out out-* node_modules package-lock.json coverage/ mock/ - +.history .DS_Store - +.coignore # IDEs .idea diff --git a/.roo/commands/release.md b/.roo/commands/release.md index 8adf57e6f0cc..c7ee4576e7d2 100644 --- a/.roo/commands/release.md +++ b/.roo/commands/release.md @@ -11,7 +11,7 @@ argument-hint: patch | minor | major ``` --- -"roo-cline": patch|minor|major +"zgsm": patch|minor|major --- [list of changes] ``` diff --git a/.roo/rules-docs-extractor/2_documentation_patterns.xml b/.roo/rules-docs-extractor/2_documentation_patterns.xml index da743483dabe..8aafcb664276 100644 --- a/.roo/rules-docs-extractor/2_documentation_patterns.xml +++ b/.roo/rules-docs-extractor/2_documentation_patterns.xml @@ -141,7 +141,7 @@ ## Help - See the [FAQ](#faq) for common issues. -- Report problems on [GitHub Issues](https://github.com/RooCodeInc/Roo-Code/issues). +- Report problems on [GitHub Issues](https://github.com/zgsm-ai/costrict/issues). - Include reproduction steps and error messages. diff --git a/.roo/rules-issue-fixer/1_Workflow.xml b/.roo/rules-issue-fixer/1_Workflow.xml index 8aa595cde747..b0688167e212 100644 --- a/.roo/rules-issue-fixer/1_Workflow.xml +++ b/.roo/rules-issue-fixer/1_Workflow.xml @@ -9,7 +9,7 @@ - Repository name - Issue number - For example, from https://github.com/RooCodeInc/Roo-Code/issues/123: + For example, from https://github.com/zgsm-ai/costrict/issues/123: - Owner: RooCodeInc - Repo: Roo-Code - Issue: 123 diff --git a/.roo/rules-issue-fixer/9_pr_template.xml b/.roo/rules-issue-fixer/9_pr_template.xml index 4c35819b1f5e..d22bb04ba572 100644 --- a/.roo/rules-issue-fixer/9_pr_template.xml +++ b/.roo/rules-issue-fixer/9_pr_template.xml @@ -1,17 +1,17 @@ - This file contains the official Roo Code PR template that must be used when creating pull requests. + This file contains the official CoStrict PR template that must be used when creating pull requests. All PRs must follow this exact format to ensure consistency and proper documentation. - The PR body must follow this exact Roo Code PR template with all required sections. + The PR body must follow this exact CoStrict PR template with all required sections. Replace placeholder content in square brackets with actual information.