From bac7b5591ea1cffd7498483c4378cfd60c6ce1d9 Mon Sep 17 00:00:00 2001 From: Gemini Nexus Bot Date: Tue, 28 Apr 2026 03:49:34 -0300 Subject: [PATCH 1/8] style(design): apply Minimal Dark Mode design system\n\n- Switched to complete Dark Mode (OLED-friendly)\n- Established standard color palette matching modern technical aesthetics\n- Changed font to Plus Jakarta Sans for increased legibility\n- Enforced dark mode as default in App.tsx\n- Fixed several React cascading render (setState in useEffect) warnings --- .agent/skills/openspec-apply-change/SKILL.md | 318 +- .../skills/openspec-archive-change/SKILL.md | 232 +- .../openspec-bulk-archive-change/SKILL.md | 504 +- .../skills/openspec-continue-change/SKILL.md | 246 +- .agent/skills/openspec-explore/SKILL.md | 602 +- .agent/skills/openspec-ff-change/SKILL.md | 216 +- .agent/skills/openspec-new-change/SKILL.md | 166 +- .agent/skills/openspec-onboard/SKILL.md | 1098 +- .agent/skills/openspec-sync-specs/SKILL.md | 288 +- .agent/skills/openspec-verify-change/SKILL.md | 342 +- .agent/skills/project_overview/SKILL.md | 176 +- .agent/skills/ui-ux-pro-max/SKILL.md | 618 +- .agent/skills/ui-ux-pro-max/data/charts.csv | 52 +- .agent/skills/ui-ux-pro-max/data/colors.csv | 194 +- .agent/skills/ui-ux-pro-max/data/icons.csv | 202 +- .agent/skills/ui-ux-pro-max/data/landing.csv | 62 +- .agent/skills/ui-ux-pro-max/data/products.csv | 192 +- .../ui-ux-pro-max/data/react-performance.csv | 90 +- .../ui-ux-pro-max/data/stacks/astro.csv | 108 +- .../ui-ux-pro-max/data/stacks/flutter.csv | 106 +- .../data/stacks/html-tailwind.csv | 112 +- .../data/stacks/jetpack-compose.csv | 106 +- .../ui-ux-pro-max/data/stacks/nextjs.csv | 106 +- .../ui-ux-pro-max/data/stacks/nuxt-ui.csv | 102 +- .../ui-ux-pro-max/data/stacks/nuxtjs.csv | 118 +- .../data/stacks/react-native.csv | 104 +- .../ui-ux-pro-max/data/stacks/react.csv | 108 +- .../ui-ux-pro-max/data/stacks/shadcn.csv | 122 +- .../ui-ux-pro-max/data/stacks/svelte.csv | 108 +- .../ui-ux-pro-max/data/stacks/swiftui.csv | 102 +- .../skills/ui-ux-pro-max/data/stacks/vue.csv | 100 +- .agent/skills/ui-ux-pro-max/data/styles.csv | 136 +- .../skills/ui-ux-pro-max/data/typography.csv | 114 +- .../ui-ux-pro-max/data/ui-reasoning.csv | 202 +- .../ui-ux-pro-max/data/ux-guidelines.csv | 198 +- .../ui-ux-pro-max/data/web-interface.csv | 62 +- .agent/skills/ui-ux-pro-max/scripts/core.py | 506 +- .../ui-ux-pro-max/scripts/design_system.py | 2134 +- .agent/skills/ui-ux-pro-max/scripts/search.py | 228 +- .../vercel-composition-patterns/AGENTS.md | 1834 +- .../vercel-composition-patterns/SKILL.md | 176 +- .../rules/architecture-avoid-boolean-props.md | 188 +- .../rules/architecture-compound-components.md | 216 +- .../patterns-children-over-render-props.md | 168 +- .../rules/patterns-explicit-variants.md | 188 +- .../rules/react19-no-forwardref.md | 84 +- .../rules/state-context-interface.md | 382 +- .../rules/state-decouple-implementation.md | 206 +- .../rules/state-lift-state.md | 250 +- .../vercel-react-best-practices/AGENTS.md | 5766 ++-- .../vercel-react-best-practices/SKILL.md | 276 +- .../rules/advanced-event-handler-refs.md | 110 +- .../rules/advanced-init-once.md | 84 +- .../rules/advanced-use-latest.md | 78 +- .../rules/async-api-routes.md | 70 +- .../rules/async-defer-await.md | 160 +- .../rules/async-dependencies.md | 96 +- .../rules/async-parallel.md | 48 +- .../rules/async-suspense-boundaries.md | 198 +- .../rules/bundle-barrel-imports.md | 118 +- .../rules/bundle-conditional.md | 74 +- .../rules/bundle-defer-third-party.md | 96 +- .../rules/bundle-dynamic-imports.md | 68 +- .../rules/bundle-preload.md | 88 +- .../rules/client-event-listeners.md | 156 +- .../rules/client-localstorage-schema.md | 148 +- .../rules/client-passive-event-listeners.md | 96 +- .../rules/client-swr-dedup.md | 112 +- .../rules/js-batch-dom-css.md | 220 +- .../rules/js-cache-function-results.md | 160 +- .../rules/js-cache-property-access.md | 56 +- .../rules/js-cache-storage.md | 136 +- .../rules/js-combine-iterations.md | 64 +- .../rules/js-early-exit.md | 100 +- .../rules/js-hoist-regexp.md | 90 +- .../rules/js-index-maps.md | 74 +- .../rules/js-length-check-first.md | 100 +- .../rules/js-min-max-loop.md | 164 +- .../rules/js-set-map-lookups.md | 48 +- .../rules/js-tosorted-immutable.md | 114 +- .../rules/rendering-activity.md | 52 +- .../rules/rendering-animate-svg-wrapper.md | 76 +- .../rules/rendering-conditional-render.md | 64 +- .../rules/rendering-content-visibility.md | 76 +- .../rules/rendering-hoist-jsx.md | 72 +- .../rules/rendering-hydration-no-flicker.md | 144 +- .../rendering-hydration-suppress-warning.md | 52 +- .../rules/rendering-svg-precision.md | 56 +- .../rules/rendering-usetransition-loading.md | 150 +- .../rules/rerender-defer-reads.md | 78 +- .../rules/rerender-dependencies.md | 90 +- .../rules/rerender-derived-state-no-effect.md | 80 +- .../rules/rerender-derived-state.md | 58 +- .../rules/rerender-functional-setstate.md | 154 +- .../rules/rerender-lazy-state-init.md | 112 +- .../rules/rerender-memo-with-default-value.md | 72 +- .../rules/rerender-memo.md | 88 +- .../rules/rerender-move-effect-to-event.md | 90 +- .../rerender-simple-expression-in-memo.md | 70 +- .../rules/rerender-transitions.md | 80 +- .../rerender-use-ref-transient-values.md | 146 +- .../rules/server-after-nonblocking.md | 146 +- .../rules/server-auth-actions.md | 192 +- .../rules/server-cache-lru.md | 82 +- .../rules/server-cache-react.md | 152 +- .../rules/server-dedup-props.md | 130 +- .../rules/server-parallel-fetching.md | 166 +- .../rules/server-serialization.md | 76 +- .agent/skills/web-design-guidelines/SKILL.md | 80 +- .agent/workflows/opsx-apply.md | 304 +- .agent/workflows/opsx-archive.md | 312 +- .agent/workflows/opsx-bulk-archive.md | 490 +- .agent/workflows/opsx-continue.md | 232 +- .agent/workflows/opsx-explore.md | 358 +- .agent/workflows/opsx-ff.md | 196 +- .agent/workflows/opsx-new.md | 150 +- .agent/workflows/opsx-onboard.md | 1084 +- .agent/workflows/opsx-sync.md | 274 +- .agent/workflows/opsx-verify.md | 328 +- .../skills/lodash-es-runtime-guards/SKILL.md | 148 +- .../vercel-composition-patterns/AGENTS.md | 1892 +- .../vercel-composition-patterns/SKILL.md | 178 +- .../rules/architecture-avoid-boolean-props.md | 200 +- .../rules/architecture-compound-components.md | 224 +- .../patterns-children-over-render-props.md | 174 +- .../rules/patterns-explicit-variants.md | 200 +- .../rules/react19-no-forwardref.md | 84 +- .../rules/state-context-interface.md | 382 +- .../rules/state-decouple-implementation.md | 226 +- .../rules/state-lift-state.md | 250 +- .../vercel-react-best-practices/AGENTS.md | 5868 ++-- .../vercel-react-best-practices/SKILL.md | 272 +- .../rules/advanced-event-handler-refs.md | 110 +- .../rules/advanced-init-once.md | 84 +- .../rules/advanced-use-latest.md | 78 +- .../rules/async-api-routes.md | 76 +- .../rules/async-defer-await.md | 160 +- .../rules/async-dependencies.md | 102 +- .../rules/async-parallel.md | 56 +- .../rules/async-suspense-boundaries.md | 198 +- .../rules/bundle-barrel-imports.md | 118 +- .../rules/bundle-conditional.md | 62 +- .../rules/bundle-defer-third-party.md | 98 +- .../rules/bundle-dynamic-imports.md | 70 +- .../rules/bundle-preload.md | 100 +- .../rules/client-event-listeners.md | 148 +- .../rules/client-localstorage-schema.md | 142 +- .../rules/client-passive-event-listeners.md | 96 +- .../rules/client-swr-dedup.md | 112 +- .../rules/js-batch-dom-css.md | 214 +- .../rules/js-cache-function-results.md | 160 +- .../rules/js-cache-property-access.md | 56 +- .../rules/js-cache-storage.md | 140 +- .../rules/js-combine-iterations.md | 64 +- .../rules/js-early-exit.md | 100 +- .../rules/js-hoist-regexp.md | 90 +- .../rules/js-index-maps.md | 74 +- .../rules/js-length-check-first.md | 98 +- .../rules/js-min-max-loop.md | 164 +- .../rules/js-set-map-lookups.md | 48 +- .../rules/js-tosorted-immutable.md | 114 +- .../rules/rendering-activity.md | 52 +- .../rules/rendering-animate-svg-wrapper.md | 94 +- .../rules/rendering-conditional-render.md | 80 +- .../rules/rendering-content-visibility.md | 76 +- .../rules/rendering-hoist-jsx.md | 92 +- .../rules/rendering-hydration-no-flicker.md | 164 +- .../rendering-hydration-suppress-warning.md | 60 +- .../rules/rendering-svg-precision.md | 56 +- .../rules/rendering-usetransition-loading.md | 150 +- .../rules/rerender-defer-reads.md | 78 +- .../rules/rerender-dependencies.md | 90 +- .../rules/rerender-derived-state-no-effect.md | 80 +- .../rules/rerender-derived-state.md | 58 +- .../rules/rerender-functional-setstate.md | 148 +- .../rules/rerender-lazy-state-init.md | 116 +- .../rules/rerender-memo-with-default-value.md | 76 +- .../rules/rerender-memo.md | 88 +- .../rules/rerender-move-effect-to-event.md | 90 +- .../rerender-simple-expression-in-memo.md | 70 +- .../rules/rerender-transitions.md | 80 +- .../rerender-use-ref-transient-values.md | 146 +- .../rules/server-after-nonblocking.md | 146 +- .../rules/server-auth-actions.md | 192 +- .../rules/server-cache-lru.md | 82 +- .../rules/server-cache-react.md | 152 +- .../rules/server-dedup-props.md | 130 +- .../rules/server-parallel-fetching.md | 166 +- .../rules/server-serialization.md | 76 +- .agents/skills/web-design-guidelines/SKILL.md | 78 +- .claude/commands/opsx/apply.md | 310 +- .claude/commands/opsx/archive.md | 318 +- .claude/commands/opsx/bulk-archive.md | 496 +- .claude/commands/opsx/continue.md | 238 +- .claude/commands/opsx/explore.md | 364 +- .claude/commands/opsx/ff.md | 202 +- .claude/commands/opsx/new.md | 156 +- .claude/commands/opsx/onboard.md | 1090 +- .claude/commands/opsx/sync.md | 280 +- .claude/commands/opsx/verify.md | 334 +- .claude/skills/openspec-apply-change/SKILL.md | 318 +- .../skills/openspec-archive-change/SKILL.md | 232 +- .../openspec-bulk-archive-change/SKILL.md | 504 +- .../skills/openspec-continue-change/SKILL.md | 246 +- .claude/skills/openspec-explore/SKILL.md | 602 +- .claude/skills/openspec-ff-change/SKILL.md | 216 +- .claude/skills/openspec-new-change/SKILL.md | 166 +- .claude/skills/openspec-onboard/SKILL.md | 1098 +- .claude/skills/openspec-sync-specs/SKILL.md | 288 +- .../skills/openspec-verify-change/SKILL.md | 342 +- .codex/prompts/opsx-apply.md | 306 +- .codex/prompts/opsx-archive.md | 314 +- .codex/prompts/opsx-bulk-archive.md | 492 +- .codex/prompts/opsx-continue.md | 234 +- .codex/prompts/opsx-explore.md | 360 +- .codex/prompts/opsx-ff.md | 198 +- .codex/prompts/opsx-new.md | 152 +- .codex/prompts/opsx-onboard.md | 1086 +- .codex/prompts/opsx-sync.md | 276 +- .codex/prompts/opsx-verify.md | 330 +- .codex/skills/openspec-apply-change/SKILL.md | 318 +- .../skills/openspec-archive-change/SKILL.md | 232 +- .../openspec-bulk-archive-change/SKILL.md | 504 +- .../skills/openspec-continue-change/SKILL.md | 246 +- .codex/skills/openspec-explore/SKILL.md | 602 +- .codex/skills/openspec-ff-change/SKILL.md | 216 +- .codex/skills/openspec-new-change/SKILL.md | 166 +- .codex/skills/openspec-onboard/SKILL.md | 1098 +- .codex/skills/openspec-sync-specs/SKILL.md | 288 +- .codex/skills/openspec-verify-change/SKILL.md | 342 +- .codex/skills/ui-ux-pro-max/SKILL.md | 618 +- .codex/skills/ui-ux-pro-max/data/charts.csv | 52 +- .codex/skills/ui-ux-pro-max/data/colors.csv | 194 +- .codex/skills/ui-ux-pro-max/data/icons.csv | 202 +- .codex/skills/ui-ux-pro-max/data/landing.csv | 62 +- .codex/skills/ui-ux-pro-max/data/products.csv | 192 +- .../ui-ux-pro-max/data/react-performance.csv | 90 +- .../ui-ux-pro-max/data/stacks/astro.csv | 108 +- .../ui-ux-pro-max/data/stacks/flutter.csv | 106 +- .../data/stacks/html-tailwind.csv | 112 +- .../data/stacks/jetpack-compose.csv | 106 +- .../ui-ux-pro-max/data/stacks/nextjs.csv | 106 +- .../ui-ux-pro-max/data/stacks/nuxt-ui.csv | 102 +- .../ui-ux-pro-max/data/stacks/nuxtjs.csv | 118 +- .../data/stacks/react-native.csv | 104 +- .../ui-ux-pro-max/data/stacks/react.csv | 108 +- .../ui-ux-pro-max/data/stacks/shadcn.csv | 122 +- .../ui-ux-pro-max/data/stacks/svelte.csv | 108 +- .../ui-ux-pro-max/data/stacks/swiftui.csv | 102 +- .../skills/ui-ux-pro-max/data/stacks/vue.csv | 100 +- .codex/skills/ui-ux-pro-max/data/styles.csv | 136 +- .../skills/ui-ux-pro-max/data/typography.csv | 114 +- .../ui-ux-pro-max/data/ui-reasoning.csv | 202 +- .../ui-ux-pro-max/data/ux-guidelines.csv | 198 +- .../ui-ux-pro-max/data/web-interface.csv | 62 +- .codex/skills/ui-ux-pro-max/scripts/core.py | 506 +- .../ui-ux-pro-max/scripts/design_system.py | 2134 +- .codex/skills/ui-ux-pro-max/scripts/search.py | 228 +- .github/ISSUE_TEMPLATE/bug_report.md | 80 +- .github/ISSUE_TEMPLATE/config.yml | 16 +- .github/ISSUE_TEMPLATE/feature_request.md | 58 +- .github/dependabot.yaml | 12 +- .github/release-drafter.yml | 80 +- .github/workflows/format.yaml | 58 +- .github/workflows/lint.yaml | 58 +- .github/workflows/publish.yaml | 438 +- .github/workflows/release.yml | 68 +- .github/workflows/testing.yaml | 106 +- .gitignore | 254 +- .impeccable.md | 58 +- .nvmrc | 2 +- .../02-REVIEW-summary.md | 116 +- .../02-code-review-command/02-REVIEW.md | 204 +- .../01-feature-brainstorm.md | 184 +- .../02-ui-ux-improvements.md | 162 +- .../03-advanced-features.md | 250 +- .../04-code-organization.md | 312 +- .../05-code-quality-issues.md | 264 +- .../06-architecture-overview.md | 282 +- .prettierignore | 24 +- .prettierrc | 22 +- .vscode/launch.json | 82 +- .vscode/settings.json | 14 +- AGENTS.md | 734 +- CHANGELOG.md | 622 +- CLAUDE.md | 2 +- CODE_OF_CONDUCT.md | 98 +- CONTRIBUTING.md | 370 +- LICENSE | 832 +- SECURITY.md | 186 +- _tmp_10142_d6920fbf37dd1a47118114537d708c3a | 0 _tmp_10168_2d77345e09dba8e5ac58358010112226 | 0 _tmp_10193_03a7ae0b49c32d7774471bebe192f1e1 | 0 _tmp_10218_5fa9f622a542a36f9cf26dbaa50c8b5b | 0 _tmp_10272_ccd8b7a0c8f9051b03a0460aa1bd14ac | 0 _tmp_10567_10e1be0681d49ef09421675630f82b68 | 0 agm.bat | 6 +- cli/README.md | 394 +- cli/core.py | 1860 +- cli/main.py | 1216 +- cli/proto_utils.py | 252 +- cli/requirements.txt | 18 +- components.json | 40 +- docs/OpencodeAPI.md | 552 +- docs/brand-briefing.md | 292 +- docs/cloud_features.md | 192 +- docs/proxyman-debugging.md | 488 +- docs/proxyman-install.md | 280 +- eslint.config.mjs | 106 +- fix-ts.js | 88 +- flake.lock | 54 +- flake.nix | 242 +- forge.config.ts | 1052 +- forge.env.d.ts | 2 +- index.html | 28 +- .../add-multiarch-release-artifacts/design.md | 72 +- .../proposal.md | 40 +- .../specs/release-packaging/spec.md | 82 +- .../add-multiarch-release-artifacts/tasks.md | 14 +- .../design.md | 70 +- .../proposal.md | 70 +- .../specs/ide-auth-compat/spec.md | 84 +- .../improve-cross-platform-stability/tasks.md | 34 +- .../localize-app-chinese-default/design.md | 60 +- .../localize-app-chinese-default/proposal.md | 82 +- .../specs/localization/spec.md | 118 +- .../localize-app-chinese-default/tasks.md | 20 +- .../changes/refactor-db-drizzle/design.md | 70 +- .../changes/refactor-db-drizzle/proposal.md | 34 +- .../specs/database-access/spec.md | 42 +- openspec/changes/refactor-db-drizzle/tasks.md | 38 +- .../support-wsl-environment/proposal.md | 66 +- .../changes/support-wsl-environment/tasks.md | 10 +- .../acceptance-checklist.md | 80 +- .../design.md | 100 +- .../proposal.md | 78 +- .../device-fingerprint-hardening/spec.md | 218 +- .../tasks.md | 88 +- .../update-ide-auth-compat-1165/design.md | 76 +- .../update-ide-auth-compat-1165/proposal.md | 68 +- .../specs/ide-auth-compat/spec.md | 70 +- .../update-ide-auth-compat-1165/tasks.md | 38 +- openspec/project.md | 332 +- package-lock.json | 839 +- package.json | 3 + playwright.config.ts | 46 +- pnpm-lock.yaml | 445 +- pnpm-workspace.yaml | 24 +- prettier.config.cjs | 30 +- release.config.cjs | 518 +- rename-deep.js | 236 +- run_cli.bat | 6 +- scripts/build-windows.js | 102 +- scripts/generate-assets.ts | 298 +- scripts/setup-dev.js | 619 + scripts/start-antigravity-with-proxyman.ps1 | 236 +- src/App.tsx | 76 +- src/actions/account.ts | 108 +- src/actions/app.ts | 18 +- src/actions/cloud.ts | 272 +- src/actions/database.ts | 28 +- src/actions/language.ts | 40 +- src/actions/process.ts | 26 +- src/actions/system.ts | 10 +- src/actions/theme.ts | 102 +- src/actions/window.ts | 22 +- ...Image 28 de abr. de 2026, 01_33_45 (2).png | Bin 0 -> 896297 bytes ...PT Image Apr 23, 2026, 02_17_29 AM (2).png | Bin 0 -> 88964 bytes ...PT Image Apr 23, 2026, 02_17_30 AM (3).png | Bin 0 -> 110313 bytes src/assets/icon - Copy.png | Bin 0 -> 753518 bytes src/assets/icon.png | Bin 399609 -> 753518 bytes ...a_fundo_transparente_sem_bordas_pretas.png | Bin 0 -> 44830 bytes ...preta_fundo_transparente_sem_contornos.png | Bin 0 -> 38314 bytes src/assets/tray.png | Bin 659 -> 44830 bytes src/components/AccountCard.tsx | 376 +- src/components/AccountProxySettings.tsx | 230 +- src/components/CloudAccountCard.tsx | 1636 +- src/components/CloudAccountList.tsx | 2320 +- src/components/IdentityProfileDialog.tsx | 863 +- src/components/ModelVisibilitySettings.tsx | 546 +- src/components/ProviderGroup.tsx | 284 +- src/components/StatusBar.tsx | 292 +- src/components/accountValidationStatus.ts | 52 +- src/components/drag-window-region.tsx | 174 +- src/components/navigation-menu.tsx | 50 +- src/components/proxy/ProxyAdvancedTab.tsx | 78 +- .../proxy/advanced/CapabilitiesTab.tsx | 376 +- src/components/proxy/advanced/MonitorTab.tsx | 418 +- src/components/proxy/advanced/ReplayTab.tsx | 346 +- src/components/proxy/advanced/ToolsTab.tsx | 268 +- .../proxy/advanced/TrafficLogTable.tsx | 380 +- src/components/theme-provider.tsx | 138 +- src/components/toggle-theme.tsx | 22 +- src/components/ui/avatar.tsx | 88 +- src/components/ui/badge.tsx | 62 +- src/components/ui/button.tsx | 112 +- src/components/ui/card.tsx | 110 +- src/components/ui/checkbox.tsx | 56 +- src/components/ui/dialog.tsx | 204 +- src/components/ui/dropdown-menu.tsx | 396 +- src/components/ui/input.tsx | 46 +- src/components/ui/label.tsx | 36 +- src/components/ui/navigation-menu.tsx | 322 +- src/components/ui/select.tsx | 306 +- src/components/ui/skeleton.tsx | 14 +- src/components/ui/switch.tsx | 52 +- src/components/ui/tabs.tsx | 104 +- src/components/ui/toast.tsx | 250 +- src/components/ui/toaster.tsx | 62 +- src/components/ui/toggle-group.tsx | 138 +- src/components/ui/toggle.tsx | 88 +- src/components/ui/tooltip.tsx | 56 +- src/components/ui/use-toast.ts | 370 +- src/components/usage/ChartCard.tsx | 134 +- src/components/usage/NivoTooltip.tsx | 120 +- src/components/usage/StatCard.tsx | 142 +- src/constants/index.ts | 18 +- src/hooks/useAppConfig.ts | 262 +- src/hooks/useCloudAccounts.ts | 366 +- src/hooks/useProviderGrouping.ts | 172 +- src/instrument.ts | 120 +- src/ipc/account/handler.ts | 966 +- src/ipc/account/router.ts | 206 +- src/ipc/app/handlers.ts | 20 +- src/ipc/app/index.ts | 14 +- src/ipc/cloud/authServer.ts | 272 +- src/ipc/cloud/handler.ts | 1686 +- src/ipc/cloud/router.ts | 610 +- src/ipc/config/handlers.ts | 44 +- src/ipc/config/manager.ts | 166 +- src/ipc/config/router.ts | 34 +- src/ipc/context.ts | 52 +- src/ipc/database/cloudHandler.ts | 3102 +- src/ipc/database/dbConnection.ts | 68 +- src/ipc/database/handler.ts | 698 +- src/ipc/database/proxyMetricsHandler.ts | 904 +- src/ipc/database/router.ts | 48 +- src/ipc/database/schema.ts | 154 +- src/ipc/database/usageHandler.ts | 548 +- src/ipc/device/handler.ts | 1434 +- src/ipc/gateway/handlers.ts | 120 +- src/ipc/gateway/router.ts | 72 +- src/ipc/handler.ts | 68 +- src/ipc/manager.ts | 84 +- src/ipc/process/handler.ts | 130 +- src/ipc/proxy-advanced/handler.ts | 744 +- src/ipc/proxy-advanced/router.ts | 446 +- src/ipc/proxy-advanced/service-registry.ts | 78 +- src/ipc/router.ts | 122 +- src/ipc/switchFlow.ts | 178 +- src/ipc/switchGuard.ts | 160 +- src/ipc/switchMetrics.ts | 226 +- src/ipc/system/handler.ts | 144 +- src/ipc/theme/handlers.ts | 66 +- src/ipc/theme/index.ts | 16 +- src/ipc/theme/schemas.ts | 6 +- src/ipc/tray/handler.ts | 392 +- src/ipc/tray/i18n.ts | 144 +- src/ipc/usage/router.ts | 140 +- src/ipc/window/handlers.ts | 52 +- src/ipc/window/index.ts | 16 +- src/layouts/MainLayout.tsx | 388 +- src/lib/geminiNexus/ClaudeRequestMapper.ts | 1482 +- src/lib/geminiNexus/ClaudeResponseMapper.ts | 526 +- src/lib/geminiNexus/ClaudeStreamingMapper.ts | 970 +- src/lib/geminiNexus/JsonSchemaUtils.ts | 416 +- src/lib/geminiNexus/ModelMapping.ts | 610 +- src/lib/geminiNexus/ModelSpecs.ts | 82 +- src/lib/geminiNexus/QuotaService.ts | 384 +- src/lib/geminiNexus/SignatureStore.ts | 134 +- src/lib/geminiNexus/model-specs.json | 104 +- src/lib/geminiNexus/model-specs.ts | 108 +- src/lib/geminiNexus/retry-utils.ts | 98 +- src/lib/geminiNexus/signature-utils.ts | 64 +- src/lib/geminiNexus/stream-error-utils.ts | 150 +- src/lib/geminiNexus/thinking-utils.ts | 234 +- src/lib/geminiNexus/types.ts | 896 +- src/lib/nivo-theme.ts | 122 +- src/lib/utils.ts | 12 +- src/localization/i18n.ts | 3682 +-- src/localization/vi.ts | 1102 +- src/main.ts | 1008 +- src/mocks/empty.ts | 10 +- src/mocks/nestjs-microservices/index.ts | 2 +- .../microservices-module.ts | 2 +- src/mocks/nestjs-websockets/index.ts | 2 +- src/mocks/nestjs-websockets/socket-module.ts | 2 +- src/preload.ts | 120 +- src/renderer.ts | 30 +- src/routes/__root.tsx | 40 +- src/routes/index.tsx | 106 +- src/routes/proxy.tsx | 1864 +- src/routes/settings.tsx | 788 +- src/routes/usage.tsx | 994 +- src/server/app.module.ts | 18 +- src/server/guards/admin.guard.ts | 50 +- src/server/guards/api-key-auth.util.ts | 102 +- src/server/logging/api-logger.ts | 198 +- src/server/logging/api-logging.plugin.ts | 282 +- src/server/main.ts | 188 +- .../modules/proxy/clients/gemini.client.ts | 896 +- .../modules/proxy/clients/upstream-error.ts | 78 +- src/server/modules/proxy/gemini.controller.ts | 606 +- .../proxy/interfaces/request-interfaces.ts | 432 +- .../modules/proxy/proxy-event-bus.service.ts | 42 +- .../modules/proxy/proxy-ide-config.service.ts | 252 +- .../modules/proxy/proxy-metrics.service.ts | 226 +- .../modules/proxy/proxy-replay.service.ts | 596 +- .../proxy/proxy-transform.interceptor.ts | 112 +- src/server/modules/proxy/proxy.controller.ts | 3704 +-- src/server/modules/proxy/proxy.guard.ts | 84 +- src/server/modules/proxy/proxy.module.ts | 64 +- src/server/modules/proxy/proxy.service.ts | 4508 +-- .../modules/proxy/rate-limit-tracker.ts | 862 +- .../modules/proxy/request-user-agent.ts | 448 +- .../modules/proxy/token-manager.service.ts | 2614 +- .../modules/usage/token-usage.service.ts | 98 +- src/server/server-config.ts | 22 +- src/services/AutoSwitchService.ts | 216 +- src/services/CloudMonitorService.ts | 516 +- src/services/GoogleAPIService.ts | 2006 +- src/styles/global.css | 615 +- src/tests/GeminiNexusCoreFeatures.test.ts | 358 +- src/tests/e2e/app.spec.ts | 242 +- src/tests/e2e/example.test.ts | 78 +- .../request/openai.chat-tools.expected.json | 118 +- .../request/openai.chat-tools.input.json | 102 +- .../response/anthropic.tool-use.expected.json | 44 +- .../response/anthropic.tool-use.input.json | 42 +- .../stream/openai-from-gemini.expected.json | 16 +- .../stream/openai-from-gemini.input.json | 36 +- .../scripts/project-id-request-validation.ts | 764 +- src/tests/unit/account.test.ts | 356 +- src/tests/unit/cloud-monitor.test.ts | 660 +- src/tests/unit/cloudHandler-sync.test.ts | 1582 +- .../unit/components/AccountCard.test.tsx | 484 +- .../unit/components/ProviderGroup.test.tsx | 278 +- src/tests/unit/components/ui/button.test.tsx | 142 +- src/tests/unit/components/ui/card.test.tsx | 214 +- src/tests/unit/components/ui/input.test.tsx | 132 +- .../unit/components/usage/ChartCard.test.tsx | 186 +- .../unit/components/usage/StatCard.test.tsx | 248 +- src/tests/unit/database-backup-keys.test.ts | 168 +- src/tests/unit/database.test.ts | 358 +- .../gemini-controller.integration.test.ts | 344 +- src/tests/unit/geminiNexusVersion.test.ts | 114 +- src/tests/unit/google-api-timeout.test.ts | 874 +- src/tests/unit/hooks/useCloudAccounts.test.ts | 540 +- .../unit/hooks/useProviderGrouping.test.ts | 366 +- src/tests/unit/ipc/cloud-repo.test.ts | 460 +- src/tests/unit/ipc/config-handler.test.ts | 246 +- src/tests/unit/ipc/database-handler.test.ts | 512 +- src/tests/unit/ipc/device-handler.test.ts | 262 +- .../unit/ipc/proxy-advanced-handler.test.ts | 916 +- src/tests/unit/ipc/proxy-metrics-repo.test.ts | 308 +- src/tests/unit/logger.test.ts | 204 +- src/tests/unit/mocks/better-sqlite3.ts | 152 +- src/tests/unit/mocks/electron.ts | 176 +- src/tests/unit/mocks/keytar.ts | 38 +- src/tests/unit/mocks/tanstack-query.tsx | 56 +- src/tests/unit/parity-rollout-guard.test.ts | 216 +- src/tests/unit/paths.test.ts | 70 +- src/tests/unit/process.test.ts | 212 +- src/tests/unit/protobuf-unified.test.ts | 130 +- src/tests/unit/provider-grouping.test.ts | 394 +- .../unit/proxy-controller.integration.test.ts | 1088 +- src/tests/unit/proxy-parity-fixtures.test.ts | 204 +- src/tests/unit/proxy-retry-mock.test.ts | 1396 +- src/tests/unit/proxy-stream-debug.test.ts | 660 +- src/tests/unit/proxy-tool-streaming.test.ts | 346 +- src/tests/unit/rate-limit-tracker.test.ts | 216 +- src/tests/unit/retry-utils.test.ts | 118 +- src/tests/unit/security-migration.test.ts | 244 +- src/tests/unit/sensitive-data-masking.test.ts | 192 +- .../unit/server/api-key-auth.util.test.ts | 168 +- .../unit/server/auto-switch.service.test.ts | 410 +- .../unit/server/google-api.service.test.ts | 318 +- .../server/proxy-event-bus.service.test.ts | 144 +- .../server/proxy-ide-config.service.test.ts | 294 +- .../unit/server/proxy-metrics.service.test.ts | 346 +- .../unit/server/proxy-replay.service.test.ts | 462 +- .../unit/server/token-usage.service.test.ts | 254 +- src/tests/unit/setup.ts | 122 +- src/tests/unit/signature-utils.test.ts | 96 +- src/tests/unit/stream-error-utils.test.ts | 122 +- src/tests/unit/streaming-state.test.ts | 210 +- src/tests/unit/test-utils.tsx | 248 +- src/tests/unit/thinking-utils.test.ts | 180 +- src/tests/unit/toggle-theme.test.tsx | 54 +- .../token-manager-parity-scheduling.test.ts | 506 +- src/tests/unit/usage-handler.test.ts | 386 +- src/tests/unit/usage-router.test.ts | 174 +- src/types.d.ts | 48 +- src/types/account.ts | 202 +- src/types/cloudAccount.ts | 276 +- src/types/config.ts | 194 +- src/types/db.ts | 272 +- src/types/theme-mode.ts | 2 +- src/utils/account-status.ts | 150 +- src/utils/autoStart.ts | 252 +- src/utils/errorMessages.ts | 158 +- src/utils/geminiNexusVersion.ts | 362 +- src/utils/googleAuthSubmission.ts | 30 +- src/utils/installNotice.ts | 302 +- src/utils/logger.ts | 390 +- src/utils/paths.ts | 550 +- src/utils/protobuf.ts | 952 +- src/utils/provider-grouping.ts | 412 +- src/utils/quota-display.ts | 238 +- src/utils/routes.ts | 32 +- src/utils/security.ts | 990 +- src/utils/sensitiveDataMasking.ts | 214 +- src/utils/sqlite.ts | 136 +- src/utils/traffic-logger.ts | 572 +- src/utils/url.ts | 46 +- test-process.ts | 98 +- thoughts/ledgers/CONTINUITY_ses_2337.md | 148 +- thoughts/ledgers/CONTINUITY_ses_2338.md | 160 +- thoughts/ledgers/CONTINUITY_ses_2344.md | 206 +- thoughts/ledgers/CONTINUITY_ses_24bf.md | 176 +- tools/wix314/LICENSE.TXT | 56 +- tools/wix314/candle.exe.config | 18 +- tools/wix314/dark.exe.config | 24 +- tools/wix314/doc/Dependency.xsd | 442 +- tools/wix314/doc/bal.xsd | 524 +- tools/wix314/doc/complus.xsd | 1888 +- tools/wix314/doc/difxapp.xsd | 216 +- tools/wix314/doc/firewall.xsd | 422 +- tools/wix314/doc/gaming.xsd | 254 +- tools/wix314/doc/http.xsd | 296 +- tools/wix314/doc/iis.xsd | 2208 +- tools/wix314/doc/lux.xsd | 442 +- tools/wix314/doc/msmq.xsd | 242 +- tools/wix314/doc/netfx.xsd | 470 +- tools/wix314/doc/ps.xsd | 402 +- tools/wix314/doc/sql.xsd | 684 +- tools/wix314/doc/tag.xsd | 308 +- tools/wix314/doc/thmutil.xsd | 1414 +- tools/wix314/doc/util.xsd | 3252 +- tools/wix314/doc/vs.xsd | 584 +- tools/wix314/doc/wix.xsd | 26230 ++++++++-------- tools/wix314/doc/wixloc.xsd | 268 +- tools/wix314/heat.exe.config | 24 +- tools/wix314/insignia.exe.config | 18 +- tools/wix314/light.exe.config | 18 +- tools/wix314/lit.exe.config | 18 +- tools/wix314/lux.exe.config | 18 +- tools/wix314/lux.targets | 224 +- tools/wix314/melt.exe.config | 18 +- tools/wix314/pyro.exe.config | 18 +- tools/wix314/retina.exe.config | 18 +- tools/wix314/sdk/BootstrapperCore.config | 52 +- tools/wix314/sdk/BootstrapperCore.xml | 5626 ++-- tools/wix314/sdk/MakeSfxCA.exe.config | 20 +- .../Microsoft.Deployment.Compression.Cab.xml | 990 +- .../Microsoft.Deployment.Compression.Zip.xml | 1104 +- .../sdk/Microsoft.Deployment.Compression.xml | 3932 +-- .../sdk/Microsoft.Deployment.Resources.xml | 1082 +- ...osoft.Deployment.WindowsInstaller.Linq.xml | 928 +- ...ft.Deployment.WindowsInstaller.Package.xml | 1458 +- .../Microsoft.Deployment.WindowsInstaller.xml | 14828 ++++----- .../sdk/inc/BalBaseBootstrapperApplication.h | 1390 +- .../wix314/sdk/inc/IBootstrapperApplication.h | 1510 +- .../wix314/sdk/inc/IBootstrapperBAFunction.h | 58 +- tools/wix314/sdk/inc/IBootstrapperEngine.h | 454 +- tools/wix314/sdk/inc/aclutil.h | 306 +- tools/wix314/sdk/inc/apputil.h | 90 +- tools/wix314/sdk/inc/apuputil.h | 172 +- tools/wix314/sdk/inc/atomutil.h | 292 +- tools/wix314/sdk/inc/balcondition.h | 116 +- tools/wix314/sdk/inc/balinfo.h | 218 +- tools/wix314/sdk/inc/balretry.h | 128 +- tools/wix314/sdk/inc/balutil.h | 236 +- tools/wix314/sdk/inc/buffutil.h | 160 +- tools/wix314/sdk/inc/butil.h | 62 +- tools/wix314/sdk/inc/cabcutil.h | 124 +- tools/wix314/sdk/inc/cabutil.h | 112 +- tools/wix314/sdk/inc/certutil.h | 132 +- tools/wix314/sdk/inc/conutil.h | 194 +- tools/wix314/sdk/inc/cryputil.h | 206 +- tools/wix314/sdk/inc/custommsierrors.h | 260 +- tools/wix314/sdk/inc/deputil.h | 294 +- tools/wix314/sdk/inc/dictutil.h | 138 +- tools/wix314/sdk/inc/dirutil.h | 118 +- tools/wix314/sdk/inc/dlutil.h | 118 +- tools/wix314/sdk/inc/dutil.h | 428 +- tools/wix314/sdk/inc/eseutil.h | 446 +- tools/wix314/sdk/inc/fileutil.h | 438 +- tools/wix314/sdk/inc/gdiputil.h | 60 +- tools/wix314/sdk/inc/iis7util.h | 444 +- tools/wix314/sdk/inc/inetutil.h | 78 +- tools/wix314/sdk/inc/iniutil.h | 146 +- tools/wix314/sdk/inc/jsonutil.h | 224 +- tools/wix314/sdk/inc/locutil.h | 264 +- tools/wix314/sdk/inc/logutil.h | 400 +- tools/wix314/sdk/inc/memutil.h | 110 +- tools/wix314/sdk/inc/metautil.h | 104 +- tools/wix314/sdk/inc/osutil.h | 78 +- tools/wix314/sdk/inc/pathutil.h | 456 +- tools/wix314/sdk/inc/perfutil.h | 48 +- tools/wix314/sdk/inc/polcutil.h | 78 +- tools/wix314/sdk/inc/procutil.h | 158 +- tools/wix314/sdk/inc/regutil.h | 466 +- tools/wix314/sdk/inc/resrutil.h | 86 +- tools/wix314/sdk/inc/reswutil.h | 62 +- tools/wix314/sdk/inc/rexutil.h | 108 +- tools/wix314/sdk/inc/rmutil.h | 92 +- tools/wix314/sdk/inc/rssutil.h | 178 +- tools/wix314/sdk/inc/sceutil.h | 522 +- tools/wix314/sdk/inc/shelutil.h | 94 +- tools/wix314/sdk/inc/sqlutil.h | 272 +- tools/wix314/sdk/inc/srputil.h | 90 +- tools/wix314/sdk/inc/strutil.h | 622 +- tools/wix314/sdk/inc/svcutil.h | 42 +- tools/wix314/sdk/inc/thmutil.h | 1112 +- tools/wix314/sdk/inc/timeutil.h | 68 +- tools/wix314/sdk/inc/uriutil.h | 200 +- tools/wix314/sdk/inc/userutil.h | 64 +- tools/wix314/sdk/inc/wcalog.h | 28 +- tools/wix314/sdk/inc/wcautil.h | 738 +- tools/wix314/sdk/inc/wcawow64.h | 40 +- tools/wix314/sdk/inc/wcawrapquery.h | 260 +- tools/wix314/sdk/inc/wiutil.h | 746 +- tools/wix314/sdk/inc/wuautil.h | 38 +- tools/wix314/sdk/inc/xmlutil.h | 334 +- tools/wix314/sdk/wix.ca.targets | 432 +- tools/wix314/sdk/wix.nativeca.targets | 42 +- tools/wix314/shine.exe.config | 18 +- tools/wix314/smoke.exe.config | 18 +- tools/wix314/torch.exe.config | 18 +- tools/wix314/wix.targets | 6156 ++-- tsconfig.json | 76 +- tsconfig.node.json | 26 +- types/forge.d.ts | 76 +- vite.main.config.mts | 110 +- vite.preload.config.mts | 70 +- vite.renderer.config.mts | 124 +- vitest.config.mjs | 78 +- 738 files changed, 138513 insertions(+), 138123 deletions(-) create mode 100644 _tmp_10142_d6920fbf37dd1a47118114537d708c3a create mode 100644 _tmp_10168_2d77345e09dba8e5ac58358010112226 create mode 100644 _tmp_10193_03a7ae0b49c32d7774471bebe192f1e1 create mode 100644 _tmp_10218_5fa9f622a542a36f9cf26dbaa50c8b5b create mode 100644 _tmp_10272_ccd8b7a0c8f9051b03a0460aa1bd14ac create mode 100644 _tmp_10567_10e1be0681d49ef09421675630f82b68 create mode 100644 scripts/setup-dev.js create mode 100644 src/assets/ChatGPT Image 28 de abr. de 2026, 01_33_45 (2).png create mode 100644 src/assets/ChatGPT Image Apr 23, 2026, 02_17_29 AM (2).png create mode 100644 src/assets/ChatGPT Image Apr 23, 2026, 02_17_30 AM (3).png create mode 100644 src/assets/icon - Copy.png create mode 100644 src/assets/logo_branca_fundo_transparente_sem_bordas_pretas.png create mode 100644 src/assets/logo_preta_fundo_transparente_sem_contornos.png diff --git a/.agent/skills/openspec-apply-change/SKILL.md b/.agent/skills/openspec-apply-change/SKILL.md index 147e629..c169d4d 100644 --- a/.agent/skills/openspec-apply-change/SKILL.md +++ b/.agent/skills/openspec-apply-change/SKILL.md @@ -1,159 +1,159 @@ ---- -name: openspec-apply-change -description: Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks. -license: MIT -compatibility: Requires openspec CLI. -metadata: - author: openspec - version: '1.0' - generatedBy: '1.1.1' ---- - -Implement tasks from an OpenSpec change. - -**Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes. - -**Steps** - -1. **Select the change** - - If a name is provided, use it. Otherwise: - - Infer from conversation context if the user mentioned a change - - Auto-select if only one active change exists - - If ambiguous, run `openspec list --json` to get available changes and use the **AskUserQuestion tool** to let the user select - - Always announce: "Using change: " and how to override (e.g., `/opsx:apply `). - -2. **Check status to understand the schema** - - ```bash - openspec status --change "" --json - ``` - - Parse the JSON to understand: - - `schemaName`: The workflow being used (e.g., "spec-driven") - - Which artifact contains the tasks (typically "tasks" for spec-driven, check status for others) - -3. **Get apply instructions** - - ```bash - openspec instructions apply --change "" --json - ``` - - This returns: - - Context file paths (varies by schema - could be proposal/specs/design/tasks or spec/tests/implementation/docs) - - Progress (total, complete, remaining) - - Task list with status - - Dynamic instruction based on current state - - **Handle states:** - - If `state: "blocked"` (missing artifacts): show message, suggest using openspec-continue-change - - If `state: "all_done"`: congratulate, suggest archive - - Otherwise: proceed to implementation - -4. **Read context files** - - Read the files listed in `contextFiles` from the apply instructions output. - The files depend on the schema being used: - - **spec-driven**: proposal, specs, design, tasks - - Other schemas: follow the contextFiles from CLI output - -5. **Show current progress** - - Display: - - Schema being used - - Progress: "N/M tasks complete" - - Remaining tasks overview - - Dynamic instruction from CLI - -6. **Implement tasks (loop until done or blocked)** - - For each pending task: - - Show which task is being worked on - - Make the code changes required - - Keep changes minimal and focused - - Mark task complete in the tasks file: `- [ ]` → `- [x]` - - Continue to next task - - **Pause if:** - - Task is unclear → ask for clarification - - Implementation reveals a design issue → suggest updating artifacts - - Error or blocker encountered → report and wait for guidance - - User interrupts - -7. **On completion or pause, show status** - - Display: - - Tasks completed this session - - Overall progress: "N/M tasks complete" - - If all done: suggest archive - - If paused: explain why and wait for guidance - -**Output During Implementation** - -``` -## Implementing: (schema: ) - -Working on task 3/7: -[...implementation happening...] -✓ Task complete - -Working on task 4/7: -[...implementation happening...] -✓ Task complete -``` - -**Output On Completion** - -``` -## Implementation Complete - -**Change:** -**Schema:** -**Progress:** 7/7 tasks complete ✓ - -### Completed This Session -- [x] Task 1 -- [x] Task 2 -... - -All tasks complete! Ready to archive this change. -``` - -**Output On Pause (Issue Encountered)** - -``` -## Implementation Paused - -**Change:** -**Schema:** -**Progress:** 4/7 tasks complete - -### Issue Encountered - - -**Options:** -1.