andrewyng/openworker
View on GitHub ↗
Internal79
Unique within the repo — the other 21% repeats across its own files.
Public63
Unique across all public code — a further 16% is its own but appears in other public repos too.
Original and tidy — it rarely repeats itself, and little of it turns up in other public code. About as close to genuinely its own work as this metric can measure.
Worth consolidating — in the code
Real, actionable duplication in this repo's source, most concrete first.
Longest identical blocks
The longest runs of identical consecutive lines copied between two files (indentation ignored) — the most concrete copy-paste. Lift the block into a shared function or module.
| Lines | File A | File B | Cross-repo |
|---|---|---|---|
| 24 | andrewyng/openworker/surfaces/gui/src/components/connectors/CalendarDetail.tsx:40 |
andrewyng/openworker/surfaces/gui/src/components/connectors/GmailDetail.tsx:42 |
same repo |
| 17 | andrewyng/openworker/surfaces/gui/src/components/connectors/GithubDetail.tsx:325 |
andrewyng/openworker/surfaces/gui/src/components/connectors/SlackDetail.tsx:610 |
same repo |
| 16 | andrewyng/openworker/tests/test_anthropic_provider.py:223 |
andrewyng/openworker/tests/test_gemini_provider.py:235 |
same repo |
| 15 | andrewyng/openworker/coworker/connectors/browser_automation.py:33 |
andrewyng/openworker/coworker/connectors/email_tools.py:318 |
same repo |
| 15 | andrewyng/openworker/surfaces/gui/src/components/PersonaView.test.tsx:8 |
andrewyng/openworker/surfaces/gui/src/components/Sidebar.test.tsx:9 |
same repo |
| 11 | andrewyng/openworker/coworker/connectors/gcal_accounts.py:86 |
andrewyng/openworker/coworker/connectors/gmail_accounts.py:91 |
same repo |
| 11 | andrewyng/openworker/coworker/providers/anthropic_provider.py:143 |
andrewyng/openworker/coworker/providers/gemini_provider.py:143 |
same repo |
| 10 | andrewyng/openworker/tests/test_engine.py:11 |
andrewyng/openworker/tests/test_engine_stop.py:12 |
same repo |
| 9 | andrewyng/openworker/surfaces/gui/src/components/connectors/AccountsDetail.tsx:46 |
andrewyng/openworker/surfaces/gui/src/components/connectors/CalendarDetail.tsx:40 |
same repo |
| 9 | andrewyng/openworker/surfaces/gui/src/components/connectors/AccountsDetail.tsx:46 |
andrewyng/openworker/surfaces/gui/src/components/connectors/GmailDetail.tsx:42 |
same repo |
| 9 | andrewyng/openworker/surfaces/gui/src/components/connectors/AccountsDetail.tsx:150 |
andrewyng/openworker/surfaces/gui/src/components/connectors/HubSpotDetail.tsx:128 |
same repo |
| 9 | andrewyng/openworker/surfaces/gui/src/components/connectors/CalendarDetail.tsx:123 |
andrewyng/openworker/surfaces/gui/src/components/connectors/HubSpotDetail.tsx:128 |
same repo |
| 9 | andrewyng/openworker/surfaces/gui/src/components/connectors/GmailDetail.tsx:127 |
andrewyng/openworker/surfaces/gui/src/components/connectors/HubSpotDetail.tsx:128 |
same repo |
| 9 | andrewyng/openworker/tests/test_gcal_accounts.py:27 |
andrewyng/openworker/tests/test_gmail_accounts.py:29 |
same repo |
| 8 | andrewyng/openworker/coworker/providers/anthropic_provider.py:26 |
andrewyng/openworker/coworker/providers/openai_provider.py:13 |
same repo |
| 8 | andrewyng/openworker/coworker/providers/gemini_provider.py:28 |
andrewyng/openworker/coworker/providers/openai_provider.py:13 |
same repo |
| 8 | andrewyng/openworker/surfaces/gui/src/components/Composer.tsx:627 |
andrewyng/openworker/surfaces/gui/src/components/Sidebar.tsx:780 |
same repo |
| 8 | andrewyng/openworker/surfaces/gui/src/components/ManageTabs.tsx:628 |
andrewyng/openworker/surfaces/gui/src/components/SettingsView.tsx:515 |
same repo |
| 8 | andrewyng/openworker/surfaces/gui/src/components/ManageTabs.tsx:37 |
andrewyng/openworker/surfaces/gui/src/providers/ProviderSetup.tsx:55 |
same repo |
| 8 | andrewyng/openworker/surfaces/gui/src/components/SubscriptionsChip.tsx:43 |
andrewyng/openworker/surfaces/gui/src/components/connectors/SlackDetail.tsx:398 |
same repo |
Top duplication hotspots
| Similarity | Overlap | File A | File B | Cross-repo |
|---|---|---|---|---|
| 25% | 496 | andrewyng/openworker/coworker/providers/anthropic_provider.py |
andrewyng/openworker/coworker/providers/gemini_provider.py |
same repo |
| 6% | 403 | andrewyng/openworker/coworker/server/app.py |
andrewyng/openworker/surfaces/gui/src/api.ts |
same repo |
| 30% | 359 | andrewyng/openworker/surfaces/gui/src/components/connectors/GithubDetail.tsx |
andrewyng/openworker/surfaces/gui/src/components/connectors/SlackDetail.tsx |
same repo |
| 5% | 300 | andrewyng/openworker/surfaces/gui/e2e/fixtures.ts |
andrewyng/openworker/surfaces/gui/src/api.ts |
same repo |
| 4% | 300 | andrewyng/openworker/surfaces/gui/src/App.tsx |
andrewyng/openworker/surfaces/gui/src/components/Sidebar.tsx |
same repo |
| 22% | 293 | andrewyng/openworker/tests/test_anthropic_provider.py |
andrewyng/openworker/tests/test_gemini_provider.py |
same repo |
| 52% | 274 | andrewyng/openworker/coworker/connectors/gcal_accounts.py |
andrewyng/openworker/coworker/connectors/gmail_accounts.py |
same repo |
| 41% | 269 | andrewyng/openworker/tests/test_gcal_accounts.py |
andrewyng/openworker/tests/test_gmail_accounts.py |
same repo |
| 3% | 268 | andrewyng/openworker/coworker/server/app.py |
andrewyng/openworker/surfaces/gui/e2e/fixtures.ts |
same repo |
| 11% | 256 | andrewyng/openworker/coworker/providers/anthropic_provider.py |
andrewyng/openworker/coworker/providers/openai_provider.py |
same repo |
| 4% | 252 | andrewyng/openworker/coworker/engine.py |
andrewyng/openworker/coworker/server/app.py |
same repo |
| 12% | 250 | andrewyng/openworker/coworker/connectors/adapters.py |
andrewyng/openworker/coworker/connectors/relay_client.py |
same repo |
| 4% | 240 | andrewyng/openworker/coworker/connectors/descriptors.py |
andrewyng/openworker/surfaces/gui/e2e/fixtures.ts |
same repo |
| 11% | 237 | andrewyng/openworker/coworker/providers/gemini_provider.py |
andrewyng/openworker/coworker/providers/openai_provider.py |
same repo |
| 4% | 210 | andrewyng/openworker/coworker/cloud.py |
andrewyng/openworker/coworker/server/app.py |
same repo |
| 3% | 200 | andrewyng/openworker/surfaces/gui/src/App.tsx |
andrewyng/openworker/surfaces/gui/src/api.ts |
same repo |
| 35% | 195 | andrewyng/openworker/coworker/connectors/accounts.py |
andrewyng/openworker/coworker/connectors/gcal_accounts.py |
same repo |
| 8% | 195 | andrewyng/openworker/surfaces/gui/src/components/ManageTabs.tsx |
andrewyng/openworker/surfaces/gui/src/components/connectors/SlackDetail.tsx |
same repo |
| 3% | 194 | andrewyng/openworker/coworker/server/app.py |
andrewyng/openworker/tests/test_server.py |
same repo |
| 4% | 193 | andrewyng/openworker/surfaces/gui/src/App.tsx |
andrewyng/openworker/surfaces/gui/src/components/Composer.tsx |
same repo |
Duplicate declarations
The same function, variable, class, or type name declared in more than one file — a fast copy-paste signal. Consider extracting a shared definition.
| Files | Declaration | Where |
|---|---|---|
| 39 | fn capabilities |
andrewyng/openworker/coworker/providers/anthropic_provider.pyandrewyng/openworker/coworker/providers/base.pyandrewyng/openworker/coworker/providers/gemini_provider.py+36 more |
| 39 | fn complete |
andrewyng/openworker/coworker/providers/anthropic_provider.pyandrewyng/openworker/coworker/providers/base.pyandrewyng/openworker/coworker/providers/gemini_provider.py+36 more |
| 17 | var row |
andrewyng/openworker/surfaces/gui/e2e-live/persona-install.spec.tsandrewyng/openworker/surfaces/gui/e2e/approval-card.spec.tsandrewyng/openworker/surfaces/gui/e2e/cloud-signin-placement.spec.ts+14 more |
| 14 | var box |
andrewyng/openworker/surfaces/gui/e2e-live/persona-install.spec.tsandrewyng/openworker/surfaces/gui/e2e/approval-card.spec.tsandrewyng/openworker/surfaces/gui/e2e/chat.spec.ts+11 more |
| 14 | type connector |
andrewyng/openworker/surfaces/gui/src/api.tsandrewyng/openworker/surfaces/gui/src/components/AccessSection.tsxandrewyng/openworker/surfaces/gui/src/components/AutomationQuickstart.tsx+11 more |
| 14 | class ScriptedProvider |
andrewyng/openworker/tests/test_automation.pyandrewyng/openworker/tests/test_connections.pyandrewyng/openworker/tests/test_connectors_allowlist.py+11 more |
| 13 | var busy |
andrewyng/openworker/surfaces/gui/src/components/GalleryModal.tsxandrewyng/openworker/surfaces/gui/src/components/ManageTabs.tsxandrewyng/openworker/surfaces/gui/src/components/PersonasTab.tsx+10 more |
| 13 | fn get |
andrewyng/openworker/coworker/automation/store.pyandrewyng/openworker/coworker/connections.pyandrewyng/openworker/coworker/inbox.py+10 more |
| 13 | var open |
andrewyng/openworker/surfaces/gui/src/App.tsxandrewyng/openworker/surfaces/gui/src/api.tsandrewyng/openworker/surfaces/gui/src/components/AccessSection.tsx+10 more |
| 12 | var card |
andrewyng/openworker/surfaces/gui/e2e/automations-manage.spec.tsandrewyng/openworker/surfaces/gui/e2e/settings.spec.tsandrewyng/openworker/surfaces/gui/e2e/slack-howitworks.spec.ts+9 more |
| 11 | type CloudStatus |
andrewyng/openworker/surfaces/gui/src/api.tsandrewyng/openworker/surfaces/gui/src/components/AccessSection.tsxandrewyng/openworker/surfaces/gui/src/components/AutomationQuickstart.tsx+8 more |
| 11 | var label |
andrewyng/openworker/surfaces/gui/e2e/settings.spec.tsandrewyng/openworker/surfaces/gui/src/components/AutomationQuickstart.tsxandrewyng/openworker/surfaces/gui/src/components/Dropdown.tsx+8 more |
| 11 | fn openConnectors |
andrewyng/openworker/surfaces/gui/e2e/accounts-page.spec.tsandrewyng/openworker/surfaces/gui/e2e/available-detail.spec.tsandrewyng/openworker/surfaces/gui/e2e/cloud-signin-placement.spec.ts+8 more |
| 11 | var setInterval |
andrewyng/openworker/surfaces/gui/src/App.tsxandrewyng/openworker/surfaces/gui/src/components/AccessSection.tsxandrewyng/openworker/surfaces/gui/src/components/InboxConfigure.tsx+8 more |
| 10 | fn close |
andrewyng/openworker/coworker/audit.pyandrewyng/openworker/coworker/automation/store.pyandrewyng/openworker/coworker/connectors/browser_automation.py+7 more |
| 10 | fn list |
andrewyng/openworker/coworker/audit.pyandrewyng/openworker/coworker/automation/store.pyandrewyng/openworker/coworker/connectors/parked.py+7 more |
| 10 | fn stream |
andrewyng/openworker/coworker/providers/anthropic_provider.pyandrewyng/openworker/coworker/providers/base.pyandrewyng/openworker/coworker/providers/gemini_provider.py+7 more |
| 9 | fn _load |
andrewyng/openworker/coworker/connections.pyandrewyng/openworker/coworker/connectors/parked.pyandrewyng/openworker/coworker/inbox.py+6 more |
| 9 | fn _save |
andrewyng/openworker/coworker/connections.pyandrewyng/openworker/coworker/connectors/parked.pyandrewyng/openworker/coworker/inbox.py+6 more |
| 9 | var load |
andrewyng/openworker/surfaces/gui/src/App.tsxandrewyng/openworker/surfaces/gui/src/components/AccessSection.tsxandrewyng/openworker/surfaces/gui/src/components/InboxConfigure.tsx+6 more |
| 8 | fn _tool |
andrewyng/openworker/tests/test_durable_resume.pyandrewyng/openworker/tests/test_gcal_accounts.pyandrewyng/openworker/tests/test_github_installs.py+5 more |
| 8 | var add |
andrewyng/openworker/surfaces/gui/e2e/fixtures.tsandrewyng/openworker/surfaces/gui/e2e/google-paused.spec.tsandrewyng/openworker/surfaces/gui/src/components/InboxConfigure.tsx+5 more |
| 8 | var BTN_ACCENT |
andrewyng/openworker/surfaces/gui/src/components/AccessSection.tsxandrewyng/openworker/surfaces/gui/src/components/AuditView.tsxandrewyng/openworker/surfaces/gui/src/components/GalleryModal.tsx+5 more |
| 8 | var recent |
andrewyng/openworker/surfaces/gui/src/App.tsxandrewyng/openworker/surfaces/gui/src/components/AccessSection.tsxandrewyng/openworker/surfaces/gui/src/components/AutomationQuickstart.tsx+5 more |
| 8 | var refresh |
andrewyng/openworker/surfaces/gui/src/components/AuditView.tsxandrewyng/openworker/surfaces/gui/src/components/AutomationQuickstart.tsxandrewyng/openworker/surfaces/gui/src/components/Composer.tsx+5 more |
Largest files
Largest files
| LOC | File | Status |
|---|---|---|
| 1968 | andrewyng/openworker/coworker/server/app.py | indexed |
| 1859 | andrewyng/openworker/surfaces/gui/src/api.ts | indexed |
| 1732 | andrewyng/openworker/surfaces/gui/src/App.tsx | indexed |
| 1727 | andrewyng/openworker/tests/test_connectors.py | indexed |
| 1600 | andrewyng/openworker/surfaces/gui/src/styles.css | indexed |
| 1493 | andrewyng/openworker/surfaces/gui/e2e/fixtures.ts | indexed |
| 1470 | andrewyng/openworker/coworker/connectors/descriptors.py | indexed |
| 1378 | andrewyng/openworker/surfaces/gui/src/components/Sidebar.tsx | indexed |
| 1203 | andrewyng/openworker/coworker/connectors/tool_defs.py | indexed |
| 1052 | andrewyng/openworker/tests/test_server.py | indexed |