From 77f23b013f0206a53becad24736acba87b171ce2 Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Thu, 13 Aug 2026 22:48:24 -0700 Subject: [PATCH] refactor(shared): drop the shared/types barrel and import from the real modules (#14447) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #14397 split `shared/types.ts` into 46 per-domain modules but kept the path as a re-export barrel so the import sites did not have to change. This removes the barrel: every consumer now imports from the module that actually declares the type, and `src/shared/types.ts` is deleted. Barrels hide where a type lives, make every consumer look like it depends on the whole domain, and let an unrelated edit invalidate a module that ~2,000 files transitively import. 2,323 import declarations across 2,321 files. Rewritten mechanically: each specifier was resolved to an absolute path via the TypeScript AST and recomputed, rather than string-substituted, so alias forms (`@/../../shared/ types`) and per-specifier `type` modifiers survive. Four cases the mechanical pass had to handle, each found by a gate rather than by reading the diff: - Modules inside `src/shared` import the barrel as `./types`, not `shared/types`. A pre-filter on the latter string skipped 176 of them and left imports dangling at a deleted file, which surfaced as confusing `Property 'x' is optional in type 'Repo' but required in Pick` errors rather than "module not found". - The barrel RENAMED one type on the way through (`WorkspaceSource as WorkspaceCreateTelemetrySource`), so the original name in the owning module has to be re-aliased at each consumer. - Three test files put `;(globalThis as ...)` on the line after the import. TypeScript parses that `;` as the import statement's terminator, so replacing through `statement.getEnd()` deletes it and breaks ASI. The rewrite now stops at the module specifier. - A file that already imported directly from a module got a SECOND import from it, because the barrel re-exported those same names — which trips `import/no-duplicates` under `--deny-warnings`. A post-pass merges declarations sharing a specifier and type-only-ness; the `import type` plus `import` pair from one module is left alone, since that form is allowed. Splitting one barrel import into several genuinely adds lines, which pushed `terminal-layout-pty-ownership.ts` to 301 counted lines: its 107-character import must wrap, and neither local type collapses onto one line (101 and 116 characters). Rather than contort a type declaration to fit a line budget, `collectLeafIds` and `pruneLeaves` move to `terminal-pane-layout-tree.ts` — they are pure structural operations on the layout tree and independent of PTY ownership. `visible-worktrees.ts` similarly loses its own mini-barrel re-export of `isDefaultBranchWorkspace`, with the four real consumers repointed at the declaring module. No `max-lines` bypass added. Verified: cold `tsc --noEmit` green on node, cli, and web (buildinfo deleted first — these projects are `composite: true` and reuse stale caches); the full `pnpm lint` green, not just bare oxlint — the narrower local check is what let the duplicate imports reach CI; max-lines ratchet OK at 344. --- .../remote-shared-control-retirement-probe.ts | 2 +- mobile/app/h/[hostId]/index.tsx | 2 +- .../app/h/[hostId]/session/[worktreeId].tsx | 3 +- mobile/app/h/[hostId]/tasks.tsx | 12 +- mobile/scripts/mock-server-rpc-handlers.ts | 2 +- mobile/src/components/MobileAgentIcon.tsx | 2 +- .../src/components/MobileDiffReviewBody.tsx | 2 +- .../components/MobileDiffReviewDrawers.tsx | 2 +- .../MobileDiffReviewFileSummary.tsx | 2 +- .../src/components/MobileDiffReviewLine.tsx | 2 +- mobile/src/components/NewWorktreeModal.tsx | 3 +- .../mobile-agent-icon-assets.test.ts | 2 +- .../components/mobile-agent-icon-assets.ts | 2 +- .../new-worktree-agent-selection.ts | 2 +- .../pr-sidebar/PRActionsSection.tsx | 2 +- .../components/pr-sidebar/PRCheckDetail.tsx | 2 +- .../components/pr-sidebar/PRChecksSection.tsx | 2 +- .../components/pr-sidebar/PRCommentCard.tsx | 6 +- .../pr-sidebar/PRCommentsSection.test.ts | 3 +- .../pr-sidebar/PRCommentsSection.tsx | 3 +- .../pr-sidebar/PRConflictingFilesSection.tsx | 2 +- .../pr-sidebar/PRReviewersSection.tsx | 2 +- .../components/pr-sidebar/PRSidebarHeader.tsx | 3 +- .../pr-sidebar/ReviewerPickerDrawer.tsx | 2 +- .../components/pr-sidebar/pr-actions-state.ts | 2 +- .../pr-sidebar/pr-auto-merge-availability.ts | 2 +- .../pr-check-detail-content.test.ts | 2 +- .../pr-sidebar/pr-check-detail-content.ts | 2 +- .../pr-sidebar/pr-checks-presentation.test.ts | 2 +- .../pr-sidebar/pr-checks-presentation.ts | 6 +- .../pr-conflict-presentation.test.ts | 2 +- .../pr-sidebar/pr-conflict-presentation.ts | 2 +- mobile/src/session/QuickCommandRow.tsx | 2 +- mobile/src/session/QuickCommandsList.tsx | 3 +- mobile/src/session/QuickCommandsSheet.test.ts | 2 +- mobile/src/session/QuickCommandsSheet.tsx | 2 +- mobile/src/session/ai-vault-resume-launch.ts | 2 +- .../src/session/github-pr-comment-parsers.ts | 6 +- mobile/src/session/github-pr-mutations.ts | 2 +- mobile/src/session/github-pr-parsers.ts | 16 +- mobile/src/session/github-pr-rpc.ts | 10 +- mobile/src/session/github-pr-value-readers.ts | 8 +- .../session/mobile-diff-comment-edit.test.ts | 2 +- .../src/session/mobile-diff-comment-edit.ts | 2 +- .../src/session/mobile-diff-comments.test.ts | 2 +- mobile/src/session/mobile-diff-comments.ts | 2 +- .../session/mobile-diff-review-positioning.ts | 2 +- .../session/mobile-diff-review-queue.test.ts | 2 +- .../src/session/mobile-diff-review-queue.ts | 6 +- .../mobile-diff-review-screen-model.ts | 2 +- .../src/session/mobile-diff-review-state.ts | 2 +- .../session/mobile-new-tab-agent-options.ts | 2 +- mobile/src/session/mobile-pr-sidebar-state.ts | 4 +- .../src/session/mobile-session-route-types.ts | 3 +- .../session/mobile-terminal-tab-agent.test.ts | 2 +- .../src/session/mobile-terminal-tab-agent.ts | 2 +- .../session/pr-action-mutation-contract.ts | 2 +- mobile/src/session/pr-actions-engine.ts | 2 +- .../src/session/pr-ai-triage-prompt.test.ts | 2 +- mobile/src/session/pr-ai-triage-prompt.ts | 2 +- mobile/src/session/pr-comment-actions.test.ts | 2 +- mobile/src/session/pr-comment-actions.ts | 3 +- mobile/src/session/pr-title-edit.ts | 2 +- mobile/src/session/quick-command-draft.ts | 6 +- .../use-mobile-diff-review-comment-actions.ts | 2 +- .../use-mobile-diff-review-controller.ts | 2 +- ...se-mobile-diff-review-send-actions.test.ts | 2 +- .../use-mobile-diff-review-send-actions.ts | 2 +- .../session/use-mobile-pr-comment-actions.ts | 2 +- .../use-mobile-pr-sidebar-controller.test.ts | 4 +- mobile/src/session/use-quick-commands.test.ts | 2 +- mobile/src/session/use-quick-commands.ts | 2 +- .../source-control/MobileGitHistoryList.tsx | 2 +- .../mobile-branch-compare.test.ts | 2 +- .../source-control/mobile-branch-compare.ts | 2 +- .../mobile-pr-chip-summary.test.ts | 4 +- .../source-control/mobile-pr-chip-summary.ts | 2 +- mobile/src/tasks/blank-workspace-create.ts | 2 +- .../tasks/composer-linked-work-item.test.ts | 4 +- mobile/src/tasks/composer-linked-work-item.ts | 4 +- .../src/tasks/composer-source-base-resolve.ts | 2 +- mobile/src/tasks/github-check-summary.test.ts | 2 +- mobile/src/tasks/github-check-summary.ts | 2 +- mobile/src/tasks/gitlab-check-summary.ts | 2 +- mobile/src/tasks/mobile-agent-catalog.ts | 2 +- .../src/tasks/mobile-hosted-check-status.ts | 5 +- mobile/src/tasks/mobile-tui-agents.ts | 2 +- mobile/src/tasks/setup-hook-trust.test.ts | 2 +- mobile/src/tasks/setup-hook-trust.ts | 2 +- mobile/src/tasks/smart-source-fan-out.ts | 10 +- mobile/src/tasks/smart-source-paste-intent.ts | 3 +- .../src/tasks/smart-source-search-requests.ts | 10 +- .../src/tasks/use-mobile-composer-source.ts | 4 +- .../src/tasks/use-smart-workspace-source.ts | 3 +- mobile/src/tasks/workspace-agent-selection.ts | 2 +- mobile/src/tasks/workspace-create-params.ts | 8 +- mobile/src/terminal/quick-commands.test.ts | 2 +- mobile/src/terminal/quick-commands.ts | 3 +- .../src/worktree/mobile-workspace-statuses.ts | 2 +- mobile/src/worktree/use-workspace-sections.ts | 2 +- .../src/worktree/workspace-list-sections.ts | 2 +- .../src/worktree/workspace-view-settings.ts | 2 +- src/cli/handlers/account.ts | 5 +- src/cli/handlers/agent-hooks.test.ts | 2 +- src/cli/handlers/agent-hooks.ts | 3 +- src/cli/handlers/automations.ts | 3 +- src/cli/handlers/diagnostics.ts | 2 +- src/cli/handlers/project.ts | 6 +- src/cli/handlers/vm.ts | 2 +- src/cli/project-format.ts | 2 +- src/cli/workspace-format.ts | 2 +- src/cli/worktree-project-target.ts | 2 +- src/main/active-view-preference.ts | 2 +- .../first-work-branch-rename-test-harness.ts | 3 +- .../first-work-branch-rename.test.ts | 3 +- .../agent-hooks/first-work-branch-rename.ts | 3 +- .../first-work-folder-rename.test.ts | 3 +- .../agent-hooks/first-work-folder-rename.ts | 3 +- .../agent-hooks/local-agent-cli-presence.ts | 2 +- .../managed-agent-hook-controls.ts | 2 +- .../managed-hook-detection-commands.ts | 2 +- .../restored-subagent-liveness-sweep.ts | 3 +- src/main/agent-hooks/server.ts | 2 +- .../remote-session-scanner-test-fixtures.ts | 2 +- .../headless-workspace-create.test.ts | 2 +- .../automations/headless-workspace-create.ts | 2 +- .../automations/run-target-resolution.test.ts | 3 +- src/main/automations/run-target-resolution.ts | 3 +- src/main/automations/service-precheck.test.ts | 2 +- src/main/automations/service.test.ts | 2 +- src/main/automations/workspace-provenance.ts | 6 +- src/main/azure-devops/pull-request-mappers.ts | 2 +- src/main/bitbucket/client.ts | 2 +- src/main/bitbucket/pull-request-mappers.ts | 2 +- .../browser/browser-certificate-challenge.ts | 2 +- .../browser-certificate-trust-controller.ts | 5 +- src/main/browser/browser-cookie-import.ts | 2 +- src/main/browser/browser-manager.ts | 6 +- src/main/browser/browser-session-registry.ts | 2 +- .../browser-session-user-agent-mode.ts | 2 +- .../claude-duplicate-account.test.ts | 2 +- .../claude-duplicate-account.ts | 2 +- .../runtime-auth-service.test.ts | 3 +- .../claude-accounts/runtime-auth-service.ts | 2 +- .../claude-accounts/runtime-selection.test.ts | 3 +- src/main/claude-accounts/runtime-selection.ts | 6 +- src/main/claude-accounts/service.test.ts | 2 +- src/main/claude-accounts/service.ts | 2 +- .../codex-accounts/codex-auth-identity.ts | 2 +- .../legacy-shared-auth-migration.test.ts | 2 +- .../legacy-shared-auth-migration.ts | 2 +- .../managed-codex-auth-readiness.test.ts | 3 +- .../managed-codex-auth-readiness.ts | 2 +- .../runtime-home-mirrored-status-home.test.ts | 3 +- ...home-service-per-account-migration.test.ts | 3 +- .../runtime-home-service.test.ts | 3 +- .../codex-accounts/runtime-home-service.ts | 2 +- ...ime-home-windows-profile-ownership.test.ts | 2 +- .../codex-accounts/runtime-selection.test.ts | 3 +- src/main/codex-accounts/runtime-selection.ts | 6 +- src/main/codex-accounts/service.test.ts | 3 +- src/main/codex-accounts/service.ts | 2 +- .../codex/codex-pane-launch-account.test.ts | 3 +- src/main/codex/codex-pane-launch-account.ts | 2 +- src/main/codex/codex-session-source-home.ts | 2 +- .../codex/codex-stale-pane-accounts.test.ts | 2 +- src/main/codex/codex-stale-pane-accounts.ts | 2 +- .../daemon/daemon-create-or-attach-result.ts | 2 +- src/main/daemon/pty-subprocess.ts | 2 +- src/main/daemon/session.test.ts | 2 +- src/main/daemon/session.ts | 2 +- .../daemon/terminal-host-create-contract.ts | 2 +- src/main/daemon/terminal-host-options.ts | 2 +- src/main/daemon/terminal-host.test.ts | 2 +- src/main/daemon/types.ts | 2 +- src/main/ephemeral-vm-recipe-runner.test.ts | 2 +- src/main/ephemeral-vm-runtime-service.test.ts | 2 +- src/main/ephemeral-vm-runtime-service.ts | 2 +- src/main/folder-workspace-diff-comments.ts | 3 +- src/main/ghostty/index.test.ts | 2 +- src/main/ghostty/index.ts | 2 +- src/main/ghostty/mapper.ts | 7 +- src/main/ghostty/theme-import.test.ts | 2 +- src/main/git/push-target-validation.ts | 2 +- src/main/git/remote.ts | 2 +- src/main/git/repo.ts | 2 +- src/main/git/status.ts | 8 +- src/main/git/upstream.ts | 3 +- src/main/git/worktree-shared-directories.ts | 2 +- src/main/git/worktree.ts | 8 +- src/main/gitea/pull-request-mappers.ts | 2 +- src/main/github/client.ts | 43 +- src/main/github/comment-reactions.ts | 2 +- src/main/github/conflict-summary-cache.ts | 2 +- src/main/github/conflict-summary.ts | 2 +- src/main/github/gh-error-classification.ts | 2 +- src/main/github/github-api-repository.ts | 3 +- .../github/github-enterprise-repository.ts | 2 +- .../github/github-owner-repo-selection.ts | 2 +- .../github/github-pr-stack-async-merge.ts | 2 +- src/main/github/github-pr-stack.test.ts | 2 +- src/main/github/github-pr-stack.ts | 2 +- .../github/github-remote-identity-parsing.ts | 2 +- src/main/github/github-repository-identity.ts | 2 +- .../github-ssh-host-alias-resolution.ts | 2 +- src/main/github/issues.ts | 14 +- src/main/github/mappers.ts | 3 +- .../github/pr-refresh-coordinator.test.ts | 3 +- src/main/github/pr-refresh-coordinator.ts | 2 +- .../github/pr-refresh-error-classification.ts | 2 +- src/main/github/pr-start-point.ts | 3 +- src/main/github/project-view/mutations.ts | 4 +- src/main/github/rate-limit.ts | 2 +- src/main/github/review-head-remote.ts | 2 +- src/main/github/work-item-details.ts | 19 +- src/main/gitlab/client.ts | 12 +- src/main/gitlab/gitlab-preload-args.ts | 2 +- src/main/gitlab/gitlab-project-recents.ts | 2 +- .../gitlab/gitlab-project-ref-resolution.ts | 2 +- src/main/gitlab/glab-error-classification.ts | 2 +- src/main/gitlab/issues.ts | 6 +- src/main/gitlab/mappers.ts | 9 +- src/main/gitlab/project-ref-parser.ts | 2 +- src/main/gitlab/work-item-details.ts | 4 +- src/main/hooks-runner.test.ts | 2 +- src/main/hooks.test.ts | 2 +- src/main/hooks.ts | 10 +- src/main/index.ts | 2 +- src/main/ipc/app.ts | 3 +- src/main/ipc/browser.ts | 4 +- src/main/ipc/codex-accounts.ts | 2 +- src/main/ipc/ephemeral-vm-recipe-context.ts | 2 +- src/main/ipc/filesystem-auth.test.ts | 5 +- src/main/ipc/filesystem-auth.ts | 4 +- src/main/ipc/filesystem-search-git.ts | 2 +- .../filesystem-watcher-large-batch.test.ts | 2 +- .../filesystem-watcher-remote-batch.test.ts | 2 +- src/main/ipc/filesystem-watcher.ts | 2 +- src/main/ipc/filesystem.ts | 25 +- .../ipc/floating-workspace-directory.test.ts | 2 +- src/main/ipc/floating-workspace-directory.ts | 3 +- src/main/ipc/github-work-item-args.ts | 2 +- src/main/ipc/github.ts | 19 +- src/main/ipc/gitlab.test.ts | 2 +- src/main/ipc/gitlab.ts | 6 +- src/main/ipc/hosted-review.ts | 2 +- src/main/ipc/jira.ts | 2 +- src/main/ipc/linear.ts | 8 +- .../ipc/local-worktree-runtime-options.ts | 2 +- src/main/ipc/markdown-documents.ts | 2 +- src/main/ipc/memory.ts | 2 +- src/main/ipc/notification-options.ts | 2 +- src/main/ipc/notifications.ts | 4 +- src/main/ipc/onboarding.ts | 2 +- src/main/ipc/pet-bundle.ts | 2 +- src/main/ipc/pet.test.ts | 2 +- src/main/ipc/pet.ts | 2 +- src/main/ipc/preflight.ts | 5 +- src/main/ipc/pty-hidden-delivery-gate.ts | 2 +- src/main/ipc/pty.test.ts | 2 +- src/main/ipc/pty.ts | 3 +- .../ipc/remote-watcher-event-batch.test.ts | 2 +- src/main/ipc/remote-watcher-event-batch.ts | 2 +- .../ipc/remote-workspace-patch-queue.test.ts | 2 +- src/main/ipc/remote-workspace.test.ts | 2 +- src/main/ipc/remote-workspace.ts | 2 +- src/main/ipc/renderer-shutdown-checkpoint.ts | 3 +- .../ipc/repos-add-linked-worktree.test.ts | 2 +- src/main/ipc/repos-sparse-presets.test.ts | 2 +- src/main/ipc/repos.ts | 20 +- src/main/ipc/session.ts | 5 +- src/main/ipc/settings.ts | 3 +- .../ipc/source-control-ai-linked-issue.ts | 2 +- src/main/ipc/ssh-browse.ts | 2 +- src/main/ipc/telemetry.test.ts | 2 +- src/main/ipc/ui.ts | 2 +- .../ipc/workspace-cleanup-activity.test.ts | 3 +- src/main/ipc/workspace-cleanup-activity.ts | 3 +- src/main/ipc/workspace-cleanup-candidate.ts | 3 +- .../ipc/workspace-cleanup-disconnected-ssh.ts | 3 +- .../ipc/workspace-cleanup-git-evidence.ts | 4 +- ...orkspace-cleanup-local-git-routing.test.ts | 2 +- .../ipc/workspace-cleanup-scan-primitives.ts | 2 +- src/main/ipc/workspace-cleanup-scan.ts | 3 +- src/main/ipc/workspace-cleanup.test.ts | 12 +- ...orktree-base-directory-change-collector.ts | 2 +- .../worktree-base-directory-watch-targets.ts | 3 +- .../worktree-base-directory-watcher.test.ts | 3 +- src/main/ipc/worktree-common-git-directory.ts | 2 +- src/main/ipc/worktree-folder-rename-target.ts | 2 +- src/main/ipc/worktree-head-identity-reader.ts | 2 +- .../ipc/worktree-linked-work-item-metadata.ts | 3 +- src/main/ipc/worktree-logic.ts | 3 +- src/main/ipc/worktree-metadata-merge.ts | 3 +- .../ipc/worktree-push-target-cleanup.test.ts | 3 +- src/main/ipc/worktree-push-target-cleanup.ts | 2 +- .../ipc/worktree-push-target-setup.test.ts | 2 +- src/main/ipc/worktree-push-target-setup.ts | 2 +- src/main/ipc/worktree-remote.ts | 24 +- src/main/ipc/worktrees.test.ts | 4 +- src/main/ipc/worktrees.ts | 23 +- src/main/jira/client.ts | 2 +- src/main/jira/issues.ts | 2 +- src/main/kimi/kimi-runtime-home.test.ts | 2 +- src/main/kimi/kimi-runtime-home.ts | 2 +- src/main/linear/client.ts | 2 +- src/main/linear/issue-context-client.ts | 2 +- src/main/linear/issue-context-current.test.ts | 2 +- src/main/linear/issue-context-fanout.ts | 2 +- src/main/linear/issue-context-workspaces.ts | 2 +- src/main/linear/issue-context.test.ts | 2 +- src/main/linear/issues.ts | 7 +- src/main/linear/linear-team-pages.ts | 7 +- src/main/linear/mappers.ts | 2 +- src/main/linear/projects.ts | 16 +- src/main/linear/teams.ts | 6 +- src/main/linux-package-install-command.ts | 2 +- src/main/linux-package-install-diagnostic.ts | 2 +- .../linux-package-update-recovery.test.ts | 2 +- src/main/linux-package-update-recovery.ts | 5 +- src/main/linux-update-package-type.ts | 2 +- src/main/local-project-runtime-resolution.ts | 3 +- src/main/local-worktree-removal-recovery.ts | 3 +- src/main/memory/collector.ts | 7 +- src/main/memory/host-memory.ts | 2 +- .../memory/hydrate-local-pty-registry.test.ts | 2 +- src/main/memory/process-memory-metric.ts | 2 +- src/main/menu/register-app-menu.ts | 2 +- src/main/orca-profiles/profile-index-store.ts | 2 +- .../profile-project-presence.test.ts | 3 +- .../profile-project-session-state.ts | 2 +- .../profile-project-session-transfer.ts | 10 +- .../profile-project-source-removal.ts | 2 +- .../profile-project-state-file.test.ts | 4 +- .../profile-project-state-file.ts | 13 +- .../profile-project-transfer-payload.ts | 5 +- .../profile-project-transfer.test.ts | 4 +- .../profile-project-worktree-identity.ts | 3 +- ...tence-duplicate-repo-id-host-scope.test.ts | 3 +- ...re-interaction-broadcast.benchmark.test.ts | 2 +- src/main/persistence.test.ts | 21 +- src/main/persistence.ts | 49 +-- .../plugins/plugin-approved-vm-recipes.ts | 2 +- src/main/plugins/plugin-enablement.test.ts | 2 +- src/main/plugins/plugin-vm-recipe-registry.ts | 2 +- .../folder-workspace-path-status.test.ts | 3 +- .../folder-workspace-path-status.ts | 4 +- .../project-groups/nested-repo-discovery.ts | 2 +- .../nested-repo-import-target.test.ts | 2 +- .../nested-repo-import-target.ts | 2 +- .../project-groups/nested-repo-import.test.ts | 2 +- src/main/project-groups/nested-repo-import.ts | 6 +- src/main/project-runtime-git-options.test.ts | 3 +- src/main/project-runtime-git-options.ts | 2 +- .../providers/filesystem-provider-contract.ts | 3 +- src/main/providers/git-provider-contract.ts | 18 +- src/main/providers/pty-provider-contract.ts | 2 +- src/main/providers/pty-spawn-result.ts | 2 +- .../ssh-filesystem-provider-watch.ts | 2 +- src/main/providers/ssh-filesystem-provider.ts | 3 +- ...ssh-filesystem-watch-notifications.test.ts | 2 +- .../ssh-filesystem-watch-notifications.ts | 2 +- src/main/providers/ssh-git-provider.ts | 18 +- .../provisioned-root-ssh-adoption.test.ts | 5 +- src/main/provisioned-root-ssh-adoption.ts | 10 +- .../account-runtime-target-sync.ts | 2 +- .../rate-limits/claude-rate-limit-target.ts | 2 +- .../rate-limits/codex-rate-limit-target.ts | 2 +- .../initial-account-rate-limit-target.test.ts | 2 +- .../initial-account-rate-limit-target.ts | 2 +- ...epo-git-remote-identity-enrichment.test.ts | 2 +- .../repo-git-remote-identity-enrichment.ts | 2 +- src/main/repo-git-username-enrichment.test.ts | 2 +- src/main/repo-git-username-enrichment.ts | 2 +- src/main/repo-icon-autodetect.ts | 3 +- src/main/repo-worktrees.ts | 3 +- ...lient-session-tab-selection-persistence.ts | 2 +- .../client-session-tab-selection.test.ts | 2 +- .../runtime/client-session-tab-selection.ts | 2 +- src/main/runtime/file-watcher-host.test.ts | 2 +- src/main/runtime/file-watcher-host.ts | 2 +- .../folder-workspace-pty-identity.test.ts | 2 +- .../graph-sync-mobile-snapshot-gating.test.ts | 2 +- .../graph-sync-payload-partition.test.ts | 2 +- .../headless-tab-group-split-layout.ts | 2 +- .../headless-terminal-query-reply-policy.ts | 2 +- .../headless-terminal-split-layout.test.ts | 2 +- .../runtime/headless-terminal-split-layout.ts | 5 +- ...g-worktree-terminal-reconciliation.test.ts | 2 +- ...issing-worktree-terminal-reconciliation.ts | 2 +- ...session-terminal-persistence-retirement.ts | 3 +- .../mobile-session-terminal-retirement.ts | 4 +- ...t-navigation-isolation.integration.test.ts | 2 +- .../runtime/orca-runtime-automations.test.ts | 2 +- src/main/runtime/orca-runtime-browser.ts | 2 +- ...-runtime-emulator-folder-workspace.test.ts | 2 +- src/main/runtime/orca-runtime-emulator.ts | 2 +- .../orca-runtime-files-ssh-rearm.test.ts | 2 +- .../runtime/orca-runtime-files-watch.test.ts | 2 +- src/main/runtime/orca-runtime-files.ts | 12 +- .../orca-runtime-git-branch-diff.test.ts | 2 +- src/main/runtime/orca-runtime-git.test.ts | 2 +- src/main/runtime/orca-runtime-git.ts | 21 +- ...ntime-headless-hydration-repo-gate.test.ts | 2 +- ...linked-issue-live-meta.integration.test.ts | 2 +- ...terminal-retirement-host-partition.test.ts | 2 +- .../orca-runtime-terminal-retirement.test.ts | 2 +- ...a-runtime-terminal-split-authority.test.ts | 3 +- src/main/runtime/orca-runtime.test.ts | 17 +- src/main/runtime/orca-runtime.ts | 147 +++---- ...ration-worker-workspace-resolution.test.ts | 5 +- ...ime-request-connection.integration.test.ts | 2 +- src/main/runtime/remote-server-updater.ts | 2 +- .../runtime/repo-icon-fork-backfill.test.ts | 2 +- .../runtime/repo-worktree-resolution-scan.ts | 2 +- .../dispatcher-feature-interactions.test.ts | 2 +- .../runtime/rpc/methods/client-ui-schemas.ts | 2 +- .../runtime/rpc/methods/client-ui.test.ts | 2 +- src/main/runtime/rpc/methods/client-ui.ts | 2 +- .../methods/file-watch-event-batcher.test.ts | 2 +- .../rpc/methods/file-watch-event-batcher.ts | 2 +- src/main/runtime/rpc/methods/git.ts | 2 +- .../rpc/methods/orchestration-federation.ts | 2 +- ...orchestration-worker-launch-preferences.ts | 2 +- .../orchestration-worker-start-validation.ts | 2 +- .../methods/orchestration-worker-topology.ts | 2 +- .../rpc/methods/orchestration-workers.ts | 2 +- .../rpc/methods/session-tabs-schemas.ts | 2 +- .../rpc/methods/task-resume-state-schema.ts | 2 +- .../runtime/rpc/methods/terminal-orphan.ts | 2 +- .../terminal-quick-command-rpc-schema.ts | 2 +- .../methods/ui-state-schema-parity-checks.ts | 2 +- .../runtime/rpc/methods/worktree-schemas.ts | 2 +- .../runtime/rpc/workspace-creator-context.ts | 2 +- .../runtime/runtime-folder-workspace.test.ts | 3 +- src/main/runtime/runtime-folder-workspace.ts | 4 +- .../runtime-remove-project-host-scope.test.ts | 2 +- src/main/runtime/selected-review-branch.ts | 2 +- .../terminal-list-stale-leaf-liveness.test.ts | 2 +- .../runtime/terminal-model-query-authority.ts | 2 +- src/main/runtime/terminal-orphan-topology.ts | 2 +- .../terminal-restore-record-seed.test.ts | 2 +- .../terminal-send-stale-leaf-liveness.test.ts | 2 +- src/main/runtime/windows-drive-listing.ts | 2 +- ...workspace-session-failed-write-rollback.ts | 2 +- ...e-session-terminal-membership-authority.ts | 9 +- src/main/skills/discovery.test.ts | 2 +- src/main/skills/discovery.ts | 2 +- src/main/skills/skill-discovery-sources.ts | 2 +- .../skills/skill-discovery-target.test.ts | 2 +- src/main/skills/skill-discovery-target.ts | 2 +- .../skills/skill-freshness-inventory.test.ts | 2 +- src/main/skills/skill-freshness-inventory.ts | 2 +- .../source-control/forge-review-mappers.ts | 3 +- .../source-control/hosted-review-creation.ts | 2 +- .../pull-request-linked-issue.ts | 2 +- src/main/speech/speech-model-deletion.test.ts | 2 +- src/main/ssh/ssh-target-id-migration.test.ts | 4 +- src/main/ssh/ssh-target-id-migration.ts | 3 +- src/main/star-nag/service.test.ts | 2 +- .../startup/dev-education-suppression.test.ts | 3 +- src/main/startup/dev-education-suppression.ts | 2 +- src/main/startup/hydrate-shell-path.ts | 2 +- src/main/stats/collector.ts | 2 +- src/main/synthetic-title-frame-routing.ts | 2 +- src/main/telemetry/client-test-harness.ts | 2 +- src/main/telemetry/cohort-classifier.test.ts | 2 +- src/main/telemetry/consent.test.ts | 2 +- src/main/telemetry/consent.ts | 2 +- src/main/telemetry/install-id.test.ts | 2 +- .../onboarding-cohort-classifier.test.ts | 3 +- ...nal-scrollback-snapshot-async-migration.ts | 2 +- src/main/terminal-scrollback-snapshots.ts | 2 +- .../commit-message-text-generation.test.ts | 2 +- .../commit-message-text-generation.ts | 4 +- src/main/updater-changelog.ts | 2 +- src/main/updater-events.ts | 2 +- src/main/updater-fallback.ts | 2 +- ...ter-linux-package-recovery-actions.test.ts | 2 +- src/main/updater-mac-install.ts | 2 +- src/main/updater.fallback.test.ts | 2 +- src/main/updater.test.ts | 2 +- src/main/updater.ts | 2 +- src/main/usage-worktree-metadata.ts | 2 +- src/main/usage/usage-worktree-refs.ts | 2 +- src/main/warp-themes/parser.ts | 2 +- .../window/attach-main-window-services.ts | 9 +- .../workspace-space-analysis-capacity.test.ts | 2 +- ...orkspace-space-analysis-du-timeout.test.ts | 2 +- src/main/workspace-space-analysis.test.ts | 2 +- src/main/workspace-space-analysis.ts | 4 +- src/main/worktree-create-base-prefetch.ts | 2 +- src/main/worktree-create-timing.ts | 5 +- src/main/worktree-lineage-pruning.test.ts | 4 +- src/main/worktree-lineage-pruning.ts | 4 +- src/main/worktree-removal-authority.test.ts | 2 +- src/main/worktree-removal-safety.test.ts | 2 +- src/main/worktree-removal-safety.ts | 4 +- ...-removal-session-partition-fencing.test.ts | 2 +- src/main/worktree-root-preparation.test.ts | 2 +- src/main/worktree-root-preparation.ts | 3 +- src/main/worktree-trash.test.ts | 2 +- src/main/worktree-trash.ts | 3 +- src/preload/api/agent-account-api.ts | 5 +- src/preload/api/agent-hook-api.ts | 3 +- src/preload/api/app-api.ts | 10 +- src/preload/api/browser-api.ts | 4 +- src/preload/api/ephemeral-vm-api.ts | 2 +- src/preload/api/filesystem-api.ts | 7 +- src/preload/api/git-inspection-api.ts | 8 +- src/preload/api/git-operation-api.ts | 9 +- src/preload/api/github-pull-request-api.ts | 27 +- src/preload/api/github-work-item-api.ts | 11 +- src/preload/api/gitlab-api.ts | 4 +- src/preload/api/jira-api.ts | 2 +- src/preload/api/linear-api.ts | 17 +- src/preload/api/onboarding-api.ts | 2 +- src/preload/api/os-permission-api.ts | 6 +- src/preload/api/pet-api.ts | 2 +- src/preload/api/preflight-api.ts | 5 +- src/preload/api/pty-api.ts | 2 +- src/preload/api/repository-api.ts | 14 +- src/preload/api/settings-api.ts | 2 +- src/preload/api/ssh-api.ts | 2 +- src/preload/api/telemetry-api.ts | 2 +- src/preload/api/ui-command-event-api.ts | 6 +- src/preload/api/updater-api.ts | 2 +- src/preload/api/workspace-session-api.ts | 5 +- src/preload/api/worktree-api.ts | 25 +- src/preload/index.ts | 73 ++-- src/preload/renderer-restart-wiring.ts | 2 +- src/preload/ssh-authority-forwarding.test.ts | 2 +- src/relay/fs-handler-utils.ts | 2 +- src/relay/git-handler-push-target.ts | 2 +- src/relay/git-handler-status-ops.ts | 2 +- src/relay/git-handler-worktree-remove.ts | 2 +- src/relay/git-handler.ts | 2 +- .../git-status-upstream-negative-cache.ts | 2 +- src/relay/pty-handler.ts | 2 +- src/renderer/src/App.tsx | 3 +- .../src/components/GitHubItemDialog.tsx | 22 +- .../src/components/GitLabItemDialog.tsx | 4 +- .../src/components/JiraIssueWorkspace.tsx | 2 +- src/renderer/src/components/Landing.tsx | 2 +- .../src/components/LinearIssueTextEditor.tsx | 2 +- .../src/components/LinearIssueWorkspace.tsx | 6 +- .../src/components/LinearItemDrawer.tsx | 2 +- .../LinuxPackageInstallRecoveryCard.test.tsx | 2 +- .../LinuxPackageInstallRecoveryCard.tsx | 2 +- .../components/NewWorkspaceComposerCard.tsx | 17 +- .../components/NewWorkspaceComposerModal.tsx | 10 +- .../src/components/PullRequestPage.tsx | 16 +- src/renderer/src/components/TaskPage.tsx | 42 +- src/renderer/src/components/Terminal.tsx | 4 +- .../components/UpdateCard.error-card.test.tsx | 2 +- .../src/components/UpdateCard.test.ts | 2 +- src/renderer/src/components/UpdateCard.tsx | 2 +- .../WorktreeJumpPalette.linear-url.test.tsx | 4 +- .../src/components/WorktreeJumpPalette.tsx | 7 +- .../activity/ActivityPrototypePage.test.ts | 4 +- .../activity/ActivityPrototypePage.tsx | 4 +- .../AgentSessionContinuationDialog.tsx | 2 +- .../agent-session-continuation-selection.ts | 2 +- .../components/agent/AgentCombobox.test.tsx | 2 +- .../src/components/agent/AgentCombobox.tsx | 2 +- .../agent/AgentSettingsDialog.test.tsx | 2 +- .../automations/AutomationEditorDialog.tsx | 16 +- .../AutomationEditorDialogFooter.tsx | 12 +- .../automations/AutomationListLocalRows.tsx | 4 +- .../automations/AutomationProjectCombobox.tsx | 2 +- .../automations/AutomationRunHistory.tsx | 2 +- .../AutomationSetupDecisionField.tsx | 4 +- .../automations/AutomationsDetailPane.tsx | 2 +- .../automations/AutomationsListPanel.tsx | 4 +- .../automations/AutomationsPage.tsx | 3 +- .../automations/CreateFromPicker.test.tsx | 2 +- .../automations/CreateFromPicker.tsx | 3 +- .../automations/WorkspaceCombobox.tsx | 2 +- .../automations/automation-draft-model.ts | 2 +- .../automations/automation-host-client.ts | 2 +- .../automation-project-groups.test.ts | 2 +- .../automations/automation-project-groups.ts | 2 +- .../automation-run-context.test.ts | 3 +- .../automations/automation-run-context.ts | 3 +- .../automations/automation-run-open-target.ts | 5 +- .../automation-run-workspace-display.ts | 2 +- .../automation-setup-decision.test.ts | 3 +- .../automations/automation-setup-decision.ts | 11 +- .../automation-target-availability.test.ts | 4 +- .../automation-target-availability.ts | 4 +- .../automations/automation-templates.ts | 2 +- .../automations/use-automation-list-search.ts | 2 +- .../browser-pane/BrowserAddressBar.test.tsx | 2 +- .../components/browser-pane/BrowserPane.tsx | 2 +- .../BrowserPaneOverlayLayer.test.tsx | 3 +- .../browser-pane/BrowserPaneOverlayLayer.tsx | 3 +- .../browser-pane/BrowserToolbarMenu.tsx | 2 +- .../browser-address-bar-suggestions.test.ts | 2 +- .../browser-address-bar-suggestions.ts | 2 +- .../browser-guest-worktree-retention.test.ts | 2 +- .../browser-guest-worktree-retention.ts | 2 +- .../browser-load-failure-overlay.tsx | 2 +- .../browser-pane/browser-notices.ts | 2 +- .../browser-pane-page-selection.test.ts | 2 +- .../browser-pane-page-selection.ts | 2 +- .../browser-toolbar-menu-dropdown.tsx | 5 +- .../cmd-j/PaletteCreateWorktreeRow.tsx | 2 +- .../cmd-j/palette-filter-options.test.ts | 4 +- .../cmd-j/palette-filter-options.ts | 4 +- .../src/components/cmd-j/palette-filter.ts | 2 +- .../components/cmd-j/palette-host-badge.ts | 2 +- .../cmd-j/palette-live-status.test.tsx | 2 +- .../components/cmd-j/palette-live-status.tsx | 4 +- .../cmd-j/palette-project-results.ts | 4 +- .../components/cmd-j/palette-results.test.ts | 4 +- .../cmd-j/quick-action-context.test.ts | 2 +- .../components/cmd-j/quick-action-context.ts | 2 +- .../worktree-checks-review-index.test.ts | 4 +- .../cmd-j/worktree-checks-review-index.ts | 3 +- .../confirmation-skip-preference.ts | 2 +- .../crash-report/CrashReportDialogSurface.tsx | 2 +- .../components/dashboard-popout/AgentMap.tsx | 2 +- .../dashboard-popout/AgentMapCanvas.tsx | 2 +- .../dashboard-popout/AgentMapScene.tsx | 2 +- .../AgentMapSnapshotWorkspaceMenu.tsx | 2 +- .../AgentMapWorkspaceContextMenu.test.tsx | 4 +- .../AgentMapWorktreeRingNode.tsx | 2 +- .../agent-map-render-test-harness.tsx | 2 +- .../preview-terminal-compatibility.ts | 2 +- .../preview-terminal-ligatures.ts | 2 +- .../preview-terminal-options.test.ts | 2 +- .../preview-terminal-options.ts | 2 +- .../useAgentMapContextMenus.tsx | 2 +- .../dashboard/AgentDashboardSettingsMenu.tsx | 2 +- .../dashboard/DashboardAgentRow.test.tsx | 2 +- .../dashboard/agent-row-lineage-model.test.ts | 2 +- ...ashboard-snapshot-folder-workspace.test.ts | 4 +- ...ard-snapshot-orchestration-routing.test.ts | 3 +- .../build-dashboard-snapshot.test.ts | 3 +- .../dashboard/dashboard-card-context.test.ts | 4 +- .../dashboard/dashboard-card-context.ts | 3 +- .../dashboard-card-terminal-input.ts | 2 +- .../dashboard-worktree-launch-options.test.ts | 3 +- .../dashboard-worktree-launch-options.ts | 2 +- .../components/dashboard/useDashboardData.ts | 2 +- .../useLiveDashboardSnapshot.test.ts | 5 +- .../dashboard/useRetainedAgents.test.ts | 4 +- .../components/dashboard/useRetainedAgents.ts | 5 +- .../dashboard/useRetainedAgentsSync.test.ts | 5 +- .../use-hold-dictation-gesture.test.tsx | 2 +- .../dictation/use-hold-dictation-gesture.ts | 2 +- .../diff-comments/useDiffCommentDecorator.tsx | 2 +- .../src/components/editor/ChangesModeView.tsx | 3 +- .../components/editor/CheckRunAnnotations.tsx | 2 +- .../editor/CheckRunDetailsPanel.tsx | 2 +- .../src/components/editor/CheckRunJobs.tsx | 2 +- .../editor/CombinedDiffFileTree.test.ts | 3 +- .../editor/CombinedDiffFileTree.tsx | 3 +- .../components/editor/CombinedDiffViewer.tsx | 9 +- .../components/editor/ConflictComponents.tsx | 2 +- .../editor/ConflictReviewFileTree.tsx | 2 +- .../components/editor/DiffNotesSendMenu.tsx | 2 +- .../src/components/editor/DiffSectionItem.tsx | 2 +- .../src/components/editor/DiffViewer.tsx | 2 +- .../src/components/editor/EditorContent.tsx | 3 +- .../components/editor/MarkdownPreview.test.ts | 2 +- .../src/components/editor/MarkdownPreview.tsx | 4 +- .../src/components/editor/MonacoEditor.tsx | 3 +- .../ReviewNotesSendMenuContent.test.tsx | 2 +- .../components/editor/RichMarkdownEditor.tsx | 2 +- .../editor/RichMarkdownEditorSurface.tsx | 2 +- .../editor/RichMarkdownReviewNoteLayer.tsx | 2 +- .../editor/check-annotation-path.test.ts | 2 +- .../editor/check-annotation-path.ts | 2 +- .../editor/check-job-step-status.ts | 2 +- .../editor/check-run-details-fix-context.ts | 3 +- .../check-run-details-fix-with-ai.test.ts | 11 +- .../editor/check-run-details-fix-with-ai.ts | 2 +- .../editor/check-run-details-tab.ts | 7 +- .../editor/combined-diff-entries.test.ts | 3 +- .../editor/combined-diff-entries.ts | 3 +- .../editor/combined-diff-file-tree-model.ts | 3 +- .../editor/combined-diff-file-tree-row.tsx | 4 +- .../combined-diff-section-cache-match.test.ts | 3 +- .../combined-diff-section-cache-match.ts | 3 +- .../combined-diff-section-connection.test.ts | 4 +- .../combined-diff-section-load-state.test.ts | 2 +- .../editor/diff-section-layout.test.ts | 2 +- .../components/editor/diff-section-layout.ts | 2 +- .../components/editor/diff-section-types.ts | 3 +- .../editor/editor-cmd-save-target.test.ts | 2 +- .../editor/editor-cmd-save-target.ts | 3 +- .../editor-external-watch-path-index.ts | 2 +- .../src/components/editor/editor-header.ts | 3 +- .../editor/editor-panel-content-types.ts | 2 +- .../editor/editor-panel-diff-reload.test.ts | 2 +- .../editor/editor-panel-diff-reload.ts | 2 +- .../editor-panel-git-entry-selector.test.ts | 3 +- .../editor/editor-panel-render-model.test.ts | 2 +- .../editor/large-diff-section-content.ts | 2 +- .../editor/markdown-doc-completions.test.ts | 2 +- .../editor/markdown-doc-completions.ts | 2 +- .../editor/markdown-doc-links.test.ts | 2 +- .../components/editor/markdown-doc-links.ts | 2 +- .../markdown-document-list-request.test.ts | 2 +- .../editor/markdown-document-list-request.ts | 2 +- ...wn-document-worktree-path-selector.test.ts | 2 +- .../editor/monaco-markdown-doc-completions.ts | 2 +- ...h-markdown-annotation-submit-highlights.ts | 2 +- .../editor/rich-markdown-commands.tsx | 2 +- .../editor/rich-markdown-doc-link.ts | 2 +- .../rich-markdown-editor-click-routing.ts | 2 +- .../editor/rich-markdown-editor-config.ts | 2 +- .../editor/rich-markdown-editor-props.ts | 2 +- ...ich-markdown-html-superscript-link.test.ts | 2 +- .../rich-markdown-review-annotations.test.ts | 2 +- .../rich-markdown-review-annotations.ts | 2 +- .../rich-markdown-review-note-layout.test.ts | 2 +- .../rich-markdown-review-note-layout.ts | 2 +- .../rich-markdown-review-note-positioning.ts | 2 +- .../useEditorPanelContentState.test.tsx | 2 +- ...EditorPanelVisibilityContentState.test.tsx | 2 +- .../components/editor/useMarkdownDocuments.ts | 2 +- .../editor/useRichMarkdownMenuController.ts | 2 +- .../editor/useRichMarkdownProgrammaticSync.ts | 2 +- .../editor/useRichMarkdownReviewController.ts | 2 +- .../editor/useRichMarkdownReviewData.ts | 2 +- .../useRichMarkdownReviewEditorEffects.ts | 2 +- .../useRichMarkdownReviewRailController.ts | 2 +- .../components/emulator-pane/EmulatorPane.tsx | 2 +- .../EmulatorPaneOverlayLayer.tsx | 2 +- .../feature-tip-modal-state.test.ts | 2 +- .../feature-tips/feature-tip-modal-state.ts | 2 +- .../feature-tip-startup-gate.test.ts | 3 +- .../feature-tips/feature-tip-startup-gate.ts | 3 +- .../feature-wall/AiCommitPrSettingsFields.tsx | 2 +- .../feature-wall/FeatureWallBody.tsx | 2 +- .../FeatureWallSetupChecklist.tsx | 2 +- .../FeatureWallSetupWorkflowActions.test.tsx | 2 +- .../FeatureWallSetupWorkflowActions.tsx | 4 +- .../feature-wall/FeatureWallTourPanel.tsx | 2 +- .../components/feature-wall/KeepAwakeCard.tsx | 2 +- .../UsageAccountsCard.tsx | 2 +- .../ai-commit-pr-settings-helpers.ts | 4 +- .../feature-wall-setup-progress.test.ts | 2 +- .../feature-wall-setup-progress.ts | 3 +- .../feature-wall/useAiCommitPrSettings.ts | 3 +- .../FloatingBrowserSlot.test.tsx | 2 +- .../floating-terminal/FloatingBrowserSlot.tsx | 2 +- .../FloatingTerminalIconContextMenu.tsx | 2 +- .../FloatingTerminalPanel.test.tsx | 4 +- .../FloatingTerminalPanel.tsx | 4 +- .../github-checks-tab-state.test.ts | 2 +- .../src/components/github-checks-tab-state.ts | 2 +- .../src/components/github-pr-merge-state.ts | 6 +- .../github-pr-reviewer-display.test.ts | 2 +- .../components/github-pr-reviewer-display.ts | 3 +- .../components/github-project/ProjectCell.tsx | 2 +- .../github-project/ProjectItemSlugDialog.tsx | 2 +- .../components/github-project/ProjectRow.tsx | 2 +- .../github-project/ProjectViewList.tsx | 2 +- .../github-project/ProjectViewWrapper.tsx | 2 +- .../project-row-filtering.test.ts | 2 +- .../github-project/project-row-filtering.ts | 2 +- .../github-project/project-work-item.ts | 2 +- .../slug-dialog/AssigneesEditor.tsx | 2 +- .../github-project/slug-dialog/Comments.tsx | 3 +- .../slug-dialog/LabelsEditor.tsx | 2 +- .../slug-dialog/SlugDialogBody.tsx | 3 +- .../components/github/CommentCodeContext.tsx | 6 +- .../components/github/CommentReactions.tsx | 2 +- .../github/GitHubMarkdownComposer.tsx | 2 +- .../github/IssueSourceIndicator.tsx | 2 +- .../components/github/IssueSourceSelector.tsx | 3 +- .../components/github/PRAssigneesPanel.tsx | 3 +- .../components/github/PRFilterDropdowns.tsx | 6 +- .../github-markdown-composer-preview-pane.tsx | 2 +- ...ithub-pr-reviewer-candidate-filter.test.ts | 2 +- .../github-pr-reviewer-candidate-filter.ts | 2 +- .../github/github-rate-limit-display.tsx | 5 +- .../github-work-item-assignee-filter.ts | 2 +- .../github-work-item-comment-mutations.ts | 2 +- .../github/github-work-item-edit-mutations.ts | 3 +- .../github/github-work-item-identity.ts | 3 +- .../github/pr-check-presentation.ts | 2 +- .../github/pr-file-content-size.test.ts | 2 +- .../components/github/pr-file-content-size.ts | 5 +- .../components/github/pr-file-diff-mapping.ts | 9 +- .../github/work-item-state-presentation.tsx | 3 +- .../gitlab/gitlab-rate-limit-display.tsx | 5 +- .../src/components/jira-issue-sorter.ts | 2 +- .../jira-project-picker-filter.test.ts | 2 +- .../components/jira-project-picker-filter.ts | 2 +- .../landing-preflight-dismissal.test.ts | 2 +- .../components/landing-preflight-dismissal.ts | 2 +- .../landing-preflight-issues.test.ts | 2 +- .../components/landing-preflight-issues.ts | 2 +- ...landing-preflight-runtime-boundary.test.ts | 2 +- .../src/components/linear-api-key-dialog.tsx | 2 +- ...-issue-attribute-filter-dropdowns.test.tsx | 2 +- ...inear-issue-attribute-filter-dropdowns.tsx | 2 +- ...ssue-attribute-filter-primary-team.test.ts | 2 +- ...ear-issue-attribute-filter-primary-team.ts | 2 +- ...ar-issue-attribute-filter-team-ids.test.ts | 2 +- .../linear-issue-attribute-filter-team-ids.ts | 2 +- .../linear-issue-text-draft-state.ts | 2 +- .../components/linear-issue-text-save-plan.ts | 2 +- .../linear-issue-workspace-text.test.ts | 2 +- .../components/linear-issue-workspace-text.ts | 2 +- .../linear-project-view-surfaces.tsx | 6 +- .../components/linear-scope-selector.test.ts | 2 +- .../src/components/linear-scope-selector.tsx | 6 +- .../claude-model-switch-confirmation.ts | 2 +- .../native-chat-attachment-upload.test.ts | 2 +- .../native-chat/native-chat-availability.ts | 3 +- .../native-chat/native-chat-file-link.test.ts | 2 +- .../native-chat/native-chat-file-link.ts | 2 +- .../native-chat-launch-session-options.ts | 3 +- .../native-chat/native-chat-leaf-routing.ts | 6 +- .../native-chat-pane-resolution.test.ts | 2 +- .../native-chat-pane-resolution.ts | 2 +- .../native-chat-runtime-owner.test.ts | 2 +- .../native-chat/native-chat-view-types.ts | 2 +- .../use-native-chat-toggle-shortcut.ts | 2 +- ...spaceNameField.jira-accessibility.test.tsx | 2 +- .../new-workspace/SmartWorkspaceNameField.tsx | 13 +- .../new-workspace/run-target-options.ts | 2 +- .../use-jira-source-connection.test.tsx | 2 +- .../use-jira-source-connection.ts | 2 +- .../use-jira-url-source.test.tsx | 2 +- .../new-workspace/use-jira-url-source.ts | 2 +- .../use-recent-project-ids.test.ts | 2 +- .../new-workspace/use-recent-project-ids.ts | 2 +- .../components/notification-sound-options.ts | 2 +- .../mac-notification-permission-card.tsx | 2 +- .../src/components/onboarding/AgentStep.tsx | 2 +- .../onboarding/GhosttyDiscoveryRow.tsx | 2 +- .../onboarding/NotificationStep.test.tsx | 2 +- .../onboarding/NotificationStep.tsx | 2 +- .../components/onboarding/OnboardingFlow.tsx | 2 +- .../src/components/onboarding/ThemeStep.tsx | 7 +- .../onboarding/WindowsTerminalStep.test.tsx | 2 +- .../onboarding/WindowsTerminalStep.tsx | 2 +- .../onboarding/agent-picked-payload.ts | 6 +- .../onboarding-settings-hydration.test.ts | 2 +- .../onboarding-settings-hydration.ts | 3 +- .../onboarding/should-show-onboarding.ts | 2 +- .../onboarding/show-onboarding-event.ts | 2 +- .../onboarding/theme-chrome-preview.tsx | 2 +- .../use-onboarding-flow-persistence.test.ts | 2 +- .../use-onboarding-flow-persistence.ts | 4 +- .../onboarding/use-onboarding-flow.ts | 4 +- .../windows-terminal-onboarding-telemetry.ts | 2 +- .../src/components/pet/PetOverlay.tsx | 2 +- .../pet/pet-overlay-hit-area.test.tsx | 2 +- src/renderer/src/components/pet/usePetUrl.ts | 2 +- .../src/components/pr-check-counts.test.ts | 2 +- .../src/components/pr-check-counts.ts | 2 +- .../components/pr-checks-fix-prompt.test.ts | 2 +- .../pr-comments-resolution-prompt.test.ts | 2 +- .../pr-comments-resolution-prompt.ts | 2 +- ...ovider-check-classification-parity.test.ts | 3 +- .../quick-open-file-list.react.test.tsx | 3 +- .../components/quick-open-file-list.test.ts | 2 +- .../src/components/quick-open-file-list.ts | 2 +- .../repo/NestedRepoChecklist.test.tsx | 2 +- .../components/repo/NestedRepoChecklist.tsx | 2 +- .../repo/NestedRepoScanLimitNotice.test.ts | 2 +- .../repo/NestedRepoScanLimitNotice.tsx | 2 +- .../src/components/repo/RepoCombobox.tsx | 2 +- .../components/repo/repo-fork-indicator.tsx | 2 +- .../components/right-sidebar/ChecksPanel.tsx | 14 +- .../components/right-sidebar/FileExplorer.tsx | 2 +- .../right-sidebar/FileExplorerQueryStrip.tsx | 2 +- .../right-sidebar/FileExplorerRow.tsx | 2 +- .../right-sidebar/FileExplorerViewSwitch.tsx | 2 +- .../right-sidebar/FileExplorerVirtualRows.tsx | 2 +- .../FolderWorkspacePrChecksPanel.test.tsx | 12 +- .../FolderWorkspacePrChecksPanel.tsx | 2 +- .../FolderWorkspacePrChecksRow.test.tsx | 4 +- .../FolderWorkspacePrChecksRow.tsx | 2 +- .../FolderWorkspaceWorktreesPanel.test.tsx | 4 +- .../FolderWorkspaceWorktreesPanel.tsx | 2 +- .../right-sidebar/GitHistoryCommitFiles.tsx | 3 +- .../right-sidebar/GitHistoryPanel.tsx | 2 +- .../right-sidebar/GitHubPRStackMap.test.tsx | 2 +- .../right-sidebar/GitHubPRStackMap.tsx | 5 +- .../right-sidebar/HostedReviewActions.tsx | 4 +- .../right-sidebar/SearchResultItems.test.tsx | 2 +- .../right-sidebar/SearchResultItems.tsx | 2 +- .../right-sidebar/SearchResultsPane.tsx | 6 +- .../SourceControl.branch-line-total.test.tsx | 2 +- .../SourceControl.compare-summary.test.ts | 3 +- ...SourceControl.open-file-highlight.test.tsx | 2 +- .../SourceControl.preview-open.test.tsx | 6 +- .../right-sidebar/SourceControl.tsx | 16 +- .../SourceControl.virtual-file-list.test.tsx | 2 +- .../SourceControlAgentActionDialog.test.tsx | 4 +- .../SourceControlAgentActionDialog.tsx | 2 +- ...ourceControlAgentActionDialogForm.test.tsx | 3 +- .../SourceControlAgentActionDialogForm.tsx | 4 +- .../SourceControlTextGenerationDialog.tsx | 3 +- .../SourceControlTextGenerationDialogForm.tsx | 4 +- .../SourceControlTextGenerationParams.ts | 2 +- .../active-checks-status.test.ts | 2 +- .../right-sidebar/active-checks-status.ts | 2 +- .../right-sidebar/activity-bar-buttons.tsx | 2 +- .../right-sidebar/ai-vault-original-pane.ts | 5 +- .../ai-vault-scope-paths.test.ts | 2 +- .../right-sidebar/ai-vault-scope-paths.ts | 3 +- .../ai-vault-session-launch-actions.ts | 2 +- .../ai-vault-session-projects.test.ts | 4 +- .../ai-vault-session-projects.ts | 4 +- .../ai-vault-session-resume.test.ts | 3 +- .../right-sidebar/ai-vault-session-resume.ts | 3 +- .../ai-vault-session-worktree-map.test.tsx | 3 +- .../ai-vault-session-worktree.test.ts | 3 +- .../ai-vault-session-worktree.ts | 3 +- .../buildSourceControlAgentDeliveryPlan.ts | 2 +- .../checks-list-expanded-details.test.tsx | 2 +- .../checks-panel-async-result-key.ts | 2 +- .../checks-panel-content.test.tsx | 4 +- .../right-sidebar/checks-panel-content.tsx | 10 +- .../checks-panel-git-status-snapshot.ts | 3 +- .../checks-panel-polling.test.ts | 2 +- .../right-sidebar/checks-panel-polling.ts | 2 +- .../checks-panel-pr-refresh-request.ts | 2 +- .../right-sidebar/checks-panel-review-copy.ts | 2 +- .../checks-panel-review-creation.ts | 2 +- .../checks-panel-review-state-model.ts | 5 +- .../right-sidebar/checks-panel-review.test.ts | 2 +- .../right-sidebar/checks-panel-review.ts | 2 +- .../checks-panel-terminal-worktree.test.ts | 2 +- .../checks-panel-terminal-worktree.ts | 3 +- .../discard-all-sequence.test.ts | 2 +- .../right-sidebar/discard-all-sequence.ts | 2 +- .../file-explorer-add-project-action.test.ts | 2 +- .../file-explorer-add-project-action.ts | 2 +- .../file-explorer-directory-listing.ts | 2 +- .../right-sidebar/file-explorer-entries.ts | 2 +- ...ile-explorer-expanded-dirs-refresh.test.ts | 2 +- ...file-explorer-operation-generation.test.ts | 2 +- .../right-sidebar/file-explorer-reset.ts | 2 +- .../file-explorer-runtime-owner.ts | 2 +- .../file-explorer-watch-drive-root.test.ts | 2 +- .../file-explorer-watch-reconcile.ts | 2 +- ...older-workspace-attached-worktrees.test.ts | 9 +- .../folder-workspace-attached-worktrees.ts | 9 +- .../fork-push-target-label.test.ts | 2 +- .../right-sidebar/fork-push-target-label.ts | 2 +- .../git-status-file-watch-refresh.ts | 4 +- ...t-status-refresh-branch-line-total.test.ts | 2 +- .../right-sidebar/git-status-refresh.test.ts | 2 +- .../right-sidebar/git-status-refresh.ts | 9 +- .../github-pr-stack-confirmation.ts | 5 +- .../github-pr-stack-merge.test.ts | 2 +- .../right-sidebar/github-pr-stack-merge.ts | 5 +- .../github-refresh-error-copy.ts | 2 +- .../hosted-review-github-actions.ts | 3 +- .../parent-pr-checks-github-pr-cache.ts | 4 +- .../parent-pr-checks-hosted-review-cache.ts | 3 +- ...rent-pr-checks-projection-selector.test.ts | 3 +- .../parent-pr-checks-refresh.test.ts | 3 +- .../right-sidebar/parent-pr-checks-refresh.ts | 10 +- .../parent-pr-checks-row-status.ts | 2 +- .../parent-pr-checks-row-types.ts | 10 +- .../parent-pr-checks-rows.test.ts | 5 +- .../right-sidebar/parent-pr-checks-rows.ts | 4 +- .../pr-comment-fixing-reply-body.ts | 2 +- .../pr-comment-thread-resolution.test.ts | 2 +- .../pr-comment-thread-resolution.ts | 2 +- .../pr-comments-ai-launch-ack.test.ts | 2 +- .../pr-comments-ai-launch-ack.ts | 3 +- .../pr-comments-list-selection.test.tsx | 2 +- .../pr-comments-list-selection.ts | 2 +- ...push-target-upstream-refresh-cache.test.ts | 3 +- .../push-target-upstream-refresh-cache.ts | 9 +- .../runSourceControlAgentActionStart.ts | 4 +- .../right-sidebar/search-match-open.ts | 2 +- .../components/right-sidebar/search-rows.ts | 6 +- .../source-control-action-error.ts | 2 +- ...source-control-action-recipe-match.test.ts | 3 +- .../source-control-action-recipe-match.ts | 3 +- .../right-sidebar/source-control-actions.ts | 2 +- ...urce-control-agent-action-dialog-result.ts | 2 +- ...rce-control-agent-action-dialog-support.ts | 2 +- .../source-control-ai-controller-types.ts | 9 +- .../source-control-ai-settings-navigation.ts | 2 +- ...source-control-branch-context-row.test.tsx | 2 +- .../source-control-branch-context-row.tsx | 4 +- ...ource-control-branch-context-stats.test.ts | 2 +- .../source-control-branch-context-stats.ts | 3 +- ...urce-control-create-pr-intent-flow.test.ts | 2 +- .../source-control-create-pr-intent-flow.ts | 2 +- ...ource-control-discard-confirmation.test.ts | 2 +- .../source-control-discard-confirmation.ts | 2 +- .../source-control-discard-dialog.test.tsx | 2 +- .../source-control-discard-dialog.tsx | 2 +- .../source-control-dropdown-items.ts | 2 +- .../source-control-entry-actions.test.ts | 2 +- .../source-control-entry-actions.ts | 2 +- .../source-control-fix-split-button.tsx | 2 +- .../source-control-header-overflow-menu.tsx | 2 +- ...e-control-header-toolbar-identity.test.tsx | 2 +- .../source-control-header-toolbar.test.ts | 2 +- .../source-control-header-toolbar.tsx | 9 +- ...ource-control-hosted-review-push-target.ts | 3 +- .../source-control-manual-review-url.ts | 2 +- .../source-control-primary-action-types.ts | 3 +- .../source-control-section-order.test.ts | 2 +- .../source-control-section-order.ts | 3 +- .../source-control-status-sort.test.ts | 2 +- .../source-control-status-sort.ts | 2 +- ...source-control-submodule-expansion.test.ts | 2 +- .../source-control-submodule-expansion.ts | 2 +- ...e-control-text-generation-defaults.test.ts | 3 +- ...source-control-text-generation-defaults.ts | 3 +- .../right-sidebar/source-control-tree.test.ts | 3 +- .../right-sidebar/source-control-tree.ts | 2 +- .../stale-conflict-operation-poll.ts | 3 +- .../right-sidebar/status-display.ts | 2 +- ...use-checks-panel-terminal-worktree.test.ts | 3 +- .../use-checks-panel-terminal-worktree.ts | 2 +- .../use-git-status-upstream-ref-watch.ts | 2 +- .../use-hosted-review-actions.test.tsx | 3 +- .../use-hosted-review-actions.ts | 3 +- .../use-source-control-recovery-ai.ts | 2 +- .../useCreatePullRequestDialogFields.ts | 2 +- .../useFileExplorerTree.stale-dirs.test.tsx | 2 +- ...FileExplorerWatch.pending-refresh.test.tsx | 2 +- .../right-sidebar/useFileExplorerWatch.ts | 2 +- .../right-sidebar/useFileSearchPanel.ts | 6 +- .../useFileSearchRunner.test.tsx | 2 +- .../right-sidebar/useFileSearchRunner.ts | 2 +- .../useGitHistoryCommitActions.ts | 5 +- .../useGitStatusPolling.rerender.test.ts | 3 +- .../right-sidebar/useGitStatusPolling.test.ts | 4 +- ...eSavedSourceControlAgentActionAutoStart.ts | 4 +- .../useSourceControlAgentActionDialog.ts | 2 +- .../useSourceControlAgentActionStart.ts | 4 +- .../useSourceControlSelection.test.ts | 2 +- .../useSourceControlSelection.ts | 2 +- .../useSourceControlSubmoduleStatus.test.tsx | 2 +- .../useSourceControlSubmoduleStatus.ts | 2 +- .../components/settings/AccountsPane.test.tsx | 2 +- .../src/components/settings/AccountsPane.tsx | 6 +- .../AdvancedNetworkSettingsSection.test.ts | 2 +- .../AdvancedNetworkSettingsSection.tsx | 2 +- .../src/components/settings/AdvancedPane.tsx | 2 +- .../components/settings/AgentAwakeSetting.tsx | 2 +- .../settings/AgentCacheTimerSection.tsx | 2 +- .../AgentDashboardExperimentalSetting.tsx | 2 +- .../settings/AgentRuntimeSetting.tsx | 2 +- .../components/settings/AgentsPane.test.tsx | 3 +- .../src/components/settings/AgentsPane.tsx | 3 +- .../settings/AppearanceInterfaceSection.tsx | 2 +- .../settings/AppearancePane.test.tsx | 3 +- .../components/settings/AppearancePane.tsx | 2 +- .../AppearanceWindowSidebarSection.tsx | 3 +- .../settings/ArtifactsSettingsPane.tsx | 2 +- .../AutoRenameBranchFromWorkSetting.tsx | 2 +- .../settings/AutomationsSettingsPane.tsx | 2 +- .../BrowserLinkRoutingModifierSetting.tsx | 2 +- .../settings/BrowserLinkRoutingSetting.tsx | 2 +- .../BrowserLocalhostWorktreeLabelsSetting.tsx | 2 +- .../src/components/settings/BrowserPane.tsx | 2 +- .../components/settings/BrowserProfileRow.tsx | 5 +- .../settings/BrowserSessionCookiesSection.tsx | 2 +- .../BrowserTerminalLinkActionsSetting.tsx | 2 +- .../src/components/settings/CliSection.tsx | 2 +- .../settings/CliSkillRuntimeSetup.tsx | 2 +- .../settings/CommitMessageAiPane.test.tsx | 2 +- .../settings/CommitMessageAiPane.tsx | 3 +- .../CompareAgainstUpstreamSetting.tsx | 2 +- .../DefaultWindowsProjectRuntimeSetting.tsx | 2 +- .../settings/EditorFontFamilySetting.tsx | 2 +- .../settings/EditorWordWrapSetting.tsx | 2 +- .../settings/EphemeralVmRecipeRow.tsx | 2 +- .../EphemeralVmsExperimentalSetting.tsx | 2 +- .../settings/ExperimentalPane.test.tsx | 2 +- .../components/settings/ExperimentalPane.tsx | 2 +- .../settings/FloatingWorkspacePane.tsx | 3 +- .../settings/GeneralEditorSettingsSection.tsx | 2 +- .../src/components/settings/GeneralPane.tsx | 2 +- .../GeneralWorkspaceSettingsSection.tsx | 2 +- .../settings/GhosttyImportModal.test.ts | 2 +- .../settings/GhosttyImportModal.tsx | 2 +- .../src/components/settings/GitPane.test.tsx | 2 +- .../src/components/settings/GitPane.tsx | 3 +- .../src/components/settings/InputPane.tsx | 2 +- .../settings/LeftSidebarAppearanceSetting.tsx | 3 +- .../components/settings/McpConfigSection.tsx | 3 +- .../settings/MobileEmulatorSettingsPane.tsx | 2 +- .../NativeChatExperimentalSetting.tsx | 2 +- .../settings/NotificationSoundSection.tsx | 2 +- .../settings/NotificationsPane.test.tsx | 3 +- .../components/settings/NotificationsPane.tsx | 2 +- .../components/settings/OpenInMenuSetting.tsx | 3 +- .../PluginsSettingsSection.lifecycle.test.tsx | 2 +- .../settings/PluginsSettingsSection.tsx | 2 +- .../components/settings/PrivacyPane.test.ts | 2 +- .../src/components/settings/PrivacyPane.tsx | 2 +- .../ProjectWindowsRuntimeSetting.test.tsx | 2 +- .../settings/ProjectWindowsRuntimeSetting.tsx | 3 +- .../components/settings/QuickCommandsList.tsx | 4 +- .../components/settings/QuickCommandsPane.tsx | 3 +- .../settings/QuickCommandsScopeFilter.tsx | 2 +- .../settings/QuickCommandsToolbar.tsx | 2 +- .../settings/RecentTabOrderControl.tsx | 2 +- .../settings/RepositoryForkSyncSection.tsx | 3 +- .../settings/RepositoryHooksSection.test.ts | 2 +- .../settings/RepositoryHooksSection.tsx | 4 +- .../settings/RepositoryHostSetupActions.tsx | 2 +- .../RepositoryHostSetupsSection.test.tsx | 3 +- .../settings/RepositoryHostSetupsSection.tsx | 3 +- ...ostSetupsSection.workspace-window.test.tsx | 3 +- ...yIconPicker.github-avatar-refresh.test.tsx | 2 +- .../settings/RepositoryIconPicker.tsx | 2 +- .../settings/RepositoryPane.test.ts | 4 +- .../components/settings/RepositoryPane.tsx | 10 +- .../RepositorySourceControlAiActionRows.tsx | 2 +- .../RepositorySourceControlAiSection.tsx | 2 +- .../RepositoryWindowsRuntimeSection.tsx | 3 +- ...RepositoryWorktreeDefaultsSection.test.tsx | 2 +- .../RepositoryWorktreeDefaultsSection.tsx | 3 +- .../RichMarkdownSpellcheckSetting.tsx | 2 +- .../settings/RuntimeEnvironmentsPane.tsx | 2 +- .../src/components/settings/Settings.tsx | 5 +- .../settings/SettingsSidebar.test.tsx | 2 +- .../components/settings/SettingsSidebar.tsx | 3 +- .../settings/SourceControlActionRecipeRow.tsx | 3 +- .../SourceControlAiActionRecipeDefaults.tsx | 3 +- .../SparsePresetSettingsSection.test.tsx | 2 +- .../settings/SparsePresetSettingsSection.tsx | 2 +- .../components/settings/TasksPane.test.tsx | 3 +- .../src/components/settings/TasksPane.tsx | 3 +- .../settings/TerminalAdvancedSection.test.tsx | 2 +- .../settings/TerminalAdvancedSection.tsx | 2 +- .../TerminalAdvancedTypographyControls.tsx | 2 +- .../settings/TerminalAppearanceSection.tsx | 2 +- .../TerminalCursorAppearanceSection.tsx | 2 +- .../settings/TerminalFontSizeSetting.test.tsx | 2 +- .../settings/TerminalFontSizeSetting.tsx | 2 +- .../settings/TerminalInteractionSection.tsx | 2 +- .../settings/TerminalMacKeyboardSection.tsx | 2 +- .../src/components/settings/TerminalPane.tsx | 2 +- .../TerminalPaneAppearanceSection.tsx | 2 +- .../settings/TerminalRenderingSection.tsx | 2 +- ...TerminalSettingsPreview.lifecycle.test.tsx | 2 +- .../settings/TerminalSettingsPreview.tsx | 2 +- .../settings/TerminalSetupScriptSection.tsx | 3 +- .../TerminalThemeSections.lifecycle.test.ts | 2 +- .../settings/TerminalThemeSections.tsx | 2 +- .../settings/TerminalWindowSection.tsx | 2 +- .../settings/TerminalWindowsShellSection.tsx | 2 +- .../components/settings/VoicePane.test.tsx | 2 +- .../src/components/settings/VoicePane.tsx | 2 +- .../WorkspaceDirectorySetting.test.tsx | 2 +- .../settings/WorkspaceDirectorySetting.tsx | 2 +- .../settings/WorktreeSymlinksSection.tsx | 2 +- .../settings/appearance-interface-summary.ts | 2 +- ...ce-status-bar-antigravity-toggle-search.ts | 2 +- ...ppearance-status-bar-grok-toggle-search.ts | 2 +- .../settings/appearance-status-bar-search.ts | 2 +- .../settings/codex-account-auth-warning.ts | 2 +- ...codex-session-source-home-control.test.tsx | 2 +- .../codex-session-source-home-control.tsx | 2 +- .../settings/notification-settings-copy.ts | 2 +- .../settings/provider-account-scope.ts | 2 +- .../provider-account-visibility.test.ts | 2 +- .../settings/provider-account-visibility.ts | 2 +- .../repository-git-author-search-entries.ts | 2 +- .../repository-git-hooks-search-entries.ts | 2 +- .../repository-git-worktree-search-entries.ts | 2 +- .../settings/repository-host-setup-options.ts | 2 +- .../settings/repository-icon-github.test.ts | 2 +- .../settings/repository-icon-github.ts | 3 +- .../settings/repository-identity-search.ts | 2 +- .../components/settings/repository-search.ts | 2 +- .../repository-source-control-ai-draft.ts | 2 +- .../repository-source-control-ai-global-ux.ts | 3 +- .../repository-source-control-ai-labels.ts | 2 +- .../src/components/settings/setting-labels.ts | 2 +- .../settings/settings-project-list.test.ts | 3 +- .../settings/settings-project-list.ts | 3 +- .../settings/shortcut-definition-catalog.ts | 2 +- .../components/settings/shortcut-groups.ts | 2 +- .../source-control-action-recipe-options.ts | 2 +- .../settings/sparse-preset-settings-row.tsx | 2 +- .../settings/task-source-setup-state.test.ts | 2 +- .../settings/task-source-setup-state.ts | 2 +- .../settings/terminal-window-color-groups.tsx | 2 +- ...se-task-source-provider-readiness.test.tsx | 2 +- .../use-task-source-provider-readiness.ts | 2 +- .../settings/useGhosttyImport.test.ts | 2 +- .../components/settings/useGhosttyImport.ts | 2 +- .../settings/useWarpThemeImport.test.ts | 2 +- .../components/settings/useWarpThemeImport.ts | 2 +- .../setup-guide-progress-readiness.ts | 3 +- .../AddProjectFromFolderDialog.test.tsx | 2 +- .../sidebar/AddProjectFromFolderDialog.tsx | 2 +- .../sidebar/AddRepoDialogStepContent.test.tsx | 2 +- .../sidebar/AddRepoDialogStepContent.tsx | 2 +- .../sidebar/AddRepoNestedImportStep.test.tsx | 2 +- .../sidebar/AddRepoNestedImportStep.tsx | 2 +- .../AddRepoSteps.default-checkout.test.ts | 2 +- .../src/components/sidebar/AddRepoSteps.tsx | 2 +- .../sidebar/DeleteWorktreeDialog.test.tsx | 4 +- .../sidebar/DeleteWorktreeLineageNotice.tsx | 2 +- .../sidebar/DeleteWorktreeTargetPreview.tsx | 2 +- .../sidebar/HiddenWorktreeRecoveryList.tsx | 3 +- .../sidebar/NonGitFolderDialog.test.tsx | 3 +- .../sidebar/ProjectAddedDialog.test.tsx | 2 +- .../components/sidebar/RemoteFileBrowser.tsx | 2 +- .../sidebar/SetupScriptPromptCard.test.ts | 2 +- .../src/components/sidebar/Sidebar.test.tsx | 2 +- .../sidebar/SidebarFeedbackDialog.tsx | 2 +- .../sidebar/SidebarHostScopeMenuSection.tsx | 5 +- .../components/sidebar/SidebarNav.test.tsx | 3 +- .../src/components/sidebar/SidebarNav.tsx | 2 +- .../sidebar/SidebarProjectFilterPanel.tsx | 2 +- .../SidebarRepositoryFilterSection.tsx | 2 +- .../sidebar/WorkspaceKanbanCard.tsx | 3 +- .../WorkspaceKanbanDrawer.search.test.tsx | 4 +- ...paceKanbanDrawer.task-status-sync.test.tsx | 3 +- .../sidebar/WorkspaceKanbanDrawer.tsx | 3 +- .../WorkspaceKanbanDrawerHeader.test.tsx | 2 +- .../sidebar/WorkspaceKanbanDrawerHeader.tsx | 2 +- .../WorkspaceKanbanLaneCardList.test.tsx | 3 +- .../sidebar/WorkspaceKanbanLaneCardList.tsx | 3 +- .../sidebar/WorkspaceKanbanLaneGrid.test.tsx | 3 +- .../sidebar/WorkspaceKanbanLaneGrid.tsx | 4 +- .../WorkspaceKanbanSettingsMenu.test.tsx | 2 +- .../sidebar/WorkspaceKanbanSettingsMenu.tsx | 2 +- .../WorkspaceKanbanStatusLane.test.tsx | 3 +- .../sidebar/WorkspaceKanbanStatusLane.tsx | 4 +- .../WorkspaceStatusAppearancePopover.tsx | 2 +- .../WorktreeCard.affiliate-list-mode.test.tsx | 5 +- .../WorktreeCard.compact-hover.test.tsx | 5 +- ....compact-ports-hover-independence.test.tsx | 5 +- ...orktreeCard.hosted-review-refresh.test.tsx | 4 +- .../sidebar/WorktreeCard.lineage.test.tsx | 4 +- .../WorktreeCard.merged-pr-display.test.tsx | 12 +- .../WorktreeCard.pinned-repo-icon.test.tsx | 5 +- .../sidebar/WorktreeCard.pr-display.test.tsx | 12 +- .../WorktreeCard.quick-actions.test.tsx | 12 +- ...WorktreeCard.ssh-reconnect-prompt.test.tsx | 4 +- .../components/sidebar/WorktreeCard.test.ts | 2 +- .../WorktreeCardAutomationDetailSection.tsx | 2 +- .../sidebar/WorktreeCardCliDetailSection.tsx | 2 +- .../WorktreeCardDisplayMenuSection.tsx | 5 +- .../sidebar/WorktreeCardHelpers.tsx | 4 +- .../WorktreeCardMetadataStatusBadges.tsx | 2 +- .../sidebar/WorktreeContextMenu.test.ts | 3 +- .../sidebar/WorktreeContextMenu.tsx | 8 +- .../WorktreeDeveloperMenuReveal.test.tsx | 2 +- .../WorktreeList.card-memo-stability.test.tsx | 4 +- ....lineage-agent-expansion-coupling.test.tsx | 12 +- .../WorktreeList.lineage-child-card.test.ts | 12 +- ...ktreeList.lineage-child-real-card.test.tsx | 10 +- ...treeList.status-lane-lineage-drop.test.tsx | 13 +- .../src/components/sidebar/WorktreeList.tsx | 19 +- .../sidebar/WorktreeMetaDialog.test.tsx | 12 +- .../components/sidebar/WorktreeOpenInMenu.tsx | 3 +- .../WorktreeParentPickerPopover.test.ts | 2 +- .../sidebar/WorktreeParentPickerRow.tsx | 3 +- .../sidebar/WorktreeVisibilityDialog.test.tsx | 6 +- .../sidebar/WorktreeVisibilityDialog.tsx | 2 +- .../sidebar/WorktreeVisibilitySourceList.tsx | 4 +- .../active-worktree-focus-after-delete.ts | 3 +- ...repo-existing-workspaces-telemetry.test.ts | 2 +- .../add-repo-existing-workspaces-telemetry.ts | 2 +- .../add-repo-skip-finalization.test.ts | 2 +- .../sidebar/add-repo-skip-finalization.ts | 4 +- .../sidebar/add-repo-store-upsert.ts | 2 +- .../sidebar/complete-nested-folder-open.ts | 2 +- ...branch-visible-under-hide-sleeping.test.ts | 10 +- .../sidebar/default-branch-workspace.ts | 2 +- .../sidebar/delete-worktree-dialog-copy.ts | 3 +- .../delete-worktree-dirty-change-counts.ts | 3 +- .../delete-worktree-preference-toast.ts | 2 +- .../empty-project-placeholder-repos.test.ts | 3 +- .../empty-project-placeholder-repos.ts | 3 +- .../focused-agent-row-highlight.test.ts | 2 +- .../folder-workspace-card-pr-display.test.ts | 12 +- .../folder-workspace-card-pr-display.ts | 4 +- .../folder-workspace-composer-helpers.test.ts | 3 +- .../folder-workspace-composer-helpers.ts | 14 +- ...er-workspace-composer-path-status.test.tsx | 2 +- .../folder-workspace-composer-path-status.ts | 2 +- .../folder-workspace-composer-submit.test.ts | 3 +- .../folder-workspace-composer-submit.ts | 4 +- .../components/sidebar/host-rename-remove.ts | 3 +- .../sidebar/host-section-rows.test.ts | 5 +- .../components/sidebar/host-section-rows.ts | 4 +- .../imported-worktrees-card-actions.ts | 2 +- ...imported-worktrees-card-candidates.test.ts | 4 +- .../imported-worktrees-card-candidates.ts | 3 +- .../sidebar/linear-agent-skill-runtime.ts | 2 +- .../local-base-ref-suggestion-toast.test.tsx | 2 +- .../local-base-ref-suggestion-toast.tsx | 2 +- ...w-external-worktrees-inbox-actions.test.ts | 2 +- .../new-external-worktrees-inbox-actions.ts | 2 +- ...xternal-worktrees-inbox-candidates.test.ts | 4 +- ...new-external-worktrees-inbox-candidates.ts | 3 +- .../sidebar/preserved-branch-toast.test.tsx | 2 +- .../sidebar/preserved-branch-toast.tsx | 3 +- .../project-added-default-checkout.test.ts | 4 +- .../sidebar/project-added-default-checkout.ts | 2 +- .../project-group-header-drag-commit.test.ts | 2 +- .../project-group-header-drag-commit.ts | 2 +- .../project-group-header-drag-contract.ts | 2 +- .../project-group-header-drag-start.test.ts | 2 +- .../project-group-header-drag-start.ts | 2 +- .../sidebar/project-group-header-drop.test.ts | 3 +- .../sidebar/project-group-header-drop.ts | 2 +- .../project-header-drag-commit.test.ts | 2 +- .../sidebar/project-header-drag-commit.ts | 2 +- .../sidebar/project-header-drag-contract.ts | 2 +- .../sidebar/project-header-drag-start.test.ts | 2 +- .../sidebar/project-header-drag-start.ts | 2 +- .../sidebar/project-header-drop.test.ts | 2 +- .../components/sidebar/project-header-drop.ts | 2 +- .../sidebar/prompt-cache-timer-selection.ts | 2 +- .../remote-file-browser-drive-paths.ts | 2 +- .../sidebar/remote-file-browser-helpers.ts | 2 +- .../rendered-sidebar-worktree-order.test.ts | 5 +- .../rendered-sidebar-worktree-order.ts | 2 +- .../sidebar/repo-header-create-state.test.ts | 2 +- .../sidebar/repo-header-create-state.ts | 2 +- .../setup-script-prompt-render-state.ts | 4 +- .../sidebar/sidebar-filter-state.test.ts | 4 +- .../sidebar/sidebar-host-options.ts | 4 +- .../sidebar/sidebar-project-drop.ts | 2 +- .../sidebar/sidebar-workspace-option-items.ts | 5 +- .../sidebar/smart-attention.test.ts | 3 +- .../src/components/sidebar/smart-attention.ts | 3 +- .../src/components/sidebar/smart-sort.test.ts | 4 +- .../src/components/sidebar/smart-sort.ts | 4 +- .../sidebar/ssh-host-remove-resolution.ts | 3 +- .../ssh-workspace-forget-resolution.ts | 2 +- .../sidebar/track-nested-folder-open.ts | 2 +- .../use-add-repo-remote-nested-scan.ts | 2 +- .../use-delete-worktree-status-hydration.ts | 3 +- ...e-visible-workspace-kanban-worktree-ids.ts | 3 +- .../use-workspace-kanban-card-pointer-drag.ts | 2 +- .../use-workspace-kanban-create-worktree.ts | 2 +- .../sidebar/use-workspace-kanban-search.ts | 3 +- .../use-workspace-kanban-selection.test.tsx | 2 +- .../sidebar/use-workspace-kanban-selection.ts | 2 +- .../sidebar/use-workspace-status-drop.ts | 2 +- .../use-worktree-activity-status.test.tsx | 2 +- .../use-worktree-card-linked-details.ts | 3 +- ...ndary-details.store-subscriptions.test.tsx | 3 +- .../use-worktree-card-secondary-details.ts | 2 +- .../sidebar/use-worktree-meta-workspace.ts | 2 +- .../sidebar/useAddRepoCloneFlow.test.ts | 2 +- .../components/sidebar/useAddRepoCloneFlow.ts | 2 +- .../sidebar/useAddRepoLocalFolderFlow.test.ts | 3 +- .../sidebar/useAddRepoLocalFolderFlow.ts | 3 +- .../useAddRepoNestedImportFlow.test.ts | 6 +- .../sidebar/useAddRepoNestedImportFlow.ts | 5 +- .../useAddRepoNestedReviewController.ts | 2 +- .../sidebar/useAddRepoNestedReviewState.ts | 2 +- .../sidebar/useAddRepoServerPathFlow.test.ts | 2 +- .../sidebar/useAddRepoServerPathFlow.ts | 3 +- .../useCreateRepo.default-checkout.test.ts | 2 +- .../src/components/sidebar/useCreateRepo.ts | 2 +- .../useSetupScriptPromptRevalidation.test.tsx | 2 +- .../useSetupScriptPromptRevalidation.ts | 2 +- .../sidebar/useWorktreeAgentRows.test.ts | 2 +- .../visible-worktree-activity-inputs.test.ts | 3 +- .../visible-worktree-activity-inputs.ts | 3 +- .../sidebar/visible-worktrees.test.ts | 5 +- .../components/sidebar/visible-worktrees.ts | 7 +- .../workspace-board-task-status-sync.test.ts | 9 +- .../workspace-board-task-status-sync.ts | 6 +- .../workspace-creator-visibility.test.ts | 2 +- .../sidebar/workspace-creator-visibility.ts | 3 +- .../sidebar/workspace-delete-lineage.test.ts | 3 +- .../sidebar/workspace-delete-lineage.ts | 3 +- .../workspace-kanban-card-pointer-drag-dom.ts | 2 +- .../sidebar/workspace-kanban-search.test.ts | 3 +- .../sidebar/workspace-kanban-search.ts | 3 +- .../workspace-kanban-sidebar-drop.test.ts | 2 +- .../sidebar/workspace-kanban-sidebar-drop.ts | 6 +- .../workspace-kanban-worktree-groups.test.ts | 2 +- .../workspace-kanban-worktree-groups.ts | 6 +- .../workspace-lineage-menu-actions.test.ts | 3 +- .../sidebar/workspace-lineage-menu-actions.ts | 3 +- .../components/sidebar/workspace-status.ts | 2 +- .../worktree-agent-activity-summary.test.ts | 2 +- .../worktree-agent-freshness-selector.test.ts | 2 +- ...worktree-agent-orchestration-batch.test.ts | 2 +- ...worktree-agent-orchestration-index.test.ts | 2 +- .../worktree-agent-row-fallback-tab.ts | 2 +- .../worktree-agent-row-selectors.test.ts | 2 +- .../sidebar/worktree-agent-row-selectors.ts | 2 +- .../components/sidebar/worktree-agent-rows.ts | 2 +- .../worktree-card-display-property-options.ts | 2 +- .../sidebar/worktree-card-header.tsx | 2 +- .../worktree-card-jira-issue-display.ts | 3 +- .../sidebar/worktree-card-meta-types.ts | 6 +- .../components/sidebar/worktree-card-model.ts | 3 +- .../sidebar/worktree-card-pr-display.test.ts | 2 +- .../sidebar/worktree-card-pr-display.ts | 3 +- .../worktree-card-status-inputs.test.ts | 2 +- .../sidebar/worktree-card-status-inputs.ts | 2 +- .../sidebar/worktree-delete-execution.ts | 2 +- .../sidebar/worktree-delete-request.ts | 2 +- .../worktree-lineage-drag-drop.test.ts | 3 +- .../sidebar/worktree-lineage-drag-drop.ts | 3 +- .../sidebar/worktree-lineage-projection.ts | 3 +- .../worktree-list-folder-reveal.test.ts | 4 +- .../sidebar/worktree-list-folder-reveal.ts | 4 +- .../sidebar/worktree-list-groups.test.ts | 16 +- .../sidebar/worktree-list-groups.ts | 19 +- .../worktree-list-host-filtering.test.ts | 3 +- .../sidebar/worktree-list-host-filtering.ts | 3 +- .../worktree-list-imported-rows.test.ts | 3 +- .../worktree-list-review-cache-inputs.test.ts | 2 +- .../worktree-list-review-cache-inputs.ts | 2 +- .../worktree-list-scroll-adjustment.test.ts | 2 +- .../worktree-list-sticky-headers.test.ts | 4 +- .../sidebar/worktree-meta-updates.test.ts | 2 +- .../sidebar/worktree-meta-updates.ts | 3 +- .../sidebar/worktree-parent-candidates.ts | 4 +- .../worktree-parent-eligibility.test.ts | 4 +- .../sidebar/worktree-parent-eligibility.ts | 3 +- .../worktree-parent-picker-filtering.ts | 2 +- .../worktree-sidebar-row-preference.test.ts | 5 +- .../worktree-sidebar-row-preference.ts | 2 +- .../sidebar/worktree-subagent-child-rows.ts | 2 +- .../worktree-title-derived-agent-rows.test.ts | 3 +- .../worktree-title-derived-agent-rows.ts | 2 +- .../worktree-visibility-update-error.ts | 2 +- .../sparse/SparseCheckoutPresetSelect.tsx | 2 +- .../status-bar/PetStatusSegment.tsx | 2 +- .../ResourceUsageStatusSegment.rows.test.tsx | 2 +- .../status-bar/ResourceUsageStatusSegment.tsx | 4 +- .../src/components/status-bar/StatusBar.tsx | 6 +- .../status-bar/WorkspaceSpaceManagerPanel.tsx | 5 +- .../mergeSnapshotAndSessions.test.ts | 11 +- .../status-bar/mergeSnapshotAndSessions.ts | 6 +- .../status-bar/resource-memory-metric-copy.ts | 2 +- .../resource-session-bindings.test.ts | 2 +- .../status-bar/resource-session-bindings.ts | 2 +- .../status-bar/resource-usage-merge-types.ts | 9 +- .../status-bar/status-bar-agent-gating.ts | 3 +- .../status-bar-provider-visibility.ts | 2 +- .../status-bar-runtime-groups.test.ts | 6 +- .../use-available-status-bar-toggles.ts | 2 +- .../workspace-space-presentation.test.ts | 3 +- .../workspace-space-presentation.ts | 2 +- .../components/tab-bar/BrowserTab.test.tsx | 2 +- .../src/components/tab-bar/BrowserTab.tsx | 2 +- .../src/components/tab-bar/EditorFileTab.tsx | 2 +- .../components/tab-bar/QuickLaunchButton.tsx | 2 +- .../tab-bar/RecentTabSwitcher.test.tsx | 2 +- .../src/components/tab-bar/SortableTab.tsx | 2 +- .../tab-bar/SortableTabContextMenu.tsx | 2 +- .../TabBarCreateEntry.keyboard.test.tsx | 4 +- .../tab-bar/TabBarQuickCommandsButton.tsx | 2 +- .../tab-bar/TerminalTabLeadingIcon.tsx | 3 +- .../tab-bar/editor-tab-local-open-guard.ts | 2 +- .../tab-bar/group-tab-order.test.ts | 2 +- .../src/components/tab-bar/group-tab-order.ts | 2 +- .../tab-bar/open-tab-search-entries.ts | 3 +- .../tab-bar/open-tab-search.test.ts | 10 +- .../tab-bar/recent-tab-switching.test.ts | 2 +- .../tab-bar/recent-tab-switching.ts | 2 +- .../tab-bar/tab-agent-launch-options.ts | 2 +- .../tab-bar/tab-agent-types-by-tab-id.test.ts | 2 +- .../tab-bar/tab-agent-types-by-tab-id.ts | 2 +- .../components/tab-bar/tab-bar-item-model.ts | 9 +- .../src/components/tab-bar/tab-bar-props.ts | 8 +- .../tab-create-entry-local-path.test.ts | 4 +- .../tab-bar/tab-create-entry-props.ts | 2 +- .../tab-bar/tab-move-to-pane-column.test.ts | 2 +- .../tab-bar/tab-title-tooltip.test.tsx | 10 +- .../terminal-tab-activity-status.test.ts | 2 +- .../tab-bar/terminal-tab-activity-status.ts | 2 +- .../terminal-tab-spinner-launch-agent.test.ts | 2 +- .../tab-bar/use-open-tab-search.test.ts | 15 +- .../use-tab-bar-create-menu-controller.ts | 2 +- .../tab-bar/use-tab-bar-item-projection.ts | 3 +- ...tab-bar-quick-command-search-input.test.ts | 2 +- .../tab-bar/use-tab-bar-runtime-model.ts | 5 +- .../TabGroupPanel.context-menu.test.ts | 2 +- .../tab-group/TabGroupSplitLayout.tsx | 2 +- .../src/components/tab-group/tab-drag-data.ts | 3 +- .../tab-drag-preview-activation.test.ts | 2 +- .../tab-group-panel-split-target.test.ts | 2 +- .../tab-group/tab-group-panel-split-target.ts | 2 +- .../tab-group/tab-group-visible-id.ts | 2 +- .../tab-group/useTabDragSplit.test.ts | 2 +- .../components/tab-group/useTabDragSplit.ts | 2 +- .../tab-group/useTabGroupWorkspaceModel.ts | 9 +- .../task-page-cache-selectors.test.ts | 4 +- .../components/task-page-cache-selectors.ts | 2 +- .../src/components/task-page-checks-pill.ts | 2 +- .../task-page-default-repo-selection.test.ts | 2 +- .../task-page-default-repo-selection.ts | 2 +- ...page-github-dialog-state-authority.test.ts | 2 +- ...task-page-github-dialog-state-authority.ts | 2 +- .../task-page-github-resume-cache.ts | 2 +- .../task-page-github-status-actions.test.ts | 2 +- .../task-page-github-status-actions.ts | 6 +- .../task-page-github-status-state.ts | 2 +- .../components/task-page-github-task-kind.ts | 2 +- ...page-github-work-item-filter-membership.ts | 3 +- ...e-github-work-item-mutation-composition.ts | 3 +- ...age-github-work-item-mutation-lifecycle.ts | 2 +- ...sk-page-github-work-item-mutation-pages.ts | 2 +- ...-github-work-item-mutation-patches.test.ts | 2 +- ...-page-github-work-item-mutation-patches.ts | 3 +- ...page-github-work-item-mutation-registry.ts | 2 +- ...hub-work-item-mutation-regressions.test.ts | 2 +- ...sk-page-github-work-item-mutation-types.ts | 2 +- ...sk-page-github-work-item-mutations.test.ts | 2 +- .../task-page-github-work-item-mutations.ts | 2 +- .../task-page-github-work-item-quiet-adopt.ts | 2 +- ...-page-github-work-item-quiet-revalidate.ts | 2 +- ...sk-page-github-work-item-registry-types.ts | 3 +- .../task-page-github-work-item-status.ts | 2 +- .../task-page-jira-cache-selectors.test.ts | 2 +- .../task-page-jira-cache-selectors.ts | 2 +- .../task-page-jira-create-fields.test.ts | 2 +- .../task-page-jira-create-fields.ts | 2 +- .../task-page-jira-grouping.test.ts | 2 +- .../components/task-page-jira-issue-list.tsx | 2 +- ...task-page-jira-item-source-context.test.ts | 2 +- .../task-page-jira-item-source-context.ts | 2 +- .../components/task-page-jira-load-state.ts | 2 +- .../task-page-jira-project-selection.test.ts | 2 +- .../task-page-jira-project-selection.ts | 2 +- .../components/task-page-jira-sorting.test.ts | 2 +- .../components/task-page-jira-status-order.ts | 2 +- .../task-page-linear-cache-selectors.ts | 3 +- .../task-page-linear-in-orca-issues.test.ts | 2 +- .../task-page-linear-in-orca-issues.ts | 4 +- .../task-page-linear-team-selection.test.ts | 2 +- .../task-page-linear-team-selection.ts | 2 +- .../task-page-list-chrome-visibility.ts | 2 +- .../task-page-localized-options.tsx | 3 +- .../task-page-new-issue-draft.test.ts | 2 +- .../components/task-page-new-issue-draft.ts | 2 +- .../task-page-pr-check-summary.test.ts | 2 +- .../components/task-page-pr-check-summary.ts | 3 +- .../components/task-page-pr-delta-summary.ts | 2 +- .../task-page-work-item-pagination.test.ts | 2 +- .../task-page-work-item-pagination.ts | 3 +- .../task-page-work-item-signatures.ts | 2 +- .../task-project-source-combobox-model.ts | 2 +- .../task-project-source-combobox.tsx | 2 +- .../components/task-source-context-summary.ts | 2 +- .../task-source-provider-availability.ts | 2 +- .../terminal-pane/TerminalContextMenu.tsx | 2 +- .../components/terminal-pane/TerminalPane.tsx | 5 +- .../TerminalPaneOverlayLayer.tsx | 3 +- .../TerminalQuickCommandsSubmenu.tsx | 2 +- .../agent-completion-coordinator-types.ts | 2 +- .../agent-task-complete-policy.ts | 2 +- .../codex-detached-pane-restart.ts | 2 +- .../command-code-output-ownership.ts | 2 +- .../compose-active-terminal-theme.test.ts | 2 +- .../layout-serialization.test.ts | 2 +- .../terminal-pane/layout-serialization.ts | 2 +- .../native-chat-leaf-title-agent.ts | 2 +- .../pane-foreground-agent-tracker.ts | 2 +- .../terminal-pane/pty-connection-types.ts | 3 +- .../terminal-pane/pty-connection.test.ts | 3 +- .../terminal-pane/pty-connection.ts | 3 +- .../terminal-pane/pty-transport-types.ts | 2 +- .../remote-pane-layout-push.test.ts | 2 +- .../terminal-pane/remote-pane-layout-push.ts | 2 +- .../terminal-agent-session-continuation.ts | 2 +- .../terminal-agent-session-fork.ts | 2 +- .../terminal-pane/terminal-appearance.ts | 2 +- ...-cold-park-pre-gate-loop.react185.test.tsx | 3 +- .../terminal-cold-park-verdict-loop.test.tsx | 2 +- .../terminal-cold-park-withheld-tabs.test.ts | 2 +- .../terminal-cold-park-withheld-tabs.ts | 2 +- .../terminal-pane/terminal-fit-restore.ts | 2 +- .../terminal-hidden-delivery-gate.ts | 2 +- .../terminal-hidden-view-parking.ts | 2 +- .../terminal-hidden-worktree-retention.ts | 2 +- .../terminal-keyboard-protocol-pane-agent.ts | 2 +- .../terminal-layout-leaf-detach.test.ts | 2 +- .../terminal-layout-leaf-detach.ts | 5 +- .../terminal-layout-leaf-ids.test.ts | 5 +- .../terminal-pane/terminal-layout-leaf-ids.ts | 5 +- ...erminal-layout-pty-ownership-depth.test.ts | 2 +- .../terminal-layout-pty-ownership.test.ts | 2 +- .../terminal-layout-pty-ownership.ts | 65 +--- ...erminal-live-layout-reconciliation.test.ts | 2 +- .../terminal-live-layout-reconciliation.ts | 5 +- .../terminal-notification-pane-visibility.ts | 2 +- .../terminal-notification-state.ts | 2 +- .../terminal-pane-close-identity.ts | 2 +- .../terminal-pane-layout-tree.ts | 63 +++ .../terminal-pane-tab-detach.test.ts | 2 +- .../terminal-pane/terminal-pane-tab-detach.ts | 2 +- .../terminal-parked-watcher-reconciliation.ts | 2 +- .../terminal-quick-command-dispatch.ts | 2 +- .../terminal-pane/terminal-renderer-policy.ts | 2 +- .../terminal-shutdown-layout-capture.test.ts | 2 +- .../terminal-shutdown-layout-capture.ts | 2 +- .../terminal-side-effect-facts-handler.ts | 2 +- .../terminal-pane/terminal-tab-lookup.test.ts | 2 +- .../terminal-pane/terminal-tab-lookup.ts | 2 +- .../terminal-tab-park-candidates.ts | 2 +- .../terminal-unified-tab-lookup.test.ts | 2 +- .../terminal-unified-tab-lookup.ts | 2 +- .../terminal-view-attributes-publisher.ts | 2 +- .../use-notification-dispatch.test.ts | 2 +- ...-watcher-synchronization.react185.test.tsx | 2 +- ...parked-terminal-watcher-synchronization.ts | 2 +- .../use-terminal-pane-context-menu.ts | 2 +- .../use-terminal-pane-lifecycle.ts | 11 +- .../use-terminal-tab-cold-parking.test.ts | 2 +- .../use-terminal-tab-cold-parking.ts | 2 +- .../TerminalQuickCommandAdvancedSection.tsx | 3 +- .../TerminalQuickCommandContentSection.tsx | 3 +- .../TerminalQuickCommandDialog.test.tsx | 2 +- .../TerminalQuickCommandDialog.tsx | 8 +- .../TerminalQuickCommandLabelField.tsx | 2 +- .../TerminalQuickCommandScopeField.tsx | 4 +- .../terminal-quick-command-agent-options.ts | 2 +- ...erminal-quick-command-dialog-draft.test.ts | 2 +- .../terminal-quick-command-dialog-draft.ts | 3 +- ...ive-terminal-repair-loop.react185.test.tsx | 3 +- .../terminal/active-terminal-repair.test.ts | 2 +- .../terminal/active-terminal-repair.ts | 3 +- .../terminal/split-group-mount.test.ts | 2 +- .../components/terminal/split-group-mount.ts | 2 +- .../terminal/terminal-tab-bulk-actions.ts | 2 +- .../terminal/use-active-terminal-repair.ts | 3 +- .../components/ui/repo-multi-combobox.test.ts | 2 +- .../src/components/ui/repo-multi-combobox.tsx | 2 +- .../inactive-workspace-estimate.test.ts | 3 +- .../inactive-workspace-estimate.ts | 3 +- ...workspace-cleanup-presentation-fixtures.ts | 3 +- .../workspace-cleanup-presentation.ts | 3 +- .../worktree-base-fallback-notice.ts | 2 +- ...jump-palette-interleaved-sections.test.tsx | 5 +- ...ktree-jump-palette-sleeping-filter.test.ts | 2 +- .../worktree-jump-palette-test-fixtures.ts | 5 +- .../hooks/direct-ssh-host-hydration.test.ts | 3 +- .../src/hooks/ipc-events-test-harness.ts | 2 +- .../hooks/remote-workspace-session-merge.ts | 3 +- .../src/hooks/remote-workspace-target-sync.ts | 2 +- src/renderer/src/hooks/resolve-zoom-target.ts | 2 +- .../use-terminal-quick-command-hosts.test.ts | 2 +- .../hooks/use-terminal-quick-command-hosts.ts | 3 +- .../src/hooks/useAgentDetectionTarget.test.ts | 4 +- .../src/hooks/useAutoAckViewedAgent.ts | 2 +- src/renderer/src/hooks/useComposerState.ts | 33 +- src/renderer/src/hooks/useDetectedAgents.ts | 2 +- .../useEditorExternalWatch-complexity.test.ts | 2 +- .../useEditorExternalWatch-self-move.test.ts | 2 +- .../useEditorExternalWatch-wsl-repro.test.ts | 2 +- .../src/hooks/useEditorExternalWatch.test.ts | 2 +- .../src/hooks/useEditorExternalWatch.ts | 2 +- .../src/hooks/useEphemeralVmRecipeOptions.ts | 2 +- .../src/hooks/useGitHubSlugMetadata.ts | 3 +- src/renderer/src/hooks/useGlobalFileDrop.ts | 2 +- .../useInstalledAgentSkills.react.test.tsx | 2 +- src/renderer/src/hooks/useIpcEvents.test.ts | 3 +- src/renderer/src/hooks/useIpcEvents.ts | 6 +- src/renderer/src/hooks/useIssueMetadata.ts | 8 +- .../hooks/useLinearProviderConnected.test.tsx | 2 +- ...vigationMetadata.capability-owner.test.tsx | 2 +- .../useSettingsNavigationMetadata.test.ts | 2 +- .../hooks/useSettingsNavigationMetadata.ts | 2 +- .../useTaskPageGitHubWorkItemMutation.ts | 2 +- .../src/hooks/worktree-file-change-event.ts | 2 +- .../worktree-head-identity-apply.test.ts | 2 +- .../src/hooks/worktree-head-identity-apply.ts | 2 +- .../src/lib/active-agent-note-send.test.ts | 2 +- .../src/lib/active-agent-note-target.ts | 2 +- src/renderer/src/lib/active-view-persist.ts | 3 +- .../src/lib/activity-thread-display.ts | 3 +- .../lib/agent-background-draft-delivery.ts | 2 +- .../lib/agent-background-session-contract.ts | 2 +- .../agent-background-session-timeout-toast.ts | 2 +- src/renderer/src/lib/agent-catalog.tsx | 2 +- .../src/lib/agent-draft-paste-content.ts | 2 +- src/renderer/src/lib/agent-draft-readiness.ts | 2 +- src/renderer/src/lib/agent-favicon-assets.ts | 2 +- .../src/lib/agent-followup-delivery.ts | 2 +- .../lib/agent-hibernation-coordinator.test.ts | 2 +- .../src/lib/agent-hibernation-planner.test.ts | 2 +- .../src/lib/agent-hibernation-planner.ts | 3 +- .../src/lib/agent-launch-prompt-delivery.ts | 2 +- .../src/lib/agent-native-draft-prefill.ts | 2 +- src/renderer/src/lib/agent-paste-draft.ts | 3 +- .../src/lib/agent-session-continuation.ts | 2 +- .../src/lib/agent-status-count.test.ts | 3 +- src/renderer/src/lib/agent-status.ts | 4 +- src/renderer/src/lib/agent-tab-shortcuts.ts | 2 +- .../src/lib/ai-vault-resume-target.ts | 2 +- .../src/lib/ai-vault-tab-title-requests.ts | 2 +- .../src/lib/ai-vault-tab-title-sync-inputs.ts | 2 +- .../src/lib/ai-vault-tab-title-sync.test.ts | 2 +- .../src/lib/automation-session-reuse.ts | 2 +- .../src/lib/automation-terminal-ownership.ts | 2 +- .../lib/browser-cookie-import-toast.test.ts | 2 +- .../src/lib/browser-cookie-import-toast.ts | 2 +- .../browser-page-palette-activation.test.ts | 12 +- .../lib/browser-palette-page-entries.test.ts | 3 +- .../src/lib/browser-palette-page-entries.ts | 3 +- .../src/lib/browser-palette-search.test.ts | 3 +- .../src/lib/browser-palette-search.ts | 3 +- .../src/lib/cmd-j-github-url-lookup.test.ts | 2 +- .../src/lib/cmd-j-github-url-lookup.ts | 3 +- .../src/lib/cmd-j-match-relevance.test.ts | 2 +- src/renderer/src/lib/cmd-j-match-relevance.ts | 2 +- .../src/lib/codex-pane-restart-eligibility.ts | 2 +- .../src/lib/codex-pane-selection-lane.ts | 3 +- .../src/lib/codex-session-restart.test.ts | 2 +- src/renderer/src/lib/codex-session-restart.ts | 2 +- .../src/lib/composer-issue-command.ts | 2 +- .../src/lib/connection-context.test.ts | 5 +- .../src/lib/create-untitled-markdown.ts | 2 +- .../src/lib/diff-comment-compat.test.ts | 2 +- src/renderer/src/lib/diff-comment-compat.ts | 2 +- .../src/lib/diff-comments-format.test.ts | 2 +- .../src/lib/direct-ssh-target-scope-types.ts | 11 +- src/renderer/src/lib/document-theme.ts | 2 +- .../src/lib/duplicate-browser-tab-options.ts | 2 +- .../src/lib/emulator-right-split-target.ts | 2 +- .../src/lib/ensure-hooks-confirmed.test.ts | 2 +- .../src/lib/ensure-hooks-confirmed.ts | 2 +- .../lib/ephemeral-vm-workspace-target.test.ts | 2 +- .../src/lib/ephemeral-vm-workspace-target.ts | 2 +- .../src/lib/ephemeral-vm-worktree-creation.ts | 2 +- .../lib/external-editor-open-capability.ts | 2 +- .../src/lib/file-search-result-owner.ts | 2 +- .../src/lib/fix-checks-agent-launch.ts | 8 +- .../lib/floating-workspace-tab-creation.ts | 3 +- ...loating-workspace-terminal-actions.test.ts | 3 +- .../floating-workspace-terminal-actions.ts | 3 +- .../src/lib/folder-workspace-connection.ts | 4 +- .../src/lib/folder-workspace-runtime-owner.ts | 3 +- src/renderer/src/lib/github-pr-start-point.ts | 3 +- .../src/lib/github-source-runtime-context.ts | 2 +- .../src/lib/github-work-item-source-lookup.ts | 2 +- ...hub-work-item-workspace-attachment.test.ts | 2 +- .../github-work-item-workspace-attachment.ts | 3 +- .../gitlab-work-item-source-lookup.test.ts | 2 +- .../src/lib/gitlab-work-item-source-lookup.ts | 2 +- src/renderer/src/lib/http-link-routing.ts | 2 +- .../src/lib/launch-agent-in-new-tab.ts | 2 +- .../lib/launch-agent-paste-timeout-notice.ts | 2 +- .../lib/launch-agent-session-continuation.ts | 2 +- .../src/lib/launch-agent-web-host-tab.ts | 3 +- .../src/lib/launch-work-item-direct-agent.ts | 2 +- .../lib/launch-work-item-direct-preflight.ts | 11 +- .../src/lib/launch-work-item-direct-types.ts | 4 +- .../src/lib/launch-work-item-direct.ts | 4 +- .../launch-worktree-background-terminals.ts | 6 +- .../src/lib/left-sidebar-appearance.ts | 2 +- .../lib/linear-issue-context-snapshot.test.ts | 2 +- .../src/lib/linear-issue-context-snapshot.ts | 2 +- .../src/lib/linear-issue-url-lookup.test.ts | 3 +- .../src/lib/linear-issue-url-lookup.ts | 3 +- .../linear-issue-workspace-attachment.test.ts | 2 +- .../lib/linear-issue-workspace-attachment.ts | 3 +- .../lib/linear-issue-workspace-open.test.ts | 3 +- .../src/lib/linear-linked-work-item.test.ts | 2 +- .../src/lib/linear-linked-work-item.ts | 2 +- .../src/lib/linked-work-item-context.ts | 2 +- src/renderer/src/lib/local-path-open-guard.ts | 2 +- .../src/lib/local-preflight-context.test.ts | 3 +- .../src/lib/local-preflight-context.ts | 3 +- .../src/lib/markdown-comment-blocks.test.ts | 2 +- .../src/lib/markdown-comment-blocks.ts | 2 +- .../lib/markdown-document-templates.test.ts | 2 +- .../src/lib/markdown-document-templates.ts | 3 +- .../src/lib/markdown-review-note-copy.test.ts | 2 +- .../src/lib/markdown-review-notes.test.ts | 2 +- src/renderer/src/lib/markdown-review-notes.ts | 2 +- .../lib/native-chat-initial-view-mode.test.ts | 2 +- .../src/lib/native-chat-initial-view-mode.ts | 4 +- .../src/lib/native-chat-launch-prompt.ts | 2 +- src/renderer/src/lib/native-chat-telemetry.ts | 2 +- .../src/lib/nested-repo-selected-paths.ts | 2 +- .../lib/new-workspace-composer-repo.test.ts | 2 +- .../src/lib/new-workspace-composer-repo.ts | 2 +- .../lib/new-workspace-project-options.test.ts | 4 +- .../src/lib/new-workspace-project-options.ts | 4 +- src/renderer/src/lib/new-workspace.ts | 3 +- .../src/lib/notes-send-agent-targets.test.ts | 2 +- .../src/lib/notes-send-agent-targets.ts | 2 +- .../lib/onboarding-folder-agent-startup.ts | 4 +- .../src/lib/onboarding-project-checklist.ts | 2 +- src/renderer/src/lib/open-in-app-catalog.tsx | 2 +- .../src/lib/open-in-application-selection.ts | 2 +- .../lib/orchestration-skill-coverage.test.ts | 2 +- .../src/lib/orchestration-skill-coverage.ts | 2 +- .../lib/order-empty-query-worktrees.test.ts | 2 +- .../src/lib/order-empty-query-worktrees.ts | 2 +- src/renderer/src/lib/pane-agent-evidence.ts | 2 +- .../lib/pane-manager/pane-manager-types.ts | 2 +- .../terminal-keyboard-protocol.ts | 2 +- .../src/lib/pending-worktree-creation.ts | 14 +- .../src/lib/pi-session-resume-wake.test.ts | 2 +- .../src/lib/pr-comment-action-state.test.ts | 2 +- .../src/lib/pr-comment-action-state.ts | 2 +- .../src/lib/pr-comment-reactions.test.ts | 2 +- src/renderer/src/lib/pr-comment-reactions.ts | 6 +- .../src/lib/project-host-clone-url.test.ts | 2 +- .../src/lib/project-host-clone-url.ts | 2 +- .../lib/project-host-setup-options.test.ts | 3 +- .../src/lib/project-host-setup-options.ts | 3 +- .../lib/project-host-workspace-target.test.ts | 3 +- .../src/lib/project-host-workspace-target.ts | 3 +- src/renderer/src/lib/project-skill-runtime.ts | 2 +- .../src/lib/provider-runtime-context.ts | 2 +- .../lib/quick-workspace-agent-selection.ts | 2 +- .../src/lib/recent-workspace-tab-rows.test.ts | 2 +- .../src/lib/recent-workspace-tab-rows.ts | 3 +- .../src/lib/repo-runtime-owner.test.ts | 2 +- src/renderer/src/lib/repo-runtime-owner.ts | 3 +- src/renderer/src/lib/repo-search.test.ts | 2 +- src/renderer/src/lib/repo-search.ts | 2 +- src/renderer/src/lib/repo-slug-cache.test.ts | 2 +- src/renderer/src/lib/repo-slug-cache.ts | 3 +- src/renderer/src/lib/repo-slug-index.test.ts | 2 +- src/renderer/src/lib/repo-slug-index.ts | 3 +- .../src/lib/run-quick-command-in-new-tab.ts | 2 +- .../src/lib/running-agent-targets.test.ts | 2 +- src/renderer/src/lib/running-agent-targets.ts | 2 +- .../lib/runtime-agent-background-create.ts | 2 +- .../lib/runtime-pane-title-leaf-id.test.ts | 2 +- .../src/lib/runtime-pane-title-leaf-id.ts | 5 +- .../src/lib/session-write-subscriber.ts | 2 +- .../src/lib/setup-script-prompt.test.ts | 7 +- src/renderer/src/lib/setup-script-prompt.ts | 3 +- src/renderer/src/lib/setup-script-status.ts | 2 +- .../src/lib/simulator-palette-search.test.ts | 3 +- .../src/lib/simulator-palette-search.ts | 3 +- .../simulator-tab-palette-activation.test.ts | 3 +- .../src/lib/sleeping-agent-pane-ownership.ts | 2 +- src/renderer/src/lib/smart-github-submit.ts | 3 +- .../lib/source-control-agent-action-plan.ts | 2 +- ...rce-control-launch-agent-selection.test.ts | 4 +- .../source-control-launch-agent-selection.ts | 4 +- .../src/lib/startup-ui-hydration.test.ts | 2 +- src/renderer/src/lib/startup-ui-hydration.ts | 2 +- .../src/lib/tab-agent-status-index.test.ts | 3 +- .../src/lib/tab-agent-status-index.ts | 2 +- src/renderer/src/lib/tab-agent.test.ts | 3 +- src/renderer/src/lib/tab-agent.ts | 3 +- .../src/lib/tab-number-shortcuts.test.ts | 2 +- src/renderer/src/lib/tab-number-shortcuts.ts | 2 +- .../src/lib/terminal-layout-equality.ts | 5 +- .../terminal-pane-title-sanitization.test.ts | 2 +- .../lib/terminal-pane-title-sanitization.ts | 2 +- ...rminal-quick-command-project-scope.test.ts | 4 +- .../terminal-quick-command-project-scope.ts | 3 +- .../lib/terminal-quick-command-search.test.ts | 2 +- .../src/lib/terminal-quick-command-search.ts | 2 +- src/renderer/src/lib/terminal-theme.ts | 2 +- .../src/lib/unread-badge-count.test.ts | 3 +- src/renderer/src/lib/unread-badge-count.ts | 3 +- .../src/lib/update-check-click-options.ts | 2 +- ...se-tab-agent-opencode-native-title.test.ts | 3 +- .../lib/use-tab-agent-process-signals.test.ts | 3 +- .../use-tab-agent-retained-identity.test.ts | 3 +- .../use-tab-agent-sleeping-session.test.ts | 3 +- src/renderer/src/lib/use-tab-agent.test.ts | 3 +- src/renderer/src/lib/use-tab-agent.ts | 3 +- .../workspace-activation-path-gate.test.ts | 3 +- ...workspace-port-localhost-label-selector.ts | 4 +- .../src/lib/workspace-port-localhost-label.ts | 4 +- .../lib/workspace-runtime-host-ownership.ts | 2 +- .../workspace-session-browser-history.test.ts | 2 +- .../lib/workspace-session-focus-recency.ts | 2 +- .../workspace-session-host-field-ownership.ts | 2 +- ...workspace-session-host-persistence.test.ts | 2 +- .../lib/workspace-session-host-persistence.ts | 6 +- .../src/lib/workspace-session-host-records.ts | 2 +- .../lib/workspace-session-host-split.test.ts | 11 +- .../src/lib/workspace-session-host-split.ts | 2 +- .../workspace-session-hydration-keys.test.ts | 2 +- .../lib/workspace-session-hydration-keys.ts | 3 +- .../src/lib/workspace-session-patch.test.ts | 2 +- .../src/lib/workspace-session-patch.ts | 5 +- .../workspace-session-reconnect-targets.ts | 2 +- .../lib/workspace-session-sleeping-agents.ts | 2 +- .../src/lib/workspace-session-unified-tabs.ts | 8 +- src/renderer/src/lib/workspace-session.ts | 9 +- .../lib/workspace-tab-palette-search.test.ts | 4 +- .../src/lib/workspace-tab-palette-search.ts | 4 +- ...ktree-activation-automation-filter.test.ts | 2 +- ...ree-activation-created-agent-test-state.ts | 2 +- .../worktree-activation-empty-remote.test.ts | 2 +- .../src/lib/worktree-activation.test.ts | 2 +- src/renderer/src/lib/worktree-activation.ts | 10 +- .../src/lib/worktree-activity-state.test.ts | 2 +- .../src/lib/worktree-activity-state.ts | 2 +- .../src/lib/worktree-attachment-label.ts | 2 +- .../src/lib/worktree-creation-agent-seeds.ts | 2 +- .../src/lib/worktree-creation-flow.ts | 2 +- .../src/lib/worktree-default-display-name.ts | 2 +- .../lib/worktree-display-name-order.test.ts | 2 +- .../src/lib/worktree-display-name-order.ts | 2 +- .../src/lib/worktree-operation-route.test.ts | 2 +- .../lib/worktree-palette-gitlab-url-match.ts | 3 +- .../lib/worktree-palette-review-match.test.ts | 3 +- .../src/lib/worktree-palette-search.test.ts | 3 +- .../src/lib/worktree-palette-search.ts | 3 +- .../worktree-palette-task-url-match.test.ts | 3 +- .../lib/worktree-palette-task-url-match.ts | 3 +- .../src/lib/worktree-runtime-owner-index.ts | 5 +- .../src/lib/worktree-runtime-owner-state.ts | 12 +- .../src/lib/worktree-runtime-owner.ts | 3 +- ...rktree-status-spinner-launch-agent.test.ts | 2 +- ...ktree-status-terminal-layout-roots.test.ts | 2 +- src/renderer/src/lib/worktree-status.test.ts | 2 +- src/renderer/src/lib/worktree-status.ts | 6 +- src/renderer/src/popout.tsx | 2 +- .../src/runtime/close-mirrored-editor-tab.ts | 2 +- ...e-explorer-delete-owner-provenance.test.ts | 5 +- .../runtime/gitlab-job-trace-client.test.ts | 2 +- .../src/runtime/gitlab-job-trace-client.ts | 2 +- .../runtime/local-jira-search-cancellation.ts | 2 +- .../remote-host-file-delete-repro.test.ts | 4 +- .../remote-host-file-open-repro.test.ts | 2 +- .../src/runtime/remote-server-parity.test.ts | 2 +- .../remote-server-update-coordinator.ts | 2 +- .../remote-terminal-layout-resolution.test.ts | 2 +- .../remote-terminal-layout-resolution.ts | 2 +- .../src/runtime/runtime-client-target.ts | 2 +- .../src/runtime/runtime-file-client.ts | 9 +- .../src/runtime/runtime-file-search-bounds.ts | 2 +- .../src/runtime/runtime-git-client.ts | 15 +- .../src/runtime/runtime-hooks-client.ts | 3 +- .../src/runtime/runtime-jira-client.ts | 2 +- .../runtime/runtime-jira-summary-client.ts | 2 +- .../src/runtime/runtime-jira-target.ts | 2 +- .../src/runtime/runtime-linear-client.ts | 23 +- .../runtime-provider-accounts-client.test.ts | 2 +- .../runtime-provider-accounts-client.ts | 6 +- .../src/runtime/runtime-repo-client.ts | 3 +- .../runtime-server-directory-browser.ts | 2 +- .../runtime/runtime-terminal-inspection.ts | 2 +- .../src/runtime/runtime-terminal-stream.ts | 2 +- ...sync-runtime-graph-automation-leaf.test.ts | 2 +- .../sync-runtime-graph-scheduling.test.ts | 2 +- .../src/runtime/sync-runtime-graph.ts | 6 +- ...ime-session-mirror-environment-key.test.ts | 3 +- .../src/runtime/web-runtime-session.ts | 3 +- ...-session-tabs-sync-mirror-identity.test.ts | 2 +- .../src/runtime/web-session-tabs-sync.test.ts | 10 +- .../src/runtime/web-session-tabs-sync.ts | 11 +- .../web-session-terminal-orphan-recovery.ts | 2 +- .../web-session-terminal-orphan-topology.ts | 5 +- ...oject-host-setup-selector-normalization.ts | 3 +- .../src/store/project-host-setup-selector.ts | 2 +- src/renderer/src/store/right-sidebar-route.ts | 5 +- src/renderer/src/store/selectors.test.ts | 4 +- src/renderer/src/store/selectors.ts | 4 +- .../slices/active-tab-owner-worktree.test.ts | 2 +- .../store/slices/active-tab-owner-worktree.ts | 2 +- .../slices/agent-status-drop-ipc.test.ts | 2 +- .../store/slices/agent-status-drop.test.ts | 2 +- .../slices/agent-status-retained-leak.test.ts | 2 +- src/renderer/src/store/slices/agent-status.ts | 2 +- .../slices/browser-webview-cleanup.test.ts | 2 +- .../store/slices/browser-webview-cleanup.ts | 2 +- src/renderer/src/store/slices/browser.ts | 8 +- .../store/slices/commit-message-generation.ts | 2 +- .../slices/degraded-repo-hydration.test.ts | 3 +- .../slices/degraded-repo-worktree-validity.ts | 9 +- .../src/store/slices/detected-agents.test.ts | 3 +- .../src/store/slices/detected-agents.ts | 2 +- .../src/store/slices/diffComments.test.ts | 3 +- src/renderer/src/store/slices/diffComments.ts | 4 +- .../slices/direct-ssh-pane-retry-ledger.ts | 2 +- .../direct-ssh-terminal-authority-ledger.ts | 2 +- .../direct-ssh-terminal-recovery-types.ts | 2 +- .../direct-ssh-terminal-recovery.test.ts | 2 +- .../slices/direct-ssh-terminal-recovery.ts | 2 +- ...irect-ssh-terminal-workspace-scope.test.ts | 2 +- .../direct-ssh-terminal-workspace-scope.ts | 2 +- .../slices/editor-branch-line-total.test.ts | 2 +- .../slices/editor-rekey-open-files.test.ts | 2 +- src/renderer/src/store/slices/editor.test.ts | 8 +- src/renderer/src/store/slices/editor.ts | 32 +- ...-workspace-activation-and-activity.test.ts | 3 +- .../folder-workspace-diff-comments.test.ts | 4 +- ...r-workspace-owner-routed-mutations.test.ts | 3 +- .../src/store/slices/github-cache-key.ts | 2 +- .../store/slices/github-checks-cache.test.ts | 3 +- .../src/store/slices/github-checks.test.ts | 2 +- .../src/store/slices/github-checks.ts | 3 +- .../github-pr-refresh-owner-routing.test.ts | 4 +- .../github-pr-refresh-states-leak.test.ts | 5 +- .../slices/github-project-row-owner.test.ts | 2 +- .../store/slices/github-project-row-owner.ts | 3 +- .../slices/github-repo-lookup-index.test.ts | 2 +- .../store/slices/github-repo-lookup-index.ts | 2 +- src/renderer/src/store/slices/github.test.ts | 4 +- src/renderer/src/store/slices/github.ts | 33 +- .../slices/hosted-review-cache-identity.ts | 2 +- .../src/store/slices/hosted-review.ts | 2 +- src/renderer/src/store/slices/jira.test.ts | 2 +- src/renderer/src/store/slices/jira.ts | 2 +- .../store/slices/linear-invalidation.test.ts | 3 +- src/renderer/src/store/slices/linear.test.ts | 12 +- src/renderer/src/store/slices/linear.ts | 14 +- .../slices/local-detected-agent-state.test.ts | 2 +- .../slices/local-detected-agent-state.ts | 2 +- .../local-detected-agent-store-state.ts | 6 +- src/renderer/src/store/slices/memory.test.ts | 2 +- src/renderer/src/store/slices/memory.ts | 2 +- .../src/store/slices/new-issue-draft.test.ts | 2 +- .../src/store/slices/new-issue-draft.ts | 2 +- .../src/store/slices/new-markdown.test.ts | 3 +- .../pane-column-split-drop-no-op.test.ts | 2 +- .../slices/pane-column-split-drop-no-op.ts | 2 +- .../slices/pane-foreground-agent.test.ts | 2 +- .../src/store/slices/pane-foreground-agent.ts | 2 +- .../src/store/slices/preflight.test.ts | 3 +- .../project-group-removal-targets.test.ts | 3 +- .../slices/project-group-removal-targets.ts | 3 +- .../store/slices/pull-request-generation.ts | 2 +- .../purge-stale-runtime-host-state.test.ts | 3 +- .../src/store/slices/remote-server-updates.ts | 2 +- .../src/store/slices/repo-host-identity.ts | 3 +- .../slices/repo-identity-reconcile.test.ts | 2 +- .../store/slices/repo-identity-reconcile.ts | 2 +- .../slices/repo-reorder-host-split.test.ts | 2 +- .../store/slices/repo-reorder-host-split.ts | 3 +- .../repos-all-hosts-folder-workspaces.test.ts | 4 +- .../slices/repos-all-hosts-generation.test.ts | 2 +- .../src/store/slices/repos-all-hosts.test.ts | 11 +- .../repos-catalog-merge-identity.test.ts | 4 +- ...epos-cross-host-project-collisions.test.ts | 2 +- .../repos-cross-host-refresh-identity.test.ts | 3 +- .../repos-host-identity-routing.test.ts | 3 +- .../repos-manual-order-hydration.test.ts | 2 +- .../repos-nested-ssh-projection.test.ts | 2 +- .../repos-project-groups-delete.test.ts | 4 +- .../store/slices/repos-project-groups.test.ts | 9 +- .../repos-project-host-capability.test.ts | 2 +- .../repos-project-host-lifecycle.test.ts | 3 +- .../slices/repos-project-runtime.test.ts | 3 +- .../slices/repos-refresh-identity.test.ts | 12 +- ...epos-remove-missing-remote-project.test.ts | 2 +- .../repos-remove-project-purge-leak.test.ts | 2 +- .../repos-runtime-project-groups.test.ts | 2 +- .../slices/repos-runtime-routing-fixture.ts | 2 +- .../repos-selected-owner-routing.test.ts | 4 +- .../repos-setup-script-dismissals.test.ts | 2 +- .../repos-shared-project-badge-color.test.ts | 3 +- .../repos-ssh-host-reconciliation.test.ts | 4 +- .../store/slices/repos-stale-fetch.test.ts | 3 +- .../slices/repos-update-serialization.test.ts | 2 +- .../slices/repos.runtime-fallback.test.ts | 2 +- src/renderer/src/store/slices/repos.test.ts | 3 +- src/renderer/src/store/slices/repos.ts | 22 +- .../restored-editor-owner-reparent.test.ts | 2 +- ...me-catalog-merge-removed-env-guard.test.ts | 2 +- .../store/slices/runtime-detected-agents.ts | 2 +- ...host-purge-session-partition-split.test.ts | 2 +- ...ted-host-active-workspace-identity.test.ts | 2 +- ...-runtime-environments-purge-wiring.test.ts | 2 +- .../src/store/slices/settings.test.ts | 2 +- src/renderer/src/store/slices/settings.ts | 2 +- ...se-presets-repo-removal-purge-leak.test.ts | 3 +- .../src/store/slices/sparse-presets.test.ts | 2 +- .../src/store/slices/sparse-presets.ts | 2 +- src/renderer/src/store/slices/stats.ts | 2 +- .../slices/store-session-cascades.test.ts | 8 +- .../src/store/slices/store-test-helpers.ts | 10 +- .../slices/superseded-ssh-repo-rows.test.ts | 2 +- .../store/slices/superseded-ssh-repo-rows.ts | 2 +- .../slices/tab-group-reference-repair.ts | 2 +- .../src/store/slices/tab-group-state.test.ts | 2 +- .../src/store/slices/tab-group-state.ts | 3 +- .../tabs-hydration-generated-title.test.ts | 2 +- .../tabs-hydration-group-validation.test.ts | 2 +- .../src/store/slices/tabs-hydration.test.ts | 2 +- .../src/store/slices/tabs-hydration.ts | 8 +- src/renderer/src/store/slices/tabs.test.ts | 2 +- src/renderer/src/store/slices/tabs.ts | 8 +- .../terminal-activation-spawn-suppression.ts | 5 +- .../src/store/slices/terminal-helpers.test.ts | 2 +- .../src/store/slices/terminal-helpers.ts | 2 +- .../slices/terminal-orphan-helpers.test.ts | 2 +- ...rminal-pane-detach-agent-retention.test.ts | 2 +- .../terminal-quick-command-hosts.test.ts | 2 +- .../slices/terminal-quick-command-hosts.ts | 2 +- .../slices/terminal-session-row-hydration.ts | 7 +- .../slices/terminal-tab-id-hydration.test.ts | 2 +- .../slices/terminal-tab-retirement.test.ts | 2 +- .../store/slices/terminal-tab-title-batch.ts | 3 +- .../terminal-write-identity-bailouts.test.ts | 2 +- ...ls-hydration-canonical-pty-overlap.test.ts | 4 +- ...terminals-hydration-canonical-rows.test.ts | 2 +- .../store/slices/terminals-hydration.test.ts | 2 +- src/renderer/src/store/slices/terminals.ts | 19 +- src/renderer/src/store/slices/ui.test.ts | 16 +- src/renderer/src/store/slices/ui.ts | 37 +- .../store/slices/worktree-by-id-index.test.ts | 2 +- .../src/store/slices/worktree-by-id-index.ts | 2 +- .../src/store/slices/worktree-helpers.test.ts | 2 +- .../src/store/slices/worktree-helpers.ts | 35 +- .../worktree-listing-branch-switch.test.ts | 2 +- .../slices/worktree-listing-branch-switch.ts | 2 +- .../worktree-nav-history-view-entries.test.ts | 4 +- .../store/slices/worktree-nav-history.test.ts | 3 +- .../src/store/slices/worktree-nav-history.ts | 4 +- .../slices/worktree-removal-maps-leak.test.ts | 2 +- .../src/store/slices/worktrees.test.ts | 14 +- src/renderer/src/store/slices/worktrees.ts | 25 +- .../worktree-diff-comments-selector.test.ts | 4 +- .../store/worktree-diff-comments-selector.ts | 2 +- src/renderer/src/store/worktree-repo-index.ts | 3 +- .../src/web/web-file-mutation-methods.test.ts | 2 +- .../src/web/web-file-mutation-methods.ts | 2 +- src/renderer/src/web/web-preload-api.ts | 29 +- ...time-direct-proxy-live.integration.test.ts | 3 +- .../src/web/web-workspace-session.test.ts | 2 +- src/renderer/src/web/web-workspace-session.ts | 2 +- src/shared/agent-headless-command.ts | 2 +- src/shared/agent-kind.test.ts | 2 +- src/shared/agent-kind.ts | 2 +- src/shared/agent-model-probe-spec.ts | 2 +- .../agent-node-entrypoint-identities.ts | 2 +- src/shared/agent-process-recognition.ts | 2 +- src/shared/agent-row-conversation-name.ts | 2 +- src/shared/agent-session-host-authority.ts | 2 +- src/shared/agent-session-resume.ts | 2 +- src/shared/ai-vault-types.ts | 2 +- src/shared/artifact-sharing-gate.ts | 2 +- .../auto-rename-branch-from-work-settings.ts | 2 +- src/shared/automation-workspace-provenance.ts | 3 +- src/shared/automations-types.ts | 3 +- src/shared/base-ref-search-result.ts | 2 +- src/shared/branch-prefix.ts | 2 +- src/shared/browser-viewport-presets.ts | 2 +- src/shared/cli-workspace-provenance.ts | 3 +- src/shared/codex-pet-sprite-defaults.ts | 2 +- src/shared/codex-reset-credit-scope.test.ts | 2 +- src/shared/codex-reset-credit-scope.ts | 2 +- src/shared/commit-message-agent-spec.ts | 2 +- src/shared/commit-message-generation.ts | 2 +- src/shared/commit-message-plan.ts | 2 +- src/shared/composer-branch-selection.ts | 2 +- src/shared/constants.ts | 19 +- src/shared/dashboard-snapshot.ts | 2 +- .../detected-worktree-provider-contract.ts | 2 +- src/shared/diff-comments-format.ts | 2 +- .../ephemeral-vm-recipe-checkout-mode.test.ts | 2 +- .../ephemeral-vm-recipe-checkout-mode.ts | 2 +- src/shared/ephemeral-vm-recipe-doctor.test.ts | 2 +- src/shared/ephemeral-vm-recipe-doctor.ts | 2 +- .../ephemeral-vm-recipe-lifecycle-payload.ts | 2 +- src/shared/ephemeral-vm-recipe-repo-url.ts | 2 +- src/shared/ephemeral-vm-recipe-runner.ts | 2 +- src/shared/execution-host-registry.ts | 3 +- src/shared/execution-host.ts | 4 +- src/shared/external-worktree-inbox.test.ts | 10 +- src/shared/external-worktree-inbox.ts | 3 +- src/shared/external-worktree-visibility.ts | 2 +- src/shared/folder-workspace-worktree.test.ts | 2 +- src/shared/folder-workspace-worktree.ts | 3 +- src/shared/folder-workspaces.ts | 3 +- src/shared/git-effective-upstream.ts | 2 +- src/shared/git-publish-target-status.ts | 2 +- src/shared/git-push-target-validation.ts | 2 +- src/shared/github/project-types.ts | 10 +- .../pull-request-auto-merge-availability.ts | 2 +- .../pull-request-for-branch-outcome.test.ts | 3 +- .../github/pull-request-for-branch-outcome.ts | 3 +- .../github/pull-request-merge-methods.ts | 2 +- .../gitlab-job-trace-check-details.test.ts | 2 +- src/shared/gitlab-job-trace-check-details.ts | 2 +- src/shared/gitlab-pipeline-checks.test.ts | 2 +- src/shared/gitlab-pipeline-checks.ts | 2 +- src/shared/gitlab-projects.ts | 2 +- src/shared/gitlab-types.ts | 7 +- src/shared/hook-command-source-policy.ts | 2 +- src/shared/host-lineage-contract.ts | 2 +- src/shared/host-repo-catalog-contract.ts | 2 +- src/shared/host-setting-overrides.test.ts | 2 +- src/shared/host-setting-overrides.ts | 2 +- src/shared/hosted-review-github.test.ts | 2 +- src/shared/hosted-review-github.ts | 2 +- src/shared/hosted-review.ts | 2 +- src/shared/keybindings.ts | 2 +- src/shared/linear/links.ts | 3 +- src/shared/local-account-runtime.ts | 2 +- src/shared/local-windows-terminal-runtime.ts | 2 +- src/shared/managed-agent-hook-targets.ts | 2 +- src/shared/manual-repo-order.test.ts | 3 +- src/shared/manual-repo-order.ts | 3 +- .../markdown-document-listing-limits.test.ts | 2 +- .../markdown-document-listing-limits.ts | 2 +- src/shared/nested-repo-telemetry.test.ts | 2 +- src/shared/nested-repo-telemetry.ts | 2 +- src/shared/new-workspace-dialog-repo.test.ts | 2 +- src/shared/new-workspace-dialog-repo.ts | 2 +- src/shared/new-workspace/fork-push-warning.ts | 2 +- .../smart-workspace-linear-intent.ts | 2 +- .../smart-workspace-source-results.ts | 14 +- src/shared/new-workspace/workspace-source.ts | 4 +- src/shared/open-in-applications.ts | 2 +- src/shared/orca-yaml.ts | 2 +- src/shared/osc52-clipboard-settings.ts | 2 +- .../plugins/plugin-vm-recipe-artifact.ts | 2 +- src/shared/pr-check-severity-order.test.ts | 2 +- src/shared/pr-check-severity-order.ts | 2 +- src/shared/pr-check-status.test.ts | 2 +- src/shared/pr-check-status.ts | 3 +- src/shared/pr-checks-fix-prompt.ts | 2 +- src/shared/pr-comment-audience.test.ts | 2 +- src/shared/pr-comment-audience.ts | 2 +- src/shared/pr-comment-groups.test.ts | 2 +- src/shared/pr-comment-groups.ts | 2 +- src/shared/project-groups.test.ts | 2 +- src/shared/project-groups.ts | 3 +- .../project-host-setup-projection.test.ts | 2 +- src/shared/project-host-setup-projection.ts | 10 +- .../project-identity-succession.test.ts | 2 +- src/shared/project-identity-succession.ts | 2 +- src/shared/provider-check-summary.ts | 2 +- src/shared/remote-server-update.ts | 2 +- .../remote-workspace-session-projection.ts | 3 +- src/shared/remote-workspace-types.ts | 2 +- .../renderer-restart-preparation.test.ts | 2 +- src/shared/renderer-restart-preparation.ts | 2 +- src/shared/repo-kind.ts | 2 +- .../repro-7732-gitlab-job-id-dropped.test.ts | 2 +- src/shared/resolved-worktree-lineage.test.ts | 3 +- src/shared/resolved-worktree-lineage.ts | 3 +- src/shared/runtime-client-events.ts | 4 +- src/shared/runtime-types.ts | 30 +- src/shared/search-match-count.test.ts | 2 +- src/shared/search-match-count.ts | 2 +- src/shared/setup-agent-startup-policy.ts | 2 +- src/shared/skills-cli-agent-keys.ts | 2 +- .../source-control-ai-action-recipes.test.ts | 2 +- src/shared/source-control-ai-actions.ts | 2 +- .../source-control-ai-recipe-save.test.ts | 3 +- src/shared/source-control-ai-recipe-save.ts | 3 +- src/shared/source-control-ai-types.ts | 3 +- src/shared/source-control-ai.test.ts | 2 +- src/shared/source-control-ai.ts | 10 +- src/shared/source-control-commit-failure.ts | 2 +- src/shared/source-control-conflict-prompts.ts | 2 +- src/shared/source-control-group-order.ts | 2 +- ...e-control-primary-action-decision-types.ts | 2 +- src/shared/source-control-push-failure.ts | 2 +- src/shared/status-bar-defaults.ts | 2 +- src/shared/tab-title-resolution.ts | 3 +- src/shared/task-preset-query.ts | 2 +- src/shared/task-provider-identity.ts | 2 +- src/shared/task-source-context.ts | 3 +- src/shared/telemetry-events.ts | 10 +- src/shared/terminal-color-scheme-protocol.ts | 2 +- src/shared/terminal-cursor-style-settings.ts | 2 +- src/shared/terminal-custom-themes.ts | 2 +- src/shared/terminal-quick-commands.ts | 2 +- src/shared/terminal-title-agent-type.ts | 2 +- src/shared/text-search.ts | 7 +- src/shared/top-level-view.ts | 2 +- src/shared/tui-agent-config.ts | 2 +- src/shared/tui-agent-detection-commands.ts | 2 +- src/shared/tui-agent-display-names.ts | 2 +- src/shared/tui-agent-launch-command.ts | 2 +- src/shared/tui-agent-launch-defaults.ts | 2 +- src/shared/tui-agent-permissions.ts | 2 +- src/shared/tui-agent-selection.ts | 2 +- src/shared/tui-agent-startup.ts | 2 +- src/shared/types.ts | 366 ------------------ src/shared/workspace-creator-provenance.ts | 2 +- .../workspace-linked-item-equality.test.ts | 2 +- src/shared/workspace-linked-item-schema.ts | 2 +- ...rkspace-linked-item-source-context.test.ts | 2 +- .../workspace-linked-item-source-context.ts | 2 +- src/shared/workspace-linked-item.ts | 2 +- src/shared/workspace-scope.ts | 2 +- .../workspace-session-browser-history.ts | 3 +- .../workspace-session-browser-schema.ts | 2 +- src/shared/workspace-session-salvage.ts | 2 +- src/shared/workspace-session-schema.ts | 12 +- ...workspace-session-terminal-buffers.test.ts | 2 +- .../workspace-session-terminal-buffers.ts | 3 +- ...rkspace-session-terminal-tab-close.test.ts | 4 +- .../workspace-session-terminal-tab-close.ts | 9 +- src/shared/workspace-status-defaults.ts | 2 +- src/shared/workspace-statuses.ts | 2 +- src/shared/worktree/card-properties.ts | 9 +- .../ownership-worktree-base-path.test.ts | 4 +- src/shared/worktree/ownership.test.ts | 5 +- src/shared/worktree/ownership.ts | 13 +- src/shared/worktree/removal.ts | 2 +- .../worktree/visibility-sources.test.ts | 2 +- src/shared/worktree/visibility-sources.ts | 2 +- ...eted-worker-retirement-resume.unit.test.ts | 3 +- .../helpers/pr-comments-sidebar-fixture.ts | 3 +- tests/e2e/helpers/runtime-types.ts | 12 +- tests/e2e/helpers/worktree-registration.ts | 2 +- tests/e2e/linear-url-workspace-entry.spec.ts | 2 +- ...native-chat-ask-user-question-card.spec.ts | 2 +- .../e2e/native-chat-first-flush-race.spec.ts | 2 +- tests/e2e/notification-settings.spec.ts | 2 +- tests/e2e/onboarding.spec.ts | 3 +- .../paired-remote-pane-layout-retry.spec.ts | 2 +- .../e2e/pr11346-selected-runtime-add.spec.ts | 4 +- ...emote-terminal-tab-retirement.unit.test.ts | 2 +- tests/e2e/repo-icon-emoji-picker.spec.ts | 2 +- tests/e2e/settings-agent-awake.spec.ts | 2 +- tests/e2e/settings-display-name-ime.spec.ts | 2 +- .../settings-search-responsiveness.spec.ts | 2 +- ...inal-duplicate-pty-renderer-reveal.spec.ts | 2 +- tests/e2e/worktree-smart-sort.spec.ts | 2 +- 2323 files changed, 4297 insertions(+), 3950 deletions(-) create mode 100644 src/renderer/src/components/terminal-pane/terminal-pane-layout-tree.ts delete mode 100644 src/shared/types.ts diff --git a/config/scripts/remote-shared-control-retirement-probe.ts b/config/scripts/remote-shared-control-retirement-probe.ts index 30edeb9802a..629ba1fddde 100644 --- a/config/scripts/remote-shared-control-retirement-probe.ts +++ b/config/scripts/remote-shared-control-retirement-probe.ts @@ -5,7 +5,7 @@ import { resolveEnvironment, resolveEnvironmentPairingOffer } from '../../src/shared/runtime-environment-store' -import type { MemorySnapshot } from '../../src/shared/types' +import type { MemorySnapshot } from '../../src/shared/process-stats-types' import type { RuntimeStatus } from '../../src/shared/runtime-types' async function main(): Promise { diff --git a/mobile/app/h/[hostId]/index.tsx b/mobile/app/h/[hostId]/index.tsx index 5fd6fb39d43..9cf10c94356 100644 --- a/mobile/app/h/[hostId]/index.tsx +++ b/mobile/app/h/[hostId]/index.tsx @@ -96,7 +96,7 @@ import { WORKSPACE_SORT_OPTIONS as SORT_OPTIONS } from '../../../src/worktree/workspace-list-picker-options' import type { RepoSummary } from '../../../src/worktree/host-worktree-rpc-types' -import type { WorkspaceStatusDefinition } from '../../../../src/shared/types' +import type { WorkspaceStatusDefinition } from '../../../../src/shared/worktree/types' import { DEFAULT_MOBILE_WORKSPACE_STATUSES } from '../../../src/worktree/mobile-workspace-statuses' function isErrorVerdict(v: ConnectionVerdict): boolean { diff --git a/mobile/app/h/[hostId]/session/[worktreeId].tsx b/mobile/app/h/[hostId]/session/[worktreeId].tsx index c0bcca64b98..0ef8a42ee92 100644 --- a/mobile/app/h/[hostId]/session/[worktreeId].tsx +++ b/mobile/app/h/[hostId]/session/[worktreeId].tsx @@ -277,7 +277,8 @@ import { import { colors } from '../../../../src/theme/mobile-theme' import { QuickCommandsTabButton } from '../../../../src/session/QuickCommandsTabButton' import { styles } from '../../../../src/session/mobile-session-styles' -import type { DiffComment, TerminalQuickCommand } from '../../../../../src/shared/types' +import type { DiffComment } from '../../../../../src/shared/diff-comment-types' +import type { TerminalQuickCommand } from '../../../../../src/shared/terminal-quick-command-types' import type { DiffCommentActions, DiffNotesDelivery, diff --git a/mobile/app/h/[hostId]/tasks.tsx b/mobile/app/h/[hostId]/tasks.tsx index 7ef451df8aa..717e4640516 100644 --- a/mobile/app/h/[hostId]/tasks.tsx +++ b/mobile/app/h/[hostId]/tasks.tsx @@ -149,13 +149,13 @@ import { scheduleMobileTaskCopyFeedbackReset } from '../../../src/tasks/mobile-task-copy-feedback-timer' import type { - BaseRefSearchResult, GitHubOwnerRepo, - ProviderCheckSummary, - PersistedTrustedOrcaHooks, - SparsePreset, - TuiAgent -} from '../../../../src/shared/types' + ProviderCheckSummary +} from '../../../../src/shared/github/pull-request-types' +import type { PersistedTrustedOrcaHooks } from '../../../../src/shared/orca-yaml-hook-types' +import type { BaseRefSearchResult } from '../../../../src/shared/repo-types' +import type { TuiAgent } from '../../../../src/shared/tui-agent' +import type { SparsePreset } from '../../../../src/shared/worktree/create-types' import type { SshConnectionState } from '../../../../src/shared/ssh-types' import type { HostedReviewDecision } from '../../../../src/shared/hosted-review' import { diff --git a/mobile/scripts/mock-server-rpc-handlers.ts b/mobile/scripts/mock-server-rpc-handlers.ts index 5971b9dee94..f67db5bc2f2 100644 --- a/mobile/scripts/mock-server-rpc-handlers.ts +++ b/mobile/scripts/mock-server-rpc-handlers.ts @@ -7,7 +7,7 @@ import { applyTerminalQuickCommandMutation, type TerminalQuickCommandMutation } from '../../src/shared/terminal-quick-commands' -import type { TerminalQuickCommand } from '../../src/shared/types' +import type { TerminalQuickCommand } from '../../src/shared/terminal-quick-command-types' import { handleMockFilePreviewRequest } from './mock-server-file-preview-data' import { handleMockGitRequest } from './mock-server-git-state' import { handleMockAccountRequest } from './mock-server-account-rpc' diff --git a/mobile/src/components/MobileAgentIcon.tsx b/mobile/src/components/MobileAgentIcon.tsx index c5557ab3934..7f0cf0e0f91 100644 --- a/mobile/src/components/MobileAgentIcon.tsx +++ b/mobile/src/components/MobileAgentIcon.tsx @@ -1,7 +1,7 @@ import { Image, StyleSheet, Text, View } from 'react-native' import type { ImageSourcePropType } from 'react-native' import { Terminal } from 'lucide-react-native' -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import Svg, { Defs, G, LinearGradient, Path, Stop } from 'react-native-svg' import { colors } from '../theme/mobile-theme' import { MOBILE_AGENT_CATALOG } from '../tasks/mobile-agent-catalog' diff --git a/mobile/src/components/MobileDiffReviewBody.tsx b/mobile/src/components/MobileDiffReviewBody.tsx index 76555aeadc6..cc0a7aa95bd 100644 --- a/mobile/src/components/MobileDiffReviewBody.tsx +++ b/mobile/src/components/MobileDiffReviewBody.tsx @@ -1,7 +1,7 @@ import { ActivityIndicator, FlatList, Pressable, Text, View } from 'react-native' import { RefreshCw } from 'lucide-react-native' import type { RefObject } from 'react' -import type { DiffComment } from '../../../src/shared/types' +import type { DiffComment } from '../../../src/shared/diff-comment-types' import { colors } from '../theme/mobile-theme' import { MobileDiffReviewLine } from './MobileDiffReviewLine' import type { diff --git a/mobile/src/components/MobileDiffReviewDrawers.tsx b/mobile/src/components/MobileDiffReviewDrawers.tsx index c6e05b1cd0a..1ff763fc9b8 100644 --- a/mobile/src/components/MobileDiffReviewDrawers.tsx +++ b/mobile/src/components/MobileDiffReviewDrawers.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react' import { KeyboardAvoidingView, Platform, Pressable, Text, TextInput, View } from 'react-native' import { Check, Copy, FileText, Plus, Send, Trash2, X } from 'lucide-react-native' -import type { DiffComment } from '../../../src/shared/types' +import type { DiffComment } from '../../../src/shared/diff-comment-types' import { colors } from '../theme/mobile-theme' import type { ActionSheetAction } from './ActionSheetModal' import { ActionSheetModal } from './ActionSheetModal' diff --git a/mobile/src/components/MobileDiffReviewFileSummary.tsx b/mobile/src/components/MobileDiffReviewFileSummary.tsx index a27910f4d6f..3645ed60161 100644 --- a/mobile/src/components/MobileDiffReviewFileSummary.tsx +++ b/mobile/src/components/MobileDiffReviewFileSummary.tsx @@ -1,6 +1,6 @@ import { Pressable, Text, View } from 'react-native' import { ArrowDown, ArrowUp } from 'lucide-react-native' -import type { DiffComment } from '../../../src/shared/types' +import type { DiffComment } from '../../../src/shared/diff-comment-types' import { colors } from '../theme/mobile-theme' import type { MobileDiffReviewQueueItem } from '../session/mobile-diff-review-queue' import { MOBILE_GIT_STATUS_LABELS } from '../source-control/mobile-git-status' diff --git a/mobile/src/components/MobileDiffReviewLine.tsx b/mobile/src/components/MobileDiffReviewLine.tsx index 1c1008321f6..ae882d56525 100644 --- a/mobile/src/components/MobileDiffReviewLine.tsx +++ b/mobile/src/components/MobileDiffReviewLine.tsx @@ -1,6 +1,6 @@ import { Pressable, StyleSheet, Text, View } from 'react-native' import { MessageSquare } from 'lucide-react-native' -import type { DiffComment } from '../../../src/shared/types' +import type { DiffComment } from '../../../src/shared/diff-comment-types' import type { MobileDiffLine } from '../session/mobile-diff-lines' import type { MobileHighlightedDiffLine } from '../session/mobile-file-syntax' import { mobileDiffLineNumber, mobileDiffLinePrefix } from '../source-control/mobile-diff-format' diff --git a/mobile/src/components/NewWorktreeModal.tsx b/mobile/src/components/NewWorktreeModal.tsx index 3fca3261ecc..8e484141fbf 100644 --- a/mobile/src/components/NewWorktreeModal.tsx +++ b/mobile/src/components/NewWorktreeModal.tsx @@ -29,7 +29,8 @@ import { type SetupHookTrust } from '../tasks/setup-hook-trust' import { isMobileTuiAgentEnabled } from '../tasks/mobile-tui-agents' -import type { PersistedTrustedOrcaHooks, TuiAgent } from '../../../src/shared/types' +import type { PersistedTrustedOrcaHooks } from '../../../src/shared/orca-yaml-hook-types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import type { SshConnectionState } from '../../../src/shared/ssh-types' import { NEW_WORKTREE_AGENT_OPTIONS as AGENT_OPTIONS, diff --git a/mobile/src/components/mobile-agent-icon-assets.test.ts b/mobile/src/components/mobile-agent-icon-assets.test.ts index edbe71760c7..f4f6325d806 100644 --- a/mobile/src/components/mobile-agent-icon-assets.test.ts +++ b/mobile/src/components/mobile-agent-icon-assets.test.ts @@ -1,7 +1,7 @@ import { existsSync, readFileSync } from 'node:fs' import path from 'node:path' import { describe, expect, it } from 'vitest' -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import { MOBILE_TUI_AGENT_FAVICON_DOMAINS } from '../tasks/mobile-tui-agents' // Agents that render a hand-authored glyph in MobileAgentIcon and therefore diff --git a/mobile/src/components/mobile-agent-icon-assets.ts b/mobile/src/components/mobile-agent-icon-assets.ts index 3f93b3dfaeb..38a48373734 100644 --- a/mobile/src/components/mobile-agent-icon-assets.ts +++ b/mobile/src/components/mobile-agent-icon-assets.ts @@ -1,5 +1,5 @@ import type { ImageSourcePropType } from 'react-native' -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' // Why: mobile previously rendered these agent icons from Google's favicon // service, which is unreachable in some regions (e.g. mainland China) and diff --git a/mobile/src/components/new-worktree-agent-selection.ts b/mobile/src/components/new-worktree-agent-selection.ts index 22101c00a30..1e8836a5fed 100644 --- a/mobile/src/components/new-worktree-agent-selection.ts +++ b/mobile/src/components/new-worktree-agent-selection.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import { MOBILE_AGENT_CATALOG } from '../tasks/mobile-agent-catalog' import { isMobileTuiAgentEnabled } from '../tasks/mobile-tui-agents' import { pickWorkspaceAgent } from '../tasks/workspace-agent-selection' diff --git a/mobile/src/components/pr-sidebar/PRActionsSection.tsx b/mobile/src/components/pr-sidebar/PRActionsSection.tsx index 5fae6803889..8f331ef11ba 100644 --- a/mobile/src/components/pr-sidebar/PRActionsSection.tsx +++ b/mobile/src/components/pr-sidebar/PRActionsSection.tsx @@ -2,7 +2,7 @@ import { useCallback, useState } from 'react' import { ActivityIndicator, Pressable, Text, View } from 'react-native' import { GitMerge, Link2Off } from 'lucide-react-native' import { colors } from '../../theme/mobile-theme' -import type { GitHubPRMergeMethod, PRInfo } from '../../../../src/shared/types' +import type { GitHubPRMergeMethod, PRInfo } from '../../../../src/shared/github/pull-request-types' import type { RpcClient } from '../../transport/rpc-client' import type { MobilePrActions } from '../../session/use-mobile-pr-actions' import { unlinkMobilePr } from '../../source-control/mobile-pr-link' diff --git a/mobile/src/components/pr-sidebar/PRCheckDetail.tsx b/mobile/src/components/pr-sidebar/PRCheckDetail.tsx index 7086681c434..3023cdce72c 100644 --- a/mobile/src/components/pr-sidebar/PRCheckDetail.tsx +++ b/mobile/src/components/pr-sidebar/PRCheckDetail.tsx @@ -1,6 +1,6 @@ import { ActivityIndicator, ScrollView, Text, View } from 'react-native' import { colors } from '../../theme/mobile-theme' -import type { PRCheckRunDetails } from '../../../../src/shared/types' +import type { PRCheckRunDetails } from '../../../../src/shared/github/check-types' import { presentCheckDetail, type CheckDetailJob } from './pr-check-detail-content' import { mobilePrSidebarStyles as styles } from './mobile-pr-sidebar-styles' diff --git a/mobile/src/components/pr-sidebar/PRChecksSection.tsx b/mobile/src/components/pr-sidebar/PRChecksSection.tsx index 53ac41655c5..12c08929c41 100644 --- a/mobile/src/components/pr-sidebar/PRChecksSection.tsx +++ b/mobile/src/components/pr-sidebar/PRChecksSection.tsx @@ -2,7 +2,7 @@ import { useCallback, useEffect, useRef, useState } from 'react' import { ActivityIndicator, Linking, Pressable, Text, View } from 'react-native' import { ChevronDown, ChevronRight, ExternalLink, RotateCw, Sparkles } from 'lucide-react-native' import { colors } from '../../theme/mobile-theme' -import type { PRCheckDetail } from '../../../../src/shared/types' +import type { PRCheckDetail } from '../../../../src/shared/github/check-types' import type { RpcClient } from '../../transport/rpc-client' import { fetchPRCheckDetails, type GitHubPrRepoSlug } from '../../session/github-pr-rpc' import type { MobilePrActions } from '../../session/use-mobile-pr-actions' diff --git a/mobile/src/components/pr-sidebar/PRCommentCard.tsx b/mobile/src/components/pr-sidebar/PRCommentCard.tsx index 23d768b7814..5aee8cc0a00 100644 --- a/mobile/src/components/pr-sidebar/PRCommentCard.tsx +++ b/mobile/src/components/pr-sidebar/PRCommentCard.tsx @@ -1,7 +1,11 @@ import { memo, useState } from 'react' import { Image, Linking, Pressable, Text, View } from 'react-native' import { Check, CornerDownRight, ExternalLink, Pencil, Trash2, Undo2 } from 'lucide-react-native' -import type { GitHubReaction, GitHubReactionContent, PRComment } from '../../../../src/shared/types' +import type { + GitHubReaction, + GitHubReactionContent, + PRComment +} from '../../../../src/shared/github/comment-types' import { colors } from '../../theme/mobile-theme' import { canEditComment, isResolvableComment } from '../../session/pr-comment-actions' import { ConfirmModal } from '../ConfirmModal' diff --git a/mobile/src/components/pr-sidebar/PRCommentsSection.test.ts b/mobile/src/components/pr-sidebar/PRCommentsSection.test.ts index 08fc02c357b..e01b251ce05 100644 --- a/mobile/src/components/pr-sidebar/PRCommentsSection.test.ts +++ b/mobile/src/components/pr-sidebar/PRCommentsSection.test.ts @@ -1,7 +1,8 @@ import { createElement } from 'react' import { act, create, type ReactTestRenderer } from 'react-test-renderer' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { GitHubWorkItemDetails, PRComment } from '../../../../src/shared/types' +import type { PRComment } from '../../../../src/shared/github/comment-types' +import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types' import { PRCommentsSection } from './PRCommentsSection' vi.mock('react-native', () => ({ diff --git a/mobile/src/components/pr-sidebar/PRCommentsSection.tsx b/mobile/src/components/pr-sidebar/PRCommentsSection.tsx index 8fb5de31037..b8ce48362f2 100644 --- a/mobile/src/components/pr-sidebar/PRCommentsSection.tsx +++ b/mobile/src/components/pr-sidebar/PRCommentsSection.tsx @@ -1,7 +1,8 @@ import { useMemo, useState } from 'react' import { ActivityIndicator, Pressable, Text, View } from 'react-native' import { ChevronDown, ChevronRight } from 'lucide-react-native' -import type { GitHubWorkItemDetails, PRState } from '../../../../src/shared/types' +import type { PRState } from '../../../../src/shared/github/pull-request-types' +import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types' import type { GitHubPrRepoSlug } from '../../session/github-pr-rpc' import { colors } from '../../theme/mobile-theme' import { canAddRootComment } from '../../session/pr-comment-actions' diff --git a/mobile/src/components/pr-sidebar/PRConflictingFilesSection.tsx b/mobile/src/components/pr-sidebar/PRConflictingFilesSection.tsx index 95c95d30573..0a95854d4fd 100644 --- a/mobile/src/components/pr-sidebar/PRConflictingFilesSection.tsx +++ b/mobile/src/components/pr-sidebar/PRConflictingFilesSection.tsx @@ -3,7 +3,7 @@ import { ActivityIndicator, Pressable, ScrollView, Text, View } from 'react-nati import * as Clipboard from 'expo-clipboard' import { Check, Copy, FileWarning, Sparkles } from 'lucide-react-native' import { colors } from '../../theme/mobile-theme' -import type { PRInfo } from '../../../../src/shared/types' +import type { PRInfo } from '../../../../src/shared/github/pull-request-types' import { PRSection } from './PRSection' import { resolveConflictDisplay } from './pr-conflict-presentation' import { prConflictStyles as styles } from './pr-conflict-styles' diff --git a/mobile/src/components/pr-sidebar/PRReviewersSection.tsx b/mobile/src/components/pr-sidebar/PRReviewersSection.tsx index bc09ecd3502..d374dd629c8 100644 --- a/mobile/src/components/pr-sidebar/PRReviewersSection.tsx +++ b/mobile/src/components/pr-sidebar/PRReviewersSection.tsx @@ -2,7 +2,7 @@ import { useMemo, useState } from 'react' import { ActivityIndicator, Pressable, Text, View } from 'react-native' import { UserPlus, X } from 'lucide-react-native' import { colors } from '../../theme/mobile-theme' -import type { GitHubWorkItemDetails } from '../../../../src/shared/types' +import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types' import type { RpcClient } from '../../transport/rpc-client' import type { MobilePrActions } from '../../session/use-mobile-pr-actions' import { isPrSidebarDetailsPlaceholder } from '../../session/mobile-pr-sidebar-state' diff --git a/mobile/src/components/pr-sidebar/PRSidebarHeader.tsx b/mobile/src/components/pr-sidebar/PRSidebarHeader.tsx index 335108e07ae..c053e9b2a65 100644 --- a/mobile/src/components/pr-sidebar/PRSidebarHeader.tsx +++ b/mobile/src/components/pr-sidebar/PRSidebarHeader.tsx @@ -2,7 +2,8 @@ import { useState } from 'react' import { ActivityIndicator, Pressable, Text, TextInput, View } from 'react-native' import { ArrowRight, ExternalLink, Pencil } from 'lucide-react-native' import { colors } from '../../theme/mobile-theme' -import type { GitHubWorkItemDetails, PRInfo } from '../../../../src/shared/types' +import type { PRInfo } from '../../../../src/shared/github/pull-request-types' +import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types' import type { MobilePrTitleAction } from '../../session/use-mobile-pr-title-action' import { prStateBadge } from './pr-checks-presentation' import { statusColor } from './pr-sidebar-status-color' diff --git a/mobile/src/components/pr-sidebar/ReviewerPickerDrawer.tsx b/mobile/src/components/pr-sidebar/ReviewerPickerDrawer.tsx index 8a3a161f358..6cdb63ca38e 100644 --- a/mobile/src/components/pr-sidebar/ReviewerPickerDrawer.tsx +++ b/mobile/src/components/pr-sidebar/ReviewerPickerDrawer.tsx @@ -2,7 +2,7 @@ import { useEffect, useMemo, useState } from 'react' import { ActivityIndicator, Pressable, Text, TextInput, View } from 'react-native' import { Check } from 'lucide-react-native' import { colors } from '../../theme/mobile-theme' -import type { GitHubAssignableUser } from '../../../../src/shared/types' +import type { GitHubAssignableUser } from '../../../../src/shared/github/pull-request-types' import type { RpcClient } from '../../transport/rpc-client' import { fetchAssignableUsers } from '../../session/github-pr-rpc' import { BottomDrawer } from '../BottomDrawer' diff --git a/mobile/src/components/pr-sidebar/pr-actions-state.ts b/mobile/src/components/pr-sidebar/pr-actions-state.ts index 7aa1456bc55..f2bd679af1a 100644 --- a/mobile/src/components/pr-sidebar/pr-actions-state.ts +++ b/mobile/src/components/pr-sidebar/pr-actions-state.ts @@ -1,4 +1,4 @@ -import type { GitHubPRMergeMethod, PRState } from '../../../../src/shared/types' +import type { GitHubPRMergeMethod, PRState } from '../../../../src/shared/github/pull-request-types' // Which actions the PR actions section may offer for a given PR state. Merged PRs // expose only unlink (+ open-on-host elsewhere); closed PRs add reopen; open/draft diff --git a/mobile/src/components/pr-sidebar/pr-auto-merge-availability.ts b/mobile/src/components/pr-sidebar/pr-auto-merge-availability.ts index 5453a0209b6..166e6e0c189 100644 --- a/mobile/src/components/pr-sidebar/pr-auto-merge-availability.ts +++ b/mobile/src/components/pr-sidebar/pr-auto-merge-availability.ts @@ -1,4 +1,4 @@ -import type { PRInfo } from '../../../../src/shared/types' +import type { PRInfo } from '../../../../src/shared/github/pull-request-types' type MobilePRAutoMergeAvailabilityInput = Pick< PRInfo, diff --git a/mobile/src/components/pr-sidebar/pr-check-detail-content.test.ts b/mobile/src/components/pr-sidebar/pr-check-detail-content.test.ts index 8956a90b4b8..5876405d1bb 100644 --- a/mobile/src/components/pr-sidebar/pr-check-detail-content.test.ts +++ b/mobile/src/components/pr-sidebar/pr-check-detail-content.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRCheckRunDetails } from '../../../../src/shared/types' +import type { PRCheckRunDetails } from '../../../../src/shared/github/check-types' import { presentCheckDetail } from './pr-check-detail-content' function details(over: Partial): PRCheckRunDetails { diff --git a/mobile/src/components/pr-sidebar/pr-check-detail-content.ts b/mobile/src/components/pr-sidebar/pr-check-detail-content.ts index b1f63cbd370..0a99fc23709 100644 --- a/mobile/src/components/pr-sidebar/pr-check-detail-content.ts +++ b/mobile/src/components/pr-sidebar/pr-check-detail-content.ts @@ -3,7 +3,7 @@ import type { PRCheckJob, PRCheckRunDetails, PRCheckStep -} from '../../../../src/shared/types' +} from '../../../../src/shared/github/check-types' // Pure mapping from the github.prCheckDetails payload to the rows the mobile // expanded check detail renders. No React/native imports so it stays unit-testable diff --git a/mobile/src/components/pr-sidebar/pr-checks-presentation.test.ts b/mobile/src/components/pr-sidebar/pr-checks-presentation.test.ts index 044644b7dc4..cf40a6b323e 100644 --- a/mobile/src/components/pr-sidebar/pr-checks-presentation.test.ts +++ b/mobile/src/components/pr-sidebar/pr-checks-presentation.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRCheckDetail } from '../../../../src/shared/types' +import type { PRCheckDetail } from '../../../../src/shared/github/check-types' import { checkOutcome, firstFailingCheckKey, diff --git a/mobile/src/components/pr-sidebar/pr-checks-presentation.ts b/mobile/src/components/pr-sidebar/pr-checks-presentation.ts index e929a13bf40..277680fb9a5 100644 --- a/mobile/src/components/pr-sidebar/pr-checks-presentation.ts +++ b/mobile/src/components/pr-sidebar/pr-checks-presentation.ts @@ -1,4 +1,8 @@ -import type { PRCheckDetail, PRState, ProviderCheckSummary } from '../../../../src/shared/types' +import type { PRCheckDetail } from '../../../../src/shared/github/check-types' +import type { + PRState, + ProviderCheckSummary +} from '../../../../src/shared/github/pull-request-types' import { classifyCheckOutcome, summarizeProviderChecks, diff --git a/mobile/src/components/pr-sidebar/pr-conflict-presentation.test.ts b/mobile/src/components/pr-sidebar/pr-conflict-presentation.test.ts index 07172a52ae3..8f68ead0d6f 100644 --- a/mobile/src/components/pr-sidebar/pr-conflict-presentation.test.ts +++ b/mobile/src/components/pr-sidebar/pr-conflict-presentation.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRInfo } from '../../../../src/shared/types' +import type { PRInfo } from '../../../../src/shared/github/pull-request-types' import { buildMergeabilityRefreshCommands, hasMergeConflicts, diff --git a/mobile/src/components/pr-sidebar/pr-conflict-presentation.ts b/mobile/src/components/pr-sidebar/pr-conflict-presentation.ts index 0b227806519..54d2e33cb80 100644 --- a/mobile/src/components/pr-sidebar/pr-conflict-presentation.ts +++ b/mobile/src/components/pr-sidebar/pr-conflict-presentation.ts @@ -1,4 +1,4 @@ -import type { PRInfo } from '../../../../src/shared/types' +import type { PRInfo } from '../../../../src/shared/github/pull-request-types' // Pure presentation logic for the PR sidebar's conflicting-files section. No // React/native imports so it is unit-testable under the node Vitest config (KTD5). diff --git a/mobile/src/session/QuickCommandRow.tsx b/mobile/src/session/QuickCommandRow.tsx index 401305b298c..8815d4da5f0 100644 --- a/mobile/src/session/QuickCommandRow.tsx +++ b/mobile/src/session/QuickCommandRow.tsx @@ -4,7 +4,7 @@ import * as Clipboard from 'expo-clipboard' import { Check, Copy, Pencil, Play, Trash2 } from 'lucide-react-native' import { colors, spacing, typography } from '../theme/mobile-theme' import { MobileAgentIcon } from '../components/MobileAgentIcon' -import type { TerminalQuickCommand } from '../../../src/shared/types' +import type { TerminalQuickCommand } from '../../../src/shared/terminal-quick-command-types' import { getQuickCommandDisplayPreview, getTerminalQuickCommandBody, diff --git a/mobile/src/session/QuickCommandsList.tsx b/mobile/src/session/QuickCommandsList.tsx index e8781163691..02a6809bb60 100644 --- a/mobile/src/session/QuickCommandsList.tsx +++ b/mobile/src/session/QuickCommandsList.tsx @@ -3,7 +3,8 @@ import { Check, Plus, Search } from 'lucide-react-native' import { colors, spacing } from '../theme/mobile-theme' import { MobileAgentIcon } from '../components/MobileAgentIcon' import { MOBILE_AGENT_CATALOG } from '../tasks/mobile-agent-catalog' -import type { TerminalQuickCommand, TuiAgent } from '../../../src/shared/types' +import type { TerminalQuickCommand } from '../../../src/shared/terminal-quick-command-types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import { supportsTerminalAgentQuickCommand } from '../terminal/quick-commands' import { QuickCommandRow } from './QuickCommandRow' diff --git a/mobile/src/session/QuickCommandsSheet.test.ts b/mobile/src/session/QuickCommandsSheet.test.ts index 9951742b64f..2ce520a4eaf 100644 --- a/mobile/src/session/QuickCommandsSheet.test.ts +++ b/mobile/src/session/QuickCommandsSheet.test.ts @@ -1,7 +1,7 @@ import { createElement, type ReactNode } from 'react' import { act, create, type ReactTestRenderer } from 'react-test-renderer' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { TerminalQuickCommand } from '../../../src/shared/types' +import type { TerminalQuickCommand } from '../../../src/shared/terminal-quick-command-types' import type { RpcClient } from '../transport/rpc-client' import { MAX_QUICK_COMMANDS } from '../terminal/quick-commands' import { QuickCommandsSheet } from './QuickCommandsSheet' diff --git a/mobile/src/session/QuickCommandsSheet.tsx b/mobile/src/session/QuickCommandsSheet.tsx index c4dbff9473d..3342f122665 100644 --- a/mobile/src/session/QuickCommandsSheet.tsx +++ b/mobile/src/session/QuickCommandsSheet.tsx @@ -4,7 +4,7 @@ import { ChevronLeft } from 'lucide-react-native' import { colors, spacing } from '../theme/mobile-theme' import { BottomDrawer } from '../components/BottomDrawer' import type { RpcClient } from '../transport/rpc-client' -import type { TerminalQuickCommand } from '../../../src/shared/types' +import type { TerminalQuickCommand } from '../../../src/shared/terminal-quick-command-types' import { getQuickCommandPreview, MAX_QUICK_COMMANDS, diff --git a/mobile/src/session/ai-vault-resume-launch.ts b/mobile/src/session/ai-vault-resume-launch.ts index aa8c1bf98a6..a1a21565037 100644 --- a/mobile/src/session/ai-vault-resume-launch.ts +++ b/mobile/src/session/ai-vault-resume-launch.ts @@ -13,7 +13,7 @@ import { resolveTuiAgentLaunchEnv } from '../../../src/shared/tui-agent-launch-defaults' import { normalizeAiVaultResumeFilePath } from '../../../src/shared/ai-vault-resume-path' -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import { parseWslUncPath } from '../../../src/shared/wsl-paths' import { resolveWindowsShellStartupFamily } from '../../../src/shared/windows-terminal-shell' import type { RpcClient } from '../transport/rpc-client' diff --git a/mobile/src/session/github-pr-comment-parsers.ts b/mobile/src/session/github-pr-comment-parsers.ts index 93f6eab6f31..5d5d49b746f 100644 --- a/mobile/src/session/github-pr-comment-parsers.ts +++ b/mobile/src/session/github-pr-comment-parsers.ts @@ -1,4 +1,8 @@ -import type { GitHubReaction, GitHubReactionContent, PRComment } from '../../../src/shared/types' +import type { + GitHubReaction, + GitHubReactionContent, + PRComment +} from '../../../src/shared/github/comment-types' import { isRecord, readBoolean, readNumber, readString } from './github-pr-value-readers' // Defensive parsers for the PR conversation comments carried by diff --git a/mobile/src/session/github-pr-mutations.ts b/mobile/src/session/github-pr-mutations.ts index d9fa04ce06a..bd1d9c423b9 100644 --- a/mobile/src/session/github-pr-mutations.ts +++ b/mobile/src/session/github-pr-mutations.ts @@ -1,4 +1,4 @@ -import type { GitHubPRMergeMethod } from '../../../src/shared/types' +import type { GitHubPRMergeMethod } from '../../../src/shared/github/pull-request-types' import type { RpcClient } from '../transport/rpc-client' import { buildGithubPrParams, githubPrRepoSlugParam, type GitHubPrRepoSlug } from './github-pr-rpc' diff --git a/mobile/src/session/github-pr-parsers.ts b/mobile/src/session/github-pr-parsers.ts index 25c516f7106..05a59200d1c 100644 --- a/mobile/src/session/github-pr-parsers.ts +++ b/mobile/src/session/github-pr-parsers.ts @@ -1,15 +1,19 @@ import type { - GitHubAssignableUser, - GitHubPRReviewSummary, - GitHubWorkItem, - GitHubWorkItemDetails, PRCheckAnnotation, PRCheckDetail, PRCheckJob, PRCheckRunDetails, - PRCheckStep, + PRCheckStep +} from '../../../src/shared/github/check-types' +import type { + GitHubAssignableUser, + GitHubPRReviewSummary, PRInfo -} from '../../../src/shared/types' +} from '../../../src/shared/github/pull-request-types' +import type { + GitHubWorkItem, + GitHubWorkItemDetails +} from '../../../src/shared/github/work-item-types' import { readPRComments } from './github-pr-comment-parsers' import type { HostedReviewInfo } from '../../../src/shared/hosted-review' import { diff --git a/mobile/src/session/github-pr-rpc.ts b/mobile/src/session/github-pr-rpc.ts index a34ed49581c..485184993ec 100644 --- a/mobile/src/session/github-pr-rpc.ts +++ b/mobile/src/session/github-pr-rpc.ts @@ -1,10 +1,6 @@ -import type { - GitHubAssignableUser, - GitHubWorkItemDetails, - PRCheckDetail, - PRCheckRunDetails, - PRInfo -} from '../../../src/shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../src/shared/github/check-types' +import type { GitHubAssignableUser, PRInfo } from '../../../src/shared/github/pull-request-types' +import type { GitHubWorkItemDetails } from '../../../src/shared/github/work-item-types' import type { HostedReviewInfo } from '../../../src/shared/hosted-review' import { normalizeGitHubPRForBranchOutcome, diff --git a/mobile/src/session/github-pr-value-readers.ts b/mobile/src/session/github-pr-value-readers.ts index 9074d94142c..083601923b8 100644 --- a/mobile/src/session/github-pr-value-readers.ts +++ b/mobile/src/session/github-pr-value-readers.ts @@ -1,16 +1,16 @@ +import type { PRCheckDetail } from '../../../src/shared/github/check-types' import type { CheckStatus, GitHubAssignableUser, - ProviderCheckSummary, GitHubPRMergeMethod, GitHubPRMergeMethodSettings, GitHubPRReviewSummary, GitHubRepositoryIdentity, - PRCheckDetail, PRMergeableState, PRReviewDecision, - PRState -} from '../../../src/shared/types' + PRState, + ProviderCheckSummary +} from '../../../src/shared/github/pull-request-types' import type { HostedReviewProvider } from '../../../src/shared/hosted-review' // Primitive + enum value readers shared by the github.* PR parsers. Each narrows diff --git a/mobile/src/session/mobile-diff-comment-edit.test.ts b/mobile/src/session/mobile-diff-comment-edit.test.ts index 8e6482d8bb0..49328064cd5 100644 --- a/mobile/src/session/mobile-diff-comment-edit.test.ts +++ b/mobile/src/session/mobile-diff-comment-edit.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { DiffComment } from '../../../src/shared/types' +import type { DiffComment } from '../../../src/shared/diff-comment-types' import { clearSentMobileDiffComments, countUnsentMobileDiffComments, diff --git a/mobile/src/session/mobile-diff-comment-edit.ts b/mobile/src/session/mobile-diff-comment-edit.ts index 3da63af3e1e..93ba15c0844 100644 --- a/mobile/src/session/mobile-diff-comment-edit.ts +++ b/mobile/src/session/mobile-diff-comment-edit.ts @@ -1,4 +1,4 @@ -import type { DiffComment } from '../../../src/shared/types' +import type { DiffComment } from '../../../src/shared/diff-comment-types' export type UpdateMobileDiffCommentInput = { id: string diff --git a/mobile/src/session/mobile-diff-comments.test.ts b/mobile/src/session/mobile-diff-comments.test.ts index e86d6e81bab..8897b5e32e4 100644 --- a/mobile/src/session/mobile-diff-comments.test.ts +++ b/mobile/src/session/mobile-diff-comments.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { DiffComment } from '../../../src/shared/types' +import type { DiffComment } from '../../../src/shared/diff-comment-types' import { addMobileDiffComment, formatDiffComments, diff --git a/mobile/src/session/mobile-diff-comments.ts b/mobile/src/session/mobile-diff-comments.ts index 7fc7140fd42..333895ea95a 100644 --- a/mobile/src/session/mobile-diff-comments.ts +++ b/mobile/src/session/mobile-diff-comments.ts @@ -1,4 +1,4 @@ -import type { DiffComment, DiffReviewScope } from '../../../src/shared/types' +import type { DiffComment, DiffReviewScope } from '../../../src/shared/diff-comment-types' import { formatDiffComment, formatDiffComments } from '../../../src/shared/diff-comments-format' export { formatDiffComment, formatDiffComments } diff --git a/mobile/src/session/mobile-diff-review-positioning.ts b/mobile/src/session/mobile-diff-review-positioning.ts index afb03381a2d..63932310767 100644 --- a/mobile/src/session/mobile-diff-review-positioning.ts +++ b/mobile/src/session/mobile-diff-review-positioning.ts @@ -1,4 +1,4 @@ -import type { DiffReviewScope } from '../../../src/shared/types' +import type { DiffReviewScope } from '../../../src/shared/diff-comment-types' import type { MobileGitStagingArea } from '../source-control/mobile-git-status' import { createMobileDiffReviewFileKey, diff --git a/mobile/src/session/mobile-diff-review-queue.test.ts b/mobile/src/session/mobile-diff-review-queue.test.ts index 551f378d142..1286e22cce4 100644 --- a/mobile/src/session/mobile-diff-review-queue.test.ts +++ b/mobile/src/session/mobile-diff-review-queue.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { DiffComment, MobileDiffReviewState } from '../../../src/shared/types' +import type { DiffComment, MobileDiffReviewState } from '../../../src/shared/diff-comment-types' import type { MobileGitBranchChangeEntry } from '../source-control/mobile-branch-compare' import type { MobileGitStatusEntry } from '../source-control/mobile-git-status' import { diff --git a/mobile/src/session/mobile-diff-review-queue.ts b/mobile/src/session/mobile-diff-review-queue.ts index a87c56dab3b..f66c7c04bb7 100644 --- a/mobile/src/session/mobile-diff-review-queue.ts +++ b/mobile/src/session/mobile-diff-review-queue.ts @@ -1,4 +1,8 @@ -import type { DiffComment, DiffReviewScope, MobileDiffReviewState } from '../../../src/shared/types' +import type { + DiffComment, + DiffReviewScope, + MobileDiffReviewState +} from '../../../src/shared/diff-comment-types' import type { MobileGitBranchChangeEntry } from '../source-control/mobile-branch-compare' import { isMobileGitDiscardableEntry, diff --git a/mobile/src/session/mobile-diff-review-screen-model.ts b/mobile/src/session/mobile-diff-review-screen-model.ts index f8f1ceedf99..ecf09bf3efb 100644 --- a/mobile/src/session/mobile-diff-review-screen-model.ts +++ b/mobile/src/session/mobile-diff-review-screen-model.ts @@ -1,4 +1,4 @@ -import type { DiffComment, MobileDiffReviewState } from '../../../src/shared/types' +import type { DiffComment, MobileDiffReviewState } from '../../../src/shared/diff-comment-types' import type { MobileGitBranchCompareResult } from '../source-control/mobile-branch-compare' import type { MobileGitStatusResult } from '../source-control/mobile-git-status' import type { MobileDiffLine } from './mobile-diff-lines' diff --git a/mobile/src/session/mobile-diff-review-state.ts b/mobile/src/session/mobile-diff-review-state.ts index a9680a66df5..01361b9dfb9 100644 --- a/mobile/src/session/mobile-diff-review-state.ts +++ b/mobile/src/session/mobile-diff-review-state.ts @@ -2,7 +2,7 @@ import type { DiffReviewScope, MobileDiffReviewFileState, MobileDiffReviewState -} from '../../../src/shared/types' +} from '../../../src/shared/diff-comment-types' export type MobileDiffReviewFileDescriptor = { key: string diff --git a/mobile/src/session/mobile-new-tab-agent-options.ts b/mobile/src/session/mobile-new-tab-agent-options.ts index 51de5b610f2..82e06bd8f30 100644 --- a/mobile/src/session/mobile-new-tab-agent-options.ts +++ b/mobile/src/session/mobile-new-tab-agent-options.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import { filterEnabledMobileTuiAgents, isMobileTuiAgent, diff --git a/mobile/src/session/mobile-pr-sidebar-state.ts b/mobile/src/session/mobile-pr-sidebar-state.ts index 1b4d9a1b50b..4ec65a7e2d7 100644 --- a/mobile/src/session/mobile-pr-sidebar-state.ts +++ b/mobile/src/session/mobile-pr-sidebar-state.ts @@ -1,4 +1,6 @@ -import type { GitHubWorkItemDetails, PRCheckDetail, PRInfo } from '../../../src/shared/types' +import type { PRCheckDetail } from '../../../src/shared/github/check-types' +import type { PRInfo } from '../../../src/shared/github/pull-request-types' +import type { GitHubWorkItemDetails } from '../../../src/shared/github/work-item-types' import type { GitHubPrReadOutcome, GitHubPrRepoSlug } from './github-pr-rpc' import { resolveLinkedPrNumber } from './mobile-pr-sidebar-resolve' diff --git a/mobile/src/session/mobile-session-route-types.ts b/mobile/src/session/mobile-session-route-types.ts index 7e74a5d04c0..65d4d14d3fe 100644 --- a/mobile/src/session/mobile-session-route-types.ts +++ b/mobile/src/session/mobile-session-route-types.ts @@ -1,4 +1,5 @@ -import type { DiffComment, TuiAgent } from '../../../src/shared/types' +import type { DiffComment } from '../../../src/shared/diff-comment-types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import type { AgentStatusEntry } from '../../../src/shared/agent-status-types' import type { MobileBrowserTab } from '../browser/MobileBrowserPane' import type { MobileTerminalTheme } from '../terminal/terminal-webview-contract' diff --git a/mobile/src/session/mobile-terminal-tab-agent.test.ts b/mobile/src/session/mobile-terminal-tab-agent.test.ts index 8449f988e24..db6d95c228e 100644 --- a/mobile/src/session/mobile-terminal-tab-agent.test.ts +++ b/mobile/src/session/mobile-terminal-tab-agent.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import type { AgentStatusEntry } from '../../../src/shared/agent-status-types' -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import type { MobileSessionTab } from './mobile-session-route-types' import { getMobileSessionTabTitle, diff --git a/mobile/src/session/mobile-terminal-tab-agent.ts b/mobile/src/session/mobile-terminal-tab-agent.ts index 731d5bf4a24..f28d9b3fd98 100644 --- a/mobile/src/session/mobile-terminal-tab-agent.ts +++ b/mobile/src/session/mobile-terminal-tab-agent.ts @@ -1,7 +1,7 @@ import { stripLeadingAgentTitleDecorationOrEmpty } from '../../../src/shared/agent-title-decoration' import { resolveExplicitTerminalTitleAgentType } from '../../../src/shared/terminal-title-agent-type' import type { AgentStatusEntry } from '../../../src/shared/agent-status-types' -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import { isBlankBrowserUrl } from '../browser/browser-url' import type { MobileSessionTab } from './mobile-session-route-types' diff --git a/mobile/src/session/pr-action-mutation-contract.ts b/mobile/src/session/pr-action-mutation-contract.ts index a2fcdb271df..0cc8b29b109 100644 --- a/mobile/src/session/pr-action-mutation-contract.ts +++ b/mobile/src/session/pr-action-mutation-contract.ts @@ -1,4 +1,4 @@ -import type { GitHubPRMergeMethod } from '../../../src/shared/types' +import type { GitHubPRMergeMethod } from '../../../src/shared/github/pull-request-types' import type { GitHubPrMutationOutcome } from './github-pr-mutations' import type { GitHubPrRepoSlug } from './github-pr-rpc' diff --git a/mobile/src/session/pr-actions-engine.ts b/mobile/src/session/pr-actions-engine.ts index cc5bfde80a3..18058c71c26 100644 --- a/mobile/src/session/pr-actions-engine.ts +++ b/mobile/src/session/pr-actions-engine.ts @@ -1,4 +1,4 @@ -import type { GitHubPRMergeMethod, PRState } from '../../../src/shared/types' +import type { GitHubPRMergeMethod, PRState } from '../../../src/shared/github/pull-request-types' import { githubRepoIdentityKey } from '../../../src/shared/github/repository-identity-key' import { classifyPrSidebarFailure } from './mobile-pr-sidebar-state' import { createOptimisticField, type OptimisticField } from './optimistic-write-sequence' diff --git a/mobile/src/session/pr-ai-triage-prompt.test.ts b/mobile/src/session/pr-ai-triage-prompt.test.ts index 0ebd02f6a57..4ed8af5ff23 100644 --- a/mobile/src/session/pr-ai-triage-prompt.test.ts +++ b/mobile/src/session/pr-ai-triage-prompt.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRCheckDetail } from '../../../src/shared/types' +import type { PRCheckDetail } from '../../../src/shared/github/check-types' import { buildFixChecksPrompt, buildResolveConflictsPrompt, diff --git a/mobile/src/session/pr-ai-triage-prompt.ts b/mobile/src/session/pr-ai-triage-prompt.ts index b1dad03d82c..45fde38daa4 100644 --- a/mobile/src/session/pr-ai-triage-prompt.ts +++ b/mobile/src/session/pr-ai-triage-prompt.ts @@ -3,7 +3,7 @@ import { getBrokenChecks } from '../../../src/shared/pr-checks-fix-prompt' import { buildResolvePullRequestConflictsPrompt } from '../../../src/shared/source-control-conflict-prompts' -import type { PRCheckDetail } from '../../../src/shared/types' +import type { PRCheckDetail } from '../../../src/shared/github/check-types' // Pure prompt builders for the mobile PR sidebar's "Fix checks with AI" / // "Resolve conflicts with AI" triage actions. Kept free of React/native imports diff --git a/mobile/src/session/pr-comment-actions.test.ts b/mobile/src/session/pr-comment-actions.test.ts index bb6f1758b24..6f5d5778084 100644 --- a/mobile/src/session/pr-comment-actions.test.ts +++ b/mobile/src/session/pr-comment-actions.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRComment } from '../../../src/shared/types' +import type { PRComment } from '../../../src/shared/github/comment-types' import { buildAddRootCommentParams, buildDeleteCommentParams, diff --git a/mobile/src/session/pr-comment-actions.ts b/mobile/src/session/pr-comment-actions.ts index 012500c62da..0e4e8b8c39b 100644 --- a/mobile/src/session/pr-comment-actions.ts +++ b/mobile/src/session/pr-comment-actions.ts @@ -1,4 +1,5 @@ -import type { GitHubOwnerRepo, PRComment, PRState } from '../../../src/shared/types' +import type { PRComment } from '../../../src/shared/github/comment-types' +import type { GitHubOwnerRepo, PRState } from '../../../src/shared/github/pull-request-types' // Pure helpers for the interactive PR comment timeline (reply / resolve / add // root comment). Kept free of React/native imports so they unit-test under the diff --git a/mobile/src/session/pr-title-edit.ts b/mobile/src/session/pr-title-edit.ts index 9d62b5a0dcd..57cf0b28ac5 100644 --- a/mobile/src/session/pr-title-edit.ts +++ b/mobile/src/session/pr-title-edit.ts @@ -1,4 +1,4 @@ -import type { PRState } from '../../../src/shared/types' +import type { PRState } from '../../../src/shared/github/pull-request-types' // Pure helpers for the inline PR-title edit affordance. Kept free of React/native // imports so they unit-test under the node Vitest config, mirroring the other diff --git a/mobile/src/session/quick-command-draft.ts b/mobile/src/session/quick-command-draft.ts index 2afdcf74620..c1bf3fb5e35 100644 --- a/mobile/src/session/quick-command-draft.ts +++ b/mobile/src/session/quick-command-draft.ts @@ -1,9 +1,9 @@ import type { TerminalQuickCommand, TerminalQuickCommandAction, - TerminalQuickCommandScope, - TuiAgent -} from '../../../src/shared/types' + TerminalQuickCommandScope +} from '../../../src/shared/terminal-quick-command-types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import { isAgentQuickCommand, MAX_QUICK_COMMAND_AGENT_PROMPT_LENGTH, diff --git a/mobile/src/session/use-mobile-diff-review-comment-actions.ts b/mobile/src/session/use-mobile-diff-review-comment-actions.ts index 252eaf0843e..730f1e83354 100644 --- a/mobile/src/session/use-mobile-diff-review-comment-actions.ts +++ b/mobile/src/session/use-mobile-diff-review-comment-actions.ts @@ -1,5 +1,5 @@ import { useCallback, type Dispatch, type SetStateAction } from 'react' -import type { DiffComment, MobileDiffReviewState } from '../../../src/shared/types' +import type { DiffComment, MobileDiffReviewState } from '../../../src/shared/diff-comment-types' import { triggerError, triggerSuccess } from '../platform/haptics' import type { ConnectionState } from '../transport/types' import type { RpcClient } from '../transport/rpc-client' diff --git a/mobile/src/session/use-mobile-diff-review-controller.ts b/mobile/src/session/use-mobile-diff-review-controller.ts index d57276f1f43..03f4b5711a9 100644 --- a/mobile/src/session/use-mobile-diff-review-controller.ts +++ b/mobile/src/session/use-mobile-diff-review-controller.ts @@ -1,6 +1,6 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import type { FlatList } from 'react-native' -import type { DiffComment } from '../../../src/shared/types' +import type { DiffComment } from '../../../src/shared/diff-comment-types' import type { ConnectionState } from '../transport/types' import type { RpcClient } from '../transport/rpc-client' import { getWorktreeLabel } from './worktree-label' diff --git a/mobile/src/session/use-mobile-diff-review-send-actions.test.ts b/mobile/src/session/use-mobile-diff-review-send-actions.test.ts index 1d06190948c..d84fa008be4 100644 --- a/mobile/src/session/use-mobile-diff-review-send-actions.test.ts +++ b/mobile/src/session/use-mobile-diff-review-send-actions.test.ts @@ -1,7 +1,7 @@ import { createElement } from 'react' import { act, create, type ReactTestRenderer } from 'react-test-renderer' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { DiffComment } from '../../../src/shared/types' +import type { DiffComment } from '../../../src/shared/diff-comment-types' import type { RpcClient } from '../transport/rpc-client' import type { ReviewScreenState } from './mobile-diff-review-screen-model' import { diff --git a/mobile/src/session/use-mobile-diff-review-send-actions.ts b/mobile/src/session/use-mobile-diff-review-send-actions.ts index 0867a3884b3..40423f95664 100644 --- a/mobile/src/session/use-mobile-diff-review-send-actions.ts +++ b/mobile/src/session/use-mobile-diff-review-send-actions.ts @@ -1,6 +1,6 @@ import { useCallback, type Dispatch, type SetStateAction } from 'react' import * as Clipboard from 'expo-clipboard' -import type { DiffComment, MobileDiffReviewState } from '../../../src/shared/types' +import type { DiffComment, MobileDiffReviewState } from '../../../src/shared/diff-comment-types' import type { ConnectionState } from '../transport/types' import type { RpcClient } from '../transport/rpc-client' import { triggerSuccess } from '../platform/haptics' diff --git a/mobile/src/session/use-mobile-pr-comment-actions.ts b/mobile/src/session/use-mobile-pr-comment-actions.ts index 38096bad833..187dc32dbdb 100644 --- a/mobile/src/session/use-mobile-pr-comment-actions.ts +++ b/mobile/src/session/use-mobile-pr-comment-actions.ts @@ -1,5 +1,5 @@ import { useCallback, useMemo, useRef, useState } from 'react' -import type { PRComment } from '../../../src/shared/types' +import type { PRComment } from '../../../src/shared/github/comment-types' import type { ConnectionState } from '../transport/types' import type { RpcClient } from '../transport/rpc-client' import type { GitHubPrRepoSlug } from './github-pr-rpc' diff --git a/mobile/src/session/use-mobile-pr-sidebar-controller.test.ts b/mobile/src/session/use-mobile-pr-sidebar-controller.test.ts index f402f7b58ad..daf4d241fcc 100644 --- a/mobile/src/session/use-mobile-pr-sidebar-controller.test.ts +++ b/mobile/src/session/use-mobile-pr-sidebar-controller.test.ts @@ -1,5 +1,7 @@ import { describe, expect, it, vi } from 'vitest' -import type { GitHubWorkItemDetails, PRCheckDetail, PRInfo } from '../../../src/shared/types' +import type { PRCheckDetail } from '../../../src/shared/github/check-types' +import type { PRInfo } from '../../../src/shared/github/pull-request-types' +import type { GitHubWorkItemDetails } from '../../../src/shared/github/work-item-types' import type { HostedReviewInfo } from '../../../src/shared/hosted-review' import type { GitHubPrReadOutcome } from './github-pr-rpc' import { diff --git a/mobile/src/session/use-quick-commands.test.ts b/mobile/src/session/use-quick-commands.test.ts index a4f93b326fc..b375a20bd97 100644 --- a/mobile/src/session/use-quick-commands.test.ts +++ b/mobile/src/session/use-quick-commands.test.ts @@ -1,7 +1,7 @@ import { createElement } from 'react' import { act, create, type ReactTestRenderer } from 'react-test-renderer' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { TerminalQuickCommand } from '../../../src/shared/types' +import type { TerminalQuickCommand } from '../../../src/shared/terminal-quick-command-types' import type { RpcClient } from '../transport/rpc-client' import { LogicalClientCutoverError } from '../transport/stable-logical-rpc-client' import type { RpcResponse } from '../transport/types' diff --git a/mobile/src/session/use-quick-commands.ts b/mobile/src/session/use-quick-commands.ts index 6a6604a5c6f..6537551be7a 100644 --- a/mobile/src/session/use-quick-commands.ts +++ b/mobile/src/session/use-quick-commands.ts @@ -2,7 +2,7 @@ import { useCallback, useEffect, useRef, useState } from 'react' import type { RpcClient } from '../transport/rpc-client' import { isLogicalClientCutoverError } from '../transport/stable-logical-rpc-client' import type { RpcFailure, RpcResponse, RpcSuccess } from '../transport/types' -import type { TerminalQuickCommand } from '../../../src/shared/types' +import type { TerminalQuickCommand } from '../../../src/shared/terminal-quick-command-types' import { applyTerminalQuickCommandMutation, parseNormalizedTerminalQuickCommands, diff --git a/mobile/src/source-control/MobileGitHistoryList.tsx b/mobile/src/source-control/MobileGitHistoryList.tsx index dd1a626fdfb..457f0580156 100644 --- a/mobile/src/source-control/MobileGitHistoryList.tsx +++ b/mobile/src/source-control/MobileGitHistoryList.tsx @@ -11,7 +11,7 @@ import { type MobileCommitRow } from './mobile-git-history' import { resolveMobileHistoryScreenView } from './mobile-history-screen-state' -import type { GitBranchChangeEntry } from '../../../src/shared/types' +import type { GitBranchChangeEntry } from '../../../src/shared/git-diff-compare-types' type Props = { client: RpcClient | null diff --git a/mobile/src/source-control/mobile-branch-compare.test.ts b/mobile/src/source-control/mobile-branch-compare.test.ts index b96090faece..cb7a5d7e86a 100644 --- a/mobile/src/source-control/mobile-branch-compare.test.ts +++ b/mobile/src/source-control/mobile-branch-compare.test.ts @@ -1,5 +1,5 @@ import { describe, expect, expectTypeOf, it } from 'vitest' -import type { GitBranchCompareResult } from '../../../src/shared/types' +import type { GitBranchCompareResult } from '../../../src/shared/git-diff-compare-types' import { buildMobileBranchCompareSection, canOpenMobileBranchCompareDiff, diff --git a/mobile/src/source-control/mobile-branch-compare.ts b/mobile/src/source-control/mobile-branch-compare.ts index 060ee768ec4..228156b18b7 100644 --- a/mobile/src/source-control/mobile-branch-compare.ts +++ b/mobile/src/source-control/mobile-branch-compare.ts @@ -2,7 +2,7 @@ import type { GitBranchChangeEntry, GitBranchCompareResult, GitBranchCompareSummary -} from '../../../src/shared/types' +} from '../../../src/shared/git-diff-compare-types' export type MobileGitBranchChangeEntry = GitBranchChangeEntry export type MobileGitBranchCompareSummary = GitBranchCompareSummary diff --git a/mobile/src/source-control/mobile-pr-chip-summary.test.ts b/mobile/src/source-control/mobile-pr-chip-summary.test.ts index f9e21b31d73..36f04eb832c 100644 --- a/mobile/src/source-control/mobile-pr-chip-summary.test.ts +++ b/mobile/src/source-control/mobile-pr-chip-summary.test.ts @@ -1,5 +1,7 @@ import { describe, it, expect } from 'vitest' -import type { PRCheckDetail, PRComment, PRInfo } from '../../../src/shared/types' +import type { PRCheckDetail } from '../../../src/shared/github/check-types' +import type { PRComment } from '../../../src/shared/github/comment-types' +import type { PRInfo } from '../../../src/shared/github/pull-request-types' import type { PrSidebarState } from '../session/mobile-pr-sidebar-state' import { buildMobilePrChipSummary, countUnresolvedReviewThreads } from './mobile-pr-chip-summary' diff --git a/mobile/src/source-control/mobile-pr-chip-summary.ts b/mobile/src/source-control/mobile-pr-chip-summary.ts index c281d882b1c..d1d7adf7acf 100644 --- a/mobile/src/source-control/mobile-pr-chip-summary.ts +++ b/mobile/src/source-control/mobile-pr-chip-summary.ts @@ -1,4 +1,4 @@ -import type { PRComment } from '../../../src/shared/types' +import type { PRComment } from '../../../src/shared/github/comment-types' import type { PrSidebarState } from '../session/mobile-pr-sidebar-state' import { summarizeProviderChecks } from '../../../src/shared/provider-check-summary' import { diff --git a/mobile/src/tasks/blank-workspace-create.ts b/mobile/src/tasks/blank-workspace-create.ts index 2cbed698276..6b6da283dcc 100644 --- a/mobile/src/tasks/blank-workspace-create.ts +++ b/mobile/src/tasks/blank-workspace-create.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import type { RpcClient } from '../transport/rpc-client' import { createWorktreeWithNameRetry, type WorktreeCreateResult } from './worktree-create-retry' import { diff --git a/mobile/src/tasks/composer-linked-work-item.test.ts b/mobile/src/tasks/composer-linked-work-item.test.ts index d08d1388a0e..f3ce9299e92 100644 --- a/mobile/src/tasks/composer-linked-work-item.test.ts +++ b/mobile/src/tasks/composer-linked-work-item.test.ts @@ -1,5 +1,7 @@ import { describe, expect, it } from 'vitest' -import type { GitHubWorkItem, GitLabWorkItem, LinearIssue } from '../../../src/shared/types' +import type { GitHubWorkItem } from '../../../src/shared/github/work-item-types' +import type { GitLabWorkItem } from '../../../src/shared/gitlab-types' +import type { LinearIssue } from '../../../src/shared/linear/issue-types' import { buildGitHubLinkedWorkItem, buildGitLabLinkedWorkItem, diff --git a/mobile/src/tasks/composer-linked-work-item.ts b/mobile/src/tasks/composer-linked-work-item.ts index ed2bc4dbf2d..13d5c845b37 100644 --- a/mobile/src/tasks/composer-linked-work-item.ts +++ b/mobile/src/tasks/composer-linked-work-item.ts @@ -1,4 +1,6 @@ -import type { GitHubWorkItem, GitLabWorkItem, LinearIssue } from '../../../src/shared/types' +import type { GitHubWorkItem } from '../../../src/shared/github/work-item-types' +import type { GitLabWorkItem } from '../../../src/shared/gitlab-types' +import type { LinearIssue } from '../../../src/shared/linear/issue-types' import { getLinearIssueWorkspaceName } from '../../../src/shared/workspace-name' import { buildGitHubWorkspaceSource, diff --git a/mobile/src/tasks/composer-source-base-resolve.ts b/mobile/src/tasks/composer-source-base-resolve.ts index 73c7eaa1839..423c3b05294 100644 --- a/mobile/src/tasks/composer-source-base-resolve.ts +++ b/mobile/src/tasks/composer-source-base-resolve.ts @@ -1,6 +1,6 @@ import type { RpcClient } from '../transport/rpc-client' import type { RpcSuccess } from '../transport/types' -import type { GitHubPrStartPoint } from '../../../src/shared/types' +import type { GitHubPrStartPoint } from '../../../src/shared/worktree/types' // The resolved start point for a linked PR/MR: the base branch to create from // plus the optional review-compare ref, push target, and exact branch name. diff --git a/mobile/src/tasks/github-check-summary.test.ts b/mobile/src/tasks/github-check-summary.test.ts index 3eafcc7661d..8abdee4c7dd 100644 --- a/mobile/src/tasks/github-check-summary.test.ts +++ b/mobile/src/tasks/github-check-summary.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest' import { buildGitHubCheckSummary, type GitHubCheckLike } from './github-check-summary' import { buildGitLabCheckSummary } from './gitlab-check-summary' import { summarizeProviderChecks } from '../../../src/shared/provider-check-summary' -import type { ProviderCheckSummary } from '../../../src/shared/types' +import type { ProviderCheckSummary } from '../../../src/shared/github/pull-request-types' describe('buildGitHubCheckSummary', () => { it('returns none for empty check lists', () => { diff --git a/mobile/src/tasks/github-check-summary.ts b/mobile/src/tasks/github-check-summary.ts index 8a69db32291..413c41c7c31 100644 --- a/mobile/src/tasks/github-check-summary.ts +++ b/mobile/src/tasks/github-check-summary.ts @@ -1,5 +1,5 @@ import { summarizeProviderChecks } from '../../../src/shared/provider-check-summary' -import type { ProviderCheckSummary } from '../../../src/shared/types' +import type { ProviderCheckSummary } from '../../../src/shared/github/pull-request-types' export type GitHubCheckLike = { status: string diff --git a/mobile/src/tasks/gitlab-check-summary.ts b/mobile/src/tasks/gitlab-check-summary.ts index b5834a1d8b9..cdb82d543cd 100644 --- a/mobile/src/tasks/gitlab-check-summary.ts +++ b/mobile/src/tasks/gitlab-check-summary.ts @@ -3,7 +3,7 @@ import { mapGitLabPipelineJobStatusToConclusion } from '../../../src/shared/gitlab-pipeline-checks' import { summarizeProviderChecks } from '../../../src/shared/provider-check-summary' -import type { ProviderCheckSummary } from '../../../src/shared/types' +import type { ProviderCheckSummary } from '../../../src/shared/github/pull-request-types' type GitLabPipelineJobLike = { status: string } diff --git a/mobile/src/tasks/mobile-agent-catalog.ts b/mobile/src/tasks/mobile-agent-catalog.ts index 0f6e0e370a3..c5da71ee272 100644 --- a/mobile/src/tasks/mobile-agent-catalog.ts +++ b/mobile/src/tasks/mobile-agent-catalog.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import { MOBILE_TUI_AGENT_AUTO_PICK_ORDER, MOBILE_TUI_AGENT_FAVICON_DOMAINS, diff --git a/mobile/src/tasks/mobile-hosted-check-status.ts b/mobile/src/tasks/mobile-hosted-check-status.ts index c1b6076c969..141e830dec1 100644 --- a/mobile/src/tasks/mobile-hosted-check-status.ts +++ b/mobile/src/tasks/mobile-hosted-check-status.ts @@ -1,4 +1,7 @@ -import type { ProviderCheckSummary, PRMergeableState } from '../../../src/shared/types' +import type { + PRMergeableState, + ProviderCheckSummary +} from '../../../src/shared/github/pull-request-types' import { getProviderChecksLabel } from '../../../src/shared/provider-check-summary' export type MobileHostedReviewStatus = { diff --git a/mobile/src/tasks/mobile-tui-agents.ts b/mobile/src/tasks/mobile-tui-agents.ts index 2da0184e0e7..598e762aa77 100644 --- a/mobile/src/tasks/mobile-tui-agents.ts +++ b/mobile/src/tasks/mobile-tui-agents.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' // Why: mobile tests run from the mobile package only, so runtime imports of // desktop shared modules can break Vitest transforms in CI. Keep this list diff --git a/mobile/src/tasks/setup-hook-trust.test.ts b/mobile/src/tasks/setup-hook-trust.test.ts index 0e2d91bb7ac..81222ce16ee 100644 --- a/mobile/src/tasks/setup-hook-trust.test.ts +++ b/mobile/src/tasks/setup-hook-trust.test.ts @@ -6,7 +6,7 @@ import { trustedOrcaHooksWithSetupApproval, wasSetupHookPreviouslyApproved } from './setup-hook-trust' -import type { PersistedTrustedOrcaHooks } from '../../../src/shared/types' +import type { PersistedTrustedOrcaHooks } from '../../../src/shared/orca-yaml-hook-types' import type { RpcClient } from '../transport/rpc-client' describe('setup hook trust', () => { diff --git a/mobile/src/tasks/setup-hook-trust.ts b/mobile/src/tasks/setup-hook-trust.ts index 04c52152f45..72381393989 100644 --- a/mobile/src/tasks/setup-hook-trust.ts +++ b/mobile/src/tasks/setup-hook-trust.ts @@ -1,4 +1,4 @@ -import type { PersistedTrustedOrcaHooks } from '../../../src/shared/types' +import type { PersistedTrustedOrcaHooks } from '../../../src/shared/orca-yaml-hook-types' import type { RpcClient } from '../transport/rpc-client' export type SetupHookTrust = { diff --git a/mobile/src/tasks/smart-source-fan-out.ts b/mobile/src/tasks/smart-source-fan-out.ts index e2217597ab9..3050effb7fc 100644 --- a/mobile/src/tasks/smart-source-fan-out.ts +++ b/mobile/src/tasks/smart-source-fan-out.ts @@ -1,9 +1,7 @@ -import type { - BaseRefSearchResult, - GitHubWorkItem, - GitLabWorkItem, - LinearIssue -} from '../../../src/shared/types' +import type { GitHubWorkItem } from '../../../src/shared/github/work-item-types' +import type { GitLabWorkItem } from '../../../src/shared/gitlab-types' +import type { LinearIssue } from '../../../src/shared/linear/issue-types' +import type { BaseRefSearchResult } from '../../../src/shared/repo-types' import { isSmartWorkspaceSourceQueryWithinLimit, type SmartNameMode diff --git a/mobile/src/tasks/smart-source-paste-intent.ts b/mobile/src/tasks/smart-source-paste-intent.ts index 534d36fd0f4..21afd4157de 100644 --- a/mobile/src/tasks/smart-source-paste-intent.ts +++ b/mobile/src/tasks/smart-source-paste-intent.ts @@ -1,4 +1,5 @@ -import type { GitHubWorkItem, GitLabWorkItem } from '../../../src/shared/types' +import type { GitHubWorkItem } from '../../../src/shared/github/work-item-types' +import type { GitLabWorkItem } from '../../../src/shared/gitlab-types' import { normalizeGitHubLinkQuery, parseGitHubIssueOrPRLink, diff --git a/mobile/src/tasks/smart-source-search-requests.ts b/mobile/src/tasks/smart-source-search-requests.ts index 5875cd4d642..876e2ef1a20 100644 --- a/mobile/src/tasks/smart-source-search-requests.ts +++ b/mobile/src/tasks/smart-source-search-requests.ts @@ -1,9 +1,7 @@ -import type { - BaseRefSearchResult, - GitHubWorkItem, - GitLabWorkItem, - LinearIssue -} from '../../../src/shared/types' +import type { GitHubWorkItem } from '../../../src/shared/github/work-item-types' +import type { GitLabWorkItem } from '../../../src/shared/gitlab-types' +import type { LinearIssue } from '../../../src/shared/linear/issue-types' +import type { BaseRefSearchResult } from '../../../src/shared/repo-types' import type { RpcClient } from '../transport/rpc-client' import type { RpcSuccess } from '../transport/types' import { extractLinearIssueReadItems } from './linear-mobile-issue-read' diff --git a/mobile/src/tasks/use-mobile-composer-source.ts b/mobile/src/tasks/use-mobile-composer-source.ts index 6785e2fe30b..5d6c373d454 100644 --- a/mobile/src/tasks/use-mobile-composer-source.ts +++ b/mobile/src/tasks/use-mobile-composer-source.ts @@ -1,5 +1,7 @@ import { useCallback, useMemo, useRef, useState } from 'react' -import type { GitHubWorkItem, GitLabWorkItem, LinearIssue } from '../../../src/shared/types' +import type { GitHubWorkItem } from '../../../src/shared/github/work-item-types' +import type { GitLabWorkItem } from '../../../src/shared/gitlab-types' +import type { LinearIssue } from '../../../src/shared/linear/issue-types' import { resolveComposerManualBranchNameChange } from '../../../src/shared/composer-branch-selection' import { resolveGitHubWorkItemIdentity } from '../../../src/shared/new-workspace/github-work-item-identity' import { getForkPushWarning } from '../../../src/shared/new-workspace/fork-push-warning' diff --git a/mobile/src/tasks/use-smart-workspace-source.ts b/mobile/src/tasks/use-smart-workspace-source.ts index 42edcd48e8a..86c6ca2204a 100644 --- a/mobile/src/tasks/use-smart-workspace-source.ts +++ b/mobile/src/tasks/use-smart-workspace-source.ts @@ -1,5 +1,6 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react' -import type { GitHubWorkItem, GitLabWorkItem } from '../../../src/shared/types' +import type { GitHubWorkItem } from '../../../src/shared/github/work-item-types' +import type { GitLabWorkItem } from '../../../src/shared/gitlab-types' import { buildSmartWorkspaceSourceRows, getSmartWorkspaceEmptyHint, diff --git a/mobile/src/tasks/workspace-agent-selection.ts b/mobile/src/tasks/workspace-agent-selection.ts index da406452882..24dc376a663 100644 --- a/mobile/src/tasks/workspace-agent-selection.ts +++ b/mobile/src/tasks/workspace-agent-selection.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../src/shared/types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import { filterEnabledMobileTuiAgents, isMobileTuiAgent, diff --git a/mobile/src/tasks/workspace-create-params.ts b/mobile/src/tasks/workspace-create-params.ts index 546f15efe75..8693944230a 100644 --- a/mobile/src/tasks/workspace-create-params.ts +++ b/mobile/src/tasks/workspace-create-params.ts @@ -1,9 +1,9 @@ +import type { TuiAgent } from '../../../src/shared/tui-agent' import type { CreateSparseCheckoutRequest, - GitPushTarget, - SetupDecision, - TuiAgent -} from '../../../src/shared/types' + SetupDecision +} from '../../../src/shared/worktree/create-types' +import type { GitPushTarget } from '../../../src/shared/worktree/types' import { getWorkspaceSourceName } from '../../../src/shared/new-workspace/workspace-source' import { resolveMobileWorkspaceCreateName } from './mobile-workspace-name' import type { WorkspaceAgentChoice } from './workspace-agent-selection' diff --git a/mobile/src/terminal/quick-commands.test.ts b/mobile/src/terminal/quick-commands.test.ts index 964fbc9b4d2..584dd8f4812 100644 --- a/mobile/src/terminal/quick-commands.test.ts +++ b/mobile/src/terminal/quick-commands.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalQuickCommand } from '../../../src/shared/types' +import type { TerminalQuickCommand } from '../../../src/shared/terminal-quick-command-types' import { buildMobileQuickCommandLaunch, getQuickCommandDisplayPreview, diff --git a/mobile/src/terminal/quick-commands.ts b/mobile/src/terminal/quick-commands.ts index d6e6b86caf3..625d2702bc7 100644 --- a/mobile/src/terminal/quick-commands.ts +++ b/mobile/src/terminal/quick-commands.ts @@ -1,4 +1,5 @@ -import type { TerminalQuickCommand, TuiAgent } from '../../../src/shared/types' +import type { TerminalQuickCommand } from '../../../src/shared/terminal-quick-command-types' +import type { TuiAgent } from '../../../src/shared/tui-agent' import { applyTerminalQuickCommandMutation, flattenTerminalQuickCommand, diff --git a/mobile/src/worktree/mobile-workspace-statuses.ts b/mobile/src/worktree/mobile-workspace-statuses.ts index 2c1322d8258..1fedbb6ef73 100644 --- a/mobile/src/worktree/mobile-workspace-statuses.ts +++ b/mobile/src/worktree/mobile-workspace-statuses.ts @@ -1,4 +1,4 @@ -import type { WorkspaceStatusDefinition } from '../../../src/shared/types' +import type { WorkspaceStatusDefinition } from '../../../src/shared/worktree/types' export const DEFAULT_MOBILE_WORKSPACE_STATUS_ID = 'in-progress' diff --git a/mobile/src/worktree/use-workspace-sections.ts b/mobile/src/worktree/use-workspace-sections.ts index bc30bc3f91e..d28546b80bb 100644 --- a/mobile/src/worktree/use-workspace-sections.ts +++ b/mobile/src/worktree/use-workspace-sections.ts @@ -1,5 +1,5 @@ import { useMemo } from 'react' -import type { WorkspaceStatusDefinition } from '../../../src/shared/types' +import type { WorkspaceStatusDefinition } from '../../../src/shared/worktree/types' import type { MobileGroupMode, MobileSortMode } from './workspace-view-settings' import { buildSections, diff --git a/mobile/src/worktree/workspace-list-sections.ts b/mobile/src/worktree/workspace-list-sections.ts index d798a7fe5fa..2ff06f4fee3 100644 --- a/mobile/src/worktree/workspace-list-sections.ts +++ b/mobile/src/worktree/workspace-list-sections.ts @@ -1,4 +1,4 @@ -import type { WorkspaceStatusDefinition } from '../../../src/shared/types' +import type { WorkspaceStatusDefinition } from '../../../src/shared/worktree/types' import { DEFAULT_MOBILE_WORKSPACE_STATUSES, coerceMobileWorkspaceStatuses, diff --git a/mobile/src/worktree/workspace-view-settings.ts b/mobile/src/worktree/workspace-view-settings.ts index 32a4ac73a63..a90b54590d9 100644 --- a/mobile/src/worktree/workspace-view-settings.ts +++ b/mobile/src/worktree/workspace-view-settings.ts @@ -3,7 +3,7 @@ // RPCs). Keeping these settings in the same global store is what lets a grouping // or filter change on the phone show up on desktop and vice-versa. -import type { WorkspaceStatusDefinition } from '../../../src/shared/types' +import type { WorkspaceStatusDefinition } from '../../../src/shared/worktree/types' import { coerceMobileWorkspaceStatuses } from './mobile-workspace-statuses' export type MobileGroupMode = 'none' | 'workspaceStatus' | 'repo' | 'prStatus' diff --git a/src/cli/handlers/account.ts b/src/cli/handlers/account.ts index fd2c7b20402..0f7f95bc17e 100644 --- a/src/cli/handlers/account.ts +++ b/src/cli/handlers/account.ts @@ -23,7 +23,10 @@ import { } from '../../shared/windows-batch-spawn' import { ACCOUNT_IMPORT_RUNTIME_CAPABILITY } from '../../shared/protocol-version' import type { RuntimeStatus } from '../../shared/runtime-types' -import type { ClaudeRateLimitAccountsState, CodexRateLimitAccountsState } from '../../shared/types' +import type { + ClaudeRateLimitAccountsState, + CodexRateLimitAccountsState +} from '../../shared/managed-account-types' import { type InteractiveLoginSession, withInteractiveLoginCleanup diff --git a/src/cli/handlers/agent-hooks.test.ts b/src/cli/handlers/agent-hooks.test.ts index c7f62461303..c42531364a8 100644 --- a/src/cli/handlers/agent-hooks.test.ts +++ b/src/cli/handlers/agent-hooks.test.ts @@ -3,7 +3,7 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultPersistedState } from '../../shared/constants' -import type { PersistedState } from '../../shared/types' +import type { PersistedState } from '../../shared/persisted-state-types' const { applyAgentStatusHooksEnabledMock, diff --git a/src/cli/handlers/agent-hooks.ts b/src/cli/handlers/agent-hooks.ts index 800493f53c5..7e21c4973a2 100644 --- a/src/cli/handlers/agent-hooks.ts +++ b/src/cli/handlers/agent-hooks.ts @@ -13,7 +13,8 @@ import { import type { AgentHookInstallStatus } from '../../shared/agent-hook-types' import { getDefaultPersistedState } from '../../shared/constants' import { normalizeDisabledTuiAgents } from '../../shared/tui-agent-selection' -import type { GlobalSettings, PersistedState } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { PersistedState } from '../../shared/persisted-state-types' import { applyAgentStatusHooksEnabled, getManagedAgentHookStatuses, diff --git a/src/cli/handlers/automations.ts b/src/cli/handlers/automations.ts index cbbe7517a06..ab592504c00 100644 --- a/src/cli/handlers/automations.ts +++ b/src/cli/handlers/automations.ts @@ -13,7 +13,8 @@ import { type TaskSourceContext, type WorkspaceRunContext } from '../../shared/task-source-context' -import type { ProjectHostSetup, TuiAgent } from '../../shared/types' +import type { ProjectHostSetup } from '../../shared/project-types' +import type { TuiAgent } from '../../shared/tui-agent' import { DEFAULT_AUTOMATION_PRECHECK_TIMEOUT_SECONDS, MAX_AUTOMATION_PRECHECK_TIMEOUT_SECONDS diff --git a/src/cli/handlers/diagnostics.ts b/src/cli/handlers/diagnostics.ts index ca2ffc36855..340bd6afa16 100644 --- a/src/cli/handlers/diagnostics.ts +++ b/src/cli/handlers/diagnostics.ts @@ -1,4 +1,4 @@ -import type { MemorySnapshot } from '../../shared/types' +import type { MemorySnapshot } from '../../shared/process-stats-types' import type { CommandHandler } from '../dispatch' import { formatMemorySnapshot, printResult } from '../format' diff --git a/src/cli/handlers/project.ts b/src/cli/handlers/project.ts index cc5f32e2cd2..c3868001f4c 100644 --- a/src/cli/handlers/project.ts +++ b/src/cli/handlers/project.ts @@ -8,9 +8,9 @@ import type { ProjectHostSetupExistingFolderArgs, ProjectHostSetupResult, ProjectHostSetupUpdateArgs, - ProjectHostSetupUpdateResult, - RepoKind -} from '../../shared/types' + ProjectHostSetupUpdateResult +} from '../../shared/project-types' +import type { RepoKind } from '../../shared/repo-types' import type { CommandHandler } from '../dispatch' import { formatProjectHostSetupCreateResult, diff --git a/src/cli/handlers/vm.ts b/src/cli/handlers/vm.ts index e000ec15afe..1bffd99f00e 100644 --- a/src/cli/handlers/vm.ts +++ b/src/cli/handlers/vm.ts @@ -19,7 +19,7 @@ import { runEphemeralVmRecipeCleanup, runEphemeralVmRecipeStart } from '../../shared/ephemeral-vm-recipe-runner' -import type { OrcaVmRecipe } from '../../shared/types' +import type { OrcaVmRecipe } from '../../shared/orca-yaml-hook-types' export const VM_HANDLERS: Record = { 'vm recipe doctor': async ({ flags, cwd, json }) => { diff --git a/src/cli/project-format.ts b/src/cli/project-format.ts index d5569a0306b..82265411146 100644 --- a/src/cli/project-format.ts +++ b/src/cli/project-format.ts @@ -5,7 +5,7 @@ import type { ProjectHostSetupDeleteResult, ProjectHostSetupResult, ProjectHostSetupUpdateResult -} from '../shared/types' +} from '../shared/project-types' export function formatProjectList(result: { projects: Project[] }): string { if (result.projects.length === 0) { diff --git a/src/cli/workspace-format.ts b/src/cli/workspace-format.ts index 613e6f1ee7e..01dd0dbabcf 100644 --- a/src/cli/workspace-format.ts +++ b/src/cli/workspace-format.ts @@ -10,7 +10,7 @@ import type { RuntimeWorktreePsResult, RuntimeWorktreeRecord } from '../shared/runtime-types' -import type { MemorySnapshot, WorktreeMemory } from '../shared/types' +import type { MemorySnapshot, WorktreeMemory } from '../shared/process-stats-types' export function formatMemorySnapshot(snapshot: MemorySnapshot): string { const topWorktrees = [...snapshot.worktrees].sort((a, b) => b.memory - a.memory).slice(0, 10) diff --git a/src/cli/worktree-project-target.ts b/src/cli/worktree-project-target.ts index 6626270655a..6f4541f3783 100644 --- a/src/cli/worktree-project-target.ts +++ b/src/cli/worktree-project-target.ts @@ -1,4 +1,4 @@ -import type { ProjectHostSetup } from '../shared/types' +import type { ProjectHostSetup } from '../shared/project-types' import type { RuntimeClient } from './runtime-client' import { RuntimeClientError } from './runtime-client' diff --git a/src/main/active-view-preference.ts b/src/main/active-view-preference.ts index 5bd78b14713..eb6098f8c1d 100644 --- a/src/main/active-view-preference.ts +++ b/src/main/active-view-preference.ts @@ -1,7 +1,7 @@ import { mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync } from 'node:fs' import { mkdir, rename, rm, writeFile } from 'node:fs/promises' import { dirname, join } from 'node:path' -import type { TopLevelView } from '../shared/types' +import type { TopLevelView } from '../shared/ui-chrome-types' import { isTopLevelView } from '../shared/top-level-view' const ACTIVE_VIEW_FILE_NAME = 'active-view.json' diff --git a/src/main/agent-hooks/first-work-branch-rename-test-harness.ts b/src/main/agent-hooks/first-work-branch-rename-test-harness.ts index 427e2539722..86276a038f5 100644 --- a/src/main/agent-hooks/first-work-branch-rename-test-harness.ts +++ b/src/main/agent-hooks/first-work-branch-rename-test-harness.ts @@ -1,5 +1,6 @@ import type { vi } from 'vitest' -import type { GlobalSettings, Repo } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' import { WORKTREE_ID_SEPARATOR } from '../../shared/worktree/id' import type { FirstWorkBranchRenameDeps, diff --git a/src/main/agent-hooks/first-work-branch-rename.test.ts b/src/main/agent-hooks/first-work-branch-rename.test.ts index 7690215eedb..cb1107a8622 100644 --- a/src/main/agent-hooks/first-work-branch-rename.test.ts +++ b/src/main/agent-hooks/first-work-branch-rename.test.ts @@ -1,5 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings, Repo } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' import { WORKTREE_ID_SEPARATOR } from '../../shared/worktree/id' const { diff --git a/src/main/agent-hooks/first-work-branch-rename.ts b/src/main/agent-hooks/first-work-branch-rename.ts index ea2614a344a..45f78e75e8a 100644 --- a/src/main/agent-hooks/first-work-branch-rename.ts +++ b/src/main/agent-hooks/first-work-branch-rename.ts @@ -1,5 +1,6 @@ // On first agent work in a fresh workspace, replace the auto-generated creature branch (e.g. `you/Nautilus`) with a short work-derived name. -import type { GlobalSettings, Repo } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' import { getRepoIdFromWorktreeId, splitWorktreeIdForFilesystem } from '../../shared/worktree/id' import { parseWorkspaceKey } from '../../shared/workspace-scope' import { parsePaneKey } from '../../shared/stable-pane-id' diff --git a/src/main/agent-hooks/first-work-folder-rename.test.ts b/src/main/agent-hooks/first-work-folder-rename.test.ts index e9a88921943..d8a8a54161e 100644 --- a/src/main/agent-hooks/first-work-folder-rename.test.ts +++ b/src/main/agent-hooks/first-work-folder-rename.test.ts @@ -1,5 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings, Repo } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' import { renameWorktreeFolderOnFirstWork, type FirstWorkFolderRenameDeps diff --git a/src/main/agent-hooks/first-work-folder-rename.ts b/src/main/agent-hooks/first-work-folder-rename.ts index 79b3f98493e..df1a46b53ee 100644 --- a/src/main/agent-hooks/first-work-folder-rename.ts +++ b/src/main/agent-hooks/first-work-folder-rename.ts @@ -5,7 +5,8 @@ // worktree identity so meta, tabs, and the live PTY session carry over. It is // best-effort and local-only — remote/Windows/locked/dest-taken all degrade to // "folder kept" without disturbing the rename that already succeeded. -import type { GlobalSettings, Repo } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' import { FOLDER_WORKSPACE_INSTANCE_SEPARATOR, getRepoIdFromWorktreeId, diff --git a/src/main/agent-hooks/local-agent-cli-presence.ts b/src/main/agent-hooks/local-agent-cli-presence.ts index 256e6520456..5810362c27a 100644 --- a/src/main/agent-hooks/local-agent-cli-presence.ts +++ b/src/main/agent-hooks/local-agent-cli-presence.ts @@ -9,7 +9,7 @@ import { isSafeExecutableBasename } from '../../shared/managed-agent-command-token' import type { ManagedAgentHookTarget } from '../../shared/managed-agent-hook-targets' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { hydrateShellPath, mergePathSegments } from '../startup/hydrate-shell-path' export type LocalCliPresenceState = 'found' | 'missing' | 'unknown' diff --git a/src/main/agent-hooks/managed-agent-hook-controls.ts b/src/main/agent-hooks/managed-agent-hook-controls.ts index e99f5659339..6f9f969668c 100644 --- a/src/main/agent-hooks/managed-agent-hook-controls.ts +++ b/src/main/agent-hooks/managed-agent-hook-controls.ts @@ -4,7 +4,7 @@ import { isManagedAgentHookTarget } from '../../shared/managed-agent-hook-targets' import { normalizeDisabledTuiAgents } from '../../shared/tui-agent-selection' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { detectLocalManagedAgentCliPresence } from './local-agent-cli-presence' import { MANAGED_AGENT_HOOK_INSTALLERS, diff --git a/src/main/agent-hooks/managed-hook-detection-commands.ts b/src/main/agent-hooks/managed-hook-detection-commands.ts index b7358807801..2200d183c2e 100644 --- a/src/main/agent-hooks/managed-hook-detection-commands.ts +++ b/src/main/agent-hooks/managed-hook-detection-commands.ts @@ -5,7 +5,7 @@ import { } from '../../shared/managed-agent-command-token' import { MANAGED_AGENT_HOOK_TARGETS } from '../../shared/managed-agent-hook-targets' import { normalizeDisabledTuiAgents } from '../../shared/tui-agent-selection' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import type { TuiAgentDetectionCommand } from '../ipc/tui-agent-detection-commands' export type ManagedHookDetectionSettings = Partial< diff --git a/src/main/agent-hooks/restored-subagent-liveness-sweep.ts b/src/main/agent-hooks/restored-subagent-liveness-sweep.ts index e44a47f11d0..3402ab7bf5b 100644 --- a/src/main/agent-hooks/restored-subagent-liveness-sweep.ts +++ b/src/main/agent-hooks/restored-subagent-liveness-sweep.ts @@ -4,7 +4,8 @@ import { toSshExecutionHostId, type ExecutionHostId } from '../../shared/execution-host' -import type { FolderWorkspace, ProjectGroup } from '../../shared/types' +import type { FolderWorkspace } from '../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../shared/project-group-types' import { getRepoIdFromWorktreeId } from '../../shared/worktree/id' import { parseWorkspaceKey } from '../../shared/workspace-scope' diff --git a/src/main/agent-hooks/server.ts b/src/main/agent-hooks/server.ts index 8a10080168c..71495245bb1 100644 --- a/src/main/agent-hooks/server.ts +++ b/src/main/agent-hooks/server.ts @@ -76,7 +76,7 @@ import { type AgentQuestionAnsweredInferenceRequest } from '../../shared/agent-question-answered-intent' import { parseLegacyNumericPaneKey, parsePaneKey } from '../../shared/stable-pane-id' -import type { LegacyPaneKeyAliasEntry } from '../../shared/types' +import type { LegacyPaneKeyAliasEntry } from '../../shared/persisted-state-types' import { getAgentResumeArgv, normalizeAgentProviderSession, diff --git a/src/main/ai-vault/remote-session-scanner-test-fixtures.ts b/src/main/ai-vault/remote-session-scanner-test-fixtures.ts index c3496590168..b113a298f84 100644 --- a/src/main/ai-vault/remote-session-scanner-test-fixtures.ts +++ b/src/main/ai-vault/remote-session-scanner-test-fixtures.ts @@ -1,4 +1,4 @@ -import type { DirEntry } from '../../shared/types' +import type { DirEntry } from '../../shared/filesystem-entry-types' import type { FileReadResult, FileStat, IFilesystemProvider } from '../providers/types' // Shared by the remote AI Vault scanner suites: an in-memory filesystem whose diff --git a/src/main/automations/headless-workspace-create.test.ts b/src/main/automations/headless-workspace-create.test.ts index b29496eb283..3e25ad87440 100644 --- a/src/main/automations/headless-workspace-create.test.ts +++ b/src/main/automations/headless-workspace-create.test.ts @@ -1,7 +1,7 @@ import path from 'node:path' import { describe, expect, it } from 'vitest' import type { Automation } from '../../shared/automations-types' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import { buildHeadlessAutomationWorktreeCreateArgs } from './headless-workspace-create' const repoPath = path.join('tmp', 'orca') diff --git a/src/main/automations/headless-workspace-create.ts b/src/main/automations/headless-workspace-create.ts index 7e6e2f43e18..2047a105c44 100644 --- a/src/main/automations/headless-workspace-create.ts +++ b/src/main/automations/headless-workspace-create.ts @@ -1,6 +1,6 @@ import type { Automation, AutomationRun } from '../../shared/automations-types' import { buildAutomationWorkspaceProvenance } from '../../shared/automation-workspace-provenance' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import type { OrcaRuntimeService } from '../runtime/orca-runtime' type HeadlessAutomationRunForWorkspace = Pick diff --git a/src/main/automations/run-target-resolution.test.ts b/src/main/automations/run-target-resolution.test.ts index 6e48fb0aac0..73820e316c8 100644 --- a/src/main/automations/run-target-resolution.test.ts +++ b/src/main/automations/run-target-resolution.test.ts @@ -2,7 +2,8 @@ import { describe, expect, it } from 'vitest' import type { Store } from '../persistence' import type { Automation } from '../../shared/automations-types' import type { WorkspaceRunContext } from '../../shared/task-source-context' -import type { ProjectHostSetup, Repo } from '../../shared/types' +import type { ProjectHostSetup } from '../../shared/project-types' +import type { Repo } from '../../shared/repo-types' import { resolveAutomationRunTarget } from './run-target-resolution' function makeRepo(overrides: Partial = {}): Repo { diff --git a/src/main/automations/run-target-resolution.ts b/src/main/automations/run-target-resolution.ts index 1168bf8fb6a..fcd96007ea0 100644 --- a/src/main/automations/run-target-resolution.ts +++ b/src/main/automations/run-target-resolution.ts @@ -2,7 +2,8 @@ import type { Store } from '../persistence' import type { Automation } from '../../shared/automations-types' import { getAutomationLegacyRepoId } from '../../shared/automation-run-identity' import { getRepoExecutionHostId, parseExecutionHostId } from '../../shared/execution-host' -import type { ProjectHostSetup, Repo } from '../../shared/types' +import type { ProjectHostSetup } from '../../shared/project-types' +import type { Repo } from '../../shared/repo-types' import { splitWorktreeIdForFilesystem } from '../../shared/worktree/id' export type AutomationRunTargetResult = diff --git a/src/main/automations/service-precheck.test.ts b/src/main/automations/service-precheck.test.ts index 49122511184..a9f7d336b78 100644 --- a/src/main/automations/service-precheck.test.ts +++ b/src/main/automations/service-precheck.test.ts @@ -2,7 +2,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { mkdtempSync, rmSync } from 'node:fs' import { join } from 'node:path' import { tmpdir } from 'node:os' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import { AutomationService } from './service' const runAutomationPrecheckMock = vi.hoisted(() => vi.fn()) diff --git a/src/main/automations/service.test.ts b/src/main/automations/service.test.ts index 1c9c314b41b..27f96400258 100644 --- a/src/main/automations/service.test.ts +++ b/src/main/automations/service.test.ts @@ -2,7 +2,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { mkdtempSync, rmSync } from 'node:fs' import { join } from 'node:path' import { tmpdir } from 'node:os' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import { toRuntimeExecutionHostId } from '../../shared/execution-host' import { AutomationService } from './service' diff --git a/src/main/automations/workspace-provenance.ts b/src/main/automations/workspace-provenance.ts index 44936edc888..8174ca11293 100644 --- a/src/main/automations/workspace-provenance.ts +++ b/src/main/automations/workspace-provenance.ts @@ -2,11 +2,11 @@ import { z } from 'zod' import type { Automation, AutomationRun } from '../../shared/automations-types' import { getAutomationRunRepoId } from '../../shared/automation-run-identity' import { buildAutomationWorkspaceProvenance } from '../../shared/automation-workspace-provenance' +import type { Repo } from '../../shared/repo-types' import type { AutomationWorkspaceProvenance, - AutomationWorkspaceProvenanceRequest, - Repo -} from '../../shared/types' + AutomationWorkspaceProvenanceRequest +} from '../../shared/worktree/types' import { beginAutomationDispatchTokenUse, finishAutomationDispatchTokenUse, diff --git a/src/main/azure-devops/pull-request-mappers.ts b/src/main/azure-devops/pull-request-mappers.ts index 062a99fa0b4..132f98260cf 100644 --- a/src/main/azure-devops/pull-request-mappers.ts +++ b/src/main/azure-devops/pull-request-mappers.ts @@ -1,4 +1,4 @@ -import type { CheckStatus, PRMergeableState } from '../../shared/types' +import type { CheckStatus, PRMergeableState } from '../../shared/github/pull-request-types' export type RawAzureDevOpsStatus = { state?: string | null diff --git a/src/main/bitbucket/client.ts b/src/main/bitbucket/client.ts index deb856a66d1..86c22aeb193 100644 --- a/src/main/bitbucket/client.ts +++ b/src/main/bitbucket/client.ts @@ -1,4 +1,4 @@ -import type { CheckStatus } from '../../shared/types' +import type { CheckStatus } from '../../shared/github/pull-request-types' import { deriveBitbucketBuildStatus, mapBitbucketPullRequest, diff --git a/src/main/bitbucket/pull-request-mappers.ts b/src/main/bitbucket/pull-request-mappers.ts index 4f68c320235..7b9c5a07e84 100644 --- a/src/main/bitbucket/pull-request-mappers.ts +++ b/src/main/bitbucket/pull-request-mappers.ts @@ -1,4 +1,4 @@ -import type { CheckStatus, PRMergeableState } from '../../shared/types' +import type { CheckStatus, PRMergeableState } from '../../shared/github/pull-request-types' export type RawBitbucketPullRequest = { id?: number diff --git a/src/main/browser/browser-certificate-challenge.ts b/src/main/browser/browser-certificate-challenge.ts index 2e49685b5d3..94c1192a887 100644 --- a/src/main/browser/browser-certificate-challenge.ts +++ b/src/main/browser/browser-certificate-challenge.ts @@ -1,4 +1,4 @@ -import type { BrowserCertificateFailure } from '../../shared/types' +import type { BrowserCertificateFailure } from '../../shared/browser-workspace-types' import { SUPPORTED_CERTIFICATE_ERROR_CODE } from './browser-certificate-identity' export const CERTIFICATE_CHALLENGE_TTL_MS = 5 * 60_000 diff --git a/src/main/browser/browser-certificate-trust-controller.ts b/src/main/browser/browser-certificate-trust-controller.ts index 53d4810e169..9a2fad879ed 100644 --- a/src/main/browser/browser-certificate-trust-controller.ts +++ b/src/main/browser/browser-certificate-trust-controller.ts @@ -1,5 +1,8 @@ import { randomUUID } from 'node:crypto' -import type { BrowserCertificateFailure, BrowserCertificateProceedResult } from '../../shared/types' +import type { + BrowserCertificateFailure, + BrowserCertificateProceedResult +} from '../../shared/browser-workspace-types' import { isEligibleLocalCertificateHost, toSecureCertificateEndpoint diff --git a/src/main/browser/browser-cookie-import.ts b/src/main/browser/browser-cookie-import.ts index e841f3168d8..b54badd0593 100644 --- a/src/main/browser/browser-cookie-import.ts +++ b/src/main/browser/browser-cookie-import.ts @@ -72,7 +72,7 @@ import type { BrowserCookieImportResult, BrowserCookieImportSummary, BrowserSessionProfileSource -} from '../../shared/types' +} from '../../shared/browser-workspace-types' import { browserSessionRegistry } from './browser-session-registry' import { isGoogleSourceBoundCookie, diff --git a/src/main/browser/browser-manager.ts b/src/main/browser/browser-manager.ts index fbcac378412..0b10e9e189c 100644 --- a/src/main/browser/browser-manager.ts +++ b/src/main/browser/browser-manager.ts @@ -47,11 +47,11 @@ import { getBrowserSessionUserAgentMode } from './browser-session-user-agent-mod import { googleAuthUserAgent, isGoogleAuthUrl } from './browser-google-auth-ua' import { buildViewportUserAgentOverride } from './browser-viewport-user-agent' import type { - BrowserViewportOverride, BrowserCertificateFailure, BrowserLoadError, - BrowserSessionUserAgentMode -} from '../../shared/types' + BrowserSessionUserAgentMode, + BrowserViewportOverride +} from '../../shared/browser-workspace-types' import { type BrowserAnnotationViewportBridgeOptions, BROWSER_ANNOTATION_VIEWPORT_BRIDGE_WORLD_ID, diff --git a/src/main/browser/browser-session-registry.ts b/src/main/browser/browser-session-registry.ts index b0b477a8ef8..79296a0cdbf 100644 --- a/src/main/browser/browser-session-registry.ts +++ b/src/main/browser/browser-session-registry.ts @@ -22,7 +22,7 @@ import type { BrowserSessionProfile, BrowserSessionProfileCreateOptions, BrowserSessionProfileScope -} from '../../shared/types' +} from '../../shared/browser-workspace-types' import { browserManager } from './browser-manager' import { hasSystemMediaAccess, requestSystemMediaAccess } from './browser-media-access' import { cleanElectronUserAgent, setupClientHintsOverride } from './browser-session-ua' diff --git a/src/main/browser/browser-session-user-agent-mode.ts b/src/main/browser/browser-session-user-agent-mode.ts index 8fa8f71d1a9..94051d12ff7 100644 --- a/src/main/browser/browser-session-user-agent-mode.ts +++ b/src/main/browser/browser-session-user-agent-mode.ts @@ -1,6 +1,6 @@ import type { Session } from 'electron' -import type { BrowserSessionUserAgentMode } from '../../shared/types' +import type { BrowserSessionUserAgentMode } from '../../shared/browser-workspace-types' const userAgentModeBySession = new WeakMap() diff --git a/src/main/claude-accounts/claude-duplicate-account.test.ts b/src/main/claude-accounts/claude-duplicate-account.test.ts index 23b2fd2f994..99ab959689a 100644 --- a/src/main/claude-accounts/claude-duplicate-account.test.ts +++ b/src/main/claude-accounts/claude-duplicate-account.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { ClaudeManagedAccount } from '../../shared/types' +import type { ClaudeManagedAccount } from '../../shared/managed-account-types' import { findDuplicateClaudeAccount, type ClaudeAccountIdentityCandidate diff --git a/src/main/claude-accounts/claude-duplicate-account.ts b/src/main/claude-accounts/claude-duplicate-account.ts index 55e57165541..4546556e5ac 100644 --- a/src/main/claude-accounts/claude-duplicate-account.ts +++ b/src/main/claude-accounts/claude-duplicate-account.ts @@ -1,4 +1,4 @@ -import type { ClaudeManagedAccount } from '../../shared/types' +import type { ClaudeManagedAccount } from '../../shared/managed-account-types' import { getClaudeWslSelectionKey } from './runtime-selection' export type ClaudeAccountIdentityCandidate = { diff --git a/src/main/claude-accounts/runtime-auth-service.test.ts b/src/main/claude-accounts/runtime-auth-service.test.ts index a78bc99ec1c..61dabbf3be9 100644 --- a/src/main/claude-accounts/runtime-auth-service.test.ts +++ b/src/main/claude-accounts/runtime-auth-service.test.ts @@ -15,7 +15,8 @@ import { import { tmpdir } from 'node:os' import { join } from 'node:path' import { getDefaultSettings } from '../../shared/constants' -import type { ClaudeManagedAccount, GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { ClaudeManagedAccount } from '../../shared/managed-account-types' import { isOauthTokenExpiring, refreshClaudeOauthCredentials } from './oauth-refresh' const originalPlatform = Object.getOwnPropertyDescriptor(process, 'platform') diff --git a/src/main/claude-accounts/runtime-auth-service.ts b/src/main/claude-accounts/runtime-auth-service.ts index 58328222528..a855f9c10ee 100644 --- a/src/main/claude-accounts/runtime-auth-service.ts +++ b/src/main/claude-accounts/runtime-auth-service.ts @@ -3,7 +3,7 @@ import { execFileSync } from 'node:child_process' import { chmodSync, existsSync, mkdirSync, readFileSync, rmSync } from 'node:fs' import { dirname, join } from 'node:path' import { app } from 'electron' -import type { ClaudeManagedAccount } from '../../shared/types' +import type { ClaudeManagedAccount } from '../../shared/managed-account-types' import type { Store } from '../persistence' import { writeFileAtomically } from '../codex-accounts/fs-utils' import type { ClaudeEnvPatch } from './environment' diff --git a/src/main/claude-accounts/runtime-selection.test.ts b/src/main/claude-accounts/runtime-selection.test.ts index 997da720de1..b7f64aede99 100644 --- a/src/main/claude-accounts/runtime-selection.test.ts +++ b/src/main/claude-accounts/runtime-selection.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { ClaudeManagedAccount, GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { ClaudeManagedAccount } from '../../shared/managed-account-types' import { getSelectedClaudeAccountIdForTarget, pruneInvalidClaudeRuntimeSelection, diff --git a/src/main/claude-accounts/runtime-selection.ts b/src/main/claude-accounts/runtime-selection.ts index 8f3a3a4397b..eda5b271cb5 100644 --- a/src/main/claude-accounts/runtime-selection.ts +++ b/src/main/claude-accounts/runtime-selection.ts @@ -1,8 +1,8 @@ +import type { GlobalSettings } from '../../shared/global-settings-types' import type { ClaudeManagedAccount, - ClaudeManagedAccountRuntimeSelection, - GlobalSettings -} from '../../shared/types' + ClaudeManagedAccountRuntimeSelection +} from '../../shared/managed-account-types' export type ClaudeAccountSelectionTarget = { runtime?: 'host' | 'wsl' diff --git a/src/main/claude-accounts/service.test.ts b/src/main/claude-accounts/service.test.ts index 6572bae7fca..0bff847063b 100644 --- a/src/main/claude-accounts/service.test.ts +++ b/src/main/claude-accounts/service.test.ts @@ -6,7 +6,7 @@ import { mkdirSync, mkdtempSync, readdirSync, readFileSync, rmSync, writeFileSyn import { tmpdir } from 'node:os' import { join } from 'node:path' import { PassThrough } from 'node:stream' -import type { ClaudeManagedAccount } from '../../shared/types' +import type { ClaudeManagedAccount } from '../../shared/managed-account-types' import { deleteActiveClaudeKeychainCredentialsStrict, readActiveClaudeKeychainCredentials, diff --git a/src/main/claude-accounts/service.ts b/src/main/claude-accounts/service.ts index 3e3a8ec5f47..6bb5dae1cca 100644 --- a/src/main/claude-accounts/service.ts +++ b/src/main/claude-accounts/service.ts @@ -9,7 +9,7 @@ import type { ClaudeManagedAccount, ClaudeManagedAccountSummary, ClaudeRateLimitAccountsState -} from '../../shared/types' +} from '../../shared/managed-account-types' import type { Store } from '../persistence' import type { RateLimitService } from '../rate-limits/service' import { resolveClaudeCommand } from '../codex-cli/command' diff --git a/src/main/codex-accounts/codex-auth-identity.ts b/src/main/codex-accounts/codex-auth-identity.ts index 5c62dbfe272..2bad1469536 100644 --- a/src/main/codex-accounts/codex-auth-identity.ts +++ b/src/main/codex-accounts/codex-auth-identity.ts @@ -1,4 +1,4 @@ -import type { CodexManagedAccount } from '../../shared/types' +import type { CodexManagedAccount } from '../../shared/managed-account-types' type CodexAuthIdentity = { email: string | null diff --git a/src/main/codex-accounts/legacy-shared-auth-migration.test.ts b/src/main/codex-accounts/legacy-shared-auth-migration.test.ts index 353535fe3c9..8481ede1431 100644 --- a/src/main/codex-accounts/legacy-shared-auth-migration.test.ts +++ b/src/main/codex-accounts/legacy-shared-auth-migration.test.ts @@ -11,7 +11,7 @@ import { } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' -import type { CodexManagedAccount } from '../../shared/types' +import type { CodexManagedAccount } from '../../shared/managed-account-types' import type * as CodexAccountFs from './fs-utils' const writeFailure = vi.hoisted(() => ({ failNextAuthWrite: false })) diff --git a/src/main/codex-accounts/legacy-shared-auth-migration.ts b/src/main/codex-accounts/legacy-shared-auth-migration.ts index b21d858cf04..a9ecd4c2ea5 100644 --- a/src/main/codex-accounts/legacy-shared-auth-migration.ts +++ b/src/main/codex-accounts/legacy-shared-auth-migration.ts @@ -1,6 +1,6 @@ import { lstatSync, readFileSync } from 'node:fs' import { join } from 'node:path' -import type { CodexManagedAccount } from '../../shared/types' +import type { CodexManagedAccount } from '../../shared/managed-account-types' import { writeFileAtomically } from './fs-utils' import { assertOwnedHostCodexManagedHomePath } from './host-codex-managed-home-ownership' import { codexAuthMatchesManagedAccount, compareCodexAuthFreshness } from './codex-auth-identity' diff --git a/src/main/codex-accounts/managed-codex-auth-readiness.test.ts b/src/main/codex-accounts/managed-codex-auth-readiness.test.ts index abd6a4881ee..d65a9344acc 100644 --- a/src/main/codex-accounts/managed-codex-auth-readiness.test.ts +++ b/src/main/codex-accounts/managed-codex-auth-readiness.test.ts @@ -3,7 +3,8 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { CodexManagedAccount, GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { CodexManagedAccount } from '../../shared/managed-account-types' import { readStoredCodexCredentialState, waitForManagedCodexAuthReady diff --git a/src/main/codex-accounts/managed-codex-auth-readiness.ts b/src/main/codex-accounts/managed-codex-auth-readiness.ts index 5b7938ea30c..3aea6cbd526 100644 --- a/src/main/codex-accounts/managed-codex-auth-readiness.ts +++ b/src/main/codex-accounts/managed-codex-auth-readiness.ts @@ -2,7 +2,7 @@ import { readFileSync } from 'node:fs' import { join } from 'node:path' import { normalizeRuntimePathForComparison } from '../../shared/cross-platform-path' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import type { CodexAccountSelectionTarget } from './runtime-selection' const AUTH_READY_TIMEOUT_MS = 1_500 diff --git a/src/main/codex-accounts/runtime-home-mirrored-status-home.test.ts b/src/main/codex-accounts/runtime-home-mirrored-status-home.test.ts index d137a65632e..d771ab9cbfd 100644 --- a/src/main/codex-accounts/runtime-home-mirrored-status-home.test.ts +++ b/src/main/codex-accounts/runtime-home-mirrored-status-home.test.ts @@ -3,7 +3,8 @@ import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' import type * as NodeOs from 'node:os' -import type { CodexManagedAccount, GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { CodexManagedAccount } from '../../shared/managed-account-types' const testState = { userData: '', home: '' } const previousEnv: Record = {} diff --git a/src/main/codex-accounts/runtime-home-service-per-account-migration.test.ts b/src/main/codex-accounts/runtime-home-service-per-account-migration.test.ts index 0efe90bb77c..be9901799ac 100644 --- a/src/main/codex-accounts/runtime-home-service-per-account-migration.test.ts +++ b/src/main/codex-accounts/runtime-home-service-per-account-migration.test.ts @@ -2,7 +2,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { existsSync, mkdtempSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' -import type { CodexManagedAccount, GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { CodexManagedAccount } from '../../shared/managed-account-types' import type * as NodeOs from 'node:os' import { readHookTrustEntries } from '../codex/config-toml-trust' diff --git a/src/main/codex-accounts/runtime-home-service.test.ts b/src/main/codex-accounts/runtime-home-service.test.ts index 639d690cb06..22f5be4d53a 100644 --- a/src/main/codex-accounts/runtime-home-service.test.ts +++ b/src/main/codex-accounts/runtime-home-service.test.ts @@ -16,7 +16,8 @@ import { } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' -import type { CodexManagedAccount, GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { CodexManagedAccount } from '../../shared/managed-account-types' import type * as ShellStartupEnv from '../pty/shell-startup-env' const testState = { diff --git a/src/main/codex-accounts/runtime-home-service.ts b/src/main/codex-accounts/runtime-home-service.ts index 2d4b8239aad..195e2a719df 100644 --- a/src/main/codex-accounts/runtime-home-service.ts +++ b/src/main/codex-accounts/runtime-home-service.ts @@ -28,7 +28,7 @@ import { win32 as pathWin32 } from 'node:path' import { app } from 'electron' -import type { CodexManagedAccount } from '../../shared/types' +import type { CodexManagedAccount } from '../../shared/managed-account-types' import { normalizeRuntimePathForComparison } from '../../shared/cross-platform-path' import type { Store } from '../persistence' import { WSL_CODEX_RUNTIME_HOME_SEGMENTS } from '../pty/codex-home-wsl-env' diff --git a/src/main/codex-accounts/runtime-home-windows-profile-ownership.test.ts b/src/main/codex-accounts/runtime-home-windows-profile-ownership.test.ts index 337aaaf5375..a299d32ee98 100644 --- a/src/main/codex-accounts/runtime-home-windows-profile-ownership.test.ts +++ b/src/main/codex-accounts/runtime-home-windows-profile-ownership.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect, it } from 'vitest' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { CodexRuntimeHomeService } from './runtime-home-service' const originalPlatform = Object.getOwnPropertyDescriptor(process, 'platform') diff --git a/src/main/codex-accounts/runtime-selection.test.ts b/src/main/codex-accounts/runtime-selection.test.ts index df98d20242b..bd007fdc3b4 100644 --- a/src/main/codex-accounts/runtime-selection.test.ts +++ b/src/main/codex-accounts/runtime-selection.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { CodexManagedAccount, GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { CodexManagedAccount } from '../../shared/managed-account-types' import { getSelectedCodexAccountIdForTarget, pruneInvalidCodexRuntimeSelection, diff --git a/src/main/codex-accounts/runtime-selection.ts b/src/main/codex-accounts/runtime-selection.ts index 5ac9f91b013..c60dbdb4c9d 100644 --- a/src/main/codex-accounts/runtime-selection.ts +++ b/src/main/codex-accounts/runtime-selection.ts @@ -1,8 +1,8 @@ +import type { GlobalSettings } from '../../shared/global-settings-types' import type { CodexManagedAccount, - CodexManagedAccountRuntimeSelection, - GlobalSettings -} from '../../shared/types' + CodexManagedAccountRuntimeSelection +} from '../../shared/managed-account-types' // Why: the renderer's switch-time lane guard has to key panes the same way a // launch does, so the lane vocabulary lives in shared rather than in main. import { diff --git a/src/main/codex-accounts/service.test.ts b/src/main/codex-accounts/service.test.ts index 789b864159b..d9a1c1125ff 100644 --- a/src/main/codex-accounts/service.test.ts +++ b/src/main/codex-accounts/service.test.ts @@ -14,7 +14,8 @@ import { import { tmpdir } from 'node:os' import { join } from 'node:path' import { PassThrough } from 'node:stream' -import type { CodexRateLimitAccountsState, GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { CodexRateLimitAccountsState } from '../../shared/managed-account-types' import type { ProviderRateLimits, RateLimitState } from '../../shared/rate-limit-types' import { buildCodexResetCreditExpectedScope } from '../../shared/codex-reset-credit-scope' import type { CodexResetCreditAttemptLedger } from '../../shared/codex-reset-credit-attempt-ledger' diff --git a/src/main/codex-accounts/service.ts b/src/main/codex-accounts/service.ts index eef834af323..54eaacef7ef 100644 --- a/src/main/codex-accounts/service.ts +++ b/src/main/codex-accounts/service.ts @@ -11,7 +11,7 @@ import type { CodexManagedAccountSummary, CodexRateLimitAccountsState, CodexSystemDefaultIdentity -} from '../../shared/types' +} from '../../shared/managed-account-types' import type { CodexRateLimitResetOutcome, CodexRateLimitResetResult, diff --git a/src/main/codex/codex-pane-launch-account.test.ts b/src/main/codex/codex-pane-launch-account.test.ts index 51a9a47508d..456b9bc08be 100644 --- a/src/main/codex/codex-pane-launch-account.test.ts +++ b/src/main/codex/codex-pane-launch-account.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { CodexManagedAccount, GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { CodexManagedAccount } from '../../shared/managed-account-types' import { resolveCodexPaneLaunchAccount } from './codex-pane-launch-account' const SYSTEM_HOME = '/Users/example/.codex' diff --git a/src/main/codex/codex-pane-launch-account.ts b/src/main/codex/codex-pane-launch-account.ts index 1bb3cca9c28..b99700da081 100644 --- a/src/main/codex/codex-pane-launch-account.ts +++ b/src/main/codex/codex-pane-launch-account.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { normalizeRuntimePathForComparison } from '../../shared/cross-platform-path' import { getCodexSelectionLaneKey, diff --git a/src/main/codex/codex-session-source-home.ts b/src/main/codex/codex-session-source-home.ts index 0060051e924..959cb7ab468 100644 --- a/src/main/codex/codex-session-source-home.ts +++ b/src/main/codex/codex-session-source-home.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' /** * Resolves the user-configured Codex *session history* source home, if any. diff --git a/src/main/codex/codex-stale-pane-accounts.test.ts b/src/main/codex/codex-stale-pane-accounts.test.ts index ebc953a4be7..bf2f7e5b5ea 100644 --- a/src/main/codex/codex-stale-pane-accounts.test.ts +++ b/src/main/codex/codex-stale-pane-accounts.test.ts @@ -2,7 +2,7 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest' import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { _internals, forgetCodexPaneAccount, diff --git a/src/main/codex/codex-stale-pane-accounts.ts b/src/main/codex/codex-stale-pane-accounts.ts index b74529abc29..e3c63697cb9 100644 --- a/src/main/codex/codex-stale-pane-accounts.ts +++ b/src/main/codex/codex-stale-pane-accounts.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { getSelectedCodexAccountIdForTarget } from '../codex-accounts/runtime-selection' import { forgetCodexPaneAccount, diff --git a/src/main/daemon/daemon-create-or-attach-result.ts b/src/main/daemon/daemon-create-or-attach-result.ts index d7a2ac64ba8..d6668342487 100644 --- a/src/main/daemon/daemon-create-or-attach-result.ts +++ b/src/main/daemon/daemon-create-or-attach-result.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' import type { ShellReadyState, TerminalSnapshot } from './types' import type { AgentSessionClaimedSpawnResult } from '../../shared/agent-session-host-authority' import type { PtyIncarnationId } from '../../shared/pty-incarnation' diff --git a/src/main/daemon/pty-subprocess.ts b/src/main/daemon/pty-subprocess.ts index a6eade9f621..d529c883fee 100644 --- a/src/main/daemon/pty-subprocess.ts +++ b/src/main/daemon/pty-subprocess.ts @@ -69,7 +69,7 @@ import { parsePtySessionId } from './pty-session-id' import { getAgentForegroundContextPaths } from '../providers/agent-foreground-context-paths' import { assertSafeAgentStartupCwd, resolveSafePtyDefaultCwd } from '../providers/pty-default-cwd' import { ORCA_HERMES_STARTUP_QUERY_ENV } from '../../shared/hermes-startup-query' -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' import { expandWindowsEnvironmentVariables, expandWindowsPathEnvironmentVariables diff --git a/src/main/daemon/session.test.ts b/src/main/daemon/session.test.ts index c0c2a119618..2da1b700ec1 100644 --- a/src/main/daemon/session.test.ts +++ b/src/main/daemon/session.test.ts @@ -2,7 +2,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { SESSION_FORCE_KILL_RETRY_MS, Session } from './session' import { HeadlessEmulator } from './headless-emulator' import type { SessionState, ShellReadyState } from './types' -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' const killWithDescendantSweepMock = vi.hoisted(() => vi.fn()) vi.mock('../pty-descendant-termination', () => ({ diff --git a/src/main/daemon/session.ts b/src/main/daemon/session.ts index 840ea36449b..84eb7fef15d 100644 --- a/src/main/daemon/session.ts +++ b/src/main/daemon/session.ts @@ -19,7 +19,7 @@ import { } from '../shell-prompt-readiness-probe' import { isPowerShellProcess } from '../../shared/shell-process-detection' import { killWithDescendantSweep } from '../pty-descendant-termination' -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' import { randomUUID } from 'node:crypto' import { PhysicalExitTracker } from '../../shared/physical-exit-tracker' import { diff --git a/src/main/daemon/terminal-host-create-contract.ts b/src/main/daemon/terminal-host-create-contract.ts index 114aae91ad2..dce8d052cef 100644 --- a/src/main/daemon/terminal-host-create-contract.ts +++ b/src/main/daemon/terminal-host-create-contract.ts @@ -1,5 +1,5 @@ import type { StartupCommandDelivery } from '../../shared/codex-startup-delivery' -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' import type { ShellReadyState, TerminalSnapshot } from './types' import type { PtyStartupIngressIntent } from '../../shared/pty-startup-ingress' import type { diff --git a/src/main/daemon/terminal-host-options.ts b/src/main/daemon/terminal-host-options.ts index b483914bba3..241f333e815 100644 --- a/src/main/daemon/terminal-host-options.ts +++ b/src/main/daemon/terminal-host-options.ts @@ -1,5 +1,5 @@ import type { StartupCommandDelivery } from '../../shared/codex-startup-delivery' -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' import type { SubprocessHandle } from './session' import type { TakePendingOutputResult, TerminalSnapshot } from './types' diff --git a/src/main/daemon/terminal-host.test.ts b/src/main/daemon/terminal-host.test.ts index ea7302dcc6b..d324d080d42 100644 --- a/src/main/daemon/terminal-host.test.ts +++ b/src/main/daemon/terminal-host.test.ts @@ -6,7 +6,7 @@ import { type SubprocessHandle } from './session' import { TerminalHost } from './terminal-host' -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' const killWithDescendantSweepMock = vi.hoisted(() => vi.fn()) vi.mock('../pty-descendant-termination', () => ({ diff --git a/src/main/daemon/types.ts b/src/main/daemon/types.ts index 3908b4508ac..09e96f6d1c7 100644 --- a/src/main/daemon/types.ts +++ b/src/main/daemon/types.ts @@ -12,7 +12,7 @@ export type { // ─── Protocol Version ──────────────────────────────────────────────── import type { StartupCommandDelivery } from '../../shared/codex-startup-delivery' -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' import type { PtyStartupIngressIntent } from '../../shared/pty-startup-ingress' import type { AgentSessionExecutionClaim, diff --git a/src/main/ephemeral-vm-recipe-runner.test.ts b/src/main/ephemeral-vm-recipe-runner.test.ts index f5c3f4fc9fa..239eebac97f 100644 --- a/src/main/ephemeral-vm-recipe-runner.test.ts +++ b/src/main/ephemeral-vm-recipe-runner.test.ts @@ -12,7 +12,7 @@ import { runEphemeralVmRecipeStart, runEphemeralVmRecipeSuspend } from './ephemeral-vm-recipe-runner' -import type { OrcaVmRecipe } from '../shared/types' +import type { OrcaVmRecipe } from '../shared/orca-yaml-hook-types' const tmpRoots: string[] = [] diff --git a/src/main/ephemeral-vm-runtime-service.test.ts b/src/main/ephemeral-vm-runtime-service.test.ts index 80cc500b284..b3516d0e791 100644 --- a/src/main/ephemeral-vm-runtime-service.test.ts +++ b/src/main/ephemeral-vm-runtime-service.test.ts @@ -12,7 +12,7 @@ import { provisionEphemeralVmRuntime, resumeEphemeralVmRuntime } from './ephemeral-vm-runtime-service' -import type { OrcaVmRecipe } from '../shared/types' +import type { OrcaVmRecipe } from '../shared/orca-yaml-hook-types' const tempDirs: string[] = [] diff --git a/src/main/ephemeral-vm-runtime-service.ts b/src/main/ephemeral-vm-runtime-service.ts index ddbecb7cf6b..ed419b2f950 100644 --- a/src/main/ephemeral-vm-runtime-service.ts +++ b/src/main/ephemeral-vm-runtime-service.ts @@ -1,4 +1,4 @@ -import type { OrcaVmRecipe } from '../shared/types' +import type { OrcaVmRecipe } from '../shared/orca-yaml-hook-types' import { listEphemeralVmRuntimes, updateEphemeralVmRuntimeStatus, diff --git a/src/main/folder-workspace-diff-comments.ts b/src/main/folder-workspace-diff-comments.ts index 1a7435e8930..cc4481cbccf 100644 --- a/src/main/folder-workspace-diff-comments.ts +++ b/src/main/folder-workspace-diff-comments.ts @@ -1,4 +1,5 @@ -import type { DiffComment, FolderWorkspace } from '../shared/types' +import type { DiffComment } from '../shared/diff-comment-types' +import type { FolderWorkspace } from '../shared/folder-workspace-types' // Why shape-only: this replaces folder-workspaces.ts's verbatim `Array.isArray(raw.diffComments)` read. // Filtering members would make the fix itself a new deletion path for user-authored prose. diff --git a/src/main/ghostty/index.test.ts b/src/main/ghostty/index.test.ts index 08902b5375d..9247cb450c6 100644 --- a/src/main/ghostty/index.test.ts +++ b/src/main/ghostty/index.test.ts @@ -1,5 +1,5 @@ import type { Store } from '../persistence' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { afterEach, describe, expect, it, vi } from 'vitest' const { statMock, readFileMock } = vi.hoisted(() => ({ diff --git a/src/main/ghostty/index.ts b/src/main/ghostty/index.ts index 4827a29741d..e6e041aacfb 100644 --- a/src/main/ghostty/index.ts +++ b/src/main/ghostty/index.ts @@ -1,6 +1,6 @@ import { readFile, stat } from 'node:fs/promises' import { platform } from 'node:os' -import type { GlobalSettings, GhosttyImportPreview } from '../../shared/types' +import type { GhosttyImportPreview, GlobalSettings } from '../../shared/global-settings-types' import type { Store } from '../persistence' import { findGhosttyConfigPaths } from './discovery' import { parseGhosttyConfig } from './parser' diff --git a/src/main/ghostty/mapper.ts b/src/main/ghostty/mapper.ts index c3734cd04c5..ad8b8d050c8 100644 --- a/src/main/ghostty/mapper.ts +++ b/src/main/ghostty/mapper.ts @@ -1,8 +1,5 @@ -import type { - GlobalSettings, - TerminalColorOverrides, - GhosttyImportPreview -} from '../../shared/types' +import type { GhosttyImportPreview, GlobalSettings } from '../../shared/global-settings-types' +import type { TerminalColorOverrides } from '../../shared/terminal-color-overrides' import { HEX_COLOR_RE } from '../../shared/color-validation' import { parsePaddingValue, parseStrictInt } from './numeric-config-values' diff --git a/src/main/ghostty/theme-import.test.ts b/src/main/ghostty/theme-import.test.ts index c2d2ec61ab9..dff669ee7b1 100644 --- a/src/main/ghostty/theme-import.test.ts +++ b/src/main/ghostty/theme-import.test.ts @@ -1,5 +1,5 @@ import type { Store } from '../persistence' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' const { statMock, readFileMock } = vi.hoisted(() => ({ diff --git a/src/main/git/push-target-validation.ts b/src/main/git/push-target-validation.ts index bfb85cc4a27..8e3375c100f 100644 --- a/src/main/git/push-target-validation.ts +++ b/src/main/git/push-target-validation.ts @@ -1,4 +1,4 @@ -import type { GitPushTarget } from '../../shared/types' +import type { GitPushTarget } from '../../shared/worktree/types' import { assertGitPushTargetShape } from '../../shared/git-push-target-validation' import { gitExecFileAsync } from './runner' diff --git a/src/main/git/remote.ts b/src/main/git/remote.ts index 5c3f40cafe0..687102b1184 100644 --- a/src/main/git/remote.ts +++ b/src/main/git/remote.ts @@ -5,7 +5,7 @@ import { import { resolveEffectiveGitUpstream } from '../../shared/git-effective-upstream' import { gitRefTargetsBranchOnRemote } from '../../shared/git-remote-branch-name' import { resolveGitRemoteRebaseSource } from '../../shared/git-rebase-source' -import type { GitPushTarget } from '../../shared/types' +import type { GitPushTarget } from '../../shared/worktree/types' import type { GitRuntimeOptions } from './git-runtime-options' import { gitOptionsForWorktree } from './git-runtime-options' import { validateGitPushTarget } from './push-target-validation' diff --git a/src/main/git/repo.ts b/src/main/git/repo.ts index 26291ec5d39..50d8a278be2 100644 --- a/src/main/git/repo.ts +++ b/src/main/git/repo.ts @@ -2,7 +2,7 @@ import { existsSync, readFileSync, realpathSync, statSync } from 'node:fs' import { basename, dirname, isAbsolute, join, relative, resolve } from 'node:path' import { gitExecFileSync, gitExecFileAsync } from './runner' -import type { BaseRefSearchResult } from '../../shared/types' +import type { BaseRefSearchResult } from '../../shared/repo-types' import { parseGitRevListAheadBehindCounts } from '../../shared/git-rev-list-output' import { normalizeRuntimePathSeparators } from '../../shared/cross-platform-path' import { isForEachRefExcludeUnsupportedError } from '../../shared/git-ref-command-capabilities' diff --git a/src/main/git/status.ts b/src/main/git/status.ts index 31f364789de..378bbd56dc2 100644 --- a/src/main/git/status.ts +++ b/src/main/git/status.ts @@ -4,18 +4,20 @@ import { readFile, stat } from 'node:fs/promises' import * as path from 'node:path' import type { GitBranchChangeEntry, - GitBranchChangeStatus, GitBranchCompareResult, GitBranchCompareSummary, GitCommitCompareResult, + GitDiffResult +} from '../../shared/git-diff-compare-types' +import type { + GitBranchChangeStatus, GitConflictKind, GitConflictOperation, - GitDiffResult, GitFileStatus, GitStatusEntry, GitStatusResult, GitUpstreamStatus -} from '../../shared/types' +} from '../../shared/git-status-types' import type { CommitMessageDraftContext } from '../../shared/commit-message-generation' import { getEffectiveGitUpstreamStatus, diff --git a/src/main/git/upstream.ts b/src/main/git/upstream.ts index d36b5f0a53d..18c2037493f 100644 --- a/src/main/git/upstream.ts +++ b/src/main/git/upstream.ts @@ -1,4 +1,5 @@ -import type { GitPushTarget, GitUpstreamStatus } from '../../shared/types' +import type { GitUpstreamStatus } from '../../shared/git-status-types' +import type { GitPushTarget } from '../../shared/worktree/types' import { upstreamOnlyCommitsArePatchEquivalent } from '../../shared/git-upstream-status' import { isNoUpstreamError, normalizeGitErrorMessage } from '../../shared/git-remote-error' import { getEffectiveGitUpstreamStatus } from '../../shared/git-effective-upstream' diff --git a/src/main/git/worktree-shared-directories.ts b/src/main/git/worktree-shared-directories.ts index 6ad9e6096ed..d725e80c8f8 100644 --- a/src/main/git/worktree-shared-directories.ts +++ b/src/main/git/worktree-shared-directories.ts @@ -3,7 +3,7 @@ import { join } from 'node:path' import { checkIgnoredPaths } from './check-ignored-paths' import type { GitRuntimeOptions } from './git-runtime-options' import { loadHooks } from '../hooks' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' // Why: a fresh worktree has no node_modules/.cache, and copying them is slow and // duplicates disk; `orca.yaml` names the ones every worktree should share instead. diff --git a/src/main/git/worktree.ts b/src/main/git/worktree.ts index 11439bff0ae..005be57351f 100644 --- a/src/main/git/worktree.ts +++ b/src/main/git/worktree.ts @@ -15,11 +15,11 @@ import { } from '../worktree-trash' import { parseWslPath } from '../wsl' import type { - GitWorktreeInfo, LocalBaseRefRefreshResult, - LocalBaseRefUpdateSuggestion, - RemoveWorktreeResult -} from '../../shared/types' + LocalBaseRefUpdateSuggestion +} from '../../shared/worktree/base-ref-drift-types' +import type { RemoveWorktreeResult } from '../../shared/worktree/create-types' +import type { GitWorktreeInfo } from '../../shared/worktree/types' import { assertWorktreeUnlockedForRemoval } from '../../shared/worktree/removal' import { isSubmoduleWorktreeRemovalRefusal } from '../../shared/worktree/submodule-removal' import { decodeGitCQuotedPath } from '../../shared/git-cquoted-path' diff --git a/src/main/gitea/pull-request-mappers.ts b/src/main/gitea/pull-request-mappers.ts index eee0bd5d946..9e877f14bb8 100644 --- a/src/main/gitea/pull-request-mappers.ts +++ b/src/main/gitea/pull-request-mappers.ts @@ -1,4 +1,4 @@ -import type { CheckStatus, PRMergeableState } from '../../shared/types' +import type { CheckStatus, PRMergeableState } from '../../shared/github/pull-request-types' export type RawGiteaPullRequest = { number?: number diff --git a/src/main/github/client.ts b/src/main/github/client.ts index 2457c7f21f4..5391539d353 100644 --- a/src/main/github/client.ts +++ b/src/main/github/client.ts @@ -1,28 +1,31 @@ /* eslint-disable max-lines -- Why: co-locating all GitHub client functions keeps acquire/release and error handling consistent. */ +import type { ClassifiedError } from '../../shared/classified-error' import type { - ClassifiedError, - GitPushTarget, - IssueSourcePreference, - ListWorkItemsResult, - PRInfo, - PRConflictSummary, - PRRefreshOutcome, - PRMergeableState, - PRReviewDecision, - PRCheckDetail, - PRCheckRunDetails, - GitHubCommentResult, - GitHubReactionContent, - GitHubPRReviewCommentInput, - PRComment, - GitHubViewer, - GitHubWorkItem, - GitHubPullRequestStateUpdate, GitHubRerunPRChecksResult, + PRCheckDetail, + PRCheckRunDetails +} from '../../shared/github/check-types' +import type { + GitHubCommentResult, + GitHubPRReviewCommentInput, + GitHubReactionContent, + PRComment +} from '../../shared/github/comment-types' +import type { PRRefreshOutcome } from '../../shared/github/pull-request-refresh-types' +import type { GitHubPRMergeMethod, GitHubPRMergeMethodSettings, - GitHubPRStack -} from '../../shared/types' + GitHubPRStack, + GitHubViewer, + PRConflictSummary, + PRInfo, + PRMergeableState, + PRReviewDecision +} from '../../shared/github/pull-request-types' +import type { GitHubWorkItem, ListWorkItemsResult } from '../../shared/github/work-item-types' +import type { GitHubPullRequestStateUpdate } from '../../shared/issue-mutation-types' +import type { IssueSourcePreference } from '../../shared/repo-types' +import type { GitPushTarget } from '../../shared/worktree/types' import type { CreateHostedReviewInput, CreateHostedReviewResult } from '../../shared/hosted-review' import { normalizeHostedReviewBaseRef, diff --git a/src/main/github/comment-reactions.ts b/src/main/github/comment-reactions.ts index 1bb831f30ca..89ee5ee8d6b 100644 --- a/src/main/github/comment-reactions.ts +++ b/src/main/github/comment-reactions.ts @@ -1,4 +1,4 @@ -import type { GitHubReaction, GitHubReactionContent } from '../../shared/types' +import type { GitHubReaction, GitHubReactionContent } from '../../shared/github/comment-types' type GitHubGraphQLReactionContent = | 'THUMBS_UP' diff --git a/src/main/github/conflict-summary-cache.ts b/src/main/github/conflict-summary-cache.ts index 99a2715ce6d..0980bf2a8eb 100644 --- a/src/main/github/conflict-summary-cache.ts +++ b/src/main/github/conflict-summary-cache.ts @@ -1,4 +1,4 @@ -import type { PRConflictSummary } from '../../shared/types' +import type { PRConflictSummary } from '../../shared/github/pull-request-types' // Why 60s: the hottest coordinator cadences that re-derive a CONFLICTING PR // (10s mergeability-pending, 2.5s manual-pending) previously each ran a diff --git a/src/main/github/conflict-summary.ts b/src/main/github/conflict-summary.ts index a8c52c46085..b6d19ce1d2a 100644 --- a/src/main/github/conflict-summary.ts +++ b/src/main/github/conflict-summary.ts @@ -1,4 +1,4 @@ -import type { PRConflictSummary } from '../../shared/types' +import type { PRConflictSummary } from '../../shared/github/pull-request-types' import { isUnsupportedMergeTreeMergeBaseError, isUnsupportedMergeTreeWriteTreeError diff --git a/src/main/github/gh-error-classification.ts b/src/main/github/gh-error-classification.ts index 4d2453899ac..551365f2c9c 100644 --- a/src/main/github/gh-error-classification.ts +++ b/src/main/github/gh-error-classification.ts @@ -1,4 +1,4 @@ -import type { ClassifiedError } from '../../shared/types' +import type { ClassifiedError } from '../../shared/classified-error' // Why: gh CLI surfaces API errors as unstructured stderr. Map known // patterns to typed errors so callers can show user-friendly messages. diff --git a/src/main/github/github-api-repository.ts b/src/main/github/github-api-repository.ts index 24037c4f73c..d7fabcd4f5b 100644 --- a/src/main/github/github-api-repository.ts +++ b/src/main/github/github-api-repository.ts @@ -1,4 +1,5 @@ -import type { GitHubOwnerRepo, IssueSourcePreference } from '../../shared/types' +import type { GitHubOwnerRepo } from '../../shared/github/pull-request-types' +import type { IssueSourcePreference } from '../../shared/repo-types' import { githubRepoIdentityKey, isDefaultGitHubHost diff --git a/src/main/github/github-enterprise-repository.ts b/src/main/github/github-enterprise-repository.ts index 89f8bf7bbd7..f91975097fc 100644 --- a/src/main/github/github-enterprise-repository.ts +++ b/src/main/github/github-enterprise-repository.ts @@ -1,5 +1,5 @@ import { ghExecFileAsync } from '../git/runner' -import type { GitHubOwnerRepo } from '../../shared/types' +import type { GitHubOwnerRepo } from '../../shared/github/pull-request-types' import { getHostedReviewLocalGitOptions, type HostedReviewExecutionOptions diff --git a/src/main/github/github-owner-repo-selection.ts b/src/main/github/github-owner-repo-selection.ts index 2e7c6aa0f4c..39cd0d2da0e 100644 --- a/src/main/github/github-owner-repo-selection.ts +++ b/src/main/github/github-owner-repo-selection.ts @@ -1,4 +1,4 @@ -import type { IssueSourcePreference } from '../../shared/types' +import type { IssueSourcePreference } from '../../shared/repo-types' import { githubRepoIdentityKey } from '../../shared/github/repository-identity-key' import { getOwnerRepoForRemote, diff --git a/src/main/github/github-pr-stack-async-merge.ts b/src/main/github/github-pr-stack-async-merge.ts index 1b3909af035..d5375a468ac 100644 --- a/src/main/github/github-pr-stack-async-merge.ts +++ b/src/main/github/github-pr-stack-async-merge.ts @@ -1,4 +1,4 @@ -import type { GitHubPRMergeMethod } from '../../shared/types' +import type { GitHubPRMergeMethod } from '../../shared/github/pull-request-types' import { ghExecFileAsync } from '../git/runner' import { acquire, release } from './gh-utils' import { diff --git a/src/main/github/github-pr-stack.test.ts b/src/main/github/github-pr-stack.test.ts index 17cd6475941..243fdc057ab 100644 --- a/src/main/github/github-pr-stack.test.ts +++ b/src/main/github/github-pr-stack.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { GitHubPRStack } from '../../shared/types' +import type { GitHubPRStack } from '../../shared/github/pull-request-types' const { ghExecFileAsyncMock, rateLimitGuardMock, noteRateLimitSpendMock } = vi.hoisted(() => ({ ghExecFileAsyncMock: vi.fn(), diff --git a/src/main/github/github-pr-stack.ts b/src/main/github/github-pr-stack.ts index a11cf597769..3dc65f6175a 100644 --- a/src/main/github/github-pr-stack.ts +++ b/src/main/github/github-pr-stack.ts @@ -5,7 +5,7 @@ import type { PRMergeableState, PRReviewDecision, PRState -} from '../../shared/types' +} from '../../shared/github/pull-request-types' import { githubRepoIdentityKey } from '../../shared/github/repository-identity-key' import { ghExecFileAsync } from '../git/runner' import { diff --git a/src/main/github/github-remote-identity-parsing.ts b/src/main/github/github-remote-identity-parsing.ts index 02c21fb8983..32c640b8796 100644 --- a/src/main/github/github-remote-identity-parsing.ts +++ b/src/main/github/github-remote-identity-parsing.ts @@ -1,5 +1,5 @@ import { normalizeGitHubRemoteHost } from '../../shared/git-remote-host-alias' -import type { GitHubOwnerRepo } from '../../shared/types' +import type { GitHubOwnerRepo } from '../../shared/github/pull-request-types' export type GitHubRemoteIdentity = GitHubOwnerRepo & { host: string } diff --git a/src/main/github/github-repository-identity.ts b/src/main/github/github-repository-identity.ts index e348fbc6459..b860c7b7d31 100644 --- a/src/main/github/github-repository-identity.ts +++ b/src/main/github/github-repository-identity.ts @@ -1,6 +1,6 @@ import { runCoalescedProbe, type CoalescedProbes } from '../git/coalesced-probe' import { readRemoteUrl } from '../git/remote-url-probe' -import type { GitHubOwnerRepo } from '../../shared/types' +import type { GitHubOwnerRepo } from '../../shared/github/pull-request-types' import { getSshGitProviderGeneration } from '../providers/ssh-git-dispatch' import { readLocalGitConfigSignature } from './local-git-config-signature' import { diff --git a/src/main/github/github-ssh-host-alias-resolution.ts b/src/main/github/github-ssh-host-alias-resolution.ts index a4988471977..82c0f8b3fb4 100644 --- a/src/main/github/github-ssh-host-alias-resolution.ts +++ b/src/main/github/github-ssh-host-alias-resolution.ts @@ -1,4 +1,4 @@ -import type { GitHubOwnerRepo } from '../../shared/types' +import type { GitHubOwnerRepo } from '../../shared/github/pull-request-types' import { commandExecFileAsync } from '../git/runner' import { getSshGitProvider, getSshGitProviderGeneration } from '../providers/ssh-git-dispatch' import { parseWslPath } from '../wsl' diff --git a/src/main/github/issues.ts b/src/main/github/issues.ts index e2a4dd52677..40cf4e5fa26 100644 --- a/src/main/github/issues.ts +++ b/src/main/github/issues.ts @@ -2,17 +2,15 @@ comment operations keeps the shared acquire/release + error-classification pattern obvious. Each function is short; the file is long because the surface is broad. */ +import type { ClassifiedError } from '../../shared/classified-error' +import type { GitHubCommentResult, PRComment } from '../../shared/github/comment-types' +import type { GitHubAssignableUser, IssueInfo } from '../../shared/github/pull-request-types' import type { - ClassifiedError, - GitHubAssignableUser, GitHubCreateIssueFields, GitHubCreateIssueResult, - GitHubCommentResult, - GitHubIssueUpdate, - IssueInfo, - IssueSourcePreference, - PRComment -} from '../../shared/types' + GitHubIssueUpdate +} from '../../shared/issue-mutation-types' +import type { IssueSourcePreference } from '../../shared/repo-types' import { mapIssueInfo } from './mappers' import type { LocalGitExecOptions, OwnerRepo } from './gh-utils' import { diff --git a/src/main/github/mappers.ts b/src/main/github/mappers.ts index 11ce858cdfb..84fa2b4d43d 100644 --- a/src/main/github/mappers.ts +++ b/src/main/github/mappers.ts @@ -1,4 +1,5 @@ -import type { PRInfo, IssueInfo, CheckStatus, PRCheckDetail } from '../../shared/types' +import type { PRCheckDetail } from '../../shared/github/check-types' +import type { CheckStatus, IssueInfo, PRInfo } from '../../shared/github/pull-request-types' import { derivePRCheckStatusFromRollup } from '../../shared/pr-check-status' // ── REST API check-runs mapping ─────────────────────────────────────── diff --git a/src/main/github/pr-refresh-coordinator.test.ts b/src/main/github/pr-refresh-coordinator.test.ts index 30fc44b3c66..aca21c7d146 100644 --- a/src/main/github/pr-refresh-coordinator.test.ts +++ b/src/main/github/pr-refresh-coordinator.test.ts @@ -1,7 +1,8 @@ /* eslint-disable max-lines -- Why: coordinator tests cover queueing, coalescing, request timestamps, and follow-up scheduling against shared module state. */ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GitHubPRRefreshCandidate, PRInfo } from '../../shared/types' +import type { GitHubPRRefreshCandidate } from '../../shared/github/pull-request-refresh-types' +import type { PRInfo } from '../../shared/github/pull-request-types' import { isWslUncPath } from '../../shared/wsl-paths' const { diff --git a/src/main/github/pr-refresh-coordinator.ts b/src/main/github/pr-refresh-coordinator.ts index 190cc82c6f9..2ff9d0e410b 100644 --- a/src/main/github/pr-refresh-coordinator.ts +++ b/src/main/github/pr-refresh-coordinator.ts @@ -7,7 +7,7 @@ import type { GitHubPRRefreshReason, GitHubPRRefreshSkippedReason, PRRefreshOutcome -} from '../../shared/types' +} from '../../shared/github/pull-request-refresh-types' import { getPRForBranchOutcome, type GitHubPRBranchLookupOptions } from './client' import { getOriginGitHubApiRepository } from './github-api-repository' import { ghRepoExecOptions, githubRepoContext } from './gh-utils' diff --git a/src/main/github/pr-refresh-error-classification.ts b/src/main/github/pr-refresh-error-classification.ts index 12c42d092b2..894ddc729fd 100644 --- a/src/main/github/pr-refresh-error-classification.ts +++ b/src/main/github/pr-refresh-error-classification.ts @@ -1,4 +1,4 @@ -import type { PRRefreshErrorType } from '../../shared/types' +import type { PRRefreshErrorType } from '../../shared/github/pull-request-refresh-types' import { classifyGitHubUnavailable } from '../../shared/github/api-availability' import { extractExecError } from '../git/exec-error' diff --git a/src/main/github/pr-start-point.ts b/src/main/github/pr-start-point.ts index 05c012c1ab6..118cbc474ef 100644 --- a/src/main/github/pr-start-point.ts +++ b/src/main/github/pr-start-point.ts @@ -1,4 +1,5 @@ -import type { GitHubPrStartPoint, GitPushTarget, IssueSourcePreference } from '../../shared/types' +import type { IssueSourcePreference } from '../../shared/repo-types' +import type { GitHubPrStartPoint, GitPushTarget } from '../../shared/worktree/types' import { fetchCompareBaseRefWithLocalFallback } from '../git/compare-base-ref-fetch' import { isMissingRemoteRefGitError, diff --git a/src/main/github/project-view/mutations.ts b/src/main/github/project-view/mutations.ts index 5f6044debbf..efe27d452e2 100644 --- a/src/main/github/project-view/mutations.ts +++ b/src/main/github/project-view/mutations.ts @@ -18,7 +18,9 @@ import { } from './internals' import { classifyProjectError, rateLimitedError } from './project-error-classification' import { githubProjectHost } from '../../../shared/github/project-identity' -import type { GitHubAssignableUser, GitHubWorkItemDetails, PRComment } from '../../../shared/types' +import type { PRComment } from '../../../shared/github/comment-types' +import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' +import type { GitHubWorkItemDetails } from '../../../shared/github/work-item-types' import type { AddIssueCommentBySlugArgs, ClearProjectItemFieldArgs, diff --git a/src/main/github/rate-limit.ts b/src/main/github/rate-limit.ts index 4a48823164d..f75d2810321 100644 --- a/src/main/github/rate-limit.ts +++ b/src/main/github/rate-limit.ts @@ -8,7 +8,7 @@ import type { GetRateLimitResult, GitHubRateLimitBucket, GitHubRateLimitSnapshot -} from '../../shared/types' +} from '../../shared/github/rate-limit-types' import { isDefaultGitHubHost } from '../../shared/github/repository-identity-key' import { isWslUncPath } from '../../shared/wsl-paths' import { acquire, release } from './gh-utils' diff --git a/src/main/github/review-head-remote.ts b/src/main/github/review-head-remote.ts index 2a0dd53ca7f..e408d626ad2 100644 --- a/src/main/github/review-head-remote.ts +++ b/src/main/github/review-head-remote.ts @@ -1,4 +1,4 @@ -import type { IssueSourcePreference } from '../../shared/types' +import type { IssueSourcePreference } from '../../shared/repo-types' import { pickPreferredGitRemote } from '../../shared/preferred-git-remote' import { getDefaultRemote } from '../git/repo' import { getGitHubApiRepositoryForRemote } from './github-api-repository' diff --git a/src/main/github/work-item-details.ts b/src/main/github/work-item-details.ts index 2df6d9200e9..276ee9d33eb 100644 --- a/src/main/github/work-item-details.ts +++ b/src/main/github/work-item-details.ts @@ -1,17 +1,18 @@ /* eslint-disable max-lines -- Why: groups the PR/Issue fetch paths and file-contents resolver so caching/rate-limit strategy lives in one place. */ +import type { PRCheckDetail } from '../../shared/github/check-types' +import type { + GitHubIssueTimelineItem, + GitHubIssueTimelineTarget, + PRComment +} from '../../shared/github/comment-types' import type { GitHubAssignableUser, GitHubPRFile, GitHubPRFileContents, - GitHubPRFileViewedState, - GitHubIssueTimelineItem, - GitHubIssueTimelineTarget, - GitHubWorkItem, - GitHubWorkItemDetails, - IssueSourcePreference, - PRCheckDetail, - PRComment -} from '../../shared/types' + GitHubPRFileViewedState +} from '../../shared/github/pull-request-types' +import type { GitHubWorkItem, GitHubWorkItemDetails } from '../../shared/github/work-item-types' +import type { IssueSourcePreference } from '../../shared/repo-types' import { ghExecFileAsync, acquire, diff --git a/src/main/gitlab/client.ts b/src/main/gitlab/client.ts index 138b2cac93d..9e7d03c01b2 100644 --- a/src/main/gitlab/client.ts +++ b/src/main/gitlab/client.ts @@ -1,26 +1,26 @@ /* eslint-disable max-lines -- co-locates GitLab MR/issue/work-item operations sharing one acquire/release pattern. */ +import type { ClassifiedError } from '../../shared/classified-error' import type { - ClassifiedError, + GetGitLabRateLimitResult, GitLabAssignableUser, GitLabAuthDiagnostic, GitLabDiscussionResolveResult, GitLabJobTraceResult, + GitLabMRInlineCommentInput, + GitLabMRReviewersUpdateResult, GitLabPagedResult, GitLabPipelineJob, GitLabRateLimitSnapshot, - GitLabMRInlineCommentInput, - GitLabMRReviewersUpdateResult, GitLabRetryJobResult, GitLabTodo, GitLabViewer, GitLabWorkItem, - GetGitLabRateLimitResult, - IssueSourcePreference, ListMergeRequestsResult, MRComment, MRInfo, MRListState -} from '../../shared/types' +} from '../../shared/gitlab-types' +import type { IssueSourcePreference } from '../../shared/repo-types' import { derivePipelineStatus, mapIssueToWorkItem, mapMRInfo, mapMRToWorkItem } from './mappers' import { acquire, diff --git a/src/main/gitlab/gitlab-preload-args.ts b/src/main/gitlab/gitlab-preload-args.ts index be59907b41f..483f02f9c11 100644 --- a/src/main/gitlab/gitlab-preload-args.ts +++ b/src/main/gitlab/gitlab-preload-args.ts @@ -1,4 +1,4 @@ -import type { MRListState } from '../../shared/types' +import type { MRListState } from '../../shared/gitlab-types' export type GitLabIssueListState = 'opened' | 'closed' | 'all' diff --git a/src/main/gitlab/gitlab-project-recents.ts b/src/main/gitlab/gitlab-project-recents.ts index 7d81f2f3667..44a919262e6 100644 --- a/src/main/gitlab/gitlab-project-recents.ts +++ b/src/main/gitlab/gitlab-project-recents.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { computeNextGitLabRecents } from '../../shared/gitlab-projects' export type GitLabProjectRecentsStore = { diff --git a/src/main/gitlab/gitlab-project-ref-resolution.ts b/src/main/gitlab/gitlab-project-ref-resolution.ts index ee7203ce668..96186f1ccf2 100644 --- a/src/main/gitlab/gitlab-project-ref-resolution.ts +++ b/src/main/gitlab/gitlab-project-ref-resolution.ts @@ -2,7 +2,7 @@ import { glabExecFileAsync } from '../git/runner' import { isTransientGitProbeError, readRemoteUrl } from '../git/remote-url-probe' import { NEGATIVE_ENTRY_TTL_MS } from '../git/remote-ref-probe-cache' import { getSshGitProviderGeneration } from '../providers/ssh-git-dispatch' -import type { IssueSourcePreference } from '../../shared/types' +import type { IssueSourcePreference } from '../../shared/repo-types' import { clearProjectRefInFlight, runProjectRefProbeOnce } from './project-ref-inflight' import { _resetGlabUnauthenticatedHosts, diff --git a/src/main/gitlab/glab-error-classification.ts b/src/main/gitlab/glab-error-classification.ts index 75af66ca4ea..1c8eb6212b8 100644 --- a/src/main/gitlab/glab-error-classification.ts +++ b/src/main/gitlab/glab-error-classification.ts @@ -1,4 +1,4 @@ -import type { ClassifiedError } from '../../shared/types' +import type { ClassifiedError } from '../../shared/classified-error' import { GlabNonListResponseError } from './glab-api-response' // Why: glab CLI surfaces API errors as unstructured stderr. Map known diff --git a/src/main/gitlab/issues.ts b/src/main/gitlab/issues.ts index 8635805337d..9bf57d6beb9 100644 --- a/src/main/gitlab/issues.ts +++ b/src/main/gitlab/issues.ts @@ -2,15 +2,15 @@ co-locating issue list/create/update/comment operations keeps the shared acquire/release + error-classification pattern obvious. Each function is short; the file is long because the surface is broad. */ +import type { ClassifiedError } from '../../shared/classified-error' import type { - ClassifiedError, GitLabAssignableUser, GitLabCommentResult, GitLabIssueInfo, GitLabIssueUpdate, - IssueSourcePreference, MRComment -} from '../../shared/types' +} from '../../shared/gitlab-types' +import type { IssueSourcePreference } from '../../shared/repo-types' import { mapGitLabIssueInfo } from './mappers' // prettier-ignore import { glabExecFileAsync, acquire, release, getIssueProjectRef, resolveIssueSource, classifyGlabError, classifyListFetchError, getGlabKnownHosts, glabRepoExecOptions, glabHostnameArgs, parseGlabJsonList, type LocalGitExecOptions, type ProjectRef } from './gl-utils' diff --git a/src/main/gitlab/mappers.ts b/src/main/gitlab/mappers.ts index cbc47eef6ae..645392ef2cb 100644 --- a/src/main/gitlab/mappers.ts +++ b/src/main/gitlab/mappers.ts @@ -1,10 +1,5 @@ -import type { - CheckStatus, - GitLabIssueInfo, - GitLabWorkItem, - MRInfo, - MRState -} from '../../shared/types' +import type { CheckStatus } from '../../shared/github/pull-request-types' +import type { GitLabIssueInfo, GitLabWorkItem, MRInfo, MRState } from '../../shared/gitlab-types' import { mapGitLabPipelineJobStatusToCheckStatus, mapGitLabPipelineJobStatusToConclusion diff --git a/src/main/gitlab/project-ref-parser.ts b/src/main/gitlab/project-ref-parser.ts index 9477cb8baa0..575e6093179 100644 --- a/src/main/gitlab/project-ref-parser.ts +++ b/src/main/gitlab/project-ref-parser.ts @@ -1,4 +1,4 @@ -import type { GitLabProjectRef } from '../../shared/types' +import type { GitLabProjectRef } from '../../shared/gitlab-types' export type ProjectRef = GitLabProjectRef diff --git a/src/main/gitlab/work-item-details.ts b/src/main/gitlab/work-item-details.ts index 638a35dd847..3155727eeaf 100644 --- a/src/main/gitlab/work-item-details.ts +++ b/src/main/gitlab/work-item-details.ts @@ -10,9 +10,9 @@ import type { GitLabPipelineJob, GitLabWorkItem, GitLabWorkItemDetails, - IssueSourcePreference, MRComment -} from '../../shared/types' +} from '../../shared/gitlab-types' +import type { IssueSourcePreference } from '../../shared/repo-types' import { mapIssueToWorkItem, mapMRToWorkItem } from './mappers' import { acquire, diff --git a/src/main/hooks-runner.test.ts b/src/main/hooks-runner.test.ts index 5ca5903d66f..61ba70d85ed 100644 --- a/src/main/hooks-runner.test.ts +++ b/src/main/hooks-runner.test.ts @@ -3,7 +3,7 @@ import type * as NodeFs from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import { describe, expect, it, vi } from 'vitest' diff --git a/src/main/hooks.test.ts b/src/main/hooks.test.ts index 6cb9878f79c..0f8a1817e7a 100644 --- a/src/main/hooks.test.ts +++ b/src/main/hooks.test.ts @@ -1,5 +1,5 @@ /* eslint-disable max-lines -- Why: hook parsing, shell selection, and execution-path regressions are tightly coupled, so these cases stay in one file to preserve the behavior matrix across platforms. */ -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import type * as GitRunner from './git/runner' import { join } from 'node:path' diff --git a/src/main/hooks.ts b/src/main/hooks.ts index 21b56b8a597..cbbb2edddee 100644 --- a/src/main/hooks.ts +++ b/src/main/hooks.ts @@ -23,12 +23,14 @@ import { addWorktreeSetupWslInteropEnv } from './pty/wsl-orca-env' import type { HookCommandSourcePolicy, OrcaHooks, - Repo, - SetupDecision, - SetupRunPolicy, + SetupRunPolicy +} from '../shared/orca-yaml-hook-types' +import type { Repo } from '../shared/repo-types' +import type { SetupDecision } from '../shared/worktree/create-types' +import type { WorktreeDefaultTabsLaunch, WorktreeSetupLaunch -} from '../shared/types' +} from '../shared/worktree/launch-types' import type { ProjectExecutionRuntimeResolution } from '../shared/project-execution-runtime' import type { SetupRunnerShell } from '../shared/setup-runner-command' diff --git a/src/main/index.ts b/src/main/index.ts index 6b7cafa79e4..2e816ba4c89 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -109,7 +109,7 @@ import { resolveUpdateInstallMode } from './updater' import { configureRemoteServerUpdater } from './runtime/remote-server-updater' -import type { UpdateCheckOptions } from '../shared/types' +import type { UpdateCheckOptions } from '../shared/update-status-types' import { recordUpdaterLifecycle } from './updater-lifecycle-diagnostics' import { installServeSupervisorDisconnectQuit, diff --git a/src/main/ipc/app.ts b/src/main/ipc/app.ts index dfa7fa3d1eb..d976382c288 100644 --- a/src/main/ipc/app.ts +++ b/src/main/ipc/app.ts @@ -5,7 +5,8 @@ import { pathToFileURL } from 'node:url' import { app, BrowserWindow, dialog, ipcMain, type IpcMainInvokeEvent } from 'electron' import { is } from '@electron-toolkit/utils' import type { AppIdentity } from '../../shared/app-identity' -import type { FloatingTerminalCwdRequest, MarkdownDocument } from '../../shared/types' +import type { MarkdownDocument } from '../../shared/filesystem-entry-types' +import type { FloatingTerminalCwdRequest } from '../../shared/ui-chrome-types' import { relaunchApp } from '../app-relaunch' import type { Store } from '../persistence' import { getDevInstanceIdentity } from '../startup/dev-instance-identity' diff --git a/src/main/ipc/browser.ts b/src/main/ipc/browser.ts index 3d2800040ea..88c6e140afa 100644 --- a/src/main/ipc/browser.ts +++ b/src/main/ipc/browser.ts @@ -23,13 +23,13 @@ import type { BrowserExtractHoverResult } from '../../shared/browser-grab-types' import type { - BrowserCookieImportResult, BrowserCertificateProceedResult, + BrowserCookieImportResult, BrowserSessionProfile, BrowserSessionProfileCreateOptions, BrowserSessionProfileScope, BrowserViewportOverride -} from '../../shared/types' +} from '../../shared/browser-workspace-types' import { isValidBrowserAnnotationViewportBridgeMarkers, isValidBrowserAnnotationViewportBridgeToken, diff --git a/src/main/ipc/codex-accounts.ts b/src/main/ipc/codex-accounts.ts index 0c111a5f6d8..f8c81fe0189 100644 --- a/src/main/ipc/codex-accounts.ts +++ b/src/main/ipc/codex-accounts.ts @@ -3,7 +3,7 @@ import type { CodexAccountAddTarget, CodexAccountService } from '../codex-accoun import type { CodexAccountSelectionTarget } from '../codex-accounts/runtime-selection' import { listRecordedCodexPaneLanes } from '../codex/codex-pane-account-registry' import { forgetStaleCodexPanes, listStaleCodexPanes } from '../codex/codex-stale-pane-accounts' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' export function registerCodexAccountHandlers( codexAccounts: CodexAccountService, diff --git a/src/main/ipc/ephemeral-vm-recipe-context.ts b/src/main/ipc/ephemeral-vm-recipe-context.ts index c922d6f13b1..6fa591da9c1 100644 --- a/src/main/ipc/ephemeral-vm-recipe-context.ts +++ b/src/main/ipc/ephemeral-vm-recipe-context.ts @@ -4,7 +4,7 @@ import type { EphemeralVmRecipeDoctorResult } from '../../shared/ephemeral-vm-re import { listEphemeralVmRuntimes } from '../../shared/ephemeral-vm-runtime-store' import type { EphemeralVmRuntimeRecord } from '../../shared/ephemeral-vm-runtimes' import { isFolderRepo, isGitRepoKind } from '../../shared/repo-kind' -import type { OrcaVmRecipe } from '../../shared/types' +import type { OrcaVmRecipe } from '../../shared/orca-yaml-hook-types' export type EphemeralVmRecipeListResult = { status: 'ok' | 'error' diff --git a/src/main/ipc/filesystem-auth.test.ts b/src/main/ipc/filesystem-auth.test.ts index c6fa78b126d..396337a01c8 100644 --- a/src/main/ipc/filesystem-auth.test.ts +++ b/src/main/ipc/filesystem-auth.test.ts @@ -6,7 +6,10 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type { Store } from '../persistence' import type * as RepoWorktrees from '../repo-worktrees' import { listRepoWorktrees } from '../repo-worktrees' -import type { FolderWorkspace, GitWorktreeInfo, ProjectGroup, Repo } from '../../shared/types' +import type { FolderWorkspace } from '../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../shared/project-group-types' +import type { Repo } from '../../shared/repo-types' +import type { GitWorktreeInfo } from '../../shared/worktree/types' import { AUTHORIZED_EXTERNAL_PATHS_MAX, authorizeExternalPath, diff --git a/src/main/ipc/filesystem-auth.ts b/src/main/ipc/filesystem-auth.ts index b172c2c1894..fb93ac7f8d7 100644 --- a/src/main/ipc/filesystem-auth.ts +++ b/src/main/ipc/filesystem-auth.ts @@ -7,7 +7,9 @@ import { isRepoRoot, listRepoWorktrees } from '../repo-worktrees' import { computeWorkspaceRoot, getWorktreePathSettings } from './worktree-logic' import { isPathInsideOrEqual } from '../../shared/cross-platform-path' import { getProjectGroupSubtreeIds } from '../../shared/project-groups' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../shared/types' +import type { FolderWorkspace } from '../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../shared/project-group-types' +import type { Repo } from '../../shared/repo-types' export const PATH_ACCESS_DENIED_MESSAGE = 'Access denied: path resolves outside allowed directories. If this blocks a legitimate workflow, please file a GitHub issue.' diff --git a/src/main/ipc/filesystem-search-git.ts b/src/main/ipc/filesystem-search-git.ts index e997ddd2e02..0bff6336f66 100644 --- a/src/main/ipc/filesystem-search-git.ts +++ b/src/main/ipc/filesystem-search-git.ts @@ -1,4 +1,4 @@ -import type { SearchOptions, SearchResult } from '../../shared/types' +import type { SearchOptions, SearchResult } from '../../shared/code-search-types' import { buildGitGrepArgs, buildSubmatchRegex, diff --git a/src/main/ipc/filesystem-watcher-large-batch.test.ts b/src/main/ipc/filesystem-watcher-large-batch.test.ts index e605cd6167c..cfb99c217c1 100644 --- a/src/main/ipc/filesystem-watcher-large-batch.test.ts +++ b/src/main/ipc/filesystem-watcher-large-batch.test.ts @@ -32,7 +32,7 @@ import { closeAllWatchers, registerFilesystemWatcherHandlers } from './filesyste import { stat } from 'node:fs/promises' import { subscribe as subscribeParcelWatcher } from '@parcel/watcher' import type { Event as WatcherEvent } from '@parcel/watcher' -import type { FsChangedPayload } from '../../shared/types' +import type { FsChangedPayload } from '../../shared/filesystem-entry-types' import { WATCH_BATCH_MAX_WAIT_MS, WATCH_BATCH_TRAILING_MS diff --git a/src/main/ipc/filesystem-watcher-remote-batch.test.ts b/src/main/ipc/filesystem-watcher-remote-batch.test.ts index 8666a40c906..befc9a194e2 100644 --- a/src/main/ipc/filesystem-watcher-remote-batch.test.ts +++ b/src/main/ipc/filesystem-watcher-remote-batch.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { FsChangeEvent } from '../../shared/types' +import type { FsChangeEvent } from '../../shared/filesystem-entry-types' const { handleMock, getSshFilesystemProviderMock, providerRegistrationListeners } = vi.hoisted( () => ({ diff --git a/src/main/ipc/filesystem-watcher.ts b/src/main/ipc/filesystem-watcher.ts index 571f6c46b3a..0a337967386 100644 --- a/src/main/ipc/filesystem-watcher.ts +++ b/src/main/ipc/filesystem-watcher.ts @@ -3,7 +3,7 @@ import { ipcMain, type WebContents } from 'electron' import * as path from 'node:path' import { stat } from 'node:fs/promises' import type { Event as WatcherEvent } from '@parcel/watcher' -import type { FsChangeEvent, FsChangedPayload } from '../../shared/types' +import type { FsChangeEvent, FsChangedPayload } from '../../shared/filesystem-entry-types' import { isWindowsAbsolutePathLike, normalizeRuntimePathForComparison diff --git a/src/main/ipc/filesystem.ts b/src/main/ipc/filesystem.ts index 44239bdac74..2a5111e5d13 100644 --- a/src/main/ipc/filesystem.ts +++ b/src/main/ipc/filesystem.ts @@ -9,25 +9,24 @@ import { awaitWindowsHostGitEnvironmentReady, gitExecFileAsync, wslAwareSpawn } import { parseWslPath, toWindowsWslPath } from '../wsl' import { tryDeleteWslUncPath } from '../wsl-unc-delete' import type { Store } from '../persistence' +import type { SearchOptions, SearchResult } from '../../shared/code-search-types' +import type { DirEntry, MarkdownDocument } from '../../shared/filesystem-entry-types' import type { - DirEntry, GitBranchCompareResult, GitCommitCompareResult, + GitDiffResult +} from '../../shared/git-diff-compare-types' +import type { GitForkSyncExpectedUpstream, GitForkSyncResult } from '../../shared/git-fork-sync' +import type { GitConflictOperation, - GitDiffResult, - GitForkSyncExpectedUpstream, - GitForkSyncResult, - GlobalSettings, GitStagingArea, - GitPushTarget, - GitUpstreamStatus, GitStatusResult, - MarkdownDocument, - SearchOptions, - SearchResult, - Repo, - TuiAgent -} from '../../shared/types' + GitUpstreamStatus +} from '../../shared/git-status-types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' +import type { TuiAgent } from '../../shared/tui-agent' +import type { GitPushTarget } from '../../shared/worktree/types' import type { GitHistoryOptions, GitHistoryResult } from '../../shared/git-history' import type { SshMutationExpectation } from '../../shared/ssh-types' import { sortDirEntries } from '../../shared/file-name-sort' diff --git a/src/main/ipc/floating-workspace-directory.test.ts b/src/main/ipc/floating-workspace-directory.test.ts index 335bf1e96bc..2b372586cf1 100644 --- a/src/main/ipc/floating-workspace-directory.test.ts +++ b/src/main/ipc/floating-workspace-directory.test.ts @@ -2,7 +2,7 @@ import { mkdtemp, mkdir, realpath, rm, symlink, unlink } from 'node:fs/promises' import os from 'node:os' import path from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' const { appGetPathMock, authorizeExternalPathMock } = vi.hoisted(() => ({ appGetPathMock: vi.fn(), diff --git a/src/main/ipc/floating-workspace-directory.ts b/src/main/ipc/floating-workspace-directory.ts index bf1373e9f50..9e5f7d34cb7 100644 --- a/src/main/ipc/floating-workspace-directory.ts +++ b/src/main/ipc/floating-workspace-directory.ts @@ -2,7 +2,8 @@ import { constants as fsConstants } from 'node:fs' import { access, mkdir, realpath, stat } from 'node:fs/promises' import path from 'node:path' import { app } from 'electron' -import type { GlobalSettings, FloatingTerminalCwdRequest } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { FloatingTerminalCwdRequest } from '../../shared/ui-chrome-types' import type { Store } from '../persistence' import { authorizeExternalPath } from './filesystem-auth' diff --git a/src/main/ipc/github-work-item-args.ts b/src/main/ipc/github-work-item-args.ts index 0aff921ee24..2497c8e93f9 100644 --- a/src/main/ipc/github-work-item-args.ts +++ b/src/main/ipc/github-work-item-args.ts @@ -1,5 +1,5 @@ import type { TaskSourceContext } from '../../shared/task-source-context' -import type { IssueSourcePreference } from '../../shared/types' +import type { IssueSourcePreference } from '../../shared/repo-types' export type WorkItemArgs = { repoPath: string diff --git a/src/main/ipc/github.ts b/src/main/ipc/github.ts index eda32115b19..36516790446 100644 --- a/src/main/ipc/github.ts +++ b/src/main/ipc/github.ts @@ -4,19 +4,20 @@ reviewable as one surface. Splitting by feature area would risk drifting validation/gate conventions across handler files. */ import { ipcMain } from 'electron' import { resolve } from 'node:path' +import type { GitHubReactionContent } from '../../shared/github/comment-types' import type { - Repo, - GitHubCreateIssueFields, - GitHubIssueUpdate, - GitHubOwnerRepo, - GitHubPullRequestStateUpdate, GitHubPRRefreshCandidate, GitHubPRRefreshEnqueueResult, GitHubPRRefreshReason, - GitHubReactionContent, - PRRefreshOutcome, - GitHubPRFile -} from '../../shared/types' + PRRefreshOutcome +} from '../../shared/github/pull-request-refresh-types' +import type { GitHubOwnerRepo, GitHubPRFile } from '../../shared/github/pull-request-types' +import type { + GitHubCreateIssueFields, + GitHubIssueUpdate, + GitHubPullRequestStateUpdate +} from '../../shared/issue-mutation-types' +import type { Repo } from '../../shared/repo-types' import { getRepoExecutionHostId } from '../../shared/execution-host' import type { TaskSourceContext } from '../../shared/task-source-context' import type { Store } from '../persistence' diff --git a/src/main/ipc/gitlab.test.ts b/src/main/ipc/gitlab.test.ts index 2ff888a7bd8..87a298e56aa 100644 --- a/src/main/ipc/gitlab.test.ts +++ b/src/main/ipc/gitlab.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type { Store } from '../persistence' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import { toSshExecutionHostId } from '../../shared/execution-host' const ORIGINAL_PLATFORM = process.platform diff --git a/src/main/ipc/gitlab.ts b/src/main/ipc/gitlab.ts index e68c4b8f6d8..cc668841038 100644 --- a/src/main/ipc/gitlab.ts +++ b/src/main/ipc/gitlab.ts @@ -8,9 +8,9 @@ import type { GitLabIssueUpdate, GitLabMRInlineCommentInput, GitLabMRUpdate, - GitLabWorkItem, - Repo -} from '../../shared/types' + GitLabWorkItem +} from '../../shared/gitlab-types' +import type { Repo } from '../../shared/repo-types' import { getRepoExecutionHostId } from '../../shared/execution-host' import type { TaskSourceContext } from '../../shared/task-source-context' import type { Store } from '../persistence' diff --git a/src/main/ipc/hosted-review.ts b/src/main/ipc/hosted-review.ts index 736668e1f0d..119647d9957 100644 --- a/src/main/ipc/hosted-review.ts +++ b/src/main/ipc/hosted-review.ts @@ -6,7 +6,7 @@ import type { HostedReviewCreationEligibilityArgs, HostedReviewForBranchArgs } from '../../shared/hosted-review' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import type { Store } from '../persistence' import type { StatsCollector } from '../stats/collector' import { diff --git a/src/main/ipc/jira.ts b/src/main/ipc/jira.ts index c8edc638a3b..b7faa6fd333 100644 --- a/src/main/ipc/jira.ts +++ b/src/main/ipc/jira.ts @@ -25,7 +25,7 @@ import type { JiraIssueFilter, JiraIssueUpdate, JiraSiteSelection -} from '../../shared/types' +} from '../../shared/jira-types' const VALID_FILTERS = new Set(['assigned', 'reported', 'all', 'done']) const issueSummaryRequests = new JiraCancellableRequests() diff --git a/src/main/ipc/linear.ts b/src/main/ipc/linear.ts index 0905c691f4c..dd64a777ab4 100644 --- a/src/main/ipc/linear.ts +++ b/src/main/ipc/linear.ts @@ -26,11 +26,9 @@ import { listTeams, getTeamStates, getTeamLabels, getTeamMembers } from '../line import type { LinearListFilter } from '../linear/issues' import { clampLinearIssueListLimit } from '../../shared/linear/issue-read-limits' import { optionalParsedLinearIssueAttributeFilter } from '../../shared/linear/issue-attribute-filter' -import type { - LinearCustomViewModel, - LinearIssueUpdate, - LinearWorkspaceSelection -} from '../../shared/types' +import type { LinearIssueUpdate } from '../../shared/issue-mutation-types' +import type { LinearCustomViewModel } from '../../shared/linear/project-types' +import type { LinearWorkspaceSelection } from '../../shared/linear/workspace-types' const VALID_FILTERS = new Set(['assigned', 'created', 'all', 'completed']) diff --git a/src/main/ipc/local-worktree-runtime-options.ts b/src/main/ipc/local-worktree-runtime-options.ts index f9850a7a399..d0d1a67e3cd 100644 --- a/src/main/ipc/local-worktree-runtime-options.ts +++ b/src/main/ipc/local-worktree-runtime-options.ts @@ -5,7 +5,7 @@ import { type LocalProjectWorktreeGitOptions } from '../project-runtime-git-options' import { splitWorktreeId } from '../../shared/worktree/id' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' function comparableLocalPath(value: string): string { const normalized = resolve(value) diff --git a/src/main/ipc/markdown-documents.ts b/src/main/ipc/markdown-documents.ts index 713adc9e0fb..38466da6087 100644 --- a/src/main/ipc/markdown-documents.ts +++ b/src/main/ipc/markdown-documents.ts @@ -1,6 +1,6 @@ import { readdir } from 'node:fs/promises' import { basename as pathBasename, extname, isAbsolute, join, relative, resolve } from 'node:path' -import type { MarkdownDocument } from '../../shared/types' +import type { MarkdownDocument } from '../../shared/filesystem-entry-types' function normalizeRelativePath(path: string): string { return path.replace(/[\\/]+/g, '/').replace(/^\/+/, '') diff --git a/src/main/ipc/memory.ts b/src/main/ipc/memory.ts index 1c57d4d6fe3..f8bf96c1967 100644 --- a/src/main/ipc/memory.ts +++ b/src/main/ipc/memory.ts @@ -1,5 +1,5 @@ import { ipcMain } from 'electron' -import type { MemorySnapshot } from '../../shared/types' +import type { MemorySnapshot } from '../../shared/process-stats-types' import type { Store } from '../persistence' import { collectMemorySnapshot } from '../memory/collector' diff --git a/src/main/ipc/notification-options.ts b/src/main/ipc/notification-options.ts index 1213e8f1d92..a2553f05a3c 100644 --- a/src/main/ipc/notification-options.ts +++ b/src/main/ipc/notification-options.ts @@ -1,4 +1,4 @@ -import type { NotificationDispatchRequest } from '../../shared/types' +import type { NotificationDispatchRequest } from '../../shared/notification-settings-types' const NOTIFICATION_AGENT_LABEL_MAX_LENGTH = 40 const NOTIFICATION_TITLE_CONTEXT_MAX_LENGTH = 80 diff --git a/src/main/ipc/notifications.ts b/src/main/ipc/notifications.ts index 031cdf63378..26d87f8f323 100644 --- a/src/main/ipc/notifications.ts +++ b/src/main/ipc/notifications.ts @@ -14,13 +14,13 @@ import twoToneSoundPath from '../../../resources/notification-sounds/two-tone.mp import type { Store } from '../persistence' import type { NotificationDeliveryProbeResult, + NotificationDismissResult, NotificationDispatchRequest, NotificationDispatchResult, - NotificationDismissResult, NotificationPermissionStatusResult, NotificationSettings, NotificationSoundDataResult -} from '../../shared/types' +} from '../../shared/notification-settings-types' import { getRepoIdFromWorktreeId } from '../../shared/worktree/id' import type { OrcaRuntimeService } from '../runtime/orca-runtime' import { buildNotificationOptions } from './notification-options' diff --git a/src/main/ipc/onboarding.ts b/src/main/ipc/onboarding.ts index c5449d6a80b..840f2fc695f 100644 --- a/src/main/ipc/onboarding.ts +++ b/src/main/ipc/onboarding.ts @@ -1,6 +1,6 @@ import { ipcMain } from 'electron' import { sanitizeOnboardingUpdate, type Store } from '../persistence' -import type { OnboardingState } from '../../shared/types' +import type { OnboardingState } from '../../shared/onboarding-state-types' export function registerOnboardingHandlers(store: Store): void { ipcMain.removeHandler('onboarding:get') diff --git a/src/main/ipc/pet-bundle.ts b/src/main/ipc/pet-bundle.ts index 1b701a7a105..6a07647cfae 100644 --- a/src/main/ipc/pet-bundle.ts +++ b/src/main/ipc/pet-bundle.ts @@ -1,4 +1,4 @@ -import type { SpriteAnimation } from '../../shared/types' +import type { SpriteAnimation } from '../../shared/pet-types' import { CODEX_PET_ANIMATIONS, CODEX_PET_DEFAULT_ANIMATION, diff --git a/src/main/ipc/pet.test.ts b/src/main/ipc/pet.test.ts index 5e857bb1244..64e5126eedd 100644 --- a/src/main/ipc/pet.test.ts +++ b/src/main/ipc/pet.test.ts @@ -39,7 +39,7 @@ vi.mock('electron', () => ({ })) import { registerPetHandlers } from './pet' -import type { CustomPet } from '../../shared/types' +import type { CustomPet } from '../../shared/pet-types' describe('registerPetHandlers', () => { let tempDir: string diff --git a/src/main/ipc/pet.ts b/src/main/ipc/pet.ts index df48249f001..8b10079ba0e 100644 --- a/src/main/ipc/pet.ts +++ b/src/main/ipc/pet.ts @@ -6,7 +6,7 @@ import { pipeline } from 'node:stream/promises' import { randomUUID } from 'node:crypto' import { basename, dirname, extname, isAbsolute, join, normalize, resolve, sep } from 'node:path' import { z } from 'zod' -import type { CustomPet } from '../../shared/types' +import type { CustomPet } from '../../shared/pet-types' import { applyCodexPetDefaults, readWebpDimensionsFromBuffer, diff --git a/src/main/ipc/preflight.ts b/src/main/ipc/preflight.ts index 5619495c1cf..dc125b7a9a5 100644 --- a/src/main/ipc/preflight.ts +++ b/src/main/ipc/preflight.ts @@ -1,5 +1,8 @@ import { ipcMain } from 'electron' -import type { PathSource, ShellHydrationFailureReason } from '../../shared/types' +import type { + PathSource, + ShellHydrationFailureReason +} from '../../shared/shell-path-hydration-types' import { hydrateShellPath, mergePathSegments } from '../startup/hydrate-shell-path' import { getAzureDevOpsAuthStatus } from '../azure-devops/client' import { getBitbucketAuthStatus } from '../bitbucket/client' diff --git a/src/main/ipc/pty-hidden-delivery-gate.ts b/src/main/ipc/pty-hidden-delivery-gate.ts index 43fa8567b88..0b199d0d1ab 100644 --- a/src/main/ipc/pty-hidden-delivery-gate.ts +++ b/src/main/ipc/pty-hidden-delivery-gate.ts @@ -9,7 +9,7 @@ * bytes (dispatcher sidecars) registers delivery * interest, which suppresses the gate for that PTY. */ -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' export type HiddenPtyDeliveryGateSettings = Pick< GlobalSettings, diff --git a/src/main/ipc/pty.test.ts b/src/main/ipc/pty.test.ts index 88306e95a0d..5c1516679d1 100644 --- a/src/main/ipc/pty.test.ts +++ b/src/main/ipc/pty.test.ts @@ -11,7 +11,7 @@ import { import { CLIPBOARD_TEXT_MEASURE_YIELD_CODE_UNITS } from '../../shared/clipboard-text' import { redactPtyIdForDiagnostics } from '../../shared/pty-delivery-diagnostics' import { FLOATING_TERMINAL_WORKTREE_ID, getDefaultWorkspaceSession } from '../../shared/constants' -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' import type { AgentSessionOwnerBinding } from '../../shared/agent-session-host-authority' import { AGENT_SESSION_CLAIM_DIGEST_VERSION } from '../../shared/agent-session-host-authority' import { PtyWriteUnavailableError } from '../providers/pty-write-unavailable-error' diff --git a/src/main/ipc/pty.ts b/src/main/ipc/pty.ts index 680bc78b4ec..6c38d513859 100644 --- a/src/main/ipc/pty.ts +++ b/src/main/ipc/pty.ts @@ -15,7 +15,8 @@ export { getBashShellReadyRcfileContent } from '../providers/local-pty-shell-rea import type { OrcaRuntimeService } from '../runtime/orca-runtime' import type { PtyBindingSourceExpectation, Store } from '../persistence' import { retireTerminalSurfaceFromPersistence } from '../runtime/mobile-session-terminal-persistence-retirement' -import type { GlobalSettings, TuiAgent } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { TuiAgent } from '../../shared/tui-agent' import { toSshExecutionHostId } from '../../shared/execution-host' import { normalizeRuntimePathForComparison } from '../../shared/cross-platform-path' import { terminalOutputBacklogCapChars } from '../../shared/terminal-scrollback-policy' diff --git a/src/main/ipc/remote-watcher-event-batch.test.ts b/src/main/ipc/remote-watcher-event-batch.test.ts index 19e946d4007..99f7afee014 100644 --- a/src/main/ipc/remote-watcher-event-batch.test.ts +++ b/src/main/ipc/remote-watcher-event-batch.test.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { FsChangeEvent } from '../../shared/types' +import type { FsChangeEvent } from '../../shared/filesystem-entry-types' import { createRemoteWatcherEventBatch } from './remote-watcher-event-batch' const ROOT = '/home/u/repo' diff --git a/src/main/ipc/remote-watcher-event-batch.ts b/src/main/ipc/remote-watcher-event-batch.ts index 713c6068032..85e78d2045e 100644 --- a/src/main/ipc/remote-watcher-event-batch.ts +++ b/src/main/ipc/remote-watcher-event-batch.ts @@ -1,4 +1,4 @@ -import type { FsChangeEvent } from '../../shared/types' +import type { FsChangeEvent } from '../../shared/filesystem-entry-types' import { isWindowsAbsolutePathLike, normalizeRuntimePathForComparison diff --git a/src/main/ipc/remote-workspace-patch-queue.test.ts b/src/main/ipc/remote-workspace-patch-queue.test.ts index 1c97ad6b724..5ce4ac6b0b1 100644 --- a/src/main/ipc/remote-workspace-patch-queue.test.ts +++ b/src/main/ipc/remote-workspace-patch-queue.test.ts @@ -6,7 +6,7 @@ import type { RemoteWorkspaceSnapshot } from '../../shared/remote-workspace-types' import type { SshTarget } from '../../shared/ssh-types' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' const { getActiveMultiplexerMock, diff --git a/src/main/ipc/remote-workspace.test.ts b/src/main/ipc/remote-workspace.test.ts index 6da587ac86c..38dc15c4af7 100644 --- a/src/main/ipc/remote-workspace.test.ts +++ b/src/main/ipc/remote-workspace.test.ts @@ -6,7 +6,7 @@ import type { RemoteWorkspaceSnapshot } from '../../shared/remote-workspace-types' import type { SshTarget } from '../../shared/ssh-types' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' const { getActiveMultiplexerMock, diff --git a/src/main/ipc/remote-workspace.ts b/src/main/ipc/remote-workspace.ts index 361f66bb21f..1e6e402e3bc 100644 --- a/src/main/ipc/remote-workspace.ts +++ b/src/main/ipc/remote-workspace.ts @@ -14,7 +14,7 @@ import type { RemoteWorkspaceSnapshot } from '../../shared/remote-workspace-types' import type { SshTarget } from '../../shared/ssh-types' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { getRepoIdFromWorktreeId } from '../../shared/worktree/id' import { getRemoteWorkspaceNamespace } from './remote-workspace-namespace' import { registerRemoteWorkspaceNotificationHandler } from './remote-workspace-events' diff --git a/src/main/ipc/renderer-shutdown-checkpoint.ts b/src/main/ipc/renderer-shutdown-checkpoint.ts index 121ff86b2e3..1e5df10f1a2 100644 --- a/src/main/ipc/renderer-shutdown-checkpoint.ts +++ b/src/main/ipc/renderer-shutdown-checkpoint.ts @@ -1,6 +1,7 @@ import { ipcMain } from 'electron' import type { ExecutionHostId } from '../../shared/execution-host' -import type { PersistedUIState, WorkspaceSessionState } from '../../shared/types' +import type { PersistedUIState } from '../../shared/persisted-ui-state-types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import type { Store } from '../persistence' type StageBeforeUnloadSyncArgs = { diff --git a/src/main/ipc/repos-add-linked-worktree.test.ts b/src/main/ipc/repos-add-linked-worktree.test.ts index d6880848850..cdcaffd8357 100644 --- a/src/main/ipc/repos-add-linked-worktree.test.ts +++ b/src/main/ipc/repos-add-linked-worktree.test.ts @@ -8,7 +8,7 @@ */ import { describe, expect, it, vi, beforeEach } from 'vitest' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' const { handleMock, diff --git a/src/main/ipc/repos-sparse-presets.test.ts b/src/main/ipc/repos-sparse-presets.test.ts index 049db10c5e3..5b52fbca393 100644 --- a/src/main/ipc/repos-sparse-presets.test.ts +++ b/src/main/ipc/repos-sparse-presets.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type * as CryptoModule from 'node:crypto' -import type { SparsePreset } from '../../shared/types' +import type { SparsePreset } from '../../shared/worktree/create-types' const { handleMock, randomUUIDMock, mockStore } = vi.hoisted(() => ({ handleMock: vi.fn(), diff --git a/src/main/ipc/repos.ts b/src/main/ipc/repos.ts index 97d31dc36bf..edb9cded4da 100644 --- a/src/main/ipc/repos.ts +++ b/src/main/ipc/repos.ts @@ -6,14 +6,14 @@ import { homedir } from 'node:os' import { z } from 'zod' import type { Store } from '../persistence' import type { OrcaRuntimeService } from '../runtime/orca-runtime' +import type { FolderWorkspace } from '../../shared/folder-workspace-types' import type { - BaseRefSearchResult, - Project, - Repo, + NestedRepoScanResult, ProjectGroup, - FolderWorkspace, - ProjectGroupImportResult, - ProjectUpdateArgs, + ProjectGroupImportResult +} from '../../shared/project-group-types' +import type { + Project, ProjectHostSetupCreateArgs, ProjectHostSetupCreateResult, ProjectHostSetupDeleteArgs, @@ -22,10 +22,10 @@ import type { ProjectHostSetupResult, ProjectHostSetupUpdateArgs, ProjectHostSetupUpdateResult, - NestedRepoScanResult, - BaseRefDefaultResult, - SparsePreset -} from '../../shared/types' + ProjectUpdateArgs +} from '../../shared/project-types' +import type { BaseRefDefaultResult, BaseRefSearchResult, Repo } from '../../shared/repo-types' +import type { SparsePreset } from '../../shared/worktree/create-types' import type { FolderWorkspacePathStatusRequest } from '../../shared/folder-workspace-path-status' import { isFolderRepo } from '../../shared/repo-kind' import { DEFAULT_REPO_BADGE_COLOR } from '../../shared/constants' diff --git a/src/main/ipc/session.ts b/src/main/ipc/session.ts index 98015aa64a7..7c70acb4f45 100644 --- a/src/main/ipc/session.ts +++ b/src/main/ipc/session.ts @@ -1,6 +1,9 @@ import { ipcMain } from 'electron' import type { Store } from '../persistence' -import type { WorkspaceSessionPatch, WorkspaceSessionState } from '../../shared/types' +import type { + WorkspaceSessionPatch, + WorkspaceSessionState +} from '../../shared/workspace-session-state-types' export function registerSessionHandlers(store: Store): void { // Why: hostId is an optional second arg so an older renderer that invokes diff --git a/src/main/ipc/settings.ts b/src/main/ipc/settings.ts index 98e918300ab..ddf9272240b 100644 --- a/src/main/ipc/settings.ts +++ b/src/main/ipc/settings.ts @@ -1,6 +1,7 @@ import { app, BrowserWindow, ipcMain, nativeTheme } from 'electron' import type { Store } from '../persistence' -import type { GlobalSettings, PersistedState } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { PersistedState } from '../../shared/persisted-state-types' import { listSystemFontFamilies } from '../system-fonts' import { previewGhosttyImport } from '../ghostty/index' import { previewWarpThemeImport } from '../warp-themes' diff --git a/src/main/ipc/source-control-ai-linked-issue.ts b/src/main/ipc/source-control-ai-linked-issue.ts index aa0696dd913..bd8a28d075b 100644 --- a/src/main/ipc/source-control-ai-linked-issue.ts +++ b/src/main/ipc/source-control-ai-linked-issue.ts @@ -1,7 +1,7 @@ import { resolve } from 'node:path' import type { Store } from '../persistence' import { isLinkedIssueNumber } from '../../shared/source-control-ai-action-variables' -import type { WorktreeMeta } from '../../shared/types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' import { splitWorktreeIdForFilesystem } from '../../shared/worktree/id' export type LinkedIssueLookupArgs = { diff --git a/src/main/ipc/ssh-browse.ts b/src/main/ipc/ssh-browse.ts index f2a779ee412..c7270e50b03 100644 --- a/src/main/ipc/ssh-browse.ts +++ b/src/main/ipc/ssh-browse.ts @@ -2,7 +2,7 @@ import { ipcMain } from 'electron' import type { SshConnectionManager } from '../ssh/ssh-connection-manager' import type { SshExecOptions } from '../ssh/ssh-connection-utils' import { powerShellCommand, powerShellLiteral } from '../ssh/ssh-remote-powershell' -import type { FilesystemPathFlavor } from '../../shared/types' +import type { FilesystemPathFlavor } from '../../shared/filesystem-entry-types' import { sortDirEntries } from '../../shared/file-name-sort' export type RemoteDirEntry = { diff --git a/src/main/ipc/telemetry.test.ts b/src/main/ipc/telemetry.test.ts index 2645d98dff5..9b28270551a 100644 --- a/src/main/ipc/telemetry.test.ts +++ b/src/main/ipc/telemetry.test.ts @@ -1,7 +1,7 @@ // Telemetry IPC boundary tests: the renderer is in the threat model, so handlers drop malformed calls, cap consent mutations, and derive `via` main-side. import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import type { Store } from '../persistence' const handlers = new Map unknown>() diff --git a/src/main/ipc/ui.ts b/src/main/ipc/ui.ts index 8d2abe92d84..0e967381160 100644 --- a/src/main/ipc/ui.ts +++ b/src/main/ipc/ui.ts @@ -1,6 +1,6 @@ import { BrowserWindow, ipcMain, webContents, type WebContents } from 'electron' import type { Store } from '../persistence' -import type { PersistedUIState } from '../../shared/types' +import type { PersistedUIState } from '../../shared/persisted-ui-state-types' import { isFeatureInteractionId } from '../../shared/feature-interactions' let trustedUIRendererWebContentsId: number | null = null diff --git a/src/main/ipc/workspace-cleanup-activity.test.ts b/src/main/ipc/workspace-cleanup-activity.test.ts index bfb1c080db3..a7d1e980266 100644 --- a/src/main/ipc/workspace-cleanup-activity.test.ts +++ b/src/main/ipc/workspace-cleanup-activity.test.ts @@ -1,6 +1,7 @@ import path from 'node:path' import { describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' +import type { Worktree } from '../../shared/worktree/types' import { resolveWorkspaceCleanupActivityWorktree } from './workspace-cleanup-activity' const REPO: Repo = { diff --git a/src/main/ipc/workspace-cleanup-activity.ts b/src/main/ipc/workspace-cleanup-activity.ts index 56ac36f6b29..93a6b5673cd 100644 --- a/src/main/ipc/workspace-cleanup-activity.ts +++ b/src/main/ipc/workspace-cleanup-activity.ts @@ -1,6 +1,7 @@ import { lstat, readFile } from 'node:fs/promises' import path from 'node:path' -import type { Repo, Worktree } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' +import type { Worktree } from '../../shared/worktree/types' import { getPersistedWorkspaceCleanupActivityAt } from '../../shared/workspace-cleanup' import { parseWslUncPath } from '../../shared/wsl-paths' import { toWindowsWslPath } from '../wsl' diff --git a/src/main/ipc/workspace-cleanup-candidate.ts b/src/main/ipc/workspace-cleanup-candidate.ts index e25af90964c..d6e93429b8a 100644 --- a/src/main/ipc/workspace-cleanup-candidate.ts +++ b/src/main/ipc/workspace-cleanup-candidate.ts @@ -1,6 +1,7 @@ import type { IGitProvider } from '../providers/types' import { isFolderRepo } from '../../shared/repo-kind' -import type { Repo, Worktree } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' +import type { Worktree } from '../../shared/worktree/types' import { applyWorkspaceCleanupPolicy, createWorkspaceCleanupFingerprint, diff --git a/src/main/ipc/workspace-cleanup-disconnected-ssh.ts b/src/main/ipc/workspace-cleanup-disconnected-ssh.ts index f7128d26827..264e1eac9e2 100644 --- a/src/main/ipc/workspace-cleanup-disconnected-ssh.ts +++ b/src/main/ipc/workspace-cleanup-disconnected-ssh.ts @@ -1,6 +1,7 @@ import { basename } from 'node:path' import type { Store } from '../persistence' -import type { Repo, WorktreeMeta } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' import { applyWorkspaceCleanupPolicy, createWorkspaceCleanupFingerprint, diff --git a/src/main/ipc/workspace-cleanup-git-evidence.ts b/src/main/ipc/workspace-cleanup-git-evidence.ts index 04945327f98..91aca462c7a 100644 --- a/src/main/ipc/workspace-cleanup-git-evidence.ts +++ b/src/main/ipc/workspace-cleanup-git-evidence.ts @@ -1,7 +1,9 @@ import { getStatus } from '../git/status' import { gitExecFileAsync } from '../git/runner' import type { IGitProvider } from '../providers/types' -import type { GitStatusResult, Repo, Worktree } from '../../shared/types' +import type { GitStatusResult } from '../../shared/git-status-types' +import type { Repo } from '../../shared/repo-types' +import type { Worktree } from '../../shared/worktree/types' import type { WorkspaceCleanupBlocker } from '../../shared/workspace-cleanup' import { WORKSPACE_CLEANUP_GIT_READ_TIMEOUT_MS, diff --git a/src/main/ipc/workspace-cleanup-local-git-routing.test.ts b/src/main/ipc/workspace-cleanup-local-git-routing.test.ts index 656b904d0cd..a10085fae77 100644 --- a/src/main/ipc/workspace-cleanup-local-git-routing.test.ts +++ b/src/main/ipc/workspace-cleanup-local-git-routing.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type { Store } from '../persistence' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' const { listRepoWorktreesMock, getLocalProjectWorktreeGitOptionsMock } = vi.hoisted(() => ({ listRepoWorktreesMock: vi.fn(), diff --git a/src/main/ipc/workspace-cleanup-scan-primitives.ts b/src/main/ipc/workspace-cleanup-scan-primitives.ts index 4f0a84c8a86..8b4c5c839b4 100644 --- a/src/main/ipc/workspace-cleanup-scan-primitives.ts +++ b/src/main/ipc/workspace-cleanup-scan-primitives.ts @@ -1,5 +1,5 @@ import { basename } from 'node:path' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import type { WorkspaceCleanupScanError } from '../../shared/workspace-cleanup' export const WORKSPACE_CLEANUP_GIT_READ_TIMEOUT_MS = 8_000 diff --git a/src/main/ipc/workspace-cleanup-scan.ts b/src/main/ipc/workspace-cleanup-scan.ts index 41f94a07814..7072199ffcd 100644 --- a/src/main/ipc/workspace-cleanup-scan.ts +++ b/src/main/ipc/workspace-cleanup-scan.ts @@ -3,7 +3,8 @@ import { listRepoWorktrees, createFolderWorktree } from '../repo-worktrees' import { getSshGitProvider } from '../providers/ssh-git-dispatch' import type { IGitProvider } from '../providers/types' import { isFolderRepo } from '../../shared/repo-kind' -import type { GitWorktreeInfo, Repo, Worktree } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' +import type { GitWorktreeInfo, Worktree } from '../../shared/worktree/types' import { mergeWorktree } from './worktree-logic' import { splitWorktreeId } from '../../shared/worktree/id' import type { diff --git a/src/main/ipc/workspace-cleanup.test.ts b/src/main/ipc/workspace-cleanup.test.ts index 5d5538ca3df..96f0ce821f8 100644 --- a/src/main/ipc/workspace-cleanup.test.ts +++ b/src/main/ipc/workspace-cleanup.test.ts @@ -2,13 +2,11 @@ import path from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { ipcMain } from 'electron' import type { Store } from '../persistence' -import type { - DiffComment, - GitStatusResult, - GitWorktreeInfo, - Repo, - WorktreeMeta -} from '../../shared/types' +import type { DiffComment } from '../../shared/diff-comment-types' +import type { GitStatusResult } from '../../shared/git-status-types' +import type { Repo } from '../../shared/repo-types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' +import type { GitWorktreeInfo } from '../../shared/worktree/types' import type { WorkspaceCleanupScanProgress } from '../../shared/workspace-cleanup' const { diff --git a/src/main/ipc/worktree-base-directory-change-collector.ts b/src/main/ipc/worktree-base-directory-change-collector.ts index c77f12104ee..1f1f37dcedd 100644 --- a/src/main/ipc/worktree-base-directory-change-collector.ts +++ b/src/main/ipc/worktree-base-directory-change-collector.ts @@ -1,4 +1,4 @@ -import type { FsChangeEvent } from '../../shared/types' +import type { FsChangeEvent } from '../../shared/filesystem-entry-types' import { classifyWorktreeBaseChange, type WorktreeBaseWatchTarget diff --git a/src/main/ipc/worktree-base-directory-watch-targets.ts b/src/main/ipc/worktree-base-directory-watch-targets.ts index 1283333ee95..cfa825e09ab 100644 --- a/src/main/ipc/worktree-base-directory-watch-targets.ts +++ b/src/main/ipc/worktree-base-directory-watch-targets.ts @@ -3,7 +3,8 @@ import { realpath, stat } from 'node:fs/promises' import type { Stats } from 'node:fs' import type { Store } from '../persistence' import type { FileStat, IFilesystemProvider } from '../providers/types' -import type { GlobalSettings, Repo } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' import { getRepoExecutionHostId, LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host' import { isFolderRepo } from '../../shared/repo-kind' import { diff --git a/src/main/ipc/worktree-base-directory-watcher.test.ts b/src/main/ipc/worktree-base-directory-watcher.test.ts index d8f58ff8503..9ce0712c9a0 100644 --- a/src/main/ipc/worktree-base-directory-watcher.test.ts +++ b/src/main/ipc/worktree-base-directory-watcher.test.ts @@ -1,6 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { join, sep } from 'node:path' -import type { GlobalSettings, Repo } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' import type { WorktreeBasePollEvent, WorktreeBasePollerOptions diff --git a/src/main/ipc/worktree-common-git-directory.ts b/src/main/ipc/worktree-common-git-directory.ts index 7fb464f3c94..2a334055c17 100644 --- a/src/main/ipc/worktree-common-git-directory.ts +++ b/src/main/ipc/worktree-common-git-directory.ts @@ -1,6 +1,6 @@ import type { Stats } from 'node:fs' import { readFile, stat } from 'node:fs/promises' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import { getRuntimePathBasename, normalizeRuntimePathSeparators, diff --git a/src/main/ipc/worktree-folder-rename-target.ts b/src/main/ipc/worktree-folder-rename-target.ts index 9cdbe7188c2..d471d41b2c7 100644 --- a/src/main/ipc/worktree-folder-rename-target.ts +++ b/src/main/ipc/worktree-folder-rename-target.ts @@ -1,5 +1,5 @@ import { posix } from 'node:path' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { WORKTREE_ID_SEPARATOR } from '../../shared/worktree/id' import { computeWorktreePath } from './worktree-logic' diff --git a/src/main/ipc/worktree-head-identity-reader.ts b/src/main/ipc/worktree-head-identity-reader.ts index e99de115480..0e44376c00b 100644 --- a/src/main/ipc/worktree-head-identity-reader.ts +++ b/src/main/ipc/worktree-head-identity-reader.ts @@ -1,6 +1,6 @@ import { readdir, readFile } from 'node:fs/promises' import { basename, dirname, isAbsolute, join } from 'node:path' -import type { WorktreeHeadIdentity } from '../../shared/types' +import type { WorktreeHeadIdentity } from '../../shared/worktree/types' // Why: the whole point of this reader is replacing `git worktree list` fanout // with bounded metadata-file reads, so head freshness never re-creates the diff --git a/src/main/ipc/worktree-linked-work-item-metadata.ts b/src/main/ipc/worktree-linked-work-item-metadata.ts index e0b4259a2fc..e07e78ddfcb 100644 --- a/src/main/ipc/worktree-linked-work-item-metadata.ts +++ b/src/main/ipc/worktree-linked-work-item-metadata.ts @@ -1,4 +1,5 @@ -import type { Worktree, WorktreeMeta } from '../../shared/types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' +import type { Worktree } from '../../shared/worktree/types' type LinkedWorkItemMetadata = Pick< Worktree, diff --git a/src/main/ipc/worktree-logic.ts b/src/main/ipc/worktree-logic.ts index 45c6cbdff03..5e3878924f2 100644 --- a/src/main/ipc/worktree-logic.ts +++ b/src/main/ipc/worktree-logic.ts @@ -1,5 +1,6 @@ import { resolve, relative, isAbsolute, posix, sep, win32 } from 'node:path' -import type { GlobalSettings, OrcaWorkspaceLayout, Repo } from '../../shared/types' +import type { GlobalSettings, OrcaWorkspaceLayout } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' import { isWindowsAbsolutePathLike, resolveRuntimePath } from '../../shared/cross-platform-path' import { isWslUncPath } from '../../shared/wsl-paths' import { splitWorktreeId } from '../../shared/worktree/id' diff --git a/src/main/ipc/worktree-metadata-merge.ts b/src/main/ipc/worktree-metadata-merge.ts index 6b6accf724f..4fdfe07c72a 100644 --- a/src/main/ipc/worktree-metadata-merge.ts +++ b/src/main/ipc/worktree-metadata-merge.ts @@ -1,5 +1,6 @@ import { basename } from 'node:path' -import type { GitWorktreeInfo, Worktree, WorktreeMeta } from '../../shared/types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' +import type { GitWorktreeInfo, Worktree } from '../../shared/worktree/types' import { DEFAULT_WORKSPACE_STATUS_ID } from '../../shared/workspace-statuses' import { getLinkedWorkItemMetadata } from './worktree-linked-work-item-metadata' import { normalizeWorkspaceCreatorProvenance } from '../../shared/workspace-creator-provenance' diff --git a/src/main/ipc/worktree-push-target-cleanup.test.ts b/src/main/ipc/worktree-push-target-cleanup.test.ts index 24234aaa0ab..b24d98c39f6 100644 --- a/src/main/ipc/worktree-push-target-cleanup.test.ts +++ b/src/main/ipc/worktree-push-target-cleanup.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it, vi, type Mock } from 'vitest' -import type { GitPushTarget, WorktreeMeta } from '../../shared/types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' +import type { GitPushTarget } from '../../shared/worktree/types' import { cleanupUnusedWorktreePushTargetRemoteWithExec, sameGitHubRemoteUrl, diff --git a/src/main/ipc/worktree-push-target-cleanup.ts b/src/main/ipc/worktree-push-target-cleanup.ts index 0fd1faf10ad..2bda01c5a89 100644 --- a/src/main/ipc/worktree-push-target-cleanup.ts +++ b/src/main/ipc/worktree-push-target-cleanup.ts @@ -4,7 +4,7 @@ // the multi-fork cleanup matrix is unit-testable without a real repo. import type { Store } from '../persistence' -import type { GitPushTarget } from '../../shared/types' +import type { GitPushTarget } from '../../shared/worktree/types' import { parseGitHubOwnerRepo } from '../github/gh-utils' import { getRepoIdFromWorktreeId } from '../../shared/worktree/id' import { iterateProcessOutputLines } from '../../shared/process-output-field-scanner' diff --git a/src/main/ipc/worktree-push-target-setup.test.ts b/src/main/ipc/worktree-push-target-setup.test.ts index 429c660e6e9..a93a22bb4be 100644 --- a/src/main/ipc/worktree-push-target-setup.test.ts +++ b/src/main/ipc/worktree-push-target-setup.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi, type Mock } from 'vitest' -import type { GitPushTarget } from '../../shared/types' +import type { GitPushTarget } from '../../shared/worktree/types' import type { GitRemoteExec } from './worktree-push-target-cleanup' import { configureCreatedWorktreePushTargetWithExec, diff --git a/src/main/ipc/worktree-push-target-setup.ts b/src/main/ipc/worktree-push-target-setup.ts index e6a99ab4443..4101055ba65 100644 --- a/src/main/ipc/worktree-push-target-setup.ts +++ b/src/main/ipc/worktree-push-target-setup.ts @@ -4,7 +4,7 @@ // remote-reuse / unique-naming / fetch behavior is unit-testable without a real // repo. The store-aware ownership decision stays with the caller via a predicate. -import type { GitPushTarget } from '../../shared/types' +import type { GitPushTarget } from '../../shared/worktree/types' import { parseGitHubOwnerRepo } from '../github/gh-utils' import type { GitRemoteExec } from './worktree-push-target-cleanup' diff --git a/src/main/ipc/worktree-remote.ts b/src/main/ipc/worktree-remote.ts index 8d9e70481cd..d4d91dcd79b 100644 --- a/src/main/ipc/worktree-remote.ts +++ b/src/main/ipc/worktree-remote.ts @@ -6,21 +6,25 @@ import { posix, win32 } from 'node:path' import { existsSync } from 'node:fs' import { randomUUID } from 'node:crypto' import type { Store } from '../persistence' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' +import type { + LocalBaseRefRefreshResult, + LocalBaseRefUpdateSuggestion +} from '../../shared/worktree/base-ref-drift-types' +import type { + CreateWorktreeArgs, + CreateWorktreeResult, + WorktreeCreateBaseFallback +} from '../../shared/worktree/create-types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' import type { AutomationWorkspaceProvenance, CliWorkspaceProvenance, - CreateWorktreeArgs, - CreateWorktreeResult, GitPushTarget, - GlobalSettings, - LocalBaseRefRefreshResult, - LocalBaseRefUpdateSuggestion, - Repo, Worktree, - WorktreeCreateBaseFallback, - WorktreeHeadIdentity, - WorktreeMeta -} from '../../shared/types' + WorktreeHeadIdentity +} from '../../shared/worktree/types' import { getPRForBranch } from '../github/client' import { listWorktrees, addWorktree, addSparseWorktree } from '../git/worktree' import type { AddWorktreeOptions, AddWorktreeResult } from '../git/worktree' diff --git a/src/main/ipc/worktrees.test.ts b/src/main/ipc/worktrees.test.ts index 02f23bc094a..9e2ae8ea8aa 100644 --- a/src/main/ipc/worktrees.test.ts +++ b/src/main/ipc/worktrees.test.ts @@ -4,7 +4,9 @@ import type * as GitUsernameModule from '../git/git-username' import { lstat, mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join, resolve } from 'node:path' -import type { CreateWorktreeResult, GitWorktreeInfo, Repo, Worktree } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' +import type { CreateWorktreeResult } from '../../shared/worktree/create-types' +import type { GitWorktreeInfo, Worktree } from '../../shared/worktree/types' import type { ProviderRequestId } from '../../shared/detected-worktree-provider-contract' import { LOCAL_EXECUTION_HOST_ID, toSshExecutionHostId } from '../../shared/execution-host' import * as localWorktreeFilesystem from '../local-worktree-filesystem' diff --git a/src/main/ipc/worktrees.ts b/src/main/ipc/worktrees.ts index e56dd3cc13d..32c85af85a0 100644 --- a/src/main/ipc/worktrees.ts +++ b/src/main/ipc/worktrees.ts @@ -17,26 +17,27 @@ import { getProjectGroupSubtreeIds } from '../../shared/project-groups' import { projectResolvedWorktreeLineage } from '../../shared/resolved-worktree-lineage' import { isPathInsideOrEqual, isWindowsAbsolutePathLike } from '../../shared/cross-platform-path' import { deleteWorktreeHistoryDir } from '../terminal-history-deletion' +import type { OrcaHooks } from '../../shared/orca-yaml-hook-types' +import type { Repo } from '../../shared/repo-types' import type { - AutomationWorkspaceProvenance, AdoptProvisionedRootArgs, - CliWorkspaceProvenance, CreateWorktreeArgs, CreateWorktreeResult, + ForceDeleteWorktreeBranchResult, + RemoveWorktreeResult +} from '../../shared/worktree/create-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../shared/worktree/lineage-types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' +import type { + AutomationWorkspaceProvenance, + CliWorkspaceProvenance, DetectedWorktree, DetectedWorktreeListResult, - ForceDeleteWorktreeBranchResult, GitHubPrStartPoint, GitPushTarget, GitWorktreeInfo, - OrcaHooks, - Repo, - RemoveWorktreeResult, - Worktree, - WorktreeLineage, - WorkspaceLineage, - WorktreeMeta -} from '../../shared/types' + Worktree +} from '../../shared/worktree/types' import { assertWorktreeUnlockedForRemoval } from '../../shared/worktree/removal' import { getRepoExecutionHostId, diff --git a/src/main/jira/client.ts b/src/main/jira/client.ts index cd3497fb2be..f9c4e8943c0 100644 --- a/src/main/jira/client.ts +++ b/src/main/jira/client.ts @@ -20,7 +20,7 @@ import type { JiraSite, JiraSiteSelection, JiraViewer -} from '../../shared/types' +} from '../../shared/jira-types' import { clearAttachmentImagesForSite } from './attachment-image-cache' // Why: Atlassian's XSRF filter rejects POST/PUT REST calls that carry a browser diff --git a/src/main/jira/issues.ts b/src/main/jira/issues.ts index e2eade0924e..0629f6abfd3 100644 --- a/src/main/jira/issues.ts +++ b/src/main/jira/issues.ts @@ -20,7 +20,7 @@ import type { JiraStatus, JiraTransition, JiraUser -} from '../../shared/types' +} from '../../shared/jira-types' import { acquire, apiBasePath, diff --git a/src/main/kimi/kimi-runtime-home.test.ts b/src/main/kimi/kimi-runtime-home.test.ts index d56abb658d1..a1977e8d857 100644 --- a/src/main/kimi/kimi-runtime-home.test.ts +++ b/src/main/kimi/kimi-runtime-home.test.ts @@ -9,7 +9,7 @@ vi.mock('../wsl', () => wslMocks) vi.mock('node:os', () => ({ homedir: () => 'C:\\Users\\neil' })) import { getHostKimiHome, getKimiRuntimeTarget, resolveKimiHome } from './kimi-runtime-home' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' function settings(overrides: Partial): GlobalSettings { return overrides as GlobalSettings diff --git a/src/main/kimi/kimi-runtime-home.ts b/src/main/kimi/kimi-runtime-home.ts index 9b0cf799638..709cb755879 100644 --- a/src/main/kimi/kimi-runtime-home.ts +++ b/src/main/kimi/kimi-runtime-home.ts @@ -5,7 +5,7 @@ import { resolveLocalAccountRuntimeTarget, type LocalAccountRuntimeTarget } from '../../shared/local-account-runtime' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { getWslHomeAsync, listWslDistrosAsync } from '../wsl' export type KimiHomeResolution = LocalAccountRuntimeTarget & { diff --git a/src/main/linear/client.ts b/src/main/linear/client.ts index 7058d130597..714fb6c165e 100644 --- a/src/main/linear/client.ts +++ b/src/main/linear/client.ts @@ -17,7 +17,7 @@ import type { LinearViewer, LinearWorkspace, LinearWorkspaceSelection -} from '../../shared/types' +} from '../../shared/linear/workspace-types' // ── Concurrency limiter — max 4 parallel Linear API calls ──────────── const MAX_CONCURRENT = 4 diff --git a/src/main/linear/issue-context-client.ts b/src/main/linear/issue-context-client.ts index 1e3a45bd301..47c2bb219dc 100644 --- a/src/main/linear/issue-context-client.ts +++ b/src/main/linear/issue-context-client.ts @@ -1,6 +1,6 @@ import type { LinearSearchIssueSummary, LinearSearchResult } from '../../shared/linear/agent-access' import { clampLinearSearchLimit } from '../../shared/linear/agent-access' -import type { LinearWorkspace } from '../../shared/types' +import type { LinearWorkspace } from '../../shared/linear/workspace-types' import { acquire, clearToken, diff --git a/src/main/linear/issue-context-current.test.ts b/src/main/linear/issue-context-current.test.ts index fd3804bbe9b..022b75525ff 100644 --- a/src/main/linear/issue-context-current.test.ts +++ b/src/main/linear/issue-context-current.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { LinearWorkspace } from '../../shared/types' +import type { LinearWorkspace } from '../../shared/linear/workspace-types' const { connectedWorkspaces } = vi.hoisted(() => ({ connectedWorkspaces: [] as LinearWorkspace[] diff --git a/src/main/linear/issue-context-fanout.ts b/src/main/linear/issue-context-fanout.ts index c28f03a2c9c..77b6186b37e 100644 --- a/src/main/linear/issue-context-fanout.ts +++ b/src/main/linear/issue-context-fanout.ts @@ -1,5 +1,5 @@ import type { LinearErrorCode, LinearWorkspaceCandidate } from '../../shared/linear/agent-access' -import type { LinearWorkspace } from '../../shared/types' +import type { LinearWorkspace } from '../../shared/linear/workspace-types' import { getClients, getStatus, type LinearClientForWorkspace } from './client' import { LinearAgentAccessError, diff --git a/src/main/linear/issue-context-workspaces.ts b/src/main/linear/issue-context-workspaces.ts index 47ad620a0a3..e1c70d2f37f 100644 --- a/src/main/linear/issue-context-workspaces.ts +++ b/src/main/linear/issue-context-workspaces.ts @@ -1,5 +1,5 @@ import type { LinearWorkspaceCandidate } from '../../shared/linear/agent-access' -import type { LinearWorkspace } from '../../shared/types' +import type { LinearWorkspace } from '../../shared/linear/workspace-types' import { linearError } from './issue-context-errors' export function resolveWorkspaceSelector( diff --git a/src/main/linear/issue-context.test.ts b/src/main/linear/issue-context.test.ts index b88dff4563e..e94c490dbc1 100644 --- a/src/main/linear/issue-context.test.ts +++ b/src/main/linear/issue-context.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type { LinearClientForWorkspace } from './client' -import type { LinearWorkspace } from '../../shared/types' +import type { LinearWorkspace } from '../../shared/linear/workspace-types' const getClients = vi.fn() const getStatus = vi.fn() diff --git a/src/main/linear/issues.ts b/src/main/linear/issues.ts index 301bc66024a..43e9cf7b699 100644 --- a/src/main/linear/issues.ts +++ b/src/main/linear/issues.ts @@ -1,14 +1,13 @@ /* eslint-disable max-lines -- Why: Linear issue reads and mutations share the same workspace fan-out/error handling, so keeping them together avoids drifting auth-clearing behavior between operations. */ +import type { LinearIssueUpdate } from '../../shared/issue-mutation-types' +import type { LinearComment, LinearIssue } from '../../shared/linear/issue-types' import type { - LinearIssue, - LinearIssueUpdate, - LinearComment, LinearCollectionResult, LinearWorkspaceError, LinearWorkspaceSelection -} from '../../shared/types' +} from '../../shared/linear/workspace-types' import type { LinearClient } from '@linear/sdk' import { loadLinearSdk } from './linear-sdk' import { diff --git a/src/main/linear/linear-team-pages.ts b/src/main/linear/linear-team-pages.ts index abc1c485a8b..624f57c6d8e 100644 --- a/src/main/linear/linear-team-pages.ts +++ b/src/main/linear/linear-team-pages.ts @@ -1,4 +1,9 @@ -import type { LinearLabel, LinearMember, LinearTeam, LinearWorkflowState } from '../../shared/types' +import type { + LinearLabel, + LinearMember, + LinearTeam, + LinearWorkflowState +} from '../../shared/linear/workspace-types' import { buildLinearTeamUrl } from '../../shared/linear/links' import type { LinearClientForWorkspace } from './client' diff --git a/src/main/linear/mappers.ts b/src/main/linear/mappers.ts index 7ea55be7fca..026d70400bf 100644 --- a/src/main/linear/mappers.ts +++ b/src/main/linear/mappers.ts @@ -1,5 +1,5 @@ import type { Issue, IssueSearchResult } from '@linear/sdk' -import type { LinearIssue, LinearIssueChildSummary } from '../../shared/types' +import type { LinearIssue, LinearIssueChildSummary } from '../../shared/linear/issue-types' type IssueWithChildren = Issue & { children: Issue['children'] diff --git a/src/main/linear/projects.ts b/src/main/linear/projects.ts index d55d2f6e6a6..5063a87b17c 100644 --- a/src/main/linear/projects.ts +++ b/src/main/linear/projects.ts @@ -1,17 +1,19 @@ /* eslint-disable max-lines -- Why: Linear project and custom-view reads share raw GraphQL selection sets, workspace fan-out, and partial-failure mapping. */ +import type { LinearIssue } from '../../shared/linear/issue-types' +import type { + LinearCustomViewModel, + LinearCustomViewSummary, + LinearProjectDetail, + LinearProjectMemberSummary, + LinearProjectSummary +} from '../../shared/linear/project-types' import type { LinearCollectionResult, LinearConcreteWorkspaceId, - LinearCustomViewModel, - LinearCustomViewSummary, - LinearIssue, - LinearProjectDetail, - LinearProjectMemberSummary, - LinearProjectSummary, LinearWorkspaceError, LinearWorkspaceSelection -} from '../../shared/types' +} from '../../shared/linear/workspace-types' import { LINEAR_ISSUE_API_PAGE_SIZE_MAX, clampLinearIssueListLimit diff --git a/src/main/linear/teams.ts b/src/main/linear/teams.ts index 004c8fbd92a..8a103929b7e 100644 --- a/src/main/linear/teams.ts +++ b/src/main/linear/teams.ts @@ -1,12 +1,12 @@ import type { Team } from '@linear/sdk' import type { - LinearTeam, - LinearWorkflowState, LinearLabel, LinearMember, + LinearTeam, + LinearWorkflowState, LinearWorkspaceError, LinearWorkspaceSelection -} from '../../shared/types' +} from '../../shared/linear/workspace-types' import { acquire, release, getClients, isAuthError, clearToken } from './client' import { fetchAllTeamLabels, diff --git a/src/main/linux-package-install-command.ts b/src/main/linux-package-install-command.ts index 6a0c6d2d526..60a8ecdca00 100644 --- a/src/main/linux-package-install-command.ts +++ b/src/main/linux-package-install-command.ts @@ -1,6 +1,6 @@ import { statSync } from 'node:fs' import path from 'node:path' -import type { LinuxRootPackageType } from '../shared/types' +import type { LinuxRootPackageType } from '../shared/update-status-types' // Why: an absolute but user-writable PATH entry must never be treated as a trusted package manager. const TRUSTED_EXECUTABLE_DIRECTORIES = ['/usr/bin', '/bin', '/usr/sbin', '/sbin'] diff --git a/src/main/linux-package-install-diagnostic.ts b/src/main/linux-package-install-diagnostic.ts index 3d0afd7fdf9..bdef7c5450e 100644 --- a/src/main/linux-package-install-diagnostic.ts +++ b/src/main/linux-package-install-diagnostic.ts @@ -1,5 +1,5 @@ import os from 'node:os' -import type { LinuxPackageInstallFailureReason } from '../shared/types' +import type { LinuxPackageInstallFailureReason } from '../shared/update-status-types' /** The redacted text shown locally, paired with the reason classified from the ORIGINAL output. */ export type LinuxPackageInstallDiagnostic = { diff --git a/src/main/linux-package-update-recovery.test.ts b/src/main/linux-package-update-recovery.test.ts index 1d9bf8d8650..ec2738b823b 100644 --- a/src/main/linux-package-update-recovery.test.ts +++ b/src/main/linux-package-update-recovery.test.ts @@ -4,7 +4,7 @@ import os from 'node:os' import path from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type * as NodeFs from 'node:fs' -import type { LinuxPackageInstallRecovery } from '../shared/types' +import type { LinuxPackageInstallRecovery } from '../shared/update-status-types' import type * as RecoveryModule from './linux-package-update-recovery' const { showItemInFolderMock, getPackageTypeMock, buildCommandMock, hashPasses } = vi.hoisted( diff --git a/src/main/linux-package-update-recovery.ts b/src/main/linux-package-update-recovery.ts index f854b63c5b8..e5269a2077b 100644 --- a/src/main/linux-package-update-recovery.ts +++ b/src/main/linux-package-update-recovery.ts @@ -4,7 +4,10 @@ import fsp from 'node:fs/promises' import os from 'node:os' import path from 'node:path' import { shell } from 'electron' -import type { LinuxPackageInstallRecovery, LinuxRootPackageType } from '../shared/types' +import type { + LinuxPackageInstallRecovery, + LinuxRootPackageType +} from '../shared/update-status-types' import { getLinuxRootPackageType } from './linux-update-package-type' import { buildLinuxPackageInstallCommand } from './linux-package-install-command' diff --git a/src/main/linux-update-package-type.ts b/src/main/linux-update-package-type.ts index c8af66649a5..5acc83a4cf3 100644 --- a/src/main/linux-update-package-type.ts +++ b/src/main/linux-update-package-type.ts @@ -1,7 +1,7 @@ import { readFileSync } from 'node:fs' import path from 'node:path' import { app } from 'electron' -import type { LinuxRootPackageType } from '../shared/types' +import type { LinuxRootPackageType } from '../shared/update-status-types' export type { LinuxRootPackageType } diff --git a/src/main/local-project-runtime-resolution.ts b/src/main/local-project-runtime-resolution.ts index e86a2f31927..6f3e7b57f09 100644 --- a/src/main/local-project-runtime-resolution.ts +++ b/src/main/local-project-runtime-resolution.ts @@ -1,5 +1,6 @@ import type { Store } from './persistence' -import type { Project, Repo } from '../shared/types' +import type { Project } from '../shared/project-types' +import type { Repo } from '../shared/repo-types' import { resolveProjectExecutionRuntime, type ProjectExecutionRuntimeResolution diff --git a/src/main/local-worktree-removal-recovery.ts b/src/main/local-worktree-removal-recovery.ts index 578743029f6..630dd338c20 100644 --- a/src/main/local-worktree-removal-recovery.ts +++ b/src/main/local-worktree-removal-recovery.ts @@ -1,4 +1,5 @@ -import type { GitWorktreeInfo, RemoveWorktreeResult } from '../shared/types' +import type { RemoveWorktreeResult } from '../shared/worktree/create-types' +import type { GitWorktreeInfo } from '../shared/worktree/types' import { assertWorktreeUnlockedForRemoval } from '../shared/worktree/removal' import { areWorktreePathsEqual, formatWorktreeRemovalError } from './ipc/worktree-logic' import { gitExecFileAsync } from './git/runner' diff --git a/src/main/memory/collector.ts b/src/main/memory/collector.ts index c1fe58989ad..1f000706c1e 100644 --- a/src/main/memory/collector.ts +++ b/src/main/memory/collector.ts @@ -27,7 +27,12 @@ import { iterateProcessOutputLines } from '../../shared/process-output-field-scanner' import { app } from 'electron' -import type { AppMemory, MemorySnapshot, SessionMemory, WorktreeMemory } from '../../shared/types' +import type { + AppMemory, + MemorySnapshot, + SessionMemory, + WorktreeMemory +} from '../../shared/process-stats-types' import type { Store } from '../persistence' import { ORPHAN_WORKTREE_ID } from '../../shared/constants' import { listRegisteredPtys } from './pty-registry' diff --git a/src/main/memory/host-memory.ts b/src/main/memory/host-memory.ts index 5622bd27d72..5d7ee54746d 100644 --- a/src/main/memory/host-memory.ts +++ b/src/main/memory/host-memory.ts @@ -2,7 +2,7 @@ import { execFile } from 'node:child_process' import { readFile } from 'node:fs/promises' import os from 'node:os' import path from 'node:path' -import type { HostAvailableMemorySource, HostMemory } from '../../shared/types' +import type { HostAvailableMemorySource, HostMemory } from '../../shared/process-stats-types' const MEMORY_PRESSURE_TIMEOUT_MS = 1_000 const MEMORY_PRESSURE_MAX_BUFFER = 64 * 1024 diff --git a/src/main/memory/hydrate-local-pty-registry.test.ts b/src/main/memory/hydrate-local-pty-registry.test.ts index 714f18b3cba..7b9a90bfb73 100644 --- a/src/main/memory/hydrate-local-pty-registry.test.ts +++ b/src/main/memory/hydrate-local-pty-registry.test.ts @@ -11,7 +11,7 @@ */ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import type { SessionInfo } from '../daemon/types' import type { DaemonPtyAdapter } from '../daemon/daemon-pty-adapter' import type { Store } from '../persistence' diff --git a/src/main/memory/process-memory-metric.ts b/src/main/memory/process-memory-metric.ts index 79716cb1f8d..49d9fded195 100644 --- a/src/main/memory/process-memory-metric.ts +++ b/src/main/memory/process-memory-metric.ts @@ -1,5 +1,5 @@ import os from 'node:os' -import type { ProcessMemoryMetric } from '../../shared/types' +import type { ProcessMemoryMetric } from '../../shared/process-stats-types' export function getProcessMemoryMetric( platform: NodeJS.Platform = os.platform() diff --git a/src/main/menu/register-app-menu.ts b/src/main/menu/register-app-menu.ts index cc99c69cbc7..2f77e7f8941 100644 --- a/src/main/menu/register-app-menu.ts +++ b/src/main/menu/register-app-menu.ts @@ -5,7 +5,7 @@ import { type KeybindingActionId, type KeybindingOverrides } from '../../shared/keybindings' -import type { UpdateCheckOptions } from '../../shared/types' +import type { UpdateCheckOptions } from '../../shared/update-status-types' import { translateMain } from '../i18n/main-i18n' import { createAppMenuSelectionItem } from './app-menu-selection-item' diff --git a/src/main/orca-profiles/profile-index-store.ts b/src/main/orca-profiles/profile-index-store.ts index 8c1b4490f45..7897e299a21 100644 --- a/src/main/orca-profiles/profile-index-store.ts +++ b/src/main/orca-profiles/profile-index-store.ts @@ -9,7 +9,7 @@ import { import { randomUUID } from 'node:crypto' import { dirname } from 'node:path' import { bestEffortFsyncDirectorySync, fsyncFileSync } from '../../shared/secure-file' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { createDefaultLocalOrcaProfile, DEFAULT_LOCAL_ORCA_PROFILE_ID, diff --git a/src/main/orca-profiles/profile-project-presence.test.ts b/src/main/orca-profiles/profile-project-presence.test.ts index ebbc05b8e14..56bfed5f500 100644 --- a/src/main/orca-profiles/profile-project-presence.test.ts +++ b/src/main/orca-profiles/profile-project-presence.test.ts @@ -8,7 +8,8 @@ import { type OrcaProfileIndex, type OrcaProfileKind } from '../../shared/orca-profiles' -import type { PersistedState, Repo } from '../../shared/types' +import type { PersistedState } from '../../shared/persisted-state-types' +import type { Repo } from '../../shared/repo-types' const testState = { dir: '' } diff --git a/src/main/orca-profiles/profile-project-session-state.ts b/src/main/orca-profiles/profile-project-session-state.ts index 7b5eb1e4491..acb252007ca 100644 --- a/src/main/orca-profiles/profile-project-session-state.ts +++ b/src/main/orca-profiles/profile-project-session-state.ts @@ -1,6 +1,6 @@ import { getDefaultWorkspaceSession } from '../../shared/constants' import type { ExecutionHostId } from '../../shared/execution-host' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { parseWorkspaceKey } from '../../shared/workspace-scope' import { isRepoWorktreeId, diff --git a/src/main/orca-profiles/profile-project-session-transfer.ts b/src/main/orca-profiles/profile-project-session-transfer.ts index 4736599df23..d5884096bd9 100644 --- a/src/main/orca-profiles/profile-project-session-transfer.ts +++ b/src/main/orca-profiles/profile-project-session-transfer.ts @@ -1,14 +1,12 @@ import { getDefaultWorkspaceSession } from '../../shared/constants' import type { ExecutionHostId } from '../../shared/execution-host' +import type { BrowserPage, BrowserWorkspace } from '../../shared/browser-workspace-types' +import type { Tab, TabGroup } from '../../shared/tab-types' +import type { TerminalTab } from '../../shared/terminal-tab-types' import type { - BrowserPage, - BrowserWorkspace, PersistedOpenFile, - Tab, - TabGroup, - TerminalTab, WorkspaceSessionState -} from '../../shared/types' +} from '../../shared/workspace-session-state-types' import { parseWorkspaceKey, worktreeWorkspaceKey } from '../../shared/workspace-scope' import { isRepoWorktreeId, diff --git a/src/main/orca-profiles/profile-project-source-removal.ts b/src/main/orca-profiles/profile-project-source-removal.ts index edb923e6293..c698491eb19 100644 --- a/src/main/orca-profiles/profile-project-source-removal.ts +++ b/src/main/orca-profiles/profile-project-source-removal.ts @@ -1,4 +1,4 @@ -import type { WorkspaceKey } from '../../shared/types' +import type { WorkspaceKey } from '../../shared/folder-workspace-types' import { parseWorkspaceKey } from '../../shared/workspace-scope' import { rebuildRepoBackedProjectState, diff --git a/src/main/orca-profiles/profile-project-state-file.test.ts b/src/main/orca-profiles/profile-project-state-file.test.ts index 223d1229555..305ba53d869 100644 --- a/src/main/orca-profiles/profile-project-state-file.test.ts +++ b/src/main/orca-profiles/profile-project-state-file.test.ts @@ -1,6 +1,8 @@ import { describe, expect, it } from 'vitest' import { getDefaultPersistedState } from '../../shared/constants' -import type { PersistedState, Project, ProjectHostSetup, Repo } from '../../shared/types' +import type { PersistedState } from '../../shared/persisted-state-types' +import type { Project, ProjectHostSetup } from '../../shared/project-types' +import type { Repo } from '../../shared/repo-types' import { rebuildRepoBackedProjectState } from './profile-project-state-file' const upstreamIdentity = { diff --git a/src/main/orca-profiles/profile-project-state-file.ts b/src/main/orca-profiles/profile-project-state-file.ts index 7e00533350f..f7dedcff179 100644 --- a/src/main/orca-profiles/profile-project-state-file.ts +++ b/src/main/orca-profiles/profile-project-state-file.ts @@ -6,14 +6,11 @@ import { getDefaultPersistedState, getDefaultWorkspaceSession } from '../../shar import type { ExecutionHostId } from '../../shared/execution-host' import { projectHostSetupProjectionFromRepos } from '../../shared/project-host-setup-projection' import { carryProjectStateThroughIdentityChange } from '../../shared/project-identity-succession' -import type { - PersistedState, - Project, - ProjectHostSetup, - Repo, - SparsePreset, - WorkspaceSessionState -} from '../../shared/types' +import type { PersistedState } from '../../shared/persisted-state-types' +import type { Project, ProjectHostSetup } from '../../shared/project-types' +import type { Repo } from '../../shared/repo-types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' +import type { SparsePreset } from '../../shared/worktree/create-types' import { getOrcaProfileDataFile } from './profile-index-store' export type TransferProfileState = PersistedState diff --git a/src/main/orca-profiles/profile-project-transfer-payload.ts b/src/main/orca-profiles/profile-project-transfer-payload.ts index f8e458df4df..de7c8b73171 100644 --- a/src/main/orca-profiles/profile-project-transfer-payload.ts +++ b/src/main/orca-profiles/profile-project-transfer-payload.ts @@ -2,7 +2,10 @@ import { randomUUID } from 'node:crypto' import { getRepoExecutionHostId, type ExecutionHostId } from '../../shared/execution-host' import { projectHostSetupProjectionFromRepos } from '../../shared/project-host-setup-projection' import type { SshTarget } from '../../shared/ssh-types' -import type { PersistedState, Repo, SparsePreset, WorkspaceKey } from '../../shared/types' +import type { WorkspaceKey } from '../../shared/folder-workspace-types' +import type { PersistedState } from '../../shared/persisted-state-types' +import type { Repo } from '../../shared/repo-types' +import type { SparsePreset } from '../../shared/worktree/create-types' import { parseWorkspaceKey } from '../../shared/workspace-scope' import type { TransferProfileState } from './profile-project-state-file' import { rebuildRepoBackedProjectState } from './profile-project-state-file' diff --git a/src/main/orca-profiles/profile-project-transfer.test.ts b/src/main/orca-profiles/profile-project-transfer.test.ts index 3c3a4643387..ecb61684d62 100644 --- a/src/main/orca-profiles/profile-project-transfer.test.ts +++ b/src/main/orca-profiles/profile-project-transfer.test.ts @@ -7,7 +7,9 @@ import { ORCA_PROFILE_INDEX_SCHEMA_VERSION, type OrcaProfileIndex } from '../../shared/orca-profiles' -import type { PersistedState, Repo, WorktreeMeta } from '../../shared/types' +import type { PersistedState } from '../../shared/persisted-state-types' +import type { Repo } from '../../shared/repo-types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' import type { SshTarget } from '../../shared/ssh-types' const testState = { dir: '' } diff --git a/src/main/orca-profiles/profile-project-worktree-identity.ts b/src/main/orca-profiles/profile-project-worktree-identity.ts index 58aa55da8b3..cdc8d9182d2 100644 --- a/src/main/orca-profiles/profile-project-worktree-identity.ts +++ b/src/main/orca-profiles/profile-project-worktree-identity.ts @@ -1,6 +1,7 @@ import { normalizeRuntimePathForComparison } from '../../shared/cross-platform-path' import { getRepoExecutionHostId } from '../../shared/execution-host' -import type { Repo, WorkspaceKey } from '../../shared/types' +import type { WorkspaceKey } from '../../shared/folder-workspace-types' +import type { Repo } from '../../shared/repo-types' import { parseWorkspaceKey, worktreeWorkspaceKey } from '../../shared/workspace-scope' import { WORKTREE_ID_SEPARATOR } from '../../shared/worktree/id' diff --git a/src/main/persistence-duplicate-repo-id-host-scope.test.ts b/src/main/persistence-duplicate-repo-id-host-scope.test.ts index 2f46dc9ca26..ade0038ee9b 100644 --- a/src/main/persistence-duplicate-repo-id-host-scope.test.ts +++ b/src/main/persistence-duplicate-repo-id-host-scope.test.ts @@ -8,7 +8,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs' import { join } from 'node:path' import { tmpdir } from 'node:os' -import type { Project, ProjectHostSetup, Repo } from '../shared/types' +import type { Project, ProjectHostSetup } from '../shared/project-types' +import type { Repo } from '../shared/repo-types' import { getDefaultPersistedState } from '../shared/constants' const testState = { dir: '' } diff --git a/src/main/persistence-feature-interaction-broadcast.benchmark.test.ts b/src/main/persistence-feature-interaction-broadcast.benchmark.test.ts index 4c04ab22d01..cfb7f555b08 100644 --- a/src/main/persistence-feature-interaction-broadcast.benchmark.test.ts +++ b/src/main/persistence-feature-interaction-broadcast.benchmark.test.ts @@ -4,7 +4,7 @@ import { join } from 'node:path' import { performance } from 'node:perf_hooks' import { afterEach, describe, expect, it, vi } from 'vitest' import { normalizeFeatureInteractions } from '../shared/feature-interactions' -import type { PersistedState } from '../shared/types' +import type { PersistedState } from '../shared/persisted-state-types' vi.mock('electron', () => ({ app: { getPath: () => tmpdir() }, diff --git a/src/main/persistence.test.ts b/src/main/persistence.test.ts index b2c56cf1aca..b92ed0c86c0 100644 --- a/src/main/persistence.test.ts +++ b/src/main/persistence.test.ts @@ -13,19 +13,14 @@ import { } from 'node:fs' import { join } from 'node:path' import { tmpdir } from 'node:os' -import type { - PersistedState, - Project, - ProjectGroup, - ProjectHostSetup, - Repo, - GlobalSettings, - TerminalPaneLayoutNode, - TerminalTab, - WorktreeLineage, - WorkspaceLineage, - WorkspaceSessionState -} from '../shared/types' +import type { GlobalSettings } from '../shared/global-settings-types' +import type { PersistedState } from '../shared/persisted-state-types' +import type { ProjectGroup } from '../shared/project-group-types' +import type { Project, ProjectHostSetup } from '../shared/project-types' +import type { Repo } from '../shared/repo-types' +import type { TerminalPaneLayoutNode, TerminalTab } from '../shared/terminal-tab-types' +import type { WorkspaceSessionState } from '../shared/workspace-session-state-types' +import type { WorkspaceLineage, WorktreeLineage } from '../shared/worktree/lineage-types' import { isTerminalLeafId, makePaneKey } from '../shared/stable-pane-id' import { TERMINAL_SCROLLBACK_REPLAY_BYTE_LIMIT } from '../shared/terminal-scrollback-limits' import { MAX_BROWSER_HISTORY_ENTRIES } from '../shared/workspace-session-browser-history' diff --git a/src/main/persistence.ts b/src/main/persistence.ts index d0699cea658..b01a298d62f 100644 --- a/src/main/persistence.ts +++ b/src/main/persistence.ts @@ -40,10 +40,22 @@ import { getAutomationLegacyRepoId } from '../shared/automation-run-identity' import { normalizeAutomationPrecheck } from '../shared/automation-precheck' import { normalizeProxyUrl } from '../shared/network-proxy' import { normalizeKagiSessionLink } from '../shared/browser-url' +import type { FolderWorkspace, WorkspaceKey } from '../shared/folder-workspace-types' +import type { GlobalSettings, OrcaWorkspaceLayout } from '../shared/global-settings-types' +import type { NotificationSettings } from '../shared/notification-settings-types' +import type { + OnboardingChecklistState, + OnboardingOutcome, + OnboardingState +} from '../shared/onboarding-state-types' +import type { + LegacyPaneKeyAliasEntry, + PersistedMobileClientTabSelections, + PersistedState +} from '../shared/persisted-state-types' +import type { ProjectGroup } from '../shared/project-group-types' import type { - PersistedState, Project, - ProjectUpdateArgs, ProjectHostSetup, ProjectHostSetupCreateArgs, ProjectHostSetupCreateResult, @@ -51,29 +63,22 @@ import type { ProjectHostSetupDeleteResult, ProjectHostSetupUpdateArgs, ProjectHostSetupUpdateResult, - RepoProjectHostSetupMethod, - Repo, - ProjectGroup, - FolderWorkspace, - SparsePreset, - PersistedMobileClientTabSelections, - WorktreeMeta, - WorktreeLineage, - WorkspaceLineage, - WorkspaceKey, - GlobalSettings, - OrcaWorkspaceLayout, - NotificationSettings, - OnboardingChecklistState, - OnboardingOutcome, - OnboardingState, - LegacyPaneKeyAliasEntry, - TerminalPaneLayoutNode, + ProjectUpdateArgs, + RepoProjectHostSetupMethod +} from '../shared/project-types' +import type { Repo } from '../shared/repo-types' +import type { TerminalLayoutSnapshot, - TerminalTab, + TerminalPaneLayoutNode, + TerminalTab +} from '../shared/terminal-tab-types' +import type { WorkspaceSessionPatch, WorkspaceSessionState -} from '../shared/types' +} from '../shared/workspace-session-state-types' +import type { SparsePreset } from '../shared/worktree/create-types' +import type { WorkspaceLineage, WorktreeLineage } from '../shared/worktree/lineage-types' +import type { WorktreeMeta } from '../shared/worktree/meta-types' import { deriveGlobalWindowsRuntimeDefaultFromLegacySettings, normalizeProjectRuntimePreference diff --git a/src/main/plugins/plugin-approved-vm-recipes.ts b/src/main/plugins/plugin-approved-vm-recipes.ts index ab193a5280f..2ee20c63714 100644 --- a/src/main/plugins/plugin-approved-vm-recipes.ts +++ b/src/main/plugins/plugin-approved-vm-recipes.ts @@ -1,4 +1,4 @@ -import type { OrcaVmRecipe } from '../../shared/types' +import type { OrcaVmRecipe } from '../../shared/orca-yaml-hook-types' import type { PluginService } from './plugin-service' export async function getApprovedPluginVmRecipes( diff --git a/src/main/plugins/plugin-enablement.test.ts b/src/main/plugins/plugin-enablement.test.ts index 0ce3013d8a9..f0698b80a1b 100644 --- a/src/main/plugins/plugin-enablement.test.ts +++ b/src/main/plugins/plugin-enablement.test.ts @@ -1,7 +1,7 @@ import { tmpdir } from 'node:os' import { describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../shared/constants' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { pluginManifestSchema } from '../../shared/plugins/plugin-manifest' import type { Store } from '../persistence' import { applyPluginConsent, applyPluginEnablement } from './plugin-enablement' diff --git a/src/main/plugins/plugin-vm-recipe-registry.ts b/src/main/plugins/plugin-vm-recipe-registry.ts index ac2b90d9b64..eb7204fef7e 100644 --- a/src/main/plugins/plugin-vm-recipe-registry.ts +++ b/src/main/plugins/plugin-vm-recipe-registry.ts @@ -1,4 +1,4 @@ -import type { OrcaVmRecipe } from '../../shared/types' +import type { OrcaVmRecipe } from '../../shared/orca-yaml-hook-types' import { parsePluginVmRecipeArtifact } from '../../shared/plugins/plugin-vm-recipe-artifact' import { PLUGIN_VM_RECIPE_MAX_BYTES, diff --git a/src/main/project-groups/folder-workspace-path-status.test.ts b/src/main/project-groups/folder-workspace-path-status.test.ts index 495f4690434..25314576bc3 100644 --- a/src/main/project-groups/folder-workspace-path-status.test.ts +++ b/src/main/project-groups/folder-workspace-path-status.test.ts @@ -9,7 +9,8 @@ import { inferFolderWorkspacePathConnection } from './folder-workspace-path-status' import type { IFilesystemProvider } from '../providers/types' -import type { ProjectGroup, Repo } from '../../shared/types' +import type { ProjectGroup } from '../../shared/project-group-types' +import type { Repo } from '../../shared/repo-types' function makeGroup(overrides: Partial = {}): ProjectGroup { return { diff --git a/src/main/project-groups/folder-workspace-path-status.ts b/src/main/project-groups/folder-workspace-path-status.ts index d8df44da72c..dbbd34a7034 100644 --- a/src/main/project-groups/folder-workspace-path-status.ts +++ b/src/main/project-groups/folder-workspace-path-status.ts @@ -5,7 +5,9 @@ import type { FolderWorkspacePathStatusRequest } from '../../shared/folder-workspace-path-status' import { getProjectGroupSubtreeIds } from '../../shared/project-groups' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../shared/types' +import type { FolderWorkspace } from '../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../shared/project-group-types' +import type { Repo } from '../../shared/repo-types' import type { IFilesystemProvider } from '../providers/types' type FolderWorkspacePathStatusStore = { diff --git a/src/main/project-groups/nested-repo-discovery.ts b/src/main/project-groups/nested-repo-discovery.ts index 30453748767..d2df48e7970 100644 --- a/src/main/project-groups/nested-repo-discovery.ts +++ b/src/main/project-groups/nested-repo-discovery.ts @@ -6,7 +6,7 @@ import type { NestedRepoCandidate, NestedRepoScanOptions, NestedRepoScanResult -} from '../../shared/types' +} from '../../shared/project-group-types' import { isGitRepo } from '../git/repo' type NestedRepoDirectoryEntry = { diff --git a/src/main/project-groups/nested-repo-import-target.test.ts b/src/main/project-groups/nested-repo-import-target.test.ts index 60b1cf9b526..c630e102fb3 100644 --- a/src/main/project-groups/nested-repo-import-target.test.ts +++ b/src/main/project-groups/nested-repo-import-target.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi, beforeEach } from 'vitest' import { join } from 'node:path' -import type { GitWorktreeInfo } from '../../shared/types' +import type { GitWorktreeInfo } from '../../shared/worktree/types' import { listWorktreeGraph } from '../git/worktree' import { createNestedRepoImportTargetResolver, diff --git a/src/main/project-groups/nested-repo-import-target.ts b/src/main/project-groups/nested-repo-import-target.ts index bde2abb0ba9..be722716856 100644 --- a/src/main/project-groups/nested-repo-import-target.ts +++ b/src/main/project-groups/nested-repo-import-target.ts @@ -1,4 +1,4 @@ -import type { GitWorktreeInfo } from '../../shared/types' +import type { GitWorktreeInfo } from '../../shared/worktree/types' import { normalizeRuntimePathForComparison } from '../../shared/cross-platform-path' import { listWorktreeGraph } from '../git/worktree' diff --git a/src/main/project-groups/nested-repo-import.test.ts b/src/main/project-groups/nested-repo-import.test.ts index be7a46e81ee..2b591fa9a71 100644 --- a/src/main/project-groups/nested-repo-import.test.ts +++ b/src/main/project-groups/nested-repo-import.test.ts @@ -4,7 +4,7 @@ import { resolveNestedRepoImportPaths, resolveNestedRepoSelection } from './nested-repo-import' -import type { ProjectGroup } from '../../shared/types' +import type { ProjectGroup } from '../../shared/project-group-types' function createGroupRecorder(): { groups: ProjectGroup[] diff --git a/src/main/project-groups/nested-repo-import.ts b/src/main/project-groups/nested-repo-import.ts index bcaf3ec25dd..17aee4a2994 100644 --- a/src/main/project-groups/nested-repo-import.ts +++ b/src/main/project-groups/nested-repo-import.ts @@ -1,4 +1,8 @@ -import type { NestedRepoScanResult, ProjectGroup, ProjectGroupImportMode } from '../../shared/types' +import type { + NestedRepoScanResult, + ProjectGroup, + ProjectGroupImportMode +} from '../../shared/project-group-types' import { getRuntimePathBasename, isPathInsideOrEqual, diff --git a/src/main/project-runtime-git-options.test.ts b/src/main/project-runtime-git-options.test.ts index 077bd43afd8..bff4694acb0 100644 --- a/src/main/project-runtime-git-options.test.ts +++ b/src/main/project-runtime-git-options.test.ts @@ -1,6 +1,7 @@ import { afterEach, describe, expect, it } from 'vitest' import type { Store } from './persistence' -import type { Project, Repo } from '../shared/types' +import type { Project } from '../shared/project-types' +import type { Repo } from '../shared/repo-types' import { getLocalProjectGitExecOptions, resolveLocalProjectRuntimeForRepo diff --git a/src/main/project-runtime-git-options.ts b/src/main/project-runtime-git-options.ts index 1c4e4945f32..32399aa5976 100644 --- a/src/main/project-runtime-git-options.ts +++ b/src/main/project-runtime-git-options.ts @@ -1,5 +1,5 @@ import type { Store } from './persistence' -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import { resolveLocalProjectRuntimeForRepo } from './local-project-runtime-resolution' import type { ProjectExecutionRuntimeResolution } from '../shared/project-execution-runtime' diff --git a/src/main/providers/filesystem-provider-contract.ts b/src/main/providers/filesystem-provider-contract.ts index 855f36da98c..ab467a7d89b 100644 --- a/src/main/providers/filesystem-provider-contract.ts +++ b/src/main/providers/filesystem-provider-contract.ts @@ -1,4 +1,5 @@ -import type { DirEntry, FsChangeEvent, SearchOptions, SearchResult } from '../../shared/types' +import type { SearchOptions, SearchResult } from '../../shared/code-search-types' +import type { DirEntry, FsChangeEvent } from '../../shared/filesystem-entry-types' import type { WorkspaceSpaceDirectoryScanResult } from '../../shared/workspace-space-types' export type FileStat = { diff --git a/src/main/providers/git-provider-contract.ts b/src/main/providers/git-provider-contract.ts index d13bf5addf9..f70f3ddcc72 100644 --- a/src/main/providers/git-provider-contract.ts +++ b/src/main/providers/git-provider-contract.ts @@ -1,17 +1,17 @@ import type { - GitStatusResult, - GitDiffResult, GitBranchCompareResult, GitCommitCompareResult, + GitDiffResult +} from '../../shared/git-diff-compare-types' +import type { GitForkSyncExpectedUpstream, GitForkSyncResult } from '../../shared/git-fork-sync' +import type { GitConflictOperation, - GitForkSyncExpectedUpstream, - GitForkSyncResult, - GitPushTarget, GitStagingArea, - GitUpstreamStatus, - GitWorktreeInfo, - RemoveWorktreeResult -} from '../../shared/types' + GitStatusResult, + GitUpstreamStatus +} from '../../shared/git-status-types' +import type { RemoveWorktreeResult } from '../../shared/worktree/create-types' +import type { GitPushTarget, GitWorktreeInfo } from '../../shared/worktree/types' import type { GitHistoryOptions, GitHistoryResult } from '../../shared/git-history' import type { CommitMessageDraftContext } from '../../shared/commit-message-generation' import type { GitProviderStatusOptions } from './git-provider-status-options' diff --git a/src/main/providers/pty-provider-contract.ts b/src/main/providers/pty-provider-contract.ts index 09f3cda62fd..cade47d84d2 100644 --- a/src/main/providers/pty-provider-contract.ts +++ b/src/main/providers/pty-provider-contract.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' import type { PtyStartupIngressIntent } from '../../shared/pty-startup-ingress' import type { StartupCommandDelivery } from '../../shared/codex-startup-delivery' import type { TerminalOscLinkRange } from '../../shared/terminal-osc-link-ranges' diff --git a/src/main/providers/pty-spawn-result.ts b/src/main/providers/pty-spawn-result.ts index ebed657ee21..76bb4179069 100644 --- a/src/main/providers/pty-spawn-result.ts +++ b/src/main/providers/pty-spawn-result.ts @@ -1,5 +1,5 @@ import type { TerminalOscLinkRange } from '../../shared/terminal-osc-link-ranges' -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' import type { AgentSessionClaimedSpawnResult } from '../../shared/agent-session-host-authority' import type { PtyIncarnationId } from '../../shared/pty-incarnation' import type { PtySourceReceivingActivation } from '../../shared/pty-source-receiving-activation' diff --git a/src/main/providers/ssh-filesystem-provider-watch.ts b/src/main/providers/ssh-filesystem-provider-watch.ts index 8ef523860bd..95ef73632eb 100644 --- a/src/main/providers/ssh-filesystem-provider-watch.ts +++ b/src/main/providers/ssh-filesystem-provider-watch.ts @@ -1,5 +1,5 @@ import type { SshChannelMultiplexer } from '../ssh/ssh-channel-multiplexer' -import type { FsChangeEvent } from '../../shared/types' +import type { FsChangeEvent } from '../../shared/filesystem-entry-types' import { isMethodNotFoundError } from '../ssh/ssh-filesystem-stream-reader' import { normalizeRuntimePathForComparison } from '../../shared/cross-platform-path' import { PromiseSettlementWaiters } from '../../shared/promise-settlement-waiters' diff --git a/src/main/providers/ssh-filesystem-provider.ts b/src/main/providers/ssh-filesystem-provider.ts index 74f31b8e6bf..7fa2deb85b9 100644 --- a/src/main/providers/ssh-filesystem-provider.ts +++ b/src/main/providers/ssh-filesystem-provider.ts @@ -21,7 +21,8 @@ import type { FileUploadSession, TerminalArtifactAccessOptions } from './types' -import type { DirEntry, FsChangeEvent, SearchOptions, SearchResult } from '../../shared/types' +import type { SearchOptions, SearchResult } from '../../shared/code-search-types' +import type { DirEntry, FsChangeEvent } from '../../shared/filesystem-entry-types' import { routeSshFilesystemWatchNotification } from './ssh-filesystem-watch-notifications' import type { WorkspaceSpaceDirectoryScanResult } from '../../shared/workspace-space-types' import { isWindowsRemoteHost, type RemoteHostPlatform } from '../ssh/ssh-remote-platform' diff --git a/src/main/providers/ssh-filesystem-watch-notifications.test.ts b/src/main/providers/ssh-filesystem-watch-notifications.test.ts index 3380fe42e89..d50b32bc826 100644 --- a/src/main/providers/ssh-filesystem-watch-notifications.test.ts +++ b/src/main/providers/ssh-filesystem-watch-notifications.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { FsChangeEvent } from '../../shared/types' +import type { FsChangeEvent } from '../../shared/filesystem-entry-types' import { isPathInsideOrEqual } from '../../shared/cross-platform-path' import { routeSshFilesystemWatchNotification } from './ssh-filesystem-watch-notifications' import type { WatchRegistration } from './ssh-filesystem-provider-watch' diff --git a/src/main/providers/ssh-filesystem-watch-notifications.ts b/src/main/providers/ssh-filesystem-watch-notifications.ts index c08afb21095..aed30f16473 100644 --- a/src/main/providers/ssh-filesystem-watch-notifications.ts +++ b/src/main/providers/ssh-filesystem-watch-notifications.ts @@ -1,4 +1,4 @@ -import type { FsChangeEvent } from '../../shared/types' +import type { FsChangeEvent } from '../../shared/filesystem-entry-types' import { createNormalizedPathInsideOrEqualMatcher, normalizeRuntimePathForComparison diff --git a/src/main/providers/ssh-git-provider.ts b/src/main/providers/ssh-git-provider.ts index 51e2b91e1c2..1875e479f12 100644 --- a/src/main/providers/ssh-git-provider.ts +++ b/src/main/providers/ssh-git-provider.ts @@ -5,19 +5,19 @@ import type { SshChannelMultiplexer } from '../ssh/ssh-channel-multiplexer' import type { GitProviderStatusOptions, IGitProvider } from './types' import type { - GitStatusResult, - GitDiffResult, GitBranchCompareResult, GitCommitCompareResult, + GitDiffResult +} from '../../shared/git-diff-compare-types' +import type { GitForkSyncExpectedUpstream, GitForkSyncResult } from '../../shared/git-fork-sync' +import type { GitConflictOperation, - GitForkSyncExpectedUpstream, - GitForkSyncResult, - GitPushTarget, GitStagingArea, - GitUpstreamStatus, - GitWorktreeInfo, - RemoveWorktreeResult -} from '../../shared/types' + GitStatusResult, + GitUpstreamStatus +} from '../../shared/git-status-types' +import type { RemoveWorktreeResult } from '../../shared/worktree/create-types' +import type { GitPushTarget, GitWorktreeInfo } from '../../shared/worktree/types' import type { GitHistoryOptions, GitHistoryResult } from '../../shared/git-history' import { buildHostedRemoteCommitUrl, buildHostedRemoteFileUrl } from '../git/hosted-remote-url' import { JsonRpcErrorCode } from '../ssh/relay-protocol' diff --git a/src/main/provisioned-root-ssh-adoption.test.ts b/src/main/provisioned-root-ssh-adoption.test.ts index d8d2c73c2ef..9d89fb27217 100644 --- a/src/main/provisioned-root-ssh-adoption.test.ts +++ b/src/main/provisioned-root-ssh-adoption.test.ts @@ -3,7 +3,10 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { Store } from './persistence' -import type { AdoptProvisionedRootArgs, GitWorktreeInfo, Repo, WorktreeMeta } from '../shared/types' +import type { Repo } from '../shared/repo-types' +import type { AdoptProvisionedRootArgs } from '../shared/worktree/create-types' +import type { WorktreeMeta } from '../shared/worktree/meta-types' +import type { GitWorktreeInfo } from '../shared/worktree/types' import { listEphemeralVmRuntimes, upsertEphemeralVmRuntime diff --git a/src/main/provisioned-root-ssh-adoption.ts b/src/main/provisioned-root-ssh-adoption.ts index 0b67772a2e7..c8ba0bd340c 100644 --- a/src/main/provisioned-root-ssh-adoption.ts +++ b/src/main/provisioned-root-ssh-adoption.ts @@ -1,12 +1,12 @@ import { randomUUID } from 'node:crypto' import type { Store } from './persistence' +import type { Repo } from '../shared/repo-types' import type { AdoptProvisionedRootArgs, - AutomationWorkspaceProvenance, - CreateWorktreeResult, - Repo, - WorktreeMeta -} from '../shared/types' + CreateWorktreeResult +} from '../shared/worktree/create-types' +import type { WorktreeMeta } from '../shared/worktree/meta-types' +import type { AutomationWorkspaceProvenance } from '../shared/worktree/types' import { isRuntimeOwnedSshTargetId, toSshExecutionHostId } from '../shared/execution-host' import { normalizeRuntimePathForComparison } from '../shared/cross-platform-path' import { diff --git a/src/main/rate-limits/account-runtime-target-sync.ts b/src/main/rate-limits/account-runtime-target-sync.ts index d78a4b68910..5b59b19552d 100644 --- a/src/main/rate-limits/account-runtime-target-sync.ts +++ b/src/main/rate-limits/account-runtime-target-sync.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import type { RateLimitState } from '../../shared/rate-limit-types' import type { RateLimitService } from './service' import { getInitialClaudeRateLimitTarget } from './claude-rate-limit-target' diff --git a/src/main/rate-limits/claude-rate-limit-target.ts b/src/main/rate-limits/claude-rate-limit-target.ts index dba2e396669..b28e8cfed8a 100644 --- a/src/main/rate-limits/claude-rate-limit-target.ts +++ b/src/main/rate-limits/claude-rate-limit-target.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { getClaudeWslSelectionKey, normalizeClaudeRuntimeSelection, diff --git a/src/main/rate-limits/codex-rate-limit-target.ts b/src/main/rate-limits/codex-rate-limit-target.ts index 61c116bab2b..7d7232a3e87 100644 --- a/src/main/rate-limits/codex-rate-limit-target.ts +++ b/src/main/rate-limits/codex-rate-limit-target.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { getWslSelectionKey, normalizeCodexRuntimeSelection, diff --git a/src/main/rate-limits/initial-account-rate-limit-target.test.ts b/src/main/rate-limits/initial-account-rate-limit-target.test.ts index 528a7527968..485fa8bcef6 100644 --- a/src/main/rate-limits/initial-account-rate-limit-target.test.ts +++ b/src/main/rate-limits/initial-account-rate-limit-target.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { getDefaultSettings } from '../../shared/constants' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { getInitialClaudeRateLimitTarget } from './claude-rate-limit-target' import { getInitialCodexRateLimitTarget } from './codex-rate-limit-target' diff --git a/src/main/rate-limits/initial-account-rate-limit-target.ts b/src/main/rate-limits/initial-account-rate-limit-target.ts index d60dab69daf..729f8f17407 100644 --- a/src/main/rate-limits/initial-account-rate-limit-target.ts +++ b/src/main/rate-limits/initial-account-rate-limit-target.ts @@ -1,5 +1,5 @@ import { resolveLocalAccountRuntimeTarget } from '../../shared/local-account-runtime' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' type AccountRuntimeSelection = { host: string | null diff --git a/src/main/repo-git-remote-identity-enrichment.test.ts b/src/main/repo-git-remote-identity-enrichment.test.ts index 24f498b03fc..b396e8a7e38 100644 --- a/src/main/repo-git-remote-identity-enrichment.test.ts +++ b/src/main/repo-git-remote-identity-enrichment.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import type { GitRemoteIdentity } from '../shared/git-remote-identity' -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import { type GitRemoteIdentityProbe, probeGitRemoteIdentity } from './repo-git-remote-identity' import { enrichMissingRepoGitRemoteIdentities, diff --git a/src/main/repo-git-remote-identity-enrichment.ts b/src/main/repo-git-remote-identity-enrichment.ts index e48177f2e62..145e33ddf90 100644 --- a/src/main/repo-git-remote-identity-enrichment.ts +++ b/src/main/repo-git-remote-identity-enrichment.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import { probeGitRemoteIdentity } from './repo-git-remote-identity' const NO_IDENTITY_RETRY_TTL_MS = 5 * 60 * 1000 diff --git a/src/main/repo-git-username-enrichment.test.ts b/src/main/repo-git-username-enrichment.test.ts index bcecb8a2340..06ba252a6e6 100644 --- a/src/main/repo-git-username-enrichment.test.ts +++ b/src/main/repo-git-username-enrichment.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import type { ResolvedGitUsername } from './git/git-username' const resolveLocalGitUsernameDetailedMock = vi.hoisted(() => vi.fn()) diff --git a/src/main/repo-git-username-enrichment.ts b/src/main/repo-git-username-enrichment.ts index c5ae5c6d7b9..44b08ea73b1 100644 --- a/src/main/repo-git-username-enrichment.ts +++ b/src/main/repo-git-username-enrichment.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import { resolveLocalGitUsernameDetailed } from './git/git-username' type RepoUsernameStore = { diff --git a/src/main/repo-icon-autodetect.ts b/src/main/repo-icon-autodetect.ts index 5fa931f06c5..4ea5f5d59d0 100644 --- a/src/main/repo-icon-autodetect.ts +++ b/src/main/repo-icon-autodetect.ts @@ -1,5 +1,6 @@ import { readFile, stat } from 'node:fs/promises' -import type { GitHubRepositoryIdentity, RepoKind } from '../shared/types' +import type { GitHubRepositoryIdentity } from '../shared/github/pull-request-types' +import type { RepoKind } from '../shared/repo-types' import { faviconUrlFromWebsite, githubAvatarIcon, diff --git a/src/main/repo-worktrees.ts b/src/main/repo-worktrees.ts index 4f45e7d8564..f4123c18889 100644 --- a/src/main/repo-worktrees.ts +++ b/src/main/repo-worktrees.ts @@ -1,4 +1,5 @@ -import type { GitWorktreeInfo, Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' +import type { GitWorktreeInfo } from '../shared/worktree/types' import { listWorktrees } from './git/worktree' import { isFolderRepo } from '../shared/repo-kind' import { getSshGitProvider } from './providers/ssh-git-dispatch' diff --git a/src/main/runtime/client-session-tab-selection-persistence.ts b/src/main/runtime/client-session-tab-selection-persistence.ts index 358144cb49d..7ae391a040d 100644 --- a/src/main/runtime/client-session-tab-selection-persistence.ts +++ b/src/main/runtime/client-session-tab-selection-persistence.ts @@ -1,7 +1,7 @@ import type { PersistedMobileClientTabSelection, PersistedMobileClientTabSelections -} from '../../shared/types' +} from '../../shared/persisted-state-types' function normalizeClientSessionTabSelection( raw: unknown diff --git a/src/main/runtime/client-session-tab-selection.test.ts b/src/main/runtime/client-session-tab-selection.test.ts index b0db68c5ca5..eb83e6144ca 100644 --- a/src/main/runtime/client-session-tab-selection.test.ts +++ b/src/main/runtime/client-session-tab-selection.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import type { RuntimeMobileSessionTabsResult } from '../../shared/runtime-types' -import type { PersistedMobileClientTabSelections } from '../../shared/types' +import type { PersistedMobileClientTabSelections } from '../../shared/persisted-state-types' import { activateClientSessionTabSelection, ClientSessionTabSelectionStore, diff --git a/src/main/runtime/client-session-tab-selection.ts b/src/main/runtime/client-session-tab-selection.ts index 7c8f84f88d2..94aa42419de 100644 --- a/src/main/runtime/client-session-tab-selection.ts +++ b/src/main/runtime/client-session-tab-selection.ts @@ -2,7 +2,7 @@ import type { RuntimeMobileSessionClientTab, RuntimeMobileSessionTabsResult } from '../../shared/runtime-types' -import type { PersistedMobileClientTabSelections } from '../../shared/types' +import type { PersistedMobileClientTabSelections } from '../../shared/persisted-state-types' import { normalizePersistedMobileClientTabSelections } from './client-session-tab-selection-persistence' export type ClientSessionTabSelection = { diff --git a/src/main/runtime/file-watcher-host.test.ts b/src/main/runtime/file-watcher-host.test.ts index 10f88f228f5..72608084a9a 100644 --- a/src/main/runtime/file-watcher-host.test.ts +++ b/src/main/runtime/file-watcher-host.test.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { FsChangeEvent } from '../../shared/types' +import type { FsChangeEvent } from '../../shared/filesystem-entry-types' import type { WatcherProcessCallback, WatcherProcessHooks, diff --git a/src/main/runtime/file-watcher-host.ts b/src/main/runtime/file-watcher-host.ts index 59a8071bd58..e7f1d29e41d 100644 --- a/src/main/runtime/file-watcher-host.ts +++ b/src/main/runtime/file-watcher-host.ts @@ -1,4 +1,4 @@ -import type { FsChangeEvent } from '../../shared/types' +import type { FsChangeEvent } from '../../shared/filesystem-entry-types' import { forgetRuntimeWatcherProcessRoot, resetRuntimeWatcherProcessForTest, diff --git a/src/main/runtime/folder-workspace-pty-identity.test.ts b/src/main/runtime/folder-workspace-pty-identity.test.ts index db6b1c1927a..5c3c28e7ff6 100644 --- a/src/main/runtime/folder-workspace-pty-identity.test.ts +++ b/src/main/runtime/folder-workspace-pty-identity.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest' import { getDefaultWorkspaceSession } from '../../shared/constants' import type { RuntimeClientEvent } from '../../shared/runtime-client-events' import { makePaneKey } from '../../shared/stable-pane-id' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { FOLDER_WORKSPACE_INSTANCE_SEPARATOR } from '../../shared/worktree/id' import { OrcaRuntimeService } from './orca-runtime' diff --git a/src/main/runtime/graph-sync-mobile-snapshot-gating.test.ts b/src/main/runtime/graph-sync-mobile-snapshot-gating.test.ts index 338535562a4..5f846fee2d7 100644 --- a/src/main/runtime/graph-sync-mobile-snapshot-gating.test.ts +++ b/src/main/runtime/graph-sync-mobile-snapshot-gating.test.ts @@ -9,7 +9,7 @@ import type { RuntimeMobileSessionTabsResult, RuntimeMobileSessionTabsSnapshot } from '../../shared/runtime-types' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { OrcaRuntimeService } from './orca-runtime' // Freshness predicate of shouldApplyWebSessionTabsSnapshot in diff --git a/src/main/runtime/graph-sync-payload-partition.test.ts b/src/main/runtime/graph-sync-payload-partition.test.ts index 6533a53f9fb..fdf0bce733c 100644 --- a/src/main/runtime/graph-sync-payload-partition.test.ts +++ b/src/main/runtime/graph-sync-payload-partition.test.ts @@ -9,7 +9,7 @@ import type { RuntimeMobileSessionTabsSnapshot, RuntimeSyncWindowGraphResult } from '../../shared/runtime-types' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { OrcaRuntimeService } from './orca-runtime' const WT_A = 'repo-1::/tmp/worktree-a' diff --git a/src/main/runtime/headless-tab-group-split-layout.ts b/src/main/runtime/headless-tab-group-split-layout.ts index da7351d49bd..9e3d56b5f73 100644 --- a/src/main/runtime/headless-tab-group-split-layout.ts +++ b/src/main/runtime/headless-tab-group-split-layout.ts @@ -1,5 +1,5 @@ import type { RuntimeMobileSessionTabGroup } from '../../shared/runtime-types' -import type { TabGroupLayoutNode } from '../../shared/types' +import type { TabGroupLayoutNode } from '../../shared/tab-types' /** * Headless ("Orca server") tab-GROUP split operations (distinct from terminal diff --git a/src/main/runtime/headless-terminal-query-reply-policy.ts b/src/main/runtime/headless-terminal-query-reply-policy.ts index 05b1883efff..fca7c623331 100644 --- a/src/main/runtime/headless-terminal-query-reply-policy.ts +++ b/src/main/runtime/headless-terminal-query-reply-policy.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' /* oxlint-disable no-control-regex -- XTVERSION replies are DCS control sequences. */ const XTVERSION_REPLY = new RegExp('^\u001bP>\\|[^\u001b]*\u001b\\\\$') diff --git a/src/main/runtime/headless-terminal-split-layout.test.ts b/src/main/runtime/headless-terminal-split-layout.test.ts index 0fa0d33b1c0..bb745d49c61 100644 --- a/src/main/runtime/headless-terminal-split-layout.test.ts +++ b/src/main/runtime/headless-terminal-split-layout.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalLayoutSnapshot } from '../../shared/types' +import type { TerminalLayoutSnapshot } from '../../shared/terminal-tab-types' import { buildHeadlessTerminalSplitLayout, countTerminalLayoutLeaves, diff --git a/src/main/runtime/headless-terminal-split-layout.ts b/src/main/runtime/headless-terminal-split-layout.ts index 834625f9ef3..681d70451e8 100644 --- a/src/main/runtime/headless-terminal-split-layout.ts +++ b/src/main/runtime/headless-terminal-split-layout.ts @@ -1,4 +1,7 @@ -import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode } from '../../shared/types' +import type { + TerminalLayoutSnapshot, + TerminalPaneLayoutNode +} from '../../shared/terminal-tab-types' export function terminalLayoutContainsLeaf( node: TerminalPaneLayoutNode | null | undefined, diff --git a/src/main/runtime/missing-worktree-terminal-reconciliation.test.ts b/src/main/runtime/missing-worktree-terminal-reconciliation.test.ts index 22cf484a13e..329dd2319d2 100644 --- a/src/main/runtime/missing-worktree-terminal-reconciliation.test.ts +++ b/src/main/runtime/missing-worktree-terminal-reconciliation.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import type { IPtyProvider } from '../providers/types' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import type { OrcaRuntimeService } from './orca-runtime' import { stopMissingWorktreeTerminals } from './missing-worktree-terminal-reconciliation' diff --git a/src/main/runtime/missing-worktree-terminal-reconciliation.ts b/src/main/runtime/missing-worktree-terminal-reconciliation.ts index 25cd1f2129d..11f888a5404 100644 --- a/src/main/runtime/missing-worktree-terminal-reconciliation.ts +++ b/src/main/runtime/missing-worktree-terminal-reconciliation.ts @@ -1,5 +1,5 @@ import type { IPtyProvider } from '../providers/types' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import { splitWorktreeId } from '../../shared/worktree/id' import { mapWithConcurrency } from '../../shared/map-with-concurrency' import type { OrcaRuntimeService } from './orca-runtime' diff --git a/src/main/runtime/mobile-session-terminal-persistence-retirement.ts b/src/main/runtime/mobile-session-terminal-persistence-retirement.ts index 017b0f6ab47..e94155f342c 100644 --- a/src/main/runtime/mobile-session-terminal-persistence-retirement.ts +++ b/src/main/runtime/mobile-session-terminal-persistence-retirement.ts @@ -1,4 +1,5 @@ -import type { WorkspaceSessionState, WorkspaceVisibleTabType } from '../../shared/types' +import type { WorkspaceVisibleTabType } from '../../shared/tab-types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { pruneTabGroupLayoutAfterRetirement, repairMobileSessionTabGroupsAfterRetirement, diff --git a/src/main/runtime/mobile-session-terminal-retirement.ts b/src/main/runtime/mobile-session-terminal-retirement.ts index acd75fb5580..9aaf69c7fb4 100644 --- a/src/main/runtime/mobile-session-terminal-retirement.ts +++ b/src/main/runtime/mobile-session-terminal-retirement.ts @@ -4,11 +4,11 @@ import type { RuntimeMobileSessionTabsSnapshot, RuntimeMobileSessionTerminalTab } from '../../shared/runtime-types' +import type { TabGroupLayoutNode } from '../../shared/tab-types' import type { - TabGroupLayoutNode, TerminalLayoutSnapshot, TerminalPaneLayoutNode -} from '../../shared/types' +} from '../../shared/terminal-tab-types' export type RetiredTerminalSurface = { worktreeId: string diff --git a/src/main/runtime/multi-client-navigation-isolation.integration.test.ts b/src/main/runtime/multi-client-navigation-isolation.integration.test.ts index 50fd09a4639..5d683dc77dd 100644 --- a/src/main/runtime/multi-client-navigation-isolation.integration.test.ts +++ b/src/main/runtime/multi-client-navigation-isolation.integration.test.ts @@ -5,7 +5,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import WebSocket from 'ws' import { parsePairingCode } from '../../shared/pairing' import type { RuntimeMobileSessionTabsResult } from '../../shared/runtime-types' -import type { PersistedMobileClientTabSelections } from '../../shared/types' +import type { PersistedMobileClientTabSelections } from '../../shared/persisted-state-types' import { OrcaRuntimeService } from './orca-runtime' import { decrypt, deriveSharedKey, encrypt, generateKeyPair } from './rpc/e2ee-crypto' import { OrcaRuntimeRpcServer } from './runtime-rpc' diff --git a/src/main/runtime/orca-runtime-automations.test.ts b/src/main/runtime/orca-runtime-automations.test.ts index 0c6d32d215d..14236869a29 100644 --- a/src/main/runtime/orca-runtime-automations.test.ts +++ b/src/main/runtime/orca-runtime-automations.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest' import { OrcaRuntimeService } from './orca-runtime' import type { Automation } from '../../shared/automations-types' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' const repo: Repo = { id: 'repo-1', diff --git a/src/main/runtime/orca-runtime-browser.ts b/src/main/runtime/orca-runtime-browser.ts index 3e5df279344..e076eeadad0 100644 --- a/src/main/runtime/orca-runtime-browser.ts +++ b/src/main/runtime/orca-runtime-browser.ts @@ -52,7 +52,7 @@ import type { import type { BrowserCertificateProceedResult, BrowserSessionUserAgentMode -} from '../../shared/types' +} from '../../shared/browser-workspace-types' import type { AgentBrowserBridge } from '../browser/agent-browser-bridge' import type { BrowserBackend } from '../browser/browser-backend' import { browserCertificateTrustController, browserManager } from '../browser/browser-manager' diff --git a/src/main/runtime/orca-runtime-emulator-folder-workspace.test.ts b/src/main/runtime/orca-runtime-emulator-folder-workspace.test.ts index 23f7adc4df8..5735b6dabc1 100644 --- a/src/main/runtime/orca-runtime-emulator-folder-workspace.test.ts +++ b/src/main/runtime/orca-runtime-emulator-folder-workspace.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import type { EmulatorSessionInfo } from '../emulator/emulator-types' -import type { FolderWorkspace } from '../../shared/types' +import type { FolderWorkspace } from '../../shared/folder-workspace-types' import { OrcaRuntimeService } from './orca-runtime' const FOLDER_WORKSPACE_ID = 'folder-workspace-1' diff --git a/src/main/runtime/orca-runtime-emulator.ts b/src/main/runtime/orca-runtime-emulator.ts index 7c82980c2a3..2e08614b8df 100644 --- a/src/main/runtime/orca-runtime-emulator.ts +++ b/src/main/runtime/orca-runtime-emulator.ts @@ -11,7 +11,7 @@ import type { EmulatorGesturePoint } from '../emulator/emulator-gesture-sender' import type { EmulatorSessionInfo } from '../emulator/emulator-types' import type { SimulatorDevice } from '../emulator/simctl-simulator-devices' import type { EmulatorDevice } from '../emulator/backends/emulator-backend' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' // Settings slice the emulator surface needs; keeps the host contract honest (no widening cast). type EmulatorHostSettings = Pick< diff --git a/src/main/runtime/orca-runtime-files-ssh-rearm.test.ts b/src/main/runtime/orca-runtime-files-ssh-rearm.test.ts index f25f6c9051a..28d734cab63 100644 --- a/src/main/runtime/orca-runtime-files-ssh-rearm.test.ts +++ b/src/main/runtime/orca-runtime-files-ssh-rearm.test.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { FsChangeEvent } from '../../shared/types' +import type { FsChangeEvent } from '../../shared/filesystem-entry-types' const { resolveAuthorizedPathMock, diff --git a/src/main/runtime/orca-runtime-files-watch.test.ts b/src/main/runtime/orca-runtime-files-watch.test.ts index 41c57b5c44f..e89bc26958b 100644 --- a/src/main/runtime/orca-runtime-files-watch.test.ts +++ b/src/main/runtime/orca-runtime-files-watch.test.ts @@ -3,7 +3,7 @@ import { EventEmitter } from 'node:events' import type * as Fs from 'node:fs' import type * as FsPromises from 'node:fs/promises' import type * as FilesystemAuth from '../ipc/filesystem-auth' -import type { FsChangeEvent } from '../../shared/types' +import type { FsChangeEvent } from '../../shared/filesystem-entry-types' import { WatcherProcessFailure } from '../ipc/parcel-watcher-process-failure' import { acquireWatcherRemovalGate } from '../ipc/watcher-removal-gate' diff --git a/src/main/runtime/orca-runtime-files.ts b/src/main/runtime/orca-runtime-files.ts index fd8f76796a6..826f8a9e2d3 100644 --- a/src/main/runtime/orca-runtime-files.ts +++ b/src/main/runtime/orca-runtime-files.ts @@ -20,15 +20,9 @@ import { } from 'node:fs/promises' import { homedir, tmpdir } from 'node:os' import { basename, dirname, extname, join } from 'node:path' -import type { - DirEntry, - FsChangeEvent, - GitWorktreeInfo, - MarkdownDocument, - SearchOptions, - SearchResult, - Worktree -} from '../../shared/types' +import type { SearchOptions, SearchResult } from '../../shared/code-search-types' +import type { DirEntry, FsChangeEvent, MarkdownDocument } from '../../shared/filesystem-entry-types' +import type { GitWorktreeInfo, Worktree } from '../../shared/worktree/types' import { isPathInsideOrEqual, isRuntimePathAbsolute, diff --git a/src/main/runtime/orca-runtime-git-branch-diff.test.ts b/src/main/runtime/orca-runtime-git-branch-diff.test.ts index 4c469758760..aba155a6895 100644 --- a/src/main/runtime/orca-runtime-git-branch-diff.test.ts +++ b/src/main/runtime/orca-runtime-git-branch-diff.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { RuntimeGitCommands, type ResolvedRuntimeGitWorktree } from './orca-runtime-git' const getSshGitProviderMock = vi.hoisted(() => vi.fn()) diff --git a/src/main/runtime/orca-runtime-git.test.ts b/src/main/runtime/orca-runtime-git.test.ts index 68c6ff798c9..26b993704f2 100644 --- a/src/main/runtime/orca-runtime-git.test.ts +++ b/src/main/runtime/orca-runtime-git.test.ts @@ -2,7 +2,7 @@ import { mkdtempSync, rmSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import type * as GitStatusModule from '../git/status' import type * as CommitMessageTextGenerationModule from '../text-generation/commit-message-text-generation' import type * as PullRequestContextModule from '../text-generation/pull-request-context' diff --git a/src/main/runtime/orca-runtime-git.ts b/src/main/runtime/orca-runtime-git.ts index 67812240e43..3d802d219ea 100644 --- a/src/main/runtime/orca-runtime-git.ts +++ b/src/main/runtime/orca-runtime-git.ts @@ -2,20 +2,19 @@ import type { GitBranchCompareResult, GitCommitCompareResult, + GitDiffResult +} from '../../shared/git-diff-compare-types' +import type { GitForkSyncExpectedUpstream, GitForkSyncResult } from '../../shared/git-fork-sync' +import type { GitConflictOperation, - GitDiffResult, - GitForkSyncExpectedUpstream, - GitForkSyncResult, - GitPushTarget, GitStagingArea, GitStatusResult, - GitUpstreamStatus, - GitWorktreeInfo, - GlobalSettings, - Repo, - TuiAgent, - Worktree -} from '../../shared/types' + GitUpstreamStatus +} from '../../shared/git-status-types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' +import type { TuiAgent } from '../../shared/tui-agent' +import type { GitPushTarget, GitWorktreeInfo, Worktree } from '../../shared/worktree/types' import type { CommitMessageDraftContext } from '../../shared/commit-message-generation' import { getCommitMessageModelDiscoveryHostKey } from '../../shared/commit-message-host-key' import type { GitHistoryOptions, GitHistoryResult } from '../../shared/git-history' diff --git a/src/main/runtime/orca-runtime-headless-hydration-repo-gate.test.ts b/src/main/runtime/orca-runtime-headless-hydration-repo-gate.test.ts index 8bca2c77ed4..75f0c4fd31e 100644 --- a/src/main/runtime/orca-runtime-headless-hydration-repo-gate.test.ts +++ b/src/main/runtime/orca-runtime-headless-hydration-repo-gate.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import { FLOATING_TERMINAL_WORKTREE_ID, getDefaultWorkspaceSession } from '../../shared/constants' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { OrcaRuntimeService } from './orca-runtime' const WORKTREE_ID = 'repo::/worktree' diff --git a/src/main/runtime/orca-runtime-linked-issue-live-meta.integration.test.ts b/src/main/runtime/orca-runtime-linked-issue-live-meta.integration.test.ts index 39298111388..9b9bcfac784 100644 --- a/src/main/runtime/orca-runtime-linked-issue-live-meta.integration.test.ts +++ b/src/main/runtime/orca-runtime-linked-issue-live-meta.integration.test.ts @@ -2,7 +2,7 @@ import { mkdtempSync, rmSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { WorktreeMeta } from '../../shared/types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' import type * as GitStatusModule from '../git/status' import type * as CommitMessageTextGenerationModule from '../text-generation/commit-message-text-generation' import type * as WorktreeModule from '../git/worktree' diff --git a/src/main/runtime/orca-runtime-terminal-retirement-host-partition.test.ts b/src/main/runtime/orca-runtime-terminal-retirement-host-partition.test.ts index 1534be0deaa..30ef460b587 100644 --- a/src/main/runtime/orca-runtime-terminal-retirement-host-partition.test.ts +++ b/src/main/runtime/orca-runtime-terminal-retirement-host-partition.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it, vi } from 'vitest' import { getDefaultWorkspaceSession } from '../../shared/constants' import { LOCAL_EXECUTION_HOST_ID, type ExecutionHostId } from '../../shared/execution-host' import type { RuntimeMobileSessionTabsSnapshot } from '../../shared/runtime-types' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { OrcaRuntimeService } from './orca-runtime' const CONNECTION_ID = 'conn-1' diff --git a/src/main/runtime/orca-runtime-terminal-retirement.test.ts b/src/main/runtime/orca-runtime-terminal-retirement.test.ts index 342017557cc..ae441b48d44 100644 --- a/src/main/runtime/orca-runtime-terminal-retirement.test.ts +++ b/src/main/runtime/orca-runtime-terminal-retirement.test.ts @@ -5,7 +5,7 @@ import type { RuntimeMobileSessionTabsResult, RuntimeMobileSessionTabsSnapshot } from '../../shared/runtime-types' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { sanitizeWorkspaceSessionTerminalRetirements } from './mobile-session-terminal-persistence-retirement' import { OrcaRuntimeService } from './orca-runtime' diff --git a/src/main/runtime/orca-runtime-terminal-split-authority.test.ts b/src/main/runtime/orca-runtime-terminal-split-authority.test.ts index 3aa6ae47603..3d4bd91536a 100644 --- a/src/main/runtime/orca-runtime-terminal-split-authority.test.ts +++ b/src/main/runtime/orca-runtime-terminal-split-authority.test.ts @@ -1,7 +1,8 @@ import { describe, expect, it, vi } from 'vitest' import { getDefaultWorkspaceSession } from '../../shared/constants' import type { RuntimeMobileSessionTabsSnapshot } from '../../shared/runtime-types' -import type { TerminalLayoutSnapshot, WorkspaceSessionState } from '../../shared/types' +import type { TerminalLayoutSnapshot } from '../../shared/terminal-tab-types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { makePaneKey } from '../../shared/stable-pane-id' import { OrcaRuntimeService } from './orca-runtime' diff --git a/src/main/runtime/orca-runtime.test.ts b/src/main/runtime/orca-runtime.test.ts index 18880defc77..49a5a3db094 100644 --- a/src/main/runtime/orca-runtime.test.ts +++ b/src/main/runtime/orca-runtime.test.ts @@ -10,16 +10,13 @@ import { lstat, mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises' import { homedir, tmpdir } from 'node:os' import { basename, join, win32 } from 'node:path' import { ipcMain } from 'electron' -import type { - FolderWorkspace, - ProjectGroup, - Tab, - TerminalLayoutSnapshot, - WorktreeLineage, - WorktreeMeta, - WorkspaceLineage, - WorkspaceSessionState -} from '../../shared/types' +import type { FolderWorkspace } from '../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../shared/project-group-types' +import type { Tab } from '../../shared/tab-types' +import type { TerminalLayoutSnapshot } from '../../shared/terminal-tab-types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../shared/worktree/lineage-types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' import { AGENT_STATUS_STALE_AFTER_MS } from '../../shared/agent-status-types' import { reviewHeadRemoteRefComponent, diff --git a/src/main/runtime/orca-runtime.ts b/src/main/runtime/orca-runtime.ts index 5a0577166fc..5948a450f41 100644 --- a/src/main/runtime/orca-runtime.ts +++ b/src/main/runtime/orca-runtime.ts @@ -177,24 +177,52 @@ import type { AutomationUpdateInput, AutomationWorkspaceMode } from '../../shared/automations-types' +import type { DirEntry, FilesystemPathFlavor } from '../../shared/filesystem-entry-types' +import type { FolderWorkspace, WorkspaceKey } from '../../shared/folder-workspace-types' +import type { + GitHubPRReviewCommentInput, + GitHubReactionContent +} from '../../shared/github/comment-types' +import type { PRRefreshOutcome } from '../../shared/github/pull-request-refresh-types' +import type { GitHubOwnerRepo, GitHubPRFile } from '../../shared/github/pull-request-types' +import type { ListWorkItemsResult } from '../../shared/github/work-item-types' +import type { + GitLabIssueUpdate, + GitLabMRInlineCommentInput, + GitLabProjectRef, + GitLabWorkItem, + MRListState +} from '../../shared/gitlab-types' +import type { GlobalSettings } from '../../shared/global-settings-types' import type { - AutomationWorkspaceProvenance, - CliWorkspaceProvenance, - BaseRefSearchResult, - CreateWorktreeResult, - DetectedWorktree, - DetectedWorktreeListResult, - ForceDeleteWorktreeBranchResult, - GitHubPrStartPoint, - GitPushTarget, - BranchPrefixStrategy, - GitWorktreeInfo, GitHubCreateIssueFields, - GitHubOwnerRepo, - GlobalSettings, - PersistedUIState, + GitHubIssueUpdate, + GitHubPullRequestStateUpdate, + LinearIssueUpdate +} from '../../shared/issue-mutation-types' +import type { + JiraConnectArgs, + JiraCreateIssueArgs, + JiraIssueFilter, + JiraIssueUpdate, + JiraSiteSelection +} from '../../shared/jira-types' +import type { LinearCustomViewModel, LinearProjectSummary } from '../../shared/linear/project-types' +import type { LinearWorkspaceSelection } from '../../shared/linear/workspace-types' +import type { + ClaudeRateLimitAccountsState, + CodexRateLimitAccountsState +} from '../../shared/managed-account-types' +import type { PersistedUIState } from '../../shared/persisted-ui-state-types' +import type { MemorySnapshot, StatsSummary } from '../../shared/process-stats-types' +import type { + NestedRepoScanResult, + ProjectGroup, + ProjectGroupImportMode, + ProjectGroupImportResult +} from '../../shared/project-group-types' +import type { Project, - ProjectUpdateArgs, ProjectHostSetup, ProjectHostSetupCloneArgs, ProjectHostSetupCreateArgs, @@ -205,60 +233,47 @@ import type { ProjectHostSetupResult, ProjectHostSetupUpdateArgs, ProjectHostSetupUpdateResult, - Repo, - RemoveWorktreeResult, - StatsSummary, - Worktree, - WorktreeLineage, - WorkspaceLineage, - WorkspaceKey, - WorktreeLineageWarning, - WorktreeMeta, - WorktreeBaseStatusEvent, - WorktreeRemoteBranchConflictEvent, - WorktreeStartupLaunch, - LinearCustomViewModel, - JiraConnectArgs, - JiraCreateIssueArgs, - JiraIssueFilter, - JiraIssueUpdate, - JiraSiteSelection, - LinearIssueUpdate, - LinearProjectSummary, - LinearWorkspaceSelection, - NestedRepoScanResult, - ProjectGroup, - FolderWorkspace, - ProjectGroupImportMode, - ProjectGroupImportResult, - MemorySnapshot, - Tab, - TabGroupLayoutNode, - TerminalQuickCommand, + ProjectUpdateArgs +} from '../../shared/project-types' +import type { BaseRefSearchResult, Repo } from '../../shared/repo-types' +import type { Tab, TabGroupLayoutNode } from '../../shared/tab-types' +import type { TerminalQuickCommand } from '../../shared/terminal-quick-command-types' +import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode, - TerminalTab, - TuiAgent, - WorkspaceCreateTelemetrySource, - WorkspaceSessionState, + TerminalTab +} from '../../shared/terminal-tab-types' +import type { TuiAgent } from '../../shared/tui-agent' +import type { BranchPrefixStrategy } from '../../shared/ui-chrome-types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' +import type { WorkspaceSource as WorkspaceCreateTelemetrySource } from '../../shared/workspace-source' +import type { + WorktreeBaseStatusEvent, + WorktreeRemoteBranchConflictEvent +} from '../../shared/worktree/base-ref-drift-types' +import type { + CreateWorktreeResult, + ForceDeleteWorktreeBranchResult, + RemoveWorktreeResult +} from '../../shared/worktree/create-types' +import type { WorktreeStartupLaunch } from '../../shared/worktree/launch-types' +import type { + WorkspaceLineage, + WorktreeLineage, + WorktreeLineageWarning +} from '../../shared/worktree/lineage-types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' +import type { + AutomationWorkspaceProvenance, + CliWorkspaceProvenance, + DetectedWorktree, + DetectedWorktreeListResult, + GitHubPrStartPoint, + GitPushTarget, + GitWorktreeInfo, WorkspaceLinkedItem, - DirEntry, - FilesystemPathFlavor, - GitHubIssueUpdate, - GitHubPullRequestStateUpdate, - GitHubPRFile, - GitHubPRReviewCommentInput, - GitHubReactionContent, - GitLabIssueUpdate, - GitLabMRInlineCommentInput, - GitLabProjectRef, - GitLabWorkItem, - ListWorkItemsResult, - MRListState, - PRRefreshOutcome, - ClaudeRateLimitAccountsState, - CodexRateLimitAccountsState -} from '../../shared/types' + Worktree +} from '../../shared/worktree/types' import type { TaskSourceContext } from '../../shared/task-source-context' import { assertWorktreeUnlockedForRemoval } from '../../shared/worktree/removal' import { diff --git a/src/main/runtime/orchestration-worker-workspace-resolution.test.ts b/src/main/runtime/orchestration-worker-workspace-resolution.test.ts index 4ab96e249c7..d95139045a7 100644 --- a/src/main/runtime/orchestration-worker-workspace-resolution.test.ts +++ b/src/main/runtime/orchestration-worker-workspace-resolution.test.ts @@ -29,7 +29,10 @@ vi.mock('../providers/ssh-git-dispatch', () => ({ })) import { FLOATING_TERMINAL_WORKTREE_ID } from '../../shared/constants' -import type { FolderWorkspace, ProjectGroup, Repo, WorktreeMeta } from '../../shared/types' +import type { FolderWorkspace } from '../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../shared/project-group-types' +import type { Repo } from '../../shared/repo-types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' import { registerSshFilesystemProvider, unregisterSshFilesystemProvider diff --git a/src/main/runtime/remote-runtime-request-connection.integration.test.ts b/src/main/runtime/remote-runtime-request-connection.integration.test.ts index a4c10384735..dcf4bccdb24 100644 --- a/src/main/runtime/remote-runtime-request-connection.integration.test.ts +++ b/src/main/runtime/remote-runtime-request-connection.integration.test.ts @@ -3,7 +3,7 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { describe, expect, it, vi } from 'vitest' import { getDefaultRepoHookSettings } from '../../shared/constants' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import { parsePairingCode } from '../../shared/pairing' import { RemoteRuntimeRequestConnection } from '../../shared/remote-runtime-request-connection' import { RemoteRuntimeSharedControlConnection } from '../../shared/remote-runtime-shared-control-connection' diff --git a/src/main/runtime/remote-server-updater.ts b/src/main/runtime/remote-server-updater.ts index a61caa3d591..736713f4424 100644 --- a/src/main/runtime/remote-server-updater.ts +++ b/src/main/runtime/remote-server-updater.ts @@ -2,7 +2,7 @@ import type { RemoteServerUpdateInstallResult, RemoteServerUpdaterSnapshot } from '../../shared/remote-server-update' -import type { UpdateCheckOptions } from '../../shared/types' +import type { UpdateCheckOptions } from '../../shared/update-status-types' type RemoteServerUpdaterAdapter = { getSnapshot: (runtimeId: string) => RemoteServerUpdaterSnapshot diff --git a/src/main/runtime/repo-icon-fork-backfill.test.ts b/src/main/runtime/repo-icon-fork-backfill.test.ts index dc7ffb85463..aacba27f191 100644 --- a/src/main/runtime/repo-icon-fork-backfill.test.ts +++ b/src/main/runtime/repo-icon-fork-backfill.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import * as client from '../github/client' import { OrcaRuntimeService } from './orca-runtime' diff --git a/src/main/runtime/repo-worktree-resolution-scan.ts b/src/main/runtime/repo-worktree-resolution-scan.ts index 7c84e87ad84..052118cf2bf 100644 --- a/src/main/runtime/repo-worktree-resolution-scan.ts +++ b/src/main/runtime/repo-worktree-resolution-scan.ts @@ -1,4 +1,4 @@ -import type { GitWorktreeInfo } from '../../shared/types' +import type { GitWorktreeInfo } from '../../shared/worktree/types' import { listWorktreesStrict } from '../git/worktree' import type { LocalProjectWorktreeGitOptions } from '../project-runtime-git-options' diff --git a/src/main/runtime/rpc/dispatcher-feature-interactions.test.ts b/src/main/runtime/rpc/dispatcher-feature-interactions.test.ts index e33da2b2661..d0f1e6fbc39 100644 --- a/src/main/runtime/rpc/dispatcher-feature-interactions.test.ts +++ b/src/main/runtime/rpc/dispatcher-feature-interactions.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import { z } from 'zod' -import type { PersistedUIState } from '../../../shared/types' +import type { PersistedUIState } from '../../../shared/persisted-ui-state-types' import { getDefaultUIState } from '../../../shared/constants' import { ORCHESTRATION_CONTRACT_VERSION } from '../../../shared/protocol-version' import { diff --git a/src/main/runtime/rpc/methods/client-ui-schemas.ts b/src/main/runtime/rpc/methods/client-ui-schemas.ts index 3d9e0e2e69e..2e2555038ed 100644 --- a/src/main/runtime/rpc/methods/client-ui-schemas.ts +++ b/src/main/runtime/rpc/methods/client-ui-schemas.ts @@ -18,7 +18,7 @@ import { WORKTREE_CARD_PROPERTIES } from '../../../../shared/worktree/card-properties' import { isPluginPanelTabKey } from '../../../../shared/plugins/plugin-manifest' -import type { TaskProvider } from '../../../../shared/types' +import type { TaskProvider } from '../../../../shared/task-providers' import { ClientUiWorkspaceFilterFields } from './client-ui-workspace-filter-fields' import { TaskResumeState } from './task-resume-state-schema' import { omitUndefinedValues, tolerateUnknownValues } from './ui-update-value-tolerance' diff --git a/src/main/runtime/rpc/methods/client-ui.test.ts b/src/main/runtime/rpc/methods/client-ui.test.ts index a8323413b23..dc9afe1caaf 100644 --- a/src/main/runtime/rpc/methods/client-ui.test.ts +++ b/src/main/runtime/rpc/methods/client-ui.test.ts @@ -8,7 +8,7 @@ import { MAX_QUICK_COMMAND_TERMINAL_TEXT_LENGTH } from '../../../../shared/terminal-quick-commands' import { DEFAULT_WORKTREE_CARD_PROPERTIES } from '../../../../shared/worktree/card-properties' -import type { PersistedUIState } from '../../../../shared/types' +import type { PersistedUIState } from '../../../../shared/persisted-ui-state-types' import type { OrcaRuntimeService } from '../../orca-runtime' import type { RpcRequest } from '../core' import { RpcDispatcher } from '../dispatcher' diff --git a/src/main/runtime/rpc/methods/client-ui.ts b/src/main/runtime/rpc/methods/client-ui.ts index 73326756cd9..70ad9e9df57 100644 --- a/src/main/runtime/rpc/methods/client-ui.ts +++ b/src/main/runtime/rpc/methods/client-ui.ts @@ -1,4 +1,4 @@ -import type { PersistedUIState } from '../../../../shared/types' +import type { PersistedUIState } from '../../../../shared/persisted-ui-state-types' import { defineMethod, type RpcMethod } from '../core' import { FeatureInteractionIdParam, diff --git a/src/main/runtime/rpc/methods/file-watch-event-batcher.test.ts b/src/main/runtime/rpc/methods/file-watch-event-batcher.test.ts index 75af9a11bd8..81cd8b7814a 100644 --- a/src/main/runtime/rpc/methods/file-watch-event-batcher.test.ts +++ b/src/main/runtime/rpc/methods/file-watch-event-batcher.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { FsChangeEvent } from '../../../../shared/types' +import type { FsChangeEvent } from '../../../../shared/filesystem-entry-types' import { createFileWatchEventBatcher } from './file-watch-event-batcher' describe('createFileWatchEventBatcher', () => { diff --git a/src/main/runtime/rpc/methods/file-watch-event-batcher.ts b/src/main/runtime/rpc/methods/file-watch-event-batcher.ts index 24e93e2affc..da2a21d3d9b 100644 --- a/src/main/runtime/rpc/methods/file-watch-event-batcher.ts +++ b/src/main/runtime/rpc/methods/file-watch-event-batcher.ts @@ -2,7 +2,7 @@ import { WATCH_BATCH_MAX_WAIT_MS, WATCH_BATCH_TRAILING_MS } from '../../../../shared/filesystem-watch-batch-window' -import type { FsChangeEvent } from '../../../../shared/types' +import type { FsChangeEvent } from '../../../../shared/filesystem-entry-types' import { MAX_BATCHED_WATCHER_EVENTS } from '../../../ipc/filesystem-watcher-event-batch' export function createFileWatchEventBatcher( diff --git a/src/main/runtime/rpc/methods/git.ts b/src/main/runtime/rpc/methods/git.ts index 9363551507e..167b82966f5 100644 --- a/src/main/runtime/rpc/methods/git.ts +++ b/src/main/runtime/rpc/methods/git.ts @@ -1,6 +1,6 @@ /* eslint-disable max-lines -- Why: this table is the runtime git RPC contract; splitting it would make method coverage harder to audit. */ import { defineMethod, type RpcMethod } from '../core' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { ResolvedSourceControlAiGenerationParams } from '../../../../shared/source-control-ai' import { GitBranchCompare, diff --git a/src/main/runtime/rpc/methods/orchestration-federation.ts b/src/main/runtime/rpc/methods/orchestration-federation.ts index f1c68310931..83cbbfe385f 100644 --- a/src/main/runtime/rpc/methods/orchestration-federation.ts +++ b/src/main/runtime/rpc/methods/orchestration-federation.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { buildDispatchPreamble } from '../../orchestration/preamble' import { OrchestrationError } from '../../orchestration/orchestration-error' import { defineMethod, type RpcMethod } from '../core' diff --git a/src/main/runtime/rpc/methods/orchestration-worker-launch-preferences.ts b/src/main/runtime/rpc/methods/orchestration-worker-launch-preferences.ts index 76c60064691..f907571e2bc 100644 --- a/src/main/runtime/rpc/methods/orchestration-worker-launch-preferences.ts +++ b/src/main/runtime/rpc/methods/orchestration-worker-launch-preferences.ts @@ -6,7 +6,7 @@ import { } from '../../../../shared/agent-session-option-catalog' import { resolveAgentSessionOptionLaunch } from '../../../../shared/agent-session-option-launch' import { ORCHESTRATION_WORKER_LAUNCH_PREFERENCES_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { OrchestrationError } from '../../orchestration/orchestration-error' export type OrchestrationWorkerLaunchSelection = { diff --git a/src/main/runtime/rpc/methods/orchestration-worker-start-validation.ts b/src/main/runtime/rpc/methods/orchestration-worker-start-validation.ts index f6bb103f37e..dad044732ce 100644 --- a/src/main/runtime/rpc/methods/orchestration-worker-start-validation.ts +++ b/src/main/runtime/rpc/methods/orchestration-worker-start-validation.ts @@ -1,5 +1,5 @@ import { isTuiAgent } from '../../../../shared/tui-agent-config' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { OrcaRuntimeService } from '../../orca-runtime' import { OrchestrationError } from '../../orchestration/orchestration-error' import type { FederationAttachStartInput } from './orchestration-federation-start-schema' diff --git a/src/main/runtime/rpc/methods/orchestration-worker-topology.ts b/src/main/runtime/rpc/methods/orchestration-worker-topology.ts index 9672560ab1e..3d4a0b6bf55 100644 --- a/src/main/runtime/rpc/methods/orchestration-worker-topology.ts +++ b/src/main/runtime/rpc/methods/orchestration-worker-topology.ts @@ -1,5 +1,5 @@ import type { AgentLaunchPreferences } from '../../../../shared/agent-session-host-authority' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { OrcaRuntimeService } from '../../orca-runtime' import type { OrchestrationDb } from '../../orchestration/db' diff --git a/src/main/runtime/rpc/methods/orchestration-workers.ts b/src/main/runtime/rpc/methods/orchestration-workers.ts index a71e3299929..d1d94d897a5 100644 --- a/src/main/runtime/rpc/methods/orchestration-workers.ts +++ b/src/main/runtime/rpc/methods/orchestration-workers.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { buildDispatchPreamble } from '../../orchestration/preamble' import { OrchestrationError } from '../../orchestration/orchestration-error' import { defineMethod, type RpcMethod } from '../core' diff --git a/src/main/runtime/rpc/methods/session-tabs-schemas.ts b/src/main/runtime/rpc/methods/session-tabs-schemas.ts index fc7bdc2adc3..1f44e17ea0b 100644 --- a/src/main/runtime/rpc/methods/session-tabs-schemas.ts +++ b/src/main/runtime/rpc/methods/session-tabs-schemas.ts @@ -1,7 +1,7 @@ import { z } from 'zod' import { MAX_QUICK_COMMAND_AGENT_PROMPT_LENGTH } from '../../../../shared/terminal-quick-commands' import { isTuiAgent } from '../../../../shared/tui-agent-config' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { sleepingAgentLaunchConfigSchema } from '../../../../shared/workspace-session-sleeping-agents' import { RUNTIME_NAVIGATION_TARGETS } from '../../../../shared/runtime-navigation' import { TAB_ACTIVATION_INTENTS } from '../../../../shared/tab-activation-intent' diff --git a/src/main/runtime/rpc/methods/task-resume-state-schema.ts b/src/main/runtime/rpc/methods/task-resume-state-schema.ts index 06e90f8a811..fc85cad6270 100644 --- a/src/main/runtime/rpc/methods/task-resume-state-schema.ts +++ b/src/main/runtime/rpc/methods/task-resume-state-schema.ts @@ -1,5 +1,5 @@ import { z } from 'zod' -import type { TaskResumeState as TaskResumeStateType } from '../../../../shared/types' +import type { TaskResumeState as TaskResumeStateType } from '../../../../shared/ui-chrome-types' import type { AssertNoMissingKeys } from './ui-state-schema-parity' /** diff --git a/src/main/runtime/rpc/methods/terminal-orphan.ts b/src/main/runtime/rpc/methods/terminal-orphan.ts index 979c6aa747c..97296d0fac5 100644 --- a/src/main/runtime/rpc/methods/terminal-orphan.ts +++ b/src/main/runtime/rpc/methods/terminal-orphan.ts @@ -1,5 +1,5 @@ import { z } from 'zod' -import type { TabGroupLayoutNode } from '../../../../shared/types' +import type { TabGroupLayoutNode } from '../../../../shared/tab-types' import { isPtyIncarnationId, type PtyIncarnationId } from '../../../../shared/pty-incarnation' import { defineMethod, type RpcAnyMethod } from '../core' import { OptionalString, requiredString } from '../schemas' diff --git a/src/main/runtime/rpc/methods/terminal-quick-command-rpc-schema.ts b/src/main/runtime/rpc/methods/terminal-quick-command-rpc-schema.ts index 396710af3d3..18661f10b57 100644 --- a/src/main/runtime/rpc/methods/terminal-quick-command-rpc-schema.ts +++ b/src/main/runtime/rpc/methods/terminal-quick-command-rpc-schema.ts @@ -1,5 +1,5 @@ import { z } from 'zod' -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import { MAX_QUICK_COMMAND_AGENT_PROMPT_LENGTH, MAX_QUICK_COMMAND_ID_LENGTH, diff --git a/src/main/runtime/rpc/methods/ui-state-schema-parity-checks.ts b/src/main/runtime/rpc/methods/ui-state-schema-parity-checks.ts index a1ccf86c254..2af2ffe0ed8 100644 --- a/src/main/runtime/rpc/methods/ui-state-schema-parity-checks.ts +++ b/src/main/runtime/rpc/methods/ui-state-schema-parity-checks.ts @@ -1,5 +1,5 @@ import type { z } from 'zod' -import type { PersistedUIState } from '../../../../shared/types' +import type { PersistedUIState } from '../../../../shared/persisted-ui-state-types' import type { UiUpdateFieldsSchema } from './client-ui-schemas' import type { AssertNoMissingKeys, AssertNoMissingValues } from './ui-state-schema-parity' diff --git a/src/main/runtime/rpc/methods/worktree-schemas.ts b/src/main/runtime/rpc/methods/worktree-schemas.ts index a3e562e8516..d401ddd414d 100644 --- a/src/main/runtime/rpc/methods/worktree-schemas.ts +++ b/src/main/runtime/rpc/methods/worktree-schemas.ts @@ -1,6 +1,6 @@ import { z } from 'zod' import { isTuiAgent } from '../../../../shared/tui-agent-config' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { workspaceSourceSchema } from '../../../../shared/telemetry-events' import { sleepingAgentLaunchConfigSchema } from '../../../../shared/workspace-session-sleeping-agents' import { RUNTIME_NAVIGATION_TARGETS } from '../../../../shared/runtime-navigation' diff --git a/src/main/runtime/rpc/workspace-creator-context.ts b/src/main/runtime/rpc/workspace-creator-context.ts index de0b27965fd..6bf1adf9949 100644 --- a/src/main/runtime/rpc/workspace-creator-context.ts +++ b/src/main/runtime/rpc/workspace-creator-context.ts @@ -1,4 +1,4 @@ -import type { WorkspaceCreatorProvenance } from '../../../shared/types' +import type { WorkspaceCreatorProvenance } from '../../../shared/worktree/types' import type { RpcContext } from './core' export function resolveRpcWorkspaceCreatorProvenance( diff --git a/src/main/runtime/runtime-folder-workspace.test.ts b/src/main/runtime/runtime-folder-workspace.test.ts index 06d97809c90..a801fdc6031 100644 --- a/src/main/runtime/runtime-folder-workspace.test.ts +++ b/src/main/runtime/runtime-folder-workspace.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { Repo, WorktreeMeta } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' import { FOLDER_WORKSPACE_INSTANCE_SEPARATOR } from '../../shared/worktree/id' import { getRuntimeFolderWorkspaceInstanceId, diff --git a/src/main/runtime/runtime-folder-workspace.ts b/src/main/runtime/runtime-folder-workspace.ts index 63f548a1037..18c226221bd 100644 --- a/src/main/runtime/runtime-folder-workspace.ts +++ b/src/main/runtime/runtime-folder-workspace.ts @@ -1,5 +1,7 @@ import { DEFAULT_WORKSPACE_STATUS_ID } from '../../shared/workspace-statuses' -import type { Repo, Worktree, WorktreeMeta } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' +import type { Worktree } from '../../shared/worktree/types' import { FOLDER_WORKSPACE_INSTANCE_SEPARATOR } from '../../shared/worktree/id' import { normalizeWorkspaceCreatorProvenance } from '../../shared/workspace-creator-provenance' diff --git a/src/main/runtime/runtime-remove-project-host-scope.test.ts b/src/main/runtime/runtime-remove-project-host-scope.test.ts index 50bc15d13c9..ab9a781d0db 100644 --- a/src/main/runtime/runtime-remove-project-host-scope.test.ts +++ b/src/main/runtime/runtime-remove-project-host-scope.test.ts @@ -6,7 +6,7 @@ * is reachable — and since #11994 every paired device now learns about it immediately. */ import { describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import { OrcaRuntimeService } from './orca-runtime' function makeRepos(): Repo[] { diff --git a/src/main/runtime/selected-review-branch.ts b/src/main/runtime/selected-review-branch.ts index f874ab8a1ab..5feda3bd55f 100644 --- a/src/main/runtime/selected-review-branch.ts +++ b/src/main/runtime/selected-review-branch.ts @@ -1,4 +1,4 @@ -import type { GitPushTarget } from '../../shared/types' +import type { GitPushTarget } from '../../shared/worktree/types' import type { ForgeProviderId } from '../source-control/forge-provider' import type { getPRForBranch } from '../github/client' diff --git a/src/main/runtime/terminal-list-stale-leaf-liveness.test.ts b/src/main/runtime/terminal-list-stale-leaf-liveness.test.ts index 5cbb967da76..158dff47c37 100644 --- a/src/main/runtime/terminal-list-stale-leaf-liveness.test.ts +++ b/src/main/runtime/terminal-list-stale-leaf-liveness.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest' import { OrcaRuntimeService } from './orca-runtime' import { getDefaultWorkspaceSession } from '../../shared/constants' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' // run6-review-pr-11959 repro: leaf.connected mirrors the graph (`ptyId !== null`), // so a restored leaf whose PTY no provider owns must be demoted from the diff --git a/src/main/runtime/terminal-model-query-authority.ts b/src/main/runtime/terminal-model-query-authority.ts index df8f05798a4..a1dd4aac2d8 100644 --- a/src/main/runtime/terminal-model-query-authority.ts +++ b/src/main/runtime/terminal-model-query-authority.ts @@ -8,7 +8,7 @@ * renderer's native-Windows-ConPTY determination, recorded per PTY at spawn * so the runtime emulator can register the DA1 override before byte zero. */ -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { isWslUncPath } from '../../shared/wsl-paths' import { isHiddenPtyDeliveryGateEnabled, diff --git a/src/main/runtime/terminal-orphan-topology.ts b/src/main/runtime/terminal-orphan-topology.ts index bcb0b6e60ca..b55a351a1b0 100644 --- a/src/main/runtime/terminal-orphan-topology.ts +++ b/src/main/runtime/terminal-orphan-topology.ts @@ -1,4 +1,4 @@ -import type { TabGroupLayoutNode } from '../../shared/types' +import type { TabGroupLayoutNode } from '../../shared/tab-types' function collectLayoutGroupIds(node: TabGroupLayoutNode | null | undefined, ids: string[]): void { if (!node) { diff --git a/src/main/runtime/terminal-restore-record-seed.test.ts b/src/main/runtime/terminal-restore-record-seed.test.ts index 8e3b49620d4..bdc98f6ef92 100644 --- a/src/main/runtime/terminal-restore-record-seed.test.ts +++ b/src/main/runtime/terminal-restore-record-seed.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest' import { OrcaRuntimeService } from './orca-runtime' import { getDefaultWorkspaceSession } from '../../shared/constants' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' // STA repro (post-restart blind orchestrator incident): after an app relaunch // the daemon survives and spawn reattaches silently, but the restore payload diff --git a/src/main/runtime/terminal-send-stale-leaf-liveness.test.ts b/src/main/runtime/terminal-send-stale-leaf-liveness.test.ts index 8394140cb54..f64e960615b 100644 --- a/src/main/runtime/terminal-send-stale-leaf-liveness.test.ts +++ b/src/main/runtime/terminal-send-stale-leaf-liveness.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest' import { OrcaRuntimeService } from './orca-runtime' import { getDefaultWorkspaceSession } from '../../shared/constants' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' // STA repro (silent-send incident): `orca terminal send` to a leaf whose ptyId // no provider in this process owns was a silent no-op reported as success — diff --git a/src/main/runtime/windows-drive-listing.ts b/src/main/runtime/windows-drive-listing.ts index 1b9dbac062c..af4eda39f94 100644 --- a/src/main/runtime/windows-drive-listing.ts +++ b/src/main/runtime/windows-drive-listing.ts @@ -1,6 +1,6 @@ import { stat } from 'node:fs/promises' import type { Stats } from 'node:fs' -import type { FilesystemPathFlavor } from '../../shared/types' +import type { FilesystemPathFlavor } from '../../shared/filesystem-entry-types' export type DriveListing = { resolvedPath: string diff --git a/src/main/runtime/workspace-session-failed-write-rollback.ts b/src/main/runtime/workspace-session-failed-write-rollback.ts index f770511bb27..4f9e79a03d7 100644 --- a/src/main/runtime/workspace-session-failed-write-rollback.ts +++ b/src/main/runtime/workspace-session-failed-write-rollback.ts @@ -1,5 +1,5 @@ import { isDeepStrictEqual } from 'node:util' -import type { WorkspaceSessionState } from '../../shared/types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' const MISSING = Symbol('missing') type RollbackValue = unknown diff --git a/src/main/runtime/workspace-session-terminal-membership-authority.ts b/src/main/runtime/workspace-session-terminal-membership-authority.ts index 556d488edc2..c4d258d8317 100644 --- a/src/main/runtime/workspace-session-terminal-membership-authority.ts +++ b/src/main/runtime/workspace-session-terminal-membership-authority.ts @@ -1,10 +1,9 @@ +import type { Tab, TabGroup } from '../../shared/tab-types' import type { - Tab, - TabGroup, TerminalLayoutSnapshot, - TerminalPaneLayoutNode, - WorkspaceSessionState -} from '../../shared/types' + TerminalPaneLayoutNode +} from '../../shared/terminal-tab-types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { getRepoIdFromWorktreeId } from '../../shared/worktree/id' import { pruneTabGroupLayoutAfterRetirement } from './mobile-session-terminal-retirement' diff --git a/src/main/skills/discovery.test.ts b/src/main/skills/discovery.test.ts index 55dcb55ed36..2130b5a6ee8 100644 --- a/src/main/skills/discovery.test.ts +++ b/src/main/skills/discovery.test.ts @@ -4,7 +4,7 @@ import { join } from 'node:path' import { beforeEach, describe, expect, it, vi } from 'vitest' import { buildSkillDiscoverySources, clearSkillRootScanCache, discoverSkills } from './discovery' import { TUI_AGENT_CONFIG } from '../../shared/tui-agent-config' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' function makeRepo(path: string, connectionId: string | null = null): Repo { return { diff --git a/src/main/skills/discovery.ts b/src/main/skills/discovery.ts index 4fc04ea5d20..882ab23d1cf 100644 --- a/src/main/skills/discovery.ts +++ b/src/main/skills/discovery.ts @@ -2,7 +2,7 @@ import { open, realpath, stat } from 'node:fs/promises' import { homedir } from 'node:os' import { basename, dirname, relative, sep } from 'node:path' import { summarizeSkillMarkdown } from '../../shared/skill-metadata' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import type { DiscoveredSkill, SkillDiscoveryResult, diff --git a/src/main/skills/skill-discovery-sources.ts b/src/main/skills/skill-discovery-sources.ts index ad457d00e81..78a858e697a 100644 --- a/src/main/skills/skill-discovery-sources.ts +++ b/src/main/skills/skill-discovery-sources.ts @@ -8,7 +8,7 @@ import type { SkillSourceKind } from '../../shared/skills' import type { AgentType } from '../../shared/agent-status-types' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import { getRepoExecutionHostId, LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host' export type SkillScanRoot = Omit diff --git a/src/main/skills/skill-discovery-target.test.ts b/src/main/skills/skill-discovery-target.test.ts index f136536b189..18cb430bb68 100644 --- a/src/main/skills/skill-discovery-target.test.ts +++ b/src/main/skills/skill-discovery-target.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { SkillDiscoveryResult } from '../../shared/skills' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' const { nativeScans, wslScans } = vi.hoisted(() => ({ nativeScans: [] as unknown[], diff --git a/src/main/skills/skill-discovery-target.ts b/src/main/skills/skill-discovery-target.ts index 3670aef905e..112c8151978 100644 --- a/src/main/skills/skill-discovery-target.ts +++ b/src/main/skills/skill-discovery-target.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import type { SkillDiscoveryResult, SkillDiscoveryTarget } from '../../shared/skills' import { getDefaultWslDistro, getWslHome, parseWslPath, toLinuxPath } from '../wsl' import { clearSkillRootScanCache, discoverSkills } from './discovery' diff --git a/src/main/skills/skill-freshness-inventory.test.ts b/src/main/skills/skill-freshness-inventory.test.ts index f2cb31e1357..04e778c42dc 100644 --- a/src/main/skills/skill-freshness-inventory.test.ts +++ b/src/main/skills/skill-freshness-inventory.test.ts @@ -4,7 +4,7 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { promisify } from 'node:util' import { afterEach, describe, expect, it } from 'vitest' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import type { SkillBundleFileIdentity, SkillCurrentBundleEntry, diff --git a/src/main/skills/skill-freshness-inventory.ts b/src/main/skills/skill-freshness-inventory.ts index f502707321e..f9c051988b3 100644 --- a/src/main/skills/skill-freshness-inventory.ts +++ b/src/main/skills/skill-freshness-inventory.ts @@ -1,6 +1,6 @@ import { lstat } from 'node:fs/promises' import { join } from 'node:path' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import { SUPPORTED_GLOBAL_SKILL_TOPOLOGIES, type SkillFreshnessInstallation, diff --git a/src/main/source-control/forge-review-mappers.ts b/src/main/source-control/forge-review-mappers.ts index 5d13599ccc2..c8e3fdf3899 100644 --- a/src/main/source-control/forge-review-mappers.ts +++ b/src/main/source-control/forge-review-mappers.ts @@ -1,6 +1,7 @@ import type { HostedReviewInfo } from '../../shared/hosted-review' import { hostedReviewInfoFromGitHubPRInfo } from '../../shared/hosted-review-github' -import type { MRInfo, PRInfo } from '../../shared/types' +import type { PRInfo } from '../../shared/github/pull-request-types' +import type { MRInfo } from '../../shared/gitlab-types' import type { AzureDevOpsPullRequestInfo } from '../azure-devops/pull-request-mappers' import type { BitbucketPullRequestInfo } from '../bitbucket/pull-request-mappers' import type { GiteaPullRequestInfo } from '../gitea/pull-request-mappers' diff --git a/src/main/source-control/hosted-review-creation.ts b/src/main/source-control/hosted-review-creation.ts index 2149c1ab000..9c9be75ab24 100644 --- a/src/main/source-control/hosted-review-creation.ts +++ b/src/main/source-control/hosted-review-creation.ts @@ -24,7 +24,7 @@ import { getRepoSlug } from '../github/client' import { isDefaultGitHubHost } from '../../shared/github/repository-identity-key' import { acquire, ghExecFileAsync, gitExecFileAsync, release } from '../github/gh-utils' import { isNoUpstreamError, normalizeGitErrorMessage } from '../../shared/git-remote-error' -import type { GitUpstreamStatus } from '../../shared/types' +import type { GitUpstreamStatus } from '../../shared/git-status-types' import { gitOptionalLocksDisabledEnv } from '../git/runner' import { parsePorcelainV1Records, type PorcelainV1Record } from '../git/porcelain-v1-records' import { findExistingWorktreeSymlinkPaths } from '../git/worktree-symlink-detection' diff --git a/src/main/source-control/pull-request-linked-issue.ts b/src/main/source-control/pull-request-linked-issue.ts index 2e73cd30d8d..94ea1432473 100644 --- a/src/main/source-control/pull-request-linked-issue.ts +++ b/src/main/source-control/pull-request-linked-issue.ts @@ -1,7 +1,7 @@ import type { HostedReviewProvider } from '../../shared/hosted-review' import type { PullRequestLinkedIssue } from '../../shared/pull-request-generation' import { isLinkedIssueNumber } from '../../shared/source-control-ai-action-variables' -import type { WorkspaceLinkedItem } from '../../shared/types' +import type { WorkspaceLinkedItem } from '../../shared/worktree/types' import { getIssue as getGitHubIssue } from '../github/issues' import { getIssue as getGitLabIssue } from '../gitlab/issues' diff --git a/src/main/speech/speech-model-deletion.test.ts b/src/main/speech/speech-model-deletion.test.ts index 5ce3788d7e1..e78fc0d175d 100644 --- a/src/main/speech/speech-model-deletion.test.ts +++ b/src/main/speech/speech-model-deletion.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest' import { getDefaultVoiceSettings } from '../../shared/constants' import type { VoiceSettings } from '../../shared/speech-types' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { SPEECH_MODEL_CATALOG } from './model-catalog' import { deleteLocalSpeechModel } from './speech-model-deletion' diff --git a/src/main/ssh/ssh-target-id-migration.test.ts b/src/main/ssh/ssh-target-id-migration.test.ts index 7628428654e..59ba19d4dc9 100644 --- a/src/main/ssh/ssh-target-id-migration.test.ts +++ b/src/main/ssh/ssh-target-id-migration.test.ts @@ -1,5 +1,7 @@ import { describe, it, expect } from 'vitest' -import type { PersistedUIState, TerminalTab, WorkspaceSessionState } from '../../shared/types' +import type { PersistedUIState } from '../../shared/persisted-ui-state-types' +import type { TerminalTab } from '../../shared/terminal-tab-types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { migrateUiHostScopeSshTargetId, migrateWorkspaceSessionSshTargetId diff --git a/src/main/ssh/ssh-target-id-migration.ts b/src/main/ssh/ssh-target-id-migration.ts index f7fe153a2be..18d3f075bf0 100644 --- a/src/main/ssh/ssh-target-id-migration.ts +++ b/src/main/ssh/ssh-target-id-migration.ts @@ -1,4 +1,5 @@ -import type { PersistedUIState, WorkspaceSessionState } from '../../shared/types' +import type { PersistedUIState } from '../../shared/persisted-ui-state-types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' import { parseAppSshPtyId, toAppSshPtyId } from '../../shared/ssh-pty-id' import { toSshExecutionHostId } from '../../shared/execution-host' import { normalizeManualRepoOrder } from '../../shared/manual-repo-order' diff --git a/src/main/star-nag/service.test.ts b/src/main/star-nag/service.test.ts index 60f166ff200..2e52ada5442 100644 --- a/src/main/star-nag/service.test.ts +++ b/src/main/star-nag/service.test.ts @@ -3,7 +3,7 @@ Electron/IPC harness; splitting the narrow service suite would duplicate setup and make the prompt-session edge cases harder to compare. */ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { STAR_NAG_INITIAL_THRESHOLD } from '../../shared/constants' -import type { PersistedUIState } from '../../shared/types' +import type { PersistedUIState } from '../../shared/persisted-ui-state-types' import type { Store } from '../persistence' import type { StatsCollector } from '../stats/collector' import { StarNagService } from './service' diff --git a/src/main/startup/dev-education-suppression.test.ts b/src/main/startup/dev-education-suppression.test.ts index ab969b3faf4..e84541f0f68 100644 --- a/src/main/startup/dev-education-suppression.test.ts +++ b/src/main/startup/dev-education-suppression.test.ts @@ -8,7 +8,8 @@ import { import { CONTEXTUAL_TOUR_IDS } from '../../shared/contextual-tours' import { FEATURE_INTERACTION_IDS } from '../../shared/feature-interactions' import { FEATURE_TIP_IDS } from '../../shared/feature-tips' -import type { OnboardingState, PersistedUIState } from '../../shared/types' +import type { OnboardingState } from '../../shared/onboarding-state-types' +import type { PersistedUIState } from '../../shared/persisted-ui-state-types' import { DEV_SHOW_FIRST_RUN_EDUCATION_ENV, shouldSuppressDevEducation, diff --git a/src/main/startup/dev-education-suppression.ts b/src/main/startup/dev-education-suppression.ts index 9b3897169b8..bea97e7bbc8 100644 --- a/src/main/startup/dev-education-suppression.ts +++ b/src/main/startup/dev-education-suppression.ts @@ -5,7 +5,7 @@ import { type FeatureInteractionState } from '../../shared/feature-interactions' import { FEATURE_TIP_IDS } from '../../shared/feature-tips' -import type { PersistedUIState } from '../../shared/types' +import type { PersistedUIState } from '../../shared/persisted-ui-state-types' import type { Store } from '../persistence' export const DEV_SHOW_FIRST_RUN_EDUCATION_ENV = 'ORCA_DEV_SHOW_FIRST_RUN_EDUCATION' diff --git a/src/main/startup/hydrate-shell-path.ts b/src/main/startup/hydrate-shell-path.ts index 38a16816507..db41fe3f462 100644 --- a/src/main/startup/hydrate-shell-path.ts +++ b/src/main/startup/hydrate-shell-path.ts @@ -1,6 +1,6 @@ import { spawn } from 'node:child_process' import { delimiter, win32 as pathWin32 } from 'node:path' -import type { ShellHydrationFailureReason } from '../../shared/types' +import type { ShellHydrationFailureReason } from '../../shared/shell-path-hydration-types' import { resolveWindowsShellStartupFamily } from '../../shared/windows-terminal-shell' import { WindowsShellPathOwnership, windowsPathSegmentKey } from './windows-shell-path-ownership' diff --git a/src/main/stats/collector.ts b/src/main/stats/collector.ts index ccc516f95f4..27647af20ad 100644 --- a/src/main/stats/collector.ts +++ b/src/main/stats/collector.ts @@ -1,6 +1,6 @@ import { app } from 'electron' import { join } from 'node:path' -import type { StatsSummary } from '../../shared/types' +import type { StatsSummary } from '../../shared/process-stats-types' import type { StatsEvent, StatsAggregates } from './types' import { loadStatsFile, STATS_SCHEMA_VERSION } from './stats-file-loader' import { StatsSnapshotWriter } from './stats-snapshot-writer' diff --git a/src/main/synthetic-title-frame-routing.ts b/src/main/synthetic-title-frame-routing.ts index 3bb10a030fa..551e871fd01 100644 --- a/src/main/synthetic-title-frame-routing.ts +++ b/src/main/synthetic-title-frame-routing.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../shared/types' +import type { GlobalSettings } from '../shared/global-settings-types' /** * Why: with the side-effect kill switch off, renderer byte parsers are the diff --git a/src/main/telemetry/client-test-harness.ts b/src/main/telemetry/client-test-harness.ts index 8e0dbb58230..4f3e4054be1 100644 --- a/src/main/telemetry/client-test-harness.ts +++ b/src/main/telemetry/client-test-harness.ts @@ -1,7 +1,7 @@ import type { PostHog } from 'posthog-node' import { vi } from 'vitest' import type { CommonProps } from '../../shared/telemetry-events' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import type { Store } from '../persistence' import { resetBurstCapsForSession } from './burst-cap' import { diff --git a/src/main/telemetry/cohort-classifier.test.ts b/src/main/telemetry/cohort-classifier.test.ts index 2d1593cde8e..ac4f8d14173 100644 --- a/src/main/telemetry/cohort-classifier.test.ts +++ b/src/main/telemetry/cohort-classifier.test.ts @@ -3,7 +3,7 @@ // at most one warn per session. See docs/onboarding-funnel-cohort-addendum.md. import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import type { Store } from '../persistence' import { _resetSessionWarnFlagForTests, diff --git a/src/main/telemetry/consent.test.ts b/src/main/telemetry/consent.test.ts index 12ee8ad0058..46a54c04b6d 100644 --- a/src/main/telemetry/consent.test.ts +++ b/src/main/telemetry/consent.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { resolveConsent, _resetMisconfigWarnCacheForTests } from './consent' // A minimal GlobalSettings stub — the resolver only reads `settings.telemetry`, diff --git a/src/main/telemetry/consent.ts b/src/main/telemetry/consent.ts index 85ed0dfd481..20b78526406 100644 --- a/src/main/telemetry/consent.ts +++ b/src/main/telemetry/consent.ts @@ -6,7 +6,7 @@ // runtime only and never mutate `GlobalSettings.telemetry.optedIn`. Unsetting // the variable on the next launch restores the user's stored preference. -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import type { TelemetryConsentState } from '../../shared/telemetry-consent-types' // Discriminated union instead of a boolean: the Privacy pane (PR 3) needs the diff --git a/src/main/telemetry/install-id.test.ts b/src/main/telemetry/install-id.test.ts index 69591a72663..c2fa51f2c1d 100644 --- a/src/main/telemetry/install-id.test.ts +++ b/src/main/telemetry/install-id.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi } from 'vitest' import type { Store } from '../persistence' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { generateInstallId, readInstallId } from './install-id' // Minimal in-memory store stand-in. The real `Store` pulls in Electron + fs, diff --git a/src/main/telemetry/onboarding-cohort-classifier.test.ts b/src/main/telemetry/onboarding-cohort-classifier.test.ts index 25aa5e2f67e..e74b0deb8d5 100644 --- a/src/main/telemetry/onboarding-cohort-classifier.test.ts +++ b/src/main/telemetry/onboarding-cohort-classifier.test.ts @@ -5,7 +5,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { ONBOARDING_FINAL_STEP } from '../../shared/constants' -import type { GlobalSettings, OnboardingState } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { OnboardingState } from '../../shared/onboarding-state-types' import type { Store } from '../persistence' import { _resetSessionWarnFlagForTests, diff --git a/src/main/terminal-scrollback-snapshot-async-migration.ts b/src/main/terminal-scrollback-snapshot-async-migration.ts index b1a064657c1..1768c0a20a1 100644 --- a/src/main/terminal-scrollback-snapshot-async-migration.ts +++ b/src/main/terminal-scrollback-snapshot-async-migration.ts @@ -1,4 +1,4 @@ -import type { WorkspaceSessionState } from '../shared/types' +import type { WorkspaceSessionState } from '../shared/workspace-session-state-types' import { collectTerminalScrollbackSnapshotRefs, deleteTerminalScrollbackSnapshot, diff --git a/src/main/terminal-scrollback-snapshots.ts b/src/main/terminal-scrollback-snapshots.ts index de387c356c9..296dd4a081b 100644 --- a/src/main/terminal-scrollback-snapshots.ts +++ b/src/main/terminal-scrollback-snapshots.ts @@ -12,7 +12,7 @@ import { import { mkdir, rename, rm, writeFile } from 'node:fs/promises' import { dirname, join } from 'node:path' import { app } from 'electron' -import type { WorkspaceSessionState } from '../shared/types' +import type { WorkspaceSessionState } from '../shared/workspace-session-state-types' import { TERMINAL_SCROLLBACK_REPLAY_BYTE_LIMIT, TERMINAL_SCROLLBACK_STORE_BYTE_LIMIT diff --git a/src/main/text-generation/commit-message-text-generation.test.ts b/src/main/text-generation/commit-message-text-generation.test.ts index 1163f54bb42..2da0f012479 100644 --- a/src/main/text-generation/commit-message-text-generation.test.ts +++ b/src/main/text-generation/commit-message-text-generation.test.ts @@ -8,7 +8,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../shared/constants' import { sourceControlAiSettingsFromLegacy } from '../../shared/source-control-ai' import { SSH_MUX_REQUEST_TIMEOUT_CODE } from '../ssh/ssh-channel-multiplexer' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { cancelGenerateCommitMessageLocal, cancelGeneratePullRequestFieldsLocal, diff --git a/src/main/text-generation/commit-message-text-generation.ts b/src/main/text-generation/commit-message-text-generation.ts index a13372de858..655c6de0e7d 100644 --- a/src/main/text-generation/commit-message-text-generation.ts +++ b/src/main/text-generation/commit-message-text-generation.ts @@ -2,7 +2,9 @@ spawn failure handling, and output normalization; keeping them together prevents those paths from drifting. */ import { spawn, type ChildProcess } from 'node:child_process' -import type { GlobalSettings, Repo, TuiAgent } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' +import type { Repo } from '../../shared/repo-types' +import type { TuiAgent } from '../../shared/tui-agent' import { buildCommitMessagePrompt, splitGeneratedCommitMessage, diff --git a/src/main/updater-changelog.ts b/src/main/updater-changelog.ts index a534075cfc6..3af55b872de 100644 --- a/src/main/updater-changelog.ts +++ b/src/main/updater-changelog.ts @@ -1,5 +1,5 @@ import { net } from 'electron' -import type { ChangelogData } from '../shared/types' +import type { ChangelogData } from '../shared/update-status-types' import { compareVersions } from './updater-fallback' type ChangelogEntry = { diff --git a/src/main/updater-events.ts b/src/main/updater-events.ts index eb1ca193510..b77cd8a8cc5 100644 --- a/src/main/updater-events.ts +++ b/src/main/updater-events.ts @@ -1,5 +1,5 @@ import { app, autoUpdater as nativeUpdater } from 'electron' -import type { UpdateStatus } from '../shared/types' +import type { UpdateStatus } from '../shared/update-status-types' import { consumeMacInstallGuardBypass, deferMacQuitUntilInstallerReady, diff --git a/src/main/updater-fallback.ts b/src/main/updater-fallback.ts index a1c77b315d6..22cfb049555 100644 --- a/src/main/updater-fallback.ts +++ b/src/main/updater-fallback.ts @@ -1,4 +1,4 @@ -import type { UpdateStatus } from '../shared/types' +import type { UpdateStatus } from '../shared/update-status-types' import { compareAppVersions, isPrereleaseAppVersion, diff --git a/src/main/updater-linux-package-recovery-actions.test.ts b/src/main/updater-linux-package-recovery-actions.test.ts index 75f593b7f57..4e9d50ecdf5 100644 --- a/src/main/updater-linux-package-recovery-actions.test.ts +++ b/src/main/updater-linux-package-recovery-actions.test.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { UpdateStatus } from '../shared/types' +import type { UpdateStatus } from '../shared/update-status-types' import type * as UpdaterModule from './updater' const { diff --git a/src/main/updater-mac-install.ts b/src/main/updater-mac-install.ts index 8012f79d8fc..e2441d64180 100644 --- a/src/main/updater-mac-install.ts +++ b/src/main/updater-mac-install.ts @@ -1,5 +1,5 @@ import { app } from 'electron' -import type { UpdateStatus } from '../shared/types' +import type { UpdateStatus } from '../shared/update-status-types' import { recordUpdaterLifecycle } from './updater-lifecycle-diagnostics' const MAC_INSTALL_READY_TIMEOUT_MS = 15000 diff --git a/src/main/updater.fallback.test.ts b/src/main/updater.fallback.test.ts index f946aafeb6f..9cbcc97c85e 100644 --- a/src/main/updater.fallback.test.ts +++ b/src/main/updater.fallback.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { UpdateStatus } from '../shared/types' +import type { UpdateStatus } from '../shared/update-status-types' import { compareVersions, isBenignCheckFailure, diff --git a/src/main/updater.test.ts b/src/main/updater.test.ts index 1f5cdc06994..f42d58b5c8e 100644 --- a/src/main/updater.test.ts +++ b/src/main/updater.test.ts @@ -6,7 +6,7 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import type * as UpdaterModule from './updater' import type * as RecoveryModule from './linux-package-update-recovery' -import type { UpdateStatus } from '../shared/types' +import type { UpdateStatus } from '../shared/update-status-types' type RevalidationVerdict = Awaited< ReturnType diff --git a/src/main/updater.ts b/src/main/updater.ts index 96bf163e54e..f89c00331a7 100644 --- a/src/main/updater.ts +++ b/src/main/updater.ts @@ -7,7 +7,7 @@ import type { UpdateCheckOptions, UpdateSource, UpdateStatus -} from '../shared/types' +} from '../shared/update-status-types' import type { RemoteServerUpdateInstallResult, RemoteServerUpdaterSnapshot, diff --git a/src/main/usage-worktree-metadata.ts b/src/main/usage-worktree-metadata.ts index 8c4f3a94ba6..ed6889a800b 100644 --- a/src/main/usage-worktree-metadata.ts +++ b/src/main/usage-worktree-metadata.ts @@ -1,5 +1,5 @@ import { basename } from 'node:path' -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import { splitWorktreeId, splitWorktreeIdForFilesystem } from '../shared/worktree/id' import { isFolderRepo } from '../shared/repo-kind' import type { Store } from './persistence' diff --git a/src/main/usage/usage-worktree-refs.ts b/src/main/usage/usage-worktree-refs.ts index f76ed7c0a58..f9ea5b7b9f6 100644 --- a/src/main/usage/usage-worktree-refs.ts +++ b/src/main/usage/usage-worktree-refs.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../shared/types' +import type { Repo } from '../../shared/repo-types' import type { UsageWorktreeRef } from '../usage-worktree-metadata' import type { UsageScanWorktreeRef } from './usage-provider-contract' diff --git a/src/main/warp-themes/parser.ts b/src/main/warp-themes/parser.ts index fa4ad55c40b..e37731a8e85 100644 --- a/src/main/warp-themes/parser.ts +++ b/src/main/warp-themes/parser.ts @@ -1,6 +1,6 @@ import path from 'node:path' import { parseDocument } from 'yaml' -import type { TerminalColorOverrides } from '../../shared/types' +import type { TerminalColorOverrides } from '../../shared/terminal-color-overrides' import { hasUsableTerminalThemeColors, makeCustomTerminalThemeSelection, diff --git a/src/main/window/attach-main-window-services.ts b/src/main/window/attach-main-window-services.ts index ad8551acb6d..0fbd850f06b 100644 --- a/src/main/window/attach-main-window-services.ts +++ b/src/main/window/attach-main-window-services.ts @@ -4,12 +4,9 @@ import { randomUUID } from 'node:crypto' import { app, ipcMain } from 'electron' import type { BrowserWindow, IpcMainInvokeEvent } from 'electron' import type { Store } from '../persistence' -import type { - CreateWorktreeResult, - ReleaseBuildListResult, - UpdateCheckOptions, - WorktreeStartupLaunch -} from '../../shared/types' +import type { ReleaseBuildListResult, UpdateCheckOptions } from '../../shared/update-status-types' +import type { CreateWorktreeResult } from '../../shared/worktree/create-types' +import type { WorktreeStartupLaunch } from '../../shared/worktree/launch-types' import { RELEASE_CHANNELS, type ReleaseChannel } from '../../shared/release-channel' import { acknowledgePendingTccPromptNotice, diff --git a/src/main/workspace-space-analysis-capacity.test.ts b/src/main/workspace-space-analysis-capacity.test.ts index ebf1e0ae634..42a2a2cee48 100644 --- a/src/main/workspace-space-analysis-capacity.test.ts +++ b/src/main/workspace-space-analysis-capacity.test.ts @@ -3,7 +3,7 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import type * as NodeProcess from 'node:process' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import type * as WorkspaceSpaceScanBudgetModule from '../shared/workspace-space-scan-budget' import type { Store } from './persistence' diff --git a/src/main/workspace-space-analysis-du-timeout.test.ts b/src/main/workspace-space-analysis-du-timeout.test.ts index ecd2e97eb8b..de467d2a7d2 100644 --- a/src/main/workspace-space-analysis-du-timeout.test.ts +++ b/src/main/workspace-space-analysis-du-timeout.test.ts @@ -3,7 +3,7 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type * as NodeProcess from 'node:process' -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import type { Store } from './persistence' const { execFileMock, listRepoWorktreesMock } = vi.hoisted(() => ({ diff --git a/src/main/workspace-space-analysis.test.ts b/src/main/workspace-space-analysis.test.ts index 15baa04fc04..53082b73c7f 100644 --- a/src/main/workspace-space-analysis.test.ts +++ b/src/main/workspace-space-analysis.test.ts @@ -2,7 +2,7 @@ import { mkdtemp, mkdir, rm, writeFile } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import type { Store } from './persistence' const { diff --git a/src/main/workspace-space-analysis.ts b/src/main/workspace-space-analysis.ts index bdb8d953aab..56c9a7525cd 100644 --- a/src/main/workspace-space-analysis.ts +++ b/src/main/workspace-space-analysis.ts @@ -7,7 +7,9 @@ import { platform } from 'node:process' import type { Dirent } from 'node:fs' import type { Store } from './persistence' import { isFolderRepo } from '../shared/repo-kind' -import type { DirEntry, GitWorktreeInfo, Repo, Worktree } from '../shared/types' +import type { DirEntry } from '../shared/filesystem-entry-types' +import type { Repo } from '../shared/repo-types' +import type { GitWorktreeInfo, Worktree } from '../shared/worktree/types' import type { WorkspaceSpaceAnalysis, WorkspaceSpaceDirectoryScanResult, diff --git a/src/main/worktree-create-base-prefetch.ts b/src/main/worktree-create-base-prefetch.ts index fc43980202e..a7665fc4e15 100644 --- a/src/main/worktree-create-base-prefetch.ts +++ b/src/main/worktree-create-base-prefetch.ts @@ -1,5 +1,5 @@ import { isFolderRepo } from '../shared/repo-kind' -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import { hasLocalCommitObject, isFullGitObjectId } from './git/commit-object-ref' import { hasWorktreeBaseCommitRef } from './git/worktree-base-ref-probe' import { getBaseRefDefault } from './git/repo' diff --git a/src/main/worktree-create-timing.ts b/src/main/worktree-create-timing.ts index 3dc5546c53c..433a9ac0098 100644 --- a/src/main/worktree-create-timing.ts +++ b/src/main/worktree-create-timing.ts @@ -1,4 +1,7 @@ -import type { WorktreeCreateTiming, WorktreeCreateTimingPhase } from '../shared/types' +import type { + WorktreeCreateTiming, + WorktreeCreateTimingPhase +} from '../shared/worktree/create-types' type TimingClock = () => number diff --git a/src/main/worktree-lineage-pruning.test.ts b/src/main/worktree-lineage-pruning.test.ts index e9465a9f6cc..db393e864d5 100644 --- a/src/main/worktree-lineage-pruning.test.ts +++ b/src/main/worktree-lineage-pruning.test.ts @@ -1,5 +1,7 @@ import { describe, expect, it, vi } from 'vitest' -import type { Repo, WorktreeLineage, WorkspaceLineage, WorktreeMeta } from '../shared/types' +import type { Repo } from '../shared/repo-types' +import type { WorkspaceLineage, WorktreeLineage } from '../shared/worktree/lineage-types' +import type { WorktreeMeta } from '../shared/worktree/meta-types' import { worktreeWorkspaceKey } from '../shared/workspace-scope' import { pruneLineageForMissingRepoWorktrees } from './worktree-lineage-pruning' diff --git a/src/main/worktree-lineage-pruning.ts b/src/main/worktree-lineage-pruning.ts index b9dbe956f57..34a99ef6e95 100644 --- a/src/main/worktree-lineage-pruning.ts +++ b/src/main/worktree-lineage-pruning.ts @@ -1,5 +1,7 @@ import { randomUUID } from 'node:crypto' -import type { GitWorktreeInfo, Repo, WorktreeLineage, WorkspaceLineage } from '../shared/types' +import type { Repo } from '../shared/repo-types' +import type { WorkspaceLineage, WorktreeLineage } from '../shared/worktree/lineage-types' +import type { GitWorktreeInfo } from '../shared/worktree/types' import { getRepoExecutionHostId } from '../shared/execution-host' import { isWorkspaceKey, parseWorkspaceKey, worktreeWorkspaceKey } from '../shared/workspace-scope' import type { Store } from './persistence' diff --git a/src/main/worktree-removal-authority.test.ts b/src/main/worktree-removal-authority.test.ts index cbc9e2ed24c..4d8229f3f1f 100644 --- a/src/main/worktree-removal-authority.test.ts +++ b/src/main/worktree-removal-authority.test.ts @@ -4,7 +4,7 @@ import { isWorktreePathMissing, stripOrcaProvenanceMetaUpdates } from './worktree-removal-safety' -import type { WorktreeMeta } from '../shared/types' +import type { WorktreeMeta } from '../shared/worktree/meta-types' describe('isWorktreePathMissing', () => { it('recognizes missing-path errors from local and remote stat providers', async () => { diff --git a/src/main/worktree-removal-safety.test.ts b/src/main/worktree-removal-safety.test.ts index 5a64b8c90e5..968bbd96bb5 100644 --- a/src/main/worktree-removal-safety.test.ts +++ b/src/main/worktree-removal-safety.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import { homedir } from 'node:os' -import type { GitWorktreeInfo } from '../shared/types' +import type { GitWorktreeInfo } from '../shared/worktree/types' import { canCleanupUnregisteredOrcaLeftoverDirectory, canSafelyRemoveOrphanedWorktreeDirectory, diff --git a/src/main/worktree-removal-safety.ts b/src/main/worktree-removal-safety.ts index ef303c18220..b37a2477bc2 100644 --- a/src/main/worktree-removal-safety.ts +++ b/src/main/worktree-removal-safety.ts @@ -2,7 +2,9 @@ import { lstat, readFile } from 'node:fs/promises' import { homedir } from 'node:os' import { posix, win32 } from 'node:path' import { isWindowsAbsolutePathLike } from '../shared/cross-platform-path' -import type { GitWorktreeInfo, Repo, WorktreeMeta } from '../shared/types' +import type { Repo } from '../shared/repo-types' +import type { WorktreeMeta } from '../shared/worktree/meta-types' +import type { GitWorktreeInfo } from '../shared/worktree/types' import { areWorktreePathsEqual } from './ipc/worktree-logic' import { gitFileProvesOrphanedWorktreeDirectory, diff --git a/src/main/worktree-removal-session-partition-fencing.test.ts b/src/main/worktree-removal-session-partition-fencing.test.ts index 53b4dc805a6..89b7feafee6 100644 --- a/src/main/worktree-removal-session-partition-fencing.test.ts +++ b/src/main/worktree-removal-session-partition-fencing.test.ts @@ -5,7 +5,7 @@ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest' import { rmSync, mkdtempSync } from 'node:fs' import { join } from 'node:path' import { tmpdir } from 'node:os' -import type { TerminalTab } from '../shared/types' +import type { TerminalTab } from '../shared/terminal-tab-types' import { getDefaultWorkspaceSession } from '../shared/constants' import { toRuntimeExecutionHostId } from '../shared/execution-host' diff --git a/src/main/worktree-root-preparation.test.ts b/src/main/worktree-root-preparation.test.ts index 16adf035efe..36ad1426a79 100644 --- a/src/main/worktree-root-preparation.test.ts +++ b/src/main/worktree-root-preparation.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' const { mkdirMock, authorizeExternalPathMock } = vi.hoisted(() => ({ mkdirMock: vi.fn(), diff --git a/src/main/worktree-root-preparation.ts b/src/main/worktree-root-preparation.ts index 3edcf311012..d4cf7ead15a 100644 --- a/src/main/worktree-root-preparation.ts +++ b/src/main/worktree-root-preparation.ts @@ -1,5 +1,6 @@ import { mkdir } from 'node:fs/promises' -import type { GlobalSettings, Repo } from '../shared/types' +import type { GlobalSettings } from '../shared/global-settings-types' +import type { Repo } from '../shared/repo-types' import { getRepoExecutionHostId, LOCAL_EXECUTION_HOST_ID } from '../shared/execution-host' import { isFolderRepo } from '../shared/repo-kind' import { computeWorkspaceRoot, getWorktreePathSettings } from './ipc/worktree-logic' diff --git a/src/main/worktree-trash.test.ts b/src/main/worktree-trash.test.ts index 49a8af75a1d..5bec9f53475 100644 --- a/src/main/worktree-trash.test.ts +++ b/src/main/worktree-trash.test.ts @@ -3,7 +3,7 @@ import { mkdir, mkdtemp, readdir, rm, symlink, writeFile } from 'node:fs/promise import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it } from 'vitest' -import type { Repo } from '../shared/types' +import type { Repo } from '../shared/repo-types' import { collectWorktreeTrashSweepRoots, getWorktreeTrashRoot, diff --git a/src/main/worktree-trash.ts b/src/main/worktree-trash.ts index 5c0aa32be2b..cec17bf87cd 100644 --- a/src/main/worktree-trash.ts +++ b/src/main/worktree-trash.ts @@ -8,7 +8,8 @@ import { dirname, join } from 'node:path' import { removeHostTree } from './host-tree-removal' import { isFolderRepo } from '../shared/repo-kind' import { computeWorkspaceRoot, getWorktreePathSettings } from './ipc/worktree-logic' -import type { GlobalSettings, Repo } from '../shared/types' +import type { GlobalSettings } from '../shared/global-settings-types' +import type { Repo } from '../shared/repo-types' import { parseWslPath } from './wsl' export const WORKTREE_TRASH_DIR_NAME = '.orca-worktree-trash' diff --git a/src/preload/api/agent-account-api.ts b/src/preload/api/agent-account-api.ts index 43e8542cddd..e3688b57f5b 100644 --- a/src/preload/api/agent-account-api.ts +++ b/src/preload/api/agent-account-api.ts @@ -1,4 +1,7 @@ -import type { ClaudeRateLimitAccountsState, CodexRateLimitAccountsState } from '../../shared/types' +import type { + ClaudeRateLimitAccountsState, + CodexRateLimitAccountsState +} from '../../shared/managed-account-types' import type { CodexConfigSyncStatus } from '../../shared/codex-config-sync-types' import type { GrokAccountStatus } from '../../shared/rate-limit-types' diff --git a/src/preload/api/agent-hook-api.ts b/src/preload/api/agent-hook-api.ts index df782419c5c..c4116aa2b6d 100644 --- a/src/preload/api/agent-hook-api.ts +++ b/src/preload/api/agent-hook-api.ts @@ -1,4 +1,5 @@ -import type { OrcaHooks, WorktreeSetupLaunch } from '../../shared/types' +import type { OrcaHooks } from '../../shared/orca-yaml-hook-types' +import type { WorktreeSetupLaunch } from '../../shared/worktree/launch-types' import type { ExecutionHostId } from '../../shared/execution-host' import type { SetupScriptImportCandidate } from '../../shared/setup-script-imports' import type { AgentHookInstallStatus } from '../../shared/agent-hook-types' diff --git a/src/preload/api/app-api.ts b/src/preload/api/app-api.ts index a03960fd531..ec18110e4a9 100644 --- a/src/preload/api/app-api.ts +++ b/src/preload/api/app-api.ts @@ -5,12 +5,10 @@ import type { WriteTerminalRenderDesyncEvidenceArgs, WriteTerminalRenderDesyncEvidenceResult } from '../../shared/terminal-render-desync-evidence' -import type { - FloatingTerminalCwdRequest, - MarkdownDocument, - PersistedUIState, - WorkspaceSessionState -} from '../../shared/types' +import type { MarkdownDocument } from '../../shared/filesystem-entry-types' +import type { PersistedUIState } from '../../shared/persisted-ui-state-types' +import type { FloatingTerminalCwdRequest } from '../../shared/ui-chrome-types' +import type { WorkspaceSessionState } from '../../shared/workspace-session-state-types' export type AppApi = { /** Returns the app identity currently exposed to native chrome and the titlebar. */ diff --git a/src/preload/api/browser-api.ts b/src/preload/api/browser-api.ts index b6591162d19..6b352eff527 100644 --- a/src/preload/api/browser-api.ts +++ b/src/preload/api/browser-api.ts @@ -20,16 +20,16 @@ import type { BrowserPopupEvent } from '../../shared/browser-guest-events' import type { - BrowserCookieImportResult, BrowserCertificateFailure, BrowserCertificateProceedResult, + BrowserCookieImportResult, BrowserLoadError, BrowserSessionProfile, BrowserSessionProfileCreateOptions, BrowserSessionProfileScope, BrowserSessionProfileSource, BrowserViewportOverride -} from '../../shared/types' +} from '../../shared/browser-workspace-types' export type BrowserApi = { registerGuest: (args: { diff --git a/src/preload/api/ephemeral-vm-api.ts b/src/preload/api/ephemeral-vm-api.ts index e3b6ea202fd..96d0eae30c4 100644 --- a/src/preload/api/ephemeral-vm-api.ts +++ b/src/preload/api/ephemeral-vm-api.ts @@ -1,4 +1,4 @@ -import type { OrcaHooks } from '../../shared/types' +import type { OrcaHooks } from '../../shared/orca-yaml-hook-types' import type { PublicKnownRuntimeEnvironment } from '../../shared/runtime-environments' import type { EphemeralVmRecipeDoctorResult } from '../../shared/ephemeral-vm-recipes' import type { EphemeralVmRecipeResultWarning } from '../../shared/ephemeral-vm-recipe-diagnostics' diff --git a/src/preload/api/filesystem-api.ts b/src/preload/api/filesystem-api.ts index fdc1ac73250..63dd919b76d 100644 --- a/src/preload/api/filesystem-api.ts +++ b/src/preload/api/filesystem-api.ts @@ -1,10 +1,9 @@ +import type { SearchOptions, SearchResult } from '../../shared/code-search-types' import type { DirEntry, FsChangedPayload, - MarkdownDocument, - SearchOptions, - SearchResult -} from '../../shared/types' + MarkdownDocument +} from '../../shared/filesystem-entry-types' import type { LocalLogTailChangedPayload, LocalLogTailReadArgs, diff --git a/src/preload/api/git-inspection-api.ts b/src/preload/api/git-inspection-api.ts index c23bcdeecaa..b71234d2d0c 100644 --- a/src/preload/api/git-inspection-api.ts +++ b/src/preload/api/git-inspection-api.ts @@ -1,13 +1,15 @@ import type { GitBranchCompareResult, GitCommitCompareResult, + GitDiffResult +} from '../../shared/git-diff-compare-types' +import type { GitConflictOperation, - GitDiffResult, - GitPushTarget, GitStagingArea, GitStatusResult, GitUpstreamStatus -} from '../../shared/types' +} from '../../shared/git-status-types' +import type { GitPushTarget } from '../../shared/worktree/types' import type { GitHistoryOptions, GitHistoryResult } from '../../shared/git-history' import type { CommitMessageAgentCapability, diff --git a/src/preload/api/git-operation-api.ts b/src/preload/api/git-operation-api.ts index fee33db4efd..d71f95c8537 100644 --- a/src/preload/api/git-operation-api.ts +++ b/src/preload/api/git-operation-api.ts @@ -1,9 +1,6 @@ -import type { - GitForkSyncExpectedUpstream, - GitForkSyncResult, - GitPushTarget, - TuiAgent -} from '../../shared/types' +import type { GitForkSyncExpectedUpstream, GitForkSyncResult } from '../../shared/git-fork-sync' +import type { TuiAgent } from '../../shared/tui-agent' +import type { GitPushTarget } from '../../shared/worktree/types' import type { HostedReviewProvider } from '../../shared/hosted-review' import type { ResolvedSourceControlAiGenerationParams } from '../../shared/source-control-ai' import type { SourceControlAiSettings } from '../../shared/source-control-ai-types' diff --git a/src/preload/api/github-pull-request-api.ts b/src/preload/api/github-pull-request-api.ts index 245453cb18f..76f407598b2 100644 --- a/src/preload/api/github-pull-request-api.ts +++ b/src/preload/api/github-pull-request-api.ts @@ -1,25 +1,28 @@ import type { AppStarSource } from '../../shared/gh-star-source' import type { GhAuthDiagnostic } from '../../shared/github/auth-types' import type { TaskSourceContext } from '../../shared/task-source-context' +import type { PRCheckDetail, PRCheckRunDetails } from '../../shared/github/check-types' import type { - GetRateLimitResult, GitHubCommentResult, - GitHubOwnerRepo, - GitHubPRFile, - GitHubPRFileContents, + GitHubPRReviewCommentInput, + GitHubReactionContent, + PRComment +} from '../../shared/github/comment-types' +import type { GitHubPRRefreshCandidate, GitHubPRRefreshEnqueueResult, GitHubPRRefreshEvent, GitHubPRRefreshReason, - GitHubPRReviewCommentInput, - GitHubReactionContent, - GitHubViewer, - PRCheckDetail, - PRCheckRunDetails, - PRComment, - PRInfo, PRRefreshOutcome -} from '../../shared/types' +} from '../../shared/github/pull-request-refresh-types' +import type { + GitHubOwnerRepo, + GitHubPRFile, + GitHubPRFileContents, + GitHubViewer, + PRInfo +} from '../../shared/github/pull-request-types' +import type { GetRateLimitResult } from '../../shared/github/rate-limit-types' import type { GitHubRepoSelectorArgs } from './github-work-item-api' export type GithubPullRequestApi = { diff --git a/src/preload/api/github-work-item-api.ts b/src/preload/api/github-work-item-api.ts index e302e4517a8..064a8ed890b 100644 --- a/src/preload/api/github-work-item-api.ts +++ b/src/preload/api/github-work-item-api.ts @@ -27,17 +27,18 @@ import type { UpdatePullRequestBySlugArgs } from '../../shared/github/project-types' import type { TaskSourceContext } from '../../shared/task-source-context' +import type { GitHubCommentResult } from '../../shared/github/comment-types' import type { GitHubAssignableUser, - GitHubCommentResult, - GitHubCreateIssueResult, - GitHubIssueUpdate, GitHubOwnerRepo, + IssueInfo +} from '../../shared/github/pull-request-types' +import type { GitHubWorkItem, GitHubWorkItemDetails, - IssueInfo, ListWorkItemsResult -} from '../../shared/types' +} from '../../shared/github/work-item-types' +import type { GitHubCreateIssueResult, GitHubIssueUpdate } from '../../shared/issue-mutation-types' export type GitHubRepoSelectorArgs = { repoPath: string diff --git a/src/preload/api/gitlab-api.ts b/src/preload/api/gitlab-api.ts index b1467a891f4..ecde3880083 100644 --- a/src/preload/api/gitlab-api.ts +++ b/src/preload/api/gitlab-api.ts @@ -1,6 +1,6 @@ import type { TaskSourceContext } from '../../shared/task-source-context' +import type { ClassifiedError } from '../../shared/classified-error' import type { - ClassifiedError, GetGitLabRateLimitResult, GitLabAssignableUser, GitLabAuthDiagnostic, @@ -21,7 +21,7 @@ import type { ListMergeRequestsResult, MRInfo, MRListState -} from '../../shared/types' +} from '../../shared/gitlab-types' export type GitLabRepoSelectorArgs = { repoPath: string diff --git a/src/preload/api/jira-api.ts b/src/preload/api/jira-api.ts index d452bd9728d..1294850c284 100644 --- a/src/preload/api/jira-api.ts +++ b/src/preload/api/jira-api.ts @@ -14,7 +14,7 @@ import type { JiraTransition, JiraUser, JiraViewer -} from '../../shared/types' +} from '../../shared/jira-types' export type JiraApi = { connect: (args: { diff --git a/src/preload/api/linear-api.ts b/src/preload/api/linear-api.ts index 613837c4fa4..0b924953d86 100644 --- a/src/preload/api/linear-api.ts +++ b/src/preload/api/linear-api.ts @@ -1,21 +1,22 @@ import type { LinearIssueAttributeFilter } from '../../shared/linear/issue-attribute-filter' +import type { LinearIssueUpdate } from '../../shared/issue-mutation-types' +import type { LinearComment, LinearIssue } from '../../shared/linear/issue-types' import type { - LinearCollectionResult, - LinearComment, - LinearConnectionStatus, LinearCustomViewModel, LinearCustomViewSummary, - LinearIssue, - LinearIssueUpdate, + LinearProjectDetail, + LinearProjectSummary +} from '../../shared/linear/project-types' +import type { + LinearCollectionResult, + LinearConnectionStatus, LinearLabel, LinearMember, - LinearProjectDetail, - LinearProjectSummary, LinearTeam, LinearViewer, LinearWorkflowState, LinearWorkspaceSelection -} from '../../shared/types' +} from '../../shared/linear/workspace-types' export type LinearApi = { connect: (args: { diff --git a/src/preload/api/onboarding-api.ts b/src/preload/api/onboarding-api.ts index 678a6b38294..ba9f10c1a18 100644 --- a/src/preload/api/onboarding-api.ts +++ b/src/preload/api/onboarding-api.ts @@ -1,4 +1,4 @@ -import type { OnboardingState } from '../../shared/types' +import type { OnboardingState } from '../../shared/onboarding-state-types' export type OnboardingApi = { get: () => Promise diff --git a/src/preload/api/os-permission-api.ts b/src/preload/api/os-permission-api.ts index fc452df1196..8718cfc29a5 100644 --- a/src/preload/api/os-permission-api.ts +++ b/src/preload/api/os-permission-api.ts @@ -11,13 +11,13 @@ import type { LocalNetworkConnectionTestResult } from '../../shared/developer-permissions-types' import type { - NotificationDispatchRequest, - NotificationDispatchResult, NotificationDeliveryProbeResult, NotificationDismissResult, + NotificationDispatchRequest, + NotificationDispatchResult, NotificationPermissionStatusResult, NotificationSoundResult -} from '../../shared/types' +} from '../../shared/notification-settings-types' export type NotificationsApi = { dispatch: (args: NotificationDispatchRequest) => Promise diff --git a/src/preload/api/pet-api.ts b/src/preload/api/pet-api.ts index e0031cb8e36..8dffdda300b 100644 --- a/src/preload/api/pet-api.ts +++ b/src/preload/api/pet-api.ts @@ -1,4 +1,4 @@ -import type { CustomPet } from '../../shared/types' +import type { CustomPet } from '../../shared/pet-types' export type PetApi = { import: () => Promise diff --git a/src/preload/api/preflight-api.ts b/src/preload/api/preflight-api.ts index f63099a07ec..8535bb35f8c 100644 --- a/src/preload/api/preflight-api.ts +++ b/src/preload/api/preflight-api.ts @@ -1,5 +1,8 @@ import type { ProjectExecutionRuntimeResolution } from '../../shared/project-execution-runtime' -import type { PathSource, ShellHydrationFailureReason } from '../../shared/types' +import type { + PathSource, + ShellHydrationFailureReason +} from '../../shared/shell-path-hydration-types' export type PreflightStatus = { git: { installed: boolean } diff --git a/src/preload/api/pty-api.ts b/src/preload/api/pty-api.ts index 774196b6a01..d69d906047d 100644 --- a/src/preload/api/pty-api.ts +++ b/src/preload/api/pty-api.ts @@ -14,7 +14,7 @@ import type { import type { AgentKind, LaunchSource, RequestKind } from '../../shared/telemetry-events' import type { TerminalSideEffectBatch } from '../../shared/terminal-side-effect-facts' import type { TerminalViewAttributes } from '../../shared/terminal-view-attributes' -import type { TuiAgent } from '../../shared/types' +import type { TuiAgent } from '../../shared/tui-agent' import type { PtyManagementApi } from './pty-management-api' export type PtyApi = { diff --git a/src/preload/api/repository-api.ts b/src/preload/api/repository-api.ts index 1734c35bdc7..91f4834a938 100644 --- a/src/preload/api/repository-api.ts +++ b/src/preload/api/repository-api.ts @@ -4,13 +4,13 @@ import type { ListReposForExecutionHostArgs } from '../../shared/host-repo-catalog-contract' import type { - BaseRefDefaultResult, - BaseRefSearchResult, NestedRepoScanResult, - Project, ProjectGroup, ProjectGroupImportMode, - ProjectGroupImportResult, + ProjectGroupImportResult +} from '../../shared/project-group-types' +import type { + Project, ProjectHostSetup, ProjectHostSetupCreateArgs, ProjectHostSetupCreateResult, @@ -20,9 +20,9 @@ import type { ProjectHostSetupResult, ProjectHostSetupUpdateArgs, ProjectHostSetupUpdateResult, - ProjectUpdateArgs, - Repo -} from '../../shared/types' + ProjectUpdateArgs +} from '../../shared/project-types' +import type { BaseRefDefaultResult, BaseRefSearchResult, Repo } from '../../shared/repo-types' export type RepositoryApi = { list: () => Promise diff --git a/src/preload/api/settings-api.ts b/src/preload/api/settings-api.ts index b50843160dd..30f84c59b39 100644 --- a/src/preload/api/settings-api.ts +++ b/src/preload/api/settings-api.ts @@ -3,7 +3,7 @@ import type { WarpThemeImportPreview, WarpThemeImportSource } from '../../shared/terminal-custom-themes' -import type { GhosttyImportPreview, GlobalSettings } from '../../shared/types' +import type { GhosttyImportPreview, GlobalSettings } from '../../shared/global-settings-types' export type SettingsApi = { get: () => Promise diff --git a/src/preload/api/ssh-api.ts b/src/preload/api/ssh-api.ts index b25f1713e16..6740819fa19 100644 --- a/src/preload/api/ssh-api.ts +++ b/src/preload/api/ssh-api.ts @@ -9,7 +9,7 @@ import type { SshTarget, SshTargetAddResult } from '../../shared/ssh-types' -import type { FilesystemPathFlavor } from '../../shared/types' +import type { FilesystemPathFlavor } from '../../shared/filesystem-entry-types' export type SshApi = { listTargets: () => Promise diff --git a/src/preload/api/telemetry-api.ts b/src/preload/api/telemetry-api.ts index 9fc70f908b7..99f9fbad4b0 100644 --- a/src/preload/api/telemetry-api.ts +++ b/src/preload/api/telemetry-api.ts @@ -1,5 +1,5 @@ import type { TelemetryConsentState } from '../../shared/telemetry-consent-types' -import type { MemorySnapshot, StatsSummary } from '../../shared/types' +import type { MemorySnapshot, StatsSummary } from '../../shared/process-stats-types' export type StatsApi = { getSummary: () => Promise diff --git a/src/preload/api/ui-command-event-api.ts b/src/preload/api/ui-command-event-api.ts index 4de95063d42..6ec32503057 100644 --- a/src/preload/api/ui-command-event-api.ts +++ b/src/preload/api/ui-command-event-api.ts @@ -1,10 +1,10 @@ +import type { PersistedUIState } from '../../shared/persisted-ui-state-types' +import type { TuiAgent } from '../../shared/tui-agent' import type { - PersistedUIState, - TuiAgent, WorktreeDefaultTabsLaunch, WorktreeSetupLaunch, WorktreeStartupLaunch -} from '../../shared/types' +} from '../../shared/worktree/launch-types' import type { FeatureInteractionId } from '../../shared/feature-interactions' import type { KeybindingActionId } from '../../shared/keybindings' import type { BrowserFindSource } from '../../shared/browser-find-source' diff --git a/src/preload/api/updater-api.ts b/src/preload/api/updater-api.ts index f6a43da9834..0a3590e8035 100644 --- a/src/preload/api/updater-api.ts +++ b/src/preload/api/updater-api.ts @@ -3,7 +3,7 @@ import type { ReleaseBuildListResult, UpdateCheckOptions, UpdateStatus -} from '../../shared/types' +} from '../../shared/update-status-types' import type { ReleaseChannel } from '../../shared/release-channel' export type UpdaterApi = { diff --git a/src/preload/api/workspace-session-api.ts b/src/preload/api/workspace-session-api.ts index 35eb17486d7..1d2a87bfeb1 100644 --- a/src/preload/api/workspace-session-api.ts +++ b/src/preload/api/workspace-session-api.ts @@ -1,9 +1,8 @@ +import type { IssueInfo, PRInfo } from '../../shared/github/pull-request-types' import type { - IssueInfo, - PRInfo, WorkspaceSessionPatch, WorkspaceSessionState -} from '../../shared/types' +} from '../../shared/workspace-session-state-types' import type { ExecutionHostId } from '../../shared/execution-host' import type { RemoteWorkspaceChangedEvent, diff --git a/src/preload/api/worktree-api.ts b/src/preload/api/worktree-api.ts index 96089d10e88..20c352af9d3 100644 --- a/src/preload/api/worktree-api.ts +++ b/src/preload/api/worktree-api.ts @@ -17,25 +17,28 @@ import type { HostLineageSnapshot, ListDesktopLineageForHostArgs } from '../../shared/host-lineage-contract' +import type { FolderWorkspace } from '../../shared/folder-workspace-types' +import type { + WorktreeBaseStatusEvent, + WorktreeRemoteBranchConflictEvent +} from '../../shared/worktree/base-ref-drift-types' import type { AdoptProvisionedRootArgs, CreateWorktreeArgs, CreateWorktreeResult, - DetectedWorktreeListResult, - FolderWorkspace, ForceDeleteWorktreeBranchResult, + RemoveWorktreeResult, + SparsePreset +} from '../../shared/worktree/create-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../shared/worktree/lineage-types' +import type { WorktreeMeta } from '../../shared/worktree/meta-types' +import type { + DetectedWorktreeListResult, GitHubPrStartPoint, GitPushTarget, - RemoveWorktreeResult, - SparsePreset, - WorkspaceLineage, Worktree, - WorktreeBaseStatusEvent, - WorktreeHeadIdentity, - WorktreeLineage, - WorktreeMeta, - WorktreeRemoteBranchConflictEvent -} from '../../shared/types' + WorktreeHeadIdentity +} from '../../shared/worktree/types' export type WorktreeApi = { list: (args: { repoId: string }) => Promise diff --git a/src/preload/index.ts b/src/preload/index.ts index d90bd2a978e..17db7429632 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -61,54 +61,55 @@ import type { } from '../shared/plugins/plugin-panel-bridge' import type { PluginConsentRequest } from '../shared/plugins/plugin-consent-request' import type { PluginChangeEvent } from '../shared/plugins/plugin-change-event' +import type { BrowserViewportOverride } from '../shared/browser-workspace-types' +import type { SearchResult } from '../shared/code-search-types' import type { - BaseRefSearchResult, - BaseRefDefaultResult, - BrowserViewportOverride, - CustomPet, - FsChangedPayload, FilesystemPathFlavor, - GetRateLimitResult, + FsChangedPayload, + MarkdownDocument +} from '../shared/filesystem-entry-types' +import type { GitForkSyncExpectedUpstream, GitForkSyncResult } from '../shared/git-fork-sync' +import type { GitStagingArea, GitUpstreamStatus } from '../shared/git-status-types' +import type { GitHubCommentResult, GitHubReactionContent } from '../shared/github/comment-types' +import type { GitHubPRRefreshCandidate, GitHubPRRefreshEvent, - GitHubPRRefreshReason, - GitHubAssignableUser, - GitHubCommentResult, - GitHubCreateIssueResult, - GitHubOwnerRepo, - GitHubReactionContent, - GitHubWorkItem, - JiraProjectStatusOrder, - GitPushTarget, - GitStagingArea, - GitForkSyncExpectedUpstream, - GitForkSyncResult, - GitUpstreamStatus, - GhosttyImportPreview, - ListWorkItemsResult, - LinearProjectDetail, - MemorySnapshot, + GitHubPRRefreshReason +} from '../shared/github/pull-request-refresh-types' +import type { GitHubAssignableUser, GitHubOwnerRepo } from '../shared/github/pull-request-types' +import type { GetRateLimitResult } from '../shared/github/rate-limit-types' +import type { GitHubWorkItem, ListWorkItemsResult } from '../shared/github/work-item-types' +import type { GhosttyImportPreview } from '../shared/global-settings-types' +import type { GitHubCreateIssueResult } from '../shared/issue-mutation-types' +import type { JiraProjectStatusOrder } from '../shared/jira-types' +import type { LinearProjectDetail } from '../shared/linear/project-types' +import type { + NotificationDeliveryProbeResult, NotificationDismissResult, NotificationDispatchResult, - NotificationDeliveryProbeResult, NotificationPermissionStatusResult, NotificationSoundDataResult, NotificationSoundPathResult, - NotificationSoundResult, - NestedRepoScanResult, - OnboardingState, - PersistedUIState, - FloatingTerminalCwdRequest, - MarkdownDocument, - SearchResult, - TuiAgent, - UpdateStatus, + NotificationSoundResult +} from '../shared/notification-settings-types' +import type { OnboardingState } from '../shared/onboarding-state-types' +import type { PersistedUIState } from '../shared/persisted-ui-state-types' +import type { CustomPet } from '../shared/pet-types' +import type { MemorySnapshot } from '../shared/process-stats-types' +import type { NestedRepoScanResult } from '../shared/project-group-types' +import type { BaseRefDefaultResult, BaseRefSearchResult } from '../shared/repo-types' +import type { TuiAgent } from '../shared/tui-agent' +import type { FloatingTerminalCwdRequest } from '../shared/ui-chrome-types' +import type { UpdateStatus } from '../shared/update-status-types' +import type { WorktreeBaseStatusEvent, + WorktreeRemoteBranchConflictEvent +} from '../shared/worktree/base-ref-drift-types' +import type { WorktreeDefaultTabsLaunch, - WorktreeHeadIdentity, - WorktreeRemoteBranchConflictEvent, WorktreeSetupLaunch -} from '../shared/types' +} from '../shared/worktree/launch-types' +import type { GitPushTarget, WorktreeHeadIdentity } from '../shared/worktree/types' import type { PtyModelRestoreNeededEvent } from '../shared/pty-model-restore-marker' import type { PtyListedSession } from '../shared/pty-listed-session' import type { diff --git a/src/preload/renderer-restart-wiring.ts b/src/preload/renderer-restart-wiring.ts index 0a177dd55b0..2dd0ad316aa 100644 --- a/src/preload/renderer-restart-wiring.ts +++ b/src/preload/renderer-restart-wiring.ts @@ -4,7 +4,7 @@ import { prepareRendererForAppRestart, type UpdaterQuitAbortRelay } from '../shared/renderer-restart-preparation' -import type { UpdateStatus } from '../shared/types' +import type { UpdateStatus } from '../shared/update-status-types' import { ORCA_APP_RESTART_ABORTED_EVENT, ORCA_APP_RESTART_STARTED_EVENT, diff --git a/src/preload/ssh-authority-forwarding.test.ts b/src/preload/ssh-authority-forwarding.test.ts index 1292d09e032..34179e1e7fa 100644 --- a/src/preload/ssh-authority-forwarding.test.ts +++ b/src/preload/ssh-authority-forwarding.test.ts @@ -5,7 +5,7 @@ import type { HostQualifiedDetectedWorktreeResult, ListDetectedWorktreesArgs } from '../shared/detected-worktree-provider-contract' -import type { DetectedWorktreeListResult } from '../shared/types' +import type { DetectedWorktreeListResult } from '../shared/worktree/types' function listDetectedVariableTypeProbe(api: PreloadApi, args: ListDetectedWorktreesArgs) { return api.worktrees.listDetected(args) diff --git a/src/relay/fs-handler-utils.ts b/src/relay/fs-handler-utils.ts index 83726c686bf..a9df29dd2f2 100644 --- a/src/relay/fs-handler-utils.ts +++ b/src/relay/fs-handler-utils.ts @@ -15,7 +15,7 @@ import { SEARCH_TIMEOUT_MS as SHARED_SEARCH_TIMEOUT_MS } from '../shared/text-search' import { IMAGE_FILE_MIME_TYPES } from '../shared/image-file-extensions' -import type { SearchResult as SharedSearchResult } from '../shared/types' +import type { SearchResult as SharedSearchResult } from '../shared/code-search-types' import { absorbPendingRipgrepSpawnError, isRipgrepUnavailableAfterLaunchFailure, diff --git a/src/relay/git-handler-push-target.ts b/src/relay/git-handler-push-target.ts index dfbed1a9186..40765491c56 100644 --- a/src/relay/git-handler-push-target.ts +++ b/src/relay/git-handler-push-target.ts @@ -1,6 +1,6 @@ import { assertGitPushTargetShape } from '../shared/git-push-target-validation' import { gitRefTargetsBranchOnRemote } from '../shared/git-remote-branch-name' -import type { GitPushTarget } from '../shared/types' +import type { GitPushTarget } from '../shared/worktree/types' type RelayGit = (args: string[], cwd: string) => Promise<{ stdout: string; stderr: string }> diff --git a/src/relay/git-handler-status-ops.ts b/src/relay/git-handler-status-ops.ts index a9d0b63ea8a..f87311c2cb3 100644 --- a/src/relay/git-handler-status-ops.ts +++ b/src/relay/git-handler-status-ops.ts @@ -8,7 +8,7 @@ import { readFile } from 'node:fs/promises' import { parseUnmergedEntry } from './git-handler-utils' import type { GitExec } from './git-handler-ops' import type { RelayGitStreamExec } from './git-stdout-stream' -import type { GitUpstreamStatus } from '../shared/types' +import type { GitUpstreamStatus } from '../shared/git-status-types' import { StatusPorcelainParser } from '../shared/git-status-porcelain-parser' import { splitRemoteBranchName } from '../shared/git-effective-upstream' import { readOrProbeNoEffectiveUpstreamStatus } from './git-status-upstream-negative-cache' diff --git a/src/relay/git-handler-worktree-remove.ts b/src/relay/git-handler-worktree-remove.ts index 80bf08c25fe..474e03bab88 100644 --- a/src/relay/git-handler-worktree-remove.ts +++ b/src/relay/git-handler-worktree-remove.ts @@ -1,5 +1,5 @@ import * as path from 'node:path' -import type { RemoveWorktreeResult } from '../shared/types' +import type { RemoveWorktreeResult } from '../shared/worktree/create-types' import { assertWorktreeUnlockedForRemoval } from '../shared/worktree/removal' import { isSubmoduleWorktreeRemovalRefusal } from '../shared/worktree/submodule-removal' import { deleteAlreadyMergedRelayBranchAfterSafeDeleteFailure } from './git-handler-branch-cleanup' diff --git a/src/relay/git-handler.ts b/src/relay/git-handler.ts index 3e8a20ea992..0558f710970 100644 --- a/src/relay/git-handler.ts +++ b/src/relay/git-handler.ts @@ -61,7 +61,7 @@ import { upstreamOnlyCommitsArePatchEquivalent } from '../shared/git-upstream-st import { assertGitPushTargetShape } from '../shared/git-push-target-validation' import { getPublishTargetStatus, type GitCommandRunner } from '../shared/git-publish-target-status' import { resolveGitRemoteRebaseSource } from '../shared/git-rebase-source' -import type { GitPushTarget } from '../shared/types' +import type { GitPushTarget } from '../shared/worktree/types' import { getEffectiveGitUpstreamStatus, resolveEffectiveGitUpstream diff --git a/src/relay/git-status-upstream-negative-cache.ts b/src/relay/git-status-upstream-negative-cache.ts index e3ad9239cc9..f3dcd2df663 100644 --- a/src/relay/git-status-upstream-negative-cache.ts +++ b/src/relay/git-status-upstream-negative-cache.ts @@ -1,7 +1,7 @@ import { createGitConfigSnapshotRunner } from '../shared/git-config-snapshot-runner' import { getEffectiveGitUpstreamStatus } from '../shared/git-effective-upstream' import type { GitCommandRunner } from '../shared/git-effective-upstream' -import type { GitUpstreamStatus } from '../shared/types' +import type { GitUpstreamStatus } from '../shared/git-status-types' const NO_EFFECTIVE_UPSTREAM_CACHE_TTL_MS = 5 * 60_000 const MAX_NO_EFFECTIVE_UPSTREAM_CACHE_ENTRIES = 512 diff --git a/src/relay/pty-handler.ts b/src/relay/pty-handler.ts index faa12d5093b..c077378ebda 100644 --- a/src/relay/pty-handler.ts +++ b/src/relay/pty-handler.ts @@ -44,7 +44,7 @@ import { mergeGitConfigEnvProtocol } from '../shared/git-credential-prompt-env' import { isTuiAgent } from '../shared/tui-agent-config' -import type { TuiAgent } from '../shared/types' +import type { TuiAgent } from '../shared/tui-agent' import { forceKillPosixPtyProcessGroups } from '../main/pty/posix-pty-process-groups' import { stripInheritedBuildModeEnv } from '../main/pty/build-mode-env' import { stripLegacyTerminalShimEnv } from '../main/pty/legacy-terminal-shim-dir' diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index 02d9a2c38ba..f85eb212265 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -176,7 +176,8 @@ import { selectFloatingVisibleTabCount } from './store/selectors' import { selectActiveTerminalChromeState } from './store/active-terminal-chrome-selector' import type { VirtualizedScrollAnchor } from './hooks/useVirtualizedScrollAnchor' import type { RemoteWorkspacePatchResult } from '../../shared/remote-workspace-types' -import type { OnboardingState, UpdateStatus } from '../../shared/types' +import type { OnboardingState } from '../../shared/onboarding-state-types' +import type { UpdateStatus } from '../../shared/update-status-types' import { getFeatureTipsAppOpenDecision, isCliFeatureTipCompleted diff --git a/src/renderer/src/components/GitHubItemDialog.tsx b/src/renderer/src/components/GitHubItemDialog.tsx index bba079e9f6d..fea34534873 100644 --- a/src/renderer/src/components/GitHubItemDialog.tsx +++ b/src/renderer/src/components/GitHubItemDialog.tsx @@ -186,22 +186,22 @@ import { import { startFixChecksAgent } from '@/lib/fix-checks-agent-launch' import { activateAndRevealWorktree } from '@/lib/worktree-activation' import { buildFixBrokenChecksPrompt, getBrokenChecks } from '@/components/pr-checks-fix-prompt' +import type { GitBranchChangeEntry, GitDiffResult } from '../../../shared/git-diff-compare-types' +import type { PRCheckDetail } from '../../../shared/github/check-types' import type { + GitHubIssueTimelineItem, + GitHubIssueTimelineTarget, + PRComment +} from '../../../shared/github/comment-types' +import type { + GitHubAssignableUser, GitHubOwnerRepo, GitHubPRFile, GitHubPRFileContents, GitHubPRFileViewedState, - GitHubWorkItem, - GitHubWorkItemDetails, - GitHubIssueTimelineItem, - GitHubIssueTimelineTarget, - GitHubAssignableUser, - GitHubPRMergeMethod, - GitBranchChangeEntry, - GitDiffResult, - PRCheckDetail, - PRComment -} from '../../../shared/types' + GitHubPRMergeMethod +} from '../../../shared/github/pull-request-types' +import type { GitHubWorkItem, GitHubWorkItemDetails } from '../../../shared/github/work-item-types' import { getTaskSourceCacheScope, getTaskSourceRuntimeSettings, diff --git a/src/renderer/src/components/GitLabItemDialog.tsx b/src/renderer/src/components/GitLabItemDialog.tsx index 4d3b0f0d722..7dcf2fba06d 100644 --- a/src/renderer/src/components/GitLabItemDialog.tsx +++ b/src/renderer/src/components/GitLabItemDialog.tsx @@ -44,12 +44,12 @@ import { import { useAppStore } from '@/store' import type { GitLabAssignableUser, - GitLabPipelineJob, GitLabMRUpdate, + GitLabPipelineJob, GitLabWorkItem, GitLabWorkItemDetails, MRComment -} from '../../../shared/types' +} from '../../../shared/gitlab-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/JiraIssueWorkspace.tsx b/src/renderer/src/components/JiraIssueWorkspace.tsx index 969765c4dca..b1f2078900c 100644 --- a/src/renderer/src/components/JiraIssueWorkspace.tsx +++ b/src/renderer/src/components/JiraIssueWorkspace.tsx @@ -45,7 +45,7 @@ import type { JiraPriority, JiraTransition, JiraUser -} from '../../../shared/types' +} from '../../../shared/jira-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { translate } from '@/i18n/i18n' import { formatUiRelativeTimeFromDate } from '@/i18n/relative-time-format' diff --git a/src/renderer/src/components/Landing.tsx b/src/renderer/src/components/Landing.tsx index bcf5c66ec1f..701863a1ef9 100644 --- a/src/renderer/src/components/Landing.tsx +++ b/src/renderer/src/components/Landing.tsx @@ -3,7 +3,7 @@ import { AlertTriangle, ExternalLink, FolderPlus, GitBranchPlus, Star, X } from import { cn } from '../lib/utils' import { useAppStore } from '../store' import { isGitRepoKind } from '../../../shared/repo-kind' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { dismissPreflightIssue, githubProjectKeys, diff --git a/src/renderer/src/components/LinearIssueTextEditor.tsx b/src/renderer/src/components/LinearIssueTextEditor.tsx index e00f508a7ac..42db6a5c4c8 100644 --- a/src/renderer/src/components/LinearIssueTextEditor.tsx +++ b/src/renderer/src/components/LinearIssueTextEditor.tsx @@ -8,7 +8,7 @@ import { cn } from '@/lib/utils' import { useAppStore } from '@/store' import { getScreenSubmitShortcutLabel, isScreenSubmitShortcut } from '@/lib/screen-submit-shortcut' import { linearUpdateIssue } from '@/runtime/runtime-linear-client' -import type { LinearIssue } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { getLinearIssueTextSavePlan, diff --git a/src/renderer/src/components/LinearIssueWorkspace.tsx b/src/renderer/src/components/LinearIssueWorkspace.tsx index 690f2d42655..7c92ca1d618 100644 --- a/src/renderer/src/components/LinearIssueWorkspace.tsx +++ b/src/renderer/src/components/LinearIssueWorkspace.tsx @@ -70,9 +70,9 @@ import { import type { LinearComment, LinearIssue, - LinearIssueChildSummary, - LinearProjectSummary -} from '../../../shared/types' + LinearIssueChildSummary +} from '../../../shared/linear/issue-types' +import type { LinearProjectSummary } from '../../../shared/linear/project-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/LinearItemDrawer.tsx b/src/renderer/src/components/LinearItemDrawer.tsx index 82053896d36..5cbd0cc2a3b 100644 --- a/src/renderer/src/components/LinearItemDrawer.tsx +++ b/src/renderer/src/components/LinearItemDrawer.tsx @@ -57,7 +57,7 @@ import { getLinearStatePillStyle } from '@/components/linear-state-pill-style' import { LinearPriorityIcon } from '@/components/linear-priority-icon' -import type { LinearIssue, LinearComment } from '../../../shared/types' +import type { LinearComment, LinearIssue } from '../../../shared/linear/issue-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { linearAddIssueComment, diff --git a/src/renderer/src/components/LinuxPackageInstallRecoveryCard.test.tsx b/src/renderer/src/components/LinuxPackageInstallRecoveryCard.test.tsx index e0685b55fbe..0c44cf153e5 100644 --- a/src/renderer/src/components/LinuxPackageInstallRecoveryCard.test.tsx +++ b/src/renderer/src/components/LinuxPackageInstallRecoveryCard.test.tsx @@ -2,7 +2,7 @@ import { act, cleanup, fireEvent, render, screen, type RenderResult } from '@testing-library/react' import userEvent from '@testing-library/user-event' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { LinuxPackageInstallRecovery } from '../../../shared/types' +import type { LinuxPackageInstallRecovery } from '../../../shared/update-status-types' import { LinuxPackageInstallRecoveryCard } from './LinuxPackageInstallRecoveryCard' const RELEASE_URL = 'https://github.com/stablyai/orca/releases/tag/v1.4.200' diff --git a/src/renderer/src/components/LinuxPackageInstallRecoveryCard.tsx b/src/renderer/src/components/LinuxPackageInstallRecoveryCard.tsx index 3d89b7ee6b7..69a0f73d627 100644 --- a/src/renderer/src/components/LinuxPackageInstallRecoveryCard.tsx +++ b/src/renderer/src/components/LinuxPackageInstallRecoveryCard.tsx @@ -2,7 +2,7 @@ import { useCallback, useEffect, useRef, useState } from 'react' import type { LinuxPackageInstallInstructions, LinuxPackageInstallRecovery -} from '../../../shared/types' +} from '../../../shared/update-status-types' import { UpdateErrorCardContent } from './UpdateErrorCardContent' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/NewWorkspaceComposerCard.tsx b/src/renderer/src/components/NewWorkspaceComposerCard.tsx index b9683150d17..4606a625c07 100644 --- a/src/renderer/src/components/NewWorkspaceComposerCard.tsx +++ b/src/renderer/src/components/NewWorkspaceComposerCard.tsx @@ -34,16 +34,13 @@ import { } from '@/lib/text-control-paste' import { getScreenSubmitModifierLabel } from '@/lib/screen-submit-shortcut' import { useContextualTour } from '@/components/contextual-tours/use-contextual-tour' -import type { - GitHubWorkItem, - GitLabWorkItem, - JiraIssue, - LinearIssue, - SetupAgentStartupPolicy, - OrcaHooks, - SparsePreset, - TuiAgent -} from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { GitLabWorkItem } from '../../../shared/gitlab-types' +import type { JiraIssue } from '../../../shared/jira-types' +import type { LinearIssue } from '../../../shared/linear/issue-types' +import type { OrcaHooks, SetupAgentStartupPolicy } from '../../../shared/orca-yaml-hook-types' +import type { TuiAgent } from '../../../shared/tui-agent' +import type { SparsePreset } from '../../../shared/worktree/create-types' import SparseCheckoutPresetSelect from '@/components/sparse/SparseCheckoutPresetSelect' import SmartWorkspaceNameField, { type SmartWorkspaceNameSelection diff --git a/src/renderer/src/components/NewWorkspaceComposerModal.tsx b/src/renderer/src/components/NewWorkspaceComposerModal.tsx index aa46a10f7bf..77b9cf64e52 100644 --- a/src/renderer/src/components/NewWorkspaceComposerModal.tsx +++ b/src/renderer/src/components/NewWorkspaceComposerModal.tsx @@ -19,12 +19,10 @@ import { import type { LinkedWorkItemSummary } from '@/lib/new-workspace' import { shouldAllowComposerEnterSubmitTarget } from '@/lib/new-workspace-enter-guard' import { isScreenSubmitShortcut } from '@/lib/screen-submit-shortcut' -import type { - GitHubWorkItem, - TuiAgent, - WorkspaceCreateTelemetrySource, - WorkspaceStatus -} from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { TuiAgent } from '../../../shared/tui-agent' +import type { WorkspaceSource as WorkspaceCreateTelemetrySource } from '../../../shared/workspace-source' +import type { WorkspaceStatus } from '../../../shared/worktree/types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { translate } from '@/i18n/i18n' import { getWorkspaceComposerInitialFocusTarget } from '@/lib/workspace-composer-initial-focus' diff --git a/src/renderer/src/components/PullRequestPage.tsx b/src/renderer/src/components/PullRequestPage.tsx index f47b452b573..e495583ab4d 100644 --- a/src/renderer/src/components/PullRequestPage.tsx +++ b/src/renderer/src/components/PullRequestPage.tsx @@ -193,20 +193,18 @@ import { saveSourceControlActionRecipe, type SourceControlAiWriteTarget } from '../../../shared/source-control-ai-recipe-save' +import type { GitBranchChangeEntry, GitDiffResult } from '../../../shared/git-diff-compare-types' +import type { PRCheckDetail } from '../../../shared/github/check-types' +import type { PRComment } from '../../../shared/github/comment-types' import type { + GitHubAssignableUser, GitHubOwnerRepo, GitHubPRFile, GitHubPRFileContents, GitHubPRFileViewedState, - GitHubWorkItem, - GitHubWorkItemDetails, - GitHubAssignableUser, - GitHubPRMergeMethod, - GitBranchChangeEntry, - GitDiffResult, - PRCheckDetail, - PRComment -} from '../../../shared/types' + GitHubPRMergeMethod +} from '../../../shared/github/pull-request-types' +import type { GitHubWorkItem, GitHubWorkItemDetails } from '../../../shared/github/work-item-types' import { getTaskSourceCacheScope, getTaskSourceRuntimeSettings, diff --git a/src/renderer/src/components/TaskPage.tsx b/src/renderer/src/components/TaskPage.tsx index d7cfc3e9e5e..cf6e884b7b0 100644 --- a/src/renderer/src/components/TaskPage.tsx +++ b/src/renderer/src/components/TaskPage.tsx @@ -351,34 +351,38 @@ import { resolveGitHubPRMergeMethods } from '../../../shared/github/pull-request-merge-methods' import type { - GitHubOwnerRepo, GitHubAssignableUser, - GitHubPRMergeMethod, - GitHubIssueUpdate, - GitHubWorkItem, - GitLabTodo, - GitLabWorkItem, + GitHubOwnerRepo, + GitHubPRMergeMethod +} from '../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { GitLabProjectRef, GitLabTodo, GitLabWorkItem } from '../../../shared/gitlab-types' +import type { GitHubIssueUpdate } from '../../../shared/issue-mutation-types' +import type { JiraCreateField, - LinearCollectionResult, - LinearCustomViewModel, - LinearCustomViewSummary, JiraIssue, JiraIssueType, - JiraProject, - JiraProjectStatusOrder, JiraPriority, - LinearIssue, + JiraProject, + JiraProjectStatusOrder +} from '../../../shared/jira-types' +import type { LinearIssue } from '../../../shared/linear/issue-types' +import type { + LinearCustomViewModel, + LinearCustomViewSummary, LinearProjectDetail, - LinearProjectSummary, + LinearProjectSummary +} from '../../../shared/linear/project-types' +import type { + LinearCollectionResult, LinearTeam, - LinearWorkspaceSelection, LinearWorkflowState, - Repo, - TaskProvider, - TaskViewPresetId -} from '../../../shared/types' + LinearWorkspaceSelection +} from '../../../shared/linear/workspace-types' +import type { Repo } from '../../../shared/repo-types' +import type { TaskProvider } from '../../../shared/task-providers' +import type { TaskViewPresetId } from '../../../shared/ui-chrome-types' import type { PreflightStatus } from '../../../preload/api-types' -import type { GitLabProjectRef } from '../../../shared/gitlab-types' import { LINEAR_ISSUE_LIST_MAX, clampLinearIssueListLimit diff --git a/src/renderer/src/components/Terminal.tsx b/src/renderer/src/components/Terminal.tsx index d555a92d22c..d6878135189 100644 --- a/src/renderer/src/components/Terminal.tsx +++ b/src/renderer/src/components/Terminal.tsx @@ -38,7 +38,9 @@ import { import { isIntentionalAppRestartInProgress } from '@/lib/updater-beforeunload' import { preventUnloadAndScheduleShutdownCheckpointReset } from '@/lib/shutdown-checkpoint-guard' import EditorAutosaveController from './editor/EditorAutosaveController' -import type { Tab, TabGroupLayoutNode, TerminalTab, TuiAgent } from '../../../shared/types' +import type { Tab, TabGroupLayoutNode } from '../../../shared/tab-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { hasFeatureInteraction } from '../../../shared/feature-interactions' import BrowserPane from './browser-pane/BrowserPane' import { RetainedBrowserPaneOverlayLayer } from './browser-pane/BrowserPaneOverlayLayer' diff --git a/src/renderer/src/components/UpdateCard.error-card.test.tsx b/src/renderer/src/components/UpdateCard.error-card.test.tsx index 4e4aec4d2b5..4cb297b7ca4 100644 --- a/src/renderer/src/components/UpdateCard.error-card.test.tsx +++ b/src/renderer/src/components/UpdateCard.error-card.test.tsx @@ -2,7 +2,7 @@ import { act, cleanup, fireEvent, render, screen, type RenderResult } from '@testing-library/react' import userEvent from '@testing-library/user-event' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { LinuxPackageInstallRecovery } from '../../../shared/types' +import type { LinuxPackageInstallRecovery } from '../../../shared/update-status-types' import { useAppStore } from '../store' import { UpdateCard } from './UpdateCard' diff --git a/src/renderer/src/components/UpdateCard.test.ts b/src/renderer/src/components/UpdateCard.test.ts index 6eed56fad3e..d5103ed30fc 100644 --- a/src/renderer/src/components/UpdateCard.test.ts +++ b/src/renderer/src/components/UpdateCard.test.ts @@ -1,7 +1,7 @@ import { createStore, type StoreApi } from 'zustand/vanilla' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultUIState } from '../../../shared/constants' -import type { ChangelogData, UpdateStatus } from '../../../shared/types' +import type { ChangelogData, UpdateStatus } from '../../../shared/update-status-types' import { createUISlice } from '../store/slices/ui' import type { AppState } from '../store/types' import { isHttp2ProtocolError } from './UpdateCard' diff --git a/src/renderer/src/components/UpdateCard.tsx b/src/renderer/src/components/UpdateCard.tsx index b47e9fedd72..bb2b2d194c3 100644 --- a/src/renderer/src/components/UpdateCard.tsx +++ b/src/renderer/src/components/UpdateCard.tsx @@ -6,7 +6,7 @@ import { Card } from './ui/card' import { Button } from './ui/button' import { Progress } from './ui/progress' import { AlertCircle, Check, Loader2, Minus, X } from 'lucide-react' -import type { ChangelogData } from '../../../shared/types' +import type { ChangelogData } from '../../../shared/update-status-types' import { UpdateErrorCardContent, type UpdateErrorCardModel } from './UpdateErrorCardContent' import { LinuxPackageInstallRecoveryCard } from './LinuxPackageInstallRecoveryCard' import { diff --git a/src/renderer/src/components/WorktreeJumpPalette.linear-url.test.tsx b/src/renderer/src/components/WorktreeJumpPalette.linear-url.test.tsx index 709d57777c7..0637cad8d42 100644 --- a/src/renderer/src/components/WorktreeJumpPalette.linear-url.test.tsx +++ b/src/renderer/src/components/WorktreeJumpPalette.linear-url.test.tsx @@ -7,7 +7,9 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type * as ReactI18Next from 'react-i18next' import { useAppStore } from '@/store' import type { AppState } from '@/store/types' -import type { GitHubWorkItem, LinearIssue, Repo } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { LinearIssue } from '../../../shared/linear/issue-types' +import type { Repo } from '../../../shared/repo-types' import { projectHostSetupProjectionFromRepos } from '../../../shared/project-host-setup-projection' import { resolveWorkspaceCreationTarget } from '@/lib/project-host-workspace-target' import { WORKTREE_PALETTE_QUERY_MAX_BYTES } from '@/lib/worktree-palette-query-bounds' diff --git a/src/renderer/src/components/WorktreeJumpPalette.tsx b/src/renderer/src/components/WorktreeJumpPalette.tsx index 4f29ebb5c24..f3a393589b6 100644 --- a/src/renderer/src/components/WorktreeJumpPalette.tsx +++ b/src/renderer/src/components/WorktreeJumpPalette.tsx @@ -51,9 +51,9 @@ import { isAutomationGeneratedWorkspace, isCliCreatedWorkspace, isDetachedHeadWorkspace, - isDefaultBranchWorkspace, isSleepingSweepExemptWorkspace } from '@/components/sidebar/visible-worktrees' +import { isDefaultBranchWorkspace } from '@/components/sidebar/default-branch-workspace' import { EMPTY_PAIRED_DEVICE_IDS_BY_ENVIRONMENT, getPairedDeviceIdsByEnvironment, @@ -200,7 +200,10 @@ import { getSettingsFocusedExecutionHostId, isRuntimeOwnedSshTargetId } from '../../../shared/execution-host' -import type { GitHubWorkItem, LinearIssue, TerminalTab, Worktree } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { LinearIssue } from '../../../shared/linear/issue-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { isGitRepoKind } from '../../../shared/repo-kind' import { buildTaskSourceContextFromRepo, diff --git a/src/renderer/src/components/activity/ActivityPrototypePage.test.ts b/src/renderer/src/components/activity/ActivityPrototypePage.test.ts index 05aec890947..e20c9455261 100644 --- a/src/renderer/src/components/activity/ActivityPrototypePage.test.ts +++ b/src/renderer/src/components/activity/ActivityPrototypePage.test.ts @@ -6,7 +6,9 @@ import { type AgentStatusEntry } from '../../../../shared/agent-status-types' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' -import type { Repo, TerminalTab, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import { formatAgentTypeLabel } from '@/lib/agent-status' import type { RetainedAgentEntry } from '@/store/slices/agent-status' import { diff --git a/src/renderer/src/components/activity/ActivityPrototypePage.tsx b/src/renderer/src/components/activity/ActivityPrototypePage.tsx index 8c8058fbeeb..6157c796d71 100644 --- a/src/renderer/src/components/activity/ActivityPrototypePage.tsx +++ b/src/renderer/src/components/activity/ActivityPrototypePage.tsx @@ -61,7 +61,9 @@ import { type ActivityPortalReadinessLatch, type ActivityPortalReadinessStatus } from './activity-portal-readiness-oscillation' -import type { Repo, TerminalTab, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' import { AGENT_STATUS_STALE_AFTER_MS, diff --git a/src/renderer/src/components/agent-session-continuation/AgentSessionContinuationDialog.tsx b/src/renderer/src/components/agent-session-continuation/AgentSessionContinuationDialog.tsx index a668162753a..aa752c4b50f 100644 --- a/src/renderer/src/components/agent-session-continuation/AgentSessionContinuationDialog.tsx +++ b/src/renderer/src/components/agent-session-continuation/AgentSessionContinuationDialog.tsx @@ -31,7 +31,7 @@ import { } from '@/lib/launch-agent-session-continuation' import { useAppStore } from '@/store' import { isTuiAgentEnabled } from '../../../../shared/tui-agent-selection' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { chooseInitialContinuationAgent } from './agent-session-continuation-selection' type AgentSessionContinuationDialogProps = { diff --git a/src/renderer/src/components/agent-session-continuation/agent-session-continuation-selection.ts b/src/renderer/src/components/agent-session-continuation/agent-session-continuation-selection.ts index 3a7617caacd..8297a104d3e 100644 --- a/src/renderer/src/components/agent-session-continuation/agent-session-continuation-selection.ts +++ b/src/renderer/src/components/agent-session-continuation/agent-session-continuation-selection.ts @@ -1,5 +1,5 @@ import { isTuiAgent } from '../../../../shared/tui-agent-config' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' export function chooseInitialContinuationAgent(args: { availableAgents: TuiAgent[] diff --git a/src/renderer/src/components/agent/AgentCombobox.test.tsx b/src/renderer/src/components/agent/AgentCombobox.test.tsx index 08b8b2d37c1..629aea0ee15 100644 --- a/src/renderer/src/components/agent/AgentCombobox.test.tsx +++ b/src/renderer/src/components/agent/AgentCombobox.test.tsx @@ -3,7 +3,7 @@ import { cleanup, fireEvent, render, screen } from '@testing-library/react' import { renderToStaticMarkup } from 'react-dom/server' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { AGENT_CATALOG, AgentIcon } from '@/lib/agent-catalog' import { AGENT_FAVICON_ASSETS } from '@/lib/agent-favicon-assets' import AgentCombobox from './AgentCombobox' diff --git a/src/renderer/src/components/agent/AgentCombobox.tsx b/src/renderer/src/components/agent/AgentCombobox.tsx index a4fa9202543..1c2ef729db9 100644 --- a/src/renderer/src/components/agent/AgentCombobox.tsx +++ b/src/renderer/src/components/agent/AgentCombobox.tsx @@ -22,7 +22,7 @@ import { searchAgentPickerEntries } from '@/lib/agent-picker-search' import { cn } from '@/lib/utils' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { createAgentComboboxCommandState, resolveAgentComboboxCommandState, diff --git a/src/renderer/src/components/agent/AgentSettingsDialog.test.tsx b/src/renderer/src/components/agent/AgentSettingsDialog.test.tsx index 9c53f03f7b7..ee45c71c30e 100644 --- a/src/renderer/src/components/agent/AgentSettingsDialog.test.tsx +++ b/src/renderer/src/components/agent/AgentSettingsDialog.test.tsx @@ -4,7 +4,7 @@ import { act, createElement, type ComponentProps, type ReactNode } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../../../shared/constants' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { AgentsPane } from '@/components/settings/AgentsPane' import { resetWindowsTerminalCapabilitiesForTests } from '@/lib/windows-terminal-capabilities' diff --git a/src/renderer/src/components/automations/AutomationEditorDialog.tsx b/src/renderer/src/components/automations/AutomationEditorDialog.tsx index 6ac0c7bc66c..569d1a8a2ea 100644 --- a/src/renderer/src/components/automations/AutomationEditorDialog.tsx +++ b/src/renderer/src/components/automations/AutomationEditorDialog.tsx @@ -6,15 +6,13 @@ import type { AutomationSchedulePreset, AutomationWorkspaceMode } from '../../../../shared/automations-types' -import type { - GlobalSettings, - OrcaHooks, - ProjectHostSetup, - Repo, - SetupDecision, - TuiAgent, - Worktree -} from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { OrcaHooks } from '../../../../shared/orca-yaml-hook-types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TuiAgent } from '../../../../shared/tui-agent' +import type { SetupDecision } from '../../../../shared/worktree/create-types' +import type { Worktree } from '../../../../shared/worktree/types' import { isValidAutomationCronSchedule, isValidAutomationSchedule diff --git a/src/renderer/src/components/automations/AutomationEditorDialogFooter.tsx b/src/renderer/src/components/automations/AutomationEditorDialogFooter.tsx index 160dac72d8b..2c68beee9b3 100644 --- a/src/renderer/src/components/automations/AutomationEditorDialogFooter.tsx +++ b/src/renderer/src/components/automations/AutomationEditorDialogFooter.tsx @@ -7,13 +7,11 @@ import AgentCombobox from '@/components/agent/AgentCombobox' import { cn } from '@/lib/utils' import { translate } from '@/i18n/i18n' import type { AutomationWorkspaceMode } from '../../../../shared/automations-types' -import type { - GlobalSettings, - OrcaHooks, - ProjectHostSetup, - Repo, - Worktree -} from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { OrcaHooks } from '../../../../shared/orca-yaml-hook-types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { AgentCatalogEntry } from '@/lib/agent-catalog' import { Field } from './automation-page-parts' import { AutomationMissedRunGraceField } from './AutomationMissedRunGraceField' diff --git a/src/renderer/src/components/automations/AutomationListLocalRows.tsx b/src/renderer/src/components/automations/AutomationListLocalRows.tsx index 93019241d63..cde61bd6201 100644 --- a/src/renderer/src/components/automations/AutomationListLocalRows.tsx +++ b/src/renderer/src/components/automations/AutomationListLocalRows.tsx @@ -27,7 +27,9 @@ import { getRepoExecutionHostId } from '../../../../shared/execution-host' import type { SshConnectionState } from '../../../../shared/ssh-types' -import type { ProjectHostSetup, Repo, Worktree } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { RuntimeStatus } from '../../../../shared/runtime-types' import type { TaskSourceHostAvailability } from '../task-source-context-summary' import type { AutomationHostTarget } from './automation-host-client' diff --git a/src/renderer/src/components/automations/AutomationProjectCombobox.tsx b/src/renderer/src/components/automations/AutomationProjectCombobox.tsx index 65d0176bf29..73fc44bddb5 100644 --- a/src/renderer/src/components/automations/AutomationProjectCombobox.tsx +++ b/src/renderer/src/components/automations/AutomationProjectCombobox.tsx @@ -11,7 +11,7 @@ import { isRepoSearchQueryTooLarge, searchRepos } from '@/lib/repo-search' import { cn } from '@/lib/utils' import { useMountedRef } from '@/hooks/useMountedRef' import { translate } from '@/i18n/i18n' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { getAutomationProjectGroupForRepo, getAutomationProjectGroups, diff --git a/src/renderer/src/components/automations/AutomationRunHistory.tsx b/src/renderer/src/components/automations/AutomationRunHistory.tsx index 777eaff3fa2..323accb7259 100644 --- a/src/renderer/src/components/automations/AutomationRunHistory.tsx +++ b/src/renderer/src/components/automations/AutomationRunHistory.tsx @@ -2,7 +2,7 @@ import React, { useMemo, useState } from 'react' import { Badge } from '@/components/ui/badge' import { cn } from '@/lib/utils' import type { AutomationRun } from '../../../../shared/automations-types' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { formatAutomationDateTime, getAutomationRunStatusLabel, diff --git a/src/renderer/src/components/automations/AutomationSetupDecisionField.tsx b/src/renderer/src/components/automations/AutomationSetupDecisionField.tsx index 2731dba8164..56a05f881b4 100644 --- a/src/renderer/src/components/automations/AutomationSetupDecisionField.tsx +++ b/src/renderer/src/components/automations/AutomationSetupDecisionField.tsx @@ -5,7 +5,9 @@ import { cn } from '@/lib/utils' import { translate } from '@/i18n/i18n' import { getVisibleAutomationSetupDecision } from './automation-setup-decision' import type { AutomationCreateTarget, AutomationDraft } from './AutomationEditorDialog' -import type { OrcaHooks, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { OrcaHooks } from '../../../../shared/orca-yaml-hook-types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' type AutomationSetupDecisionFieldProps = { createTarget: AutomationCreateTarget diff --git a/src/renderer/src/components/automations/AutomationsDetailPane.tsx b/src/renderer/src/components/automations/AutomationsDetailPane.tsx index 48ffceba88f..4de2a9ed795 100644 --- a/src/renderer/src/components/automations/AutomationsDetailPane.tsx +++ b/src/renderer/src/components/automations/AutomationsDetailPane.tsx @@ -11,7 +11,7 @@ import type { ExternalAutomationRun, AutomationRun } from '../../../../shared/automations-types' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import CommentMarkdown from '@/components/sidebar/CommentMarkdown' import { AutomationDetail } from './AutomationDetail' import { HermesCronOutputView } from './HermesCronOutputView' diff --git a/src/renderer/src/components/automations/AutomationsListPanel.tsx b/src/renderer/src/components/automations/AutomationsListPanel.tsx index a792839885c..b946d846b05 100644 --- a/src/renderer/src/components/automations/AutomationsListPanel.tsx +++ b/src/renderer/src/components/automations/AutomationsListPanel.tsx @@ -10,7 +10,9 @@ import type { ExternalAutomationManager } from '../../../../shared/automations-types' import type { SshConnectionState } from '../../../../shared/ssh-types' -import type { ProjectHostSetup, Repo, Worktree } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { RuntimeStatus } from '../../../../shared/runtime-types' import type { TaskSourceHostAvailability } from '../task-source-context-summary' import type { AutomationHostTarget } from './automation-host-client' diff --git a/src/renderer/src/components/automations/AutomationsPage.tsx b/src/renderer/src/components/automations/AutomationsPage.tsx index a17d79e4197..4445cf21eeb 100644 --- a/src/renderer/src/components/automations/AutomationsPage.tsx +++ b/src/renderer/src/components/automations/AutomationsPage.tsx @@ -28,7 +28,8 @@ import { import { getHostDisplayLabelOverrides } from '../../../../shared/host-setting-overrides' import type { PreflightStatus } from '../../../../preload/api-types' import type { TaskSourceContext } from '../../../../shared/task-source-context' -import type { OrcaHooks, Repo } from '../../../../shared/types' +import type { OrcaHooks } from '../../../../shared/orca-yaml-hook-types' +import type { Repo } from '../../../../shared/repo-types' import { getWorktreePathBasenameFromId } from '../../../../shared/worktree/id' import { buildAutomationRrule, diff --git a/src/renderer/src/components/automations/CreateFromPicker.test.tsx b/src/renderer/src/components/automations/CreateFromPicker.test.tsx index 46cb4ded084..3aaeb3f2a7f 100644 --- a/src/renderer/src/components/automations/CreateFromPicker.test.tsx +++ b/src/renderer/src/components/automations/CreateFromPicker.test.tsx @@ -3,7 +3,7 @@ import React, { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { CreateFromPicker } from './CreateFromPicker' import { getRuntimeRepoBaseRefDefault, diff --git a/src/renderer/src/components/automations/CreateFromPicker.tsx b/src/renderer/src/components/automations/CreateFromPicker.tsx index 083ba015da7..a392627ee18 100644 --- a/src/renderer/src/components/automations/CreateFromPicker.tsx +++ b/src/renderer/src/components/automations/CreateFromPicker.tsx @@ -11,7 +11,8 @@ import { } from '@/components/ui/command' import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { cn } from '@/lib/utils' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { useAppStore } from '@/store' import { getRuntimeEnvironmentIdForRepo } from '@/lib/repo-runtime-owner' import { diff --git a/src/renderer/src/components/automations/WorkspaceCombobox.tsx b/src/renderer/src/components/automations/WorkspaceCombobox.tsx index 0951a2e23b2..ffad3e6ccbb 100644 --- a/src/renderer/src/components/automations/WorkspaceCombobox.tsx +++ b/src/renderer/src/components/automations/WorkspaceCombobox.tsx @@ -10,7 +10,7 @@ import { } from '@/components/ui/command' import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { cn } from '@/lib/utils' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { translate } from '@/i18n/i18n' export function WorkspaceCombobox({ diff --git a/src/renderer/src/components/automations/automation-draft-model.ts b/src/renderer/src/components/automations/automation-draft-model.ts index 2abf4511388..827f84543a4 100644 --- a/src/renderer/src/components/automations/automation-draft-model.ts +++ b/src/renderer/src/components/automations/automation-draft-model.ts @@ -1,7 +1,7 @@ import { getAgentCatalog } from '@/lib/agent-catalog' import type { AutomationPrecheck } from '../../../../shared/automations-types' import { buildAutomationCronSchedule } from '../../../../shared/automation-schedules' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import type { AutomationDraft } from './AutomationEditorDialog' export const AUTOMATION_DEFAULT_TIME = '09:00' diff --git a/src/renderer/src/components/automations/automation-host-client.ts b/src/renderer/src/components/automations/automation-host-client.ts index 36e1ff0560a..b5e28fcb6b1 100644 --- a/src/renderer/src/components/automations/automation-host-client.ts +++ b/src/renderer/src/components/automations/automation-host-client.ts @@ -6,7 +6,7 @@ import type { AutomationUpdateInput } from '../../../../shared/automations-types' import { parseExecutionHostId } from '../../../../shared/execution-host' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' type RuntimeAutomationCreateInput = Omit< AutomationCreateInput, diff --git a/src/renderer/src/components/automations/automation-project-groups.test.ts b/src/renderer/src/components/automations/automation-project-groups.test.ts index 4423c381505..b8039169496 100644 --- a/src/renderer/src/components/automations/automation-project-groups.test.ts +++ b/src/renderer/src/components/automations/automation-project-groups.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { getAutomationProjectGroupForRepo, getAutomationProjectGroups, diff --git a/src/renderer/src/components/automations/automation-project-groups.ts b/src/renderer/src/components/automations/automation-project-groups.ts index eacea1f8c41..4dd4c2a6c39 100644 --- a/src/renderer/src/components/automations/automation-project-groups.ts +++ b/src/renderer/src/components/automations/automation-project-groups.ts @@ -1,6 +1,6 @@ import { getRepoExecutionHostId, LOCAL_EXECUTION_HOST_ID } from '../../../../shared/execution-host' import { getProjectIdentityKey } from '../../../../shared/project-host-setup-projection' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' export type AutomationProjectGroup = { projectKey: string diff --git a/src/renderer/src/components/automations/automation-run-context.test.ts b/src/renderer/src/components/automations/automation-run-context.test.ts index 345b03d56f7..b2f1dc2f4ae 100644 --- a/src/renderer/src/components/automations/automation-run-context.test.ts +++ b/src/renderer/src/components/automations/automation-run-context.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { ProjectHostSetup, Repo } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { buildAutomationRunContextForRepo } from './automation-run-context' function repo(id: string, path = `/repos/${id}`): Repo { diff --git a/src/renderer/src/components/automations/automation-run-context.ts b/src/renderer/src/components/automations/automation-run-context.ts index 65bad47c9f3..49894f78159 100644 --- a/src/renderer/src/components/automations/automation-run-context.ts +++ b/src/renderer/src/components/automations/automation-run-context.ts @@ -2,7 +2,8 @@ import { buildWorkspaceRunContext, type WorkspaceRunContext } from '../../../../shared/task-source-context' -import type { ProjectHostSetup, Repo } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' export function buildAutomationRunContextForRepo(args: { repoId: string diff --git a/src/renderer/src/components/automations/automation-run-open-target.ts b/src/renderer/src/components/automations/automation-run-open-target.ts index 9ee8087be85..d3de0eb7fc7 100644 --- a/src/renderer/src/components/automations/automation-run-open-target.ts +++ b/src/renderer/src/components/automations/automation-run-open-target.ts @@ -1,6 +1,9 @@ import type { AutomationRun } from '../../../../shared/automations-types' import { parsePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode } from '../../../../shared/types' +import type { + TerminalLayoutSnapshot, + TerminalPaneLayoutNode +} from '../../../../shared/terminal-tab-types' export type AutomationRunPaneTarget = { tabId: string diff --git a/src/renderer/src/components/automations/automation-run-workspace-display.ts b/src/renderer/src/components/automations/automation-run-workspace-display.ts index 7d7a5e81be3..5ea6d23230e 100644 --- a/src/renderer/src/components/automations/automation-run-workspace-display.ts +++ b/src/renderer/src/components/automations/automation-run-workspace-display.ts @@ -1,5 +1,5 @@ import type { AutomationRun } from '../../../../shared/automations-types' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' export type AutomationRunWorkspaceDisplay = { rowLabel: string diff --git a/src/renderer/src/components/automations/automation-setup-decision.test.ts b/src/renderer/src/components/automations/automation-setup-decision.test.ts index b46d76da980..87d1bf19a14 100644 --- a/src/renderer/src/components/automations/automation-setup-decision.test.ts +++ b/src/renderer/src/components/automations/automation-setup-decision.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { ProjectHostSetup, Repo } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { getAutomationSetupDecisionDraftValue, getVisibleAutomationSetupDecision, diff --git a/src/renderer/src/components/automations/automation-setup-decision.ts b/src/renderer/src/components/automations/automation-setup-decision.ts index f565e439f34..9df3f0298fc 100644 --- a/src/renderer/src/components/automations/automation-setup-decision.ts +++ b/src/renderer/src/components/automations/automation-setup-decision.ts @@ -1,11 +1,8 @@ import type { AutomationWorkspaceMode } from '../../../../shared/automations-types' -import type { - OrcaHooks, - ProjectHostSetup, - Repo, - SetupDecision, - SetupRunPolicy -} from '../../../../shared/types' +import type { OrcaHooks, SetupRunPolicy } from '../../../../shared/orca-yaml-hook-types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { SetupDecision } from '../../../../shared/worktree/create-types' import { getSetupConfig } from '@/lib/new-workspace' type AutomationSetupSource = { diff --git a/src/renderer/src/components/automations/automation-target-availability.test.ts b/src/renderer/src/components/automations/automation-target-availability.test.ts index 8c9ab713e88..2b94251144a 100644 --- a/src/renderer/src/components/automations/automation-target-availability.test.ts +++ b/src/renderer/src/components/automations/automation-target-availability.test.ts @@ -1,7 +1,9 @@ import { describe, expect, it } from 'vitest' import type { Automation } from '../../../../shared/automations-types' import type { RuntimeStatus } from '../../../../shared/runtime-types' -import type { ProjectHostSetup, Repo, Worktree } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getAutomationTargetAvailability } from './automation-target-availability' function makeAutomation(overrides: Partial = {}): Automation { diff --git a/src/renderer/src/components/automations/automation-target-availability.ts b/src/renderer/src/components/automations/automation-target-availability.ts index ca7c166b5a8..40a6b3dc8f6 100644 --- a/src/renderer/src/components/automations/automation-target-availability.ts +++ b/src/renderer/src/components/automations/automation-target-availability.ts @@ -12,7 +12,9 @@ import type { AutomationHostTarget } from './automation-host-client' import type { SshConnectionState } from '../../../../shared/ssh-types' import type { TaskSourceContext } from '../../../../shared/task-source-context' import type { RuntimeStatus } from '../../../../shared/runtime-types' -import type { ProjectHostSetup, Repo, Worktree } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { TaskSourceHostAvailability } from '../task-source-context-summary' export type AutomationTargetAvailability = diff --git a/src/renderer/src/components/automations/automation-templates.ts b/src/renderer/src/components/automations/automation-templates.ts index 5f4af77b7e4..b4abe3017df 100644 --- a/src/renderer/src/components/automations/automation-templates.ts +++ b/src/renderer/src/components/automations/automation-templates.ts @@ -1,5 +1,5 @@ import type { AutomationSchedulePreset } from '../../../../shared/automations-types' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { translate } from '@/i18n/i18n' import { createLocalizedCatalog } from '@/i18n/localized-catalog' diff --git a/src/renderer/src/components/automations/use-automation-list-search.ts b/src/renderer/src/components/automations/use-automation-list-search.ts index 235c08cdb1e..95ac89262a0 100644 --- a/src/renderer/src/components/automations/use-automation-list-search.ts +++ b/src/renderer/src/components/automations/use-automation-list-search.ts @@ -1,7 +1,7 @@ import { useDeferredValue, useEffect, useMemo } from 'react' import type { Automation } from '../../../../shared/automations-types' import { getAutomationRunRepoId } from '../../../../shared/automation-run-identity' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { automationListSearchIndexMatches, buildAutomationListSearchIndex, diff --git a/src/renderer/src/components/browser-pane/BrowserAddressBar.test.tsx b/src/renderer/src/components/browser-pane/BrowserAddressBar.test.tsx index 0cf202ff2d8..2f147fc98cc 100644 --- a/src/renderer/src/components/browser-pane/BrowserAddressBar.test.tsx +++ b/src/renderer/src/components/browser-pane/BrowserAddressBar.test.tsx @@ -3,7 +3,7 @@ import { act, type ReactNode, useRef, useState } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { BrowserHistoryEntry } from '../../../../shared/types' +import type { BrowserHistoryEntry } from '../../../../shared/browser-workspace-types' import BrowserAddressBar from './BrowserAddressBar' const mocks = vi.hoisted(() => ({ diff --git a/src/renderer/src/components/browser-pane/BrowserPane.tsx b/src/renderer/src/components/browser-pane/BrowserPane.tsx index 9158962d88c..064d2e46d30 100644 --- a/src/renderer/src/components/browser-pane/BrowserPane.tsx +++ b/src/renderer/src/components/browser-pane/BrowserPane.tsx @@ -68,7 +68,7 @@ import type { BrowserLoadError, BrowserPage as BrowserPageState, BrowserWorkspace as BrowserWorkspaceState -} from '../../../../shared/types' +} from '../../../../shared/browser-workspace-types' import { normalizeBrowserNavigationUrl, normalizeExternalBrowserUrl, diff --git a/src/renderer/src/components/browser-pane/BrowserPaneOverlayLayer.test.tsx b/src/renderer/src/components/browser-pane/BrowserPaneOverlayLayer.test.tsx index 111890288f4..13aa6d109a3 100644 --- a/src/renderer/src/components/browser-pane/BrowserPaneOverlayLayer.test.tsx +++ b/src/renderer/src/components/browser-pane/BrowserPaneOverlayLayer.test.tsx @@ -3,7 +3,8 @@ import { cleanup, render } from '@testing-library/react' import { Suspense } from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { BrowserTab as BrowserTabState, Tab, TabGroup } from '../../../../shared/types' +import type { BrowserTab as BrowserTabState } from '../../../../shared/browser-workspace-types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' type MockAppState = { browserTabsByWorktree: Record diff --git a/src/renderer/src/components/browser-pane/BrowserPaneOverlayLayer.tsx b/src/renderer/src/components/browser-pane/BrowserPaneOverlayLayer.tsx index 67d6aa4da9e..f0ea554f9fe 100644 --- a/src/renderer/src/components/browser-pane/BrowserPaneOverlayLayer.tsx +++ b/src/renderer/src/components/browser-pane/BrowserPaneOverlayLayer.tsx @@ -2,7 +2,8 @@ import { memo, useCallback, useLayoutEffect, useMemo, useState } from 'react' import { registerBrowserOverlaySlotViewport } from './browser-page-viewport' import { useShallow } from 'zustand/react/shallow' import { useAppStore } from '../../store' -import type { BrowserTab as BrowserTabState, Tab, TabGroup } from '../../../../shared/types' +import type { BrowserTab as BrowserTabState } from '../../../../shared/browser-workspace-types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' import BrowserPane, { type BrowserFindShortcutScope } from './BrowserPane' import { tabGroupBodyAnchorName } from '../tab-group/tab-group-body-anchor' import { useBrowserAutomationVisibilityForAny } from './browser-automation-visibility' diff --git a/src/renderer/src/components/browser-pane/BrowserToolbarMenu.tsx b/src/renderer/src/components/browser-pane/BrowserToolbarMenu.tsx index f712d33abd2..46362bbf93e 100644 --- a/src/renderer/src/components/browser-pane/BrowserToolbarMenu.tsx +++ b/src/renderer/src/components/browser-pane/BrowserToolbarMenu.tsx @@ -4,7 +4,7 @@ import { emitBrowserCookieImportToast } from '@/lib/browser-cookie-import-toast' import { useAppStore } from '@/store' import { useMountedRef } from '@/hooks/useMountedRef' import { shouldShowBrowserImportHint } from './browser-import-hint-visibility' -import type { BrowserViewportPresetId } from '../../../../shared/types' +import type { BrowserViewportPresetId } from '../../../../shared/browser-workspace-types' import { browserViewportPresetToOverride, getBrowserViewportPreset diff --git a/src/renderer/src/components/browser-pane/browser-address-bar-suggestions.test.ts b/src/renderer/src/components/browser-pane/browser-address-bar-suggestions.test.ts index 5da8a237944..65ba9a3809c 100644 --- a/src/renderer/src/components/browser-pane/browser-address-bar-suggestions.test.ts +++ b/src/renderer/src/components/browser-pane/browser-address-bar-suggestions.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { BrowserHistoryEntry } from '../../../../shared/types' +import type { BrowserHistoryEntry } from '../../../../shared/browser-workspace-types' import { BROWSER_ADDRESS_BAR_QUERY_MAX_BYTES, buildBrowserAddressBarSuggestions, diff --git a/src/renderer/src/components/browser-pane/browser-address-bar-suggestions.ts b/src/renderer/src/components/browser-pane/browser-address-bar-suggestions.ts index 6ac0fe12c52..cff0a3b54ca 100644 --- a/src/renderer/src/components/browser-pane/browser-address-bar-suggestions.ts +++ b/src/renderer/src/components/browser-pane/browser-address-bar-suggestions.ts @@ -6,7 +6,7 @@ import { SEARCH_ENGINE_LABELS, type SearchEngine } from '../../../../shared/browser-url' -import type { BrowserHistoryEntry } from '../../../../shared/types' +import type { BrowserHistoryEntry } from '../../../../shared/browser-workspace-types' import { isClipboardTextByteLengthOverLimit } from '../../../../shared/clipboard-text' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/browser-pane/browser-guest-worktree-retention.test.ts b/src/renderer/src/components/browser-pane/browser-guest-worktree-retention.test.ts index 5557664f602..9d1f2bc411d 100644 --- a/src/renderer/src/components/browser-pane/browser-guest-worktree-retention.test.ts +++ b/src/renderer/src/components/browser-pane/browser-guest-worktree-retention.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { BrowserPage, BrowserWorkspace } from '../../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../../shared/browser-workspace-types' import { BROWSER_GUEST_HIDDEN_WORKTREE_RETENTION_LIMIT, browserTabVisibilityPageIds, diff --git a/src/renderer/src/components/browser-pane/browser-guest-worktree-retention.ts b/src/renderer/src/components/browser-pane/browser-guest-worktree-retention.ts index 322899c279f..22cd358d4fc 100644 --- a/src/renderer/src/components/browser-pane/browser-guest-worktree-retention.ts +++ b/src/renderer/src/components/browser-pane/browser-guest-worktree-retention.ts @@ -1,4 +1,4 @@ -import type { BrowserPage, BrowserWorkspace } from '../../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../../shared/browser-workspace-types' // Why 4: every hidden worktree that retains browser guests keeps one Electron // guest process per page alive purely for instant revisits, so guest memory diff --git a/src/renderer/src/components/browser-pane/browser-load-failure-overlay.tsx b/src/renderer/src/components/browser-pane/browser-load-failure-overlay.tsx index af760df4a6b..7c2e41d2904 100644 --- a/src/renderer/src/components/browser-pane/browser-load-failure-overlay.tsx +++ b/src/renderer/src/components/browser-pane/browser-load-failure-overlay.tsx @@ -8,7 +8,7 @@ import type { BrowserCertificateProceedFailureReason, BrowserCertificateProceedResult, BrowserLoadError -} from '../../../../shared/types' +} from '../../../../shared/browser-workspace-types' import { isEligibleLocalCertificateHost } from '../../../../shared/browser-url' import { normalizeCertificateError } from '../../../../shared/browser-certificate-errors' import { diff --git a/src/renderer/src/components/browser-pane/browser-notices.ts b/src/renderer/src/components/browser-pane/browser-notices.ts index 3c644571ec5..701a074186e 100644 --- a/src/renderer/src/components/browser-pane/browser-notices.ts +++ b/src/renderer/src/components/browser-pane/browser-notices.ts @@ -3,7 +3,7 @@ import type { BrowserPermissionDeniedEvent, BrowserPopupEvent } from '../../../../shared/browser-guest-events' -import type { BrowserLoadError } from '../../../../shared/types' +import type { BrowserLoadError } from '../../../../shared/browser-workspace-types' import { isChromiumCertificateErrorCode } from '../../../../shared/browser-certificate-errors' import { translate } from '@/i18n/i18n' import { BROWSER_GUEST_RECOVERY_ERROR_CODE } from './browser-page-guest-recovery' diff --git a/src/renderer/src/components/browser-pane/browser-pane-page-selection.test.ts b/src/renderer/src/components/browser-pane/browser-pane-page-selection.test.ts index 54455d706cc..f97398619f5 100644 --- a/src/renderer/src/components/browser-pane/browser-pane-page-selection.test.ts +++ b/src/renderer/src/components/browser-pane/browser-pane-page-selection.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { getBrowserPagesForWorkspace } from './browser-pane-page-selection' -import type { BrowserPage } from '../../../../shared/types' +import type { BrowserPage } from '../../../../shared/browser-workspace-types' function makeBrowserPage(id: string): BrowserPage { return { diff --git a/src/renderer/src/components/browser-pane/browser-pane-page-selection.ts b/src/renderer/src/components/browser-pane/browser-pane-page-selection.ts index 240b0dec6e9..38b8b7d3f95 100644 --- a/src/renderer/src/components/browser-pane/browser-pane-page-selection.ts +++ b/src/renderer/src/components/browser-pane/browser-pane-page-selection.ts @@ -1,4 +1,4 @@ -import type { BrowserPage } from '../../../../shared/types' +import type { BrowserPage } from '../../../../shared/browser-workspace-types' const EMPTY_BROWSER_PAGES: BrowserPage[] = [] diff --git a/src/renderer/src/components/browser-pane/browser-toolbar-menu-dropdown.tsx b/src/renderer/src/components/browser-pane/browser-toolbar-menu-dropdown.tsx index 508eb059ca2..88d63df7dd6 100644 --- a/src/renderer/src/components/browser-pane/browser-toolbar-menu-dropdown.tsx +++ b/src/renderer/src/components/browser-pane/browser-toolbar-menu-dropdown.tsx @@ -16,7 +16,10 @@ import { import { BrowserCookieImportDisclosure } from '@/components/BrowserCookieImportDisclosure' import { useAppStore } from '@/store' import { BROWSER_FAMILY_LABELS } from '../../../../shared/constants' -import type { BrowserSessionProfile, BrowserViewportPresetId } from '../../../../shared/types' +import type { + BrowserSessionProfile, + BrowserViewportPresetId +} from '../../../../shared/browser-workspace-types' type DetectedBrowserEntry = { family: string diff --git a/src/renderer/src/components/cmd-j/PaletteCreateWorktreeRow.tsx b/src/renderer/src/components/cmd-j/PaletteCreateWorktreeRow.tsx index 2079a0c8fbf..e2d126beae4 100644 --- a/src/renderer/src/components/cmd-j/PaletteCreateWorktreeRow.tsx +++ b/src/renderer/src/components/cmd-j/PaletteCreateWorktreeRow.tsx @@ -5,7 +5,7 @@ import { JiraIcon } from '@/components/icons/JiraIcon' import { CommandItem } from '@/components/ui/command' import { CREATE_WORKTREE_ITEM_ID } from '@/lib/worktree-palette-create-action' import type { CmdJTaskUrlCreatePreview } from '@/lib/worktree-palette-task-url-match' -import type { LinearIssue } from '../../../../shared/types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' import { translate } from '@/i18n/i18n' function TaskUrlProviderIcon({ diff --git a/src/renderer/src/components/cmd-j/palette-filter-options.test.ts b/src/renderer/src/components/cmd-j/palette-filter-options.test.ts index bdfaef30ad8..021e92a2359 100644 --- a/src/renderer/src/components/cmd-j/palette-filter-options.test.ts +++ b/src/renderer/src/components/cmd-j/palette-filter-options.test.ts @@ -1,7 +1,9 @@ import path from 'node:path' import { describe, expect, it } from 'vitest' import { getWorktreeExecutionHostId, type ExecutionHostId } from '../../../../shared/execution-host' -import type { Project, ProjectHostSetup, Repo, Worktree } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { buildSidebarHostOptions } from '../sidebar/sidebar-host-options' import { buildPaletteFilterModel, diff --git a/src/renderer/src/components/cmd-j/palette-filter-options.ts b/src/renderer/src/components/cmd-j/palette-filter-options.ts index 9eb5fdce4ac..2670eb80e28 100644 --- a/src/renderer/src/components/cmd-j/palette-filter-options.ts +++ b/src/renderer/src/components/cmd-j/palette-filter-options.ts @@ -3,7 +3,9 @@ import { LOCAL_EXECUTION_HOST_ID, type ExecutionHostId } from '../../../../shared/execution-host' -import type { Project, ProjectHostSetup, Repo, Worktree } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getProjectHeaderRevealTarget, type ProjectGroupingModel diff --git a/src/renderer/src/components/cmd-j/palette-filter.ts b/src/renderer/src/components/cmd-j/palette-filter.ts index 075af323799..f521a6ad92a 100644 --- a/src/renderer/src/components/cmd-j/palette-filter.ts +++ b/src/renderer/src/components/cmd-j/palette-filter.ts @@ -1,5 +1,5 @@ import type { ExecutionHostId } from '../../../../shared/execution-host' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { resolveRepoFilterHostId, resolveWorktreeFilterHostId, diff --git a/src/renderer/src/components/cmd-j/palette-host-badge.ts b/src/renderer/src/components/cmd-j/palette-host-badge.ts index 01cdc72a60f..8ac94adeae4 100644 --- a/src/renderer/src/components/cmd-j/palette-host-badge.ts +++ b/src/renderer/src/components/cmd-j/palette-host-badge.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { getRepoExecutionHostId, LOCAL_EXECUTION_HOST_ID, diff --git a/src/renderer/src/components/cmd-j/palette-live-status.test.tsx b/src/renderer/src/components/cmd-j/palette-live-status.test.tsx index f19bf3a91d2..9e8a51a6e80 100644 --- a/src/renderer/src/components/cmd-j/palette-live-status.test.tsx +++ b/src/renderer/src/components/cmd-j/palette-live-status.test.tsx @@ -7,7 +7,7 @@ import { useAppStore } from '@/store' import type { AppState } from '@/store/types' import type { AgentStatusEntry, AgentStatusState } from '../../../../shared/agent-status-types' import { makePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { PaletteLiveStatusProvider, PaletteRecentTabStatusDot, diff --git a/src/renderer/src/components/cmd-j/palette-live-status.tsx b/src/renderer/src/components/cmd-j/palette-live-status.tsx index 03a2af8928d..5c755ad4164 100644 --- a/src/renderer/src/components/cmd-j/palette-live-status.tsx +++ b/src/renderer/src/components/cmd-j/palette-live-status.tsx @@ -26,7 +26,9 @@ import { } from '@/components/tab-bar/terminal-tab-activity-status' import { translate } from '@/i18n/i18n' import type { LiveAgentWorktreeStatus } from '@/lib/worktree-activity-state' -import type { BrowserWorkspace, TerminalTab, Worktree } from '../../../../shared/types' +import type { BrowserWorkspace } from '../../../../shared/browser-workspace-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' /** Confines the app's hottest status subscriptions here so only the dots re-render on their churn. */ type PaletteLiveStatus = { diff --git a/src/renderer/src/components/cmd-j/palette-project-results.ts b/src/renderer/src/components/cmd-j/palette-project-results.ts index d0fcc15636c..e45e2a8e29f 100644 --- a/src/renderer/src/components/cmd-j/palette-project-results.ts +++ b/src/renderer/src/components/cmd-j/palette-project-results.ts @@ -4,7 +4,9 @@ import { normalizeCmdJPaletteQuery, uniqueNormalizedCmdJPaletteKeywords } from './palette-query-tokens' -import type { Project, ProjectGroup, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { translate } from '@/i18n/i18n' import { getProjectGroupHeaderKey, diff --git a/src/renderer/src/components/cmd-j/palette-results.test.ts b/src/renderer/src/components/cmd-j/palette-results.test.ts index bf875ebe9a2..e9f7b3ec3fa 100644 --- a/src/renderer/src/components/cmd-j/palette-results.test.ts +++ b/src/renderer/src/components/cmd-j/palette-results.test.ts @@ -13,7 +13,9 @@ import { } from './palette-results' import { hasCmdJProjectSearchCandidates, searchCmdJProjectResults } from './palette-project-results' import type { SettingsNavSection } from '@/lib/settings-navigation-types' -import type { Project, ProjectGroup, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' const noopRun: CmdJQuickAction['run'] = async () => ({ status: 'ok' }) const available: CmdJQuickAction['isAvailable'] = () => ({ available: true }) diff --git a/src/renderer/src/components/cmd-j/quick-action-context.test.ts b/src/renderer/src/components/cmd-j/quick-action-context.test.ts index 7ce2e107613..325252c4dc2 100644 --- a/src/renderer/src/components/cmd-j/quick-action-context.test.ts +++ b/src/renderer/src/components/cmd-j/quick-action-context.test.ts @@ -8,7 +8,7 @@ import { } from './quick-action-context' import { getCmdJQuickActions } from './quick-actions' import type { AppState } from '@/store/types' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' type GroupState = Pick diff --git a/src/renderer/src/components/cmd-j/quick-action-context.ts b/src/renderer/src/components/cmd-j/quick-action-context.ts index 79007eae750..88a8cfad533 100644 --- a/src/renderer/src/components/cmd-j/quick-action-context.ts +++ b/src/renderer/src/components/cmd-j/quick-action-context.ts @@ -1,6 +1,6 @@ import type { AppState } from '@/store/types' import { findWorktreeById } from '@/store/slices/worktree-helpers' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import type { SshConnectionStatus } from '../../../../shared/ssh-types' import { getClientCreationActionPolicy } from '@/lib/client-creation-action-policy' diff --git a/src/renderer/src/components/cmd-j/worktree-checks-review-index.test.ts b/src/renderer/src/components/cmd-j/worktree-checks-review-index.test.ts index e401aa0665b..250830fd2d7 100644 --- a/src/renderer/src/components/cmd-j/worktree-checks-review-index.test.ts +++ b/src/renderer/src/components/cmd-j/worktree-checks-review-index.test.ts @@ -1,6 +1,8 @@ import { describe, expect, it } from 'vitest' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { PRInfo, Repo, Worktree } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getGitHubPRCacheKey } from '@/store/slices/github-cache-key' import { getHostedReviewCacheKey } from '@/store/slices/hosted-review-cache-identity' import { getRepoHostIdentity } from '@/store/slices/repo-host-identity' diff --git a/src/renderer/src/components/cmd-j/worktree-checks-review-index.ts b/src/renderer/src/components/cmd-j/worktree-checks-review-index.ts index 992fab427a9..f78f566c247 100644 --- a/src/renderer/src/components/cmd-j/worktree-checks-review-index.ts +++ b/src/renderer/src/components/cmd-j/worktree-checks-review-index.ts @@ -5,7 +5,8 @@ import { getRepoHostIdentityForParts } from '@/store/slices/repo-host-identity' import type { AppState } from '@/store/types' import { LOCAL_EXECUTION_HOST_ID } from '../../../../shared/execution-host' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { selectChecksPanelReview } from '../right-sidebar/checks-panel-review' type WorktreeChecksReviewIndexArgs = { diff --git a/src/renderer/src/components/confirmation-skip-preference.ts b/src/renderer/src/components/confirmation-skip-preference.ts index 8311f2428b2..c7eea096fd4 100644 --- a/src/renderer/src/components/confirmation-skip-preference.ts +++ b/src/renderer/src/components/confirmation-skip-preference.ts @@ -1,7 +1,7 @@ import { toast } from 'sonner' import { translate } from '@/i18n/i18n' import type { SettingsNavTarget } from '@/lib/settings-navigation-types' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' /** Persists the preference and keeps its reversal one click away. */ export function persistConfirmationSkipPreference({ diff --git a/src/renderer/src/components/crash-report/CrashReportDialogSurface.tsx b/src/renderer/src/components/crash-report/CrashReportDialogSurface.tsx index 841c6c4bb44..94ffb8d342d 100644 --- a/src/renderer/src/components/crash-report/CrashReportDialogSurface.tsx +++ b/src/renderer/src/components/crash-report/CrashReportDialogSurface.tsx @@ -19,7 +19,7 @@ import { type CrashReportDiagnosticBundle, type CrashReportRecord } from '../../../../shared/crash-reporting' -import type { GitHubViewer } from '../../../../shared/types' +import type { GitHubViewer } from '../../../../shared/github/pull-request-types' import { translate } from '@/i18n/i18n' import { CRASH_REPORT_SUBMIT_FAILURE_TOAST_ID, diff --git a/src/renderer/src/components/dashboard-popout/AgentMap.tsx b/src/renderer/src/components/dashboard-popout/AgentMap.tsx index db5741e5e07..7b7afc56bc7 100644 --- a/src/renderer/src/components/dashboard-popout/AgentMap.tsx +++ b/src/renderer/src/components/dashboard-popout/AgentMap.tsx @@ -8,7 +8,7 @@ import type { DashboardWorkspace } from '../../../../shared/dashboard-snapshot' import type { RepoIcon } from '../../../../shared/repo-icon' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { AgentMapCanvas, type AgentMapCanvasHandle } from './AgentMapCanvas' import { ALL_AGENT_MAP_HOSTS, filterAgentMapCards, type AgentMapState } from './agent-map-filter' import { updateAgentMapLayout, type AgentMapLayoutCache } from './agent-map-layout' diff --git a/src/renderer/src/components/dashboard-popout/AgentMapCanvas.tsx b/src/renderer/src/components/dashboard-popout/AgentMapCanvas.tsx index 62439665fc7..84290f36f40 100644 --- a/src/renderer/src/components/dashboard-popout/AgentMapCanvas.tsx +++ b/src/renderer/src/components/dashboard-popout/AgentMapCanvas.tsx @@ -15,7 +15,7 @@ import type { DashboardSpawnAgentArgs } from '../../../../shared/dashboard-snapshot' import type { RepoIcon } from '../../../../shared/repo-icon' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { AgentMapAgentNode, AgentMapProjectRing, AgentMapLayout } from './agent-map-layout' import type { AgentMapFlareStatus } from './agent-map-node-metadata' import { AgentMapScene } from './AgentMapScene' diff --git a/src/renderer/src/components/dashboard-popout/AgentMapScene.tsx b/src/renderer/src/components/dashboard-popout/AgentMapScene.tsx index c4a298ed48e..a4914bbdad5 100644 --- a/src/renderer/src/components/dashboard-popout/AgentMapScene.tsx +++ b/src/renderer/src/components/dashboard-popout/AgentMapScene.tsx @@ -3,7 +3,7 @@ import { RepoIconGlyph } from '@/components/repo/repo-icon' import { translate } from '@/i18n/i18n' import type { DashboardCard, DashboardSpawnAgentArgs } from '../../../../shared/dashboard-snapshot' import type { RepoIcon } from '../../../../shared/repo-icon' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { AgentMapAgentNode, AgentMapLayout, diff --git a/src/renderer/src/components/dashboard-popout/AgentMapSnapshotWorkspaceMenu.tsx b/src/renderer/src/components/dashboard-popout/AgentMapSnapshotWorkspaceMenu.tsx index e2208e0be0d..17b992aaaff 100644 --- a/src/renderer/src/components/dashboard-popout/AgentMapSnapshotWorkspaceMenu.tsx +++ b/src/renderer/src/components/dashboard-popout/AgentMapSnapshotWorkspaceMenu.tsx @@ -17,7 +17,7 @@ import type { DashboardSleepWorkspaceArgs, DashboardSpawnAgentArgs } from '../../../../shared/dashboard-snapshot' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' export type AgentMapSnapshotWorkspaceMenuRequest = { id: number diff --git a/src/renderer/src/components/dashboard-popout/AgentMapWorkspaceContextMenu.test.tsx b/src/renderer/src/components/dashboard-popout/AgentMapWorkspaceContextMenu.test.tsx index 057a593da7e..c5477a997e9 100644 --- a/src/renderer/src/components/dashboard-popout/AgentMapWorkspaceContextMenu.test.tsx +++ b/src/renderer/src/components/dashboard-popout/AgentMapWorkspaceContextMenu.test.tsx @@ -5,7 +5,9 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { act, cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react' import { TooltipProvider } from '@/components/ui/tooltip' import { useAppStore } from '@/store' -import type { ProjectGroup, Repo, Worktree } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { DashboardCard } from '../../../../shared/dashboard-snapshot' import { AgentMap } from './AgentMap' import * as StoreSelectors from '@/store/selectors' diff --git a/src/renderer/src/components/dashboard-popout/AgentMapWorktreeRingNode.tsx b/src/renderer/src/components/dashboard-popout/AgentMapWorktreeRingNode.tsx index fd362f45609..f4999a012bd 100644 --- a/src/renderer/src/components/dashboard-popout/AgentMapWorktreeRingNode.tsx +++ b/src/renderer/src/components/dashboard-popout/AgentMapWorktreeRingNode.tsx @@ -7,7 +7,7 @@ import { translate } from '@/i18n/i18n' import { AgentIcon, getAgentLabel } from '@/lib/agent-catalog' import { agentTypeToIconAgent } from '@/lib/agent-status' import type { DashboardCard, DashboardSpawnAgentArgs } from '../../../../shared/dashboard-snapshot' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { AgentMapAgentNode, AgentMapProjectRing, diff --git a/src/renderer/src/components/dashboard-popout/agent-map-render-test-harness.tsx b/src/renderer/src/components/dashboard-popout/agent-map-render-test-harness.tsx index a7c0b08f64e..e428d43f5f6 100644 --- a/src/renderer/src/components/dashboard-popout/agent-map-render-test-harness.tsx +++ b/src/renderer/src/components/dashboard-popout/agent-map-render-test-harness.tsx @@ -6,7 +6,7 @@ import type { DashboardSleepWorkspaceArgs, DashboardSpawnAgentArgs } from '../../../../shared/dashboard-snapshot' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { AgentMap } from './AgentMap' import type { AgentMapState } from './agent-map-filter' diff --git a/src/renderer/src/components/dashboard-popout/preview-terminal-compatibility.ts b/src/renderer/src/components/dashboard-popout/preview-terminal-compatibility.ts index 0693bdff81a..96db5963714 100644 --- a/src/renderer/src/components/dashboard-popout/preview-terminal-compatibility.ts +++ b/src/renderer/src/components/dashboard-popout/preview-terminal-compatibility.ts @@ -1,6 +1,6 @@ import type { Terminal } from '@xterm/xterm' import { Unicode11Addon } from '@xterm/addon-unicode11' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { activateOrcaTerminalUnicodeProvider } from '../../../../shared/terminal-unicode-provider' import { installWindowsCtrlAltChordRepair } from '@/lib/pane-manager/terminal-windows-ctrl-alt-chord-classification' import { attachTerminalMouseWheelMultiplier } from '@/lib/pane-manager/pane-terminal-mouse-wheel' diff --git a/src/renderer/src/components/dashboard-popout/preview-terminal-ligatures.ts b/src/renderer/src/components/dashboard-popout/preview-terminal-ligatures.ts index cc0cb2036fd..354edfeead0 100644 --- a/src/renderer/src/components/dashboard-popout/preview-terminal-ligatures.ts +++ b/src/renderer/src/components/dashboard-popout/preview-terminal-ligatures.ts @@ -1,5 +1,5 @@ import type { Terminal } from '@xterm/xterm' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { resolveTerminalLigaturesEnabled } from '../../../../shared/terminal-ligatures' import { TerminalLigaturesAddon } from '@/lib/pane-manager/terminal-ligatures-addon' diff --git a/src/renderer/src/components/dashboard-popout/preview-terminal-options.test.ts b/src/renderer/src/components/dashboard-popout/preview-terminal-options.test.ts index af4974cdef3..319ec241293 100644 --- a/src/renderer/src/components/dashboard-popout/preview-terminal-options.test.ts +++ b/src/renderer/src/components/dashboard-popout/preview-terminal-options.test.ts @@ -1,7 +1,7 @@ // @vitest-environment happy-dom import { describe, expect, it } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { buildPreviewAppearanceOptions, buildPreviewTerminalOptions diff --git a/src/renderer/src/components/dashboard-popout/preview-terminal-options.ts b/src/renderer/src/components/dashboard-popout/preview-terminal-options.ts index aaf13a8c4bc..284f6510558 100644 --- a/src/renderer/src/components/dashboard-popout/preview-terminal-options.ts +++ b/src/renderer/src/components/dashboard-popout/preview-terminal-options.ts @@ -1,5 +1,5 @@ import type { ITerminalInitOnlyOptions, ITerminalOptions, ITheme } from '@xterm/xterm' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { DashboardCardTerminalInput } from '../../../../shared/dashboard-snapshot' import { resolveTerminalFontWeights } from '../../../../shared/terminal-fonts' import { normalizeTerminalLineHeight } from '../../../../shared/terminal-line-height-settings' diff --git a/src/renderer/src/components/dashboard-popout/useAgentMapContextMenus.tsx b/src/renderer/src/components/dashboard-popout/useAgentMapContextMenus.tsx index a20c534e4d3..198885bdf67 100644 --- a/src/renderer/src/components/dashboard-popout/useAgentMapContextMenus.tsx +++ b/src/renderer/src/components/dashboard-popout/useAgentMapContextMenus.tsx @@ -3,7 +3,7 @@ import type { DashboardSleepWorkspaceArgs, DashboardSpawnAgentArgs } from '../../../../shared/dashboard-snapshot' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { AgentMapProjectRing, AgentMapWorktreeRing } from './agent-map-layout' import { AgentMapSnapshotWorkspaceMenu, diff --git a/src/renderer/src/components/dashboard/AgentDashboardSettingsMenu.tsx b/src/renderer/src/components/dashboard/AgentDashboardSettingsMenu.tsx index 1cc3b6ed03b..eb462a2d3a9 100644 --- a/src/renderer/src/components/dashboard/AgentDashboardSettingsMenu.tsx +++ b/src/renderer/src/components/dashboard/AgentDashboardSettingsMenu.tsx @@ -9,7 +9,7 @@ import { } from '@/components/ui/dropdown-menu' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { SettingsSegmentedControl, SettingsSwitch } from '../settings/SettingsFormControls' -import type { AgentDashboardMode } from '../../../../shared/types' +import type { AgentDashboardMode } from '../../../../shared/ui-chrome-types' import { translate } from '@/i18n/i18n' type AgentDashboardSettingsMenuProps = { diff --git a/src/renderer/src/components/dashboard/DashboardAgentRow.test.tsx b/src/renderer/src/components/dashboard/DashboardAgentRow.test.tsx index 0fb978de62b..5be1c78d574 100644 --- a/src/renderer/src/components/dashboard/DashboardAgentRow.test.tsx +++ b/src/renderer/src/components/dashboard/DashboardAgentRow.test.tsx @@ -2,7 +2,7 @@ import { renderToStaticMarkup } from 'react-dom/server' import type { ComponentProps } from 'react' import { describe, expect, it, vi } from 'vitest' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { TooltipProvider } from '../ui/tooltip' import DashboardAgentRow from './DashboardAgentRow' import type { DashboardAgentRow as DashboardAgentRowData } from './useDashboardData' diff --git a/src/renderer/src/components/dashboard/agent-row-lineage-model.test.ts b/src/renderer/src/components/dashboard/agent-row-lineage-model.test.ts index 028670a91a3..dcc5d754de2 100644 --- a/src/renderer/src/components/dashboard/agent-row-lineage-model.test.ts +++ b/src/renderer/src/components/dashboard/agent-row-lineage-model.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { DashboardAgentRow } from './useDashboardData' import { buildAgentRowLineageTree } from './agent-row-lineage-model' diff --git a/src/renderer/src/components/dashboard/build-dashboard-snapshot-folder-workspace.test.ts b/src/renderer/src/components/dashboard/build-dashboard-snapshot-folder-workspace.test.ts index 822a3b80e96..51a3aada421 100644 --- a/src/renderer/src/components/dashboard/build-dashboard-snapshot-folder-workspace.test.ts +++ b/src/renderer/src/components/dashboard/build-dashboard-snapshot-folder-workspace.test.ts @@ -1,7 +1,9 @@ import { describe, expect, it } from 'vitest' import { makePaneKey } from '../../../../shared/stable-pane-id' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' -import type { FolderWorkspace, ProjectGroup, TerminalTab } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' import { buildDashboardSnapshot, type DashboardSnapshotState } from './build-dashboard-snapshot' diff --git a/src/renderer/src/components/dashboard/build-dashboard-snapshot-orchestration-routing.test.ts b/src/renderer/src/components/dashboard/build-dashboard-snapshot-orchestration-routing.test.ts index d2b85f6ced0..424c936ab0f 100644 --- a/src/renderer/src/components/dashboard/build-dashboard-snapshot-orchestration-routing.test.ts +++ b/src/renderer/src/components/dashboard/build-dashboard-snapshot-orchestration-routing.test.ts @@ -1,7 +1,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type { AgentStatusOrchestrationContext } from '../../../../shared/agent-status-types' import { makePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalTab, Worktree } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' const batchMocks = vi.hoisted(() => ({ release: vi.fn(), diff --git a/src/renderer/src/components/dashboard/build-dashboard-snapshot.test.ts b/src/renderer/src/components/dashboard/build-dashboard-snapshot.test.ts index d4e9bdc565a..884a8ebcaf9 100644 --- a/src/renderer/src/components/dashboard/build-dashboard-snapshot.test.ts +++ b/src/renderer/src/components/dashboard/build-dashboard-snapshot.test.ts @@ -7,7 +7,8 @@ import { } from '../../../../shared/agent-status-types' import { DASHBOARD_MAX_LABEL_LENGTH } from '../../../../shared/dashboard-snapshot' import { makePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalTab, Worktree } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import { selectRuntimeAgentOrchestrationBatch } from '../sidebar/worktree-agent-orchestration-batch' import type * as DashboardSnapshotWorkspacesModule from './dashboard-snapshot-workspaces' import type * as AgentRowLineageModule from './agent-row-lineage' diff --git a/src/renderer/src/components/dashboard/dashboard-card-context.test.ts b/src/renderer/src/components/dashboard/dashboard-card-context.test.ts index ab61f16d857..f4152c20701 100644 --- a/src/renderer/src/components/dashboard/dashboard-card-context.test.ts +++ b/src/renderer/src/components/dashboard/dashboard-card-context.test.ts @@ -1,6 +1,8 @@ import { describe, expect, it } from 'vitest' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { PRInfo, Repo, Worktree } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getGitHubPRCacheKey } from '@/store/slices/github-cache-key' import { getHostedReviewCacheKey } from '@/store/slices/hosted-review-cache-identity' import { diff --git a/src/renderer/src/components/dashboard/dashboard-card-context.ts b/src/renderer/src/components/dashboard/dashboard-card-context.ts index f376a52163c..a0ed03d4d85 100644 --- a/src/renderer/src/components/dashboard/dashboard-card-context.ts +++ b/src/renderer/src/components/dashboard/dashboard-card-context.ts @@ -4,7 +4,8 @@ import type { AppState } from '@/store/types' import type { DashboardCardReview } from '../../../../shared/dashboard-snapshot' import { hostedReviewInfoFromGitHubPRInfo } from '../../../../shared/hosted-review-github' import { isPositiveHostedReviewNumber } from '../../../../shared/hosted-review' -import type { Repo, Worktree, WorkspaceStatusDefinition } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceStatusDefinition, Worktree } from '../../../../shared/worktree/types' import { DEFAULT_WORKSPACE_STATUSES, getWorkspaceStatus diff --git a/src/renderer/src/components/dashboard/dashboard-card-terminal-input.ts b/src/renderer/src/components/dashboard/dashboard-card-terminal-input.ts index b1b0f16c3ee..74ca8250315 100644 --- a/src/renderer/src/components/dashboard/dashboard-card-terminal-input.ts +++ b/src/renderer/src/components/dashboard/dashboard-card-terminal-input.ts @@ -1,6 +1,6 @@ import type { AppState } from '@/store/types' import type { DashboardCardTerminalInput } from '../../../../shared/dashboard-snapshot' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { toRuntimeExecutionHostId, toSshExecutionHostId } from '../../../../shared/execution-host' import { parseAppSshPtyId } from '../../../../shared/ssh-pty-id' import { getConnectionIdFromState } from '@/lib/connection-context' diff --git a/src/renderer/src/components/dashboard/dashboard-worktree-launch-options.test.ts b/src/renderer/src/components/dashboard/dashboard-worktree-launch-options.test.ts index a0aacdcc504..c160b4dd37c 100644 --- a/src/renderer/src/components/dashboard/dashboard-worktree-launch-options.test.ts +++ b/src/renderer/src/components/dashboard/dashboard-worktree-launch-options.test.ts @@ -1,7 +1,8 @@ import { describe, expect, it } from 'vitest' import { DASHBOARD_MAX_LAUNCH_WORKTREES } from '../../../../shared/dashboard-snapshot' import type { DashboardCard, DashboardWorkspace } from '../../../../shared/dashboard-snapshot' -import type { FolderWorkspace, ProjectGroup } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import { buildDashboardWorktreeLaunchOptions } from './dashboard-worktree-launch-options' diff --git a/src/renderer/src/components/dashboard/dashboard-worktree-launch-options.ts b/src/renderer/src/components/dashboard/dashboard-worktree-launch-options.ts index 16ca6c1f795..44c76a74fee 100644 --- a/src/renderer/src/components/dashboard/dashboard-worktree-launch-options.ts +++ b/src/renderer/src/components/dashboard/dashboard-worktree-launch-options.ts @@ -10,7 +10,7 @@ import { filterEnabledTuiAgents, TUI_AGENT_AUTO_PICK_ORDER } from '../../../../shared/tui-agent-selection' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { parseWorkspaceKey } from '../../../../shared/workspace-scope' export type DashboardLaunchDetectionState = Pick< diff --git a/src/renderer/src/components/dashboard/useDashboardData.ts b/src/renderer/src/components/dashboard/useDashboardData.ts index 06926f919a0..2433ea0e88f 100644 --- a/src/renderer/src/components/dashboard/useDashboardData.ts +++ b/src/renderer/src/components/dashboard/useDashboardData.ts @@ -3,7 +3,7 @@ import type { AgentStatusState, AgentType } from '../../../../shared/agent-status-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' export type DashboardAgentRow = { /** Row identity. For 'subagent' rows this is a synthetic key (the child has diff --git a/src/renderer/src/components/dashboard/useLiveDashboardSnapshot.test.ts b/src/renderer/src/components/dashboard/useLiveDashboardSnapshot.test.ts index d2481a9201e..f3b7da6254e 100644 --- a/src/renderer/src/components/dashboard/useLiveDashboardSnapshot.test.ts +++ b/src/renderer/src/components/dashboard/useLiveDashboardSnapshot.test.ts @@ -4,7 +4,10 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest' import { useAppStore } from '@/store' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' import { makePaneKey } from '../../../../shared/stable-pane-id' -import type { GlobalSettings, Repo, TerminalTab, Worktree } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import { useLiveDashboardSnapshot } from './useLiveDashboardSnapshot' const NOW = 1_000_000_000 diff --git a/src/renderer/src/components/dashboard/useRetainedAgents.test.ts b/src/renderer/src/components/dashboard/useRetainedAgents.test.ts index 095bdedcb67..2e3b60f1157 100644 --- a/src/renderer/src/components/dashboard/useRetainedAgents.test.ts +++ b/src/renderer/src/components/dashboard/useRetainedAgents.test.ts @@ -5,7 +5,9 @@ import { useAppStore } from '@/store' import { resetAgentPaneAuthorityAliasesForTests } from '@/store/slices/agent-pane-authority' import type { AgentStatusEntry, AgentStatusState } from '../../../../shared/agent-status-types' import { makePaneKey } from '../../../../shared/stable-pane-id' -import type { Repo, TerminalTab, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import { collectRetainedAgentsOnDisappear, useRetainedAgentsSync } from './useRetainedAgents' const initialAppState = useAppStore.getInitialState() diff --git a/src/renderer/src/components/dashboard/useRetainedAgents.ts b/src/renderer/src/components/dashboard/useRetainedAgents.ts index 6fa1f94fda7..883da974142 100644 --- a/src/renderer/src/components/dashboard/useRetainedAgents.ts +++ b/src/renderer/src/components/dashboard/useRetainedAgents.ts @@ -4,7 +4,10 @@ import { useAppStore } from '@/store' import { isExplicitAgentStatusFresh } from '@/lib/agent-status' import type { DashboardAgentRow } from './useDashboardData' import type { RetainedAgentEntry } from '@/store/slices/agent-status' -import type { FolderWorkspace, Repo, TerminalTab, Worktree } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import { resolveAgentPaneAuthorityKey } from '@/store/slices/agent-pane-authority' import { diff --git a/src/renderer/src/components/dashboard/useRetainedAgentsSync.test.ts b/src/renderer/src/components/dashboard/useRetainedAgentsSync.test.ts index 3d33575d649..88bb584a18e 100644 --- a/src/renderer/src/components/dashboard/useRetainedAgentsSync.test.ts +++ b/src/renderer/src/components/dashboard/useRetainedAgentsSync.test.ts @@ -4,7 +4,10 @@ import { type AgentStatusEntry, type AgentStatusState } from '../../../../shared/agent-status-types' -import type { FolderWorkspace, Repo, TerminalTab, Worktree } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import { makePaneKey } from '../../../../shared/stable-pane-id' import { buildRetainedAgentsSyncSnapshot } from './useRetainedAgents' diff --git a/src/renderer/src/components/dictation/use-hold-dictation-gesture.test.tsx b/src/renderer/src/components/dictation/use-hold-dictation-gesture.test.tsx index ef83b076201..d71e608e525 100644 --- a/src/renderer/src/components/dictation/use-hold-dictation-gesture.test.tsx +++ b/src/renderer/src/components/dictation/use-hold-dictation-gesture.test.tsx @@ -4,7 +4,7 @@ import { createRef, type MutableRefObject, act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { DictationState } from '../../../../shared/speech-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { DictationInsertionTarget } from './dictation-insertion-target' import { useHoldDictationGesture } from './use-hold-dictation-gesture' diff --git a/src/renderer/src/components/dictation/use-hold-dictation-gesture.ts b/src/renderer/src/components/dictation/use-hold-dictation-gesture.ts index f1316b9a4ac..554af340c9c 100644 --- a/src/renderer/src/components/dictation/use-hold-dictation-gesture.ts +++ b/src/renderer/src/components/dictation/use-hold-dictation-gesture.ts @@ -2,7 +2,7 @@ import { useEffect, useRef, type MutableRefObject } from 'react' import { getShortcutPlatform } from '@/lib/shortcut-platform' import { keybindingMatchesAction, type KeybindingOverrides } from '../../../../shared/keybindings' import type { DictationState } from '../../../../shared/speech-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { DictationInsertionTarget } from './dictation-insertion-target' type HoldDictationGestureOptions = { diff --git a/src/renderer/src/components/diff-comments/useDiffCommentDecorator.tsx b/src/renderer/src/components/diff-comments/useDiffCommentDecorator.tsx index 2c3214070d9..833099b3ad4 100644 --- a/src/renderer/src/components/diff-comments/useDiffCommentDecorator.tsx +++ b/src/renderer/src/components/diff-comments/useDiffCommentDecorator.tsx @@ -3,7 +3,7 @@ import { useCallback, useEffect, useMemo, useRef } from 'react' import * as monaco from 'monaco-editor' import type { editor as monacoEditor, IDisposable } from 'monaco-editor' import { createRoot, type Root } from 'react-dom/client' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { getCommentBodyLayoutLineCount } from '@/lib/comment-body-line-count' import { getDiffCommentLineLabel } from '@/lib/diff-comment-compat' import { formatDiffComments } from '@/lib/diff-comments-format' diff --git a/src/renderer/src/components/editor/ChangesModeView.tsx b/src/renderer/src/components/editor/ChangesModeView.tsx index 9fac8364e80..2004f576d5c 100644 --- a/src/renderer/src/components/editor/ChangesModeView.tsx +++ b/src/renderer/src/components/editor/ChangesModeView.tsx @@ -1,7 +1,8 @@ import React from 'react' import { lazyWithRetry as lazy } from '@/lib/lazy-with-retry' import type { OpenFile } from '@/store/slices/editor' -import type { GitDiffResult, GitStatusEntry } from '../../../../shared/types' +import type { GitDiffResult } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { ConflictBanner } from './ConflictComponents' import { getDiffContentSignature } from './diff-content-signature' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/editor/CheckRunAnnotations.tsx b/src/renderer/src/components/editor/CheckRunAnnotations.tsx index f7b53071508..5d7dfe0d878 100644 --- a/src/renderer/src/components/editor/CheckRunAnnotations.tsx +++ b/src/renderer/src/components/editor/CheckRunAnnotations.tsx @@ -1,7 +1,7 @@ import React from 'react' import { ExternalLink } from 'lucide-react' import { translate } from '@/i18n/i18n' -import type { PRCheckAnnotation } from '../../../../shared/types' +import type { PRCheckAnnotation } from '../../../../shared/github/check-types' import { cancelAnnotationRevealFrame, getOpenableAnnotationLine, diff --git a/src/renderer/src/components/editor/CheckRunDetailsPanel.tsx b/src/renderer/src/components/editor/CheckRunDetailsPanel.tsx index 6003be19e05..edf79624cc5 100644 --- a/src/renderer/src/components/editor/CheckRunDetailsPanel.tsx +++ b/src/renderer/src/components/editor/CheckRunDetailsPanel.tsx @@ -3,7 +3,7 @@ import { ExternalLink, LoaderCircle, RefreshCw } from 'lucide-react' import { toast } from 'sonner' import { Button } from '@/components/ui/button' import CommentMarkdown from '@/components/sidebar/CommentMarkdown' -import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/github/check-types' import { SourceControlFixSplitButton } from '@/components/right-sidebar/source-control-fix-split-button' import { translate } from '@/i18n/i18n' import { useCheckRunDetailsFixWithAI } from './check-run-details-fix-with-ai' diff --git a/src/renderer/src/components/editor/CheckRunJobs.tsx b/src/renderer/src/components/editor/CheckRunJobs.tsx index 6b3bfa0816e..3fedd9f7569 100644 --- a/src/renderer/src/components/editor/CheckRunJobs.tsx +++ b/src/renderer/src/components/editor/CheckRunJobs.tsx @@ -3,7 +3,7 @@ import { CheckCircle2, ChevronDown, CircleDashed, MinusCircle, XCircle } from 'l import { CheckJobLogTail } from '@/components/right-sidebar/check-job-log-tail' import { translate } from '@/i18n/i18n' import { cn } from '@/lib/utils' -import type { PRCheckJob, PRCheckStep } from '../../../../shared/types' +import type { PRCheckJob, PRCheckStep } from '../../../../shared/github/check-types' import { resolveStepOutcome, summarizeJobSteps, type StepOutcome } from './check-job-step-status' function StepOutcomeIcon({ outcome }: { outcome: StepOutcome }): React.JSX.Element { diff --git a/src/renderer/src/components/editor/CombinedDiffFileTree.test.ts b/src/renderer/src/components/editor/CombinedDiffFileTree.test.ts index 97721b1b6b7..7a21281213d 100644 --- a/src/renderer/src/components/editor/CombinedDiffFileTree.test.ts +++ b/src/renderer/src/components/editor/CombinedDiffFileTree.test.ts @@ -11,7 +11,8 @@ import { getFilteredCombinedDiffFileTreeEntries, isCombinedDiffFileTreeQueryTooLarge } from './combined-diff-file-tree-model' -import type { GitBranchChangeEntry, GitStatusEntry } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' describe('CombinedDiffFileTree navigation mapping', () => { it('disambiguates uncommitted entries with the same path by area', () => { diff --git a/src/renderer/src/components/editor/CombinedDiffFileTree.tsx b/src/renderer/src/components/editor/CombinedDiffFileTree.tsx index fc59c2dd75c..99a53af8795 100644 --- a/src/renderer/src/components/editor/CombinedDiffFileTree.tsx +++ b/src/renderer/src/components/editor/CombinedDiffFileTree.tsx @@ -10,7 +10,8 @@ import { compactSourceControlTree, flattenSourceControlTree } from '@/components/right-sidebar/source-control-tree' -import type { GitBranchChangeEntry, GitStagingArea, GitStatusEntry } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' +import type { GitStagingArea, GitStatusEntry } from '../../../../shared/git-status-types' import { getEntryExtension, getFilteredCombinedDiffFileTreeEntries, diff --git a/src/renderer/src/components/editor/CombinedDiffViewer.tsx b/src/renderer/src/components/editor/CombinedDiffViewer.tsx index fd87b515349..b004ef3a799 100644 --- a/src/renderer/src/components/editor/CombinedDiffViewer.tsx +++ b/src/renderer/src/components/editor/CombinedDiffViewer.tsx @@ -42,12 +42,9 @@ import { import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import type { OpenFile } from '@/store/slices/editor' -import type { - DiffComment, - GitBranchChangeEntry, - GitDiffResult, - GitStatusEntry -} from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' +import type { GitBranchChangeEntry, GitDiffResult } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { Check, Copy, MessageSquare, PanelLeftOpen, Sparkles, Trash2, WrapText } from 'lucide-react' import { toast } from 'sonner' import { DiffSectionItem } from './DiffSectionItem' diff --git a/src/renderer/src/components/editor/ConflictComponents.tsx b/src/renderer/src/components/editor/ConflictComponents.tsx index 32159e23f00..b89db1280ea 100644 --- a/src/renderer/src/components/editor/ConflictComponents.tsx +++ b/src/renderer/src/components/editor/ConflictComponents.tsx @@ -13,7 +13,7 @@ import { Button } from '@/components/ui/button' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { cn } from '@/lib/utils' import type { ConflictReviewEntry, OpenFile } from '@/store/slices/editor' -import type { GitConflictKind, GitStatusEntry } from '../../../../shared/types' +import type { GitConflictKind, GitStatusEntry } from '../../../../shared/git-status-types' import { ConflictReviewFileTree } from './ConflictReviewFileTree' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/editor/ConflictReviewFileTree.tsx b/src/renderer/src/components/editor/ConflictReviewFileTree.tsx index f3e5e02c425..6a3ce686694 100644 --- a/src/renderer/src/components/editor/ConflictReviewFileTree.tsx +++ b/src/renderer/src/components/editor/ConflictReviewFileTree.tsx @@ -10,7 +10,7 @@ import { type SourceControlTreeNode } from '@/components/right-sidebar/source-control-tree' import type { ConflictReviewEntry } from '@/store/slices/editor' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { translate } from '@/i18n/i18n' type ConflictReviewTreeEntry = ConflictReviewEntry & { diff --git a/src/renderer/src/components/editor/DiffNotesSendMenu.tsx b/src/renderer/src/components/editor/DiffNotesSendMenu.tsx index 8fc9daefbe8..8e49dceaf9f 100644 --- a/src/renderer/src/components/editor/DiffNotesSendMenu.tsx +++ b/src/renderer/src/components/editor/DiffNotesSendMenu.tsx @@ -1,5 +1,5 @@ import React, { useCallback, useMemo } from 'react' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { useAppStore } from '@/store' import { formatDiffComments } from '@/lib/diff-comments-format' import { NotesSendMenu, type NotesSendMenuScope } from './NotesSendMenu' diff --git a/src/renderer/src/components/editor/DiffSectionItem.tsx b/src/renderer/src/components/editor/DiffSectionItem.tsx index c6931fe5240..22905daf464 100644 --- a/src/renderer/src/components/editor/DiffSectionItem.tsx +++ b/src/renderer/src/components/editor/DiffSectionItem.tsx @@ -13,7 +13,7 @@ import { } from '../diff-comments/diff-comment-popover-position' import { applyDiffEditorLineNumberOptions } from './diff-editor-line-number-options' import { DiffSectionHeader } from './DiffSectionHeader' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { isDiffComment } from '@/lib/diff-comment-compat' import { installEditorSaveShortcut, installMonacoEditorFindShortcut } from './editor-shortcuts' import { DiffSectionBody } from './DiffSectionBody' diff --git a/src/renderer/src/components/editor/DiffViewer.tsx b/src/renderer/src/components/editor/DiffViewer.tsx index e2f364a2c81..36b515b8f53 100644 --- a/src/renderer/src/components/editor/DiffViewer.tsx +++ b/src/renderer/src/components/editor/DiffViewer.tsx @@ -14,7 +14,7 @@ import { getDiffCommentPopoverTop } from '../diff-comments/diff-comment-popover-position' import { applyDiffEditorLineNumberOptions } from './diff-editor-line-number-options' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { isDiffComment } from '@/lib/diff-comment-compat' import { installEditorSaveShortcut, installMonacoEditorFindShortcut } from './editor-shortcuts' import { diffEditorScrollbarOptions } from './diff-editor-scrollbar-options' diff --git a/src/renderer/src/components/editor/EditorContent.tsx b/src/renderer/src/components/editor/EditorContent.tsx index a9da4e54065..01be65d3465 100644 --- a/src/renderer/src/components/editor/EditorContent.tsx +++ b/src/renderer/src/components/editor/EditorContent.tsx @@ -14,7 +14,8 @@ import { getNextConflictNavigationIndex } from './ConflictComponents' import type { MarkdownViewMode, OpenFile, PendingEditorReveal } from '@/store/slices/editor' -import type { GitStatusEntry, GitDiffResult } from '../../../../shared/types' +import type { GitDiffResult } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { getMarkdownRenderMode } from './markdown-render-mode' import { getMarkdownRichModeUnsupportedMessage } from './markdown-rich-mode' import { exceedsMarkdownRichModeSizeLimit } from './markdown-rich-size-limit' diff --git a/src/renderer/src/components/editor/MarkdownPreview.test.ts b/src/renderer/src/components/editor/MarkdownPreview.test.ts index b6fd98c6467..12f29758a83 100644 --- a/src/renderer/src/components/editor/MarkdownPreview.test.ts +++ b/src/renderer/src/components/editor/MarkdownPreview.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { decodeMarkdownPreviewAnchor, deriveMarkdownPreviewSourceRoot, diff --git a/src/renderer/src/components/editor/MarkdownPreview.tsx b/src/renderer/src/components/editor/MarkdownPreview.tsx index fe73dc07858..519072c63c8 100644 --- a/src/renderer/src/components/editor/MarkdownPreview.tsx +++ b/src/renderer/src/components/editor/MarkdownPreview.tsx @@ -41,7 +41,9 @@ import { getConnectionIdForFile } from '@/lib/connection-context' import { createConnectionIdForFileSelector } from '@/lib/connection-owner-resolution' import { scrollTopCache, setWithLRU } from '@/lib/scroll-cache' import { detectLanguage } from '@/lib/language-detect' -import type { DiffComment, MarkdownDocument, Worktree } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' +import type { Worktree } from '../../../../shared/worktree/types' import { fileUrlToAbsolutePath, getMarkdownPreviewLinkTarget, diff --git a/src/renderer/src/components/editor/MonacoEditor.tsx b/src/renderer/src/components/editor/MonacoEditor.tsx index 15718697a54..ba1a967746b 100644 --- a/src/renderer/src/components/editor/MonacoEditor.tsx +++ b/src/renderer/src/components/editor/MonacoEditor.tsx @@ -4,7 +4,8 @@ import React, { useRef, useCallback, useEffect, useLayoutEffect, useMemo, useSta import Editor, { type OnMount } from '@monaco-editor/react' import type { editor } from 'monaco-editor' import { toast } from 'sonner' -import type { MarkdownDocument, DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import { useAppStore } from '@/store' import { scrollTopCache, cursorPositionCache, setWithLRU } from '@/lib/scroll-cache' import '@/lib/monaco-setup' diff --git a/src/renderer/src/components/editor/ReviewNotesSendMenuContent.test.tsx b/src/renderer/src/components/editor/ReviewNotesSendMenuContent.test.tsx index 92e7e21da80..1ae74985923 100644 --- a/src/renderer/src/components/editor/ReviewNotesSendMenuContent.test.tsx +++ b/src/renderer/src/components/editor/ReviewNotesSendMenuContent.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' import type { AgentStatusEntry, AgentStatusState } from '../../../../shared/agent-status-types' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { makePaneKey } from '../../../../shared/stable-pane-id' import type { DashboardAgentRow as DashboardAgentRowData } from '@/components/dashboard/useDashboardData' import { ReviewNotesSendMenuContent } from './ReviewNotesSendMenuContent' diff --git a/src/renderer/src/components/editor/RichMarkdownEditor.tsx b/src/renderer/src/components/editor/RichMarkdownEditor.tsx index 56eb1e9d728..6678cda3569 100644 --- a/src/renderer/src/components/editor/RichMarkdownEditor.tsx +++ b/src/renderer/src/components/editor/RichMarkdownEditor.tsx @@ -1,6 +1,6 @@ import React, { useCallback, useEffect, useRef, useState } from 'react' import { useEditorState, type Editor } from '@tiptap/react' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { useAppStore } from '@/store' import { selectWorktreeDiffComments } from '@/store/worktree-diff-comments-selector' import { useLocalImagePick } from './useLocalImagePick' diff --git a/src/renderer/src/components/editor/RichMarkdownEditorSurface.tsx b/src/renderer/src/components/editor/RichMarkdownEditorSurface.tsx index d3a7b423daa..12bc5cc35c3 100644 --- a/src/renderer/src/components/editor/RichMarkdownEditorSurface.tsx +++ b/src/renderer/src/components/editor/RichMarkdownEditorSurface.tsx @@ -19,7 +19,7 @@ import type { NotesSendMenuScope } from './NotesSendMenu' import type { MarkdownReviewNote } from '@/lib/markdown-review-notes' import type { RichMarkdownAnnotationTarget } from './rich-markdown-review-annotations' import type { RichMarkdownReviewNotePosition } from './rich-markdown-review-note-layout' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' function shouldFocusEmptyEditorFromSurfaceClick( event: React.MouseEvent, diff --git a/src/renderer/src/components/editor/RichMarkdownReviewNoteLayer.tsx b/src/renderer/src/components/editor/RichMarkdownReviewNoteLayer.tsx index 881cef3ff1d..0aa90569f98 100644 --- a/src/renderer/src/components/editor/RichMarkdownReviewNoteLayer.tsx +++ b/src/renderer/src/components/editor/RichMarkdownReviewNoteLayer.tsx @@ -1,5 +1,5 @@ import { Check, Copy } from 'lucide-react' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { DiffCommentCard } from '../diff-comments/DiffCommentCard' import { NotesSendMenu } from './NotesSendMenu' import { diff --git a/src/renderer/src/components/editor/check-annotation-path.test.ts b/src/renderer/src/components/editor/check-annotation-path.test.ts index 95f23378473..b28fa77214a 100644 --- a/src/renderer/src/components/editor/check-annotation-path.test.ts +++ b/src/renderer/src/components/editor/check-annotation-path.test.ts @@ -3,7 +3,7 @@ import { getOpenableAnnotationLine, resolveAnnotationPathInsideWorktree } from './check-annotation-path' -import type { PRCheckAnnotation } from '../../../../shared/types' +import type { PRCheckAnnotation } from '../../../../shared/github/check-types' function annotation(path: string | null, startLine = 1): PRCheckAnnotation { return { diff --git a/src/renderer/src/components/editor/check-annotation-path.ts b/src/renderer/src/components/editor/check-annotation-path.ts index b18baea1475..4087d22669c 100644 --- a/src/renderer/src/components/editor/check-annotation-path.ts +++ b/src/renderer/src/components/editor/check-annotation-path.ts @@ -1,4 +1,4 @@ -import type { PRCheckAnnotation } from '../../../../shared/types' +import type { PRCheckAnnotation } from '../../../../shared/github/check-types' import { relativePathInsideRoot, resolveRuntimePath } from '../../../../shared/cross-platform-path' const WORKFLOW_PSEUDO_ANNOTATION_PATH = '.github' diff --git a/src/renderer/src/components/editor/check-job-step-status.ts b/src/renderer/src/components/editor/check-job-step-status.ts index a6d4d07007d..c81797818ae 100644 --- a/src/renderer/src/components/editor/check-job-step-status.ts +++ b/src/renderer/src/components/editor/check-job-step-status.ts @@ -1,4 +1,4 @@ -import type { PRCheckJob, PRCheckStep } from '../../../../shared/types' +import type { PRCheckJob, PRCheckStep } from '../../../../shared/github/check-types' export type StepOutcome = 'success' | 'failure' | 'skipped' | 'pending' diff --git a/src/renderer/src/components/editor/check-run-details-fix-context.ts b/src/renderer/src/components/editor/check-run-details-fix-context.ts index f0e99b12e2f..d794265ec60 100644 --- a/src/renderer/src/components/editor/check-run-details-fix-context.ts +++ b/src/renderer/src/components/editor/check-run-details-fix-context.ts @@ -10,7 +10,8 @@ import { getGitHubPRCacheKey } from '@/store/slices/github-cache-key' import { getHostedReviewCacheKey } from '@/store/slices/hosted-review-cache-identity' import { findWorktreeById } from '@/store/slices/worktree-helpers' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { PRCheckDetail, PRCheckRunDetails, Repo } from '../../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/github/check-types' +import type { Repo } from '../../../../shared/repo-types' import { translate } from '@/i18n/i18n' export function resolveCheckRunDetailsFixCheck( diff --git a/src/renderer/src/components/editor/check-run-details-fix-with-ai.test.ts b/src/renderer/src/components/editor/check-run-details-fix-with-ai.test.ts index 10531e2224a..ae46dc37187 100644 --- a/src/renderer/src/components/editor/check-run-details-fix-with-ai.test.ts +++ b/src/renderer/src/components/editor/check-run-details-fix-with-ai.test.ts @@ -1,11 +1,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { - PRCheckDetail, - PRCheckRunDetails, - PRInfo, - Repo, - Worktree -} from '../../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/github/check-types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getCheckRunDetailsFixDisabledReason, isCheckRunDetailsFixCandidate, diff --git a/src/renderer/src/components/editor/check-run-details-fix-with-ai.ts b/src/renderer/src/components/editor/check-run-details-fix-with-ai.ts index 80059758ca7..48cae27613a 100644 --- a/src/renderer/src/components/editor/check-run-details-fix-with-ai.ts +++ b/src/renderer/src/components/editor/check-run-details-fix-with-ai.ts @@ -24,7 +24,7 @@ import type { SourceControlActionRecipe, SourceControlLaunchActionId } from '../../../../shared/source-control-ai-actions' -import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/github/check-types' import { translate } from '@/i18n/i18n' export { diff --git a/src/renderer/src/components/editor/check-run-details-tab.ts b/src/renderer/src/components/editor/check-run-details-tab.ts index 02e833b61b6..b274b1564c0 100644 --- a/src/renderer/src/components/editor/check-run-details-tab.ts +++ b/src/renderer/src/components/editor/check-run-details-tab.ts @@ -1,9 +1,6 @@ import type { GitLabProjectRef } from '../../../../shared/gitlab-types' -import type { - GitHubRepositoryIdentity, - PRCheckDetail, - PRCheckRunDetails -} from '../../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/github/check-types' +import type { GitHubRepositoryIdentity } from '../../../../shared/github/pull-request-types' export type OpenCheckRunDetailsState = { contextKey: string diff --git a/src/renderer/src/components/editor/combined-diff-entries.test.ts b/src/renderer/src/components/editor/combined-diff-entries.test.ts index c3ff00ecab0..312d6baa8c2 100644 --- a/src/renderer/src/components/editor/combined-diff-entries.test.ts +++ b/src/renderer/src/components/editor/combined-diff-entries.test.ts @@ -5,7 +5,8 @@ import { resolveCombinedUncommittedSnapshotEntries, shouldAutoReloadCombinedDiffFromGitStatus } from './combined-diff-entries' -import type { GitBranchChangeEntry, GitStatusEntry } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' describe('getCombinedUncommittedEntries', () => { it('filters unresolved conflicts from live entries', () => { diff --git a/src/renderer/src/components/editor/combined-diff-entries.ts b/src/renderer/src/components/editor/combined-diff-entries.ts index 73d2fe44a70..ab64df67d47 100644 --- a/src/renderer/src/components/editor/combined-diff-entries.ts +++ b/src/renderer/src/components/editor/combined-diff-entries.ts @@ -1,5 +1,6 @@ import type { OpenFile } from '@/store/slices/editor' -import type { GitBranchChangeEntry, GitStatusEntry } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import type { CombinedDiffFileTreeMode } from './combined-diff-file-tree-model' /** diff --git a/src/renderer/src/components/editor/combined-diff-file-tree-model.ts b/src/renderer/src/components/editor/combined-diff-file-tree-model.ts index 93d38853647..fc3c440fc95 100644 --- a/src/renderer/src/components/editor/combined-diff-file-tree-model.ts +++ b/src/renderer/src/components/editor/combined-diff-file-tree-model.ts @@ -1,5 +1,6 @@ import { basename } from '@/lib/path' -import type { GitBranchChangeEntry, GitStatusEntry } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { isClipboardTextByteLengthOverLimit } from '../../../../shared/clipboard-text' import { buildSourceControlTree, diff --git a/src/renderer/src/components/editor/combined-diff-file-tree-row.tsx b/src/renderer/src/components/editor/combined-diff-file-tree-row.tsx index 7f47909cb10..eb6dc11fbf0 100644 --- a/src/renderer/src/components/editor/combined-diff-file-tree-row.tsx +++ b/src/renderer/src/components/editor/combined-diff-file-tree-row.tsx @@ -6,12 +6,12 @@ import { getFileTypeIcon } from '@/lib/file-type-icons' import { basename, dirname, joinPath } from '@/lib/path' import { cn } from '@/lib/utils' import { WORKSPACE_FILE_PATH_MIME } from '@/lib/workspace-file-drag' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' import type { - GitBranchChangeEntry, GitFileStatus, GitStagingArea, GitStatusEntry -} from '../../../../shared/types' +} from '../../../../shared/git-status-types' import { getCombinedDiffFileTreeSectionKey, type CombinedDiffBranchTreeArea, diff --git a/src/renderer/src/components/editor/combined-diff-section-cache-match.test.ts b/src/renderer/src/components/editor/combined-diff-section-cache-match.test.ts index 970a2155d00..1eea28d9d89 100644 --- a/src/renderer/src/components/editor/combined-diff-section-cache-match.test.ts +++ b/src/renderer/src/components/editor/combined-diff-section-cache-match.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { GitBranchChangeEntry, GitStatusEntry } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import type { DiffSection } from './diff-section-types' import { combinedDiffSectionsMatchEntryMetadata } from './combined-diff-section-cache-match' diff --git a/src/renderer/src/components/editor/combined-diff-section-cache-match.ts b/src/renderer/src/components/editor/combined-diff-section-cache-match.ts index a53e3a1aa43..7f25e96f7c3 100644 --- a/src/renderer/src/components/editor/combined-diff-section-cache-match.ts +++ b/src/renderer/src/components/editor/combined-diff-section-cache-match.ts @@ -1,4 +1,5 @@ -import type { GitBranchChangeEntry, GitStatusEntry } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import type { CombinedDiffFileTreeMode } from './combined-diff-file-tree-model' import { getCombinedDiffFileTreeSectionKey } from './combined-diff-file-tree-model' import type { DiffSection } from './diff-section-types' diff --git a/src/renderer/src/components/editor/combined-diff-section-connection.test.ts b/src/renderer/src/components/editor/combined-diff-section-connection.test.ts index 894f6df7830..89254a6f6b1 100644 --- a/src/renderer/src/components/editor/combined-diff-section-connection.test.ts +++ b/src/renderer/src/components/editor/combined-diff-section-connection.test.ts @@ -1,5 +1,7 @@ import { afterEach, describe, expect, it } from 'vitest' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import { useAppStore } from '@/store' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import { getCombinedDiffSectionConnectionId } from './combined-diff-section-connection' diff --git a/src/renderer/src/components/editor/combined-diff-section-load-state.test.ts b/src/renderer/src/components/editor/combined-diff-section-load-state.test.ts index 996e66c2f5a..0b647561738 100644 --- a/src/renderer/src/components/editor/combined-diff-section-load-state.test.ts +++ b/src/renderer/src/components/editor/combined-diff-section-load-state.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GitDiffResult } from '../../../../shared/types' +import type { GitDiffResult } from '../../../../shared/git-diff-compare-types' import type { LargeDiffRenderLimit } from './large-diff-render-limit' import { isUnchangedDiffSectionReload, diff --git a/src/renderer/src/components/editor/diff-section-layout.test.ts b/src/renderer/src/components/editor/diff-section-layout.test.ts index 809ca80cab3..f5b4d4145f6 100644 --- a/src/renderer/src/components/editor/diff-section-layout.test.ts +++ b/src/renderer/src/components/editor/diff-section-layout.test.ts @@ -5,7 +5,7 @@ import { getDiffSectionEstimatedHeight, isIntrinsicHeightImageDiff } from './diff-section-layout' -import type { GitDiffResult } from '../../../../shared/types' +import type { GitDiffResult } from '../../../../shared/git-diff-compare-types' describe('diff section layout', () => { it('uses Monaco measured content height for text diffs', () => { diff --git a/src/renderer/src/components/editor/diff-section-layout.ts b/src/renderer/src/components/editor/diff-section-layout.ts index 17e642641ee..6fb4c6c46b0 100644 --- a/src/renderer/src/components/editor/diff-section-layout.ts +++ b/src/renderer/src/components/editor/diff-section-layout.ts @@ -1,4 +1,4 @@ -import type { GitDiffResult } from '../../../../shared/types' +import type { GitDiffResult } from '../../../../shared/git-diff-compare-types' import { countLinesLikeSplit, type DiffLineCounts } from './large-diff-render-limit' const DIFF_LINE_HEIGHT = 19 diff --git a/src/renderer/src/components/editor/diff-section-types.ts b/src/renderer/src/components/editor/diff-section-types.ts index 0c5d659f4be..fe2d23bf273 100644 --- a/src/renderer/src/components/editor/diff-section-types.ts +++ b/src/renderer/src/components/editor/diff-section-types.ts @@ -1,4 +1,5 @@ -import type { GitDiffResult, GitStatusEntry } from '../../../../shared/types' +import type { GitDiffResult } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import type { LargeDiffRenderLimit } from './large-diff-render-limit' export type DiffSection = { diff --git a/src/renderer/src/components/editor/editor-cmd-save-target.test.ts b/src/renderer/src/components/editor/editor-cmd-save-target.test.ts index 518f8c8b859..f53e6c5f1f8 100644 --- a/src/renderer/src/components/editor/editor-cmd-save-target.test.ts +++ b/src/renderer/src/components/editor/editor-cmd-save-target.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' -import type { Tab } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' import { getEditorCmdSaveFileId } from './editor-cmd-save-target' function makeTab(contentType: Tab['contentType'], entityId: string): Tab { diff --git a/src/renderer/src/components/editor/editor-cmd-save-target.ts b/src/renderer/src/components/editor/editor-cmd-save-target.ts index 0d021a87790..75159e0dbff 100644 --- a/src/renderer/src/components/editor/editor-cmd-save-target.ts +++ b/src/renderer/src/components/editor/editor-cmd-save-target.ts @@ -1,5 +1,6 @@ import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' -import type { Tab, TabContentType, TopLevelView } from '../../../../shared/types' +import type { Tab, TabContentType } from '../../../../shared/tab-types' +import type { TopLevelView } from '../../../../shared/ui-chrome-types' export const EDITOR_TAB_CONTENT_TYPES = new Set([ 'editor', diff --git a/src/renderer/src/components/editor/editor-external-watch-path-index.ts b/src/renderer/src/components/editor/editor-external-watch-path-index.ts index f1cb7054c67..3ce5f2a432b 100644 --- a/src/renderer/src/components/editor/editor-external-watch-path-index.ts +++ b/src/renderer/src/components/editor/editor-external-watch-path-index.ts @@ -1,7 +1,7 @@ import { joinPath } from '@/lib/path' import { getExternalFileChangeRelativePath } from '@/components/right-sidebar/useFileExplorerWatch' import type { OpenFile } from '@/store/slices/editor' -import type { FsChangedPayload } from '../../../../shared/types' +import type { FsChangedPayload } from '../../../../shared/filesystem-entry-types' import { getLocalWindowsWslPathIdentity, normalizeRuntimePathForComparison, diff --git a/src/renderer/src/components/editor/editor-header.ts b/src/renderer/src/components/editor/editor-header.ts index a3fbafbd6da..c511d401d3b 100644 --- a/src/renderer/src/components/editor/editor-header.ts +++ b/src/renderer/src/components/editor/editor-header.ts @@ -1,5 +1,6 @@ import type { OpenFile } from '@/store/slices/editor' -import type { GitBranchChangeEntry, GitStatusEntry } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { getEditorDisplayLabel } from './editor-labels' export type EditorHeaderCopyState = { diff --git a/src/renderer/src/components/editor/editor-panel-content-types.ts b/src/renderer/src/components/editor/editor-panel-content-types.ts index 1c137bfb632..dcbccfbc640 100644 --- a/src/renderer/src/components/editor/editor-panel-content-types.ts +++ b/src/renderer/src/components/editor/editor-panel-content-types.ts @@ -1,4 +1,4 @@ -import type { GitDiffResult } from '../../../../shared/types' +import type { GitDiffResult } from '../../../../shared/git-diff-compare-types' /** * Thrown when a worktree's host owner is not yet known (the backing repo has diff --git a/src/renderer/src/components/editor/editor-panel-diff-reload.test.ts b/src/renderer/src/components/editor/editor-panel-diff-reload.test.ts index 2463ce680d8..35a3d32e20c 100644 --- a/src/renderer/src/components/editor/editor-panel-diff-reload.test.ts +++ b/src/renderer/src/components/editor/editor-panel-diff-reload.test.ts @@ -4,7 +4,7 @@ import { isReloadableSingleFileDiffTab, shouldReloadDiffOnGitStatusChange } from './editor-panel-diff-reload' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' function makeDiffFile(overrides: Partial = {}): OpenFile { return { diff --git a/src/renderer/src/components/editor/editor-panel-diff-reload.ts b/src/renderer/src/components/editor/editor-panel-diff-reload.ts index 4b58a471239..8bcf59ab38b 100644 --- a/src/renderer/src/components/editor/editor-panel-diff-reload.ts +++ b/src/renderer/src/components/editor/editor-panel-diff-reload.ts @@ -1,5 +1,5 @@ import type { OpenFile } from '@/store/slices/editor' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' export function isReloadableSingleFileDiffTab(file: OpenFile): boolean { return ( diff --git a/src/renderer/src/components/editor/editor-panel-git-entry-selector.test.ts b/src/renderer/src/components/editor/editor-panel-git-entry-selector.test.ts index 524776853d5..0dedf058495 100644 --- a/src/renderer/src/components/editor/editor-panel-git-entry-selector.test.ts +++ b/src/renderer/src/components/editor/editor-panel-git-entry-selector.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { GitBranchChangeEntry, GitStatusEntry } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { selectEditorPanelGitBranchEntries, selectEditorPanelGitStatusEntries diff --git a/src/renderer/src/components/editor/editor-panel-render-model.test.ts b/src/renderer/src/components/editor/editor-panel-render-model.test.ts index fc7e66a78ea..1475ce35bf3 100644 --- a/src/renderer/src/components/editor/editor-panel-render-model.test.ts +++ b/src/renderer/src/components/editor/editor-panel-render-model.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest' import type { OpenFile } from '@/store/slices/editor' import { RICH_MARKDOWN_MAX_SIZE_BYTES } from '../../../../shared/constants' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import type { FileContent } from './editor-panel-content-types' import { getEditorPanelRenderModel } from './editor-panel-render-model' diff --git a/src/renderer/src/components/editor/large-diff-section-content.ts b/src/renderer/src/components/editor/large-diff-section-content.ts index df60ada45ac..f83ef383bcc 100644 --- a/src/renderer/src/components/editor/large-diff-section-content.ts +++ b/src/renderer/src/components/editor/large-diff-section-content.ts @@ -1,4 +1,4 @@ -import type { GitDiffResult } from '../../../../shared/types' +import type { GitDiffResult } from '../../../../shared/git-diff-compare-types' import type { LargeDiffRenderLimit } from './large-diff-render-limit' export function shouldPruneLargeDiffContent( diff --git a/src/renderer/src/components/editor/markdown-doc-completions.test.ts b/src/renderer/src/components/editor/markdown-doc-completions.test.ts index 9a6a8278af5..a08261e2ff6 100644 --- a/src/renderer/src/components/editor/markdown-doc-completions.test.ts +++ b/src/renderer/src/components/editor/markdown-doc-completions.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import { getMarkdownDocCompletionContext, getMarkdownDocCompletionDocuments, diff --git a/src/renderer/src/components/editor/markdown-doc-completions.ts b/src/renderer/src/components/editor/markdown-doc-completions.ts index c41965ad96a..b7b81a72eee 100644 --- a/src/renderer/src/components/editor/markdown-doc-completions.ts +++ b/src/renderer/src/components/editor/markdown-doc-completions.ts @@ -1,4 +1,4 @@ -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import { isClipboardTextByteLengthOverLimit } from '../../../../shared/clipboard-text' export type MarkdownDocCompletionContext = { diff --git a/src/renderer/src/components/editor/markdown-doc-links.test.ts b/src/renderer/src/components/editor/markdown-doc-links.test.ts index d5cfaade6e7..9a7f9859b83 100644 --- a/src/renderer/src/components/editor/markdown-doc-links.test.ts +++ b/src/renderer/src/components/editor/markdown-doc-links.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest' import React from 'react' import { renderToStaticMarkup } from 'react-dom/server' import Markdown from 'react-markdown' -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import { createMarkdownDocumentIndex, createMarkdownDocLinkHref, diff --git a/src/renderer/src/components/editor/markdown-doc-links.ts b/src/renderer/src/components/editor/markdown-doc-links.ts index 82cd7133b38..3f5e4f7f6af 100644 --- a/src/renderer/src/components/editor/markdown-doc-links.ts +++ b/src/renderer/src/components/editor/markdown-doc-links.ts @@ -1,4 +1,4 @@ -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import { slugMarkdownHeading } from './markdown-heading-slug' export const MARKDOWN_DOC_LINK_PREFIX = '#orca-doc-link=' diff --git a/src/renderer/src/components/editor/markdown-document-list-request.test.ts b/src/renderer/src/components/editor/markdown-document-list-request.test.ts index 085b8599fb8..e94501a9140 100644 --- a/src/renderer/src/components/editor/markdown-document-list-request.test.ts +++ b/src/renderer/src/components/editor/markdown-document-list-request.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import type { RuntimeFileOperationArgs } from '@/runtime/runtime-file-client' import { getMarkdownDocumentListRequestKey, diff --git a/src/renderer/src/components/editor/markdown-document-list-request.ts b/src/renderer/src/components/editor/markdown-document-list-request.ts index 7e9cc0f32b3..a97ada9abbf 100644 --- a/src/renderer/src/components/editor/markdown-document-list-request.ts +++ b/src/renderer/src/components/editor/markdown-document-list-request.ts @@ -1,4 +1,4 @@ -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import { listRuntimeMarkdownDocuments, type RuntimeFileOperationArgs diff --git a/src/renderer/src/components/editor/markdown-document-worktree-path-selector.test.ts b/src/renderer/src/components/editor/markdown-document-worktree-path-selector.test.ts index b8b19f085e8..20a387648db 100644 --- a/src/renderer/src/components/editor/markdown-document-worktree-path-selector.test.ts +++ b/src/renderer/src/components/editor/markdown-document-worktree-path-selector.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { findWorktreeById } from '@/store/slices/worktree-helpers' import { selectMarkdownDocumentWorktreePath } from './markdown-document-worktree-path-selector' diff --git a/src/renderer/src/components/editor/monaco-markdown-doc-completions.ts b/src/renderer/src/components/editor/monaco-markdown-doc-completions.ts index 4d33a1f3985..3f6861c7897 100644 --- a/src/renderer/src/components/editor/monaco-markdown-doc-completions.ts +++ b/src/renderer/src/components/editor/monaco-markdown-doc-completions.ts @@ -1,6 +1,6 @@ import type { OnMount } from '@monaco-editor/react' import type { IDisposable } from 'monaco-editor' -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import { getMarkdownDocCompletionContext, getMarkdownDocCompletionDocuments diff --git a/src/renderer/src/components/editor/rich-markdown-annotation-submit-highlights.ts b/src/renderer/src/components/editor/rich-markdown-annotation-submit-highlights.ts index fba5d07bdc4..973b2198c40 100644 --- a/src/renderer/src/components/editor/rich-markdown-annotation-submit-highlights.ts +++ b/src/renderer/src/components/editor/rich-markdown-annotation-submit-highlights.ts @@ -1,5 +1,5 @@ import type { Editor } from '@tiptap/react' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { richMarkdownAnnotationHighlightPluginKey } from './rich-markdown-annotation-highlight' import { getRichMarkdownAnnotationHighlightRanges, diff --git a/src/renderer/src/components/editor/rich-markdown-commands.tsx b/src/renderer/src/components/editor/rich-markdown-commands.tsx index 5da14987ab4..607885d43e0 100644 --- a/src/renderer/src/components/editor/rich-markdown-commands.tsx +++ b/src/renderer/src/components/editor/rich-markdown-commands.tsx @@ -1,6 +1,6 @@ import type React from 'react' import type { Editor } from '@tiptap/react' -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import { stripMarkdownExtension } from './markdown-doc-links' export type DocLinkMenuState = { diff --git a/src/renderer/src/components/editor/rich-markdown-doc-link.ts b/src/renderer/src/components/editor/rich-markdown-doc-link.ts index bbc1b26b294..e2245ec472a 100644 --- a/src/renderer/src/components/editor/rich-markdown-doc-link.ts +++ b/src/renderer/src/components/editor/rich-markdown-doc-link.ts @@ -1,7 +1,7 @@ import { Node } from '@tiptap/core' import { type EditorState, Plugin, PluginKey, TextSelection } from '@tiptap/pm/state' import { Decoration, DecorationSet } from '@tiptap/pm/view' -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import type { MarkdownDocumentIndex } from './markdown-doc-links' import { createMarkdownDocumentIndex, diff --git a/src/renderer/src/components/editor/rich-markdown-editor-click-routing.ts b/src/renderer/src/components/editor/rich-markdown-editor-click-routing.ts index 9078f0e769d..3555330fac3 100644 --- a/src/renderer/src/components/editor/rich-markdown-editor-click-routing.ts +++ b/src/renderer/src/components/editor/rich-markdown-editor-click-routing.ts @@ -11,7 +11,7 @@ import { } from './markdown-internal-links' import { scrollToAnchorInEditor } from './markdown-anchor-scroll' import { getRichMarkdownCommentAtPos } from './rich-markdown-review-annotations' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { translate } from '@/i18n/i18n' import { classifyHtmlSuperscriptLinkAction, diff --git a/src/renderer/src/components/editor/rich-markdown-editor-config.ts b/src/renderer/src/components/editor/rich-markdown-editor-config.ts index 275720cb5ab..7fd8385eeb8 100644 --- a/src/renderer/src/components/editor/rich-markdown-editor-config.ts +++ b/src/renderer/src/components/editor/rich-markdown-editor-config.ts @@ -29,7 +29,7 @@ import { } from './rich-markdown-image-context' import { getRichMarkdownSpellcheckAttribute } from './rich-markdown-spellcheck' import type { MutableRefObject, Dispatch, SetStateAction } from 'react' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import type { RichMarkdownEditorCodec } from './rich-markdown-source-transport' import type { RichMarkdownHtmlSuperscriptLinkContext } from './rich-markdown-html-superscript-link-context' import { diff --git a/src/renderer/src/components/editor/rich-markdown-editor-props.ts b/src/renderer/src/components/editor/rich-markdown-editor-props.ts index 04a20c13c75..93ed3310212 100644 --- a/src/renderer/src/components/editor/rich-markdown-editor-props.ts +++ b/src/renderer/src/components/editor/rich-markdown-editor-props.ts @@ -1,5 +1,5 @@ import type React from 'react' -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' export type RichMarkdownEditorProps = { fileId: string diff --git a/src/renderer/src/components/editor/rich-markdown-html-superscript-link.test.ts b/src/renderer/src/components/editor/rich-markdown-html-superscript-link.test.ts index 90591cfdb17..8e3b4dead62 100644 --- a/src/renderer/src/components/editor/rich-markdown-html-superscript-link.test.ts +++ b/src/renderer/src/components/editor/rich-markdown-html-superscript-link.test.ts @@ -29,7 +29,7 @@ import { handleRichMarkdownCitationKey } from './rich-markdown-citation-keyboard import { resolveRichMarkdownWorktreeRoot } from './useRichMarkdownSuperscriptLinkSetup' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import type { AppState } from '@/store/types' -import type { FolderWorkspace } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' import { inspectRichMarkdownSourceOwningSlice, RICH_MARKDOWN_SOURCE_OWNING_PASTE_LIMIT diff --git a/src/renderer/src/components/editor/rich-markdown-review-annotations.test.ts b/src/renderer/src/components/editor/rich-markdown-review-annotations.test.ts index 95c1fa67b8d..28688d73b59 100644 --- a/src/renderer/src/components/editor/rich-markdown-review-annotations.test.ts +++ b/src/renderer/src/components/editor/rich-markdown-review-annotations.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import type { Editor } from '@tiptap/core' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { countRichMarkdownReviewMarkdownLines, getRichMarkdownAnnotationButtonLeft, diff --git a/src/renderer/src/components/editor/rich-markdown-review-annotations.ts b/src/renderer/src/components/editor/rich-markdown-review-annotations.ts index a7ef2307401..619d128bb65 100644 --- a/src/renderer/src/components/editor/rich-markdown-review-annotations.ts +++ b/src/renderer/src/components/editor/rich-markdown-review-annotations.ts @@ -1,7 +1,7 @@ import type { Dispatch, SetStateAction } from 'react' import type { Editor } from '@tiptap/react' import type { JSONContent } from '@tiptap/core' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import type { RichMarkdownAnnotationHighlightRange } from './rich-markdown-annotation-highlight' import { getRichMarkdownLineRangeFromBlocks, diff --git a/src/renderer/src/components/editor/rich-markdown-review-note-layout.test.ts b/src/renderer/src/components/editor/rich-markdown-review-note-layout.test.ts index 98e47f5214e..4327f65d007 100644 --- a/src/renderer/src/components/editor/rich-markdown-review-note-layout.test.ts +++ b/src/renderer/src/components/editor/rich-markdown-review-note-layout.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { shouldExpandRichMarkdownReviewRail, stackRichMarkdownReviewNotePositions diff --git a/src/renderer/src/components/editor/rich-markdown-review-note-layout.ts b/src/renderer/src/components/editor/rich-markdown-review-note-layout.ts index 1a24de6dd21..7f8cab5244e 100644 --- a/src/renderer/src/components/editor/rich-markdown-review-note-layout.ts +++ b/src/renderer/src/components/editor/rich-markdown-review-note-layout.ts @@ -1,4 +1,4 @@ -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { getCommentBodyLayoutLineCount } from '@/lib/comment-body-line-count' export type RichMarkdownReviewNotePosition = { diff --git a/src/renderer/src/components/editor/rich-markdown-review-note-positioning.ts b/src/renderer/src/components/editor/rich-markdown-review-note-positioning.ts index d458312f6a1..c54996d0ffa 100644 --- a/src/renderer/src/components/editor/rich-markdown-review-note-positioning.ts +++ b/src/renderer/src/components/editor/rich-markdown-review-note-positioning.ts @@ -1,5 +1,5 @@ import type { Editor } from '@tiptap/react' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { buildRichMarkdownCommentBlocks, getRichMarkdownCommentAnchorTop diff --git a/src/renderer/src/components/editor/useEditorPanelContentState.test.tsx b/src/renderer/src/components/editor/useEditorPanelContentState.test.tsx index e72ff75858e..14b70465087 100644 --- a/src/renderer/src/components/editor/useEditorPanelContentState.test.tsx +++ b/src/renderer/src/components/editor/useEditorPanelContentState.test.tsx @@ -4,7 +4,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { OpenFile } from '@/store/slices/editor' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import type { DiffContent, FileContent } from './editor-panel-content-types' const mocks = vi.hoisted(() => ({ diff --git a/src/renderer/src/components/editor/useEditorPanelVisibilityContentState.test.tsx b/src/renderer/src/components/editor/useEditorPanelVisibilityContentState.test.tsx index 560bc217d86..317fa625779 100644 --- a/src/renderer/src/components/editor/useEditorPanelVisibilityContentState.test.tsx +++ b/src/renderer/src/components/editor/useEditorPanelVisibilityContentState.test.tsx @@ -4,7 +4,7 @@ import { act, useLayoutEffect, useMemo } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { OpenFile } from '@/store/slices/editor' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import type { DiffContent, FileContent } from './editor-panel-content-types' const mocks = vi.hoisted(() => ({ diff --git a/src/renderer/src/components/editor/useMarkdownDocuments.ts b/src/renderer/src/components/editor/useMarkdownDocuments.ts index 5e8e5a17fb8..40694193c75 100644 --- a/src/renderer/src/components/editor/useMarkdownDocuments.ts +++ b/src/renderer/src/components/editor/useMarkdownDocuments.ts @@ -1,5 +1,5 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react' -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import { useAppStore } from '@/store' import { getConnectionId } from '@/lib/connection-context' import { statRuntimePath } from '@/runtime/runtime-file-client' diff --git a/src/renderer/src/components/editor/useRichMarkdownMenuController.ts b/src/renderer/src/components/editor/useRichMarkdownMenuController.ts index d62a47d0308..6d73e618d03 100644 --- a/src/renderer/src/components/editor/useRichMarkdownMenuController.ts +++ b/src/renderer/src/components/editor/useRichMarkdownMenuController.ts @@ -1,6 +1,6 @@ import { useCallback, useMemo, useRef, useState } from 'react' import type React from 'react' -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import { getMarkdownDocCompletionDocuments } from './markdown-doc-completions' import type { DocLinkMenuRow, DocLinkMenuState } from './rich-markdown-commands' import { filterRichMarkdownSlashCommands } from './rich-markdown-slash-command-filter' diff --git a/src/renderer/src/components/editor/useRichMarkdownProgrammaticSync.ts b/src/renderer/src/components/editor/useRichMarkdownProgrammaticSync.ts index 585cec52c0b..6094570d39e 100644 --- a/src/renderer/src/components/editor/useRichMarkdownProgrammaticSync.ts +++ b/src/renderer/src/components/editor/useRichMarkdownProgrammaticSync.ts @@ -1,7 +1,7 @@ import { useEffect } from 'react' import type { Dispatch, MutableRefObject, SetStateAction } from 'react' import type { Editor } from '@tiptap/react' -import type { MarkdownDocument } from '../../../../shared/types' +import type { MarkdownDocument } from '../../../../shared/filesystem-entry-types' import { encodeRawMarkdownHtmlForRichEditor } from './raw-markdown-html' import { syncDocLinkMenu, type DocLinkMenuState } from './rich-markdown-commands' import { normalizeEmptyListItems } from './rich-markdown-normalize' diff --git a/src/renderer/src/components/editor/useRichMarkdownReviewController.ts b/src/renderer/src/components/editor/useRichMarkdownReviewController.ts index cc4e828bc94..f78b403e1c1 100644 --- a/src/renderer/src/components/editor/useRichMarkdownReviewController.ts +++ b/src/renderer/src/components/editor/useRichMarkdownReviewController.ts @@ -15,7 +15,7 @@ import { flushPendingProseMirrorSelection } from './rich-markdown-selection-flus import { useRichMarkdownReviewData } from './useRichMarkdownReviewData' import { useRichMarkdownReviewCopyFeedback } from './useRichMarkdownReviewCopyFeedback' import { useRichMarkdownReviewRailController } from './useRichMarkdownReviewRailController' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' type UseRichMarkdownReviewControllerOptions = { addDiffComment: AppState['addDiffComment'] diff --git a/src/renderer/src/components/editor/useRichMarkdownReviewData.ts b/src/renderer/src/components/editor/useRichMarkdownReviewData.ts index e0dc9286034..458dce00035 100644 --- a/src/renderer/src/components/editor/useRichMarkdownReviewData.ts +++ b/src/renderer/src/components/editor/useRichMarkdownReviewData.ts @@ -7,7 +7,7 @@ import { type MarkdownReviewNote } from '@/lib/markdown-review-notes' import type { NotesSendMenuScope } from './NotesSendMenu' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' import { translate } from '@/i18n/i18n' type UseRichMarkdownReviewDataOptions = { diff --git a/src/renderer/src/components/editor/useRichMarkdownReviewEditorEffects.ts b/src/renderer/src/components/editor/useRichMarkdownReviewEditorEffects.ts index b79cb031753..7a8abdec3c9 100644 --- a/src/renderer/src/components/editor/useRichMarkdownReviewEditorEffects.ts +++ b/src/renderer/src/components/editor/useRichMarkdownReviewEditorEffects.ts @@ -2,7 +2,7 @@ import { useEffect, type RefObject } from 'react' import type { Editor } from '@tiptap/react' import { richMarkdownAnnotationHighlightPluginKey } from './rich-markdown-annotation-highlight' import { getRichMarkdownAnnotationHighlightRanges } from './rich-markdown-review-annotations' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' type UseRichMarkdownReviewEditorEffectsOptions = { canAnnotateRichMarkdown: boolean diff --git a/src/renderer/src/components/editor/useRichMarkdownReviewRailController.ts b/src/renderer/src/components/editor/useRichMarkdownReviewRailController.ts index 0004f3aab87..45603510138 100644 --- a/src/renderer/src/components/editor/useRichMarkdownReviewRailController.ts +++ b/src/renderer/src/components/editor/useRichMarkdownReviewRailController.ts @@ -12,7 +12,7 @@ import { } from './rich-markdown-review-annotations' import type { RichMarkdownReviewNotePosition } from './rich-markdown-review-note-layout' import { measureRichMarkdownReviewNotePositions } from './rich-markdown-review-note-positioning' -import type { DiffComment } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' type UseRichMarkdownReviewRailControllerOptions = { canAnnotateRichMarkdown: boolean diff --git a/src/renderer/src/components/emulator-pane/EmulatorPane.tsx b/src/renderer/src/components/emulator-pane/EmulatorPane.tsx index 476c79e232d..17b5de71fc3 100644 --- a/src/renderer/src/components/emulator-pane/EmulatorPane.tsx +++ b/src/renderer/src/components/emulator-pane/EmulatorPane.tsx @@ -1,4 +1,4 @@ -import type { Tab } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' import { EmulatorPaneToolbar } from './emulator-pane-toolbar' import { EmulatorDeviceFrame } from './emulator-device-frame' import { MobileEmulatorAgentSetupGuideLayer } from './MobileEmulatorAgentSetupGuideLayer' diff --git a/src/renderer/src/components/emulator-pane/EmulatorPaneOverlayLayer.tsx b/src/renderer/src/components/emulator-pane/EmulatorPaneOverlayLayer.tsx index 8d15f611003..410d9d3ac66 100644 --- a/src/renderer/src/components/emulator-pane/EmulatorPaneOverlayLayer.tsx +++ b/src/renderer/src/components/emulator-pane/EmulatorPaneOverlayLayer.tsx @@ -1,7 +1,7 @@ import { memo, useCallback, useMemo } from 'react' import { useShallow } from 'zustand/react/shallow' import { useAppStore } from '@/store' -import type { Tab, TabGroup } from '../../../../shared/types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' import EmulatorPane from './EmulatorPane' import { tabGroupBodyAnchorName } from '../tab-group/tab-group-body-anchor' diff --git a/src/renderer/src/components/feature-tips/feature-tip-modal-state.test.ts b/src/renderer/src/components/feature-tips/feature-tip-modal-state.test.ts index a2e39a00841..c224d5e1c8c 100644 --- a/src/renderer/src/components/feature-tips/feature-tip-modal-state.test.ts +++ b/src/renderer/src/components/feature-tips/feature-tip-modal-state.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { getDefaultVoiceSettings } from '../../../../shared/constants' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { getFeatureTipForModal } from './feature-tip-modal-state' function makeSettings(voiceEnabled = false): Pick { diff --git a/src/renderer/src/components/feature-tips/feature-tip-modal-state.ts b/src/renderer/src/components/feature-tips/feature-tip-modal-state.ts index ca54215e73d..780b40894b1 100644 --- a/src/renderer/src/components/feature-tips/feature-tip-modal-state.ts +++ b/src/renderer/src/components/feature-tips/feature-tip-modal-state.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { FeatureInteractionState } from '../../../../shared/feature-interactions' import { FEATURE_TIPS, diff --git a/src/renderer/src/components/feature-tips/feature-tip-startup-gate.test.ts b/src/renderer/src/components/feature-tips/feature-tip-startup-gate.test.ts index 99b281aab47..cac13f108fd 100644 --- a/src/renderer/src/components/feature-tips/feature-tip-startup-gate.test.ts +++ b/src/renderer/src/components/feature-tips/feature-tip-startup-gate.test.ts @@ -1,7 +1,8 @@ import { describe, expect, it } from 'vitest' import { getDefaultOnboardingState, getDefaultVoiceSettings } from '../../../../shared/constants' import type { CliInstallStatus } from '../../../../shared/cli-install-types' -import type { GlobalSettings, OnboardingState } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { OnboardingState } from '../../../../shared/onboarding-state-types' import { getFeatureTipsAppOpenDecision, isCliFeatureTipCompleted } from './feature-tip-startup-gate' const existingUserOnboarding: OnboardingState = { diff --git a/src/renderer/src/components/feature-tips/feature-tip-startup-gate.ts b/src/renderer/src/components/feature-tips/feature-tip-startup-gate.ts index a7eef0b8ead..4ad80028fd8 100644 --- a/src/renderer/src/components/feature-tips/feature-tip-startup-gate.ts +++ b/src/renderer/src/components/feature-tips/feature-tip-startup-gate.ts @@ -5,7 +5,8 @@ import { } from '../../../../shared/feature-tips' import type { CliInstallStatus } from '../../../../shared/cli-install-types' import type { FeatureInteractionState } from '../../../../shared/feature-interactions' -import type { GlobalSettings, OnboardingState } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { OnboardingState } from '../../../../shared/onboarding-state-types' import { shouldShowOnboarding } from '../onboarding/should-show-onboarding' export type FeatureTipsAppOpenDecision = diff --git a/src/renderer/src/components/feature-wall/AiCommitPrSettingsFields.tsx b/src/renderer/src/components/feature-wall/AiCommitPrSettingsFields.tsx index 52460dbadbc..7560b4a6cb3 100644 --- a/src/renderer/src/components/feature-wall/AiCommitPrSettingsFields.tsx +++ b/src/renderer/src/components/feature-wall/AiCommitPrSettingsFields.tsx @@ -7,7 +7,7 @@ import { type CommitMessageAgentCapability, type CommitMessageModelCapability } from '../../../../shared/commit-message-agent-spec' -import type { CommitMessageAiSettings } from '../../../../shared/types' +import type { CommitMessageAiSettings } from '../../../../shared/commit-message-ai-types' import { AgentIcon } from '@/lib/agent-catalog' import { cn } from '@/lib/utils' import { Input } from '../ui/input' diff --git a/src/renderer/src/components/feature-wall/FeatureWallBody.tsx b/src/renderer/src/components/feature-wall/FeatureWallBody.tsx index 0eb0314d89e..b08fc2f669c 100644 --- a/src/renderer/src/components/feature-wall/FeatureWallBody.tsx +++ b/src/renderer/src/components/feature-wall/FeatureWallBody.tsx @@ -4,7 +4,7 @@ import type { FeatureWallOpenSourceTelemetry } from '../../../../shared/telemetr import type { AgentsStep } from '../../../../shared/agents-orchestration-steps' import type { WorkbenchStep } from '../../../../shared/workbench-steps' import type { ReviewStep } from '../../../../shared/review-steps' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { InstalledAgentSkillState } from '@/hooks/useInstalledAgentSkills' import { cn } from '@/lib/utils' import { PreviewMedia, RelatedFeatures } from './FeatureWallPreview' diff --git a/src/renderer/src/components/feature-wall/FeatureWallSetupChecklist.tsx b/src/renderer/src/components/feature-wall/FeatureWallSetupChecklist.tsx index dadf8f1134d..0fcea197023 100644 --- a/src/renderer/src/components/feature-wall/FeatureWallSetupChecklist.tsx +++ b/src/renderer/src/components/feature-wall/FeatureWallSetupChecklist.tsx @@ -23,7 +23,7 @@ import { import { AgentStep } from '../onboarding/AgentStep' import { NotificationStep } from '../onboarding/NotificationStep' import { useAppStore } from '@/store' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { getProviderRuntimeContextKey } from '@/lib/provider-runtime-context' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/feature-wall/FeatureWallSetupWorkflowActions.test.tsx b/src/renderer/src/components/feature-wall/FeatureWallSetupWorkflowActions.test.tsx index b7b64877156..0a0b4f0ce46 100644 --- a/src/renderer/src/components/feature-wall/FeatureWallSetupWorkflowActions.test.tsx +++ b/src/renderer/src/components/feature-wall/FeatureWallSetupWorkflowActions.test.tsx @@ -14,7 +14,7 @@ import { } from './FeatureWallSetupWorkflowActions' import { useAppStore } from '@/store' import { toast } from 'sonner' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' vi.mock('sonner', () => ({ toast: { diff --git a/src/renderer/src/components/feature-wall/FeatureWallSetupWorkflowActions.tsx b/src/renderer/src/components/feature-wall/FeatureWallSetupWorkflowActions.tsx index e92264899ee..2649029c9b5 100644 --- a/src/renderer/src/components/feature-wall/FeatureWallSetupWorkflowActions.tsx +++ b/src/renderer/src/components/feature-wall/FeatureWallSetupWorkflowActions.tsx @@ -7,7 +7,9 @@ import { useAppStore } from '@/store' import { useAllWorktrees } from '@/store/selectors' import { getDefaultRepoHookSettings } from '../../../../shared/constants' import { isGitRepoKind } from '../../../../shared/repo-kind' -import type { Repo, RepoHookSettings, Worktree } from '../../../../shared/types' +import type { RepoHookSettings } from '../../../../shared/orca-yaml-hook-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getRepositoryLocalCommandsSectionId } from '../settings/repository-settings-targets' import { requestContextualTourWhenReady, diff --git a/src/renderer/src/components/feature-wall/FeatureWallTourPanel.tsx b/src/renderer/src/components/feature-wall/FeatureWallTourPanel.tsx index 93646baa2f8..bb620423115 100644 --- a/src/renderer/src/components/feature-wall/FeatureWallTourPanel.tsx +++ b/src/renderer/src/components/feature-wall/FeatureWallTourPanel.tsx @@ -6,7 +6,7 @@ import type { } from '../../../../shared/feature-wall-workflows' import type { ReviewStep, ReviewStepId } from '../../../../shared/review-steps' import type { FeatureWallOpenSourceTelemetry } from '../../../../shared/telemetry-events' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { WorkbenchStep, WorkbenchStepId } from '../../../../shared/workbench-steps' import type { InstalledAgentSkillState } from '@/hooks/useInstalledAgentSkills' import { cn } from '@/lib/utils' diff --git a/src/renderer/src/components/feature-wall/KeepAwakeCard.tsx b/src/renderer/src/components/feature-wall/KeepAwakeCard.tsx index a201b6f60cd..0520cc05564 100644 --- a/src/renderer/src/components/feature-wall/KeepAwakeCard.tsx +++ b/src/renderer/src/components/feature-wall/KeepAwakeCard.tsx @@ -1,7 +1,7 @@ import type { JSX } from 'react' import { Switch } from '@/components/ui/switch' import { getAgentAwakeDescription, getAgentAwakeTitle } from '../settings/agent-awake-copy' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { computerAwakeSettingsForMode, diff --git a/src/renderer/src/components/feature-wall/agents-orchestration/UsageAccountsCard.tsx b/src/renderer/src/components/feature-wall/agents-orchestration/UsageAccountsCard.tsx index a32fd8c38f9..bda09726912 100644 --- a/src/renderer/src/components/feature-wall/agents-orchestration/UsageAccountsCard.tsx +++ b/src/renderer/src/components/feature-wall/agents-orchestration/UsageAccountsCard.tsx @@ -10,7 +10,7 @@ import { useMountedRef } from '@/hooks/useMountedRef' import type { ClaudeRateLimitAccountsState, CodexRateLimitAccountsState -} from '../../../../../shared/types' +} from '../../../../../shared/managed-account-types' import { getFeatureWallUsageProviderConnection } from '../feature-wall-usage-tracking' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/feature-wall/ai-commit-pr-settings-helpers.ts b/src/renderer/src/components/feature-wall/ai-commit-pr-settings-helpers.ts index 8ed5d238b01..5dc505a0a10 100644 --- a/src/renderer/src/components/feature-wall/ai-commit-pr-settings-helpers.ts +++ b/src/renderer/src/components/feature-wall/ai-commit-pr-settings-helpers.ts @@ -1,4 +1,6 @@ -import type { CommitMessageAiSettings, GlobalSettings, TuiAgent } from '../../../../shared/types' +import type { CommitMessageAiSettings } from '../../../../shared/commit-message-ai-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { getCommitMessageAgentCapability, isCustomAgentId, diff --git a/src/renderer/src/components/feature-wall/feature-wall-setup-progress.test.ts b/src/renderer/src/components/feature-wall/feature-wall-setup-progress.test.ts index ae23c2876ab..d46fd15ac91 100644 --- a/src/renderer/src/components/feature-wall/feature-wall-setup-progress.test.ts +++ b/src/renderer/src/components/feature-wall/feature-wall-setup-progress.test.ts @@ -8,7 +8,7 @@ import { getFeatureWallSetupStepsForSection, getFirstIncompleteFeatureWallSetupStepId } from '../../../../shared/feature-wall-setup-steps' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' function makeInput( overrides: Partial = {} diff --git a/src/renderer/src/components/feature-wall/feature-wall-setup-progress.ts b/src/renderer/src/components/feature-wall/feature-wall-setup-progress.ts index 35196cb4fb2..585df18a9ac 100644 --- a/src/renderer/src/components/feature-wall/feature-wall-setup-progress.ts +++ b/src/renderer/src/components/feature-wall/feature-wall-setup-progress.ts @@ -4,7 +4,8 @@ import { FEATURE_WALL_SETUP_STEPS, type FeatureWallSetupStepId } from '../../../../shared/feature-wall-setup-steps' -import type { GlobalSettings, Worktree } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Worktree } from '../../../../shared/worktree/types' export type FeatureWallSetupProgressInput = { ready?: boolean diff --git a/src/renderer/src/components/feature-wall/useAiCommitPrSettings.ts b/src/renderer/src/components/feature-wall/useAiCommitPrSettings.ts index c187d6f18ec..1bdda194061 100644 --- a/src/renderer/src/components/feature-wall/useAiCommitPrSettings.ts +++ b/src/renderer/src/components/feature-wall/useAiCommitPrSettings.ts @@ -1,5 +1,6 @@ import { useCallback, useState } from 'react' -import type { CommitMessageAiSettings, TuiAgent } from '../../../../shared/types' +import type { CommitMessageAiSettings } from '../../../../shared/commit-message-ai-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { CUSTOM_AGENT_ID, getCommitMessageAgentCapability, diff --git a/src/renderer/src/components/floating-terminal/FloatingBrowserSlot.test.tsx b/src/renderer/src/components/floating-terminal/FloatingBrowserSlot.test.tsx index 01a12086c7c..7e1b8d7a7a2 100644 --- a/src/renderer/src/components/floating-terminal/FloatingBrowserSlot.test.tsx +++ b/src/renderer/src/components/floating-terminal/FloatingBrowserSlot.test.tsx @@ -5,7 +5,7 @@ import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it, vi } from 'vitest' import { FloatingBrowserSlot } from './FloatingBrowserSlot' import { getBrowserOverlaySlotViewport } from '@/components/browser-pane/browser-page-viewport' -import type { BrowserTab } from '../../../../shared/types' +import type { BrowserTab } from '../../../../shared/browser-workspace-types' // Why: BrowserPane mounts a real Electron we can't run in jsdom; stub // it so the test isolates the slot-root registration that BrowserPane depends on. diff --git a/src/renderer/src/components/floating-terminal/FloatingBrowserSlot.tsx b/src/renderer/src/components/floating-terminal/FloatingBrowserSlot.tsx index 2013ffe4993..76b819f0876 100644 --- a/src/renderer/src/components/floating-terminal/FloatingBrowserSlot.tsx +++ b/src/renderer/src/components/floating-terminal/FloatingBrowserSlot.tsx @@ -1,7 +1,7 @@ import { useCallback } from 'react' import BrowserPane from '@/components/browser-pane/BrowserPane' import { registerBrowserOverlaySlotViewport } from '@/components/browser-pane/browser-page-viewport' -import type { BrowserTab as BrowserTabState } from '../../../../shared/types' +import type { BrowserTab as BrowserTabState } from '../../../../shared/browser-workspace-types' // Why: BrowserPane mounts its persistent Electron into a slot viewport // root keyed by the browser tab id. The main workspace registers that root via diff --git a/src/renderer/src/components/floating-terminal/FloatingTerminalIconContextMenu.tsx b/src/renderer/src/components/floating-terminal/FloatingTerminalIconContextMenu.tsx index 8947efc01f3..abd460a80fd 100644 --- a/src/renderer/src/components/floating-terminal/FloatingTerminalIconContextMenu.tsx +++ b/src/renderer/src/components/floating-terminal/FloatingTerminalIconContextMenu.tsx @@ -8,7 +8,7 @@ import { DropdownMenuTrigger } from '@/components/ui/dropdown-menu' import { useAppStore } from '@/store' -import type { FloatingTerminalTriggerLocation } from '../../../../shared/types' +import type { FloatingTerminalTriggerLocation } from '../../../../shared/ui-chrome-types' import { translate } from '@/i18n/i18n' type FloatingTerminalIconContextMenuProps = { diff --git a/src/renderer/src/components/floating-terminal/FloatingTerminalPanel.test.tsx b/src/renderer/src/components/floating-terminal/FloatingTerminalPanel.test.tsx index 43e74374d9d..4e1913eb967 100644 --- a/src/renderer/src/components/floating-terminal/FloatingTerminalPanel.test.tsx +++ b/src/renderer/src/components/floating-terminal/FloatingTerminalPanel.test.tsx @@ -4,7 +4,9 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' import type { KeybindingOverrides, TerminalShortcutPolicy } from '../../../../shared/keybindings' -import type { BrowserTab, Tab, TabGroup, TerminalTab } from '../../../../shared/types' +import type { BrowserTab } from '../../../../shared/browser-workspace-types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { OpenFile } from '@/store/slices/editor' import { createUntitledMarkdownFileWithTemplateSelection } from '@/lib/create-untitled-markdown' import { diff --git a/src/renderer/src/components/floating-terminal/FloatingTerminalPanel.tsx b/src/renderer/src/components/floating-terminal/FloatingTerminalPanel.tsx index 2f60cb89902..f37a6968c36 100644 --- a/src/renderer/src/components/floating-terminal/FloatingTerminalPanel.tsx +++ b/src/renderer/src/components/floating-terminal/FloatingTerminalPanel.tsx @@ -85,7 +85,9 @@ import { ModifierDoubleTapDetector, toModifierDoubleTapEvent } from '../../../../shared/modifier-double-tap-detector' -import type { BrowserTab as BrowserTabState, Tab, TerminalTab } from '../../../../shared/types' +import type { BrowserTab as BrowserTabState } from '../../../../shared/browser-workspace-types' +import type { Tab } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { resolveUnifiedTabLabel } from '../../../../shared/tab-title-resolution' import { FloatingBrowserSlot } from './FloatingBrowserSlot' import { FloatingTerminalOrchestrationDialog } from './FloatingTerminalOrchestrationDialog' diff --git a/src/renderer/src/components/github-checks-tab-state.test.ts b/src/renderer/src/components/github-checks-tab-state.test.ts index 66a0c06b722..f9b3a3c8001 100644 --- a/src/renderer/src/components/github-checks-tab-state.test.ts +++ b/src/renderer/src/components/github-checks-tab-state.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRCheckDetail, PRCheckRunDetails } from '../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../shared/github/check-types' import { beginGitHubChecksTabDetails, createGitHubChecksTabState, diff --git a/src/renderer/src/components/github-checks-tab-state.ts b/src/renderer/src/components/github-checks-tab-state.ts index e408eb6ef9d..18c12cf089b 100644 --- a/src/renderer/src/components/github-checks-tab-state.ts +++ b/src/renderer/src/components/github-checks-tab-state.ts @@ -1,4 +1,4 @@ -import type { PRCheckDetail, PRCheckRunDetails } from '../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../shared/github/check-types' export type CheckDetailsLoadState = { requestId?: number diff --git a/src/renderer/src/components/github-pr-merge-state.ts b/src/renderer/src/components/github-pr-merge-state.ts index d67a3b8a3ef..f26edd5896b 100644 --- a/src/renderer/src/components/github-pr-merge-state.ts +++ b/src/renderer/src/components/github-pr-merge-state.ts @@ -1,10 +1,10 @@ import type { CheckStatus, - ProviderCheckSummary, PRMergeableState, PRReviewDecision, - PRState -} from '../../../shared/types' + PRState, + ProviderCheckSummary +} from '../../../shared/github/pull-request-types' import { canEnableGitHubPRAutoMerge } from '../../../shared/github/pull-request-auto-merge-availability' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/github-pr-reviewer-display.test.ts b/src/renderer/src/components/github-pr-reviewer-display.test.ts index fca899f118c..3512b578e29 100644 --- a/src/renderer/src/components/github-pr-reviewer-display.test.ts +++ b/src/renderer/src/components/github-pr-reviewer-display.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect, it, vi } from 'vitest' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import { GITHUB_PR_REVIEWER_INPUT_MAX_BYTES, appendGitHubPRRequestedReviewers, diff --git a/src/renderer/src/components/github-pr-reviewer-display.ts b/src/renderer/src/components/github-pr-reviewer-display.ts index 695c5eab90a..01ba370e0a9 100644 --- a/src/renderer/src/components/github-pr-reviewer-display.ts +++ b/src/renderer/src/components/github-pr-reviewer-display.ts @@ -1,4 +1,5 @@ -import type { GitHubAssignableUser, GitHubWorkItem } from '../../../shared/types' +import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import { isClipboardTextByteLengthOverLimit } from '../../../shared/clipboard-text' type ReviewDisplayItem = Pick diff --git a/src/renderer/src/components/github-project/ProjectCell.tsx b/src/renderer/src/components/github-project/ProjectCell.tsx index 877f426311a..ef22f2ffcaa 100644 --- a/src/renderer/src/components/github-project/ProjectCell.tsx +++ b/src/renderer/src/components/github-project/ProjectCell.tsx @@ -25,7 +25,7 @@ import type { GitHubProjectUser, ListIssueTypesBySlugResult } from '../../../../shared/github/project-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' type Props = { diff --git a/src/renderer/src/components/github-project/ProjectItemSlugDialog.tsx b/src/renderer/src/components/github-project/ProjectItemSlugDialog.tsx index 2b778e29c10..bf176e802c3 100644 --- a/src/renderer/src/components/github-project/ProjectItemSlugDialog.tsx +++ b/src/renderer/src/components/github-project/ProjectItemSlugDialog.tsx @@ -12,7 +12,7 @@ import { VisuallyHidden } from 'radix-ui' import { Sheet, SheetContent, SheetDescription, SheetTitle } from '@/components/ui/sheet' import type { GitHubItemDialogProjectOrigin } from '@/components/GitHubItemDialog' import { SlugDialogBody } from './slug-dialog/SlugDialogBody' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' type Props = { diff --git a/src/renderer/src/components/github-project/ProjectRow.tsx b/src/renderer/src/components/github-project/ProjectRow.tsx index d57a807702e..57ad63784c3 100644 --- a/src/renderer/src/components/github-project/ProjectRow.tsx +++ b/src/renderer/src/components/github-project/ProjectRow.tsx @@ -12,7 +12,7 @@ import type { GitHubProjectFieldMutationValue, GitHubProjectRow as GitHubProjectRowType } from '../../../../shared/github/project-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' const PROJECT_FROZEN_COLUMN_SURFACE_CLASS = diff --git a/src/renderer/src/components/github-project/ProjectViewList.tsx b/src/renderer/src/components/github-project/ProjectViewList.tsx index 8bd6963b4c7..e54493418d6 100644 --- a/src/renderer/src/components/github-project/ProjectViewList.tsx +++ b/src/renderer/src/components/github-project/ProjectViewList.tsx @@ -22,7 +22,7 @@ import type { GitHubProjectSortDirection, GitHubProjectTable } from '../../../../shared/github/project-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' type SortOverride = { fieldId: string; direction: GitHubProjectSortDirection } diff --git a/src/renderer/src/components/github-project/ProjectViewWrapper.tsx b/src/renderer/src/components/github-project/ProjectViewWrapper.tsx index 24941730c94..3996a562715 100644 --- a/src/renderer/src/components/github-project/ProjectViewWrapper.tsx +++ b/src/renderer/src/components/github-project/ProjectViewWrapper.tsx @@ -41,7 +41,7 @@ import type { GitHubProjectViewSummary, ListProjectViewsResult } from '../../../../shared/github/project-types' -import type { GitHubWorkItem } from '../../../../shared/types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' import ProjectPicker, { type ResolvedProjectSelection } from './ProjectPicker' import ProjectViewList from './ProjectViewList' import ProjectItemSlugDialog from './ProjectItemSlugDialog' diff --git a/src/renderer/src/components/github-project/project-row-filtering.test.ts b/src/renderer/src/components/github-project/project-row-filtering.test.ts index 636382aa53c..fae4ecf6ffc 100644 --- a/src/renderer/src/components/github-project/project-row-filtering.test.ts +++ b/src/renderer/src/components/github-project/project-row-filtering.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import type { GitHubProjectRow, GitHubProjectTable } from '../../../../shared/github/project-types' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { filterProjectTableRowsByOpenRepos, filterProjectTableRowsBySelectedRepos, diff --git a/src/renderer/src/components/github-project/project-row-filtering.ts b/src/renderer/src/components/github-project/project-row-filtering.ts index b4c1b3738a3..0e9a3108043 100644 --- a/src/renderer/src/components/github-project/project-row-filtering.ts +++ b/src/renderer/src/components/github-project/project-row-filtering.ts @@ -1,5 +1,5 @@ import type { GitHubProjectRow, GitHubProjectTable } from '../../../../shared/github/project-types' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' export type ProjectRowSlugLookup = ( slug: string | null | undefined, diff --git a/src/renderer/src/components/github-project/project-work-item.ts b/src/renderer/src/components/github-project/project-work-item.ts index cc68266fe88..692e0fa487b 100644 --- a/src/renderer/src/components/github-project/project-work-item.ts +++ b/src/renderer/src/components/github-project/project-work-item.ts @@ -1,6 +1,6 @@ import { githubProjectHost } from '../../../../shared/github/project-identity' import type { GitHubProjectRow } from '../../../../shared/github/project-types' -import type { GitHubWorkItem } from '../../../../shared/types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' export function buildProjectWorkItem( row: GitHubProjectRow, diff --git a/src/renderer/src/components/github-project/slug-dialog/AssigneesEditor.tsx b/src/renderer/src/components/github-project/slug-dialog/AssigneesEditor.tsx index b609030dc03..cccdefb3f31 100644 --- a/src/renderer/src/components/github-project/slug-dialog/AssigneesEditor.tsx +++ b/src/renderer/src/components/github-project/slug-dialog/AssigneesEditor.tsx @@ -2,7 +2,7 @@ import React, { useMemo, useState } from 'react' import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { cn } from '@/lib/utils' import { useRepoAssigneesBySlug } from '@/hooks/useGitHubSlugMetadata' -import type { GlobalSettings } from '../../../../../shared/types' +import type { GlobalSettings } from '../../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' export function AssigneesEditor({ diff --git a/src/renderer/src/components/github-project/slug-dialog/Comments.tsx b/src/renderer/src/components/github-project/slug-dialog/Comments.tsx index 748edc1fe74..d5ebf6f5740 100644 --- a/src/renderer/src/components/github-project/slug-dialog/Comments.tsx +++ b/src/renderer/src/components/github-project/slug-dialog/Comments.tsx @@ -12,7 +12,8 @@ import { } from '@/lib/comment-body-submit-state' import { useRepoSlugIndex } from '@/lib/repo-slug-index' import { getSettingsForRepoRuntimeOwner } from '@/lib/repo-runtime-owner' -import type { GlobalSettings, PRComment } from '../../../../../shared/types' +import type { PRComment } from '../../../../../shared/github/comment-types' +import type { GlobalSettings } from '../../../../../shared/global-settings-types' import type { GitHubProjectCommentMutationResult, GitHubProjectMutationResult diff --git a/src/renderer/src/components/github-project/slug-dialog/LabelsEditor.tsx b/src/renderer/src/components/github-project/slug-dialog/LabelsEditor.tsx index 877cf47ca7c..96d64b7ad2a 100644 --- a/src/renderer/src/components/github-project/slug-dialog/LabelsEditor.tsx +++ b/src/renderer/src/components/github-project/slug-dialog/LabelsEditor.tsx @@ -2,7 +2,7 @@ import React, { useState } from 'react' import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { cn } from '@/lib/utils' import { useRepoLabelsBySlug } from '@/hooks/useGitHubSlugMetadata' -import type { GlobalSettings } from '../../../../../shared/types' +import type { GlobalSettings } from '../../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' export function LabelsEditor({ diff --git a/src/renderer/src/components/github-project/slug-dialog/SlugDialogBody.tsx b/src/renderer/src/components/github-project/slug-dialog/SlugDialogBody.tsx index a8b20151a34..e04c3129958 100644 --- a/src/renderer/src/components/github-project/slug-dialog/SlugDialogBody.tsx +++ b/src/renderer/src/components/github-project/slug-dialog/SlugDialogBody.tsx @@ -7,7 +7,8 @@ import { Input } from '@/components/ui/input' import CommentMarkdown from '@/components/sidebar/CommentMarkdown' import { useAppStore } from '@/store' import { callRuntimeRpc, getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' -import type { GitHubWorkItemDetails, GlobalSettings } from '../../../../../shared/types' +import type { GitHubWorkItemDetails } from '../../../../../shared/github/work-item-types' +import type { GlobalSettings } from '../../../../../shared/global-settings-types' import type { GitHubItemDialogProjectOrigin } from '@/components/GitHubItemDialog' import { LabelsEditor } from './LabelsEditor' import { AssigneesEditor } from './AssigneesEditor' diff --git a/src/renderer/src/components/github/CommentCodeContext.tsx b/src/renderer/src/components/github/CommentCodeContext.tsx index 8dd390f9586..8539ba9fad3 100644 --- a/src/renderer/src/components/github/CommentCodeContext.tsx +++ b/src/renderer/src/components/github/CommentCodeContext.tsx @@ -16,12 +16,12 @@ import { import { getPrCommentCodeContext } from '@/components/github/pr-comment-code-context' import { getPRFileContentsRenderLimit } from '@/components/github/pr-file-diff-mapping' import type { TaskSourceContext } from '../../../../shared/task-source-context' +import type { PRComment } from '../../../../shared/github/comment-types' import type { GitHubOwnerRepo, GitHubPRFile, - GitHubPRFileContents, - PRComment -} from '../../../../shared/types' + GitHubPRFileContents +} from '../../../../shared/github/pull-request-types' const MonacoCodeExcerpt = lazy(() => import('@/components/editor/MonacoCodeExcerpt')) diff --git a/src/renderer/src/components/github/CommentReactions.tsx b/src/renderer/src/components/github/CommentReactions.tsx index 21aa4ac2316..fc9027e89ca 100644 --- a/src/renderer/src/components/github/CommentReactions.tsx +++ b/src/renderer/src/components/github/CommentReactions.tsx @@ -6,7 +6,7 @@ import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip import { translate } from '@/i18n/i18n' import { cn } from '@/lib/utils' import { GITHUB_REACTION_ORDER } from '@/lib/pr-comment-reactions' -import type { GitHubReaction, GitHubReactionContent } from '../../../../shared/types' +import type { GitHubReaction, GitHubReactionContent } from '../../../../shared/github/comment-types' const REACTION_EMOJI: Record = { '+1': '👍', diff --git a/src/renderer/src/components/github/GitHubMarkdownComposer.tsx b/src/renderer/src/components/github/GitHubMarkdownComposer.tsx index 9fa818066fd..52d7906df08 100644 --- a/src/renderer/src/components/github/GitHubMarkdownComposer.tsx +++ b/src/renderer/src/components/github/GitHubMarkdownComposer.tsx @@ -27,7 +27,7 @@ import { } from '@/components/github/github-markdown-composer-tabbar' import { hasBoundedGitHubMarkdownImageUrlText } from '@/components/github/github-markdown-image-url' import { useImageInput } from '@/components/github/use-image-input' -import type { GitHubOwnerRepo } from '../../../../shared/types' +import type { GitHubOwnerRepo } from '../../../../shared/github/pull-request-types' import { translate } from '@/i18n/i18n' import { useAppStore } from '@/store' import { diff --git a/src/renderer/src/components/github/IssueSourceIndicator.tsx b/src/renderer/src/components/github/IssueSourceIndicator.tsx index c9615562e81..264b4ef7242 100644 --- a/src/renderer/src/components/github/IssueSourceIndicator.tsx +++ b/src/renderer/src/components/github/IssueSourceIndicator.tsx @@ -1,5 +1,5 @@ import React from 'react' -import type { GitHubOwnerRepo } from '../../../../shared/types' +import type { GitHubOwnerRepo } from '../../../../shared/github/pull-request-types' import RepoBadgeLabel from '@/components/repo/RepoBadgeLabel' import { cn } from '@/lib/utils' import { diff --git a/src/renderer/src/components/github/IssueSourceSelector.tsx b/src/renderer/src/components/github/IssueSourceSelector.tsx index e428d53f525..fc20eae5c4c 100644 --- a/src/renderer/src/components/github/IssueSourceSelector.tsx +++ b/src/renderer/src/components/github/IssueSourceSelector.tsx @@ -1,5 +1,6 @@ import React from 'react' -import type { GitHubOwnerRepo, IssueSourcePreference } from '../../../../shared/types' +import type { GitHubOwnerRepo } from '../../../../shared/github/pull-request-types' +import type { IssueSourcePreference } from '../../../../shared/repo-types' import { sameGitHubOwnerRepo } from '@/components/github/IssueSourceIndicator' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { cn } from '@/lib/utils' diff --git a/src/renderer/src/components/github/PRAssigneesPanel.tsx b/src/renderer/src/components/github/PRAssigneesPanel.tsx index 24391745120..d759d93880a 100644 --- a/src/renderer/src/components/github/PRAssigneesPanel.tsx +++ b/src/renderer/src/components/github/PRAssigneesPanel.tsx @@ -19,7 +19,8 @@ import { getTaskSourceRuntimeSettings, type TaskSourceContext } from '../../../../shared/task-source-context' -import type { GitHubAssignableUser, GitHubWorkItem } from '../../../../shared/types' +import type { GitHubAssignableUser } from '../../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' export function PRAssigneesPanel({ item, diff --git a/src/renderer/src/components/github/PRFilterDropdowns.tsx b/src/renderer/src/components/github/PRFilterDropdowns.tsx index d22cdbb8f4b..ddf74929515 100644 --- a/src/renderer/src/components/github/PRFilterDropdowns.tsx +++ b/src/renderer/src/components/github/PRFilterDropdowns.tsx @@ -17,9 +17,9 @@ import { } from '@/components/github/PRFilterSections' import type { GitHubAssignableUser, - GitHubOwnerRepo, - GlobalSettings -} from '../../../../shared/types' + GitHubOwnerRepo +} from '../../../../shared/github/pull-request-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { ParsedTaskQuery } from '../../../../shared/task-query' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/github/github-markdown-composer-preview-pane.tsx b/src/renderer/src/components/github/github-markdown-composer-preview-pane.tsx index 706f8785f8e..01fc334b2a6 100644 --- a/src/renderer/src/components/github/github-markdown-composer-preview-pane.tsx +++ b/src/renderer/src/components/github/github-markdown-composer-preview-pane.tsx @@ -1,5 +1,5 @@ import CommentMarkdown from '@/components/sidebar/CommentMarkdown' -import type { GitHubOwnerRepo } from '../../../../shared/types' +import type { GitHubOwnerRepo } from '../../../../shared/github/pull-request-types' import { translate } from '@/i18n/i18n' export function GitHubMarkdownComposerPreviewPane({ diff --git a/src/renderer/src/components/github/github-pr-reviewer-candidate-filter.test.ts b/src/renderer/src/components/github/github-pr-reviewer-candidate-filter.test.ts index e20b151f747..c8ef5e977e3 100644 --- a/src/renderer/src/components/github/github-pr-reviewer-candidate-filter.test.ts +++ b/src/renderer/src/components/github/github-pr-reviewer-candidate-filter.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GitHubAssignableUser } from '../../../../shared/types' +import type { GitHubAssignableUser } from '../../../../shared/github/pull-request-types' import { GITHUB_PR_REVIEWER_QUERY_MAX_BYTES, filterGitHubPRReviewerCandidates, diff --git a/src/renderer/src/components/github/github-pr-reviewer-candidate-filter.ts b/src/renderer/src/components/github/github-pr-reviewer-candidate-filter.ts index 3ae5bc4a236..f38bd80e9a0 100644 --- a/src/renderer/src/components/github/github-pr-reviewer-candidate-filter.ts +++ b/src/renderer/src/components/github/github-pr-reviewer-candidate-filter.ts @@ -1,5 +1,5 @@ import { isClipboardTextByteLengthOverLimit } from '../../../../shared/clipboard-text' -import type { GitHubAssignableUser } from '../../../../shared/types' +import type { GitHubAssignableUser } from '../../../../shared/github/pull-request-types' export type GitHubPRReviewerQueryState = { query: string diff --git a/src/renderer/src/components/github/github-rate-limit-display.tsx b/src/renderer/src/components/github/github-rate-limit-display.tsx index 9b7002476ce..17d81a90532 100644 --- a/src/renderer/src/components/github/github-rate-limit-display.tsx +++ b/src/renderer/src/components/github/github-rate-limit-display.tsx @@ -4,7 +4,10 @@ import { cn } from '@/lib/utils' import { installWindowVisibilityInterval } from '@/lib/window-visibility-interval' import { useAppStore } from '@/store' import { callRuntimeRpc, getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' -import type { GetRateLimitResult, GitHubRateLimitSnapshot } from '../../../../shared/types' +import type { + GetRateLimitResult, + GitHubRateLimitSnapshot +} from '../../../../shared/github/rate-limit-types' import { getProviderRateLimitScope } from '@/components/settings/provider-account-scope' import { ProviderHostScopeControl } from '@/components/settings/ProviderHostScopeControl' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/github/github-work-item-assignee-filter.ts b/src/renderer/src/components/github/github-work-item-assignee-filter.ts index cda49753314..7d30ce248b1 100644 --- a/src/renderer/src/components/github/github-work-item-assignee-filter.ts +++ b/src/renderer/src/components/github/github-work-item-assignee-filter.ts @@ -1,4 +1,4 @@ -import type { GitHubAssignableUser } from '../../../../shared/types' +import type { GitHubAssignableUser } from '../../../../shared/github/pull-request-types' import { isGitHubWorkItemOptionFilterQueryTooLarge } from './github-work-item-option-filter-bounds' export function filterGitHubWorkItemAssignees( diff --git a/src/renderer/src/components/github/github-work-item-comment-mutations.ts b/src/renderer/src/components/github/github-work-item-comment-mutations.ts index a42804365bf..f0f6fda3b82 100644 --- a/src/renderer/src/components/github/github-work-item-comment-mutations.ts +++ b/src/renderer/src/components/github/github-work-item-comment-mutations.ts @@ -5,7 +5,7 @@ import { getGitHubSourceRuntimeHost } from '@/lib/github-source-runtime-context' import type { TaskSourceContext } from '../../../../shared/task-source-context' -import type { GitHubOwnerRepo } from '../../../../shared/types' +import type { GitHubOwnerRepo } from '../../../../shared/github/pull-request-types' export function addIssueCommentForRepo(args: { repoId?: string diff --git a/src/renderer/src/components/github/github-work-item-edit-mutations.ts b/src/renderer/src/components/github/github-work-item-edit-mutations.ts index e81adba1f0e..5c40aeb2328 100644 --- a/src/renderer/src/components/github/github-work-item-edit-mutations.ts +++ b/src/renderer/src/components/github/github-work-item-edit-mutations.ts @@ -13,7 +13,8 @@ import { getTaskSourceRuntimeSettings, type TaskSourceContext } from '../../../../shared/task-source-context' -import type { GitHubOwnerRepo, GitHubWorkItem } from '../../../../shared/types' +import type { GitHubOwnerRepo } from '../../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' // Why: for a Project row whose repo differs from the active workspace, mutations must target the row's actual repo via slug-addressed IPCs, else edits silently apply to the workspace's repo. // Why: these edit IPCs return `{ ok, error }`; callers throw on `!ok` so useImmediateMutation (which expects throws on failure) works unchanged. diff --git a/src/renderer/src/components/github/github-work-item-identity.ts b/src/renderer/src/components/github/github-work-item-identity.ts index f4808e17f3f..b4b06754406 100644 --- a/src/renderer/src/components/github/github-work-item-identity.ts +++ b/src/renderer/src/components/github/github-work-item-identity.ts @@ -1,5 +1,6 @@ import { githubProjectHost } from '../../../../shared/github/project-identity' -import type { GitHubOwnerRepo, GitHubWorkItem } from '../../../../shared/types' +import type { GitHubOwnerRepo } from '../../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' // Why: the dialog lacks repository context, so recover its host-aware identity from the canonical item URL. export function parseOwnerRepoFromItemUrl(url: string): GitHubOwnerRepo | null { diff --git a/src/renderer/src/components/github/pr-check-presentation.ts b/src/renderer/src/components/github/pr-check-presentation.ts index 8b500171866..fb50d0a780a 100644 --- a/src/renderer/src/components/github/pr-check-presentation.ts +++ b/src/renderer/src/components/github/pr-check-presentation.ts @@ -1,5 +1,5 @@ import { getCheckConclusion } from '@/components/pr-check-counts' -import type { PRCheckDetail } from '../../../../shared/types' +import type { PRCheckDetail } from '../../../../shared/github/check-types' export function getCheckStatusLabel(check: PRCheckDetail): string { const conclusion = getCheckConclusion(check) diff --git a/src/renderer/src/components/github/pr-file-content-size.test.ts b/src/renderer/src/components/github/pr-file-content-size.test.ts index 700a9579ec4..d63bb18798d 100644 --- a/src/renderer/src/components/github/pr-file-content-size.test.ts +++ b/src/renderer/src/components/github/pr-file-content-size.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GitHubPRFileContents } from '../../../../shared/types' +import type { GitHubPRFileContents } from '../../../../shared/github/pull-request-types' import { getPRFileContentsCacheByteCount } from './pr-file-content-size' describe('PR file content size', () => { diff --git a/src/renderer/src/components/github/pr-file-content-size.ts b/src/renderer/src/components/github/pr-file-content-size.ts index 0e20c92bd1d..164dae1b8eb 100644 --- a/src/renderer/src/components/github/pr-file-content-size.ts +++ b/src/renderer/src/components/github/pr-file-content-size.ts @@ -1,5 +1,8 @@ import { MAX_RENDERED_DIFF_COMBINED_CHARACTERS } from '@/components/editor/large-diff-render-limit' -import type { GitHubPRFile, GitHubPRFileContents } from '../../../../shared/types' +import type { + GitHubPRFile, + GitHubPRFileContents +} from '../../../../shared/github/pull-request-types' import { getUtf8ByteLength } from '../../../../shared/utf8-byte-limits' export const PR_FILE_CONTENT_CACHE_MAX_BYTES = MAX_RENDERED_DIFF_COMBINED_CHARACTERS * 4 diff --git a/src/renderer/src/components/github/pr-file-diff-mapping.ts b/src/renderer/src/components/github/pr-file-diff-mapping.ts index d592a0d8140..dc990ed8f69 100644 --- a/src/renderer/src/components/github/pr-file-diff-mapping.ts +++ b/src/renderer/src/components/github/pr-file-diff-mapping.ts @@ -5,14 +5,13 @@ import { type LargeDiffRenderLimit } from '@/components/editor/large-diff-render-limit' import type { TaskSourceContext } from '../../../../shared/task-source-context' +import type { GitBranchChangeEntry, GitDiffResult } from '../../../../shared/git-diff-compare-types' +import type { PRComment } from '../../../../shared/github/comment-types' import type { - GitBranchChangeEntry, - GitDiffResult, GitHubOwnerRepo, GitHubPRFile, - GitHubPRFileContents, - PRComment -} from '../../../../shared/types' + GitHubPRFileContents +} from '../../../../shared/github/pull-request-types' export const PR_DIFF_OVERSCAN = 5 diff --git a/src/renderer/src/components/github/work-item-state-presentation.tsx b/src/renderer/src/components/github/work-item-state-presentation.tsx index fadc502fb91..b7f24298e94 100644 --- a/src/renderer/src/components/github/work-item-state-presentation.tsx +++ b/src/renderer/src/components/github/work-item-state-presentation.tsx @@ -1,6 +1,7 @@ import React from 'react' import { GitHubUserAvatar } from '@/components/github/github-user-avatar' -import type { GitHubAssignableUser, GitHubWorkItem } from '../../../../shared/types' +import type { GitHubAssignableUser } from '../../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' import { formatUiRelativeTimeFromDate } from '@/i18n/relative-time-format' export function formatRelativeTime(input: string): string { diff --git a/src/renderer/src/components/gitlab/gitlab-rate-limit-display.tsx b/src/renderer/src/components/gitlab/gitlab-rate-limit-display.tsx index a85c566b0d6..66e18cc4fca 100644 --- a/src/renderer/src/components/gitlab/gitlab-rate-limit-display.tsx +++ b/src/renderer/src/components/gitlab/gitlab-rate-limit-display.tsx @@ -5,7 +5,10 @@ import { cn } from '@/lib/utils' import { installWindowVisibilityInterval } from '@/lib/window-visibility-interval' import { useAppStore } from '@/store' import { callRuntimeRpc, getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' -import type { GetGitLabRateLimitResult, GitLabRateLimitSnapshot } from '../../../../shared/types' +import type { + GetGitLabRateLimitResult, + GitLabRateLimitSnapshot +} from '../../../../shared/gitlab-types' import { getProviderRateLimitScope } from '@/components/settings/provider-account-scope' import { ProviderHostScopeControl } from '@/components/settings/ProviderHostScopeControl' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/jira-issue-sorter.ts b/src/renderer/src/components/jira-issue-sorter.ts index 875aaff0ef0..7fe071dc61e 100644 --- a/src/renderer/src/components/jira-issue-sorter.ts +++ b/src/renderer/src/components/jira-issue-sorter.ts @@ -1,4 +1,4 @@ -import type { JiraIssue, JiraPriority } from '../../../shared/types' +import type { JiraIssue, JiraPriority } from '../../../shared/jira-types' import { compareNumericLocaleText } from '@/lib/locale-text-collators' export type JiraIssueSortColumn = 'key' | 'title' | 'status' | 'priority' | 'assignee' | 'updated' diff --git a/src/renderer/src/components/jira-project-picker-filter.test.ts b/src/renderer/src/components/jira-project-picker-filter.test.ts index c270f361e4e..2c41742c5fc 100644 --- a/src/renderer/src/components/jira-project-picker-filter.test.ts +++ b/src/renderer/src/components/jira-project-picker-filter.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { JiraProject } from '../../../shared/types' +import type { JiraProject } from '../../../shared/jira-types' import { JIRA_PROJECT_PICKER_QUERY_MAX_BYTES, filterJiraProjectPickerProjects, diff --git a/src/renderer/src/components/jira-project-picker-filter.ts b/src/renderer/src/components/jira-project-picker-filter.ts index 0a5ee32176a..0e8d060bf50 100644 --- a/src/renderer/src/components/jira-project-picker-filter.ts +++ b/src/renderer/src/components/jira-project-picker-filter.ts @@ -1,5 +1,5 @@ import { isClipboardTextByteLengthOverLimit } from '../../../shared/clipboard-text' -import type { JiraProject } from '../../../shared/types' +import type { JiraProject } from '../../../shared/jira-types' export const JIRA_PROJECT_PICKER_QUERY_MAX_BYTES = 2 * 1024 diff --git a/src/renderer/src/components/landing-preflight-dismissal.test.ts b/src/renderer/src/components/landing-preflight-dismissal.test.ts index 20b50442241..cfc316bc4b4 100644 --- a/src/renderer/src/components/landing-preflight-dismissal.test.ts +++ b/src/renderer/src/components/landing-preflight-dismissal.test.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { dismissPreflightIssue, githubProjectKeys, diff --git a/src/renderer/src/components/landing-preflight-dismissal.ts b/src/renderer/src/components/landing-preflight-dismissal.ts index 1fae17b0a3d..d688d5a0c4c 100644 --- a/src/renderer/src/components/landing-preflight-dismissal.ts +++ b/src/renderer/src/components/landing-preflight-dismissal.ts @@ -2,7 +2,7 @@ import { getProjectIdentityKey, isGitHubBackedRepo } from '../../../shared/project-host-setup-projection' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' // Why: GitHub-CLI setup nudges are dismissible, but the dismissal must lapse // when the user adds a NEW GitHub-backed project — that's the moment the CLI diff --git a/src/renderer/src/components/landing-preflight-issues.test.ts b/src/renderer/src/components/landing-preflight-issues.test.ts index 99c315088f0..75ba7a5e006 100644 --- a/src/renderer/src/components/landing-preflight-issues.test.ts +++ b/src/renderer/src/components/landing-preflight-issues.test.ts @@ -4,7 +4,7 @@ import { hasGitHubBackedProject, type LandingPreflightStatus } from './landing-preflight-issues' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' function repo(overrides: Partial & Pick): Repo { return { diff --git a/src/renderer/src/components/landing-preflight-issues.ts b/src/renderer/src/components/landing-preflight-issues.ts index 73324510a08..10e7ec81baf 100644 --- a/src/renderer/src/components/landing-preflight-issues.ts +++ b/src/renderer/src/components/landing-preflight-issues.ts @@ -1,6 +1,6 @@ import { translate } from '@/i18n/i18n' import { projectHostSetupProjectionFromRepos } from '../../../shared/project-host-setup-projection' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' export type PreflightIssue = { id: string diff --git a/src/renderer/src/components/landing-preflight-runtime-boundary.test.ts b/src/renderer/src/components/landing-preflight-runtime-boundary.test.ts index a52c516f161..f282ca5f15a 100644 --- a/src/renderer/src/components/landing-preflight-runtime-boundary.test.ts +++ b/src/renderer/src/components/landing-preflight-runtime-boundary.test.ts @@ -2,7 +2,7 @@ import { act, cleanup, renderHook } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { PreflightStatus } from '../../../preload/api-types' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { useAppStore } from '../store' import { useLandingPreflightRuntime } from './landing-preflight-runtime' diff --git a/src/renderer/src/components/linear-api-key-dialog.tsx b/src/renderer/src/components/linear-api-key-dialog.tsx index 0f00205d26e..272814e901b 100644 --- a/src/renderer/src/components/linear-api-key-dialog.tsx +++ b/src/renderer/src/components/linear-api-key-dialog.tsx @@ -1,6 +1,6 @@ import { useId, useMemo, useState } from 'react' import { ExternalLink, LoaderCircle, Lock } from 'lucide-react' -import type { LinearWorkspace } from '../../../shared/types' +import type { LinearWorkspace } from '../../../shared/linear/workspace-types' import { buildLinearPersonalApiKeySettingsUrl, buildLinearWorkspaceApiSettingsUrl diff --git a/src/renderer/src/components/linear-issue-attribute-filter-dropdowns.test.tsx b/src/renderer/src/components/linear-issue-attribute-filter-dropdowns.test.tsx index 2352f25b876..65b08bbc168 100644 --- a/src/renderer/src/components/linear-issue-attribute-filter-dropdowns.test.tsx +++ b/src/renderer/src/components/linear-issue-attribute-filter-dropdowns.test.tsx @@ -3,7 +3,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { LinearTeam } from '../../../shared/types' +import type { LinearTeam } from '../../../shared/linear/workspace-types' import { clearLinearIssueAttributeFacet, countLinearIssueAttributeFilters, diff --git a/src/renderer/src/components/linear-issue-attribute-filter-dropdowns.tsx b/src/renderer/src/components/linear-issue-attribute-filter-dropdowns.tsx index e914a40c064..a8fa09cbf12 100644 --- a/src/renderer/src/components/linear-issue-attribute-filter-dropdowns.tsx +++ b/src/renderer/src/components/linear-issue-attribute-filter-dropdowns.tsx @@ -12,7 +12,7 @@ import { emptyLinearIssueAttributeFilter, type LinearIssueAttributeFilter } from '../../../shared/linear/issue-attribute-filter' -import type { LinearTeam } from '../../../shared/types' +import type { LinearTeam } from '../../../shared/linear/workspace-types' import { LinearIssueFilterSectionDetail, LinearIssueFilterSectionMenu, diff --git a/src/renderer/src/components/linear-issue-attribute-filter-primary-team.test.ts b/src/renderer/src/components/linear-issue-attribute-filter-primary-team.test.ts index 1b7cdf164d2..91532889d37 100644 --- a/src/renderer/src/components/linear-issue-attribute-filter-primary-team.test.ts +++ b/src/renderer/src/components/linear-issue-attribute-filter-primary-team.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { resolveLinearIssueAttributeFilterPrimaryTeam } from './linear-issue-attribute-filter-primary-team' -import type { LinearTeam } from '../../../shared/types' +import type { LinearTeam } from '../../../shared/linear/workspace-types' const teams: LinearTeam[] = [ { id: 't-b', name: 'Backend', key: 'BE' }, diff --git a/src/renderer/src/components/linear-issue-attribute-filter-primary-team.ts b/src/renderer/src/components/linear-issue-attribute-filter-primary-team.ts index 53fe674b04b..75264f69d49 100644 --- a/src/renderer/src/components/linear-issue-attribute-filter-primary-team.ts +++ b/src/renderer/src/components/linear-issue-attribute-filter-primary-team.ts @@ -1,4 +1,4 @@ -import type { LinearTeam } from '../../../shared/types' +import type { LinearTeam } from '../../../shared/linear/workspace-types' function compareTeamNameId(a: LinearTeam, b: LinearTeam): number { const nameCmp = a.name.localeCompare(b.name) diff --git a/src/renderer/src/components/linear-issue-attribute-filter-team-ids.test.ts b/src/renderer/src/components/linear-issue-attribute-filter-team-ids.test.ts index 167080f61b0..bd56b936d88 100644 --- a/src/renderer/src/components/linear-issue-attribute-filter-team-ids.test.ts +++ b/src/renderer/src/components/linear-issue-attribute-filter-team-ids.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { LinearTeam } from '../../../shared/types' +import type { LinearTeam } from '../../../shared/linear/workspace-types' import { resolveLinearIssueAttributeFilterTeamIds, unionLinearMetadataById diff --git a/src/renderer/src/components/linear-issue-attribute-filter-team-ids.ts b/src/renderer/src/components/linear-issue-attribute-filter-team-ids.ts index ba586332e4c..dea77e52595 100644 --- a/src/renderer/src/components/linear-issue-attribute-filter-team-ids.ts +++ b/src/renderer/src/components/linear-issue-attribute-filter-team-ids.ts @@ -1,4 +1,4 @@ -import type { LinearTeam } from '../../../shared/types' +import type { LinearTeam } from '../../../shared/linear/workspace-types' /** * Resolve which Linear team ids should feed attribute-filter metadata. diff --git a/src/renderer/src/components/linear-issue-text-draft-state.ts b/src/renderer/src/components/linear-issue-text-draft-state.ts index 44b5eb08fbb..867a5eede9f 100644 --- a/src/renderer/src/components/linear-issue-text-draft-state.ts +++ b/src/renderer/src/components/linear-issue-text-draft-state.ts @@ -1,4 +1,4 @@ -import type { LinearIssue } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' type LinearIssueTextDraftSource = Pick diff --git a/src/renderer/src/components/linear-issue-text-save-plan.ts b/src/renderer/src/components/linear-issue-text-save-plan.ts index 13553ea301d..43a28d360f9 100644 --- a/src/renderer/src/components/linear-issue-text-save-plan.ts +++ b/src/renderer/src/components/linear-issue-text-save-plan.ts @@ -1,4 +1,4 @@ -import type { LinearIssue } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' export type LinearIssueTextField = 'title' | 'description' diff --git a/src/renderer/src/components/linear-issue-workspace-text.test.ts b/src/renderer/src/components/linear-issue-workspace-text.test.ts index eecc60bddf5..42eb037916d 100644 --- a/src/renderer/src/components/linear-issue-workspace-text.test.ts +++ b/src/renderer/src/components/linear-issue-workspace-text.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { LinearIssue } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' import { buildLinearIssueBranchName } from './linear-issue-workspace-text' function makeIssue(branchName?: string): LinearIssue { diff --git a/src/renderer/src/components/linear-issue-workspace-text.ts b/src/renderer/src/components/linear-issue-workspace-text.ts index e047495d40b..57f7aae1945 100644 --- a/src/renderer/src/components/linear-issue-workspace-text.ts +++ b/src/renderer/src/components/linear-issue-workspace-text.ts @@ -1,5 +1,5 @@ import { getLinearIssueWorkspaceName } from '../../../shared/workspace-name' -import type { LinearIssue } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' import { getUsableLinearBranchName } from '../../../shared/new-workspace/workspace-source' import { formatUiRelativeTimeFromDate } from '@/i18n/relative-time-format' diff --git a/src/renderer/src/components/linear-project-view-surfaces.tsx b/src/renderer/src/components/linear-project-view-surfaces.tsx index 58970a8215a..4717375b182 100644 --- a/src/renderer/src/components/linear-project-view-surfaces.tsx +++ b/src/renderer/src/components/linear-project-view-surfaces.tsx @@ -22,9 +22,9 @@ import { cn } from '@/lib/utils' import type { LinearCustomViewSummary, LinearProjectDetail, - LinearProjectSummary, - LinearWorkspaceError -} from '../../../shared/types' + LinearProjectSummary +} from '../../../shared/linear/project-types' +import type { LinearWorkspaceError } from '../../../shared/linear/workspace-types' import { translate } from '@/i18n/i18n' type LinearProjectLike = LinearProjectSummary & { diff --git a/src/renderer/src/components/linear-scope-selector.test.ts b/src/renderer/src/components/linear-scope-selector.test.ts index 65c752c6fe0..3e8d69f69c7 100644 --- a/src/renderer/src/components/linear-scope-selector.test.ts +++ b/src/renderer/src/components/linear-scope-selector.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { LinearTeam, LinearWorkspace } from '../../../shared/types' +import type { LinearTeam, LinearWorkspace } from '../../../shared/linear/workspace-types' import { LINEAR_SCOPE_TEAM_FILTER_QUERY_MAX_BYTES, filterLinearScopeTeams, diff --git a/src/renderer/src/components/linear-scope-selector.tsx b/src/renderer/src/components/linear-scope-selector.tsx index 26bfb33df2e..e6a1712fab1 100644 --- a/src/renderer/src/components/linear-scope-selector.tsx +++ b/src/renderer/src/components/linear-scope-selector.tsx @@ -1,6 +1,10 @@ import { useCallback, useMemo, useState } from 'react' import { Check, ChevronDown, KeyRound } from 'lucide-react' -import type { LinearTeam, LinearWorkspace, LinearWorkspaceSelection } from '../../../shared/types' +import type { + LinearTeam, + LinearWorkspace, + LinearWorkspaceSelection +} from '../../../shared/linear/workspace-types' import { isClipboardTextByteLengthOverLimit } from '../../../shared/clipboard-text' import { Command, CommandInput, CommandItem, CommandList } from '@/components/ui/command' import { Button } from '@/components/ui/button' diff --git a/src/renderer/src/components/native-chat/claude-model-switch-confirmation.ts b/src/renderer/src/components/native-chat/claude-model-switch-confirmation.ts index 826d70aea9f..f9664bacfa5 100644 --- a/src/renderer/src/components/native-chat/claude-model-switch-confirmation.ts +++ b/src/renderer/src/components/native-chat/claude-model-switch-confirmation.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { subscribeToPtyData } from '../terminal-pane/pty-data-sidecar-subscriptions' import { isRemoteRuntimePtyId, sendRuntimePtyInput } from '@/runtime/runtime-terminal-inspection' import { subscribeToRuntimeTerminalData } from '@/runtime/runtime-terminal-stream' diff --git a/src/renderer/src/components/native-chat/native-chat-attachment-upload.test.ts b/src/renderer/src/components/native-chat/native-chat-attachment-upload.test.ts index 5f84fc4b7ba..3dde6373391 100644 --- a/src/renderer/src/components/native-chat/native-chat-attachment-upload.test.ts +++ b/src/renderer/src/components/native-chat/native-chat-attachment-upload.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type { AppState } from '@/store/types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' const mocks = vi.hoisted(() => ({ toastLoading: vi.fn(() => 'toast-1'), diff --git a/src/renderer/src/components/native-chat/native-chat-availability.ts b/src/renderer/src/components/native-chat/native-chat-availability.ts index 11b9e5af7ad..3cad7fc157f 100644 --- a/src/renderer/src/components/native-chat/native-chat-availability.ts +++ b/src/renderer/src/components/native-chat/native-chat-availability.ts @@ -1,4 +1,5 @@ -import type { Tab, TuiAgent } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { AgentType } from '../../../../shared/agent-status-types' import { isNativeChatSupportedAgent, diff --git a/src/renderer/src/components/native-chat/native-chat-file-link.test.ts b/src/renderer/src/components/native-chat/native-chat-file-link.test.ts index 1022d8e8441..17dae96d98d 100644 --- a/src/renderer/src/components/native-chat/native-chat-file-link.test.ts +++ b/src/renderer/src/components/native-chat/native-chat-file-link.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { AppState } from '@/store/types' import { resolveNativeChatFileLink, diff --git a/src/renderer/src/components/native-chat/native-chat-file-link.ts b/src/renderer/src/components/native-chat/native-chat-file-link.ts index eee08ceae2b..44c1e83b6ab 100644 --- a/src/renderer/src/components/native-chat/native-chat-file-link.ts +++ b/src/renderer/src/components/native-chat/native-chat-file-link.ts @@ -1,5 +1,5 @@ import { routeNativeChatHref } from '../../../../shared/native-chat-href-routing' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { parseExplicitFileLinkTarget, resolveExplicitFileLinkTarget diff --git a/src/renderer/src/components/native-chat/native-chat-launch-session-options.ts b/src/renderer/src/components/native-chat/native-chat-launch-session-options.ts index 2257bb77120..2271d4bd1d8 100644 --- a/src/renderer/src/components/native-chat/native-chat-launch-session-options.ts +++ b/src/renderer/src/components/native-chat/native-chat-launch-session-options.ts @@ -1,4 +1,5 @@ -import type { GlobalSettings, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { SessionOptionValue } from '../../../../shared/native-chat-session-options' import { decideInitialAgentTabViewMode, diff --git a/src/renderer/src/components/native-chat/native-chat-leaf-routing.ts b/src/renderer/src/components/native-chat/native-chat-leaf-routing.ts index 1262f010ca5..2dfc25e77f8 100644 --- a/src/renderer/src/components/native-chat/native-chat-leaf-routing.ts +++ b/src/renderer/src/components/native-chat/native-chat-leaf-routing.ts @@ -1,8 +1,8 @@ import type { TerminalLayoutSnapshot, - TerminalPaneLayoutNode, - TuiAgent -} from '../../../../shared/types' + TerminalPaneLayoutNode +} from '../../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../../shared/tui-agent' function layoutNodeContainsLeaf(node: TerminalPaneLayoutNode | null, leafId: string): boolean { if (!node) { diff --git a/src/renderer/src/components/native-chat/native-chat-pane-resolution.test.ts b/src/renderer/src/components/native-chat/native-chat-pane-resolution.test.ts index 1193450e3cb..42f9605fdea 100644 --- a/src/renderer/src/components/native-chat/native-chat-pane-resolution.test.ts +++ b/src/renderer/src/components/native-chat/native-chat-pane-resolution.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from 'vitest' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { resolveNativeChatSession } from './native-chat-pane-resolution' function entry( diff --git a/src/renderer/src/components/native-chat/native-chat-pane-resolution.ts b/src/renderer/src/components/native-chat/native-chat-pane-resolution.ts index 181895a4878..a363b977ff1 100644 --- a/src/renderer/src/components/native-chat/native-chat-pane-resolution.ts +++ b/src/renderer/src/components/native-chat/native-chat-pane-resolution.ts @@ -1,5 +1,5 @@ import type { AgentStatusEntry, AgentType } from '../../../../shared/agent-status-types' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { isNativeChatSupportedAgent } from './native-chat-availability' /** Inputs that resolve the active pane to the agent/session/pty triple the diff --git a/src/renderer/src/components/native-chat/native-chat-runtime-owner.test.ts b/src/renderer/src/components/native-chat/native-chat-runtime-owner.test.ts index 3f3b3cf8e7b..6841d9a0685 100644 --- a/src/renderer/src/components/native-chat/native-chat-runtime-owner.test.ts +++ b/src/renderer/src/components/native-chat/native-chat-runtime-owner.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { selectNativeChatRuntimeEnvironmentId, type NativeChatRuntimeOwnerState diff --git a/src/renderer/src/components/native-chat/native-chat-view-types.ts b/src/renderer/src/components/native-chat/native-chat-view-types.ts index ca374bab11c..de095f9b232 100644 --- a/src/renderer/src/components/native-chat/native-chat-view-types.ts +++ b/src/renderer/src/components/native-chat/native-chat-view-types.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { NativeChatSession } from '../../../../shared/native-chat-types' import type { NativeChatContextMenuActions } from './use-native-chat-context-menu' diff --git a/src/renderer/src/components/native-chat/use-native-chat-toggle-shortcut.ts b/src/renderer/src/components/native-chat/use-native-chat-toggle-shortcut.ts index 3096077e820..90c84470cee 100644 --- a/src/renderer/src/components/native-chat/use-native-chat-toggle-shortcut.ts +++ b/src/renderer/src/components/native-chat/use-native-chat-toggle-shortcut.ts @@ -1,7 +1,7 @@ import { useEffect } from 'react' import { useAppStore } from '../../store' import type { AgentType } from '../../../../shared/agent-status-types' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' import { resolveCommittedTitleAgentType } from '@/lib/pane-agent-evidence' import { canToggleNativeChat } from './native-chat-availability' import { isNativeChatTranscriptLocalReadable } from '@/lib/native-chat-transcript-readability' diff --git a/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.jira-accessibility.test.tsx b/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.jira-accessibility.test.tsx index 062101e7545..b11b8b20ac1 100644 --- a/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.jira-accessibility.test.tsx +++ b/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.jira-accessibility.test.tsx @@ -3,7 +3,7 @@ import React, { act } from 'react' import { cleanup, createEvent, fireEvent, render, screen } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { JiraIssue } from '../../../../shared/types' +import type { JiraIssue } from '../../../../shared/jira-types' import SmartWorkspaceNameField, { type SmartWorkspaceNameSelection } from './SmartWorkspaceNameField' diff --git a/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.tsx b/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.tsx index 66dd756e18f..58e771477dd 100644 --- a/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.tsx +++ b/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.tsx @@ -74,14 +74,11 @@ import { } from '../../../../shared/new-workspace/smart-workspace-linear-intent' import { isSmartWorkspaceSourceQueryWithinLimit } from '../../../../shared/new-workspace/smart-workspace-source-query' import { filterAvailableTaskProviders } from '../../../../shared/task-providers' -import type { - BaseRefSearchResult, - GitHubWorkItem, - GitLabWorkItem, - JiraIssue, - JiraSite, - LinearIssue -} from '../../../../shared/types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' +import type { GitLabWorkItem } from '../../../../shared/gitlab-types' +import type { JiraIssue, JiraSite } from '../../../../shared/jira-types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' +import type { BaseRefSearchResult } from '../../../../shared/repo-types' import { resolveSmartWorkspaceCommandValue } from './smart-workspace-command-value' import { isComposerFieldToFieldFocus } from './smart-workspace-source-popover-focus' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/new-workspace/run-target-options.ts b/src/renderer/src/components/new-workspace/run-target-options.ts index a07a094cf80..b95d128831d 100644 --- a/src/renderer/src/components/new-workspace/run-target-options.ts +++ b/src/renderer/src/components/new-workspace/run-target-options.ts @@ -1,4 +1,4 @@ -import type { OrcaHooks } from '../../../../shared/types' +import type { OrcaHooks } from '../../../../shared/orca-yaml-hook-types' import type { NeedsSetupProjectHostOption, ProjectHostSetupOption, diff --git a/src/renderer/src/components/new-workspace/use-jira-source-connection.test.tsx b/src/renderer/src/components/new-workspace/use-jira-source-connection.test.tsx index e29f5bd7acf..1da6ffaad00 100644 --- a/src/renderer/src/components/new-workspace/use-jira-source-connection.test.tsx +++ b/src/renderer/src/components/new-workspace/use-jira-source-connection.test.tsx @@ -4,7 +4,7 @@ import { act, renderHook } from '@testing-library/react' import type * as React from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' import type { TaskSourceContext } from '../../../../shared/task-source-context' -import type { JiraConnectionStatus } from '../../../../shared/types' +import type { JiraConnectionStatus } from '../../../../shared/jira-types' import { getJiraSourceConnectionRevisionKey, useJiraSourceConnection diff --git a/src/renderer/src/components/new-workspace/use-jira-source-connection.ts b/src/renderer/src/components/new-workspace/use-jira-source-connection.ts index 49884020d1b..703e87cf9e7 100644 --- a/src/renderer/src/components/new-workspace/use-jira-source-connection.ts +++ b/src/renderer/src/components/new-workspace/use-jira-source-connection.ts @@ -5,7 +5,7 @@ import { getTaskSourceRuntimeSettings, type TaskSourceContext } from '../../../../shared/task-source-context' -import type { JiraConnectionStatus } from '../../../../shared/types' +import type { JiraConnectionStatus } from '../../../../shared/jira-types' import { getProviderRuntimeContextKey } from '@/lib/provider-runtime-context' export type JiraSourceConnection = { diff --git a/src/renderer/src/components/new-workspace/use-jira-url-source.test.tsx b/src/renderer/src/components/new-workspace/use-jira-url-source.test.tsx index 1f6df54bfb2..fe4adf51e85 100644 --- a/src/renderer/src/components/new-workspace/use-jira-url-source.test.tsx +++ b/src/renderer/src/components/new-workspace/use-jira-url-source.test.tsx @@ -2,7 +2,7 @@ import { act, renderHook } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { JiraConnectionStatus, JiraIssue, JiraSite } from '../../../../shared/types' +import type { JiraConnectionStatus, JiraIssue, JiraSite } from '../../../../shared/jira-types' import type { TaskSourceContext } from '../../../../shared/task-source-context' import { useJiraUrlSource } from './use-jira-url-source' diff --git a/src/renderer/src/components/new-workspace/use-jira-url-source.ts b/src/renderer/src/components/new-workspace/use-jira-url-source.ts index 0441e37edc9..f3a922a7171 100644 --- a/src/renderer/src/components/new-workspace/use-jira-url-source.ts +++ b/src/renderer/src/components/new-workspace/use-jira-url-source.ts @@ -15,7 +15,7 @@ import { } from '../../../../shared/task-source-context' import { parseExecutionHostId } from '../../../../shared/execution-host' import { WORKTREE_LINKED_WORK_ITEM_CONTEXT_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version' -import type { JiraIssue, JiraSite } from '../../../../shared/types' +import type { JiraIssue, JiraSite } from '../../../../shared/jira-types' import { canReuseLoadedJiraStatus, type JiraSourceConnection } from './use-jira-source-connection' const LOOKUP_DEBOUNCE_MS = 200 diff --git a/src/renderer/src/components/new-workspace/use-recent-project-ids.test.ts b/src/renderer/src/components/new-workspace/use-recent-project-ids.test.ts index 44fddd40d08..aa82e46ea46 100644 --- a/src/renderer/src/components/new-workspace/use-recent-project-ids.test.ts +++ b/src/renderer/src/components/new-workspace/use-recent-project-ids.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { orderProjectIdsByRecency } from './use-recent-project-ids' function worktree(partial: Partial): Worktree { diff --git a/src/renderer/src/components/new-workspace/use-recent-project-ids.ts b/src/renderer/src/components/new-workspace/use-recent-project-ids.ts index 3c68485ac52..e4f4c26a017 100644 --- a/src/renderer/src/components/new-workspace/use-recent-project-ids.ts +++ b/src/renderer/src/components/new-workspace/use-recent-project-ids.ts @@ -1,5 +1,5 @@ import { useMemo } from 'react' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { useAllWorktrees } from '@/store/selectors' import { NEW_WORKSPACE_PROJECT_GROUP_OPTION_PREFIX } from '@/lib/new-workspace-project-options' diff --git a/src/renderer/src/components/notification-sound-options.ts b/src/renderer/src/components/notification-sound-options.ts index 1f0ca95597b..b1485939d9c 100644 --- a/src/renderer/src/components/notification-sound-options.ts +++ b/src/renderer/src/components/notification-sound-options.ts @@ -13,7 +13,7 @@ import { type LucideIcon } from 'lucide-react' import { basename } from '@/lib/path' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { createLocalizedCatalog } from '@/i18n/localized-catalog' diff --git a/src/renderer/src/components/notifications/mac-notification-permission-card.tsx b/src/renderer/src/components/notifications/mac-notification-permission-card.tsx index 2bc94664d1c..fca7aab97d5 100644 --- a/src/renderer/src/components/notifications/mac-notification-permission-card.tsx +++ b/src/renderer/src/components/notifications/mac-notification-permission-card.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react' import { BellRing, Check, Settings, TriangleAlert } from 'lucide-react' -import type { NotificationDeliveryProbeResult } from '../../../../shared/types' +import type { NotificationDeliveryProbeResult } from '../../../../shared/notification-settings-types' import { Button } from '@/components/ui/button' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/onboarding/AgentStep.tsx b/src/renderer/src/components/onboarding/AgentStep.tsx index d5e18e8070f..234d854d27e 100644 --- a/src/renderer/src/components/onboarding/AgentStep.tsx +++ b/src/renderer/src/components/onboarding/AgentStep.tsx @@ -5,7 +5,7 @@ import { cn } from '@/lib/utils' import { Checkbox } from '@/components/ui/checkbox' import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { translate } from '@/i18n/i18n' const AGENT_GRID_MAX_ROWS = 4 diff --git a/src/renderer/src/components/onboarding/GhosttyDiscoveryRow.tsx b/src/renderer/src/components/onboarding/GhosttyDiscoveryRow.tsx index a9e44f218b6..5c5d8641f53 100644 --- a/src/renderer/src/components/onboarding/GhosttyDiscoveryRow.tsx +++ b/src/renderer/src/components/onboarding/GhosttyDiscoveryRow.tsx @@ -1,5 +1,5 @@ import { Check } from 'lucide-react' -import type { GhosttyImportPreview } from '../../../../shared/types' +import type { GhosttyImportPreview } from '../../../../shared/global-settings-types' import ghosttyIcon from '../../../../../resources/ghostty.svg' import { translate } from '@/i18n/i18n' import type { DiscoveryState } from './ThemeStep' diff --git a/src/renderer/src/components/onboarding/NotificationStep.test.tsx b/src/renderer/src/components/onboarding/NotificationStep.test.tsx index 04bd27f9833..854dcbe763c 100644 --- a/src/renderer/src/components/onboarding/NotificationStep.test.tsx +++ b/src/renderer/src/components/onboarding/NotificationStep.test.tsx @@ -1,6 +1,6 @@ import { renderToStaticMarkup } from 'react-dom/server' import { describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { NotificationStep } from './NotificationStep' import { resolveMacNotificationPermissionState } from '../notifications/mac-notification-permission-card' diff --git a/src/renderer/src/components/onboarding/NotificationStep.tsx b/src/renderer/src/components/onboarding/NotificationStep.tsx index 711677552dd..2f37329ace1 100644 --- a/src/renderer/src/components/onboarding/NotificationStep.tsx +++ b/src/renderer/src/components/onboarding/NotificationStep.tsx @@ -1,7 +1,7 @@ import { useCallback, useRef, useState } from 'react' import { BellRing, FileAudio, Upload } from 'lucide-react' import { toast } from 'sonner' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Button } from '@/components/ui/button' import { Select, diff --git a/src/renderer/src/components/onboarding/OnboardingFlow.tsx b/src/renderer/src/components/onboarding/OnboardingFlow.tsx index f32b401fff2..9e82e42547c 100644 --- a/src/renderer/src/components/onboarding/OnboardingFlow.tsx +++ b/src/renderer/src/components/onboarding/OnboardingFlow.tsx @@ -3,7 +3,7 @@ import { cn } from '@/lib/utils' import { isEditableTarget } from '@/lib/editable-target' import { getScreenSubmitModifierLabel, isScreenSubmitShortcut } from '@/lib/screen-submit-shortcut' import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip' -import type { OnboardingState } from '../../../../shared/types' +import type { OnboardingState } from '../../../../shared/onboarding-state-types' import { AgentStep } from './AgentStep' import { ThemeStep } from './ThemeStep' import { NotificationStep } from './NotificationStep' diff --git a/src/renderer/src/components/onboarding/ThemeStep.tsx b/src/renderer/src/components/onboarding/ThemeStep.tsx index afb0bded49a..bb797a12a6e 100644 --- a/src/renderer/src/components/onboarding/ThemeStep.tsx +++ b/src/renderer/src/components/onboarding/ThemeStep.tsx @@ -5,11 +5,8 @@ import { cn } from '@/lib/utils' import { track } from '@/lib/telemetry' import { useMountedRef } from '@/hooks/useMountedRef' import { GhosttyDiscoveryRow } from './GhosttyDiscoveryRow' -import type { - DiscoveryStatusEmitted, - GhosttyImportPreview, - GlobalSettings -} from '../../../../shared/types' +import type { GhosttyImportPreview, GlobalSettings } from '../../../../shared/global-settings-types' +import type { DiscoveryStatusEmitted } from '../../../../shared/onboarding-state-types' import { translate } from '@/i18n/i18n' import { ChromePreview } from './theme-chrome-preview' diff --git a/src/renderer/src/components/onboarding/WindowsTerminalStep.test.tsx b/src/renderer/src/components/onboarding/WindowsTerminalStep.test.tsx index f7047d37bbb..aee8ce2aa2d 100644 --- a/src/renderer/src/components/onboarding/WindowsTerminalStep.test.tsx +++ b/src/renderer/src/components/onboarding/WindowsTerminalStep.test.tsx @@ -1,7 +1,7 @@ import { renderToStaticMarkup } from 'react-dom/server' import { describe, expect, it, vi } from 'vitest' import { WINDOWS_GIT_BASH_SHELL } from '../../../../shared/windows-terminal-shell' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { WindowsTerminalStep } from './WindowsTerminalStep' function createSettings(overrides: Partial = {}): GlobalSettings { diff --git a/src/renderer/src/components/onboarding/WindowsTerminalStep.tsx b/src/renderer/src/components/onboarding/WindowsTerminalStep.tsx index a821dd22bb5..257e9d47b9c 100644 --- a/src/renderer/src/components/onboarding/WindowsTerminalStep.tsx +++ b/src/renderer/src/components/onboarding/WindowsTerminalStep.tsx @@ -2,7 +2,7 @@ import { Check } from 'lucide-react' import { useCallback, useState } from 'react' import type { BuiltInWindowsTerminalShell } from '../../../../shared/windows-terminal-shell' import { WINDOWS_GIT_BASH_SHELL } from '../../../../shared/windows-terminal-shell' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { cn } from '@/lib/utils' import { useWindowsTerminalCapabilities } from '@/lib/windows-terminal-capabilities' import { SettingsSegmentedControl } from '../settings/SettingsFormControls' diff --git a/src/renderer/src/components/onboarding/agent-picked-payload.ts b/src/renderer/src/components/onboarding/agent-picked-payload.ts index 90d146effeb..2c2cabc9441 100644 --- a/src/renderer/src/components/onboarding/agent-picked-payload.ts +++ b/src/renderer/src/components/onboarding/agent-picked-payload.ts @@ -7,7 +7,11 @@ import { tuiAgentToAgentKind } from '@/lib/telemetry' import type { EventProps } from '../../../../shared/telemetry-events' -import type { PathSource, ShellHydrationFailureReason, TuiAgent } from '../../../../shared/types' +import type { + PathSource, + ShellHydrationFailureReason +} from '../../../../shared/shell-path-hydration-types' +import type { TuiAgent } from '../../../../shared/tui-agent' export type AgentPickedSnapshot = { agent: TuiAgent diff --git a/src/renderer/src/components/onboarding/onboarding-settings-hydration.test.ts b/src/renderer/src/components/onboarding/onboarding-settings-hydration.test.ts index 33dff5e8409..8e11d1d9eec 100644 --- a/src/renderer/src/components/onboarding/onboarding-settings-hydration.test.ts +++ b/src/renderer/src/components/onboarding/onboarding-settings-hydration.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { resolveOnboardingSettingsHydration } from './onboarding-settings-hydration' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' const settings = { theme: 'light', diff --git a/src/renderer/src/components/onboarding/onboarding-settings-hydration.ts b/src/renderer/src/components/onboarding/onboarding-settings-hydration.ts index 8c0a9e3536d..fc4241d0d1b 100644 --- a/src/renderer/src/components/onboarding/onboarding-settings-hydration.ts +++ b/src/renderer/src/components/onboarding/onboarding-settings-hydration.ts @@ -1,4 +1,5 @@ -import type { GlobalSettings, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TuiAgent } from '../../../../shared/tui-agent' export type OnboardingSettingsHydrationUpdate = { settingsHydrated: boolean diff --git a/src/renderer/src/components/onboarding/should-show-onboarding.ts b/src/renderer/src/components/onboarding/should-show-onboarding.ts index c50352a5653..d96f2f8e6f0 100644 --- a/src/renderer/src/components/onboarding/should-show-onboarding.ts +++ b/src/renderer/src/components/onboarding/should-show-onboarding.ts @@ -1,4 +1,4 @@ -import type { OnboardingState } from '../../../../shared/types' +import type { OnboardingState } from '../../../../shared/onboarding-state-types' // Why: split out so App.tsx can gate the lazy without an // eager static import path that pulls the whole flow into the main chunk. diff --git a/src/renderer/src/components/onboarding/show-onboarding-event.ts b/src/renderer/src/components/onboarding/show-onboarding-event.ts index 716c3b4d22f..0e6f139b676 100644 --- a/src/renderer/src/components/onboarding/show-onboarding-event.ts +++ b/src/renderer/src/components/onboarding/show-onboarding-event.ts @@ -1,4 +1,4 @@ -import type { OnboardingState } from '../../../../shared/types' +import type { OnboardingState } from '../../../../shared/onboarding-state-types' const ONBOARDING_REOPENED_EVENT = 'orca:onboarding-reopened' diff --git a/src/renderer/src/components/onboarding/theme-chrome-preview.tsx b/src/renderer/src/components/onboarding/theme-chrome-preview.tsx index 68ef3120ef8..49fdb60a680 100644 --- a/src/renderer/src/components/onboarding/theme-chrome-preview.tsx +++ b/src/renderer/src/components/onboarding/theme-chrome-preview.tsx @@ -1,5 +1,5 @@ import { cn } from '@/lib/utils' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' export function ChromePreview({ variant }: { variant: GlobalSettings['theme'] }) { if (variant === 'system') { diff --git a/src/renderer/src/components/onboarding/use-onboarding-flow-persistence.test.ts b/src/renderer/src/components/onboarding/use-onboarding-flow-persistence.test.ts index 1dfbc0c708a..9a35faac37a 100644 --- a/src/renderer/src/components/onboarding/use-onboarding-flow-persistence.test.ts +++ b/src/renderer/src/components/onboarding/use-onboarding-flow-persistence.test.ts @@ -4,7 +4,7 @@ import { createElement, useEffect, act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultOnboardingState } from '../../../../shared/constants' -import type { OnboardingState } from '../../../../shared/types' +import type { OnboardingState } from '../../../../shared/onboarding-state-types' const trackMock = vi.hoisted(() => vi.fn()) diff --git a/src/renderer/src/components/onboarding/use-onboarding-flow-persistence.ts b/src/renderer/src/components/onboarding/use-onboarding-flow-persistence.ts index 12a8c6e22a2..93b4b62c153 100644 --- a/src/renderer/src/components/onboarding/use-onboarding-flow-persistence.ts +++ b/src/renderer/src/components/onboarding/use-onboarding-flow-persistence.ts @@ -3,7 +3,9 @@ import { track } from '@/lib/telemetry' import { useAppStore } from '@/store' import { ONBOARDING_FINAL_STEP, ONBOARDING_FLOW_VERSION } from '../../../../shared/constants' import type { EventProps } from '../../../../shared/telemetry-events' -import type { GlobalSettings, OnboardingState, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { OnboardingState } from '../../../../shared/onboarding-state-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { applyAgentPermissionMode } from '../../../../shared/tui-agent-permissions' import type { StepId, StepNumber } from './use-onboarding-flow-types' diff --git a/src/renderer/src/components/onboarding/use-onboarding-flow.ts b/src/renderer/src/components/onboarding/use-onboarding-flow.ts index b5376b363f1..33f7e94d1e2 100644 --- a/src/renderer/src/components/onboarding/use-onboarding-flow.ts +++ b/src/renderer/src/components/onboarding/use-onboarding-flow.ts @@ -8,7 +8,9 @@ import { track } from '@/lib/telemetry' import { buildAgentPickedPayload } from './agent-picked-payload' import { ONBOARDING_FINAL_STEP, ONBOARDING_FLOW_VERSION } from '../../../../shared/constants' import type { EventProps } from '../../../../shared/telemetry-events' -import type { GlobalSettings, OnboardingState, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { OnboardingState } from '../../../../shared/onboarding-state-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { STEPS, type StepNumber } from './use-onboarding-flow-types' import { persistStep, useCloseWith, usePersistCurrentStep } from './use-onboarding-flow-persistence' import { resolveOnboardingSettingsHydration } from './onboarding-settings-hydration' diff --git a/src/renderer/src/components/onboarding/windows-terminal-onboarding-telemetry.ts b/src/renderer/src/components/onboarding/windows-terminal-onboarding-telemetry.ts index 341f8b73fe6..922f7b866a0 100644 --- a/src/renderer/src/components/onboarding/windows-terminal-onboarding-telemetry.ts +++ b/src/renderer/src/components/onboarding/windows-terminal-onboarding-telemetry.ts @@ -1,6 +1,6 @@ import { WINDOWS_GIT_BASH_SHELL } from '../../../../shared/windows-terminal-shell' import type { EventProps } from '../../../../shared/telemetry-events' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' type WindowsTerminalSnapshot = EventProps<'onboarding_windows_terminal_snapshot'> diff --git a/src/renderer/src/components/pet/PetOverlay.tsx b/src/renderer/src/components/pet/PetOverlay.tsx index 052ff64750a..5f16da6986d 100644 --- a/src/renderer/src/components/pet/PetOverlay.tsx +++ b/src/renderer/src/components/pet/PetOverlay.tsx @@ -2,7 +2,7 @@ import { useCallback, useEffect, useId, useMemo, useRef, useState } from 'react' import { usePrefersReducedMotion } from '@/hooks/usePrefersReducedMotion' import { usePetUrl } from './usePetUrl' import type { DetectedSpriteCacheEntry } from './pet-blob-cache' -import type { CustomPet } from '../../../../shared/types' +import type { CustomPet } from '../../../../shared/pet-types' import { useAppStore } from '../../store' import { AGENT_STATUS_STALE_AFTER_MS } from '../../../../shared/agent-status-types' import { diff --git a/src/renderer/src/components/pet/pet-overlay-hit-area.test.tsx b/src/renderer/src/components/pet/pet-overlay-hit-area.test.tsx index adb257ce4b5..360bfdea7c1 100644 --- a/src/renderer/src/components/pet/pet-overlay-hit-area.test.tsx +++ b/src/renderer/src/components/pet/pet-overlay-hit-area.test.tsx @@ -4,7 +4,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it, vi } from 'vitest' import type { DetectedSpriteCacheEntry } from './pet-blob-cache' -import type { CustomPet } from '../../../../shared/types' +import type { CustomPet } from '../../../../shared/pet-types' type PetUrlState = | { url: string; ready: boolean; sprite: null; detected: null } diff --git a/src/renderer/src/components/pet/usePetUrl.ts b/src/renderer/src/components/pet/usePetUrl.ts index efc9fc05568..9809b228532 100644 --- a/src/renderer/src/components/pet/usePetUrl.ts +++ b/src/renderer/src/components/pet/usePetUrl.ts @@ -1,5 +1,5 @@ import { useEffect, useLayoutEffect, useRef, useState } from 'react' -import type { CustomPet } from '../../../../shared/types' +import type { CustomPet } from '../../../../shared/pet-types' import { applyCodexSpriteTimingDefaults } from '../../../../shared/codex-pet-sprite-defaults' import { useAppStore } from '../../store' import { BUNDLED_PET, findBundledPet, isBundledPetId } from './pet-models' diff --git a/src/renderer/src/components/pr-check-counts.test.ts b/src/renderer/src/components/pr-check-counts.test.ts index 8f2fa37c2ef..782597e3231 100644 --- a/src/renderer/src/components/pr-check-counts.test.ts +++ b/src/renderer/src/components/pr-check-counts.test.ts @@ -4,7 +4,7 @@ import { getProviderChecksLabel, summarizeProviderChecks } from '../../../shared/provider-check-summary' -import type { PRCheckDetail } from '../../../shared/types' +import type { PRCheckDetail } from '../../../shared/github/check-types' function check(conclusion: PRCheckDetail['conclusion'], name = String(conclusion)): PRCheckDetail { return { name, status: 'completed', conclusion, url: null } diff --git a/src/renderer/src/components/pr-check-counts.ts b/src/renderer/src/components/pr-check-counts.ts index e5b6d65e482..341c96141c1 100644 --- a/src/renderer/src/components/pr-check-counts.ts +++ b/src/renderer/src/components/pr-check-counts.ts @@ -1,6 +1,6 @@ import { translate } from '../i18n/i18n' import { summarizeProviderChecks } from '../../../shared/provider-check-summary' -import type { PRCheckDetail } from '../../../shared/types' +import type { PRCheckDetail } from '../../../shared/github/check-types' export type PRCheckCounts = { passing: number diff --git a/src/renderer/src/components/pr-checks-fix-prompt.test.ts b/src/renderer/src/components/pr-checks-fix-prompt.test.ts index b3f2eadf600..10623b46df9 100644 --- a/src/renderer/src/components/pr-checks-fix-prompt.test.ts +++ b/src/renderer/src/components/pr-checks-fix-prompt.test.ts @@ -6,7 +6,7 @@ import { getCheckDetailsPromptKey, truncateLogTailForPrompt } from './pr-checks-fix-prompt' -import type { PRCheckDetail, PRCheckRunDetails } from '../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../shared/github/check-types' const failingCheck: PRCheckDetail = { name: 'unit', diff --git a/src/renderer/src/components/pr-comments-resolution-prompt.test.ts b/src/renderer/src/components/pr-comments-resolution-prompt.test.ts index 902481e9ba3..9ff4fad596c 100644 --- a/src/renderer/src/components/pr-comments-resolution-prompt.test.ts +++ b/src/renderer/src/components/pr-comments-resolution-prompt.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRComment } from '../../../shared/types' +import type { PRComment } from '../../../shared/github/comment-types' import { groupPRComments } from '../../../shared/pr-comment-groups' import { buildPRCommentsResolutionPrompt, diff --git a/src/renderer/src/components/pr-comments-resolution-prompt.ts b/src/renderer/src/components/pr-comments-resolution-prompt.ts index d86a4e8d653..8f83fabc3d3 100644 --- a/src/renderer/src/components/pr-comments-resolution-prompt.ts +++ b/src/renderer/src/components/pr-comments-resolution-prompt.ts @@ -1,4 +1,4 @@ -import type { PRComment } from '../../../shared/types' +import type { PRComment } from '../../../shared/github/comment-types' import type { PRCommentGroup } from '../../../shared/pr-comment-groups' export type PRCommentsResolutionReviewKind = 'PR' | 'MR' diff --git a/src/renderer/src/components/provider-check-classification-parity.test.ts b/src/renderer/src/components/provider-check-classification-parity.test.ts index 688f61a978e..bedb0663739 100644 --- a/src/renderer/src/components/provider-check-classification-parity.test.ts +++ b/src/renderer/src/components/provider-check-classification-parity.test.ts @@ -9,7 +9,8 @@ import { summarizeProviderChecks } from '../../../shared/provider-check-summary' import type { GitLabPipelineJob } from '../../../shared/gitlab-types' -import type { PRCheckDetail, ProviderCheckSummary } from '../../../shared/types' +import type { PRCheckDetail } from '../../../shared/github/check-types' +import type { ProviderCheckSummary } from '../../../shared/github/pull-request-types' function completed(conclusion: string): PRCheckDetail { return { diff --git a/src/renderer/src/components/quick-open-file-list.react.test.tsx b/src/renderer/src/components/quick-open-file-list.react.test.tsx index fc00fac9891..fa2a288d7ac 100644 --- a/src/renderer/src/components/quick-open-file-list.react.test.tsx +++ b/src/renderer/src/components/quick-open-file-list.react.test.tsx @@ -3,7 +3,8 @@ import { act, createElement } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { FolderWorkspace, ProjectGroup } from '../../../shared/types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../shared/project-group-types' import { folderWorkspaceKey } from '../../../shared/workspace-scope' import { useAppStore } from '@/store' import type { AppState } from '@/store/types' diff --git a/src/renderer/src/components/quick-open-file-list.test.ts b/src/renderer/src/components/quick-open-file-list.test.ts index fa6e695e998..be5370b4d8c 100644 --- a/src/renderer/src/components/quick-open-file-list.test.ts +++ b/src/renderer/src/components/quick-open-file-list.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { buildExcludePathPrefixes } from '../../../shared/quick-open-filter' import { getRuntimeFileListTarget, diff --git a/src/renderer/src/components/quick-open-file-list.ts b/src/renderer/src/components/quick-open-file-list.ts index bb539749353..80a8dbac6d9 100644 --- a/src/renderer/src/components/quick-open-file-list.ts +++ b/src/renderer/src/components/quick-open-file-list.ts @@ -1,7 +1,7 @@ /* oxlint-disable react-doctor/no-adjust-state-on-prop-change -- Why: quick-open file lists are fetched over local or SSH runtime IPC, so loading/error/results track the request lifecycle. */ import { useEffect, useMemo, useRef, useState } from 'react' import { useShallow } from 'zustand/react/shallow' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { isWindowsAbsolutePathLike } from '../../../shared/cross-platform-path' import { createBrowserUuid } from '@/lib/browser-uuid' import { cancelRuntimeFileList, listRuntimeFiles } from '@/runtime/runtime-file-client' diff --git a/src/renderer/src/components/repo/NestedRepoChecklist.test.tsx b/src/renderer/src/components/repo/NestedRepoChecklist.test.tsx index ab8f3dda663..05864c4a050 100644 --- a/src/renderer/src/components/repo/NestedRepoChecklist.test.tsx +++ b/src/renderer/src/components/repo/NestedRepoChecklist.test.tsx @@ -1,7 +1,7 @@ import { renderToStaticMarkup } from 'react-dom/server' import { describe, expect, it, vi } from 'vitest' import { NestedRepoChecklist } from './NestedRepoChecklist' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' const scan: NestedRepoScanResult = { selectedPath: '/workspace/platform', diff --git a/src/renderer/src/components/repo/NestedRepoChecklist.tsx b/src/renderer/src/components/repo/NestedRepoChecklist.tsx index 95ea1a41897..77bb3378900 100644 --- a/src/renderer/src/components/repo/NestedRepoChecklist.tsx +++ b/src/renderer/src/components/repo/NestedRepoChecklist.tsx @@ -1,6 +1,6 @@ import { useCallback, useMemo, type Dispatch, type SetStateAction } from 'react' import { GitBranch } from 'lucide-react' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' import { cn } from '@/lib/utils' import { getRepoDisplayLabelKey, getRepoDisplayLabelsByPath } from '@/lib/repo-display-labels' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/repo/NestedRepoScanLimitNotice.test.ts b/src/renderer/src/components/repo/NestedRepoScanLimitNotice.test.ts index 44506bcd5e6..f3279d16939 100644 --- a/src/renderer/src/components/repo/NestedRepoScanLimitNotice.test.ts +++ b/src/renderer/src/components/repo/NestedRepoScanLimitNotice.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' import { nestedRepoScanLimitText } from './NestedRepoScanLimitNotice' describe('nestedRepoScanLimitText', () => { diff --git a/src/renderer/src/components/repo/NestedRepoScanLimitNotice.tsx b/src/renderer/src/components/repo/NestedRepoScanLimitNotice.tsx index 59066a6675b..38fa6524a18 100644 --- a/src/renderer/src/components/repo/NestedRepoScanLimitNotice.tsx +++ b/src/renderer/src/components/repo/NestedRepoScanLimitNotice.tsx @@ -1,6 +1,6 @@ import { CircleHelp } from 'lucide-react' import { useState } from 'react' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/repo/RepoCombobox.tsx b/src/renderer/src/components/repo/RepoCombobox.tsx index 868c7be2d22..f47833eeca9 100644 --- a/src/renderer/src/components/repo/RepoCombobox.tsx +++ b/src/renderer/src/components/repo/RepoCombobox.tsx @@ -14,7 +14,7 @@ import { isGitRepoKind } from '../../../../shared/repo-kind' import { searchRepos } from '@/lib/repo-search' import { cn } from '@/lib/utils' import { useMountedRef } from '@/hooks/useMountedRef' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import RepoBadgeLabel from './RepoBadgeLabel' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/repo/repo-fork-indicator.tsx b/src/renderer/src/components/repo/repo-fork-indicator.tsx index 896a5217730..b1dcf93fa15 100644 --- a/src/renderer/src/components/repo/repo-fork-indicator.tsx +++ b/src/renderer/src/components/repo/repo-fork-indicator.tsx @@ -1,6 +1,6 @@ import React from 'react' import { GitFork } from 'lucide-react' -import type { GitHubRepositoryIdentity } from '../../../../shared/types' +import type { GitHubRepositoryIdentity } from '../../../../shared/github/pull-request-types' import { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip' import { cn } from '@/lib/utils' diff --git a/src/renderer/src/components/right-sidebar/ChecksPanel.tsx b/src/renderer/src/components/right-sidebar/ChecksPanel.tsx index 2d63be3bacf..cfa9030d5f0 100644 --- a/src/renderer/src/components/right-sidebar/ChecksPanel.tsx +++ b/src/renderer/src/components/right-sidebar/ChecksPanel.tsx @@ -58,17 +58,15 @@ import { type PRCommentsListSelectionClearRequest } from './pr-comments-list-selection' import { ENTRY_REFRESH_GRACE_MS, shouldEntryRefresh } from './checks-entry-refresh' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/github/check-types' +import type { GitHubReactionContent, PRComment } from '../../../../shared/github/comment-types' +import type { PRRefreshErrorType } from '../../../../shared/github/pull-request-refresh-types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' import type { GitLabDiscussionResolveResult, GitLabProjectRef, - GitLabWorkItemDetails, - PRInfo, - PRCheckDetail, - PRCheckRunDetails, - PRComment, - GitHubReactionContent, - PRRefreshErrorType -} from '../../../../shared/types' + GitLabWorkItemDetails +} from '../../../../shared/gitlab-types' import { getConnectionId } from '@/lib/connection-context' import { buildResolvePullRequestConflictsPrompt, diff --git a/src/renderer/src/components/right-sidebar/FileExplorer.tsx b/src/renderer/src/components/right-sidebar/FileExplorer.tsx index e8191d1b3e7..d52457324c0 100644 --- a/src/renderer/src/components/right-sidebar/FileExplorer.tsx +++ b/src/renderer/src/components/right-sidebar/FileExplorer.tsx @@ -54,7 +54,7 @@ import { useFileExplorerSelection } from './useFileExplorerSelection' import { useFileExplorerVisibleRowProjection } from './useFileExplorerVisibleRowProjection' import { translate } from '@/i18n/i18n' import { CLOSE_ALL_CONTEXT_MENUS_EVENT } from '@/components/tab-bar/SortableTab' -import type { RightSidebarExplorerView } from '../../../../shared/types' +import type { RightSidebarExplorerView } from '../../../../shared/ui-chrome-types' import { getRuntimeEnvironmentIdForWorktree } from '@/lib/worktree-runtime-owner' import { createNewTerminalTab } from '@/components/terminal/terminal-tab-create' import { useWorkspaceFileBrowserActionPredicate } from '@/lib/file-preview' diff --git a/src/renderer/src/components/right-sidebar/FileExplorerQueryStrip.tsx b/src/renderer/src/components/right-sidebar/FileExplorerQueryStrip.tsx index 23b89e096a0..cfa1c1a30e1 100644 --- a/src/renderer/src/components/right-sidebar/FileExplorerQueryStrip.tsx +++ b/src/renderer/src/components/right-sidebar/FileExplorerQueryStrip.tsx @@ -1,6 +1,6 @@ import React from 'react' import { FileExplorerViewSwitch } from './FileExplorerViewSwitch' -import type { RightSidebarExplorerView } from '../../../../shared/types' +import type { RightSidebarExplorerView } from '../../../../shared/ui-chrome-types' type FileExplorerQueryStripProps = { view: RightSidebarExplorerView diff --git a/src/renderer/src/components/right-sidebar/FileExplorerRow.tsx b/src/renderer/src/components/right-sidebar/FileExplorerRow.tsx index a5e232cb29e..545dc284da8 100644 --- a/src/renderer/src/components/right-sidebar/FileExplorerRow.tsx +++ b/src/renderer/src/components/right-sidebar/FileExplorerRow.tsx @@ -43,7 +43,7 @@ import { WORKSPACE_FILE_PATH_MIME, WORKSPACE_FILE_PATHS_MIME } from '@/lib/workspace-file-drag' -import type { GitFileStatus } from '../../../../shared/types' +import type { GitFileStatus } from '../../../../shared/git-status-types' import { STATUS_LABELS } from './status-display' import { RENAME_HOTSPOT_ATTR } from './file-explorer-dir-toggle-timing' import type { TreeNode } from './file-explorer-types' diff --git a/src/renderer/src/components/right-sidebar/FileExplorerViewSwitch.tsx b/src/renderer/src/components/right-sidebar/FileExplorerViewSwitch.tsx index ec64942f1cf..f7e32b63c98 100644 --- a/src/renderer/src/components/right-sidebar/FileExplorerViewSwitch.tsx +++ b/src/renderer/src/components/right-sidebar/FileExplorerViewSwitch.tsx @@ -1,7 +1,7 @@ import type React from 'react' import { translate } from '@/i18n/i18n' import { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group' -import type { RightSidebarExplorerView } from '../../../../shared/types' +import type { RightSidebarExplorerView } from '../../../../shared/ui-chrome-types' type FileExplorerViewSwitchProps = { view: RightSidebarExplorerView diff --git a/src/renderer/src/components/right-sidebar/FileExplorerVirtualRows.tsx b/src/renderer/src/components/right-sidebar/FileExplorerVirtualRows.tsx index d72e7a5ca19..59327faddf5 100644 --- a/src/renderer/src/components/right-sidebar/FileExplorerVirtualRows.tsx +++ b/src/renderer/src/components/right-sidebar/FileExplorerVirtualRows.tsx @@ -2,7 +2,7 @@ import React from 'react' import type { Virtualizer } from '@tanstack/react-virtual' import { dirname, normalizeRelativePath } from '@/lib/path' import { cn } from '@/lib/utils' -import type { GitFileStatus } from '../../../../shared/types' +import type { GitFileStatus } from '../../../../shared/git-status-types' import { FileExplorerRow, InlineInputRow, type InlineInput } from './FileExplorerRow' import { shouldShowIgnoredDecoration, STATUS_COLORS } from './status-display' import type { DirCache, TreeNode } from './file-explorer-types' diff --git a/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksPanel.test.tsx b/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksPanel.test.tsx index 3cd868a5baf..4ee957c5001 100644 --- a/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksPanel.test.tsx +++ b/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksPanel.test.tsx @@ -3,13 +3,11 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { - FolderWorkspace, - PRCheckDetail, - Repo, - Worktree, - WorkspaceLineage -} from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { PRCheckDetail } from '../../../../shared/github/check-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' import { folderWorkspaceKey, worktreeWorkspaceKey } from '../../../../shared/workspace-scope' import { getHostedReviewCacheKey } from '@/store/slices/hosted-review' diff --git a/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksPanel.tsx b/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksPanel.tsx index f2e3bdda640..4c03a998d79 100644 --- a/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksPanel.tsx +++ b/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksPanel.tsx @@ -5,7 +5,7 @@ import { Button } from '@/components/ui/button' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { cn } from '@/lib/utils' import { translate } from '@/i18n/i18n' -import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/github/check-types' import { getAttachedWorktreesForFolderWorkspace } from './folder-workspace-attached-worktrees' import { FolderWorkspacePrChecksRow } from './FolderWorkspacePrChecksRow' import type { ParentPrChecksRefreshOutcome, ParentPrChecksRow } from './parent-pr-checks-rows' diff --git a/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksRow.test.tsx b/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksRow.test.tsx index de88bd8454d..67c3a0fc222 100644 --- a/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksRow.test.tsx +++ b/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksRow.test.tsx @@ -3,7 +3,9 @@ import { act, type ReactNode } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { CheckStatus, Repo, Worktree } from '../../../../shared/types' +import type { CheckStatus } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { ParentPrChecksRow, ParentPrChecksRowStatus } from './parent-pr-checks-rows' vi.mock('@/i18n/i18n', () => ({ diff --git a/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksRow.tsx b/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksRow.tsx index cd07701bde7..ac87481de9b 100644 --- a/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksRow.tsx +++ b/src/renderer/src/components/right-sidebar/FolderWorkspacePrChecksRow.tsx @@ -3,7 +3,7 @@ import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip import { cn } from '@/lib/utils' import { openHttpLink } from '@/lib/http-link-routing' import { translate } from '@/i18n/i18n' -import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/github/check-types' import { CHECK_COLOR, CHECK_ICON, diff --git a/src/renderer/src/components/right-sidebar/FolderWorkspaceWorktreesPanel.test.tsx b/src/renderer/src/components/right-sidebar/FolderWorkspaceWorktreesPanel.test.tsx index ddeb4704433..2fcdd1cea93 100644 --- a/src/renderer/src/components/right-sidebar/FolderWorkspaceWorktreesPanel.test.tsx +++ b/src/renderer/src/components/right-sidebar/FolderWorkspaceWorktreesPanel.test.tsx @@ -3,7 +3,9 @@ import { act, type CSSProperties, type MouseEvent, type ReactNode } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree, WorktreeLineage, WorkspaceLineage } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceKey, worktreeWorkspaceKey } from '../../../../shared/workspace-scope' import { LINEAGE_CHILDREN_INLINE_OFFSET, diff --git a/src/renderer/src/components/right-sidebar/FolderWorkspaceWorktreesPanel.tsx b/src/renderer/src/components/right-sidebar/FolderWorkspaceWorktreesPanel.tsx index 2a2a5a78588..94c46a545d2 100644 --- a/src/renderer/src/components/right-sidebar/FolderWorkspaceWorktreesPanel.tsx +++ b/src/renderer/src/components/right-sidebar/FolderWorkspaceWorktreesPanel.tsx @@ -5,7 +5,7 @@ import { } from '@/components/sidebar/worktree-list-indentation' import { useAppStore } from '@/store' import { translate } from '@/i18n/i18n' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { getAttachedWorktreesForFolderWorkspace } from './folder-workspace-attached-worktrees' import { useState } from 'react' diff --git a/src/renderer/src/components/right-sidebar/GitHistoryCommitFiles.tsx b/src/renderer/src/components/right-sidebar/GitHistoryCommitFiles.tsx index 4bf5da10cb8..d32e82cdd0f 100644 --- a/src/renderer/src/components/right-sidebar/GitHistoryCommitFiles.tsx +++ b/src/renderer/src/components/right-sidebar/GitHistoryCommitFiles.tsx @@ -10,7 +10,8 @@ import { getFileTypeIcon } from '@/lib/file-type-icons' import { basename, dirname } from '@/lib/path' import { translate } from '@/i18n/i18n' import { formatGitHistoryTimestamp } from './git-history-format' -import type { GitBranchChangeEntry, GitFileStatus } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' +import type { GitFileStatus } from '../../../../shared/git-status-types' // State for a single commit's lazily-loaded file list. Owned by GitHistoryPanel, // populated through the onLoadCommitFiles loader supplied by SourceControl. diff --git a/src/renderer/src/components/right-sidebar/GitHistoryPanel.tsx b/src/renderer/src/components/right-sidebar/GitHistoryPanel.tsx index bc60150cd77..c7cb02f4247 100644 --- a/src/renderer/src/components/right-sidebar/GitHistoryPanel.tsx +++ b/src/renderer/src/components/right-sidebar/GitHistoryPanel.tsx @@ -5,7 +5,7 @@ import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip import { cn } from '@/lib/utils' import { ContextMenu, ContextMenuTrigger } from '@/components/ui/context-menu' import type { GitHistoryItem, GitHistoryResult } from '../../../../shared/git-history' -import type { GitBranchChangeEntry } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' import { buildDefaultGitHistoryColorMap, buildGitHistoryViewModels diff --git a/src/renderer/src/components/right-sidebar/GitHubPRStackMap.test.tsx b/src/renderer/src/components/right-sidebar/GitHubPRStackMap.test.tsx index e29d0b74361..e33e952f2fc 100644 --- a/src/renderer/src/components/right-sidebar/GitHubPRStackMap.test.tsx +++ b/src/renderer/src/components/right-sidebar/GitHubPRStackMap.test.tsx @@ -3,7 +3,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GitHubPRStack } from '../../../../shared/types' +import type { GitHubPRStack } from '../../../../shared/github/pull-request-types' import { GitHubPRStackMap } from './GitHubPRStackMap' const stack: GitHubPRStack = { diff --git a/src/renderer/src/components/right-sidebar/GitHubPRStackMap.tsx b/src/renderer/src/components/right-sidebar/GitHubPRStackMap.tsx index e0187b37709..1bbaf2b019b 100644 --- a/src/renderer/src/components/right-sidebar/GitHubPRStackMap.tsx +++ b/src/renderer/src/components/right-sidebar/GitHubPRStackMap.tsx @@ -1,6 +1,9 @@ import { useMemo, useState } from 'react' import { ChevronDown, GitBranch, GitPullRequest } from 'lucide-react' -import type { GitHubPRStack, GitHubPRStackEntry } from '../../../../shared/types' +import type { + GitHubPRStack, + GitHubPRStackEntry +} from '../../../../shared/github/pull-request-types' import { cn } from '@/lib/utils' import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/right-sidebar/HostedReviewActions.tsx b/src/renderer/src/components/right-sidebar/HostedReviewActions.tsx index cace5ee7d98..a98ea57ab7a 100644 --- a/src/renderer/src/components/right-sidebar/HostedReviewActions.tsx +++ b/src/renderer/src/components/right-sidebar/HostedReviewActions.tsx @@ -12,7 +12,9 @@ import { DropdownMenuSeparator } from '@/components/ui/dropdown-menu' import { presentGitHubPRMergeState } from '@/components/github-pr-merge-state' -import type { PRInfo, Repo, Worktree } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { resolveGitHubPRMergeMethods } from '../../../../shared/github/pull-request-merge-methods' import { runWorktreeDelete } from '../sidebar/delete-worktree-flow' import { presentGitLabMRMergeState } from './gitlab-mr-merge-state' diff --git a/src/renderer/src/components/right-sidebar/SearchResultItems.test.tsx b/src/renderer/src/components/right-sidebar/SearchResultItems.test.tsx index 1364bdc87d0..18599c352c3 100644 --- a/src/renderer/src/components/right-sidebar/SearchResultItems.test.tsx +++ b/src/renderer/src/components/right-sidebar/SearchResultItems.test.tsx @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest' import { Button } from '@/components/ui/button' import { FileResultRow } from './SearchResultItems' -import type { SearchFileResult } from '../../../../shared/types' +import type { SearchFileResult } from '../../../../shared/code-search-types' type ReactElementLike = { type: unknown diff --git a/src/renderer/src/components/right-sidebar/SearchResultItems.tsx b/src/renderer/src/components/right-sidebar/SearchResultItems.tsx index a7499929ea9..2dc3d1e2f52 100644 --- a/src/renderer/src/components/right-sidebar/SearchResultItems.tsx +++ b/src/renderer/src/components/right-sidebar/SearchResultItems.tsx @@ -12,7 +12,7 @@ import { ContextMenuItem } from '@/components/ui/context-menu' import { normalizeSearchFileMatchCount } from '../../../../shared/search-match-count' -import type { SearchFileResult, SearchMatch } from '../../../../shared/types' +import type { SearchFileResult, SearchMatch } from '../../../../shared/code-search-types' import { translate } from '@/i18n/i18n' // ─── Toggle Button ──────────────────────────────────────── diff --git a/src/renderer/src/components/right-sidebar/SearchResultsPane.tsx b/src/renderer/src/components/right-sidebar/SearchResultsPane.tsx index 952e1a0d99b..b1fc60b7d5e 100644 --- a/src/renderer/src/components/right-sidebar/SearchResultsPane.tsx +++ b/src/renderer/src/components/right-sidebar/SearchResultsPane.tsx @@ -1,6 +1,10 @@ import React from 'react' import { useVirtualizer } from '@tanstack/react-virtual' -import type { SearchFileResult, SearchMatch, SearchResult } from '../../../../shared/types' +import type { + SearchFileResult, + SearchMatch, + SearchResult +} from '../../../../shared/code-search-types' import type { SearchRow } from './search-rows' import { FileResultRow, MatchResultRow } from './SearchResultItems' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/right-sidebar/SourceControl.branch-line-total.test.tsx b/src/renderer/src/components/right-sidebar/SourceControl.branch-line-total.test.tsx index 9f2529973dc..02f6ce6f027 100644 --- a/src/renderer/src/components/right-sidebar/SourceControl.branch-line-total.test.tsx +++ b/src/renderer/src/components/right-sidebar/SourceControl.branch-line-total.test.tsx @@ -4,7 +4,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { TooltipProvider } from '@/components/ui/tooltip' -import type { GitBranchCompareSummary } from '../../../../shared/types' +import type { GitBranchCompareSummary } from '../../../../shared/git-diff-compare-types' import { clearBranchLineTotalRequestGateForTests, getBranchLineTotalMergeBase diff --git a/src/renderer/src/components/right-sidebar/SourceControl.compare-summary.test.ts b/src/renderer/src/components/right-sidebar/SourceControl.compare-summary.test.ts index f00bbe9d78c..e740362f60d 100644 --- a/src/renderer/src/components/right-sidebar/SourceControl.compare-summary.test.ts +++ b/src/renderer/src/components/right-sidebar/SourceControl.compare-summary.test.ts @@ -12,7 +12,8 @@ import { shouldRefreshBranchCompareForStatusHead, shouldShowCompareSummary } from './SourceControl' -import type { GitBranchCompareSummary, GitUpstreamStatus } from '../../../../shared/types' +import type { GitBranchCompareSummary } from '../../../../shared/git-diff-compare-types' +import type { GitUpstreamStatus } from '../../../../shared/git-status-types' type ReactElementLike = { type: unknown diff --git a/src/renderer/src/components/right-sidebar/SourceControl.open-file-highlight.test.tsx b/src/renderer/src/components/right-sidebar/SourceControl.open-file-highlight.test.tsx index d3125ee86c7..c1dc570d558 100644 --- a/src/renderer/src/components/right-sidebar/SourceControl.open-file-highlight.test.tsx +++ b/src/renderer/src/components/right-sidebar/SourceControl.open-file-highlight.test.tsx @@ -4,7 +4,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { TooltipProvider } from '@/components/ui/tooltip' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import SourceControl from './SourceControl' const mocks = vi.hoisted(() => { diff --git a/src/renderer/src/components/right-sidebar/SourceControl.preview-open.test.tsx b/src/renderer/src/components/right-sidebar/SourceControl.preview-open.test.tsx index 13dc2479894..0afa6769ea1 100644 --- a/src/renderer/src/components/right-sidebar/SourceControl.preview-open.test.tsx +++ b/src/renderer/src/components/right-sidebar/SourceControl.preview-open.test.tsx @@ -6,9 +6,9 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { TooltipProvider } from '@/components/ui/tooltip' import type { GitBranchChangeEntry, - GitBranchCompareSummary, - GitStatusEntry -} from '../../../../shared/types' + GitBranchCompareSummary +} from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import SourceControl from './SourceControl' const mocks = vi.hoisted(() => { diff --git a/src/renderer/src/components/right-sidebar/SourceControl.tsx b/src/renderer/src/components/right-sidebar/SourceControl.tsx index bbfe20317f5..1bab1037bde 100644 --- a/src/renderer/src/components/right-sidebar/SourceControl.tsx +++ b/src/renderer/src/components/right-sidebar/SourceControl.tsx @@ -201,17 +201,19 @@ import { isBehindOnlyUpstream, shouldForcePushWithLeaseForUpstream } from '../../../../shared/git-upstream-status' +import type { DiffComment } from '../../../../shared/diff-comment-types' import type { - DiffComment, GitBranchChangeEntry, - GitBranchCompareSummary, + GitBranchCompareSummary +} from '../../../../shared/git-diff-compare-types' +import type { GitConflictOperation, - GitPushTarget, GitStatusEntry, - GitUpstreamStatus, - SourceControlViewMode, - TuiAgent -} from '../../../../shared/types' + GitUpstreamStatus +} from '../../../../shared/git-status-types' +import type { TuiAgent } from '../../../../shared/tui-agent' +import type { SourceControlViewMode } from '../../../../shared/ui-chrome-types' +import type { GitPushTarget } from '../../../../shared/worktree/types' import type { HostedReviewCreationEligibility, HostedReviewInfo, diff --git a/src/renderer/src/components/right-sidebar/SourceControl.virtual-file-list.test.tsx b/src/renderer/src/components/right-sidebar/SourceControl.virtual-file-list.test.tsx index 5ff61b17d43..2625ab54441 100644 --- a/src/renderer/src/components/right-sidebar/SourceControl.virtual-file-list.test.tsx +++ b/src/renderer/src/components/right-sidebar/SourceControl.virtual-file-list.test.tsx @@ -4,7 +4,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { TooltipProvider } from '@/components/ui/tooltip' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import SourceControl from './SourceControl' import { SOURCE_CONTROL_FILE_ROW_HEIGHT_PX, diff --git a/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialog.test.tsx b/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialog.test.tsx index 2b87618bd5e..610b6d74b20 100644 --- a/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialog.test.tsx +++ b/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialog.test.tsx @@ -6,7 +6,9 @@ import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../../../shared/constants' import type { SourceControlActionRecipe } from '../../../../shared/source-control-ai-actions' -import type { GlobalSettings, Repo, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TuiAgent } from '../../../../shared/tui-agent' const mocks = vi.hoisted(() => ({ ensureDetectedAgents: vi.fn(), diff --git a/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialog.tsx b/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialog.tsx index 3a431ea03e0..e6532d3eba3 100644 --- a/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialog.tsx +++ b/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialog.tsx @@ -10,7 +10,7 @@ import type { SourceControlActionRecipe, SourceControlLaunchActionId } from '../../../../shared/source-control-ai-actions' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { LaunchSource } from '../../../../shared/telemetry-events' import type { SourceControlAiWriteTarget } from '../../../../shared/source-control-ai-recipe-save' import { SourceControlAgentActionDialogForm } from './SourceControlAgentActionDialogForm' diff --git a/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialogForm.test.tsx b/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialogForm.test.tsx index 6b923a0f58a..8e506ec9ca4 100644 --- a/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialogForm.test.tsx +++ b/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialogForm.test.tsx @@ -2,7 +2,8 @@ import React, { type ReactNode } from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { describe, expect, it, vi } from 'vitest' import { SourceControlAgentActionDialogForm } from './SourceControlAgentActionDialogForm' -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' vi.mock('@/components/agent/AgentCombobox', () => ({ default: ({ value }: { value: string | null }) => diff --git a/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialogForm.tsx b/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialogForm.tsx index 8f9fff3e657..596a1c19f0f 100644 --- a/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialogForm.tsx +++ b/src/renderer/src/components/right-sidebar/SourceControlAgentActionDialogForm.tsx @@ -24,7 +24,9 @@ import type { AgentCatalogEntry } from '@/lib/agent-catalog' import { cn } from '@/lib/utils' import type { SourceControlLaunchActionId } from '../../../../shared/source-control-ai-actions' import type { SourceControlAiWriteTarget } from '../../../../shared/source-control-ai-recipe-save' -import type { GlobalSettings, Repo, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { SourceControlActionVariableChips } from '../source-control/SourceControlActionVariableChips' import { sourceControlActionRecipeMatchesTarget } from './source-control-action-recipe-match' import type { SourceControlAgentScopeNote } from './source-control-agent-action-dialog-result' diff --git a/src/renderer/src/components/right-sidebar/SourceControlTextGenerationDialog.tsx b/src/renderer/src/components/right-sidebar/SourceControlTextGenerationDialog.tsx index 56c3e52f8b9..f48431b1ef2 100644 --- a/src/renderer/src/components/right-sidebar/SourceControlTextGenerationDialog.tsx +++ b/src/renderer/src/components/right-sidebar/SourceControlTextGenerationDialog.tsx @@ -12,7 +12,8 @@ import { type ResolvedSourceControlAiGenerationParams } from '../../../../shared/source-control-ai' import type { SourceControlTextActionId } from '../../../../shared/source-control-ai-actions' -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' import type { SourceControlAiWriteTarget } from '../../../../shared/source-control-ai-recipe-save' import { buildBranchNamePrompt } from '../../../../shared/branch-name-from-work' import { buildCommitMessagePrompt } from '../../../../shared/commit-message-generation' diff --git a/src/renderer/src/components/right-sidebar/SourceControlTextGenerationDialogForm.tsx b/src/renderer/src/components/right-sidebar/SourceControlTextGenerationDialogForm.tsx index dc59ac3da85..56402b58850 100644 --- a/src/renderer/src/components/right-sidebar/SourceControlTextGenerationDialogForm.tsx +++ b/src/renderer/src/components/right-sidebar/SourceControlTextGenerationDialogForm.tsx @@ -22,7 +22,9 @@ import type { ResolvedSourceControlAiGenerationParams } from '../../../../shared import { formatLinkedIssueTemplateValue } from '../../../../shared/source-control-ai-action-variables' import type { SourceControlTextActionId } from '../../../../shared/source-control-ai-actions' import type { SourceControlAiWriteTarget } from '../../../../shared/source-control-ai-recipe-save' -import type { GlobalSettings, Repo, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { toast } from 'sonner' import { SourceControlActionVariableChips } from '../source-control/SourceControlActionVariableChips' import { sourceControlTextGenerationDefaultsMatchTarget } from './source-control-text-generation-defaults' diff --git a/src/renderer/src/components/right-sidebar/SourceControlTextGenerationParams.ts b/src/renderer/src/components/right-sidebar/SourceControlTextGenerationParams.ts index eb1a5a98fb6..e3c75f3175e 100644 --- a/src/renderer/src/components/right-sidebar/SourceControlTextGenerationParams.ts +++ b/src/renderer/src/components/right-sidebar/SourceControlTextGenerationParams.ts @@ -4,7 +4,7 @@ import { isCustomAgentId } from '../../../../shared/commit-message-agent-spec' import type { ResolvedSourceControlAiGenerationParams } from '../../../../shared/source-control-ai' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' export type CommitMessageGenerationAgentChoice = | ResolvedSourceControlAiGenerationParams['agentId'] diff --git a/src/renderer/src/components/right-sidebar/active-checks-status.test.ts b/src/renderer/src/components/right-sidebar/active-checks-status.test.ts index 7ee80e0e8c5..c81c059a78c 100644 --- a/src/renderer/src/components/right-sidebar/active-checks-status.test.ts +++ b/src/renderer/src/components/right-sidebar/active-checks-status.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest' import { getActiveChecksStatus } from './active-checks-status' import type { AppState } from '../../store/types' -import type { PRInfo } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' function makePR(status: PRInfo['checksStatus']): PRInfo { return { diff --git a/src/renderer/src/components/right-sidebar/active-checks-status.ts b/src/renderer/src/components/right-sidebar/active-checks-status.ts index a7af63812ca..b2a0a540a5b 100644 --- a/src/renderer/src/components/right-sidebar/active-checks-status.ts +++ b/src/renderer/src/components/right-sidebar/active-checks-status.ts @@ -1,6 +1,6 @@ import type { AppState } from '../../store/types' import { getRepoMapFromState, getWorktreeMapFromState } from '../../store/selectors' -import type { CheckStatus } from '../../../../shared/types' +import type { CheckStatus } from '../../../../shared/github/pull-request-types' import { getGitHubPRCacheKey } from '../../store/slices/github-cache-key' import { getHostedReviewCacheKey } from '../../store/slices/hosted-review-cache-identity' diff --git a/src/renderer/src/components/right-sidebar/activity-bar-buttons.tsx b/src/renderer/src/components/right-sidebar/activity-bar-buttons.tsx index dd67762bbb7..4bab9fd907e 100644 --- a/src/renderer/src/components/right-sidebar/activity-bar-buttons.tsx +++ b/src/renderer/src/components/right-sidebar/activity-bar-buttons.tsx @@ -1,7 +1,7 @@ import React from 'react' import { MoreHorizontal } from 'lucide-react' import type { ActiveRightSidebarTab } from '@/store/slices/editor' -import type { CheckStatus } from '../../../../shared/types' +import type { CheckStatus } from '../../../../shared/github/pull-request-types' import { cn } from '@/lib/utils' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { RIGHT_SIDEBAR_HEADER_NO_DRAG_CLASS_NAME } from './right-sidebar-titlebar-drag-regions' diff --git a/src/renderer/src/components/right-sidebar/ai-vault-original-pane.ts b/src/renderer/src/components/right-sidebar/ai-vault-original-pane.ts index 013684c7870..7cb9c647af3 100644 --- a/src/renderer/src/components/right-sidebar/ai-vault-original-pane.ts +++ b/src/renderer/src/components/right-sidebar/ai-vault-original-pane.ts @@ -3,7 +3,10 @@ import { resolveRuntimePaneTitleLeafId } from '@/lib/runtime-pane-title-leaf-id' import type { AgentStatusState } from '../../../../shared/agent-status-types' import type { AiVaultSession } from '../../../../shared/ai-vault-types' import { parseLegacyNumericPaneKey, parsePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode } from '../../../../shared/types' +import type { + TerminalLayoutSnapshot, + TerminalPaneLayoutNode +} from '../../../../shared/terminal-tab-types' export type AiVaultOriginalPaneTarget = { paneKey: string diff --git a/src/renderer/src/components/right-sidebar/ai-vault-scope-paths.test.ts b/src/renderer/src/components/right-sidebar/ai-vault-scope-paths.test.ts index bf11a0af23b..237da2fecc8 100644 --- a/src/renderer/src/components/right-sidebar/ai-vault-scope-paths.test.ts +++ b/src/renderer/src/components/right-sidebar/ai-vault-scope-paths.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { deriveAiVaultScopeSessionPaths, deriveAiVaultWorkspaceScopePaths diff --git a/src/renderer/src/components/right-sidebar/ai-vault-scope-paths.ts b/src/renderer/src/components/right-sidebar/ai-vault-scope-paths.ts index bcd3391a4fc..cfdef42f3e0 100644 --- a/src/renderer/src/components/right-sidebar/ai-vault-scope-paths.ts +++ b/src/renderer/src/components/right-sidebar/ai-vault-scope-paths.ts @@ -3,7 +3,8 @@ import { normalizeRuntimePathForComparison } from '../../../../shared/cross-platform-path' import type { ProjectHostSetupProjection } from '../../../../shared/project-host-setup-projection' -import type { ProjectHostSetup, Worktree } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Worktree } from '../../../../shared/worktree/types' import { splitWorktreeIdForFilesystem } from '../../../../shared/worktree/id' export function deriveAiVaultWorkspaceScopePaths( diff --git a/src/renderer/src/components/right-sidebar/ai-vault-session-launch-actions.ts b/src/renderer/src/components/right-sidebar/ai-vault-session-launch-actions.ts index 43504842aaa..4ede3cafe71 100644 --- a/src/renderer/src/components/right-sidebar/ai-vault-session-launch-actions.ts +++ b/src/renderer/src/components/right-sidebar/ai-vault-session-launch-actions.ts @@ -18,7 +18,7 @@ import { } from '@/lib/ai-vault-resume-target' import type { AiVaultAgent, AiVaultSession } from '../../../../shared/ai-vault-types' import { prepareAiVaultSessionForResume } from '@/lib/ai-vault-session-resume-preparation' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { translate } from '@/i18n/i18n' import { agentLabel } from './ai-vault-session-filters' import { parseWorkspaceKey } from '../../../../shared/workspace-scope' diff --git a/src/renderer/src/components/right-sidebar/ai-vault-session-projects.test.ts b/src/renderer/src/components/right-sidebar/ai-vault-session-projects.test.ts index 6c46a144f86..b3c5d0aa841 100644 --- a/src/renderer/src/components/right-sidebar/ai-vault-session-projects.test.ts +++ b/src/renderer/src/components/right-sidebar/ai-vault-session-projects.test.ts @@ -1,7 +1,9 @@ import { describe, expect, it } from 'vitest' import type { ProjectHostSetupProjection } from '../../../../shared/project-host-setup-projection' import type { AiVaultSession } from '../../../../shared/ai-vault-types' -import type { Project, ProjectHostSetup, Repo, Worktree } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { buildAiVaultProjectContext, buildAiVaultSessionProjectById, diff --git a/src/renderer/src/components/right-sidebar/ai-vault-session-projects.ts b/src/renderer/src/components/right-sidebar/ai-vault-session-projects.ts index 80ed7f3ced7..f9ad52dd198 100644 --- a/src/renderer/src/components/right-sidebar/ai-vault-session-projects.ts +++ b/src/renderer/src/components/right-sidebar/ai-vault-session-projects.ts @@ -6,7 +6,9 @@ import { } from '../../../../shared/execution-host' import type { ProjectHostSetupProjection } from '../../../../shared/project-host-setup-projection' import type { AiVaultSession } from '../../../../shared/ai-vault-types' -import type { ProjectHostSetup, Repo, Worktree } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { createNormalizedPathInsideOrEqualMatcher, normalizeRuntimePathForComparison diff --git a/src/renderer/src/components/right-sidebar/ai-vault-session-resume.test.ts b/src/renderer/src/components/right-sidebar/ai-vault-session-resume.test.ts index 97803382577..583e668cd2a 100644 --- a/src/renderer/src/components/right-sidebar/ai-vault-session-resume.test.ts +++ b/src/renderer/src/components/right-sidebar/ai-vault-session-resume.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { AiVaultSessionWorktreeInfo } from './ai-vault-session-worktree' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import { resolveAiVaultSessionLaunchTarget } from './ai-vault-session-launch-actions' diff --git a/src/renderer/src/components/right-sidebar/ai-vault-session-resume.ts b/src/renderer/src/components/right-sidebar/ai-vault-session-resume.ts index 9465144b705..d021fc66b1f 100644 --- a/src/renderer/src/components/right-sidebar/ai-vault-session-resume.ts +++ b/src/renderer/src/components/right-sidebar/ai-vault-session-resume.ts @@ -1,4 +1,5 @@ -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { canResumeAiVaultSessionOnTarget, getAiVaultResumeWorkspaceExecutionHostId, diff --git a/src/renderer/src/components/right-sidebar/ai-vault-session-worktree-map.test.tsx b/src/renderer/src/components/right-sidebar/ai-vault-session-worktree-map.test.tsx index 90ea7cd900c..cc71cc9b55a 100644 --- a/src/renderer/src/components/right-sidebar/ai-vault-session-worktree-map.test.tsx +++ b/src/renderer/src/components/right-sidebar/ai-vault-session-worktree-map.test.tsx @@ -2,7 +2,8 @@ import { renderHook } from '@testing-library/react' import { describe, expect, it } from 'vitest' import type { AiVaultSession } from '../../../../shared/ai-vault-types' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { resolveAiVaultSessionWorktreeDisplay, useAiVaultSessionWorktreeMap, diff --git a/src/renderer/src/components/right-sidebar/ai-vault-session-worktree.test.ts b/src/renderer/src/components/right-sidebar/ai-vault-session-worktree.test.ts index 7f5f0d07b0c..5ceeb12523f 100644 --- a/src/renderer/src/components/right-sidebar/ai-vault-session-worktree.test.ts +++ b/src/renderer/src/components/right-sidebar/ai-vault-session-worktree.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import type { AiVaultSession } from '../../../../shared/ai-vault-types' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { aiVaultWorktreeCompactPath, aiVaultWorktreeJumpTooltip, diff --git a/src/renderer/src/components/right-sidebar/ai-vault-session-worktree.ts b/src/renderer/src/components/right-sidebar/ai-vault-session-worktree.ts index a82a68c8f1e..15e489d1b44 100644 --- a/src/renderer/src/components/right-sidebar/ai-vault-session-worktree.ts +++ b/src/renderer/src/components/right-sidebar/ai-vault-session-worktree.ts @@ -13,7 +13,8 @@ import { normalizeRuntimePathForComparison } from '../../../../shared/cross-platform-path' import type { AiVaultSession } from '../../../../shared/ai-vault-types' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { aiVaultWorktreeCompactPath } from './ai-vault-session-worktree-affordances' export { diff --git a/src/renderer/src/components/right-sidebar/buildSourceControlAgentDeliveryPlan.ts b/src/renderer/src/components/right-sidebar/buildSourceControlAgentDeliveryPlan.ts index 7093101eeee..10d17bd5dc8 100644 --- a/src/renderer/src/components/right-sidebar/buildSourceControlAgentDeliveryPlan.ts +++ b/src/renderer/src/components/right-sidebar/buildSourceControlAgentDeliveryPlan.ts @@ -1,6 +1,6 @@ import { planSourceControlAgentActionLaunch } from '@/lib/source-control-agent-action-plan' import { useAppStore } from '@/store' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { SourceControlAgentActionDeliveryPlanState } from './SourceControlAgentActionDialogForm' import { buildSourceControlAgentConnectionErrorPlan } from './source-control-agent-action-dialog-support' import { resolveInitialNativeChatSessionOptions } from '@/components/native-chat/native-chat-launch-session-options' diff --git a/src/renderer/src/components/right-sidebar/checks-list-expanded-details.test.tsx b/src/renderer/src/components/right-sidebar/checks-list-expanded-details.test.tsx index 8555d53b345..4fac43a4ea1 100644 --- a/src/renderer/src/components/right-sidebar/checks-list-expanded-details.test.tsx +++ b/src/renderer/src/components/right-sidebar/checks-list-expanded-details.test.tsx @@ -4,7 +4,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { TooltipProvider } from '@/components/ui/tooltip' -import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/github/check-types' import { ChecksList } from './checks-panel-content' globalThis.IS_REACT_ACT_ENVIRONMENT = true diff --git a/src/renderer/src/components/right-sidebar/checks-panel-async-result-key.ts b/src/renderer/src/components/right-sidebar/checks-panel-async-result-key.ts index fc95acb9a7c..7cdc9326a36 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-async-result-key.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-async-result-key.ts @@ -1,4 +1,4 @@ -import type { GitHubOwnerRepo } from '../../../../shared/types' +import type { GitHubOwnerRepo } from '../../../../shared/github/pull-request-types' import { githubRepoIdentityKey } from '../../../../shared/github/repository-identity-key' function normalizedPRRepoIdentity(prRepo?: GitHubOwnerRepo | null): string { diff --git a/src/renderer/src/components/right-sidebar/checks-panel-content.test.tsx b/src/renderer/src/components/right-sidebar/checks-panel-content.test.tsx index 69fd873c89b..78f6eac58f7 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-content.test.tsx +++ b/src/renderer/src/components/right-sidebar/checks-panel-content.test.tsx @@ -2,7 +2,9 @@ import React from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { describe, expect, it } from 'vitest' import { TooltipProvider } from '@/components/ui/tooltip' -import type { PRCheckDetail, PRComment, PRInfo } from '../../../../shared/types' +import type { PRCheckDetail } from '../../../../shared/github/check-types' +import type { PRComment } from '../../../../shared/github/comment-types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' import { buildMergeabilityRecalculationCommands, CheckJobLogTail, diff --git a/src/renderer/src/components/right-sidebar/checks-panel-content.tsx b/src/renderer/src/components/right-sidebar/checks-panel-content.tsx index ad0824e424f..222fb8f0a0a 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-content.tsx +++ b/src/renderer/src/components/right-sidebar/checks-panel-content.tsx @@ -88,16 +88,14 @@ import { type PRCommentPresentationClasses } from './pr-comment-presentation' import type { GitLabProjectRef } from '../../../../shared/gitlab-types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/github/check-types' +import type { GitHubReactionContent, PRComment } from '../../../../shared/github/comment-types' import type { - PRInfo, - PRCheckDetail, - PRCheckRunDetails, - PRComment, - GitHubReactionContent, GitHubRepositoryIdentity, PRConflictSummary, + PRInfo, PRMergeableState -} from '../../../../shared/types' +} from '../../../../shared/github/pull-request-types' import { useCheckDetailsResize } from './check-details-resize' import { RightPanelCommentComposer, diff --git a/src/renderer/src/components/right-sidebar/checks-panel-git-status-snapshot.ts b/src/renderer/src/components/right-sidebar/checks-panel-git-status-snapshot.ts index 78063f3b211..22078dfda37 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-git-status-snapshot.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-git-status-snapshot.ts @@ -1,4 +1,5 @@ -import type { GitPushTarget, GitStatusEntry, GitUpstreamStatus } from '../../../../shared/types' +import type { GitStatusEntry, GitUpstreamStatus } from '../../../../shared/git-status-types' +import type { GitPushTarget } from '../../../../shared/worktree/types' export type ChecksPanelGitStatusContextInput = { repoId: string | null | undefined diff --git a/src/renderer/src/components/right-sidebar/checks-panel-polling.test.ts b/src/renderer/src/components/right-sidebar/checks-panel-polling.test.ts index 55e453ded19..c4a8568526a 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-polling.test.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-polling.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { PRCheckDetail } from '../../../../shared/types' +import type { PRCheckDetail } from '../../../../shared/github/check-types' import { CHECKS_PANEL_BASE_POLL_INTERVAL_MS, CHECKS_PANEL_MAX_POLL_INTERVAL_MS, diff --git a/src/renderer/src/components/right-sidebar/checks-panel-polling.ts b/src/renderer/src/components/right-sidebar/checks-panel-polling.ts index 42573079584..89d234a745e 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-polling.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-polling.ts @@ -1,4 +1,4 @@ -import type { PRCheckDetail } from '../../../../shared/types' +import type { PRCheckDetail } from '../../../../shared/github/check-types' export const CHECKS_PANEL_BASE_POLL_INTERVAL_MS = 30_000 export const CHECKS_PANEL_MAX_POLL_INTERVAL_MS = 120_000 diff --git a/src/renderer/src/components/right-sidebar/checks-panel-pr-refresh-request.ts b/src/renderer/src/components/right-sidebar/checks-panel-pr-refresh-request.ts index 2ade777964d..3558b4bad06 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-pr-refresh-request.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-pr-refresh-request.ts @@ -1,5 +1,5 @@ import type { HostedReviewProvider } from '../../../../shared/hosted-review' -import type { GitHubPRRefreshReason } from '../../../../shared/types' +import type { GitHubPRRefreshReason } from '../../../../shared/github/pull-request-refresh-types' type ChecksPanelPRRefreshRequestInput = { cachedHasPR: boolean | null diff --git a/src/renderer/src/components/right-sidebar/checks-panel-review-copy.ts b/src/renderer/src/components/right-sidebar/checks-panel-review-copy.ts index b4486bec769..33b1d0f9168 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-review-copy.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-review-copy.ts @@ -1,4 +1,4 @@ -import type { GitHubPRRefreshSkippedReason } from '../../../../shared/types' +import type { GitHubPRRefreshSkippedReason } from '../../../../shared/github/pull-request-refresh-types' import { translate } from '@/i18n/i18n' import { getGitHubUnavailableEmptyStateCopy } from './github-refresh-error-copy' import { diff --git a/src/renderer/src/components/right-sidebar/checks-panel-review-creation.ts b/src/renderer/src/components/right-sidebar/checks-panel-review-creation.ts index d0534124397..7c4260463fa 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-review-creation.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-review-creation.ts @@ -3,7 +3,7 @@ import type { HostedReviewCreationEligibility, HostedReviewLookupOutcome } from '../../../../shared/hosted-review' -import type { PRRefreshErrorType } from '../../../../shared/types' +import type { PRRefreshErrorType } from '../../../../shared/github/pull-request-refresh-types' import { normalizeHostedReviewBaseRef } from '../../../../shared/hosted-review-refs' import type { ChecksPanelReviewLookup } from './checks-panel-review-lookup-authority' // Single source of truth for the hard-refresh error set, shared with the diff --git a/src/renderer/src/components/right-sidebar/checks-panel-review-state-model.ts b/src/renderer/src/components/right-sidebar/checks-panel-review-state-model.ts index 4b43615ebd9..647f9303190 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-review-state-model.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-review-state-model.ts @@ -1,5 +1,8 @@ import type { HostedReviewCreationBlockedReason } from '../../../../shared/hosted-review' -import type { GitHubPRRefreshSkippedReason, PRRefreshErrorType } from '../../../../shared/types' +import type { + GitHubPRRefreshSkippedReason, + PRRefreshErrorType +} from '../../../../shared/github/pull-request-refresh-types' import type { ChecksPanelReviewLookup } from './checks-panel-review-lookup-authority' /** diff --git a/src/renderer/src/components/right-sidebar/checks-panel-review.test.ts b/src/renderer/src/components/right-sidebar/checks-panel-review.test.ts index decd6585c8a..6f741b5889f 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-review.test.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-review.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { gitHubPRToChecksPanelReview, selectChecksPanelReview } from './checks-panel-review' -import type { PRInfo } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' function makePR(overrides: Partial = {}): PRInfo { diff --git a/src/renderer/src/components/right-sidebar/checks-panel-review.ts b/src/renderer/src/components/right-sidebar/checks-panel-review.ts index a51ad79079e..17f34421174 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-review.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-review.ts @@ -1,4 +1,4 @@ -import type { PRInfo } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' import { hostedReviewInfoFromGitHubPRInfo } from '../../../../shared/hosted-review-github' diff --git a/src/renderer/src/components/right-sidebar/checks-panel-terminal-worktree.test.ts b/src/renderer/src/components/right-sidebar/checks-panel-terminal-worktree.test.ts index fe817238eb9..5ca81c860da 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-terminal-worktree.test.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-terminal-worktree.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { resolveChecksPanelTerminalPtyId, resolveChecksPanelWorktreeFromTerminalCwd diff --git a/src/renderer/src/components/right-sidebar/checks-panel-terminal-worktree.ts b/src/renderer/src/components/right-sidebar/checks-panel-terminal-worktree.ts index ab92bbd1469..6aedcdab0dd 100644 --- a/src/renderer/src/components/right-sidebar/checks-panel-terminal-worktree.ts +++ b/src/renderer/src/components/right-sidebar/checks-panel-terminal-worktree.ts @@ -5,7 +5,8 @@ import { isRuntimePathAbsolute, normalizeRuntimePathForComparison } from '../../../../shared/cross-platform-path' -import type { TerminalLayoutSnapshot, Worktree } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' type TerminalPtyContext = { activeTabId: string | null diff --git a/src/renderer/src/components/right-sidebar/discard-all-sequence.test.ts b/src/renderer/src/components/right-sidebar/discard-all-sequence.test.ts index e808af6da27..0faedae8114 100644 --- a/src/renderer/src/components/right-sidebar/discard-all-sequence.test.ts +++ b/src/renderer/src/components/right-sidebar/discard-all-sequence.test.ts @@ -8,7 +8,7 @@ import { runDiscardAllForArea, type DiscardAllArea } from './discard-all-sequence' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' function entry(partial: Partial & { path: string }): GitStatusEntry { return { diff --git a/src/renderer/src/components/right-sidebar/discard-all-sequence.ts b/src/renderer/src/components/right-sidebar/discard-all-sequence.ts index c52854fcd91..24f0093c6e1 100644 --- a/src/renderer/src/components/right-sidebar/discard-all-sequence.ts +++ b/src/renderer/src/components/right-sidebar/discard-all-sequence.ts @@ -1,4 +1,4 @@ -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' export type DiscardAllArea = 'staged' | 'unstaged' | 'untracked' diff --git a/src/renderer/src/components/right-sidebar/file-explorer-add-project-action.test.ts b/src/renderer/src/components/right-sidebar/file-explorer-add-project-action.test.ts index 3f36fb04672..86ff9cef435 100644 --- a/src/renderer/src/components/right-sidebar/file-explorer-add-project-action.test.ts +++ b/src/renderer/src/components/right-sidebar/file-explorer-add-project-action.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import type { TreeNode } from './file-explorer-types' import { buildAddProjectFromFolderModalData, diff --git a/src/renderer/src/components/right-sidebar/file-explorer-add-project-action.ts b/src/renderer/src/components/right-sidebar/file-explorer-add-project-action.ts index b8af63bcb6c..162dcac7575 100644 --- a/src/renderer/src/components/right-sidebar/file-explorer-add-project-action.ts +++ b/src/renderer/src/components/right-sidebar/file-explorer-add-project-action.ts @@ -1,6 +1,6 @@ import { isFolderRepo } from '../../../../shared/repo-kind' import { getRepoExecutionHostId, parseExecutionHostId } from '../../../../shared/execution-host' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import type { TreeNode } from './file-explorer-types' export type AddProjectFromFolderModalData = { diff --git a/src/renderer/src/components/right-sidebar/file-explorer-directory-listing.ts b/src/renderer/src/components/right-sidebar/file-explorer-directory-listing.ts index eb8f7142846..d904c910e0b 100644 --- a/src/renderer/src/components/right-sidebar/file-explorer-directory-listing.ts +++ b/src/renderer/src/components/right-sidebar/file-explorer-directory-listing.ts @@ -1,5 +1,5 @@ import { joinPath, normalizeRelativePath } from '@/lib/path' -import type { DirEntry } from '../../../../shared/types' +import type { DirEntry } from '../../../../shared/filesystem-entry-types' import { sortDirEntries } from '../../../../shared/file-name-sort' import { readRuntimeDirectory } from '@/runtime/runtime-file-client' import type { FileExplorerOperationOwner, TreeNode } from './file-explorer-types' diff --git a/src/renderer/src/components/right-sidebar/file-explorer-entries.ts b/src/renderer/src/components/right-sidebar/file-explorer-entries.ts index dfb8591fd2f..4e5b6e7b423 100644 --- a/src/renderer/src/components/right-sidebar/file-explorer-entries.ts +++ b/src/renderer/src/components/right-sidebar/file-explorer-entries.ts @@ -1,4 +1,4 @@ -import type { DirEntry } from '../../../../shared/types' +import type { DirEntry } from '../../../../shared/filesystem-entry-types' export function shouldIncludeFileExplorerEntry(entry: DirEntry): boolean { return entry.name !== '.git' && entry.name !== 'node_modules' diff --git a/src/renderer/src/components/right-sidebar/file-explorer-expanded-dirs-refresh.test.ts b/src/renderer/src/components/right-sidebar/file-explorer-expanded-dirs-refresh.test.ts index b3fdc583522..cbb6b6bb25f 100644 --- a/src/renderer/src/components/right-sidebar/file-explorer-expanded-dirs-refresh.test.ts +++ b/src/renderer/src/components/right-sidebar/file-explorer-expanded-dirs-refresh.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import type { SetStateAction } from 'react' -import type { DirEntry } from '../../../../shared/types' +import type { DirEntry } from '../../../../shared/filesystem-entry-types' import type { DirCache } from './file-explorer-types' import { createFileExplorerDirLoadTracker } from './file-explorer-dir-load-tracker' import { refreshFileExplorerExpandedDirs } from './file-explorer-expanded-dirs-refresh' diff --git a/src/renderer/src/components/right-sidebar/file-explorer-operation-generation.test.ts b/src/renderer/src/components/right-sidebar/file-explorer-operation-generation.test.ts index 0a6c2606b01..d5bb840feeb 100644 --- a/src/renderer/src/components/right-sidebar/file-explorer-operation-generation.test.ts +++ b/src/renderer/src/components/right-sidebar/file-explorer-operation-generation.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect, it } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { useAppStore } from '@/store' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' diff --git a/src/renderer/src/components/right-sidebar/file-explorer-reset.ts b/src/renderer/src/components/right-sidebar/file-explorer-reset.ts index 9ed03fecda9..83b17724310 100644 --- a/src/renderer/src/components/right-sidebar/file-explorer-reset.ts +++ b/src/renderer/src/components/right-sidebar/file-explorer-reset.ts @@ -1,4 +1,4 @@ -import type { RightSidebarExplorerView } from '../../../../shared/types' +import type { RightSidebarExplorerView } from '../../../../shared/ui-chrome-types' export function getVisibleFileExplorerWorktreePath({ explorerView, diff --git a/src/renderer/src/components/right-sidebar/file-explorer-runtime-owner.ts b/src/renderer/src/components/right-sidebar/file-explorer-runtime-owner.ts index eddc593d31f..a98a38d4edc 100644 --- a/src/renderer/src/components/right-sidebar/file-explorer-runtime-owner.ts +++ b/src/renderer/src/components/right-sidebar/file-explorer-runtime-owner.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { getSettingsForWorktreeRuntimeOwner } from '@/lib/worktree-runtime-owner' import { useAppStore } from '@/store' diff --git a/src/renderer/src/components/right-sidebar/file-explorer-watch-drive-root.test.ts b/src/renderer/src/components/right-sidebar/file-explorer-watch-drive-root.test.ts index 259d3da312c..d7b1380aefa 100644 --- a/src/renderer/src/components/right-sidebar/file-explorer-watch-drive-root.test.ts +++ b/src/renderer/src/components/right-sidebar/file-explorer-watch-drive-root.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { FsChangeEvent } from '../../../../shared/types' +import type { FsChangeEvent } from '../../../../shared/filesystem-entry-types' import type { DirCache } from './file-explorer-types' import { processFileExplorerFsPayload } from './file-explorer-watch-reconcile' diff --git a/src/renderer/src/components/right-sidebar/file-explorer-watch-reconcile.ts b/src/renderer/src/components/right-sidebar/file-explorer-watch-reconcile.ts index 538657edb76..1d3905911ef 100644 --- a/src/renderer/src/components/right-sidebar/file-explorer-watch-reconcile.ts +++ b/src/renderer/src/components/right-sidebar/file-explorer-watch-reconcile.ts @@ -1,5 +1,5 @@ import type { Dispatch, SetStateAction } from 'react' -import type { FsChangedPayload } from '../../../../shared/types' +import type { FsChangedPayload } from '../../../../shared/filesystem-entry-types' import type { DirCache } from './file-explorer-types' import { isPathInsideOrEqual, diff --git a/src/renderer/src/components/right-sidebar/folder-workspace-attached-worktrees.test.ts b/src/renderer/src/components/right-sidebar/folder-workspace-attached-worktrees.test.ts index ed765b0886d..80bf23187a6 100644 --- a/src/renderer/src/components/right-sidebar/folder-workspace-attached-worktrees.test.ts +++ b/src/renderer/src/components/right-sidebar/folder-workspace-attached-worktrees.test.ts @@ -1,10 +1,7 @@ import { describe, expect, it } from 'vitest' -import type { - FolderWorkspace, - Worktree, - WorktreeLineage, - WorkspaceLineage -} from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceKey, worktreeWorkspaceKey } from '../../../../shared/workspace-scope' import { LOCAL_EXECUTION_HOST_ID, toSshExecutionHostId } from '../../../../shared/execution-host' import { getAttachedWorktreesForFolderWorkspace } from './folder-workspace-attached-worktrees' diff --git a/src/renderer/src/components/right-sidebar/folder-workspace-attached-worktrees.ts b/src/renderer/src/components/right-sidebar/folder-workspace-attached-worktrees.ts index ec65782b488..577f21aa1f1 100644 --- a/src/renderer/src/components/right-sidebar/folder-workspace-attached-worktrees.ts +++ b/src/renderer/src/components/right-sidebar/folder-workspace-attached-worktrees.ts @@ -1,10 +1,7 @@ import { folderWorkspaceKey, parseWorkspaceKey } from '../../../../shared/workspace-scope' -import type { - FolderWorkspace, - Worktree, - WorktreeLineage, - WorkspaceLineage -} from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { compareWorktreeDisplayName } from '@/lib/worktree-display-name-order' import { getProjectedWorktreeLineageChildrenByParentId } from '../sidebar/worktree-lineage-projection' diff --git a/src/renderer/src/components/right-sidebar/fork-push-target-label.test.ts b/src/renderer/src/components/right-sidebar/fork-push-target-label.test.ts index 17c0992b3e3..f2e4ccf0d60 100644 --- a/src/renderer/src/components/right-sidebar/fork-push-target-label.test.ts +++ b/src/renderer/src/components/right-sidebar/fork-push-target-label.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GitPushTarget } from '../../../../shared/types' +import type { GitPushTarget } from '../../../../shared/worktree/types' import { describeForkPushTarget } from './fork-push-target-label' function target(overrides: Partial): GitPushTarget { diff --git a/src/renderer/src/components/right-sidebar/fork-push-target-label.ts b/src/renderer/src/components/right-sidebar/fork-push-target-label.ts index 7967dcf152a..daff8d89b3c 100644 --- a/src/renderer/src/components/right-sidebar/fork-push-target-label.ts +++ b/src/renderer/src/components/right-sidebar/fork-push-target-label.ts @@ -1,4 +1,4 @@ -import type { GitPushTarget } from '../../../../shared/types' +import type { GitPushTarget } from '../../../../shared/worktree/types' // Why: a fork-PR worktree pushes to a contributor's fork, not origin. Render // "owner:branch" from the fork remote URL when available so the maintainer can diff --git a/src/renderer/src/components/right-sidebar/git-status-file-watch-refresh.ts b/src/renderer/src/components/right-sidebar/git-status-file-watch-refresh.ts index 034cc9e570c..8ab2492f4aa 100644 --- a/src/renderer/src/components/right-sidebar/git-status-file-watch-refresh.ts +++ b/src/renderer/src/components/right-sidebar/git-status-file-watch-refresh.ts @@ -7,11 +7,11 @@ import { normalizeRuntimePathForComparison, relativePathInsideRoot } from '../../../../shared/cross-platform-path' +import type { FsChangedPayload } from '../../../../shared/filesystem-entry-types' import type { ActiveRightSidebarTab, - FsChangedPayload, RightSidebarExplorerView -} from '../../../../shared/types' +} from '../../../../shared/ui-chrome-types' import type { OpenFile } from '@/store/slices/editor' import { ORCA_WORKTREE_FILE_CHANGE_EVENT, diff --git a/src/renderer/src/components/right-sidebar/git-status-refresh-branch-line-total.test.ts b/src/renderer/src/components/right-sidebar/git-status-refresh-branch-line-total.test.ts index 3437d8d227a..4727ebd173b 100644 --- a/src/renderer/src/components/right-sidebar/git-status-refresh-branch-line-total.test.ts +++ b/src/renderer/src/components/right-sidebar/git-status-refresh-branch-line-total.test.ts @@ -9,7 +9,7 @@ import { refreshGitStatusForWorktreeStrict, type GitStatusRefreshDeps } from './git-status-refresh' -import type { GitStatusResult } from '../../../../shared/types' +import type { GitStatusResult } from '../../../../shared/git-status-types' const MERGE_BASE = '1f3c0d9a5b6e7f8091a2b3c4d5e6f708192a3b4c' diff --git a/src/renderer/src/components/right-sidebar/git-status-refresh.test.ts b/src/renderer/src/components/right-sidebar/git-status-refresh.test.ts index 2a3f8ba564e..dd03ae54f87 100644 --- a/src/renderer/src/components/right-sidebar/git-status-refresh.test.ts +++ b/src/renderer/src/components/right-sidebar/git-status-refresh.test.ts @@ -5,7 +5,7 @@ import { refreshGitStatusForWorktreeStrict, type GitStatusRefreshDeps } from './git-status-refresh' -import type { GitStatusResult, GitUpstreamStatus } from '../../../../shared/types' +import type { GitStatusResult, GitUpstreamStatus } from '../../../../shared/git-status-types' function makeDeps(): GitStatusRefreshDeps { return { diff --git a/src/renderer/src/components/right-sidebar/git-status-refresh.ts b/src/renderer/src/components/right-sidebar/git-status-refresh.ts index 50f2cf068c7..ec654b2c175 100644 --- a/src/renderer/src/components/right-sidebar/git-status-refresh.ts +++ b/src/renderer/src/components/right-sidebar/git-status-refresh.ts @@ -6,12 +6,9 @@ import { invalidateAutomaticPushTargetUpstreamStatusCache, storeCachedAutomaticPushTargetUpstreamStatus } from './push-target-upstream-refresh-cache' -import type { - GitPushTarget, - GitStatusResult, - GitUpstreamStatus, - GlobalSettings -} from '../../../../shared/types' +import type { GitStatusResult, GitUpstreamStatus } from '../../../../shared/git-status-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { GitPushTarget } from '../../../../shared/worktree/types' import { beginAutomaticUpstreamRefresh, beginStrictUpstreamRefresh, diff --git a/src/renderer/src/components/right-sidebar/github-pr-stack-confirmation.ts b/src/renderer/src/components/right-sidebar/github-pr-stack-confirmation.ts index e219f68952d..e3e1e84f1a9 100644 --- a/src/renderer/src/components/right-sidebar/github-pr-stack-confirmation.ts +++ b/src/renderer/src/components/right-sidebar/github-pr-stack-confirmation.ts @@ -1,6 +1,9 @@ import type { ConfirmationDialogOptions } from '@/components/confirmation-dialog-context' import { translate } from '@/i18n/i18n' -import type { GitHubPRMergeMethod, GitHubPRStack } from '../../../../shared/types' +import type { + GitHubPRMergeMethod, + GitHubPRStack +} from '../../../../shared/github/pull-request-types' import { getGitHubPRStackMergeScope } from './github-pr-stack-merge' export function buildGitHubPRStackMergeConfirmation({ diff --git a/src/renderer/src/components/right-sidebar/github-pr-stack-merge.test.ts b/src/renderer/src/components/right-sidebar/github-pr-stack-merge.test.ts index be889a5eb74..44145a61bc0 100644 --- a/src/renderer/src/components/right-sidebar/github-pr-stack-merge.test.ts +++ b/src/renderer/src/components/right-sidebar/github-pr-stack-merge.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GitHubPRStack } from '../../../../shared/types' +import type { GitHubPRStack } from '../../../../shared/github/pull-request-types' import { getGitHubPRStackMergeBlocker, getGitHubPRStackMergeScope, diff --git a/src/renderer/src/components/right-sidebar/github-pr-stack-merge.ts b/src/renderer/src/components/right-sidebar/github-pr-stack-merge.ts index 8eacfb0380b..5d127d5f736 100644 --- a/src/renderer/src/components/right-sidebar/github-pr-stack-merge.ts +++ b/src/renderer/src/components/right-sidebar/github-pr-stack-merge.ts @@ -1,4 +1,7 @@ -import type { GitHubPRStack, GitHubPRStackEntry } from '../../../../shared/types' +import type { + GitHubPRStack, + GitHubPRStackEntry +} from '../../../../shared/github/pull-request-types' import { translate } from '@/i18n/i18n' export type GitHubPRStackMergeScope = { diff --git a/src/renderer/src/components/right-sidebar/github-refresh-error-copy.ts b/src/renderer/src/components/right-sidebar/github-refresh-error-copy.ts index 298c892e5b0..b22ed9ce23c 100644 --- a/src/renderer/src/components/right-sidebar/github-refresh-error-copy.ts +++ b/src/renderer/src/components/right-sidebar/github-refresh-error-copy.ts @@ -1,4 +1,4 @@ -import type { PRRefreshUpstreamErrorType } from '../../../../shared/types' +import type { PRRefreshUpstreamErrorType } from '../../../../shared/github/pull-request-refresh-types' import { translate } from '@/i18n/i18n' export type ChecksPanelErrorCopy = { title: string; description: string } diff --git a/src/renderer/src/components/right-sidebar/hosted-review-github-actions.ts b/src/renderer/src/components/right-sidebar/hosted-review-github-actions.ts index 2481e5b4293..8940f8adf5b 100644 --- a/src/renderer/src/components/right-sidebar/hosted-review-github-actions.ts +++ b/src/renderer/src/components/right-sidebar/hosted-review-github-actions.ts @@ -1,4 +1,5 @@ -import type { GitHubPRMergeMethod, PRInfo, Repo } from '../../../../shared/types' +import type { GitHubPRMergeMethod, PRInfo } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' import { getRepoExecutionHostId, parseExecutionHostId } from '../../../../shared/execution-host' import { callRuntimeRpc, type RuntimeClientTarget } from '@/runtime/runtime-rpc-client' diff --git a/src/renderer/src/components/right-sidebar/parent-pr-checks-github-pr-cache.ts b/src/renderer/src/components/right-sidebar/parent-pr-checks-github-pr-cache.ts index 8487c6619ef..ac8d9223fc4 100644 --- a/src/renderer/src/components/right-sidebar/parent-pr-checks-github-pr-cache.ts +++ b/src/renderer/src/components/right-sidebar/parent-pr-checks-github-pr-cache.ts @@ -1,5 +1,7 @@ import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { PRInfo, Repo, Worktree } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { LOCAL_EXECUTION_HOST_ID, normalizeExecutionHostId diff --git a/src/renderer/src/components/right-sidebar/parent-pr-checks-hosted-review-cache.ts b/src/renderer/src/components/right-sidebar/parent-pr-checks-hosted-review-cache.ts index e6db09a2736..854af41074a 100644 --- a/src/renderer/src/components/right-sidebar/parent-pr-checks-hosted-review-cache.ts +++ b/src/renderer/src/components/right-sidebar/parent-pr-checks-hosted-review-cache.ts @@ -1,5 +1,6 @@ import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { PRInfo, Worktree } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getWorktreeCardPrDisplay, isCachedMergedBranchPRCurrentForWorktree diff --git a/src/renderer/src/components/right-sidebar/parent-pr-checks-projection-selector.test.ts b/src/renderer/src/components/right-sidebar/parent-pr-checks-projection-selector.test.ts index 75c288da7fd..025817b1160 100644 --- a/src/renderer/src/components/right-sidebar/parent-pr-checks-projection-selector.test.ts +++ b/src/renderer/src/components/right-sidebar/parent-pr-checks-projection-selector.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it, vi } from 'vitest' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getHostedReviewCacheKey } from '@/store/slices/hosted-review' import { buildParentPrChecksProjection } from './parent-pr-checks-rows' import { createParentPrChecksProjectionSelector } from './parent-pr-checks-projection-selector' diff --git a/src/renderer/src/components/right-sidebar/parent-pr-checks-refresh.test.ts b/src/renderer/src/components/right-sidebar/parent-pr-checks-refresh.test.ts index 9cf77aa2565..df7f6ff4e2d 100644 --- a/src/renderer/src/components/right-sidebar/parent-pr-checks-refresh.test.ts +++ b/src/renderer/src/components/right-sidebar/parent-pr-checks-refresh.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' import { getParentPrChecksRefreshCandidates, diff --git a/src/renderer/src/components/right-sidebar/parent-pr-checks-refresh.ts b/src/renderer/src/components/right-sidebar/parent-pr-checks-refresh.ts index 2404950b422..edde3fcd750 100644 --- a/src/renderer/src/components/right-sidebar/parent-pr-checks-refresh.ts +++ b/src/renderer/src/components/right-sidebar/parent-pr-checks-refresh.ts @@ -1,9 +1,7 @@ -import type { - GitHubRepositoryIdentity, - PRCheckDetail, - Repo, - Worktree -} from '../../../../shared/types' +import type { PRCheckDetail } from '../../../../shared/github/check-types' +import type { GitHubRepositoryIdentity } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' import { isFolderRepo } from '../../../../shared/repo-kind' import { getWorktreeGitIdentityDisplay } from '@/lib/worktree-git-identity-display' diff --git a/src/renderer/src/components/right-sidebar/parent-pr-checks-row-status.ts b/src/renderer/src/components/right-sidebar/parent-pr-checks-row-status.ts index 4f48f655cf6..478ccec9a49 100644 --- a/src/renderer/src/components/right-sidebar/parent-pr-checks-row-status.ts +++ b/src/renderer/src/components/right-sidebar/parent-pr-checks-row-status.ts @@ -1,4 +1,4 @@ -import type { CheckStatus } from '../../../../shared/types' +import type { CheckStatus } from '../../../../shared/github/pull-request-types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' import { translate } from '@/i18n/i18n' import type { diff --git a/src/renderer/src/components/right-sidebar/parent-pr-checks-row-types.ts b/src/renderer/src/components/right-sidebar/parent-pr-checks-row-types.ts index 18fc4459da6..2904b5565fc 100644 --- a/src/renderer/src/components/right-sidebar/parent-pr-checks-row-types.ts +++ b/src/renderer/src/components/right-sidebar/parent-pr-checks-row-types.ts @@ -1,11 +1,11 @@ +import type { PRCheckDetail } from '../../../../shared/github/check-types' import type { CheckStatus, GitHubRepositoryIdentity, - PRCheckDetail, - PRInfo, - Repo, - Worktree -} from '../../../../shared/types' + PRInfo +} from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' import type { AppState } from '@/store' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/right-sidebar/parent-pr-checks-rows.test.ts b/src/renderer/src/components/right-sidebar/parent-pr-checks-rows.test.ts index c9e2ebc18cc..4a071f6638e 100644 --- a/src/renderer/src/components/right-sidebar/parent-pr-checks-rows.test.ts +++ b/src/renderer/src/components/right-sidebar/parent-pr-checks-rows.test.ts @@ -1,5 +1,8 @@ import { describe, expect, it } from 'vitest' -import type { PRCheckDetail, PRInfo, Repo, Worktree } from '../../../../shared/types' +import type { PRCheckDetail } from '../../../../shared/github/check-types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' import { getHostedReviewCacheKey } from '@/store/slices/hosted-review' import { diff --git a/src/renderer/src/components/right-sidebar/parent-pr-checks-rows.ts b/src/renderer/src/components/right-sidebar/parent-pr-checks-rows.ts index 72f4ab921bc..10d0367f620 100644 --- a/src/renderer/src/components/right-sidebar/parent-pr-checks-rows.ts +++ b/src/renderer/src/components/right-sidebar/parent-pr-checks-rows.ts @@ -1,4 +1,6 @@ -import type { PRCheckDetail, Repo, Worktree } from '../../../../shared/types' +import type { PRCheckDetail } from '../../../../shared/github/check-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' import { hostedReviewInfoFromGitHubPRInfo } from '../../../../shared/hosted-review-github' import { isFolderRepo } from '../../../../shared/repo-kind' diff --git a/src/renderer/src/components/right-sidebar/pr-comment-fixing-reply-body.ts b/src/renderer/src/components/right-sidebar/pr-comment-fixing-reply-body.ts index 757c5abc303..5122a653ef9 100644 --- a/src/renderer/src/components/right-sidebar/pr-comment-fixing-reply-body.ts +++ b/src/renderer/src/components/right-sidebar/pr-comment-fixing-reply-body.ts @@ -1,4 +1,4 @@ -import type { PRComment } from '../../../../shared/types' +import type { PRComment } from '../../../../shared/github/comment-types' /** Posted when a selected review comment is sent to AI. */ export const PR_COMMENT_AI_FIXING_REPLY = 'Fixing. Will be in the next commit' diff --git a/src/renderer/src/components/right-sidebar/pr-comment-thread-resolution.test.ts b/src/renderer/src/components/right-sidebar/pr-comment-thread-resolution.test.ts index 5cbd180ed3c..2ee6834ecb6 100644 --- a/src/renderer/src/components/right-sidebar/pr-comment-thread-resolution.test.ts +++ b/src/renderer/src/components/right-sidebar/pr-comment-thread-resolution.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRComment } from '../../../../shared/types' +import type { PRComment } from '../../../../shared/github/comment-types' import { markPRCommentThreadResolved, restorePRCommentThreadSnapshot diff --git a/src/renderer/src/components/right-sidebar/pr-comment-thread-resolution.ts b/src/renderer/src/components/right-sidebar/pr-comment-thread-resolution.ts index 2af2a42c3d0..eb5b947f77a 100644 --- a/src/renderer/src/components/right-sidebar/pr-comment-thread-resolution.ts +++ b/src/renderer/src/components/right-sidebar/pr-comment-thread-resolution.ts @@ -1,4 +1,4 @@ -import type { PRComment } from '../../../../shared/types' +import type { PRComment } from '../../../../shared/github/comment-types' export function markPRCommentThreadResolved( comments: PRComment[], diff --git a/src/renderer/src/components/right-sidebar/pr-comments-ai-launch-ack.test.ts b/src/renderer/src/components/right-sidebar/pr-comments-ai-launch-ack.test.ts index 3ae9663f314..a0b5a0b19e2 100644 --- a/src/renderer/src/components/right-sidebar/pr-comments-ai-launch-ack.test.ts +++ b/src/renderer/src/components/right-sidebar/pr-comments-ai-launch-ack.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { PRComment } from '../../../../shared/types' +import type { PRComment } from '../../../../shared/github/comment-types' import type { PRCommentGroup } from '../../../../shared/pr-comment-groups' import { acknowledgePRCommentsAfterAiLaunch, diff --git a/src/renderer/src/components/right-sidebar/pr-comments-ai-launch-ack.ts b/src/renderer/src/components/right-sidebar/pr-comments-ai-launch-ack.ts index 6c427f84acc..8f21d3c7920 100644 --- a/src/renderer/src/components/right-sidebar/pr-comments-ai-launch-ack.ts +++ b/src/renderer/src/components/right-sidebar/pr-comments-ai-launch-ack.ts @@ -1,4 +1,5 @@ -import type { PRComment, PRInfo } from '../../../../shared/types' +import type { PRComment } from '../../../../shared/github/comment-types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' import { getPRCommentGroupRoot, type PRCommentGroup } from '../../../../shared/pr-comment-groups' import { isResolvablePRCommentGroup } from '../pr-comments-resolution-prompt' diff --git a/src/renderer/src/components/right-sidebar/pr-comments-list-selection.test.tsx b/src/renderer/src/components/right-sidebar/pr-comments-list-selection.test.tsx index c6f0130d1c1..94a2c20b45e 100644 --- a/src/renderer/src/components/right-sidebar/pr-comments-list-selection.test.tsx +++ b/src/renderer/src/components/right-sidebar/pr-comments-list-selection.test.tsx @@ -65,7 +65,7 @@ vi.mock('@/components/ui/dropdown-menu', () => { DropdownMenuTrigger: ({ children }: { children: ReactNode }) => <>{children} } }) -import type { PRComment } from '../../../../shared/types' +import type { PRComment } from '../../../../shared/github/comment-types' import type { PRCommentGroup } from '../../../../shared/pr-comment-groups' import { MAX_PERSISTED_PR_COMMENTS_LIST_SELECTIONS, diff --git a/src/renderer/src/components/right-sidebar/pr-comments-list-selection.ts b/src/renderer/src/components/right-sidebar/pr-comments-list-selection.ts index 6245f6ff131..b82c2b4c277 100644 --- a/src/renderer/src/components/right-sidebar/pr-comments-list-selection.ts +++ b/src/renderer/src/components/right-sidebar/pr-comments-list-selection.ts @@ -5,7 +5,7 @@ import { type PRCommentGroup } from '../../../../shared/pr-comment-groups' import { isPRCommentGroupQueueableForAI } from '@/lib/pr-comment-action-state' -import type { PRComment } from '../../../../shared/types' +import type { PRComment } from '../../../../shared/github/comment-types' export type PRCommentsListSelection = { isSelectingForAI: boolean diff --git a/src/renderer/src/components/right-sidebar/push-target-upstream-refresh-cache.test.ts b/src/renderer/src/components/right-sidebar/push-target-upstream-refresh-cache.test.ts index 6ec8514351c..50b76dd829b 100644 --- a/src/renderer/src/components/right-sidebar/push-target-upstream-refresh-cache.test.ts +++ b/src/renderer/src/components/right-sidebar/push-target-upstream-refresh-cache.test.ts @@ -10,7 +10,8 @@ import { invalidateAutomaticPushTargetUpstreamStatusCache, storeCachedAutomaticPushTargetUpstreamStatus } from './push-target-upstream-refresh-cache' -import type { GitPushTarget, GitStatusResult, GitUpstreamStatus } from '../../../../shared/types' +import type { GitStatusResult, GitUpstreamStatus } from '../../../../shared/git-status-types' +import type { GitPushTarget } from '../../../../shared/worktree/types' const pushTarget: GitPushTarget = { remoteName: 'fork', diff --git a/src/renderer/src/components/right-sidebar/push-target-upstream-refresh-cache.ts b/src/renderer/src/components/right-sidebar/push-target-upstream-refresh-cache.ts index bb79bd2a2c2..e8f0a8c39fb 100644 --- a/src/renderer/src/components/right-sidebar/push-target-upstream-refresh-cache.ts +++ b/src/renderer/src/components/right-sidebar/push-target-upstream-refresh-cache.ts @@ -1,9 +1,6 @@ -import type { - GitPushTarget, - GitStatusResult, - GitUpstreamStatus, - GlobalSettings -} from '../../../../shared/types' +import type { GitStatusResult, GitUpstreamStatus } from '../../../../shared/git-status-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { GitPushTarget } from '../../../../shared/worktree/types' const AUTOMATIC_PUSH_TARGET_UPSTREAM_REFRESH_TTL_MS = 60_000 const MAX_AUTOMATIC_PUSH_TARGET_UPSTREAM_CACHE_ENTRIES = 1024 diff --git a/src/renderer/src/components/right-sidebar/runSourceControlAgentActionStart.ts b/src/renderer/src/components/right-sidebar/runSourceControlAgentActionStart.ts index 278117bb68b..b9b86e93228 100644 --- a/src/renderer/src/components/right-sidebar/runSourceControlAgentActionStart.ts +++ b/src/renderer/src/components/right-sidebar/runSourceControlAgentActionStart.ts @@ -1,6 +1,8 @@ import { focusTerminalTabSurface } from '@/lib/focus-terminal-tab-surface' import { launchAgentInNewTab } from '@/lib/launch-agent-in-new-tab' -import type { GlobalSettings, Repo, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { LaunchSource } from '../../../../shared/telemetry-events' import type { SourceControlActionRecipe, diff --git a/src/renderer/src/components/right-sidebar/search-match-open.ts b/src/renderer/src/components/right-sidebar/search-match-open.ts index 0e2bf3b74ac..3e870396428 100644 --- a/src/renderer/src/components/right-sidebar/search-match-open.ts +++ b/src/renderer/src/components/right-sidebar/search-match-open.ts @@ -1,6 +1,6 @@ import { detectLanguage } from '@/lib/language-detect' import type { FileSearchResultOwner } from '@/lib/file-search-result-owner' -import type { SearchFileResult, SearchMatch } from '../../../../shared/types' +import type { SearchFileResult, SearchMatch } from '../../../../shared/code-search-types' export function cancelRevealFrame(frameRef: React.RefObject): void { if (frameRef.current !== null) { diff --git a/src/renderer/src/components/right-sidebar/search-rows.ts b/src/renderer/src/components/right-sidebar/search-rows.ts index e9697febea3..031cca36710 100644 --- a/src/renderer/src/components/right-sidebar/search-rows.ts +++ b/src/renderer/src/components/right-sidebar/search-rows.ts @@ -1,4 +1,8 @@ -import type { SearchFileResult, SearchMatch, SearchResult } from '../../../../shared/types' +import type { + SearchFileResult, + SearchMatch, + SearchResult +} from '../../../../shared/code-search-types' export type SearchRow = | { diff --git a/src/renderer/src/components/right-sidebar/source-control-action-error.ts b/src/renderer/src/components/right-sidebar/source-control-action-error.ts index 3e54a65d9a0..2e3ab396df1 100644 --- a/src/renderer/src/components/right-sidebar/source-control-action-error.ts +++ b/src/renderer/src/components/right-sidebar/source-control-action-error.ts @@ -1,5 +1,5 @@ import type { RemoteOpKind } from './source-control-primary-action' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' export type AbortActionErrorKind = 'abort_merge' | 'abort_rebase' export type SourceControlActionErrorKind = RemoteOpKind | AbortActionErrorKind diff --git a/src/renderer/src/components/right-sidebar/source-control-action-recipe-match.test.ts b/src/renderer/src/components/right-sidebar/source-control-action-recipe-match.test.ts index 3c806438ceb..398ce251cd9 100644 --- a/src/renderer/src/components/right-sidebar/source-control-action-recipe-match.test.ts +++ b/src/renderer/src/components/right-sidebar/source-control-action-recipe-match.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import { getDefaultSettings } from '../../../../shared/constants' -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' import { sourceControlActionRecipeMatchesTarget } from './source-control-action-recipe-match' function settings(): GlobalSettings { diff --git a/src/renderer/src/components/right-sidebar/source-control-action-recipe-match.ts b/src/renderer/src/components/right-sidebar/source-control-action-recipe-match.ts index 2c1078e9a06..83055b58e77 100644 --- a/src/renderer/src/components/right-sidebar/source-control-action-recipe-match.ts +++ b/src/renderer/src/components/right-sidebar/source-control-action-recipe-match.ts @@ -10,7 +10,8 @@ import { type SourceControlActionRecipe } from '../../../../shared/source-control-ai-actions' import type { SourceControlAiWriteTarget } from '../../../../shared/source-control-ai-recipe-save' -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' type NormalizedSourceControlActionRecipe = { agentId: SourceControlActionRecipe['agentId'] | null diff --git a/src/renderer/src/components/right-sidebar/source-control-actions.ts b/src/renderer/src/components/right-sidebar/source-control-actions.ts index 3ae829cd710..db4efa16b82 100644 --- a/src/renderer/src/components/right-sidebar/source-control-actions.ts +++ b/src/renderer/src/components/right-sidebar/source-control-actions.ts @@ -1,4 +1,4 @@ -import type { GitStagingArea } from '../../../../shared/types' +import type { GitStagingArea } from '../../../../shared/git-status-types' export type SourceControlAction = 'discard' | 'stage' | 'unstage' diff --git a/src/renderer/src/components/right-sidebar/source-control-agent-action-dialog-result.ts b/src/renderer/src/components/right-sidebar/source-control-agent-action-dialog-result.ts index 5609880477a..6078d17f4b3 100644 --- a/src/renderer/src/components/right-sidebar/source-control-agent-action-dialog-result.ts +++ b/src/renderer/src/components/right-sidebar/source-control-agent-action-dialog-result.ts @@ -1,7 +1,7 @@ import type { getAgentCatalog } from '@/lib/agent-catalog' import type { useAppStore } from '@/store' import type { useRepoById } from '@/store/selectors' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { SourceControlAgentActionDeliveryPlanState } from './SourceControlAgentActionDialogForm' export type SourceControlAgentScopeNote = { diff --git a/src/renderer/src/components/right-sidebar/source-control-agent-action-dialog-support.ts b/src/renderer/src/components/right-sidebar/source-control-agent-action-dialog-support.ts index ac0448b70d2..a88cc65617d 100644 --- a/src/renderer/src/components/right-sidebar/source-control-agent-action-dialog-support.ts +++ b/src/renderer/src/components/right-sidebar/source-control-agent-action-dialog-support.ts @@ -1,6 +1,6 @@ import { getAgentCatalog } from '@/lib/agent-catalog' import { isTuiAgentEnabled } from '../../../../shared/tui-agent-selection' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { SourceControlAiWriteTarget } from '../../../../shared/source-control-ai-recipe-save' import { translate } from '@/i18n/i18n' import type { SourceControlAgentActionDeliveryPlanState } from './SourceControlAgentActionDialogForm' diff --git a/src/renderer/src/components/right-sidebar/source-control-ai-controller-types.ts b/src/renderer/src/components/right-sidebar/source-control-ai-controller-types.ts index a3c851be789..6a76186f851 100644 --- a/src/renderer/src/components/right-sidebar/source-control-ai-controller-types.ts +++ b/src/renderer/src/components/right-sidebar/source-control-ai-controller-types.ts @@ -1,10 +1,7 @@ import type { AppState } from '@/store' -import type { - GitConflictOperation, - GitStatusEntry, - GlobalSettings, - Repo -} from '../../../../shared/types' +import type { GitConflictOperation, GitStatusEntry } from '../../../../shared/git-status-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' export type SourceControlAiStoreSnapshot = Pick< AppState, diff --git a/src/renderer/src/components/right-sidebar/source-control-ai-settings-navigation.ts b/src/renderer/src/components/right-sidebar/source-control-ai-settings-navigation.ts index 259bd6f43c0..a5352c08795 100644 --- a/src/renderer/src/components/right-sidebar/source-control-ai-settings-navigation.ts +++ b/src/renderer/src/components/right-sidebar/source-control-ai-settings-navigation.ts @@ -1,6 +1,6 @@ import { getRepositorySourceControlAiSectionId } from '@/components/settings/repository-settings-targets' import type { AppState } from '@/store' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' export function openSourceControlAiSettingsTarget({ activeRepo, diff --git a/src/renderer/src/components/right-sidebar/source-control-branch-context-row.test.tsx b/src/renderer/src/components/right-sidebar/source-control-branch-context-row.test.tsx index 9ccad4f3acc..3d3f6ce6549 100644 --- a/src/renderer/src/components/right-sidebar/source-control-branch-context-row.test.tsx +++ b/src/renderer/src/components/right-sidebar/source-control-branch-context-row.test.tsx @@ -2,7 +2,7 @@ import { renderToStaticMarkup } from 'react-dom/server' import type { ReactNode } from 'react' import { describe, expect, it, vi } from 'vitest' import { SourceControlBranchContextRow } from './source-control-branch-context-row' -import type { GitBranchCompareSummary } from '../../../../shared/types' +import type { GitBranchCompareSummary } from '../../../../shared/git-diff-compare-types' import type { GitBranchLineTotal } from '../../../../shared/git-status-types' vi.mock('@/components/ui/tooltip', () => ({ diff --git a/src/renderer/src/components/right-sidebar/source-control-branch-context-row.tsx b/src/renderer/src/components/right-sidebar/source-control-branch-context-row.tsx index 42a531a10d3..f22348a6f3f 100644 --- a/src/renderer/src/components/right-sidebar/source-control-branch-context-row.tsx +++ b/src/renderer/src/components/right-sidebar/source-control-branch-context-row.tsx @@ -1,7 +1,7 @@ import React from 'react' import { ExternalLink, Loader2, RefreshCw } from 'lucide-react' -import type { GitBranchCompareSummary, GitUpstreamStatus } from '../../../../shared/types' -import type { GitBranchLineTotal } from '../../../../shared/git-status-types' +import type { GitBranchCompareSummary } from '../../../../shared/git-diff-compare-types' +import type { GitBranchLineTotal, GitUpstreamStatus } from '../../../../shared/git-status-types' import { cn } from '@/lib/utils' import { translate } from '@/i18n/i18n' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' diff --git a/src/renderer/src/components/right-sidebar/source-control-branch-context-stats.test.ts b/src/renderer/src/components/right-sidebar/source-control-branch-context-stats.test.ts index be3823e6c3f..25384eb6cd9 100644 --- a/src/renderer/src/components/right-sidebar/source-control-branch-context-stats.test.ts +++ b/src/renderer/src/components/right-sidebar/source-control-branch-context-stats.test.ts @@ -6,7 +6,7 @@ import { shouldShowSourceControlBranchContextChrome, shouldShowSourceControlBranchContextRow } from './source-control-branch-context-stats' -import type { GitBranchCompareSummary } from '../../../../shared/types' +import type { GitBranchCompareSummary } from '../../../../shared/git-diff-compare-types' const readySummary: GitBranchCompareSummary = { baseRef: 'origin/main', diff --git a/src/renderer/src/components/right-sidebar/source-control-branch-context-stats.ts b/src/renderer/src/components/right-sidebar/source-control-branch-context-stats.ts index ed4b801897d..e724a51d366 100644 --- a/src/renderer/src/components/right-sidebar/source-control-branch-context-stats.ts +++ b/src/renderer/src/components/right-sidebar/source-control-branch-context-stats.ts @@ -1,4 +1,5 @@ -import type { GitBranchCompareSummary, GitUpstreamStatus } from '../../../../shared/types' +import type { GitBranchCompareSummary } from '../../../../shared/git-diff-compare-types' +import type { GitUpstreamStatus } from '../../../../shared/git-status-types' import type { WorktreeGitIdentityDisplay } from '@/lib/worktree-git-identity-display' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/right-sidebar/source-control-create-pr-intent-flow.test.ts b/src/renderer/src/components/right-sidebar/source-control-create-pr-intent-flow.test.ts index e71afce388c..0a1dfd8607c 100644 --- a/src/renderer/src/components/right-sidebar/source-control-create-pr-intent-flow.test.ts +++ b/src/renderer/src/components/right-sidebar/source-control-create-pr-intent-flow.test.ts @@ -13,7 +13,7 @@ import { shouldAttemptCreateHostedReviewForIntent, shouldGenerateHostedReviewDetailsForIntent } from './source-control-create-pr-intent-flow' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' describe('source-control Create PR intent flow helpers', () => { it('matches async completions only to the original repo, worktree, path, branch, and base', () => { diff --git a/src/renderer/src/components/right-sidebar/source-control-create-pr-intent-flow.ts b/src/renderer/src/components/right-sidebar/source-control-create-pr-intent-flow.ts index 20d8e002ba0..3a392535ef5 100644 --- a/src/renderer/src/components/right-sidebar/source-control-create-pr-intent-flow.ts +++ b/src/renderer/src/components/right-sidebar/source-control-create-pr-intent-flow.ts @@ -10,7 +10,7 @@ import { normalizeHostedReviewBaseRef, normalizeHostedReviewHeadRef } from '../../../../shared/hosted-review-refs' -import type { GitStatusEntry, GitUpstreamStatus } from '../../../../shared/types' +import type { GitStatusEntry, GitUpstreamStatus } from '../../../../shared/git-status-types' import { summarizeCommitFailure } from './commit-failure-summary' import { getStageAllPaths } from './discard-all-sequence' diff --git a/src/renderer/src/components/right-sidebar/source-control-discard-confirmation.test.ts b/src/renderer/src/components/right-sidebar/source-control-discard-confirmation.test.ts index 48e28160af6..496924874f2 100644 --- a/src/renderer/src/components/right-sidebar/source-control-discard-confirmation.test.ts +++ b/src/renderer/src/components/right-sidebar/source-control-discard-confirmation.test.ts @@ -3,7 +3,7 @@ import { getDiscardAreaConfirmationCopy, getDiscardEntryConfirmationCopy } from './source-control-discard-confirmation' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' function entry(partial: Partial & { path: string }): GitStatusEntry { return { diff --git a/src/renderer/src/components/right-sidebar/source-control-discard-confirmation.ts b/src/renderer/src/components/right-sidebar/source-control-discard-confirmation.ts index ff020c434ec..d65a9d86ab2 100644 --- a/src/renderer/src/components/right-sidebar/source-control-discard-confirmation.ts +++ b/src/renderer/src/components/right-sidebar/source-control-discard-confirmation.ts @@ -1,5 +1,5 @@ import { basename } from '@/lib/path' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import type { DiscardAllArea } from './discard-all-sequence' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/right-sidebar/source-control-discard-dialog.test.tsx b/src/renderer/src/components/right-sidebar/source-control-discard-dialog.test.tsx index 3dd4246a719..a445ee0da72 100644 --- a/src/renderer/src/components/right-sidebar/source-control-discard-dialog.test.tsx +++ b/src/renderer/src/components/right-sidebar/source-control-discard-dialog.test.tsx @@ -1,7 +1,7 @@ import { renderToStaticMarkup } from 'react-dom/server' import type { ButtonHTMLAttributes, ReactNode } from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' type CapturedButtonProps = ButtonHTMLAttributes & { children?: ReactNode diff --git a/src/renderer/src/components/right-sidebar/source-control-discard-dialog.tsx b/src/renderer/src/components/right-sidebar/source-control-discard-dialog.tsx index 6741a72ac55..52a63734c51 100644 --- a/src/renderer/src/components/right-sidebar/source-control-discard-dialog.tsx +++ b/src/renderer/src/components/right-sidebar/source-control-discard-dialog.tsx @@ -10,7 +10,7 @@ import { DialogHeader, DialogTitle } from '@/components/ui/dialog' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import type { DiscardAllArea } from './discard-all-sequence' import { getDiscardAreaConfirmationCopy, diff --git a/src/renderer/src/components/right-sidebar/source-control-dropdown-items.ts b/src/renderer/src/components/right-sidebar/source-control-dropdown-items.ts index 8ee0f549aa0..8c8b3b0905b 100644 --- a/src/renderer/src/components/right-sidebar/source-control-dropdown-items.ts +++ b/src/renderer/src/components/right-sidebar/source-control-dropdown-items.ts @@ -3,7 +3,7 @@ import type { PrimaryActionInputs } from './source-control-primary-action' import { canSubmitCommit, resolveCommitDisabledReason } from './source-control-commit-eligibility' -import type { GitConflictOperation } from '../../../../shared/types' +import type { GitConflictOperation } from '../../../../shared/git-status-types' import { shouldForcePushWithLeaseForUpstream } from '../../../../shared/git-upstream-status' import { supportsHostedReviewCreation } from '../../../../shared/hosted-review-creation-providers' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/right-sidebar/source-control-entry-actions.test.ts b/src/renderer/src/components/right-sidebar/source-control-entry-actions.test.ts index f9f3bcba206..214e9387f46 100644 --- a/src/renderer/src/components/right-sidebar/source-control-entry-actions.test.ts +++ b/src/renderer/src/components/right-sidebar/source-control-entry-actions.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { canDiscardStatusEntry, canStageStatusEntry, diff --git a/src/renderer/src/components/right-sidebar/source-control-entry-actions.ts b/src/renderer/src/components/right-sidebar/source-control-entry-actions.ts index b9bd2fe6a57..8495f231188 100644 --- a/src/renderer/src/components/right-sidebar/source-control-entry-actions.ts +++ b/src/renderer/src/components/right-sidebar/source-control-entry-actions.ts @@ -1,4 +1,4 @@ -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { isStageableStatusEntry } from './discard-all-sequence' /** diff --git a/src/renderer/src/components/right-sidebar/source-control-fix-split-button.tsx b/src/renderer/src/components/right-sidebar/source-control-fix-split-button.tsx index 26fed796035..9879af5b5f1 100644 --- a/src/renderer/src/components/right-sidebar/source-control-fix-split-button.tsx +++ b/src/renderer/src/components/right-sidebar/source-control-fix-split-button.tsx @@ -12,7 +12,7 @@ import type { SourceControlActionRecipe, SourceControlLaunchActionId } from '../../../../shared/source-control-ai-actions' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { LaunchSource } from '../../../../shared/telemetry-events' import type { SourceControlAiWriteTarget } from '../../../../shared/source-control-ai-recipe-save' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/right-sidebar/source-control-header-overflow-menu.tsx b/src/renderer/src/components/right-sidebar/source-control-header-overflow-menu.tsx index 8959c50efa0..55db724a5af 100644 --- a/src/renderer/src/components/right-sidebar/source-control-header-overflow-menu.tsx +++ b/src/renderer/src/components/right-sidebar/source-control-header-overflow-menu.tsx @@ -1,6 +1,6 @@ import React from 'react' import { List, ListTree, MessageSquare, MoreHorizontal, RefreshCw, Settings2 } from 'lucide-react' -import type { SourceControlViewMode } from '../../../../shared/types' +import type { SourceControlViewMode } from '../../../../shared/ui-chrome-types' import { Button } from '@/components/ui/button' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { diff --git a/src/renderer/src/components/right-sidebar/source-control-header-toolbar-identity.test.tsx b/src/renderer/src/components/right-sidebar/source-control-header-toolbar-identity.test.tsx index fac0f0b6ded..19ccba393fd 100644 --- a/src/renderer/src/components/right-sidebar/source-control-header-toolbar-identity.test.tsx +++ b/src/renderer/src/components/right-sidebar/source-control-header-toolbar-identity.test.tsx @@ -2,7 +2,7 @@ import { renderToStaticMarkup } from 'react-dom/server' import type { ReactNode } from 'react' import { describe, expect, it, vi } from 'vitest' import { SourceControlHeaderToolbar } from './source-control-header-toolbar' -import type { GitBranchCompareSummary } from '../../../../shared/types' +import type { GitBranchCompareSummary } from '../../../../shared/git-diff-compare-types' import type { GitBranchLineTotal } from '../../../../shared/git-status-types' import type { WorktreeGitIdentityDisplay } from '@/lib/worktree-git-identity-display' import type { PrimaryAction } from './source-control-primary-action' diff --git a/src/renderer/src/components/right-sidebar/source-control-header-toolbar.test.ts b/src/renderer/src/components/right-sidebar/source-control-header-toolbar.test.ts index 667445e0244..11b79d1b6a0 100644 --- a/src/renderer/src/components/right-sidebar/source-control-header-toolbar.test.ts +++ b/src/renderer/src/components/right-sidebar/source-control-header-toolbar.test.ts @@ -3,7 +3,7 @@ import { getNextSourceControlViewMode, shouldShowSourceControlCompareUnavailableCard } from './source-control-header-toolbar' -import type { GitBranchCompareSummary } from '../../../../shared/types' +import type { GitBranchCompareSummary } from '../../../../shared/git-diff-compare-types' const readySummary: GitBranchCompareSummary = { baseRef: 'origin/main', diff --git a/src/renderer/src/components/right-sidebar/source-control-header-toolbar.tsx b/src/renderer/src/components/right-sidebar/source-control-header-toolbar.tsx index e04ca32eaca..41a2ca38273 100644 --- a/src/renderer/src/components/right-sidebar/source-control-header-toolbar.tsx +++ b/src/renderer/src/components/right-sidebar/source-control-header-toolbar.tsx @@ -1,11 +1,8 @@ import React, { useCallback, useEffect, useRef } from 'react' import { GitPullRequestArrow, Loader2, Search, X } from 'lucide-react' -import type { - GitBranchCompareSummary, - GitUpstreamStatus, - SourceControlViewMode -} from '../../../../shared/types' -import type { GitBranchLineTotal } from '../../../../shared/git-status-types' +import type { GitBranchCompareSummary } from '../../../../shared/git-diff-compare-types' +import type { GitBranchLineTotal, GitUpstreamStatus } from '../../../../shared/git-status-types' +import type { SourceControlViewMode } from '../../../../shared/ui-chrome-types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' import type { PrimaryAction } from './source-control-primary-action' import { Button } from '@/components/ui/button' diff --git a/src/renderer/src/components/right-sidebar/source-control-hosted-review-push-target.ts b/src/renderer/src/components/right-sidebar/source-control-hosted-review-push-target.ts index bd87f24c4c0..131e7b22733 100644 --- a/src/renderer/src/components/right-sidebar/source-control-hosted-review-push-target.ts +++ b/src/renderer/src/components/right-sidebar/source-control-hosted-review-push-target.ts @@ -1,4 +1,5 @@ -import type { GitPushTarget, GitUpstreamStatus } from '../../../../shared/types' +import type { GitUpstreamStatus } from '../../../../shared/git-status-types' +import type { GitPushTarget } from '../../../../shared/worktree/types' import type { HostedReviewState } from '../../../../shared/hosted-review' import { isPositiveHostedReviewNumber } from '../../../../shared/hosted-review' import { getPublishTargetDisplayName } from '../../../../shared/git-publish-target-status' diff --git a/src/renderer/src/components/right-sidebar/source-control-manual-review-url.ts b/src/renderer/src/components/right-sidebar/source-control-manual-review-url.ts index 4b5f44227f3..70e9cd6e877 100644 --- a/src/renderer/src/components/right-sidebar/source-control-manual-review-url.ts +++ b/src/renderer/src/components/right-sidebar/source-control-manual-review-url.ts @@ -1,5 +1,5 @@ import type { HostedReviewProvider } from '../../../../shared/hosted-review' -import type { GitPushTarget } from '../../../../shared/types' +import type { GitPushTarget } from '../../../../shared/worktree/types' import { branchFromRef, normalizeProvider, diff --git a/src/renderer/src/components/right-sidebar/source-control-primary-action-types.ts b/src/renderer/src/components/right-sidebar/source-control-primary-action-types.ts index da34c8a253d..d4043333442 100644 --- a/src/renderer/src/components/right-sidebar/source-control-primary-action-types.ts +++ b/src/renderer/src/components/right-sidebar/source-control-primary-action-types.ts @@ -1,5 +1,6 @@ import type { HostedReviewCreationEligibility } from '../../../../shared/hosted-review' -import type { GitUpstreamStatus, PRState } from '../../../../shared/types' +import type { GitUpstreamStatus } from '../../../../shared/git-status-types' +import type { PRState } from '../../../../shared/github/pull-request-types' import type { SourceControlPrimaryActionKind, SourceControlRemoteOpKind diff --git a/src/renderer/src/components/right-sidebar/source-control-section-order.test.ts b/src/renderer/src/components/right-sidebar/source-control-section-order.test.ts index fa563470d66..e63df719130 100644 --- a/src/renderer/src/components/right-sidebar/source-control-section-order.test.ts +++ b/src/renderer/src/components/right-sidebar/source-control-section-order.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { buildSourceControlDisplaySections, getConflictReviewEntries, diff --git a/src/renderer/src/components/right-sidebar/source-control-section-order.ts b/src/renderer/src/components/right-sidebar/source-control-section-order.ts index 557db90b556..02e03a646ea 100644 --- a/src/renderer/src/components/right-sidebar/source-control-section-order.ts +++ b/src/renderer/src/components/right-sidebar/source-control-section-order.ts @@ -1,5 +1,6 @@ import { normalizeSourceControlGroupOrder } from '../../../../shared/source-control-group-order' -import type { GitStatusEntry, SourceControlGroupOrder } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' +import type { SourceControlGroupOrder } from '../../../../shared/ui-chrome-types' export const SOURCE_CONTROL_AREAS = ['unstaged', 'staged', 'untracked'] as const export type SourceControlSectionArea = (typeof SOURCE_CONTROL_AREAS)[number] diff --git a/src/renderer/src/components/right-sidebar/source-control-status-sort.test.ts b/src/renderer/src/components/right-sidebar/source-control-status-sort.test.ts index 595ba62fe34..a8c3b2acf59 100644 --- a/src/renderer/src/components/right-sidebar/source-control-status-sort.test.ts +++ b/src/renderer/src/components/right-sidebar/source-control-status-sort.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { compareGitStatusEntries } from './source-control-status-sort' function entry(path: string, conflictStatus?: GitStatusEntry['conflictStatus']): GitStatusEntry { diff --git a/src/renderer/src/components/right-sidebar/source-control-status-sort.ts b/src/renderer/src/components/right-sidebar/source-control-status-sort.ts index ccedb093ffb..ff188a6cf76 100644 --- a/src/renderer/src/components/right-sidebar/source-control-status-sort.ts +++ b/src/renderer/src/components/right-sidebar/source-control-status-sort.ts @@ -1,4 +1,4 @@ -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { compareFileNames } from '../../../../shared/file-name-sort' export function compareGitStatusEntries(a: GitStatusEntry, b: GitStatusEntry): number { diff --git a/src/renderer/src/components/right-sidebar/source-control-submodule-expansion.test.ts b/src/renderer/src/components/right-sidebar/source-control-submodule-expansion.test.ts index c17d057f5c8..c93cd05203f 100644 --- a/src/renderer/src/components/right-sidebar/source-control-submodule-expansion.test.ts +++ b/src/renderer/src/components/right-sidebar/source-control-submodule-expansion.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { buildSubmoduleChildNodes, collectListSelectionEntries, diff --git a/src/renderer/src/components/right-sidebar/source-control-submodule-expansion.ts b/src/renderer/src/components/right-sidebar/source-control-submodule-expansion.ts index aab15360590..c7796eeaf28 100644 --- a/src/renderer/src/components/right-sidebar/source-control-submodule-expansion.ts +++ b/src/renderer/src/components/right-sidebar/source-control-submodule-expansion.ts @@ -1,4 +1,4 @@ -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { basename } from '@/lib/path' import type { SourceControlSectionArea } from './source-control-section-order' import type { SourceControlTreeNode } from './source-control-tree' diff --git a/src/renderer/src/components/right-sidebar/source-control-text-generation-defaults.test.ts b/src/renderer/src/components/right-sidebar/source-control-text-generation-defaults.test.ts index b52e87482ab..acba48929f1 100644 --- a/src/renderer/src/components/right-sidebar/source-control-text-generation-defaults.test.ts +++ b/src/renderer/src/components/right-sidebar/source-control-text-generation-defaults.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import { getDefaultSettings } from '../../../../shared/constants' -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' import { generationParamsToActionRecipe, sourceControlTextGenerationDefaultsMatchTarget diff --git a/src/renderer/src/components/right-sidebar/source-control-text-generation-defaults.ts b/src/renderer/src/components/right-sidebar/source-control-text-generation-defaults.ts index 08bc9fb6d9d..33f3e572d0c 100644 --- a/src/renderer/src/components/right-sidebar/source-control-text-generation-defaults.ts +++ b/src/renderer/src/components/right-sidebar/source-control-text-generation-defaults.ts @@ -8,7 +8,8 @@ import { type SourceControlTextActionId } from '../../../../shared/source-control-ai-actions' import type { SourceControlAiWriteTarget } from '../../../../shared/source-control-ai-recipe-save' -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' import { sourceControlActionRecipeMatchesTarget } from './source-control-action-recipe-match' type TextGenerationRecipeConfiguration = { diff --git a/src/renderer/src/components/right-sidebar/source-control-tree.test.ts b/src/renderer/src/components/right-sidebar/source-control-tree.test.ts index 421b5f3cd06..6d9251801d2 100644 --- a/src/renderer/src/components/right-sidebar/source-control-tree.test.ts +++ b/src/renderer/src/components/right-sidebar/source-control-tree.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { GitBranchChangeEntry, GitStatusEntry } from '../../../../shared/types' +import type { GitBranchChangeEntry } from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { buildGitStatusSourceControlTree, buildSourceControlTree, diff --git a/src/renderer/src/components/right-sidebar/source-control-tree.ts b/src/renderer/src/components/right-sidebar/source-control-tree.ts index 2ecca32c0bd..eb4a01a7ea3 100644 --- a/src/renderer/src/components/right-sidebar/source-control-tree.ts +++ b/src/renderer/src/components/right-sidebar/source-control-tree.ts @@ -1,5 +1,5 @@ import { normalizeRelativePath } from '@/lib/path' -import type { GitStatusEntry, GitStagingArea } from '../../../../shared/types' +import type { GitStagingArea, GitStatusEntry } from '../../../../shared/git-status-types' import { compareFileNames } from '../../../../shared/file-name-sort' import { splitPathSegments } from './path-tree' import { compareGitStatusEntries } from './source-control-status-sort' diff --git a/src/renderer/src/components/right-sidebar/stale-conflict-operation-poll.ts b/src/renderer/src/components/right-sidebar/stale-conflict-operation-poll.ts index eaf61d70be7..413f1c51c0a 100644 --- a/src/renderer/src/components/right-sidebar/stale-conflict-operation-poll.ts +++ b/src/renderer/src/components/right-sidebar/stale-conflict-operation-poll.ts @@ -1,5 +1,6 @@ import { useEffect, useMemo } from 'react' -import type { GitConflictOperation, Repo } from '../../../../shared/types' +import type { GitConflictOperation } from '../../../../shared/git-status-types' +import type { Repo } from '../../../../shared/repo-types' import { isGitRepoKind } from '../../../../shared/repo-kind' import { getConnectionId } from '@/lib/connection-context' import { getRuntimeGitConflictOperation } from '@/runtime/runtime-git-client' diff --git a/src/renderer/src/components/right-sidebar/status-display.ts b/src/renderer/src/components/right-sidebar/status-display.ts index 92fa3e7769b..17ce74ab4f5 100644 --- a/src/renderer/src/components/right-sidebar/status-display.ts +++ b/src/renderer/src/components/right-sidebar/status-display.ts @@ -1,4 +1,4 @@ -import type { GitFileStatus, GitStatusEntry } from '../../../../shared/types' +import type { GitFileStatus, GitStatusEntry } from '../../../../shared/git-status-types' import { joinPath, normalizeRelativePath } from '@/lib/path' import { splitPathSegments } from './path-tree' diff --git a/src/renderer/src/components/right-sidebar/use-checks-panel-terminal-worktree.test.ts b/src/renderer/src/components/right-sidebar/use-checks-panel-terminal-worktree.test.ts index 7d194d2bf00..d79f9a16fbe 100644 --- a/src/renderer/src/components/right-sidebar/use-checks-panel-terminal-worktree.test.ts +++ b/src/renderer/src/components/right-sidebar/use-checks-panel-terminal-worktree.test.ts @@ -3,7 +3,8 @@ import { act, createElement } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { useAppStore } from '@/store' import type { AppState } from '@/store/types' import { makeWorktree, TEST_REPO } from '@/store/slices/store-test-helpers' diff --git a/src/renderer/src/components/right-sidebar/use-checks-panel-terminal-worktree.ts b/src/renderer/src/components/right-sidebar/use-checks-panel-terminal-worktree.ts index eb902500547..a0754151973 100644 --- a/src/renderer/src/components/right-sidebar/use-checks-panel-terminal-worktree.ts +++ b/src/renderer/src/components/right-sidebar/use-checks-panel-terminal-worktree.ts @@ -6,7 +6,7 @@ import { useAllWorktrees, useRepoMap } from '@/store/selectors' import { isRemoteRuntimePtyId } from '@/runtime/runtime-terminal-inspection' import { parseAppSshPtyId } from '../../../../shared/ssh-pty-id' import { getRepoExecutionHostId, LOCAL_EXECUTION_HOST_ID } from '../../../../shared/execution-host' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { resolveChecksPanelTerminalPtyId, resolveChecksPanelWorktreeFromTerminalCwd diff --git a/src/renderer/src/components/right-sidebar/use-git-status-upstream-ref-watch.ts b/src/renderer/src/components/right-sidebar/use-git-status-upstream-ref-watch.ts index c28ae16f9b0..8508d61f5e7 100644 --- a/src/renderer/src/components/right-sidebar/use-git-status-upstream-ref-watch.ts +++ b/src/renderer/src/components/right-sidebar/use-git-status-upstream-ref-watch.ts @@ -1,7 +1,7 @@ import { useCallback, useEffect } from 'react' import { getConnectionId } from '@/lib/connection-context' import { setRuntimeGitStatusUpstreamRefWatch } from '@/runtime/runtime-git-client' -import type { GitStatusResult } from '../../../../shared/types' +import type { GitStatusResult } from '../../../../shared/git-status-types' import { getRightSidebarWorktreeRuntimeSettings } from './file-explorer-runtime-owner' export function useGitStatusUpstreamRefWatch(args: { diff --git a/src/renderer/src/components/right-sidebar/use-hosted-review-actions.test.tsx b/src/renderer/src/components/right-sidebar/use-hosted-review-actions.test.tsx index 09fd8fe4133..daf0dffe1b7 100644 --- a/src/renderer/src/components/right-sidebar/use-hosted-review-actions.test.tsx +++ b/src/renderer/src/components/right-sidebar/use-hosted-review-actions.test.tsx @@ -3,7 +3,8 @@ import { act, createElement } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { PRInfo, Repo } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' import { useHostedReviewActions, type HostedReviewActionInfo } from './use-hosted-review-actions' const confirmationMocks = vi.hoisted(() => ({ diff --git a/src/renderer/src/components/right-sidebar/use-hosted-review-actions.ts b/src/renderer/src/components/right-sidebar/use-hosted-review-actions.ts index 6830fe86eee..44b8eb7940f 100644 --- a/src/renderer/src/components/right-sidebar/use-hosted-review-actions.ts +++ b/src/renderer/src/components/right-sidebar/use-hosted-review-actions.ts @@ -3,7 +3,8 @@ import { toast } from 'sonner' import { useConfirmationDialog } from '@/components/confirmation-dialog-context' import type { GitHubPRAutoMergeAction } from '@/components/github-pr-merge-state' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { PRInfo, Repo, GitHubPRMergeMethod } from '../../../../shared/types' +import type { GitHubPRMergeMethod, PRInfo } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' import { mergeGitHubHostedReview, setGitHubHostedReviewAutoMerge, diff --git a/src/renderer/src/components/right-sidebar/use-source-control-recovery-ai.ts b/src/renderer/src/components/right-sidebar/use-source-control-recovery-ai.ts index 3d679a55789..27ec43a3323 100644 --- a/src/renderer/src/components/right-sidebar/use-source-control-recovery-ai.ts +++ b/src/renderer/src/components/right-sidebar/use-source-control-recovery-ai.ts @@ -3,7 +3,7 @@ import type { SourceControlActionRecipe, SourceControlLaunchActionId } from '../../../../shared/source-control-ai-actions' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { buildFixCommitFailurePrompt } from './source-control-ai-prompts' import { summarizeCommitFailure } from './commit-failure-summary' import { diff --git a/src/renderer/src/components/right-sidebar/useCreatePullRequestDialogFields.ts b/src/renderer/src/components/right-sidebar/useCreatePullRequestDialogFields.ts index c9720c751bf..85347b2e6bd 100644 --- a/src/renderer/src/components/right-sidebar/useCreatePullRequestDialogFields.ts +++ b/src/renderer/src/components/right-sidebar/useCreatePullRequestDialogFields.ts @@ -13,7 +13,7 @@ import { getRuntimeRepoBaseRefDefault, searchRuntimeRepoBaseRefDetails } from '@/runtime/runtime-repo-client' -import type { Repo, BaseRefSearchResult } from '../../../../shared/types' +import type { BaseRefSearchResult, Repo } from '../../../../shared/repo-types' import type { HostedReviewCreationEligibility } from '../../../../shared/hosted-review' import { normalizeHostedReviewBaseRef } from '../../../../shared/hosted-review-refs' import { diff --git a/src/renderer/src/components/right-sidebar/useFileExplorerTree.stale-dirs.test.tsx b/src/renderer/src/components/right-sidebar/useFileExplorerTree.stale-dirs.test.tsx index 9c665f4cce6..49ca1844cba 100644 --- a/src/renderer/src/components/right-sidebar/useFileExplorerTree.stale-dirs.test.tsx +++ b/src/renderer/src/components/right-sidebar/useFileExplorerTree.stale-dirs.test.tsx @@ -2,7 +2,7 @@ import { act, cleanup, renderHook } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { DirEntry } from '../../../../shared/types' +import type { DirEntry } from '../../../../shared/filesystem-entry-types' import { useFileExplorerTree } from './useFileExplorerTree' const readDirectoryMock = vi.hoisted(() => vi.fn()) diff --git a/src/renderer/src/components/right-sidebar/useFileExplorerWatch.pending-refresh.test.tsx b/src/renderer/src/components/right-sidebar/useFileExplorerWatch.pending-refresh.test.tsx index 13b7b1c1c5a..4bf3de4b551 100644 --- a/src/renderer/src/components/right-sidebar/useFileExplorerWatch.pending-refresh.test.tsx +++ b/src/renderer/src/components/right-sidebar/useFileExplorerWatch.pending-refresh.test.tsx @@ -2,7 +2,7 @@ import { act, cleanup, renderHook } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { FsChangedPayload } from '../../../../shared/types' +import type { FsChangedPayload } from '../../../../shared/filesystem-entry-types' import type { FileExplorerOperationOwner, FileExplorerTreeRefreshOutcome diff --git a/src/renderer/src/components/right-sidebar/useFileExplorerWatch.ts b/src/renderer/src/components/right-sidebar/useFileExplorerWatch.ts index d8b218b6409..33e439e4a11 100644 --- a/src/renderer/src/components/right-sidebar/useFileExplorerWatch.ts +++ b/src/renderer/src/components/right-sidebar/useFileExplorerWatch.ts @@ -1,5 +1,5 @@ import { useEffect, useRef, type Dispatch, type SetStateAction } from 'react' -import type { FsChangedPayload } from '../../../../shared/types' +import type { FsChangedPayload } from '../../../../shared/filesystem-entry-types' import type { DirCache, FileExplorerOperationOwner, diff --git a/src/renderer/src/components/right-sidebar/useFileSearchPanel.ts b/src/renderer/src/components/right-sidebar/useFileSearchPanel.ts index f0935b625a0..e66e647c26f 100644 --- a/src/renderer/src/components/right-sidebar/useFileSearchPanel.ts +++ b/src/renderer/src/components/right-sidebar/useFileSearchPanel.ts @@ -2,7 +2,11 @@ import type React from 'react' import { useCallback, useDeferredValue, useEffect, useMemo, useRef } from 'react' import { useAppStore } from '@/store' import { useActiveWorktree } from '@/store/selectors' -import type { SearchFileResult, SearchMatch, SearchResult } from '../../../../shared/types' +import type { + SearchFileResult, + SearchMatch, + SearchResult +} from '../../../../shared/code-search-types' import { buildSearchRows } from './search-rows' import { cancelRevealFrame, openMatchResult } from './search-match-open' import type { SearchQueryRowProps } from './SearchQueryRow' diff --git a/src/renderer/src/components/right-sidebar/useFileSearchRunner.test.tsx b/src/renderer/src/components/right-sidebar/useFileSearchRunner.test.tsx index 62bbf4f9bec..c68f5effa4e 100644 --- a/src/renderer/src/components/right-sidebar/useFileSearchRunner.test.tsx +++ b/src/renderer/src/components/right-sidebar/useFileSearchRunner.test.tsx @@ -2,7 +2,7 @@ import { act, renderHook } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { SearchResult } from '../../../../shared/types' +import type { SearchResult } from '../../../../shared/code-search-types' import { useFileSearchRunner } from './useFileSearchRunner' const mocks = vi.hoisted(() => ({ diff --git a/src/renderer/src/components/right-sidebar/useFileSearchRunner.ts b/src/renderer/src/components/right-sidebar/useFileSearchRunner.ts index 20feac4a610..7950a86114f 100644 --- a/src/renderer/src/components/right-sidebar/useFileSearchRunner.ts +++ b/src/renderer/src/components/right-sidebar/useFileSearchRunner.ts @@ -10,7 +10,7 @@ import { } from '@/runtime/runtime-file-search-bounds' import { searchRuntimeFiles } from '@/runtime/runtime-file-client' import { useAppStore } from '@/store' -import type { SearchResult } from '../../../../shared/types' +import type { SearchResult } from '../../../../shared/code-search-types' import { getRightSidebarWorktreeRuntimeSettings } from './file-explorer-runtime-owner' const SEARCH_DEBOUNCE_MS = 300 diff --git a/src/renderer/src/components/right-sidebar/useGitHistoryCommitActions.ts b/src/renderer/src/components/right-sidebar/useGitHistoryCommitActions.ts index c60c6f1f3e0..532912c65eb 100644 --- a/src/renderer/src/components/right-sidebar/useGitHistoryCommitActions.ts +++ b/src/renderer/src/components/right-sidebar/useGitHistoryCommitActions.ts @@ -12,7 +12,10 @@ import { launchAgentInNewTab } from '@/lib/launch-agent-in-new-tab' import { resolveDefaultAgentForNewTab } from '@/lib/agent-tab-shortcuts' import { translate } from '@/i18n/i18n' import type { GitHistoryItem } from '../../../../shared/git-history' -import type { GitBranchChangeEntry, GitCommitCompareResult } from '../../../../shared/types' +import type { + GitBranchChangeEntry, + GitCommitCompareResult +} from '../../../../shared/git-diff-compare-types' import { shouldOpenSourceControlRowAsPreview, type SourceControlRowOpenEvent diff --git a/src/renderer/src/components/right-sidebar/useGitStatusPolling.rerender.test.ts b/src/renderer/src/components/right-sidebar/useGitStatusPolling.rerender.test.ts index 348bf8a1f36..7d565090d69 100644 --- a/src/renderer/src/components/right-sidebar/useGitStatusPolling.rerender.test.ts +++ b/src/renderer/src/components/right-sidebar/useGitStatusPolling.rerender.test.ts @@ -3,7 +3,8 @@ import { act, createElement } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { useAppStore } from '@/store' import type { AppState } from '@/store/types' import { makeOpenFile, makeWorktree, TEST_REPO } from '@/store/slices/store-test-helpers' diff --git a/src/renderer/src/components/right-sidebar/useGitStatusPolling.test.ts b/src/renderer/src/components/right-sidebar/useGitStatusPolling.test.ts index 47d8d5e8fde..b1c6d3586d1 100644 --- a/src/renderer/src/components/right-sidebar/useGitStatusPolling.test.ts +++ b/src/renderer/src/components/right-sidebar/useGitStatusPolling.test.ts @@ -1,6 +1,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type * as React from 'react' -import type { FsChangedPayload, GitPushTarget, GitStatusResult } from '../../../../shared/types' +import type { FsChangedPayload } from '../../../../shared/filesystem-entry-types' +import type { GitStatusResult } from '../../../../shared/git-status-types' +import type { GitPushTarget } from '../../../../shared/worktree/types' import { DEFAULT_GIT_STATUS_LIMIT } from '../../../../shared/git-status-limit' const worktree = { id: 'repo-1::/repo', repoId: 'repo-1', path: '/repo' } diff --git a/src/renderer/src/components/right-sidebar/useSavedSourceControlAgentActionAutoStart.ts b/src/renderer/src/components/right-sidebar/useSavedSourceControlAgentActionAutoStart.ts index c3dd7a10a9c..0d582ca508c 100644 --- a/src/renderer/src/components/right-sidebar/useSavedSourceControlAgentActionAutoStart.ts +++ b/src/renderer/src/components/right-sidebar/useSavedSourceControlAgentActionAutoStart.ts @@ -3,7 +3,9 @@ import type { SourceControlActionRecipe, SourceControlLaunchActionId } from '../../../../shared/source-control-ai-actions' -import type { GlobalSettings, Repo, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { isSourceControlAgentDetectedAndEnabled } from './source-control-agent-action-dialog-support' import { sourceControlActionRecipeMatchesTarget } from './source-control-action-recipe-match' diff --git a/src/renderer/src/components/right-sidebar/useSourceControlAgentActionDialog.ts b/src/renderer/src/components/right-sidebar/useSourceControlAgentActionDialog.ts index 4c129d862e4..d002d9d3a34 100644 --- a/src/renderer/src/components/right-sidebar/useSourceControlAgentActionDialog.ts +++ b/src/renderer/src/components/right-sidebar/useSourceControlAgentActionDialog.ts @@ -8,7 +8,7 @@ import { useAppStore } from '@/store' import { useRepoById } from '@/store/selectors' import { renderSourceControlActionCommandTemplate } from '../../../../shared/source-control-ai-actions' import { isTuiAgentEnabled } from '../../../../shared/tui-agent-selection' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { SourceControlAgentActionDialogProps } from './SourceControlAgentActionDialog' import type { UseSourceControlAgentActionDialogResult } from './source-control-agent-action-dialog-result' import { useSavedSourceControlAgentActionAutoStart } from './useSavedSourceControlAgentActionAutoStart' diff --git a/src/renderer/src/components/right-sidebar/useSourceControlAgentActionStart.ts b/src/renderer/src/components/right-sidebar/useSourceControlAgentActionStart.ts index 3336348a2e5..7af2c97f8c6 100644 --- a/src/renderer/src/components/right-sidebar/useSourceControlAgentActionStart.ts +++ b/src/renderer/src/components/right-sidebar/useSourceControlAgentActionStart.ts @@ -5,7 +5,9 @@ import type { SourceControlLaunchActionId } from '../../../../shared/source-control-ai-actions' import type { SourceControlAiWriteTarget } from '../../../../shared/source-control-ai-recipe-save' -import type { GlobalSettings, Repo, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { buildSourceControlAgentDeliveryPlan } from './buildSourceControlAgentDeliveryPlan' import type { SourceControlAgentActionDeliveryPlanState } from './SourceControlAgentActionDialogForm' import { runSourceControlAgentActionStart } from './runSourceControlAgentActionStart' diff --git a/src/renderer/src/components/right-sidebar/useSourceControlSelection.test.ts b/src/renderer/src/components/right-sidebar/useSourceControlSelection.test.ts index 666e406e1cb..ccafa2ddc99 100644 --- a/src/renderer/src/components/right-sidebar/useSourceControlSelection.test.ts +++ b/src/renderer/src/components/right-sidebar/useSourceControlSelection.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { getSelectionRangeKeys, reconcileSelectionKeys, diff --git a/src/renderer/src/components/right-sidebar/useSourceControlSelection.ts b/src/renderer/src/components/right-sidebar/useSourceControlSelection.ts index e14ee5cdc5d..0fa525724a5 100644 --- a/src/renderer/src/components/right-sidebar/useSourceControlSelection.ts +++ b/src/renderer/src/components/right-sidebar/useSourceControlSelection.ts @@ -1,5 +1,5 @@ import { useState, useCallback, useEffect, useRef, type RefObject } from 'react' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import type { SourceControlRowOpenEvent } from './source-control-split-open' function isMacPlatform(): boolean { diff --git a/src/renderer/src/components/right-sidebar/useSourceControlSubmoduleStatus.test.tsx b/src/renderer/src/components/right-sidebar/useSourceControlSubmoduleStatus.test.tsx index 5b97bb8068f..527d641b843 100644 --- a/src/renderer/src/components/right-sidebar/useSourceControlSubmoduleStatus.test.tsx +++ b/src/renderer/src/components/right-sidebar/useSourceControlSubmoduleStatus.test.tsx @@ -15,7 +15,7 @@ import { useSourceControlSubmoduleStatus, type UseSourceControlSubmoduleStatusResult } from './useSourceControlSubmoduleStatus' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' const roots: Root[] = [] diff --git a/src/renderer/src/components/right-sidebar/useSourceControlSubmoduleStatus.ts b/src/renderer/src/components/right-sidebar/useSourceControlSubmoduleStatus.ts index fc91420b7eb..c7c799561f6 100644 --- a/src/renderer/src/components/right-sidebar/useSourceControlSubmoduleStatus.ts +++ b/src/renderer/src/components/right-sidebar/useSourceControlSubmoduleStatus.ts @@ -1,5 +1,5 @@ import { useCallback, useEffect, useRef, useState } from 'react' -import type { GitStatusEntry } from '../../../../shared/types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' import { getConnectionId } from '@/lib/connection-context' import { getRuntimeGitSubmoduleStatus, type RuntimeGitContext } from '@/runtime/runtime-git-client' import { diff --git a/src/renderer/src/components/settings/AccountsPane.test.tsx b/src/renderer/src/components/settings/AccountsPane.test.tsx index 795caf9b5cf..bf7656856d5 100644 --- a/src/renderer/src/components/settings/AccountsPane.test.tsx +++ b/src/renderer/src/components/settings/AccountsPane.test.tsx @@ -2,7 +2,7 @@ import React from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../../../shared/constants' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { i18n } from '../../i18n/i18n' import { useAppStore } from '../../store' import { AccountsPane } from './AccountsPane' diff --git a/src/renderer/src/components/settings/AccountsPane.tsx b/src/renderer/src/components/settings/AccountsPane.tsx index c8500b99cfa..13b93c24596 100644 --- a/src/renderer/src/components/settings/AccountsPane.tsx +++ b/src/renderer/src/components/settings/AccountsPane.tsx @@ -4,12 +4,12 @@ error handling and restart prompts below; splitting them into separate files would scatter those flows without a meaningful abstraction boundary. */ import { useEffect, useRef, useState } from 'react' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { ClaudeRateLimitAccountsState, CodexRateLimitAccountsState, - CodexSystemDefaultIdentity, - GlobalSettings -} from '../../../../shared/types' + CodexSystemDefaultIdentity +} from '../../../../shared/managed-account-types' import { resolveLocalAccountRuntimeTarget } from '../../../../shared/local-account-runtime' import { getRendererAppPlatform } from '../../lib/renderer-app-platform' import { Badge } from '../ui/badge' diff --git a/src/renderer/src/components/settings/AdvancedNetworkSettingsSection.test.ts b/src/renderer/src/components/settings/AdvancedNetworkSettingsSection.test.ts index 2de229d49d0..08a392fdecc 100644 --- a/src/renderer/src/components/settings/AdvancedNetworkSettingsSection.test.ts +++ b/src/renderer/src/components/settings/AdvancedNetworkSettingsSection.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { createHttpProxyBypassRulesDraftState, createHttpProxyUrlDraftState, diff --git a/src/renderer/src/components/settings/AdvancedNetworkSettingsSection.tsx b/src/renderer/src/components/settings/AdvancedNetworkSettingsSection.tsx index e5b8a3b81fe..6597dd1e15b 100644 --- a/src/renderer/src/components/settings/AdvancedNetworkSettingsSection.tsx +++ b/src/renderer/src/components/settings/AdvancedNetworkSettingsSection.tsx @@ -1,7 +1,7 @@ import type React from 'react' import { useState } from 'react' import { ChevronDown } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { normalizeProxyBypassRules, normalizeProxyUrl } from '../../../../shared/network-proxy' import { cn } from '@/lib/utils' import { useAppStore } from '../../store' diff --git a/src/renderer/src/components/settings/AdvancedPane.tsx b/src/renderer/src/components/settings/AdvancedPane.tsx index f2b014e2805..df05dc71507 100644 --- a/src/renderer/src/components/settings/AdvancedPane.tsx +++ b/src/renderer/src/components/settings/AdvancedPane.tsx @@ -1,6 +1,6 @@ import { useRef, useState } from 'react' import { Info, Loader2, RotateCw } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { useMountedRef } from '@/hooks/useMountedRef' import { Button } from '../ui/button' import { Label } from '../ui/label' diff --git a/src/renderer/src/components/settings/AgentAwakeSetting.tsx b/src/renderer/src/components/settings/AgentAwakeSetting.tsx index 216dff6facf..4d27b9ab9c6 100644 --- a/src/renderer/src/components/settings/AgentAwakeSetting.tsx +++ b/src/renderer/src/components/settings/AgentAwakeSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Label } from '../ui/label' import { getAgentAwakeDescription, diff --git a/src/renderer/src/components/settings/AgentCacheTimerSection.tsx b/src/renderer/src/components/settings/AgentCacheTimerSection.tsx index 554e9541090..2e99b4f7e6a 100644 --- a/src/renderer/src/components/settings/AgentCacheTimerSection.tsx +++ b/src/renderer/src/components/settings/AgentCacheTimerSection.tsx @@ -1,6 +1,6 @@ import type React from 'react' import { Timer } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { useAppStore } from '../../store' import { Label } from '../ui/label' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select' diff --git a/src/renderer/src/components/settings/AgentDashboardExperimentalSetting.tsx b/src/renderer/src/components/settings/AgentDashboardExperimentalSetting.tsx index 9c5f495b883..c22f5a9050a 100644 --- a/src/renderer/src/components/settings/AgentDashboardExperimentalSetting.tsx +++ b/src/renderer/src/components/settings/AgentDashboardExperimentalSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { Label } from '../ui/label' import { SearchableSetting } from './SearchableSetting' diff --git a/src/renderer/src/components/settings/AgentRuntimeSetting.tsx b/src/renderer/src/components/settings/AgentRuntimeSetting.tsx index 220a380b943..877ce8d0065 100644 --- a/src/renderer/src/components/settings/AgentRuntimeSetting.tsx +++ b/src/renderer/src/components/settings/AgentRuntimeSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { GlobalWindowsRuntimeDefault } from '../../../../shared/project-execution-runtime' import { normalizeGlobalWindowsRuntimeDefault } from '../../../../shared/project-execution-runtime' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select' diff --git a/src/renderer/src/components/settings/AgentsPane.test.tsx b/src/renderer/src/components/settings/AgentsPane.test.tsx index 3b2f7bb964b..1081f5d4553 100644 --- a/src/renderer/src/components/settings/AgentsPane.test.tsx +++ b/src/renderer/src/components/settings/AgentsPane.test.tsx @@ -2,7 +2,8 @@ import React from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../../../shared/constants' -import type { GlobalSettings, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { AGENT_CATALOG } from '@/lib/agent-catalog' import { useAppStore } from '../../store' import { getAgentGeneratedTabTitlesTitle } from './agent-generated-tab-title-copy' diff --git a/src/renderer/src/components/settings/AgentsPane.tsx b/src/renderer/src/components/settings/AgentsPane.tsx index 70ba5f64c3f..682468c5d06 100644 --- a/src/renderer/src/components/settings/AgentsPane.tsx +++ b/src/renderer/src/components/settings/AgentsPane.tsx @@ -11,7 +11,8 @@ import { RefreshCw, Terminal } from 'lucide-react' -import type { GlobalSettings, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { getAgentCatalog, AgentIcon } from '@/lib/agent-catalog' import { useDetectedAgents, type AgentDetectionTarget } from '@/hooks/useDetectedAgents' import { useAppStore } from '@/store' diff --git a/src/renderer/src/components/settings/AppearanceInterfaceSection.tsx b/src/renderer/src/components/settings/AppearanceInterfaceSection.tsx index 551485cb317..b78e9de335d 100644 --- a/src/renderer/src/components/settings/AppearanceInterfaceSection.tsx +++ b/src/renderer/src/components/settings/AppearanceInterfaceSection.tsx @@ -1,6 +1,6 @@ import type React from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select' import { UIZoomControl } from './UIZoomControl' import { SearchableSetting } from './SearchableSetting' diff --git a/src/renderer/src/components/settings/AppearancePane.test.tsx b/src/renderer/src/components/settings/AppearancePane.test.tsx index 139ade8064f..4a89d66cd03 100644 --- a/src/renderer/src/components/settings/AppearancePane.test.tsx +++ b/src/renderer/src/components/settings/AppearancePane.test.tsx @@ -6,7 +6,8 @@ import { I18nextProvider } from 'react-i18next' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { i18n } from '@/i18n/i18n' import { getDefaultSettings } from '../../../../shared/constants' -import type { GlobalSettings, StatusBarItem } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { StatusBarItem } from '../../../../shared/ui-chrome-types' const mocks = vi.hoisted(() => ({ state: { diff --git a/src/renderer/src/components/settings/AppearancePane.tsx b/src/renderer/src/components/settings/AppearancePane.tsx index f6c71840654..3c460b32694 100644 --- a/src/renderer/src/components/settings/AppearancePane.tsx +++ b/src/renderer/src/components/settings/AppearancePane.tsx @@ -2,7 +2,7 @@ import type React from 'react' import { useLayoutEffect, useState } from 'react' import { AppWindow, PanelLeft, TerminalSquare } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { AppearanceSection } from './AppearanceSection' import { AppearanceInterfaceSection } from './AppearanceInterfaceSection' diff --git a/src/renderer/src/components/settings/AppearanceWindowSidebarSection.tsx b/src/renderer/src/components/settings/AppearanceWindowSidebarSection.tsx index 1d7e5d8ec2c..c8d63b3866a 100644 --- a/src/renderer/src/components/settings/AppearanceWindowSidebarSection.tsx +++ b/src/renderer/src/components/settings/AppearanceWindowSidebarSection.tsx @@ -1,6 +1,7 @@ import type React from 'react' -import type { GlobalSettings, StatusBarItem } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { StatusBarItem } from '../../../../shared/ui-chrome-types' import type { FeatureInteractionId } from '../../../../shared/feature-interaction-catalog' import { SearchableSetting } from './SearchableSetting' import { AppearanceAdvancedDisclosure } from './AppearanceAdvancedDisclosure' diff --git a/src/renderer/src/components/settings/ArtifactsSettingsPane.tsx b/src/renderer/src/components/settings/ArtifactsSettingsPane.tsx index f561908d50a..60dd3e0c0c9 100644 --- a/src/renderer/src/components/settings/ArtifactsSettingsPane.tsx +++ b/src/renderer/src/components/settings/ArtifactsSettingsPane.tsx @@ -1,6 +1,6 @@ import { useEffect } from 'react' import { ArrowRight, Files } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Button } from '@/components/ui/button' import { SettingsSwitchRow } from './SettingsFormControls' import { useAppStore } from '@/store' diff --git a/src/renderer/src/components/settings/AutoRenameBranchFromWorkSetting.tsx b/src/renderer/src/components/settings/AutoRenameBranchFromWorkSetting.tsx index d31d9b69533..d44bc20c887 100644 --- a/src/renderer/src/components/settings/AutoRenameBranchFromWorkSetting.tsx +++ b/src/renderer/src/components/settings/AutoRenameBranchFromWorkSetting.tsx @@ -1,6 +1,6 @@ import { useCallback, useEffect, useRef, useState } from 'react' import { ChevronDown } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { SourceControlAiSettingsPatch, SourceControlAiSettings diff --git a/src/renderer/src/components/settings/AutomationsSettingsPane.tsx b/src/renderer/src/components/settings/AutomationsSettingsPane.tsx index 5984698b65b..991081e4739 100644 --- a/src/renderer/src/components/settings/AutomationsSettingsPane.tsx +++ b/src/renderer/src/components/settings/AutomationsSettingsPane.tsx @@ -1,5 +1,5 @@ import { ArrowRight, CalendarClock } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Button } from '@/components/ui/button' import { SettingsSwitchRow } from './SettingsFormControls' import { useAppStore } from '@/store' diff --git a/src/renderer/src/components/settings/BrowserLinkRoutingModifierSetting.tsx b/src/renderer/src/components/settings/BrowserLinkRoutingModifierSetting.tsx index b0c55e87204..55edebeea9a 100644 --- a/src/renderer/src/components/settings/BrowserLinkRoutingModifierSetting.tsx +++ b/src/renderer/src/components/settings/BrowserLinkRoutingModifierSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { SearchableSetting } from './SearchableSetting' import { SettingsSwitchRow } from './SettingsFormControls' import { diff --git a/src/renderer/src/components/settings/BrowserLinkRoutingSetting.tsx b/src/renderer/src/components/settings/BrowserLinkRoutingSetting.tsx index fa7f26f135b..7ec1bc47ff3 100644 --- a/src/renderer/src/components/settings/BrowserLinkRoutingSetting.tsx +++ b/src/renderer/src/components/settings/BrowserLinkRoutingSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Label } from '../ui/label' import { Switch } from '../ui/switch' import { SearchableSetting } from './SearchableSetting' diff --git a/src/renderer/src/components/settings/BrowserLocalhostWorktreeLabelsSetting.tsx b/src/renderer/src/components/settings/BrowserLocalhostWorktreeLabelsSetting.tsx index 1dfc0492318..fb18663e497 100644 --- a/src/renderer/src/components/settings/BrowserLocalhostWorktreeLabelsSetting.tsx +++ b/src/renderer/src/components/settings/BrowserLocalhostWorktreeLabelsSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { SearchableSetting } from './SearchableSetting' import { SettingsSwitchRow } from './SettingsFormControls' diff --git a/src/renderer/src/components/settings/BrowserPane.tsx b/src/renderer/src/components/settings/BrowserPane.tsx index 1bc078cfcca..c0b2a370e67 100644 --- a/src/renderer/src/components/settings/BrowserPane.tsx +++ b/src/renderer/src/components/settings/BrowserPane.tsx @@ -1,5 +1,5 @@ import { useCallback, useEffect, useMemo, useRef, useState, type MutableRefObject } from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { useAppStore } from '../../store' import { matchesSettingsSearch } from './settings-search' import { getBrowserPaneSearchEntries } from './browser-search' diff --git a/src/renderer/src/components/settings/BrowserProfileRow.tsx b/src/renderer/src/components/settings/BrowserProfileRow.tsx index a6324661901..05447bb7758 100644 --- a/src/renderer/src/components/settings/BrowserProfileRow.tsx +++ b/src/renderer/src/components/settings/BrowserProfileRow.tsx @@ -1,7 +1,10 @@ import { Import, Loader2, Trash2 } from 'lucide-react' import { toast } from 'sonner' import { emitBrowserCookieImportToast } from '@/lib/browser-cookie-import-toast' -import type { BrowserCookieImportSummary, BrowserSessionProfile } from '../../../../shared/types' +import type { + BrowserCookieImportSummary, + BrowserSessionProfile +} from '../../../../shared/browser-workspace-types' import { Button } from '../ui/button' import { DropdownMenu, diff --git a/src/renderer/src/components/settings/BrowserSessionCookiesSection.tsx b/src/renderer/src/components/settings/BrowserSessionCookiesSection.tsx index 8fa1e6c9a60..3f4fbbb992d 100644 --- a/src/renderer/src/components/settings/BrowserSessionCookiesSection.tsx +++ b/src/renderer/src/components/settings/BrowserSessionCookiesSection.tsx @@ -1,5 +1,5 @@ import { Plus } from 'lucide-react' -import type { BrowserSessionProfile } from '../../../../shared/types' +import type { BrowserSessionProfile } from '../../../../shared/browser-workspace-types' import { Button } from '../ui/button' import { Label } from '../ui/label' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select' diff --git a/src/renderer/src/components/settings/BrowserTerminalLinkActionsSetting.tsx b/src/renderer/src/components/settings/BrowserTerminalLinkActionsSetting.tsx index 2ba4fa50a00..b658052db81 100644 --- a/src/renderer/src/components/settings/BrowserTerminalLinkActionsSetting.tsx +++ b/src/renderer/src/components/settings/BrowserTerminalLinkActionsSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { BROWSER_TERMINAL_LINK_ACTIONS_SETTINGS_TARGET_ID } from '@/lib/settings-navigation-types' import { SearchableSetting } from './SearchableSetting' diff --git a/src/renderer/src/components/settings/CliSection.tsx b/src/renderer/src/components/settings/CliSection.tsx index e37a45ef3d6..32cbb3e5766 100644 --- a/src/renderer/src/components/settings/CliSection.tsx +++ b/src/renderer/src/components/settings/CliSection.tsx @@ -2,7 +2,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react' import { FolderOpen, RefreshCw } from 'lucide-react' import { toast } from 'sonner' import type { CliInstallStatus } from '../../../../shared/cli-install-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { ORCA_CLI_SKILL_INSTALL_COMMAND, ORCA_CLI_SKILL_NAME, diff --git a/src/renderer/src/components/settings/CliSkillRuntimeSetup.tsx b/src/renderer/src/components/settings/CliSkillRuntimeSetup.tsx index 2b68c2e0945..913b6356322 100644 --- a/src/renderer/src/components/settings/CliSkillRuntimeSetup.tsx +++ b/src/renderer/src/components/settings/CliSkillRuntimeSetup.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { deriveGlobalWindowsRuntimeDefaultFromLegacySettings, normalizeGlobalWindowsRuntimeDefault diff --git a/src/renderer/src/components/settings/CommitMessageAiPane.test.tsx b/src/renderer/src/components/settings/CommitMessageAiPane.test.tsx index fba530089bf..95c3e2567b8 100644 --- a/src/renderer/src/components/settings/CommitMessageAiPane.test.tsx +++ b/src/renderer/src/components/settings/CommitMessageAiPane.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { beforeEach, describe, expect, it } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { SourceControlAiSettings } from '../../../../shared/source-control-ai-types' import { getCommitMessageModelDiscoveryHostKey, diff --git a/src/renderer/src/components/settings/CommitMessageAiPane.tsx b/src/renderer/src/components/settings/CommitMessageAiPane.tsx index ecc01cc4c11..d14ff189c72 100644 --- a/src/renderer/src/components/settings/CommitMessageAiPane.tsx +++ b/src/renderer/src/components/settings/CommitMessageAiPane.tsx @@ -1,6 +1,7 @@ import { useRef } from 'react' import type React from 'react' -import type { GlobalSettings, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { SourceControlAiSettingsPatch, SourceControlAiSettings diff --git a/src/renderer/src/components/settings/CompareAgainstUpstreamSetting.tsx b/src/renderer/src/components/settings/CompareAgainstUpstreamSetting.tsx index 0fb266867b0..532e25be0d2 100644 --- a/src/renderer/src/components/settings/CompareAgainstUpstreamSetting.tsx +++ b/src/renderer/src/components/settings/CompareAgainstUpstreamSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { SearchableSetting } from './SearchableSetting' import { SettingsRow, SettingsSegmentedControl } from './SettingsFormControls' diff --git a/src/renderer/src/components/settings/DefaultWindowsProjectRuntimeSetting.tsx b/src/renderer/src/components/settings/DefaultWindowsProjectRuntimeSetting.tsx index 827def4c2b2..a952e37eea8 100644 --- a/src/renderer/src/components/settings/DefaultWindowsProjectRuntimeSetting.tsx +++ b/src/renderer/src/components/settings/DefaultWindowsProjectRuntimeSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { GlobalWindowsRuntimeDefault } from '../../../../shared/project-execution-runtime' import { normalizeGlobalWindowsRuntimeDefault } from '../../../../shared/project-execution-runtime' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select' diff --git a/src/renderer/src/components/settings/EditorFontFamilySetting.tsx b/src/renderer/src/components/settings/EditorFontFamilySetting.tsx index 911a4e2fde1..f771fa24c7a 100644 --- a/src/renderer/src/components/settings/EditorFontFamilySetting.tsx +++ b/src/renderer/src/components/settings/EditorFontFamilySetting.tsx @@ -1,5 +1,5 @@ import type React from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { SearchableSetting } from './SearchableSetting' import { FontAutocomplete, SettingsRow } from './SettingsFormControls' diff --git a/src/renderer/src/components/settings/EditorWordWrapSetting.tsx b/src/renderer/src/components/settings/EditorWordWrapSetting.tsx index b3dfbb853c4..c9283daf731 100644 --- a/src/renderer/src/components/settings/EditorWordWrapSetting.tsx +++ b/src/renderer/src/components/settings/EditorWordWrapSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { SearchableSetting } from './SearchableSetting' import { Label } from '../ui/label' diff --git a/src/renderer/src/components/settings/EphemeralVmRecipeRow.tsx b/src/renderer/src/components/settings/EphemeralVmRecipeRow.tsx index 1e09e65c4ab..8a42283ff51 100644 --- a/src/renderer/src/components/settings/EphemeralVmRecipeRow.tsx +++ b/src/renderer/src/components/settings/EphemeralVmRecipeRow.tsx @@ -1,6 +1,6 @@ import { Play } from 'lucide-react' import type React from 'react' -import type { OrcaHooks } from '../../../../shared/types' +import type { OrcaHooks } from '../../../../shared/orca-yaml-hook-types' import { Button } from '../ui/button' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/settings/EphemeralVmsExperimentalSetting.tsx b/src/renderer/src/components/settings/EphemeralVmsExperimentalSetting.tsx index 543744136cc..dd4db727bc4 100644 --- a/src/renderer/src/components/settings/EphemeralVmsExperimentalSetting.tsx +++ b/src/renderer/src/components/settings/EphemeralVmsExperimentalSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { Label } from '../ui/label' import { EphemeralVmsPane } from './EphemeralVmsPane' diff --git a/src/renderer/src/components/settings/ExperimentalPane.test.tsx b/src/renderer/src/components/settings/ExperimentalPane.test.tsx index e230ba7b670..54264e1a4f6 100644 --- a/src/renderer/src/components/settings/ExperimentalPane.test.tsx +++ b/src/renderer/src/components/settings/ExperimentalPane.test.tsx @@ -4,7 +4,7 @@ import { act } from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { getDefaultSettings } from '../../../../shared/constants' import { ExperimentalPane } from './ExperimentalPane' import { getExperimentalPaneSearchEntries } from './experimental-search' diff --git a/src/renderer/src/components/settings/ExperimentalPane.tsx b/src/renderer/src/components/settings/ExperimentalPane.tsx index 25c161d0da9..bccd7989a90 100644 --- a/src/renderer/src/components/settings/ExperimentalPane.tsx +++ b/src/renderer/src/components/settings/ExperimentalPane.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Label } from '../ui/label' import { Switch } from '../ui/switch' import { useAppStore } from '../../store' diff --git a/src/renderer/src/components/settings/FloatingWorkspacePane.tsx b/src/renderer/src/components/settings/FloatingWorkspacePane.tsx index 14ace880d92..16c7b55c9cd 100644 --- a/src/renderer/src/components/settings/FloatingWorkspacePane.tsx +++ b/src/renderer/src/components/settings/FloatingWorkspacePane.tsx @@ -1,6 +1,7 @@ import { useEffect, useState } from 'react' import { FolderOpen } from 'lucide-react' -import type { FloatingTerminalTriggerLocation, GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { FloatingTerminalTriggerLocation } from '../../../../shared/ui-chrome-types' import { Button } from '../ui/button' import { Input } from '../ui/input' import { ToggleGroup, ToggleGroupItem } from '../ui/toggle-group' diff --git a/src/renderer/src/components/settings/GeneralEditorSettingsSection.tsx b/src/renderer/src/components/settings/GeneralEditorSettingsSection.tsx index b8d710b6886..6b3b211f628 100644 --- a/src/renderer/src/components/settings/GeneralEditorSettingsSection.tsx +++ b/src/renderer/src/components/settings/GeneralEditorSettingsSection.tsx @@ -1,6 +1,6 @@ import type React from 'react' import { useState } from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { DEFAULT_EDITOR_AUTO_SAVE_DELAY_MS, MAX_EDITOR_AUTO_SAVE_DELAY_MS, diff --git a/src/renderer/src/components/settings/GeneralPane.tsx b/src/renderer/src/components/settings/GeneralPane.tsx index 021fc5d7111..f688f500567 100644 --- a/src/renderer/src/components/settings/GeneralPane.tsx +++ b/src/renderer/src/components/settings/GeneralPane.tsx @@ -1,5 +1,5 @@ import type React from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { useAppStore } from '../../store' import { Separator } from '../ui/separator' import { CliSection } from './CliSection' diff --git a/src/renderer/src/components/settings/GeneralWorkspaceSettingsSection.tsx b/src/renderer/src/components/settings/GeneralWorkspaceSettingsSection.tsx index 474628a5cf0..7531790a7a1 100644 --- a/src/renderer/src/components/settings/GeneralWorkspaceSettingsSection.tsx +++ b/src/renderer/src/components/settings/GeneralWorkspaceSettingsSection.tsx @@ -1,5 +1,5 @@ import type React from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { OpenInMenuSetting } from './OpenInMenuSetting' import { SearchableSetting } from './SearchableSetting' import { SettingsSubsectionHeader, SettingsSwitchRow } from './SettingsFormControls' diff --git a/src/renderer/src/components/settings/GhosttyImportModal.test.ts b/src/renderer/src/components/settings/GhosttyImportModal.test.ts index 67590e710f2..bad4d4118fc 100644 --- a/src/renderer/src/components/settings/GhosttyImportModal.test.ts +++ b/src/renderer/src/components/settings/GhosttyImportModal.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { GhosttyImportPreview } from '../../../../shared/types' +import type { GhosttyImportPreview } from '../../../../shared/global-settings-types' import { GhosttyImportModal } from './GhosttyImportModal' import { Button } from '../ui/button' diff --git a/src/renderer/src/components/settings/GhosttyImportModal.tsx b/src/renderer/src/components/settings/GhosttyImportModal.tsx index 7bdcc08ad6a..cc515405c96 100644 --- a/src/renderer/src/components/settings/GhosttyImportModal.tsx +++ b/src/renderer/src/components/settings/GhosttyImportModal.tsx @@ -1,4 +1,4 @@ -import type { GhosttyImportPreview } from '../../../../shared/types' +import type { GhosttyImportPreview } from '../../../../shared/global-settings-types' import { Button } from '../ui/button' import { Dialog, diff --git a/src/renderer/src/components/settings/GitPane.test.tsx b/src/renderer/src/components/settings/GitPane.test.tsx index 6edf003c370..70cc28c3289 100644 --- a/src/renderer/src/components/settings/GitPane.test.tsx +++ b/src/renderer/src/components/settings/GitPane.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { describe, expect, it } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { getDefaultSettings } from '../../../../shared/constants' import { TooltipProvider } from '../ui/tooltip' import { GitPane } from './GitPane' diff --git a/src/renderer/src/components/settings/GitPane.tsx b/src/renderer/src/components/settings/GitPane.tsx index 72eb70f15c2..af739b6aa56 100644 --- a/src/renderer/src/components/settings/GitPane.tsx +++ b/src/renderer/src/components/settings/GitPane.tsx @@ -1,5 +1,6 @@ import { useEffect, useRef, useState } from 'react' -import type { GlobalSettings, SourceControlGroupOrder } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { SourceControlGroupOrder } from '../../../../shared/ui-chrome-types' import type { SourceControlAiSettingsPatch } from '../../../../shared/source-control-ai-types' import { DEFAULT_SOURCE_CONTROL_GROUP_ORDER } from '../../../../shared/source-control-group-order' import { Input } from '../ui/input' diff --git a/src/renderer/src/components/settings/InputPane.tsx b/src/renderer/src/components/settings/InputPane.tsx index 55f64d550da..286c7ebe351 100644 --- a/src/renderer/src/components/settings/InputPane.tsx +++ b/src/renderer/src/components/settings/InputPane.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Label } from '../ui/label' import { Switch } from '../ui/switch' import { SearchableSetting } from './SearchableSetting' diff --git a/src/renderer/src/components/settings/LeftSidebarAppearanceSetting.tsx b/src/renderer/src/components/settings/LeftSidebarAppearanceSetting.tsx index bf4cb1a81b7..165d92a2817 100644 --- a/src/renderer/src/components/settings/LeftSidebarAppearanceSetting.tsx +++ b/src/renderer/src/components/settings/LeftSidebarAppearanceSetting.tsx @@ -1,5 +1,6 @@ import type React from 'react' -import type { GlobalSettings, LeftSidebarAppearanceMode } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { LeftSidebarAppearanceMode } from '../../../../shared/ui-chrome-types' import { DEFAULT_LEFT_SIDEBAR_TINT_COLOR, DEFAULT_LEFT_SIDEBAR_TINT_OPACITY, diff --git a/src/renderer/src/components/settings/McpConfigSection.tsx b/src/renderer/src/components/settings/McpConfigSection.tsx index ce9b3d8db4a..e4ceac4c892 100644 --- a/src/renderer/src/components/settings/McpConfigSection.tsx +++ b/src/renderer/src/components/settings/McpConfigSection.tsx @@ -2,7 +2,8 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { AlertCircle, FileCode2, LoaderCircle, Plus, RefreshCw } from 'lucide-react' import { toast } from 'sonner' import { useMountedRef } from '@/hooks/useMountedRef' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getRepoIdFromWorktreeId } from '../../../../shared/worktree/id' import { canInspectLocalMcpConfigRoot, diff --git a/src/renderer/src/components/settings/MobileEmulatorSettingsPane.tsx b/src/renderer/src/components/settings/MobileEmulatorSettingsPane.tsx index e4f5adaa47f..6453e27d3f7 100644 --- a/src/renderer/src/components/settings/MobileEmulatorSettingsPane.tsx +++ b/src/renderer/src/components/settings/MobileEmulatorSettingsPane.tsx @@ -1,6 +1,6 @@ import { useCallback, useEffect, useMemo, useState } from 'react' import { Loader2, RefreshCw } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { cn } from '@/lib/utils' import { callRuntimeRpc } from '@/runtime/runtime-rpc-client' import { Badge } from '../ui/badge' diff --git a/src/renderer/src/components/settings/NativeChatExperimentalSetting.tsx b/src/renderer/src/components/settings/NativeChatExperimentalSetting.tsx index 464b1ca7797..d7ea704c553 100644 --- a/src/renderer/src/components/settings/NativeChatExperimentalSetting.tsx +++ b/src/renderer/src/components/settings/NativeChatExperimentalSetting.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { Label } from '../ui/label' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select' diff --git a/src/renderer/src/components/settings/NotificationSoundSection.tsx b/src/renderer/src/components/settings/NotificationSoundSection.tsx index da1fe4e11cc..e90489741ae 100644 --- a/src/renderer/src/components/settings/NotificationSoundSection.tsx +++ b/src/renderer/src/components/settings/NotificationSoundSection.tsx @@ -1,6 +1,6 @@ import { useState } from 'react' import { toast } from 'sonner' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Label } from '../ui/label' import { Slider } from '../ui/slider' import { diff --git a/src/renderer/src/components/settings/NotificationsPane.test.tsx b/src/renderer/src/components/settings/NotificationsPane.test.tsx index 08d43709a3e..7828efad6ce 100644 --- a/src/renderer/src/components/settings/NotificationsPane.test.tsx +++ b/src/renderer/src/components/settings/NotificationsPane.test.tsx @@ -1,6 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { renderToStaticMarkup } from 'react-dom/server' -import type { GlobalSettings, NotificationDispatchRequest } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { NotificationDispatchRequest } from '../../../../shared/notification-settings-types' import { getNotificationSoundOptions } from '@/components/notification-sound-options' import { createNotificationVolumeDraftState, diff --git a/src/renderer/src/components/settings/NotificationsPane.tsx b/src/renderer/src/components/settings/NotificationsPane.tsx index 5d1bb6a23d3..e80f3e49512 100644 --- a/src/renderer/src/components/settings/NotificationsPane.tsx +++ b/src/renderer/src/components/settings/NotificationsPane.tsx @@ -1,5 +1,5 @@ import { useEffect, useRef, useState } from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Button } from '../ui/button' import { Separator } from '../ui/separator' import { BellRing, Bot, Siren } from 'lucide-react' diff --git a/src/renderer/src/components/settings/OpenInMenuSetting.tsx b/src/renderer/src/components/settings/OpenInMenuSetting.tsx index b6c3f50f4ae..aa18ec951f1 100644 --- a/src/renderer/src/components/settings/OpenInMenuSetting.tsx +++ b/src/renderer/src/components/settings/OpenInMenuSetting.tsx @@ -1,7 +1,8 @@ import type React from 'react' import { useState } from 'react' import { Check, ChevronDown, Pencil, Trash2 } from 'lucide-react' -import type { GlobalSettings, OpenInApplication } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { OpenInApplication } from '../../../../shared/ui-chrome-types' import { OPEN_IN_APPLICATIONS_MAX } from '../../../../shared/open-in-applications' import { Button } from '../ui/button' import { diff --git a/src/renderer/src/components/settings/PluginsSettingsSection.lifecycle.test.tsx b/src/renderer/src/components/settings/PluginsSettingsSection.lifecycle.test.tsx index db731518101..74f12f0779c 100644 --- a/src/renderer/src/components/settings/PluginsSettingsSection.lifecycle.test.tsx +++ b/src/renderer/src/components/settings/PluginsSettingsSection.lifecycle.test.tsx @@ -5,7 +5,7 @@ import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { PluginHostListEntry } from '../../../../preload/api-types' import { getDefaultSettings } from '../../../../shared/constants' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { PluginsSettingsSection } from './PluginsSettingsSection' vi.mock('./SettingsSection', () => ({ diff --git a/src/renderer/src/components/settings/PluginsSettingsSection.tsx b/src/renderer/src/components/settings/PluginsSettingsSection.tsx index 30b54aa4284..c76fd6b846f 100644 --- a/src/renderer/src/components/settings/PluginsSettingsSection.tsx +++ b/src/renderer/src/components/settings/PluginsSettingsSection.tsx @@ -1,7 +1,7 @@ import { useEffect, useRef, useState } from 'react' import { Plus } from 'lucide-react' import type { PluginHostInstallSource, PluginHostListEntry } from '../../../../preload/api-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { Button } from '../ui/button' import { PluginConsentDialog } from './PluginConsentDialog' diff --git a/src/renderer/src/components/settings/PrivacyPane.test.ts b/src/renderer/src/components/settings/PrivacyPane.test.ts index 751e1b5627a..5739e39e1d5 100644 --- a/src/renderer/src/components/settings/PrivacyPane.test.ts +++ b/src/renderer/src/components/settings/PrivacyPane.test.ts @@ -15,7 +15,7 @@ import React from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { TelemetryConsentState } from '../../../../shared/telemetry-consent-types' const { getConsentStateMock, setOptInMock } = vi.hoisted(() => ({ diff --git a/src/renderer/src/components/settings/PrivacyPane.tsx b/src/renderer/src/components/settings/PrivacyPane.tsx index f36765e4ffc..9d24b34ffd3 100644 --- a/src/renderer/src/components/settings/PrivacyPane.tsx +++ b/src/renderer/src/components/settings/PrivacyPane.tsx @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react' import { ShieldCheck } from 'lucide-react' import { useMountedRef } from '@/hooks/useMountedRef' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { TelemetryConsentState } from '../../../../shared/telemetry-consent-types' import { Label } from '../ui/label' import { Switch } from '../ui/switch' diff --git a/src/renderer/src/components/settings/ProjectWindowsRuntimeSetting.test.tsx b/src/renderer/src/components/settings/ProjectWindowsRuntimeSetting.test.tsx index 94ea998bb8e..6caa188c9d1 100644 --- a/src/renderer/src/components/settings/ProjectWindowsRuntimeSetting.test.tsx +++ b/src/renderer/src/components/settings/ProjectWindowsRuntimeSetting.test.tsx @@ -5,7 +5,7 @@ import { createRoot } from 'react-dom/client' import { renderToStaticMarkup } from 'react-dom/server' import { describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../../../shared/constants' -import type { Project } from '../../../../shared/types' +import type { Project } from '../../../../shared/project-types' import { ProjectWindowsRuntimeSetting } from './ProjectWindowsRuntimeSetting' const project: Project = { diff --git a/src/renderer/src/components/settings/ProjectWindowsRuntimeSetting.tsx b/src/renderer/src/components/settings/ProjectWindowsRuntimeSetting.tsx index 84beb4296e5..8dc75a4bf16 100644 --- a/src/renderer/src/components/settings/ProjectWindowsRuntimeSetting.tsx +++ b/src/renderer/src/components/settings/ProjectWindowsRuntimeSetting.tsx @@ -1,4 +1,5 @@ -import type { GlobalSettings, Project, ProjectUpdateArgs } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Project, ProjectUpdateArgs } from '../../../../shared/project-types' import type { LocalWindowsRuntimePreference } from '../../../../shared/project-execution-runtime' import { normalizeProjectRuntimePreference, diff --git a/src/renderer/src/components/settings/QuickCommandsList.tsx b/src/renderer/src/components/settings/QuickCommandsList.tsx index 3a0042b32a8..d86fe657010 100644 --- a/src/renderer/src/components/settings/QuickCommandsList.tsx +++ b/src/renderer/src/components/settings/QuickCommandsList.tsx @@ -1,9 +1,9 @@ import { Check, Copy, Pencil, TerminalSquare, Trash2 } from 'lucide-react' +import type { Repo } from '../../../../shared/repo-types' import type { - Repo, TerminalQuickCommand, TerminalQuickCommandScope -} from '../../../../shared/types' +} from '../../../../shared/terminal-quick-command-types' import { getTerminalQuickCommandBody, getTerminalQuickCommandScope, diff --git a/src/renderer/src/components/settings/QuickCommandsPane.tsx b/src/renderer/src/components/settings/QuickCommandsPane.tsx index a4f1ea85fe4..2305a034227 100644 --- a/src/renderer/src/components/settings/QuickCommandsPane.tsx +++ b/src/renderer/src/components/settings/QuickCommandsPane.tsx @@ -1,5 +1,6 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react' -import type { GlobalSettings, TerminalQuickCommand } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import { getTerminalQuickCommandScope } from '../../../../shared/terminal-quick-commands' import { createTerminalQuickCommandDraft, diff --git a/src/renderer/src/components/settings/QuickCommandsScopeFilter.tsx b/src/renderer/src/components/settings/QuickCommandsScopeFilter.tsx index 749d554b783..c878d34b015 100644 --- a/src/renderer/src/components/settings/QuickCommandsScopeFilter.tsx +++ b/src/renderer/src/components/settings/QuickCommandsScopeFilter.tsx @@ -1,6 +1,6 @@ import { Check, ChevronsUpDown } from 'lucide-react' import type { Dispatch, SetStateAction } from 'react' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { Button } from '../ui/button' import { Command, CommandItem, CommandList } from '../ui/command' import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover' diff --git a/src/renderer/src/components/settings/QuickCommandsToolbar.tsx b/src/renderer/src/components/settings/QuickCommandsToolbar.tsx index 65e034eeb3f..202e148b1e3 100644 --- a/src/renderer/src/components/settings/QuickCommandsToolbar.tsx +++ b/src/renderer/src/components/settings/QuickCommandsToolbar.tsx @@ -1,6 +1,6 @@ import type { Dispatch, SetStateAction } from 'react' import { Plus, Search } from 'lucide-react' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import type { ExecutionHostId } from '../../../../shared/execution-host' import { Button } from '../ui/button' import { Input } from '../ui/input' diff --git a/src/renderer/src/components/settings/RecentTabOrderControl.tsx b/src/renderer/src/components/settings/RecentTabOrderControl.tsx index 84e54c617b5..adb8432973b 100644 --- a/src/renderer/src/components/settings/RecentTabOrderControl.tsx +++ b/src/renderer/src/components/settings/RecentTabOrderControl.tsx @@ -1,5 +1,5 @@ import React from 'react' -import type { CtrlTabOrderMode } from '../../../../shared/types' +import type { CtrlTabOrderMode } from '../../../../shared/tab-types' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select' import { SearchableSetting } from './SearchableSetting' import { SettingsRow } from './SettingsFormControls' diff --git a/src/renderer/src/components/settings/RepositoryForkSyncSection.tsx b/src/renderer/src/components/settings/RepositoryForkSyncSection.tsx index f3279d59f1e..3a399f16e38 100644 --- a/src/renderer/src/components/settings/RepositoryForkSyncSection.tsx +++ b/src/renderer/src/components/settings/RepositoryForkSyncSection.tsx @@ -1,7 +1,8 @@ import { useRef, useState } from 'react' import { RefreshCw } from 'lucide-react' import { toast } from 'sonner' -import type { ForkSyncMode, GitForkSyncResult, Repo } from '../../../../shared/types' +import type { ForkSyncMode, GitForkSyncResult } from '../../../../shared/git-fork-sync' +import type { Repo } from '../../../../shared/repo-types' import { Button } from '../ui/button' import { SearchableSetting } from './SearchableSetting' import { SettingsSegmentedControl } from './SettingsFormControls' diff --git a/src/renderer/src/components/settings/RepositoryHooksSection.test.ts b/src/renderer/src/components/settings/RepositoryHooksSection.test.ts index 6ca17d9fca3..114c7195e82 100644 --- a/src/renderer/src/components/settings/RepositoryHooksSection.test.ts +++ b/src/renderer/src/components/settings/RepositoryHooksSection.test.ts @@ -3,7 +3,7 @@ import React, { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { getLocalCommandSourcePolicyNotice, RepositoryHooksSection } from './RepositoryHooksSection' vi.mock('@/store', () => ({ diff --git a/src/renderer/src/components/settings/RepositoryHooksSection.tsx b/src/renderer/src/components/settings/RepositoryHooksSection.tsx index bec7ba52a28..e6270dce42b 100644 --- a/src/renderer/src/components/settings/RepositoryHooksSection.tsx +++ b/src/renderer/src/components/settings/RepositoryHooksSection.tsx @@ -4,11 +4,11 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import type { HookCommandSourcePolicy, OrcaHooks, - Repo, RepoHookSettings, SetupAgentStartupPolicy, SetupRunPolicy -} from '../../../../shared/types' +} from '../../../../shared/orca-yaml-hook-types' +import type { Repo } from '../../../../shared/repo-types' import { AlertTriangle, ChevronRight, Plus } from 'lucide-react' import { toast } from 'sonner' import { useTranslation } from 'react-i18next' diff --git a/src/renderer/src/components/settings/RepositoryHostSetupActions.tsx b/src/renderer/src/components/settings/RepositoryHostSetupActions.tsx index e6edcbe68dc..a3527747681 100644 --- a/src/renderer/src/components/settings/RepositoryHostSetupActions.tsx +++ b/src/renderer/src/components/settings/RepositoryHostSetupActions.tsx @@ -5,7 +5,7 @@ import type { ProjectHostSetup, ProjectHostSetupCreateResult, ProjectHostSetupResult -} from '../../../../shared/types' +} from '../../../../shared/project-types' import { translate } from '@/i18n/i18n' import { Button } from '../ui/button' import { Label } from '../ui/label' diff --git a/src/renderer/src/components/settings/RepositoryHostSetupsSection.test.tsx b/src/renderer/src/components/settings/RepositoryHostSetupsSection.test.tsx index c448002aa6b..7af24b68947 100644 --- a/src/renderer/src/components/settings/RepositoryHostSetupsSection.test.tsx +++ b/src/renderer/src/components/settings/RepositoryHostSetupsSection.test.tsx @@ -9,7 +9,8 @@ import { RUNTIME_PROTOCOL_VERSION, WORKSPACE_RUN_CONTEXT_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version' -import type { Project, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { useAppStore } from '../../store' import { RepositoryHostSetupsSection } from './RepositoryHostSetupsSection' diff --git a/src/renderer/src/components/settings/RepositoryHostSetupsSection.tsx b/src/renderer/src/components/settings/RepositoryHostSetupsSection.tsx index 9fa983138bf..71b292059a4 100644 --- a/src/renderer/src/components/settings/RepositoryHostSetupsSection.tsx +++ b/src/renderer/src/components/settings/RepositoryHostSetupsSection.tsx @@ -7,7 +7,8 @@ import { } from '../../../../shared/execution-host' import { buildExecutionHostRegistry } from '../../../../shared/execution-host-registry' import { getHostDisplayLabelOverrides } from '../../../../shared/host-setting-overrides' -import type { ProjectHostSetup, Repo } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { useAppStore } from '../../store' import { getProjectHostSetupProjectionFromState } from '../../store/selectors' import { cn } from '../../lib/utils' diff --git a/src/renderer/src/components/settings/RepositoryHostSetupsSection.workspace-window.test.tsx b/src/renderer/src/components/settings/RepositoryHostSetupsSection.workspace-window.test.tsx index 81cdefa0a55..f6a4badabbb 100644 --- a/src/renderer/src/components/settings/RepositoryHostSetupsSection.workspace-window.test.tsx +++ b/src/renderer/src/components/settings/RepositoryHostSetupsSection.workspace-window.test.tsx @@ -9,7 +9,8 @@ import { WORKSPACE_RUN_CONTEXT_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version' import type { RuntimeStatus } from '../../../../shared/runtime-types' -import type { Project, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { useAppStore } from '../../store' import { RepositoryHostSetupsSection } from './RepositoryHostSetupsSection' diff --git a/src/renderer/src/components/settings/RepositoryIconPicker.github-avatar-refresh.test.tsx b/src/renderer/src/components/settings/RepositoryIconPicker.github-avatar-refresh.test.tsx index 996261ab3e9..2d2da75d483 100644 --- a/src/renderer/src/components/settings/RepositoryIconPicker.github-avatar-refresh.test.tsx +++ b/src/renderer/src/components/settings/RepositoryIconPicker.github-avatar-refresh.test.tsx @@ -3,7 +3,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { RepositoryIconPicker } from './RepositoryIconPicker' vi.mock('@/runtime/runtime-rpc-client', () => ({ diff --git a/src/renderer/src/components/settings/RepositoryIconPicker.tsx b/src/renderer/src/components/settings/RepositoryIconPicker.tsx index 51edc955fb5..033bf24391e 100644 --- a/src/renderer/src/components/settings/RepositoryIconPicker.tsx +++ b/src/renderer/src/components/settings/RepositoryIconPicker.tsx @@ -1,7 +1,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { toast } from 'sonner' import { RotateCcw } from 'lucide-react' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import type { RepoIcon } from '../../../../shared/repo-icon' import { DEFAULT_REPO_BADGE_COLOR } from '../../../../shared/constants' import { normalizeRepoBadgeColor } from '../../../../shared/repo-badge-color' diff --git a/src/renderer/src/components/settings/RepositoryPane.test.ts b/src/renderer/src/components/settings/RepositoryPane.test.ts index 47c00a0a601..54518e4932b 100644 --- a/src/renderer/src/components/settings/RepositoryPane.test.ts +++ b/src/renderer/src/components/settings/RepositoryPane.test.ts @@ -5,7 +5,9 @@ import { createRoot, type Root } from 'react-dom/client' import { renderToStaticMarkup } from 'react-dom/server' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../../../shared/constants' -import type { Project, Repo, TerminalTab } from '../../../../shared/types' +import type { Project } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' import { useAppStore } from '../../store' import { diff --git a/src/renderer/src/components/settings/RepositoryPane.tsx b/src/renderer/src/components/settings/RepositoryPane.tsx index ecec034cec2..6b0963ef009 100644 --- a/src/renderer/src/components/settings/RepositoryPane.tsx +++ b/src/renderer/src/components/settings/RepositoryPane.tsx @@ -1,11 +1,7 @@ import { useCallback, useRef, useState } from 'react' -import type { - OrcaHooks, - Project, - ProjectUpdateArgs, - Repo, - RepoHookSettings -} from '../../../../shared/types' +import type { OrcaHooks, RepoHookSettings } from '../../../../shared/orca-yaml-hook-types' +import type { Project, ProjectUpdateArgs } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { getRepoKindLabel, isFolderRepo } from '../../../../shared/repo-kind' import { getRepoExecutionHostId, type ExecutionHostId } from '../../../../shared/execution-host' import { Button } from '../ui/button' diff --git a/src/renderer/src/components/settings/RepositorySourceControlAiActionRows.tsx b/src/renderer/src/components/settings/RepositorySourceControlAiActionRows.tsx index 9fcfe68c077..a9a766d8b83 100644 --- a/src/renderer/src/components/settings/RepositorySourceControlAiActionRows.tsx +++ b/src/renderer/src/components/settings/RepositorySourceControlAiActionRows.tsx @@ -1,6 +1,6 @@ import type React from 'react' import { Terminal } from 'lucide-react' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { CUSTOM_AGENT_ID } from '../../../../shared/commit-message-agent-spec' import type { RepoSourceControlAiOverrides, diff --git a/src/renderer/src/components/settings/RepositorySourceControlAiSection.tsx b/src/renderer/src/components/settings/RepositorySourceControlAiSection.tsx index 7e600b11bf6..9eec7bf2319 100644 --- a/src/renderer/src/components/settings/RepositorySourceControlAiSection.tsx +++ b/src/renderer/src/components/settings/RepositorySourceControlAiSection.tsx @@ -1,6 +1,6 @@ import { useMemo } from 'react' import type React from 'react' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { normalizeSourceControlAiSettings } from '../../../../shared/source-control-ai' import type { SourceControlAiRepoUpdate } from '../../../../shared/source-control-ai-recipe-save' import { useAppStore } from '../../store' diff --git a/src/renderer/src/components/settings/RepositoryWindowsRuntimeSection.tsx b/src/renderer/src/components/settings/RepositoryWindowsRuntimeSection.tsx index 23831b7f601..7c5743c196b 100644 --- a/src/renderer/src/components/settings/RepositoryWindowsRuntimeSection.tsx +++ b/src/renderer/src/components/settings/RepositoryWindowsRuntimeSection.tsx @@ -1,4 +1,5 @@ -import type { GlobalSettings, Project, ProjectUpdateArgs } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Project, ProjectUpdateArgs } from '../../../../shared/project-types' import { SearchableSetting } from './SearchableSetting' import type { SettingsSearchEntry } from './settings-search' import { matchesSettingsSearch } from './settings-search' diff --git a/src/renderer/src/components/settings/RepositoryWorktreeDefaultsSection.test.tsx b/src/renderer/src/components/settings/RepositoryWorktreeDefaultsSection.test.tsx index eaf2b453988..03164eeb261 100644 --- a/src/renderer/src/components/settings/RepositoryWorktreeDefaultsSection.test.tsx +++ b/src/renderer/src/components/settings/RepositoryWorktreeDefaultsSection.test.tsx @@ -3,7 +3,7 @@ import React, { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { RepositoryWorktreeDefaultsSection } from './RepositoryWorktreeDefaultsSection' vi.mock('../../store', () => ({ diff --git a/src/renderer/src/components/settings/RepositoryWorktreeDefaultsSection.tsx b/src/renderer/src/components/settings/RepositoryWorktreeDefaultsSection.tsx index e9bef371510..1aaa4662a4c 100644 --- a/src/renderer/src/components/settings/RepositoryWorktreeDefaultsSection.tsx +++ b/src/renderer/src/components/settings/RepositoryWorktreeDefaultsSection.tsx @@ -1,4 +1,5 @@ -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' import { Button } from '../ui/button' import { Label } from '../ui/label' import { BaseRefPicker } from './BaseRefPicker' diff --git a/src/renderer/src/components/settings/RichMarkdownSpellcheckSetting.tsx b/src/renderer/src/components/settings/RichMarkdownSpellcheckSetting.tsx index c59a6302386..214bff3282d 100644 --- a/src/renderer/src/components/settings/RichMarkdownSpellcheckSetting.tsx +++ b/src/renderer/src/components/settings/RichMarkdownSpellcheckSetting.tsx @@ -1,5 +1,5 @@ import type React from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import { SearchableSetting } from './SearchableSetting' import { SettingsSwitchRow } from './SettingsFormControls' diff --git a/src/renderer/src/components/settings/RuntimeEnvironmentsPane.tsx b/src/renderer/src/components/settings/RuntimeEnvironmentsPane.tsx index bd7d31f9652..a9e46b647ad 100644 --- a/src/renderer/src/components/settings/RuntimeEnvironmentsPane.tsx +++ b/src/renderer/src/components/settings/RuntimeEnvironmentsPane.tsx @@ -15,7 +15,7 @@ import { import { useCallback, useEffect, useRef, useState } from 'react' import { toast } from 'sonner' import { useMountedRef } from '@/hooks/useMountedRef' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { isUserManagedRuntimeEnvironment, type PublicKnownRuntimeEnvironment diff --git a/src/renderer/src/components/settings/Settings.tsx b/src/renderer/src/components/settings/Settings.tsx index cf07ff934cd..e346de234ef 100644 --- a/src/renderer/src/components/settings/Settings.tsx +++ b/src/renderer/src/components/settings/Settings.tsx @@ -10,7 +10,10 @@ import { type MutableRefObject } from 'react' import { toast } from 'sonner' -import type { GlobalSettings, OrcaHooks, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { OrcaHooks } from '../../../../shared/orca-yaml-hook-types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import type { SpeechModelState } from '../../../../shared/speech-types' import type { SourceControlAiSettings, diff --git a/src/renderer/src/components/settings/SettingsSidebar.test.tsx b/src/renderer/src/components/settings/SettingsSidebar.test.tsx index 75b5785be36..c7125b1109e 100644 --- a/src/renderer/src/components/settings/SettingsSidebar.test.tsx +++ b/src/renderer/src/components/settings/SettingsSidebar.test.tsx @@ -7,7 +7,7 @@ import { getDefaultSettings } from '../../../../shared/constants' import { SettingsSidebar } from './SettingsSidebar' import { TooltipProvider } from '../ui/tooltip' import type { SettingsSetupGuideProgress } from './settings-setup-guide-progress' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' const mocks = vi.hoisted(() => ({ useSettingsSetupGuideProgress: vi.fn() diff --git a/src/renderer/src/components/settings/SettingsSidebar.tsx b/src/renderer/src/components/settings/SettingsSidebar.tsx index c56e71b96d0..11f73b3016d 100644 --- a/src/renderer/src/components/settings/SettingsSidebar.tsx +++ b/src/renderer/src/components/settings/SettingsSidebar.tsx @@ -3,7 +3,8 @@ import { useMemo } from 'react' import { ArrowLeft, Search, Server } from 'lucide-react' import type { RepoIcon } from '../../../../shared/repo-icon' import type { SettingsNavIcon, SettingsNavInstallStatus } from '@/lib/settings-navigation-types' -import type { GitHubRepositoryIdentity, GlobalSettings } from '../../../../shared/types' +import type { GitHubRepositoryIdentity } from '../../../../shared/github/pull-request-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { useShortcutKeyComboDetails } from '@/hooks/useShortcutLabel' import { ShortcutKeyCombo } from '../ShortcutKeyCombo' import { cn } from '@/lib/utils' diff --git a/src/renderer/src/components/settings/SourceControlActionRecipeRow.tsx b/src/renderer/src/components/settings/SourceControlActionRecipeRow.tsx index cb0b4c8dc5a..1bdacd6e024 100644 --- a/src/renderer/src/components/settings/SourceControlActionRecipeRow.tsx +++ b/src/renderer/src/components/settings/SourceControlActionRecipeRow.tsx @@ -1,5 +1,6 @@ import { Terminal } from 'lucide-react' -import type { GlobalSettings, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { CustomAgentId } from '../../../../shared/commit-message-agent-spec' import { CUSTOM_AGENT_ID, isCustomAgentId } from '../../../../shared/commit-message-agent-spec' import { diff --git a/src/renderer/src/components/settings/SourceControlAiActionRecipeDefaults.tsx b/src/renderer/src/components/settings/SourceControlAiActionRecipeDefaults.tsx index 56906be96d3..9d00e6505cd 100644 --- a/src/renderer/src/components/settings/SourceControlAiActionRecipeDefaults.tsx +++ b/src/renderer/src/components/settings/SourceControlAiActionRecipeDefaults.tsx @@ -1,7 +1,8 @@ import { useMemo } from 'react' import type React from 'react' import { toast } from 'sonner' -import type { GlobalSettings, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { isFolderRepo } from '../../../../shared/repo-kind' import type { SourceControlAiSettings, diff --git a/src/renderer/src/components/settings/SparsePresetSettingsSection.test.tsx b/src/renderer/src/components/settings/SparsePresetSettingsSection.test.tsx index bcdfccf6e51..271f66d6570 100644 --- a/src/renderer/src/components/settings/SparsePresetSettingsSection.test.tsx +++ b/src/renderer/src/components/settings/SparsePresetSettingsSection.test.tsx @@ -1,6 +1,6 @@ import { renderToStaticMarkup } from 'react-dom/server' import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { SparsePreset } from '../../../../shared/types' +import type { SparsePreset } from '../../../../shared/worktree/create-types' import { SparsePresetSettingsSection } from './SparsePresetSettingsSection' const storeMock = vi.hoisted(() => ({ diff --git a/src/renderer/src/components/settings/SparsePresetSettingsSection.tsx b/src/renderer/src/components/settings/SparsePresetSettingsSection.tsx index a59f8344e44..4c641bb8125 100644 --- a/src/renderer/src/components/settings/SparsePresetSettingsSection.tsx +++ b/src/renderer/src/components/settings/SparsePresetSettingsSection.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react' import { Plus } from 'lucide-react' -import type { SparsePreset } from '../../../../shared/types' +import type { SparsePreset } from '../../../../shared/worktree/create-types' import { useAppStore } from '../../store' import { parseSparsePresetDirectories } from '@/lib/sparse-preset-draft' import { useMountedRef } from '@/hooks/useMountedRef' diff --git a/src/renderer/src/components/settings/TasksPane.test.tsx b/src/renderer/src/components/settings/TasksPane.test.tsx index e87df95c0db..80376ab87d7 100644 --- a/src/renderer/src/components/settings/TasksPane.test.tsx +++ b/src/renderer/src/components/settings/TasksPane.test.tsx @@ -4,7 +4,8 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { renderToStaticMarkup } from 'react-dom/server' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings, TaskProvider } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TaskProvider } from '../../../../shared/task-providers' import type { TaskProviderReadiness } from './task-source-setup-state' import { TasksPane } from './TasksPane' diff --git a/src/renderer/src/components/settings/TasksPane.tsx b/src/renderer/src/components/settings/TasksPane.tsx index c5b547b3850..8b1eb14929a 100644 --- a/src/renderer/src/components/settings/TasksPane.tsx +++ b/src/renderer/src/components/settings/TasksPane.tsx @@ -1,6 +1,7 @@ import { useState } from 'react' import { Github, Gitlab } from 'lucide-react' -import type { GlobalSettings, TaskProvider } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TaskProvider } from '../../../../shared/task-providers' import { TASK_PROVIDERS, normalizeVisibleTaskProviders, diff --git a/src/renderer/src/components/settings/TerminalAdvancedSection.test.tsx b/src/renderer/src/components/settings/TerminalAdvancedSection.test.tsx index a9f361d7ce3..f06fe63775a 100644 --- a/src/renderer/src/components/settings/TerminalAdvancedSection.test.tsx +++ b/src/renderer/src/components/settings/TerminalAdvancedSection.test.tsx @@ -3,7 +3,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { TerminalAdvancedSection } from './TerminalAdvancedSection' vi.mock('@/i18n/i18n', () => ({ diff --git a/src/renderer/src/components/settings/TerminalAdvancedSection.tsx b/src/renderer/src/components/settings/TerminalAdvancedSection.tsx index 27d29ed4241..a0a2df5c569 100644 --- a/src/renderer/src/components/settings/TerminalAdvancedSection.tsx +++ b/src/renderer/src/components/settings/TerminalAdvancedSection.tsx @@ -1,5 +1,5 @@ import { useState } from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { DESKTOP_TERMINAL_SCROLLBACK_ROWS_MAX, DESKTOP_TERMINAL_SCROLLBACK_ROWS_MIN, diff --git a/src/renderer/src/components/settings/TerminalAdvancedTypographyControls.tsx b/src/renderer/src/components/settings/TerminalAdvancedTypographyControls.tsx index b6fd19db228..870314eb64e 100644 --- a/src/renderer/src/components/settings/TerminalAdvancedTypographyControls.tsx +++ b/src/renderer/src/components/settings/TerminalAdvancedTypographyControls.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { DEFAULT_TERMINAL_FONT_WEIGHT, DEFAULT_TERMINAL_FONT_WEIGHT_BOLD, diff --git a/src/renderer/src/components/settings/TerminalAppearanceSection.tsx b/src/renderer/src/components/settings/TerminalAppearanceSection.tsx index d0ee90eb03c..b13f535a83a 100644 --- a/src/renderer/src/components/settings/TerminalAppearanceSection.tsx +++ b/src/renderer/src/components/settings/TerminalAppearanceSection.tsx @@ -1,5 +1,5 @@ import { useState } from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { matchesSettingsSearch, normalizeSettingsSearchQuery, diff --git a/src/renderer/src/components/settings/TerminalCursorAppearanceSection.tsx b/src/renderer/src/components/settings/TerminalCursorAppearanceSection.tsx index 09219834edd..5188f0e3424 100644 --- a/src/renderer/src/components/settings/TerminalCursorAppearanceSection.tsx +++ b/src/renderer/src/components/settings/TerminalCursorAppearanceSection.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { NumberField, SettingsRow, diff --git a/src/renderer/src/components/settings/TerminalFontSizeSetting.test.tsx b/src/renderer/src/components/settings/TerminalFontSizeSetting.test.tsx index d5e6ecc54bd..949dffbb6a7 100644 --- a/src/renderer/src/components/settings/TerminalFontSizeSetting.test.tsx +++ b/src/renderer/src/components/settings/TerminalFontSizeSetting.test.tsx @@ -3,7 +3,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { TerminalFontSizeSetting } from './TerminalFontSizeSetting' vi.mock('@/i18n/i18n', () => ({ diff --git a/src/renderer/src/components/settings/TerminalFontSizeSetting.tsx b/src/renderer/src/components/settings/TerminalFontSizeSetting.tsx index 61a451c7377..a879136717f 100644 --- a/src/renderer/src/components/settings/TerminalFontSizeSetting.tsx +++ b/src/renderer/src/components/settings/TerminalFontSizeSetting.tsx @@ -1,5 +1,5 @@ import { Minus, Plus } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Button } from '../ui/button' import { Input } from '../ui/input' import { SettingsRow } from './SettingsFormControls' diff --git a/src/renderer/src/components/settings/TerminalInteractionSection.tsx b/src/renderer/src/components/settings/TerminalInteractionSection.tsx index 4ad9d67e762..f7c92e998a4 100644 --- a/src/renderer/src/components/settings/TerminalInteractionSection.tsx +++ b/src/renderer/src/components/settings/TerminalInteractionSection.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { RotateCcw } from 'lucide-react' import { Slider } from '../ui/slider' import { Button } from '../ui/button' diff --git a/src/renderer/src/components/settings/TerminalMacKeyboardSection.tsx b/src/renderer/src/components/settings/TerminalMacKeyboardSection.tsx index 0e4036f2478..f02cbf3d614 100644 --- a/src/renderer/src/components/settings/TerminalMacKeyboardSection.tsx +++ b/src/renderer/src/components/settings/TerminalMacKeyboardSection.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { useDetectedOptionAsAlt } from '@/lib/keyboard-layout/use-effective-mac-option-as-alt' import { translate } from '@/i18n/i18n' import { SearchableSetting } from './SearchableSetting' diff --git a/src/renderer/src/components/settings/TerminalPane.tsx b/src/renderer/src/components/settings/TerminalPane.tsx index a2e463edfa2..aacaeffab13 100644 --- a/src/renderer/src/components/settings/TerminalPane.tsx +++ b/src/renderer/src/components/settings/TerminalPane.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Separator } from '../ui/separator' import { matchesSettingsSearch } from './settings-search' import { useAppStore } from '../../store' diff --git a/src/renderer/src/components/settings/TerminalPaneAppearanceSection.tsx b/src/renderer/src/components/settings/TerminalPaneAppearanceSection.tsx index bb4e3f79397..f9d07b8d63f 100644 --- a/src/renderer/src/components/settings/TerminalPaneAppearanceSection.tsx +++ b/src/renderer/src/components/settings/TerminalPaneAppearanceSection.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { DEFAULT_TERMINAL_INACTIVE_PANE_OPACITY } from '../../../../shared/constants' import { NumberField, SettingsSubsectionHeader } from './SettingsFormControls' import { SearchableSetting } from './SearchableSetting' diff --git a/src/renderer/src/components/settings/TerminalRenderingSection.tsx b/src/renderer/src/components/settings/TerminalRenderingSection.tsx index 5917247171f..47e3017d353 100644 --- a/src/renderer/src/components/settings/TerminalRenderingSection.tsx +++ b/src/renderer/src/components/settings/TerminalRenderingSection.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { SettingsRow, SettingsSegmentedControl, diff --git a/src/renderer/src/components/settings/TerminalSettingsPreview.lifecycle.test.tsx b/src/renderer/src/components/settings/TerminalSettingsPreview.lifecycle.test.tsx index 211424b09be..fd2ffa0345e 100644 --- a/src/renderer/src/components/settings/TerminalSettingsPreview.lifecycle.test.tsx +++ b/src/renderer/src/components/settings/TerminalSettingsPreview.lifecycle.test.tsx @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type { Mock } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' type Cleanup = () => void diff --git a/src/renderer/src/components/settings/TerminalSettingsPreview.tsx b/src/renderer/src/components/settings/TerminalSettingsPreview.tsx index 20b70ca2139..b3a881f9cd0 100644 --- a/src/renderer/src/components/settings/TerminalSettingsPreview.tsx +++ b/src/renderer/src/components/settings/TerminalSettingsPreview.tsx @@ -14,7 +14,7 @@ import { resolveTerminalLigaturesEnabled } from '../../../../shared/terminal-lig import { normalizeTerminalLineHeight } from '../../../../shared/terminal-line-height-settings' import { PREVIEW_BUFFER } from './terminal-preview-content' import { SettingsSwitch } from './SettingsFormControls' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' // Why: pinned so PREVIEW_BUFFER never wraps; 36 cols fits the 32-char longest line + margin (larger fonts clip, not wrap). diff --git a/src/renderer/src/components/settings/TerminalSetupScriptSection.tsx b/src/renderer/src/components/settings/TerminalSetupScriptSection.tsx index c3b6f549cd8..92bb6fa44a3 100644 --- a/src/renderer/src/components/settings/TerminalSetupScriptSection.tsx +++ b/src/renderer/src/components/settings/TerminalSetupScriptSection.tsx @@ -1,4 +1,5 @@ -import type { GlobalSettings, SetupScriptLaunchMode } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { SetupScriptLaunchMode } from '../../../../shared/worktree/launch-types' import { ToggleGroup, ToggleGroupItem } from '../ui/toggle-group' import { SettingsRow, SettingsSubsectionHeader } from './SettingsFormControls' import { SearchableSetting } from './SearchableSetting' diff --git a/src/renderer/src/components/settings/TerminalThemeSections.lifecycle.test.ts b/src/renderer/src/components/settings/TerminalThemeSections.lifecycle.test.ts index 0114ea3ebf4..39cd8763001 100644 --- a/src/renderer/src/components/settings/TerminalThemeSections.lifecycle.test.ts +++ b/src/renderer/src/components/settings/TerminalThemeSections.lifecycle.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { UseWarpThemeImportReturn } from './useWarpThemeImport' let themeTarget: 'dark' | 'light' | undefined = 'dark' diff --git a/src/renderer/src/components/settings/TerminalThemeSections.tsx b/src/renderer/src/components/settings/TerminalThemeSections.tsx index 1fa765bb271..133801aa497 100644 --- a/src/renderer/src/components/settings/TerminalThemeSections.tsx +++ b/src/renderer/src/components/settings/TerminalThemeSections.tsx @@ -1,5 +1,5 @@ import { useState, type Dispatch, type ReactNode, type SetStateAction } from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { ColorField, SettingsSegmentedControl, diff --git a/src/renderer/src/components/settings/TerminalWindowSection.tsx b/src/renderer/src/components/settings/TerminalWindowSection.tsx index 0c38f5c00b6..863d7fa11b0 100644 --- a/src/renderer/src/components/settings/TerminalWindowSection.tsx +++ b/src/renderer/src/components/settings/TerminalWindowSection.tsx @@ -1,6 +1,6 @@ import { useRef, useState } from 'react' import { RotateCw } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { Button } from '../ui/button' import { Label } from '../ui/label' import { Switch } from '../ui/switch' diff --git a/src/renderer/src/components/settings/TerminalWindowsShellSection.tsx b/src/renderer/src/components/settings/TerminalWindowsShellSection.tsx index 8a191087092..6009e551653 100644 --- a/src/renderer/src/components/settings/TerminalWindowsShellSection.tsx +++ b/src/renderer/src/components/settings/TerminalWindowsShellSection.tsx @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { WINDOWS_GIT_BASH_SHELL } from '../../../../shared/windows-terminal-shell' import { SettingsRow, diff --git a/src/renderer/src/components/settings/VoicePane.test.tsx b/src/renderer/src/components/settings/VoicePane.test.tsx index 84f6bbd5393..1cf41781125 100644 --- a/src/renderer/src/components/settings/VoicePane.test.tsx +++ b/src/renderer/src/components/settings/VoicePane.test.tsx @@ -5,7 +5,7 @@ import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { DeveloperPermissionRequestResult } from '../../../../shared/developer-permissions-types' import type { SpeechModelManifest } from '../../../../shared/speech-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { getDefaultVoiceSettings } from '../../../../shared/constants' import { handleVoiceDictationToggle, VoicePane } from './VoicePane' diff --git a/src/renderer/src/components/settings/VoicePane.tsx b/src/renderer/src/components/settings/VoicePane.tsx index f6729301702..7d4d938325f 100644 --- a/src/renderer/src/components/settings/VoicePane.tsx +++ b/src/renderer/src/components/settings/VoicePane.tsx @@ -1,5 +1,5 @@ import { useCallback, useEffect, useRef, useState } from 'react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { getDefaultVoiceSettings } from '../../../../shared/constants' import type { SpeechModelManifest, VoiceSettings } from '../../../../shared/speech-types' import { Separator } from '../ui/separator' diff --git a/src/renderer/src/components/settings/WorkspaceDirectorySetting.test.tsx b/src/renderer/src/components/settings/WorkspaceDirectorySetting.test.tsx index d55a2336af7..26b86e50373 100644 --- a/src/renderer/src/components/settings/WorkspaceDirectorySetting.test.tsx +++ b/src/renderer/src/components/settings/WorkspaceDirectorySetting.test.tsx @@ -4,7 +4,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../../../shared/constants' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { WorkspaceDirectorySetting } from './WorkspaceDirectorySetting' vi.mock('../sidebar/use-sidebar-host-scope-options', () => ({ diff --git a/src/renderer/src/components/settings/WorkspaceDirectorySetting.tsx b/src/renderer/src/components/settings/WorkspaceDirectorySetting.tsx index 8633b735a96..6ca5e985170 100644 --- a/src/renderer/src/components/settings/WorkspaceDirectorySetting.tsx +++ b/src/renderer/src/components/settings/WorkspaceDirectorySetting.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useId, useRef, useState } from 'react' import { FolderOpen, RotateCcw } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { getEffectiveHostSetting, getHostSettingOverride, diff --git a/src/renderer/src/components/settings/WorktreeSymlinksSection.tsx b/src/renderer/src/components/settings/WorktreeSymlinksSection.tsx index 33a918a9cdf..02f90518df3 100644 --- a/src/renderer/src/components/settings/WorktreeSymlinksSection.tsx +++ b/src/renderer/src/components/settings/WorktreeSymlinksSection.tsx @@ -1,6 +1,6 @@ import { useEffect, useMemo, useState } from 'react' import { Folder, Link2, Plus, X } from 'lucide-react' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { Button } from '../ui/button' import { Command, CommandEmpty, CommandInput, CommandItem, CommandList } from '../ui/command' import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover' diff --git a/src/renderer/src/components/settings/appearance-interface-summary.ts b/src/renderer/src/components/settings/appearance-interface-summary.ts index e37a4f2aa66..ee2497be488 100644 --- a/src/renderer/src/components/settings/appearance-interface-summary.ts +++ b/src/renderer/src/components/settings/appearance-interface-summary.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { getUiLanguageChoiceLabel, SHOW_UI_LANGUAGE_SETTING, diff --git a/src/renderer/src/components/settings/appearance-status-bar-antigravity-toggle-search.ts b/src/renderer/src/components/settings/appearance-status-bar-antigravity-toggle-search.ts index 68c6513bb72..0b0474e85e7 100644 --- a/src/renderer/src/components/settings/appearance-status-bar-antigravity-toggle-search.ts +++ b/src/renderer/src/components/settings/appearance-status-bar-antigravity-toggle-search.ts @@ -1,4 +1,4 @@ -import type { StatusBarItem } from '../../../../shared/types' +import type { StatusBarItem } from '../../../../shared/ui-chrome-types' import { translate } from '@/i18n/i18n' import { translateSearchKeyword } from './settings-search-keywords' diff --git a/src/renderer/src/components/settings/appearance-status-bar-grok-toggle-search.ts b/src/renderer/src/components/settings/appearance-status-bar-grok-toggle-search.ts index 3ff4295238e..f2709bbe8a7 100644 --- a/src/renderer/src/components/settings/appearance-status-bar-grok-toggle-search.ts +++ b/src/renderer/src/components/settings/appearance-status-bar-grok-toggle-search.ts @@ -1,4 +1,4 @@ -import type { StatusBarItem } from '../../../../shared/types' +import type { StatusBarItem } from '../../../../shared/ui-chrome-types' import { translate } from '@/i18n/i18n' import { translateSearchKeyword } from './settings-search-keywords' diff --git a/src/renderer/src/components/settings/appearance-status-bar-search.ts b/src/renderer/src/components/settings/appearance-status-bar-search.ts index 02403c24f4b..9be73da6a91 100644 --- a/src/renderer/src/components/settings/appearance-status-bar-search.ts +++ b/src/renderer/src/components/settings/appearance-status-bar-search.ts @@ -1,4 +1,4 @@ -import type { StatusBarItem } from '../../../../shared/types' +import type { StatusBarItem } from '../../../../shared/ui-chrome-types' import { createLocalizedCatalog } from '@/i18n/localized-catalog' import { translate } from '@/i18n/i18n' import { translateSearchKeyword } from './settings-search-keywords' diff --git a/src/renderer/src/components/settings/codex-account-auth-warning.ts b/src/renderer/src/components/settings/codex-account-auth-warning.ts index 9db1e3ae8e5..85fce048857 100644 --- a/src/renderer/src/components/settings/codex-account-auth-warning.ts +++ b/src/renderer/src/components/settings/codex-account-auth-warning.ts @@ -2,7 +2,7 @@ import type { ProviderRateLimits, RateLimitRuntimeTarget } from '../../../../shared/rate-limit-types' -import type { CodexSystemDefaultIdentity } from '../../../../shared/types' +import type { CodexSystemDefaultIdentity } from '../../../../shared/managed-account-types' import { isCodexAuthError } from '../../../../shared/codex-auth-errors' type AccountRuntime = { diff --git a/src/renderer/src/components/settings/codex-session-source-home-control.test.tsx b/src/renderer/src/components/settings/codex-session-source-home-control.test.tsx index 731398c3d0b..fdf27134754 100644 --- a/src/renderer/src/components/settings/codex-session-source-home-control.test.tsx +++ b/src/renderer/src/components/settings/codex-session-source-home-control.test.tsx @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { buildCodexSessionSourceHomeControl } from './codex-session-source-home-control' function settingsWith( diff --git a/src/renderer/src/components/settings/codex-session-source-home-control.tsx b/src/renderer/src/components/settings/codex-session-source-home-control.tsx index 6a49a7b6042..b459d9ffb9d 100644 --- a/src/renderer/src/components/settings/codex-session-source-home-control.tsx +++ b/src/renderer/src/components/settings/codex-session-source-home-control.tsx @@ -1,6 +1,6 @@ import { useState } from 'react' import { Info } from 'lucide-react' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { normalizeGlobalWindowsRuntimeDefault } from '../../../../shared/project-execution-runtime' import { Button } from '../ui/button' import { Input } from '../ui/input' diff --git a/src/renderer/src/components/settings/notification-settings-copy.ts b/src/renderer/src/components/settings/notification-settings-copy.ts index f2d06aeab16..266e2183d75 100644 --- a/src/renderer/src/components/settings/notification-settings-copy.ts +++ b/src/renderer/src/components/settings/notification-settings-copy.ts @@ -1,5 +1,5 @@ import { toast } from 'sonner' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' type SystemNotificationSettingsCopy = { diff --git a/src/renderer/src/components/settings/provider-account-scope.ts b/src/renderer/src/components/settings/provider-account-scope.ts index 5687de9adf8..f6745b3ed9c 100644 --- a/src/renderer/src/components/settings/provider-account-scope.ts +++ b/src/renderer/src/components/settings/provider-account-scope.ts @@ -1,6 +1,6 @@ import { translate } from '@/i18n/i18n' import { getLocalExecutionHostLabel } from '../../../../shared/execution-host' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' export type ProviderAccountScope = { label: string diff --git a/src/renderer/src/components/settings/provider-account-visibility.test.ts b/src/renderer/src/components/settings/provider-account-visibility.test.ts index 7c18062c5de..551584779ca 100644 --- a/src/renderer/src/components/settings/provider-account-visibility.test.ts +++ b/src/renderer/src/components/settings/provider-account-visibility.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest' import type { ClaudeRateLimitAccountsState, CodexRateLimitAccountsState -} from '../../../../shared/types' +} from '../../../../shared/managed-account-types' import { getProviderAccountActiveIdForView, getProviderAccountRuntime, diff --git a/src/renderer/src/components/settings/provider-account-visibility.ts b/src/renderer/src/components/settings/provider-account-visibility.ts index a572d2f4ab2..cb6ac050814 100644 --- a/src/renderer/src/components/settings/provider-account-visibility.ts +++ b/src/renderer/src/components/settings/provider-account-visibility.ts @@ -3,7 +3,7 @@ import type { ClaudeRateLimitAccountsState, CodexManagedAccountRuntimeSelection, CodexRateLimitAccountsState -} from '../../../../shared/types' +} from '../../../../shared/managed-account-types' type ProviderAccount = | ClaudeRateLimitAccountsState['accounts'][number] diff --git a/src/renderer/src/components/settings/repository-git-author-search-entries.ts b/src/renderer/src/components/settings/repository-git-author-search-entries.ts index eb202d55209..e18437c05cc 100644 --- a/src/renderer/src/components/settings/repository-git-author-search-entries.ts +++ b/src/renderer/src/components/settings/repository-git-author-search-entries.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import type { SettingsSearchEntry } from './settings-search' import { translate } from '@/i18n/i18n' import { translateSearchKeyword } from './settings-search-keywords' diff --git a/src/renderer/src/components/settings/repository-git-hooks-search-entries.ts b/src/renderer/src/components/settings/repository-git-hooks-search-entries.ts index a5323265f5b..281622b66db 100644 --- a/src/renderer/src/components/settings/repository-git-hooks-search-entries.ts +++ b/src/renderer/src/components/settings/repository-git-hooks-search-entries.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import type { SettingsSearchEntry } from './settings-search' import { translate } from '@/i18n/i18n' import { translateSearchKeyword } from './settings-search-keywords' diff --git a/src/renderer/src/components/settings/repository-git-worktree-search-entries.ts b/src/renderer/src/components/settings/repository-git-worktree-search-entries.ts index 2aacea52b61..46d6e3ff529 100644 --- a/src/renderer/src/components/settings/repository-git-worktree-search-entries.ts +++ b/src/renderer/src/components/settings/repository-git-worktree-search-entries.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import type { SettingsSearchEntry } from './settings-search' import { translate } from '@/i18n/i18n' import { translateSearchKeyword } from './settings-search-keywords' diff --git a/src/renderer/src/components/settings/repository-host-setup-options.ts b/src/renderer/src/components/settings/repository-host-setup-options.ts index c66d8fd1442..987bcd80f53 100644 --- a/src/renderer/src/components/settings/repository-host-setup-options.ts +++ b/src/renderer/src/components/settings/repository-host-setup-options.ts @@ -4,7 +4,7 @@ import { PROJECT_HOST_SETUP_RUNTIME_CAPABILITY, WORKSPACE_RUN_CONTEXT_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version' -import type { ProjectHostSetup, ProjectHostSetupState } from '../../../../shared/types' +import type { ProjectHostSetup, ProjectHostSetupState } from '../../../../shared/project-types' import { translate } from '@/i18n/i18n' export type SetupHostOption = { diff --git a/src/renderer/src/components/settings/repository-icon-github.test.ts b/src/renderer/src/components/settings/repository-icon-github.test.ts index 2926d0fd2b4..3abb42ae89d 100644 --- a/src/renderer/src/components/settings/repository-icon-github.test.ts +++ b/src/renderer/src/components/settings/repository-icon-github.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { githubAvatarIcon } from '../../../../shared/repo-icon' import { buildRepositoryGitHubAvatarUpdate, diff --git a/src/renderer/src/components/settings/repository-icon-github.ts b/src/renderer/src/components/settings/repository-icon-github.ts index 0a44a88f030..f3dbee71fe7 100644 --- a/src/renderer/src/components/settings/repository-icon-github.ts +++ b/src/renderer/src/components/settings/repository-icon-github.ts @@ -1,4 +1,5 @@ -import type { GitHubRepositoryIdentity, Repo } from '../../../../shared/types' +import type { GitHubRepositoryIdentity } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' import { githubAvatarIcon, githubAvatarSlug, type RepoIcon } from '../../../../shared/repo-icon' import { githubRepoIdentityKey } from '../../../../shared/github/repository-identity-key' import { callRuntimeRpc, type getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' diff --git a/src/renderer/src/components/settings/repository-identity-search.ts b/src/renderer/src/components/settings/repository-identity-search.ts index 239090948ec..0be209f66d1 100644 --- a/src/renderer/src/components/settings/repository-identity-search.ts +++ b/src/renderer/src/components/settings/repository-identity-search.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { normalizeSettingsSearchQuery } from './settings-search' export function matchesRepositoryIdentitySearch(query: string, repo: Repo): boolean { diff --git a/src/renderer/src/components/settings/repository-search.ts b/src/renderer/src/components/settings/repository-search.ts index ea878ee2b8e..c9d2a91682f 100644 --- a/src/renderer/src/components/settings/repository-search.ts +++ b/src/renderer/src/components/settings/repository-search.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { isFolderRepo } from '../../../../shared/repo-kind' import { getRepoExecutionHostId, LOCAL_EXECUTION_HOST_ID } from '../../../../shared/execution-host' import type { SettingsSearchEntry } from './settings-search' diff --git a/src/renderer/src/components/settings/repository-source-control-ai-draft.ts b/src/renderer/src/components/settings/repository-source-control-ai-draft.ts index 370f60f3d2f..079b3d2cb43 100644 --- a/src/renderer/src/components/settings/repository-source-control-ai-draft.ts +++ b/src/renderer/src/components/settings/repository-source-control-ai-draft.ts @@ -7,7 +7,7 @@ import { type SourceControlActionId } from '../../../../shared/source-control-ai-actions' import type { RepoSourceControlAiOverrides } from '../../../../shared/source-control-ai-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { completeRepoActionRecipe } from './repository-source-control-ai-labels' import { SOURCE_CONTROL_TEXT_ACTION_ID_SET } from './source-control-action-recipe-options' diff --git a/src/renderer/src/components/settings/repository-source-control-ai-global-ux.ts b/src/renderer/src/components/settings/repository-source-control-ai-global-ux.ts index 9cce9bc30fe..a27db245e6d 100644 --- a/src/renderer/src/components/settings/repository-source-control-ai-global-ux.ts +++ b/src/renderer/src/components/settings/repository-source-control-ai-global-ux.ts @@ -1,5 +1,6 @@ import { useEffect, useMemo, useRef, useState } from 'react' -import type { GlobalSettings, TuiAgent } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { CUSTOM_AGENT_ID } from '../../../../shared/commit-message-agent-spec' import type { RepoSourceControlAiOverrides, diff --git a/src/renderer/src/components/settings/repository-source-control-ai-labels.ts b/src/renderer/src/components/settings/repository-source-control-ai-labels.ts index 64f0a111080..afaa7c9e9eb 100644 --- a/src/renderer/src/components/settings/repository-source-control-ai-labels.ts +++ b/src/renderer/src/components/settings/repository-source-control-ai-labels.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { DEFAULT_SOURCE_CONTROL_ACTION_COMMAND_TEMPLATES, resolveSourceControlActionCommandTemplate, diff --git a/src/renderer/src/components/settings/setting-labels.ts b/src/renderer/src/components/settings/setting-labels.ts index 95eb3a26c7c..c2cec96322f 100644 --- a/src/renderer/src/components/settings/setting-labels.ts +++ b/src/renderer/src/components/settings/setting-labels.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' export const SETTING_LABELS: Partial> = { terminalFontSize: 'Font Size', diff --git a/src/renderer/src/components/settings/settings-project-list.test.ts b/src/renderer/src/components/settings/settings-project-list.test.ts index 41f82a095bc..2b60d077ef3 100644 --- a/src/renderer/src/components/settings/settings-project-list.test.ts +++ b/src/renderer/src/components/settings/settings-project-list.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it, vi } from 'vitest' -import type { ProjectHostSetup, Repo } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { buildRepoIdToHostSelection, buildRepoIdToRepresentative, diff --git a/src/renderer/src/components/settings/settings-project-list.ts b/src/renderer/src/components/settings/settings-project-list.ts index e963c034822..14de9f8d848 100644 --- a/src/renderer/src/components/settings/settings-project-list.ts +++ b/src/renderer/src/components/settings/settings-project-list.ts @@ -1,4 +1,5 @@ -import type { Project, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { getRepoExecutionHostId, LOCAL_EXECUTION_HOST_ID, diff --git a/src/renderer/src/components/settings/shortcut-definition-catalog.ts b/src/renderer/src/components/settings/shortcut-definition-catalog.ts index 882f74ab7fc..758fcbb2202 100644 --- a/src/renderer/src/components/settings/shortcut-definition-catalog.ts +++ b/src/renderer/src/components/settings/shortcut-definition-catalog.ts @@ -5,7 +5,7 @@ import { type KeybindingDefinition, type KeybindingOverrides } from '../../../../shared/keybindings' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { ActivePluginCommand } from '@/store/plugin-panels' import { buildPluginCommandKeybindingDefinitions } from '@/lib/plugin-command-keybindings' import { disabledAgentTabActionIds, groupDefinitions, type ShortcutGroup } from './shortcut-groups' diff --git a/src/renderer/src/components/settings/shortcut-groups.ts b/src/renderer/src/components/settings/shortcut-groups.ts index 054a95baf27..495dbbfdd41 100644 --- a/src/renderer/src/components/settings/shortcut-groups.ts +++ b/src/renderer/src/components/settings/shortcut-groups.ts @@ -5,7 +5,7 @@ import { type KeybindingDefinition } from '../../../../shared/keybindings' import { normalizeDisabledTuiAgents } from '../../../../shared/tui-agent-selection' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' export type ShortcutGroup = { title: string diff --git a/src/renderer/src/components/settings/source-control-action-recipe-options.ts b/src/renderer/src/components/settings/source-control-action-recipe-options.ts index 1f109d5ed75..dfeaeda128b 100644 --- a/src/renderer/src/components/settings/source-control-action-recipe-options.ts +++ b/src/renderer/src/components/settings/source-control-action-recipe-options.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { SOURCE_CONTROL_TEXT_ACTION_IDS, type SourceControlActionId diff --git a/src/renderer/src/components/settings/sparse-preset-settings-row.tsx b/src/renderer/src/components/settings/sparse-preset-settings-row.tsx index 44cc9775a06..3c0fa0c4a0c 100644 --- a/src/renderer/src/components/settings/sparse-preset-settings-row.tsx +++ b/src/renderer/src/components/settings/sparse-preset-settings-row.tsx @@ -1,5 +1,5 @@ import { Bookmark, LoaderCircle, Pencil, Trash2 } from 'lucide-react' -import type { SparsePreset } from '../../../../shared/types' +import type { SparsePreset } from '../../../../shared/worktree/create-types' import { cn } from '@/lib/utils' import { Button } from '../ui/button' import { formatSparsePresetUpdatedAt } from './sparse-preset-date' diff --git a/src/renderer/src/components/settings/task-source-setup-state.test.ts b/src/renderer/src/components/settings/task-source-setup-state.test.ts index d2e4e6a5c27..6eec46a34db 100644 --- a/src/renderer/src/components/settings/task-source-setup-state.test.ts +++ b/src/renderer/src/components/settings/task-source-setup-state.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TaskProvider } from '../../../../shared/types' +import type { TaskProvider } from '../../../../shared/task-providers' import { getAutoExpandedTaskProvider, getIncompleteVisibleTaskProviders, diff --git a/src/renderer/src/components/settings/task-source-setup-state.ts b/src/renderer/src/components/settings/task-source-setup-state.ts index 3ad27d48fa9..628de69dbf0 100644 --- a/src/renderer/src/components/settings/task-source-setup-state.ts +++ b/src/renderer/src/components/settings/task-source-setup-state.ts @@ -1,4 +1,4 @@ -import type { TaskProvider } from '../../../../shared/types' +import type { TaskProvider } from '../../../../shared/task-providers' import type { IntegrationStatusTone } from '@/components/integration-status-pill' export type TaskProviderReadiness = { diff --git a/src/renderer/src/components/settings/terminal-window-color-groups.tsx b/src/renderer/src/components/settings/terminal-window-color-groups.tsx index 652d9ffc04c..41021681b06 100644 --- a/src/renderer/src/components/settings/terminal-window-color-groups.tsx +++ b/src/renderer/src/components/settings/terminal-window-color-groups.tsx @@ -1,4 +1,4 @@ -import type { TerminalColorOverrides } from '../../../../shared/types' +import type { TerminalColorOverrides } from '../../../../shared/terminal-color-overrides' import { translate } from '@/i18n/i18n' export const COLOR_OVERRIDE_GROUPS: { diff --git a/src/renderer/src/components/settings/use-task-source-provider-readiness.test.tsx b/src/renderer/src/components/settings/use-task-source-provider-readiness.test.tsx index cb2cb636692..d00a358996f 100644 --- a/src/renderer/src/components/settings/use-task-source-provider-readiness.test.tsx +++ b/src/renderer/src/components/settings/use-task-source-provider-readiness.test.tsx @@ -3,7 +3,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { TaskProvider } from '../../../../shared/types' +import type { TaskProvider } from '../../../../shared/task-providers' import type { TaskProviderReadiness } from './task-source-setup-state' import { useTaskSourceProviderReadiness } from './use-task-source-provider-readiness' diff --git a/src/renderer/src/components/settings/use-task-source-provider-readiness.ts b/src/renderer/src/components/settings/use-task-source-provider-readiness.ts index 97db089a677..6b9fa6171ba 100644 --- a/src/renderer/src/components/settings/use-task-source-provider-readiness.ts +++ b/src/renderer/src/components/settings/use-task-source-provider-readiness.ts @@ -1,5 +1,5 @@ import { useMemo } from 'react' -import type { TaskProvider } from '../../../../shared/types' +import type { TaskProvider } from '../../../../shared/task-providers' import { GLOBAL_AGENT_SKILL_SOURCE_KINDS, useInstalledAgentSkillNames diff --git a/src/renderer/src/components/settings/useGhosttyImport.test.ts b/src/renderer/src/components/settings/useGhosttyImport.test.ts index 26326b99286..ee3cb6560b6 100644 --- a/src/renderer/src/components/settings/useGhosttyImport.test.ts +++ b/src/renderer/src/components/settings/useGhosttyImport.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { GhosttyImportPreview, GlobalSettings } from '../../../../shared/types' +import type { GhosttyImportPreview, GlobalSettings } from '../../../../shared/global-settings-types' const mockStateValues: unknown[] = [] let mockStateIndex = 0 diff --git a/src/renderer/src/components/settings/useGhosttyImport.ts b/src/renderer/src/components/settings/useGhosttyImport.ts index 8031008d21a..39e25f9d044 100644 --- a/src/renderer/src/components/settings/useGhosttyImport.ts +++ b/src/renderer/src/components/settings/useGhosttyImport.ts @@ -1,5 +1,5 @@ import { useState } from 'react' -import type { GhosttyImportPreview, GlobalSettings } from '../../../../shared/types' +import type { GhosttyImportPreview, GlobalSettings } from '../../../../shared/global-settings-types' import { useMountedRef } from '../../hooks/useMountedRef' export type UseGhosttyImportReturn = { diff --git a/src/renderer/src/components/settings/useWarpThemeImport.test.ts b/src/renderer/src/components/settings/useWarpThemeImport.test.ts index cc0a31288dd..c76850cfbda 100644 --- a/src/renderer/src/components/settings/useWarpThemeImport.test.ts +++ b/src/renderer/src/components/settings/useWarpThemeImport.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { MAX_TERMINAL_CUSTOM_THEMES, type WarpThemeImportPreview diff --git a/src/renderer/src/components/settings/useWarpThemeImport.ts b/src/renderer/src/components/settings/useWarpThemeImport.ts index 615df1a0f54..94eadcda7ba 100644 --- a/src/renderer/src/components/settings/useWarpThemeImport.ts +++ b/src/renderer/src/components/settings/useWarpThemeImport.ts @@ -1,6 +1,6 @@ import { useState } from 'react' import { toast } from 'sonner' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { MAX_TERMINAL_CUSTOM_THEMES, normalizeTerminalCustomThemes, diff --git a/src/renderer/src/components/setup-guide/setup-guide-progress-readiness.ts b/src/renderer/src/components/setup-guide/setup-guide-progress-readiness.ts index f74ffeaa612..629e9ff0a23 100644 --- a/src/renderer/src/components/setup-guide/setup-guide-progress-readiness.ts +++ b/src/renderer/src/components/setup-guide/setup-guide-progress-readiness.ts @@ -1,6 +1,7 @@ import { getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' import type { ComputerUsePermissionStatusResult } from '../../../../shared/computer-use-permissions-types' -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' export type SetupScriptProbeState = { signature: string | null diff --git a/src/renderer/src/components/sidebar/AddProjectFromFolderDialog.test.tsx b/src/renderer/src/components/sidebar/AddProjectFromFolderDialog.test.tsx index 7310d450a69..cb793b2bab6 100644 --- a/src/renderer/src/components/sidebar/AddProjectFromFolderDialog.test.tsx +++ b/src/renderer/src/components/sidebar/AddProjectFromFolderDialog.test.tsx @@ -1,7 +1,7 @@ import { renderToStaticMarkup } from 'react-dom/server' import type * as ReactModule from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' type ButtonCapture = { label: string diff --git a/src/renderer/src/components/sidebar/AddProjectFromFolderDialog.tsx b/src/renderer/src/components/sidebar/AddProjectFromFolderDialog.tsx index f3ef3b43c22..a7873acf0fc 100644 --- a/src/renderer/src/components/sidebar/AddProjectFromFolderDialog.tsx +++ b/src/renderer/src/components/sidebar/AddProjectFromFolderDialog.tsx @@ -12,7 +12,7 @@ import { import { Button } from '@/components/ui/button' import { useMountedRef } from '@/hooks/useMountedRef' import { useAppStore } from '@/store' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { isGitRepoKind } from '../../../../shared/repo-kind' import { finishProjectAddWithDefaultCheckout } from './project-added-default-checkout' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/AddRepoDialogStepContent.test.tsx b/src/renderer/src/components/sidebar/AddRepoDialogStepContent.test.tsx index abdd169d4fd..4e3bcdc17fd 100644 --- a/src/renderer/src/components/sidebar/AddRepoDialogStepContent.test.tsx +++ b/src/renderer/src/components/sidebar/AddRepoDialogStepContent.test.tsx @@ -4,7 +4,7 @@ import type { ComponentProps } from 'react' import { Dialog } from '@/components/ui/dialog' import { TooltipProvider } from '@/components/ui/tooltip' import { AddRepoDialogStepContent } from './AddRepoDialogStepContent' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' const nestedScan: NestedRepoScanResult = { selectedPath: '/workspace/platform', diff --git a/src/renderer/src/components/sidebar/AddRepoDialogStepContent.tsx b/src/renderer/src/components/sidebar/AddRepoDialogStepContent.tsx index 9a0da649f8c..5e405d7c134 100644 --- a/src/renderer/src/components/sidebar/AddRepoDialogStepContent.tsx +++ b/src/renderer/src/components/sidebar/AddRepoDialogStepContent.tsx @@ -6,7 +6,7 @@ import { AddRepoLocalStartStep } from './AddRepoStartSteps' import { AddRepoServerPathStartStep } from './AddRepoServerStartStep' import { AddRepoNestedImportStep } from './AddRepoNestedImportStep' import type { AddRepoDialogStep } from './add-repo-dialog-types' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' import type { SshConnectionState, SshTarget } from '../../../../shared/ssh-types' import type { GitAvailability } from './create-project-defaults' diff --git a/src/renderer/src/components/sidebar/AddRepoNestedImportStep.test.tsx b/src/renderer/src/components/sidebar/AddRepoNestedImportStep.test.tsx index ff243a3a5cc..437f9e4d875 100644 --- a/src/renderer/src/components/sidebar/AddRepoNestedImportStep.test.tsx +++ b/src/renderer/src/components/sidebar/AddRepoNestedImportStep.test.tsx @@ -7,7 +7,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import { AddRepoNestedImportStep } from './AddRepoNestedImportStep' import { TooltipProvider } from '@/components/ui/tooltip' import { Dialog } from '@/components/ui/dialog' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' const scan: NestedRepoScanResult = { selectedPath: '/workspace/platform', diff --git a/src/renderer/src/components/sidebar/AddRepoNestedImportStep.tsx b/src/renderer/src/components/sidebar/AddRepoNestedImportStep.tsx index ef41edbf1a1..6366214bb66 100644 --- a/src/renderer/src/components/sidebar/AddRepoNestedImportStep.tsx +++ b/src/renderer/src/components/sidebar/AddRepoNestedImportStep.tsx @@ -6,7 +6,7 @@ import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { NestedRepoChecklist } from '@/components/repo/NestedRepoChecklist' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' import { NestedRepoScanLimitNotice } from '../repo/NestedRepoScanLimitNotice' import { getRuntimePathBasename } from '../../../../shared/cross-platform-path' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/AddRepoSteps.default-checkout.test.ts b/src/renderer/src/components/sidebar/AddRepoSteps.default-checkout.test.ts index fc8829474ee..6ca5d28f16f 100644 --- a/src/renderer/src/components/sidebar/AddRepoSteps.default-checkout.test.ts +++ b/src/renderer/src/components/sidebar/AddRepoSteps.default-checkout.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type * as ReactModule from 'react' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' const mocks = vi.hoisted(() => ({ stateValues: [] as unknown[], diff --git a/src/renderer/src/components/sidebar/AddRepoSteps.tsx b/src/renderer/src/components/sidebar/AddRepoSteps.tsx index 0acdaa888b1..248bcd87058 100644 --- a/src/renderer/src/components/sidebar/AddRepoSteps.tsx +++ b/src/renderer/src/components/sidebar/AddRepoSteps.tsx @@ -2,7 +2,7 @@ import { useCallback, useEffect, useRef, useState } from 'react' import { toast } from 'sonner' import { useAppStore } from '@/store' import { useMountedRef } from '@/hooks/useMountedRef' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' import type { SshTarget, SshConnectionState } from '../../../../shared/ssh-types' import { createNestedRepoTelemetryAttemptId } from '../../../../shared/nested-repo-telemetry' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/DeleteWorktreeDialog.test.tsx b/src/renderer/src/components/sidebar/DeleteWorktreeDialog.test.tsx index 65700ef574b..a36eca15297 100644 --- a/src/renderer/src/components/sidebar/DeleteWorktreeDialog.test.tsx +++ b/src/renderer/src/components/sidebar/DeleteWorktreeDialog.test.tsx @@ -1,7 +1,9 @@ import { renderToStaticMarkup } from 'react-dom/server' import type { ButtonHTMLAttributes, ReactNode } from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree, WorktreeLineage } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' const mocks = vi.hoisted(() => { const state = { diff --git a/src/renderer/src/components/sidebar/DeleteWorktreeLineageNotice.tsx b/src/renderer/src/components/sidebar/DeleteWorktreeLineageNotice.tsx index 427b96308cc..8e442f27d39 100644 --- a/src/renderer/src/components/sidebar/DeleteWorktreeLineageNotice.tsx +++ b/src/renderer/src/components/sidebar/DeleteWorktreeLineageNotice.tsx @@ -1,6 +1,6 @@ import { Workflow } from 'lucide-react' import type { JSX } from 'react' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { DeleteWorktreeDirtyChangeHint } from './DeleteWorktreeDirtyChangeHint' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/DeleteWorktreeTargetPreview.tsx b/src/renderer/src/components/sidebar/DeleteWorktreeTargetPreview.tsx index e6165e8c437..9f557af4324 100644 --- a/src/renderer/src/components/sidebar/DeleteWorktreeTargetPreview.tsx +++ b/src/renderer/src/components/sidebar/DeleteWorktreeTargetPreview.tsx @@ -1,7 +1,7 @@ import type { JSX } from 'react' import { LoaderCircle } from 'lucide-react' import { ScrollArea } from '@/components/ui/scroll-area' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { DeleteWorktreeDirtyChangeHint } from './DeleteWorktreeDirtyChangeHint' type DeleteState = { diff --git a/src/renderer/src/components/sidebar/HiddenWorktreeRecoveryList.tsx b/src/renderer/src/components/sidebar/HiddenWorktreeRecoveryList.tsx index 8f842bee693..567428702b8 100644 --- a/src/renderer/src/components/sidebar/HiddenWorktreeRecoveryList.tsx +++ b/src/renderer/src/components/sidebar/HiddenWorktreeRecoveryList.tsx @@ -4,7 +4,8 @@ import { useVirtualizer } from '@tanstack/react-virtual' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { translate } from '@/i18n/i18n' -import type { DetectedWorktreeListResult, Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { DetectedWorktreeListResult } from '../../../../shared/worktree/types' import { getHiddenImportableExternalWorktrees, getVisibleNonOrcaWorktrees diff --git a/src/renderer/src/components/sidebar/NonGitFolderDialog.test.tsx b/src/renderer/src/components/sidebar/NonGitFolderDialog.test.tsx index a392374762d..5b78c067d46 100644 --- a/src/renderer/src/components/sidebar/NonGitFolderDialog.test.tsx +++ b/src/renderer/src/components/sidebar/NonGitFolderDialog.test.tsx @@ -1,7 +1,8 @@ import { renderToStaticMarkup } from 'react-dom/server' import type * as ReactModule from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' type ButtonCapture = { label: string diff --git a/src/renderer/src/components/sidebar/ProjectAddedDialog.test.tsx b/src/renderer/src/components/sidebar/ProjectAddedDialog.test.tsx index f3580472439..8a9651aa6a8 100644 --- a/src/renderer/src/components/sidebar/ProjectAddedDialog.test.tsx +++ b/src/renderer/src/components/sidebar/ProjectAddedDialog.test.tsx @@ -1,7 +1,7 @@ import { renderToStaticMarkup } from 'react-dom/server' import type * as ReactModule from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' const mocks = vi.hoisted(() => ({ state: { diff --git a/src/renderer/src/components/sidebar/RemoteFileBrowser.tsx b/src/renderer/src/components/sidebar/RemoteFileBrowser.tsx index dc43f2bb8fe..9ec07ccf651 100644 --- a/src/renderer/src/components/sidebar/RemoteFileBrowser.tsx +++ b/src/renderer/src/components/sidebar/RemoteFileBrowser.tsx @@ -20,7 +20,7 @@ import { import { driveBreadcrumbPath, splitBrowsePath } from './remote-file-browser-drive-paths' import { browseRuntimeServerDirectory } from '@/runtime/runtime-server-directory-browser' import { translate } from '@/i18n/i18n' -import type { FilesystemPathFlavor } from '../../../../shared/types' +import type { FilesystemPathFlavor } from '../../../../shared/filesystem-entry-types' type RemoteFileBrowserProps = ( | { targetId: string; runtimeEnvironmentId?: never } diff --git a/src/renderer/src/components/sidebar/SetupScriptPromptCard.test.ts b/src/renderer/src/components/sidebar/SetupScriptPromptCard.test.ts index aa3dc5bc07d..18a1941298c 100644 --- a/src/renderer/src/components/sidebar/SetupScriptPromptCard.test.ts +++ b/src/renderer/src/components/sidebar/SetupScriptPromptCard.test.ts @@ -6,7 +6,7 @@ import { } from './setup-script-prompt-render-state' import type { SetupScriptPromptInspection } from '@/lib/setup-script-prompt' import { getRepoHostIdentityForParts } from '@/store/slices/repo-host-identity' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' function repoIdentity(repoId: string, hostId: string): string { return getRepoHostIdentityForParts(repoId, hostId) diff --git a/src/renderer/src/components/sidebar/Sidebar.test.tsx b/src/renderer/src/components/sidebar/Sidebar.test.tsx index 6704020676b..098ed7f203c 100644 --- a/src/renderer/src/components/sidebar/Sidebar.test.tsx +++ b/src/renderer/src/components/sidebar/Sidebar.test.tsx @@ -6,7 +6,7 @@ import { tmpdir } from 'node:os' import { cleanup, render } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../../../shared/constants' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' const mocks = vi.hoisted(() => ({ state: {} as Record, diff --git a/src/renderer/src/components/sidebar/SidebarFeedbackDialog.tsx b/src/renderer/src/components/sidebar/SidebarFeedbackDialog.tsx index 1bdd1050a68..f0d034edefe 100644 --- a/src/renderer/src/components/sidebar/SidebarFeedbackDialog.tsx +++ b/src/renderer/src/components/sidebar/SidebarFeedbackDialog.tsx @@ -13,7 +13,7 @@ import { } from '@/components/ui/dialog' import { useMountedRef } from '@/hooks/useMountedRef' import { cn } from '@/lib/utils' -import type { GitHubViewer } from '../../../../shared/types' +import type { GitHubViewer } from '../../../../shared/github/pull-request-types' import { translate } from '@/i18n/i18n' import { extractImageFilesFromDataTransfer, diff --git a/src/renderer/src/components/sidebar/SidebarHostScopeMenuSection.tsx b/src/renderer/src/components/sidebar/SidebarHostScopeMenuSection.tsx index b310ba988c6..9f3920fa615 100644 --- a/src/renderer/src/components/sidebar/SidebarHostScopeMenuSection.tsx +++ b/src/renderer/src/components/sidebar/SidebarHostScopeMenuSection.tsx @@ -6,7 +6,10 @@ import { DropdownMenuSubTrigger } from '@/components/ui/dropdown-menu' import { ALL_EXECUTION_HOSTS_SCOPE, type ExecutionHostId } from '../../../../shared/execution-host' -import type { VisibleWorkspaceHostIds, WorkspaceHostScope } from '../../../../shared/types' +import type { + VisibleWorkspaceHostIds, + WorkspaceHostScope +} from '../../../../shared/ui-chrome-types' import { getSidebarHostHealthLabel, type SidebarHostOption } from './sidebar-host-options' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/SidebarNav.test.tsx b/src/renderer/src/components/sidebar/SidebarNav.test.tsx index d76022b77ac..87b51ee5b23 100644 --- a/src/renderer/src/components/sidebar/SidebarNav.test.tsx +++ b/src/renderer/src/components/sidebar/SidebarNav.test.tsx @@ -6,7 +6,8 @@ import { waitFor } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { TooltipProvider } from '@/components/ui/tooltip' import { getDefaultSettings } from '../../../../shared/constants' -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' import { i18n } from '../../i18n/i18n' import { PSEUDO_LOCALIZATION_LOCALE } from '../../i18n/pseudo-localization' diff --git a/src/renderer/src/components/sidebar/SidebarNav.tsx b/src/renderer/src/components/sidebar/SidebarNav.tsx index 98333ba6287..45ea99e30f7 100644 --- a/src/renderer/src/components/sidebar/SidebarNav.tsx +++ b/src/renderer/src/components/sidebar/SidebarNav.tsx @@ -3,7 +3,7 @@ import { Bell, CalendarClock, EyeOff, Files, Search, Smartphone } from 'lucide-r import { useTranslation } from 'react-i18next' import { useAppStore } from '@/store' import { cn } from '@/lib/utils' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { useActivityUnreadCount } from '@/components/activity/useActivityUnreadCount' import { useShortcutKeyComboDetails } from '@/hooks/useShortcutLabel' import { ShortcutKeyCombo } from '@/components/ShortcutKeyCombo' diff --git a/src/renderer/src/components/sidebar/SidebarProjectFilterPanel.tsx b/src/renderer/src/components/sidebar/SidebarProjectFilterPanel.tsx index b9a705a9295..9057038b427 100644 --- a/src/renderer/src/components/sidebar/SidebarProjectFilterPanel.tsx +++ b/src/renderer/src/components/sidebar/SidebarProjectFilterPanel.tsx @@ -11,7 +11,7 @@ import { } from '@/components/ui/command' import RepoBadgeLabel from '@/components/repo/RepoBadgeLabel' import { searchRepos } from '@/lib/repo-search' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { translate } from '@/i18n/i18n' function projectCommandFilter(_value: string, search: string, keywords?: string[]): number { diff --git a/src/renderer/src/components/sidebar/SidebarRepositoryFilterSection.tsx b/src/renderer/src/components/sidebar/SidebarRepositoryFilterSection.tsx index 8aa62ac9f61..65623ee8983 100644 --- a/src/renderer/src/components/sidebar/SidebarRepositoryFilterSection.tsx +++ b/src/renderer/src/components/sidebar/SidebarRepositoryFilterSection.tsx @@ -6,7 +6,7 @@ import { DropdownMenuSubTrigger } from '@/components/ui/dropdown-menu' import { SidebarProjectFilterPanel } from './SidebarProjectFilterPanel' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { translate } from '@/i18n/i18n' function getProjectFilterVisibilityLabel({ diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanCard.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanCard.tsx index cd7b94dd725..aa515e40eff 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanCard.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanCard.tsx @@ -1,7 +1,8 @@ import React from 'react' import { Pin } from 'lucide-react' import { Badge } from '@/components/ui/badge' -import type { Repo, WorkspaceStatus, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceStatus, Worktree } from '../../../../shared/worktree/types' import WorktreeCard from './WorktreeCard' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.search.test.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.search.test.tsx index f1dd7234eaf..f7fcb4d4bc8 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.search.test.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.search.test.tsx @@ -5,7 +5,9 @@ import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { WORKTREE_PALETTE_QUERY_MAX_BYTES } from '@/lib/worktree-palette-query-bounds' import { useAppStore } from '@/store' -import type { Repo, Worktree, WorktreeMeta } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeMeta } from '../../../../shared/worktree/meta-types' +import type { Worktree } from '../../../../shared/worktree/types' import WorkspaceKanbanDrawer from './WorkspaceKanbanDrawer' import type { WorkspaceKanbanLaneView } from './workspace-kanban-search' diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.task-status-sync.test.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.task-status-sync.test.tsx index 25ae48868db..cf56ebe275f 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.task-status-sync.test.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.task-status-sync.test.tsx @@ -4,7 +4,8 @@ import React, { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { useAppStore } from '@/store' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import WorkspaceKanbanDrawer from './WorkspaceKanbanDrawer' import type * as WorkspaceBoardTaskStatusSync from './workspace-board-task-status-sync' diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.tsx index b457c378a15..1158e844abd 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanDrawer.tsx @@ -49,7 +49,8 @@ import { shouldWriteManualOrderForGroupDrop, type WorktreeDragGroup } from './worktree-manual-order' -import type { WorkspaceStatus, Worktree, WorktreeMeta } from '../../../../shared/types' +import type { WorktreeMeta } from '../../../../shared/worktree/meta-types' +import type { WorkspaceStatus, Worktree } from '../../../../shared/worktree/types' import { makeWorkspaceStatusId } from '../../../../shared/workspace-statuses' import { STATUS_BAR_RESERVE_HEIGHT, WORKSPACE_TOP_CHROME_HEIGHT } from './workspace-chrome-metrics' import { useContextualTour } from '@/components/contextual-tours/use-contextual-tour' diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanDrawerHeader.test.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanDrawerHeader.test.tsx index ce59a22718b..fd0f12c45a2 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanDrawerHeader.test.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanDrawerHeader.test.tsx @@ -1,7 +1,7 @@ import React, { isValidElement } from 'react' import { describe, expect, it, vi } from 'vitest' import { SheetHeader, SheetTitle } from '@/components/ui/sheet' -import type { WorkspaceStatusDefinition } from '../../../../shared/types' +import type { WorkspaceStatusDefinition } from '../../../../shared/worktree/types' import SidebarFilter from './SidebarFilter' import WorkspaceKanbanDrawerHeader from './WorkspaceKanbanDrawerHeader' import WorkspaceKanbanSearchField from './WorkspaceKanbanSearchField' diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanDrawerHeader.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanDrawerHeader.tsx index 051a46057c7..0df7680333c 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanDrawerHeader.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanDrawerHeader.tsx @@ -2,7 +2,7 @@ import React from 'react' import { X } from 'lucide-react' import { Button } from '@/components/ui/button' import { SheetDescription, SheetHeader, SheetTitle } from '@/components/ui/sheet' -import type { WorkspaceStatusDefinition } from '../../../../shared/types' +import type { WorkspaceStatusDefinition } from '../../../../shared/worktree/types' import SidebarFilter from './SidebarFilter' import WorkspaceKanbanSearchField from './WorkspaceKanbanSearchField' import WorkspaceKanbanSettingsMenu from './WorkspaceKanbanSettingsMenu' diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanLaneCardList.test.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanLaneCardList.test.tsx index d5b9b5c4176..b1ccfcccd3e 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanLaneCardList.test.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanLaneCardList.test.tsx @@ -11,7 +11,8 @@ import { cleanup, render } from '@testing-library/react' import { createRef } from 'react' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' const WINDOW_START = 20 const WINDOW_END = 25 diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanLaneCardList.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanLaneCardList.tsx index 49b9232839b..6b3ce32689a 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanLaneCardList.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanLaneCardList.tsx @@ -1,6 +1,7 @@ import React, { useCallback, useLayoutEffect, useMemo, useRef } from 'react' import { useVirtualizer } from '@tanstack/react-virtual' -import type { Repo, WorkspaceStatus, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceStatus, Worktree } from '../../../../shared/worktree/types' import WorkspaceKanbanCard from './WorkspaceKanbanCard' import { registerWorkspaceKanbanVirtualLaneLayout } from './workspace-kanban-virtual-lane-layout' diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanLaneGrid.test.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanLaneGrid.test.tsx index 161bb9ff597..f5a81bdb3bc 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanLaneGrid.test.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanLaneGrid.test.tsx @@ -2,7 +2,8 @@ import { act, cleanup, fireEvent, render } from '@testing-library/react' import React, { createRef } from 'react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo, WorkspaceStatusDefinition, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceStatusDefinition, Worktree } from '../../../../shared/worktree/types' const virtualWindow = vi.hoisted(() => ({ startIndex: 0, visibleCount: 4 })) const animationFrames = new Map() diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanLaneGrid.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanLaneGrid.tsx index 48d77c9b7f7..a13468fc340 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanLaneGrid.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanLaneGrid.tsx @@ -8,12 +8,12 @@ import React, { useState } from 'react' import { useVirtualizer, type Range } from '@tanstack/react-virtual' +import type { Repo } from '../../../../shared/repo-types' import type { - Repo, WorkspaceStatus, WorkspaceStatusDefinition, Worktree -} from '../../../../shared/types' +} from '../../../../shared/worktree/types' import type { WorkspaceKanbanLaneView } from './workspace-kanban-search' import { extractWorkspaceKanbanLaneRange } from './workspace-kanban-lane-range' import WorkspaceKanbanStatusLane from './WorkspaceKanbanStatusLane' diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanSettingsMenu.test.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanSettingsMenu.test.tsx index bba46379d77..40dead0e341 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanSettingsMenu.test.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanSettingsMenu.test.tsx @@ -2,7 +2,7 @@ import { createRoot, type Root } from 'react-dom/client' import { act, type ReactNode } from 'react' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { WorkspaceStatusDefinition } from '../../../../shared/types' +import type { WorkspaceStatusDefinition } from '../../../../shared/worktree/types' const statuses: WorkspaceStatusDefinition[] = [{ id: 'todo', label: 'Todo' }] ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanSettingsMenu.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanSettingsMenu.tsx index a7fd4693143..d4bceb02494 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanSettingsMenu.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanSettingsMenu.tsx @@ -10,7 +10,7 @@ import { import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { cn } from '@/lib/utils' import { SettingsSwitch } from '../settings/SettingsFormControls' -import type { WorkspaceStatusDefinition } from '../../../../shared/types' +import type { WorkspaceStatusDefinition } from '../../../../shared/worktree/types' import { getWorkspaceStatusVisualMeta } from './workspace-status' import WorkspaceStatusAppearancePopover from './WorkspaceStatusAppearancePopover' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanStatusLane.test.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanStatusLane.test.tsx index 91987985d59..fc2a3e5e9bc 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanStatusLane.test.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanStatusLane.test.tsx @@ -3,7 +3,8 @@ import React, { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { serializeWorkspaceLaneFullIds } from './workspace-kanban-filtered-drop-index' import WorkspaceKanbanStatusLane from './WorkspaceKanbanStatusLane' diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanStatusLane.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanStatusLane.tsx index cceda5e12ee..1379246c5be 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanStatusLane.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanStatusLane.tsx @@ -1,11 +1,11 @@ import React, { useMemo, useRef } from 'react' import { Plus } from 'lucide-react' +import type { Repo } from '../../../../shared/repo-types' import type { - Repo, WorkspaceStatus, WorkspaceStatusDefinition, Worktree -} from '../../../../shared/types' +} from '../../../../shared/worktree/types' import { WORKSPACE_BOARD_COLUMN_WIDTH_MAX, WORKSPACE_BOARD_COLUMN_WIDTH_MIN diff --git a/src/renderer/src/components/sidebar/WorkspaceStatusAppearancePopover.tsx b/src/renderer/src/components/sidebar/WorkspaceStatusAppearancePopover.tsx index c018d7ae048..fb0ececf03a 100644 --- a/src/renderer/src/components/sidebar/WorkspaceStatusAppearancePopover.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceStatusAppearancePopover.tsx @@ -3,7 +3,7 @@ import { Button } from '@/components/ui/button' import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { cn } from '@/lib/utils' -import type { WorkspaceStatusDefinition } from '../../../../shared/types' +import type { WorkspaceStatusDefinition } from '../../../../shared/worktree/types' import { getWorkspaceStatusColorOptions, getWorkspaceStatusIconOptions, diff --git a/src/renderer/src/components/sidebar/WorktreeCard.affiliate-list-mode.test.tsx b/src/renderer/src/components/sidebar/WorktreeCard.affiliate-list-mode.test.tsx index f9b3976a826..73927976237 100644 --- a/src/renderer/src/components/sidebar/WorktreeCard.affiliate-list-mode.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCard.affiliate-list-mode.test.tsx @@ -3,7 +3,10 @@ import { act, type ReactNode } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings, Repo, Worktree, WorktreeCardProperty } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' const openModal = vi.fn() const setRenamingWorktreeId = vi.fn() diff --git a/src/renderer/src/components/sidebar/WorktreeCard.compact-hover.test.tsx b/src/renderer/src/components/sidebar/WorktreeCard.compact-hover.test.tsx index 707ce16ec61..a3097460ea7 100644 --- a/src/renderer/src/components/sidebar/WorktreeCard.compact-hover.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCard.compact-hover.test.tsx @@ -3,7 +3,10 @@ import React, { type ReactNode } from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' import type { DashboardAgentRow as DashboardAgentRowData } from '@/components/dashboard/useDashboardData' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { GlobalSettings, Repo, Worktree, WorktreeCardProperty } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { WorkspacePortScanResult } from '../../../../shared/workspace-ports' const fetchHostedReviewForBranch = vi.fn() diff --git a/src/renderer/src/components/sidebar/WorktreeCard.compact-ports-hover-independence.test.tsx b/src/renderer/src/components/sidebar/WorktreeCard.compact-ports-hover-independence.test.tsx index 5aee22c8b16..e8376a64f08 100644 --- a/src/renderer/src/components/sidebar/WorktreeCard.compact-ports-hover-independence.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCard.compact-ports-hover-independence.test.tsx @@ -4,7 +4,10 @@ import React, { act, type ReactNode } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { DashboardAgentRow as DashboardAgentRowData } from '@/components/dashboard/useDashboardData' -import type { GlobalSettings, Repo, Worktree, WorktreeCardProperty } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { WorkspacePortScanResult } from '../../../../shared/workspace-ports' const fetchHostedReviewForBranch = vi.fn() diff --git a/src/renderer/src/components/sidebar/WorktreeCard.hosted-review-refresh.test.tsx b/src/renderer/src/components/sidebar/WorktreeCard.hosted-review-refresh.test.tsx index 98c2a1b3712..6d9fa6d1b5d 100644 --- a/src/renderer/src/components/sidebar/WorktreeCard.hosted-review-refresh.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCard.hosted-review-refresh.test.tsx @@ -3,7 +3,9 @@ import type { ReactNode } from 'react' import { createRoot, type Root } from 'react-dom/client' import { act } from 'react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree, WorktreeCardProperty } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' const fetchHostedReviewForBranch = vi.fn() const fetchIssue = vi.fn() diff --git a/src/renderer/src/components/sidebar/WorktreeCard.lineage.test.tsx b/src/renderer/src/components/sidebar/WorktreeCard.lineage.test.tsx index cbbf5a35b86..1e26254e712 100644 --- a/src/renderer/src/components/sidebar/WorktreeCard.lineage.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCard.lineage.test.tsx @@ -1,7 +1,9 @@ import { renderToStaticMarkup } from 'react-dom/server' import type { ReactNode } from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree, WorktreeCardProperty } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' const fetchHostedReviewForBranch = vi.fn() const fetchIssue = vi.fn() diff --git a/src/renderer/src/components/sidebar/WorktreeCard.merged-pr-display.test.tsx b/src/renderer/src/components/sidebar/WorktreeCard.merged-pr-display.test.tsx index 02927202e29..7c9669a22f9 100644 --- a/src/renderer/src/components/sidebar/WorktreeCard.merged-pr-display.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCard.merged-pr-display.test.tsx @@ -2,13 +2,11 @@ import { renderToStaticMarkup } from 'react-dom/server' import type { ReactNode } from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { - GlobalSettings, - PRInfo, - Repo, - Worktree, - WorktreeCardProperty -} from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' const fetchHostedReviewForBranch = vi.fn() const fetchIssue = vi.fn() diff --git a/src/renderer/src/components/sidebar/WorktreeCard.pinned-repo-icon.test.tsx b/src/renderer/src/components/sidebar/WorktreeCard.pinned-repo-icon.test.tsx index 9da7873b388..47017f87fab 100644 --- a/src/renderer/src/components/sidebar/WorktreeCard.pinned-repo-icon.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCard.pinned-repo-icon.test.tsx @@ -1,7 +1,10 @@ import { renderToStaticMarkup } from 'react-dom/server' import type { ReactNode } from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings, Repo, Worktree, WorktreeCardProperty } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' const fetchHostedReviewForBranch = vi.fn() const fetchIssue = vi.fn() diff --git a/src/renderer/src/components/sidebar/WorktreeCard.pr-display.test.tsx b/src/renderer/src/components/sidebar/WorktreeCard.pr-display.test.tsx index 4c31d82e153..1ae9026cc74 100644 --- a/src/renderer/src/components/sidebar/WorktreeCard.pr-display.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCard.pr-display.test.tsx @@ -2,13 +2,11 @@ import { renderToStaticMarkup } from 'react-dom/server' import type { ReactNode } from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { - GlobalSettings, - PRInfo, - Repo, - Worktree, - WorktreeCardProperty -} from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' import { COMPACT_WORKTREE_CARD_PROPERTIES } from '../../../../shared/worktree/card-properties' import type { WorkspacePortScanResult } from '../../../../shared/workspace-ports' diff --git a/src/renderer/src/components/sidebar/WorktreeCard.quick-actions.test.tsx b/src/renderer/src/components/sidebar/WorktreeCard.quick-actions.test.tsx index 7456cce2faa..ffef859d9ca 100644 --- a/src/renderer/src/components/sidebar/WorktreeCard.quick-actions.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCard.quick-actions.test.tsx @@ -1,13 +1,11 @@ import { renderToStaticMarkup } from 'react-dom/server' import type { ReactNode } from 'react' import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest' -import type { - GitConflictOperation, - GlobalSettings, - Repo, - Worktree, - WorktreeCardProperty -} from '../../../../shared/types' +import type { GitConflictOperation } from '../../../../shared/git-status-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' import type WorktreeCardComponent from './WorktreeCard' import type * as WorkspaceDeleteQuickAction from './workspace-delete-quick-action' diff --git a/src/renderer/src/components/sidebar/WorktreeCard.ssh-reconnect-prompt.test.tsx b/src/renderer/src/components/sidebar/WorktreeCard.ssh-reconnect-prompt.test.tsx index 19ca3a4e441..1fe2f4b9530 100644 --- a/src/renderer/src/components/sidebar/WorktreeCard.ssh-reconnect-prompt.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCard.ssh-reconnect-prompt.test.tsx @@ -1,7 +1,9 @@ import { renderToStaticMarkup } from 'react-dom/server' import type { ReactNode } from 'react' import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo, Worktree, WorktreeCardProperty } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' import type WorktreeCardComponent from './WorktreeCard' const fetchHostedReviewForBranch = vi.fn() diff --git a/src/renderer/src/components/sidebar/WorktreeCard.test.ts b/src/renderer/src/components/sidebar/WorktreeCard.test.ts index abc03a3c4fd..35c351f3457 100644 --- a/src/renderer/src/components/sidebar/WorktreeCard.test.ts +++ b/src/renderer/src/components/sidebar/WorktreeCard.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' vi.mock('@/lib/agent-status', () => ({ detectAgentStatusFromTitle: vi.fn((title: string) => { diff --git a/src/renderer/src/components/sidebar/WorktreeCardAutomationDetailSection.tsx b/src/renderer/src/components/sidebar/WorktreeCardAutomationDetailSection.tsx index 7d8ebd2de99..1ba6a45ce48 100644 --- a/src/renderer/src/components/sidebar/WorktreeCardAutomationDetailSection.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCardAutomationDetailSection.tsx @@ -1,7 +1,7 @@ import React from 'react' import { CalendarClock, PlayCircle } from 'lucide-react' import type { ExecutionHostId } from '../../../../shared/execution-host' -import type { AutomationWorkspaceProvenance } from '../../../../shared/types' +import type { AutomationWorkspaceProvenance } from '../../../../shared/worktree/types' import { WorktreeCardDetailSection, WorktreeCardDetailSectionContent diff --git a/src/renderer/src/components/sidebar/WorktreeCardCliDetailSection.tsx b/src/renderer/src/components/sidebar/WorktreeCardCliDetailSection.tsx index c5903340002..b636fc015e6 100644 --- a/src/renderer/src/components/sidebar/WorktreeCardCliDetailSection.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCardCliDetailSection.tsx @@ -1,6 +1,6 @@ import React from 'react' import { SquareTerminal } from 'lucide-react' -import type { CliWorkspaceProvenance } from '../../../../shared/types' +import type { CliWorkspaceProvenance } from '../../../../shared/worktree/types' import { formatAgentTypeLabel } from '../../../../shared/agent-type-label' import { WorktreeCardDetailSection, diff --git a/src/renderer/src/components/sidebar/WorktreeCardDisplayMenuSection.tsx b/src/renderer/src/components/sidebar/WorktreeCardDisplayMenuSection.tsx index 535ab541435..1c9cd781052 100644 --- a/src/renderer/src/components/sidebar/WorktreeCardDisplayMenuSection.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCardDisplayMenuSection.tsx @@ -10,7 +10,10 @@ import { DropdownMenuSubContent, DropdownMenuSubTrigger } from '@/components/ui/dropdown-menu' -import type { AgentActivityDisplayMode, WorktreeCardProperty } from '../../../../shared/types' +import type { + AgentActivityDisplayMode, + WorktreeCardProperty +} from '../../../../shared/ui-chrome-types' import { AGENT_ACTIVITY_DISPLAY_OPTIONS, CARD_LAYOUT_OPTIONS, diff --git a/src/renderer/src/components/sidebar/WorktreeCardHelpers.tsx b/src/renderer/src/components/sidebar/WorktreeCardHelpers.tsx index 2d2d081b067..5d5900af933 100644 --- a/src/renderer/src/components/sidebar/WorktreeCardHelpers.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCardHelpers.tsx @@ -1,5 +1,7 @@ import React from 'react' -import type { CheckStatus, GitConflictOperation, TerminalTab } from '../../../../shared/types' +import type { GitConflictOperation } from '../../../../shared/git-status-types' +import type { CheckStatus } from '../../../../shared/github/pull-request-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' // ── Pure helper functions ──────────────────────────────────────────── diff --git a/src/renderer/src/components/sidebar/WorktreeCardMetadataStatusBadges.tsx b/src/renderer/src/components/sidebar/WorktreeCardMetadataStatusBadges.tsx index 3cd3fece64c..21b064cc323 100644 --- a/src/renderer/src/components/sidebar/WorktreeCardMetadataStatusBadges.tsx +++ b/src/renderer/src/components/sidebar/WorktreeCardMetadataStatusBadges.tsx @@ -4,7 +4,7 @@ import { CircleCheck, CircleDot, CircleX, Clock, GitMerge } from 'lucide-react' import { cn } from '@/lib/utils' import { PullRequestIcon, checksLabel } from './WorktreeCardHelpers' import type { WorktreeCardPrDisplay } from './worktree-card-pr-display' -import type { IssueInfo } from '../../../../shared/types' +import type { IssueInfo } from '../../../../shared/github/pull-request-types' import { translate } from '@/i18n/i18n' function MetadataStatusBadge({ diff --git a/src/renderer/src/components/sidebar/WorktreeContextMenu.test.ts b/src/renderer/src/components/sidebar/WorktreeContextMenu.test.ts index 31f2e297f68..b4fc426a79e 100644 --- a/src/renderer/src/components/sidebar/WorktreeContextMenu.test.ts +++ b/src/renderer/src/components/sidebar/WorktreeContextMenu.test.ts @@ -14,7 +14,8 @@ import { selectMenuScopedMap, shouldRevealWorktreeDeveloperMenu } from './WorktreeContextMenu' -import type { Worktree, WorktreeLineage, WorkspaceStatusDefinition } from '../../../../shared/types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { WorkspaceStatusDefinition, Worktree } from '../../../../shared/worktree/types' describe('shouldRevealWorktreeDeveloperMenu', () => { it('stays hidden for an ordinary right-click', () => { diff --git a/src/renderer/src/components/sidebar/WorktreeContextMenu.tsx b/src/renderer/src/components/sidebar/WorktreeContextMenu.tsx index be61dd64d3d..d2c20fff721 100644 --- a/src/renderer/src/components/sidebar/WorktreeContextMenu.tsx +++ b/src/renderer/src/components/sidebar/WorktreeContextMenu.tsx @@ -34,12 +34,12 @@ import { useAppStore } from '@/store' import type { AppState } from '@/store/types' import { useAllWorktrees, useRepoById, useRepoMap, useWorktreeMap } from '@/store/selectors' import { cn } from '@/lib/utils' +import type { Repo } from '../../../../shared/repo-types' import type { - Repo, - Worktree, WorkspaceStatus, - WorkspaceStatusDefinition -} from '../../../../shared/types' + WorkspaceStatusDefinition, + Worktree +} from '../../../../shared/worktree/types' import { deferWorktreeContextMenuDeleteIntent, type WorktreeContextMenuDeleteIntent diff --git a/src/renderer/src/components/sidebar/WorktreeDeveloperMenuReveal.test.tsx b/src/renderer/src/components/sidebar/WorktreeDeveloperMenuReveal.test.tsx index 7816939efb2..6955e14ac60 100644 --- a/src/renderer/src/components/sidebar/WorktreeDeveloperMenuReveal.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeDeveloperMenuReveal.test.tsx @@ -8,7 +8,7 @@ import { cleanup, fireEvent, render, screen } from '@testing-library/react' import type { ReactNode } from 'react' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' vi.mock('@/store', () => { const state = { diff --git a/src/renderer/src/components/sidebar/WorktreeList.card-memo-stability.test.tsx b/src/renderer/src/components/sidebar/WorktreeList.card-memo-stability.test.tsx index 5c9dda301d3..8278eb3482b 100644 --- a/src/renderer/src/components/sidebar/WorktreeList.card-memo-stability.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeList.card-memo-stability.test.tsx @@ -4,7 +4,9 @@ import { act, type ReactNode } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { Repo, Worktree, WorktreeCardProperty } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' globalThis.IS_REACT_ACT_ENVIRONMENT = true diff --git a/src/renderer/src/components/sidebar/WorktreeList.lineage-agent-expansion-coupling.test.tsx b/src/renderer/src/components/sidebar/WorktreeList.lineage-agent-expansion-coupling.test.tsx index 5a644f0d265..01c9847d980 100644 --- a/src/renderer/src/components/sidebar/WorktreeList.lineage-agent-expansion-coupling.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeList.lineage-agent-expansion-coupling.test.tsx @@ -20,13 +20,11 @@ import type { AgentStatusEntry, AgentStatusOrchestrationContext } from '../../../../shared/agent-status-types' -import type { - Repo, - TerminalTab, - Worktree, - WorktreeCardProperty, - WorktreeLineage -} from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { clearWorktreeAgentExpansionStateForTests } from './worktree-card-agents-expansion-state' globalThis.IS_REACT_ACT_ENVIRONMENT = true diff --git a/src/renderer/src/components/sidebar/WorktreeList.lineage-child-card.test.ts b/src/renderer/src/components/sidebar/WorktreeList.lineage-child-card.test.ts index 4e8896fb44d..756c99d8522 100644 --- a/src/renderer/src/components/sidebar/WorktreeList.lineage-child-card.test.ts +++ b/src/renderer/src/components/sidebar/WorktreeList.lineage-child-card.test.ts @@ -2,13 +2,11 @@ import React from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { beforeAll, describe, expect, it, vi } from 'vitest' -import type { - FolderWorkspace, - ProjectGroup, - Repo, - Worktree, - WorktreeLineage -} from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import type * as WorktreeListModule from './WorktreeList' import { cloneDefaultWorkspaceStatuses } from '../../../../shared/workspace-statuses' diff --git a/src/renderer/src/components/sidebar/WorktreeList.lineage-child-real-card.test.tsx b/src/renderer/src/components/sidebar/WorktreeList.lineage-child-real-card.test.tsx index 52f3a591473..d36aa264f02 100644 --- a/src/renderer/src/components/sidebar/WorktreeList.lineage-child-real-card.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeList.lineage-child-real-card.test.tsx @@ -4,12 +4,10 @@ import { act, type ReactNode } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { - Repo, - Worktree, - WorktreeCardProperty, - WorktreeLineage -} from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { FLUSH_CARD_MIN_CONTENT_INSET, LINEAGE_CHILDREN_INLINE_OFFSET, diff --git a/src/renderer/src/components/sidebar/WorktreeList.status-lane-lineage-drop.test.tsx b/src/renderer/src/components/sidebar/WorktreeList.status-lane-lineage-drop.test.tsx index 00c9e47a0c8..47cc038799d 100644 --- a/src/renderer/src/components/sidebar/WorktreeList.status-lane-lineage-drop.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeList.status-lane-lineage-drop.test.tsx @@ -3,14 +3,11 @@ import { act, type ReactNode } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest' -import type { - Repo, - WorkspaceStatus, - Worktree, - WorktreeCardProperty, - WorktreeLineage, - WorktreeMeta -} from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { WorktreeMeta } from '../../../../shared/worktree/meta-types' +import type { WorkspaceStatus, Worktree } from '../../../../shared/worktree/types' import { DEFAULT_WORKSPACE_STATUSES } from '../../../../shared/workspace-status-defaults' import { WORKSPACE_STATUS_DRAG_IDS_TYPE, diff --git a/src/renderer/src/components/sidebar/WorktreeList.tsx b/src/renderer/src/components/sidebar/WorktreeList.tsx index 0202dd41d70..138f36a3a2f 100644 --- a/src/renderer/src/components/sidebar/WorktreeList.tsx +++ b/src/renderer/src/components/sidebar/WorktreeList.tsx @@ -57,18 +57,17 @@ import { DropdownMenuTrigger } from '@/components/ui/dropdown-menu' import { cn } from '@/lib/utils' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' +import type { ProjectOrderBy } from '../../../../shared/ui-chrome-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { WorktreeMeta } from '../../../../shared/worktree/meta-types' import type { - Worktree, - Repo, - FolderWorkspace, - ProjectGroup, - ProjectOrderBy, - WorktreeLineage, - WorktreeMeta, - WorkspaceLineage, WorkspaceStatus, - WorkspaceStatusDefinition -} from '../../../../shared/types' + WorkspaceStatusDefinition, + Worktree +} from '../../../../shared/worktree/types' import { DEFAULT_SHOW_SLEEPING_WORKSPACES } from '../../../../shared/constants' import { buildWorktreeComparator, compareWorktreeSortLabel } from './smart-sort' import { diff --git a/src/renderer/src/components/sidebar/WorktreeMetaDialog.test.tsx b/src/renderer/src/components/sidebar/WorktreeMetaDialog.test.tsx index 66de27601e5..13b4bbac1b8 100644 --- a/src/renderer/src/components/sidebar/WorktreeMetaDialog.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeMetaDialog.test.tsx @@ -4,13 +4,11 @@ import { act, type ReactNode } from 'react' import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { useAppStore } from '@/store' -import type { - FolderWorkspace, - LinearIssue, - Repo, - Worktree, - WorktreeMeta -} from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeMeta } from '../../../../shared/worktree/meta-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' // Why: Radix tooltips need a provider the dialog does not own, and the menu's diff --git a/src/renderer/src/components/sidebar/WorktreeOpenInMenu.tsx b/src/renderer/src/components/sidebar/WorktreeOpenInMenu.tsx index d5242211256..ad4636860df 100644 --- a/src/renderer/src/components/sidebar/WorktreeOpenInMenu.tsx +++ b/src/renderer/src/components/sidebar/WorktreeOpenInMenu.tsx @@ -15,7 +15,8 @@ import { OpenInApplicationIcon } from '@/lib/open-in-app-catalog' import { getExternalEditorOpenCapability } from '@/lib/external-editor-open-capability' import { NO_OPEN_IN_APPLICATIONS } from '@/lib/open-in-application-selection' import type { ShellOpenExternalEditorResult } from '../../../../shared/shell-open-types' -import type { GlobalSettings, OpenInApplication } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { OpenInApplication } from '../../../../shared/ui-chrome-types' import { translate } from '@/i18n/i18n' export { getLocalFileManagerLabel } from '@/lib/local-file-manager-label' diff --git a/src/renderer/src/components/sidebar/WorktreeParentPickerPopover.test.ts b/src/renderer/src/components/sidebar/WorktreeParentPickerPopover.test.ts index 4f7df50e9d3..f26f6f96f5d 100644 --- a/src/renderer/src/components/sidebar/WorktreeParentPickerPopover.test.ts +++ b/src/renderer/src/components/sidebar/WorktreeParentPickerPopover.test.ts @@ -1,7 +1,7 @@ // @vitest-environment happy-dom import { afterEach, describe, expect, it, vi } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { getWorktreeParentPickerFocusRestoreTarget, handleWorktreeParentPickerKeyDown, diff --git a/src/renderer/src/components/sidebar/WorktreeParentPickerRow.tsx b/src/renderer/src/components/sidebar/WorktreeParentPickerRow.tsx index 1d78102cfb7..7a747061449 100644 --- a/src/renderer/src/components/sidebar/WorktreeParentPickerRow.tsx +++ b/src/renderer/src/components/sidebar/WorktreeParentPickerRow.tsx @@ -5,7 +5,8 @@ import { getWorktreeStatusLabel, type WorktreeStatus } from '@/lib/worktree-stat import { translate } from '@/i18n/i18n' import { branchDisplayName } from './WorktreeCardHelpers' import StatusIndicator from './StatusIndicator' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' // Why: presentational and memoized — the picker resolves every row's status // from one batched store read so the rows themselves hold no subscriptions. diff --git a/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.test.tsx b/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.test.tsx index 7dfd864ce95..7b3a3eb6e5d 100644 --- a/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.test.tsx @@ -4,7 +4,11 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import type { ReactNode } from 'react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { DetectedWorktree, DetectedWorktreeListResult, Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { + DetectedWorktree, + DetectedWorktreeListResult +} from '../../../../shared/worktree/types' globalThis.IS_REACT_ACT_ENVIRONMENT = true diff --git a/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.tsx b/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.tsx index baa73875d79..e4a8ce45616 100644 --- a/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.tsx +++ b/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.tsx @@ -35,7 +35,7 @@ import WorktreeVisibilitySourceList, { type WorktreeVisibilitySourceAddResult, type WorktreeVisibilitySourceRow } from './WorktreeVisibilitySourceList' -import type { CustomWorktreeVisibilitySource, Repo } from '../../../../shared/types' +import type { CustomWorktreeVisibilitySource, Repo } from '../../../../shared/repo-types' import { MAX_CUSTOM_WORKTREE_VISIBILITY_SOURCES, buildWorktreeSourcePreferenceUpdate, diff --git a/src/renderer/src/components/sidebar/WorktreeVisibilitySourceList.tsx b/src/renderer/src/components/sidebar/WorktreeVisibilitySourceList.tsx index f7caa8bdee6..ca23f122550 100644 --- a/src/renderer/src/components/sidebar/WorktreeVisibilitySourceList.tsx +++ b/src/renderer/src/components/sidebar/WorktreeVisibilitySourceList.tsx @@ -9,9 +9,9 @@ import { translate } from '@/i18n/i18n' import type { BuiltInWorktreeVisibilitySourceId, CustomWorktreeVisibilitySource, - DetectedWorktree, Repo -} from '../../../../shared/types' +} from '../../../../shared/repo-types' +import type { DetectedWorktree } from '../../../../shared/worktree/types' import { createWorktreeVisibilitySourceMatcher, effectiveBuiltInWorktreeSourceVisibility, diff --git a/src/renderer/src/components/sidebar/active-worktree-focus-after-delete.ts b/src/renderer/src/components/sidebar/active-worktree-focus-after-delete.ts index 18b24dcfafe..f1042c8466c 100644 --- a/src/renderer/src/components/sidebar/active-worktree-focus-after-delete.ts +++ b/src/renderer/src/components/sidebar/active-worktree-focus-after-delete.ts @@ -2,7 +2,8 @@ import { useAppStore } from '@/store' import { getRepoMapFromState, getWorktreeMapFromState } from '@/store/selectors' import { activateAndRevealWorktree } from '@/lib/worktree-activation' import { isRuntimeOwnedSshTargetId, parseExecutionHostId } from '../../../../shared/execution-host' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' type AppStoreState = ReturnType diff --git a/src/renderer/src/components/sidebar/add-repo-existing-workspaces-telemetry.test.ts b/src/renderer/src/components/sidebar/add-repo-existing-workspaces-telemetry.test.ts index 57a202a57b4..2c33f406f62 100644 --- a/src/renderer/src/components/sidebar/add-repo-existing-workspaces-telemetry.test.ts +++ b/src/renderer/src/components/sidebar/add-repo-existing-workspaces-telemetry.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { buildAddRepoExistingWorkspacesDetectedEvent, buildAddRepoExistingWorkspacesTelemetry, diff --git a/src/renderer/src/components/sidebar/add-repo-existing-workspaces-telemetry.ts b/src/renderer/src/components/sidebar/add-repo-existing-workspaces-telemetry.ts index 695cb983f43..d74cf898923 100644 --- a/src/renderer/src/components/sidebar/add-repo-existing-workspaces-telemetry.ts +++ b/src/renderer/src/components/sidebar/add-repo-existing-workspaces-telemetry.ts @@ -2,7 +2,7 @@ import type { AddRepoExistingWorkspaceSource, EventProps } from '../../../../shared/telemetry-events' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { compareWorktreeDisplayName } from '@/lib/worktree-display-name-order' type ExistingWorkspacesDetectedProps = EventProps<'add_repo_existing_workspaces_detected'> diff --git a/src/renderer/src/components/sidebar/add-repo-skip-finalization.test.ts b/src/renderer/src/components/sidebar/add-repo-skip-finalization.test.ts index de9c6f430cf..8f1808f4c24 100644 --- a/src/renderer/src/components/sidebar/add-repo-skip-finalization.test.ts +++ b/src/renderer/src/components/sidebar/add-repo-skip-finalization.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { finalizeImportedRepoAfterSkip, type AddRepoSkipFinalizationState diff --git a/src/renderer/src/components/sidebar/add-repo-skip-finalization.ts b/src/renderer/src/components/sidebar/add-repo-skip-finalization.ts index 7c9c69357ce..f22a8d9d251 100644 --- a/src/renderer/src/components/sidebar/add-repo-skip-finalization.ts +++ b/src/renderer/src/components/sidebar/add-repo-skip-finalization.ts @@ -1,5 +1,5 @@ -import type { Worktree } from '../../../../shared/types' -import { isDefaultBranchWorkspace } from './visible-worktrees' +import type { Worktree } from '../../../../shared/worktree/types' +import { isDefaultBranchWorkspace } from './default-branch-workspace' export type AddRepoSkipFinalizationState = { activeRepoId: string | null diff --git a/src/renderer/src/components/sidebar/add-repo-store-upsert.ts b/src/renderer/src/components/sidebar/add-repo-store-upsert.ts index 1593b3cda1c..4a085462948 100644 --- a/src/renderer/src/components/sidebar/add-repo-store-upsert.ts +++ b/src/renderer/src/components/sidebar/add-repo-store-upsert.ts @@ -4,7 +4,7 @@ import { toRuntimeExecutionHostId, toSshExecutionHostId } from '../../../../shared/execution-host' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { useAppStore } from '@/store' import { getRepoHostIdentity } from '@/store/slices/repo-host-identity' diff --git a/src/renderer/src/components/sidebar/complete-nested-folder-open.ts b/src/renderer/src/components/sidebar/complete-nested-folder-open.ts index 329027b6af2..f02fff1c428 100644 --- a/src/renderer/src/components/sidebar/complete-nested-folder-open.ts +++ b/src/renderer/src/components/sidebar/complete-nested-folder-open.ts @@ -1,6 +1,6 @@ import { toast } from 'sonner' import { useAppStore } from '@/store' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' import type { CapturedRuntimeOwner } from './add-repo-runtime-owner' import { trackNestedFolderOpen } from './track-nested-folder-open' diff --git a/src/renderer/src/components/sidebar/default-branch-visible-under-hide-sleeping.test.ts b/src/renderer/src/components/sidebar/default-branch-visible-under-hide-sleeping.test.ts index 9f06dda9df2..a0452e2f508 100644 --- a/src/renderer/src/components/sidebar/default-branch-visible-under-hide-sleeping.test.ts +++ b/src/renderer/src/components/sidebar/default-branch-visible-under-hide-sleeping.test.ts @@ -1,10 +1,8 @@ import { describe, expect, it } from 'vitest' -import { - computeVisibleWorktreeIds, - isDefaultBranchWorkspace, - type SidebarFilterState -} from './visible-worktrees' -import type { Repo, Worktree } from '../../../../shared/types' +import { computeVisibleWorktreeIds, type SidebarFilterState } from './visible-worktrees' +import { isDefaultBranchWorkspace } from './default-branch-workspace' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { LOCAL_EXECUTION_HOST_ID } from '../../../../shared/execution-host' /** diff --git a/src/renderer/src/components/sidebar/default-branch-workspace.ts b/src/renderer/src/components/sidebar/default-branch-workspace.ts index 5289b3d2d4c..43404232066 100644 --- a/src/renderer/src/components/sidebar/default-branch-workspace.ts +++ b/src/renderer/src/components/sidebar/default-branch-workspace.ts @@ -1,4 +1,4 @@ -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' /** Keeps provisioned roots visible because they are the recipe-created workspace, not a source-repo row. */ export function isDefaultBranchWorkspace(worktree: Worktree): boolean { diff --git a/src/renderer/src/components/sidebar/delete-worktree-dialog-copy.ts b/src/renderer/src/components/sidebar/delete-worktree-dialog-copy.ts index 7f761fcbd8d..862df883b54 100644 --- a/src/renderer/src/components/sidebar/delete-worktree-dialog-copy.ts +++ b/src/renderer/src/components/sidebar/delete-worktree-dialog-copy.ts @@ -1,5 +1,6 @@ import { isFolderRepo } from '../../../../shared/repo-kind' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' type WorktreeRepoRef = Pick diff --git a/src/renderer/src/components/sidebar/delete-worktree-dirty-change-counts.ts b/src/renderer/src/components/sidebar/delete-worktree-dirty-change-counts.ts index 3a0f709caae..339251046d5 100644 --- a/src/renderer/src/components/sidebar/delete-worktree-dirty-change-counts.ts +++ b/src/renderer/src/components/sidebar/delete-worktree-dirty-change-counts.ts @@ -1,4 +1,5 @@ -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { WorktreeDeleteState } from '../../store/slices/worktree-helpers' import { isFolderWorkspaceDelete } from './delete-worktree-dialog-copy' diff --git a/src/renderer/src/components/sidebar/delete-worktree-preference-toast.ts b/src/renderer/src/components/sidebar/delete-worktree-preference-toast.ts index 188e1bdbbaf..9c048e0829c 100644 --- a/src/renderer/src/components/sidebar/delete-worktree-preference-toast.ts +++ b/src/renderer/src/components/sidebar/delete-worktree-preference-toast.ts @@ -1,7 +1,7 @@ import { toast } from 'sonner' import { translate } from '@/i18n/i18n' import type { SettingsNavTarget } from '@/lib/settings-navigation-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' export function persistDeleteWorktreeConfirmSkipPreference({ updateSettings, diff --git a/src/renderer/src/components/sidebar/empty-project-placeholder-repos.test.ts b/src/renderer/src/components/sidebar/empty-project-placeholder-repos.test.ts index 8a33151f73a..c8042ed6b4a 100644 --- a/src/renderer/src/components/sidebar/empty-project-placeholder-repos.test.ts +++ b/src/renderer/src/components/sidebar/empty-project-placeholder-repos.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getEmptyProjectPlaceholderRepoIds } from './empty-project-placeholder-repos' const repo: Repo = { diff --git a/src/renderer/src/components/sidebar/empty-project-placeholder-repos.ts b/src/renderer/src/components/sidebar/empty-project-placeholder-repos.ts index 57aee59c1bd..29e30d196bf 100644 --- a/src/renderer/src/components/sidebar/empty-project-placeholder-repos.ts +++ b/src/renderer/src/components/sidebar/empty-project-placeholder-repos.ts @@ -1,4 +1,5 @@ -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { WorktreeGroupBy } from './worktree-list-groups' export function getEmptyProjectPlaceholderRepoIds(args: { diff --git a/src/renderer/src/components/sidebar/focused-agent-row-highlight.test.ts b/src/renderer/src/components/sidebar/focused-agent-row-highlight.test.ts index c3cd300892e..465f1362a59 100644 --- a/src/renderer/src/components/sidebar/focused-agent-row-highlight.test.ts +++ b/src/renderer/src/components/sidebar/focused-agent-row-highlight.test.ts @@ -4,7 +4,7 @@ import type { MigrationUnsupportedPtyEntry } from '../../../../shared/agent-status-types' import { makePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { getFocusedAgentPaneKeyForWorktree, type FocusedAgentRowHighlightState diff --git a/src/renderer/src/components/sidebar/folder-workspace-card-pr-display.test.ts b/src/renderer/src/components/sidebar/folder-workspace-card-pr-display.test.ts index dc971a0603e..4ca0078e2b3 100644 --- a/src/renderer/src/components/sidebar/folder-workspace-card-pr-display.test.ts +++ b/src/renderer/src/components/sidebar/folder-workspace-card-pr-display.test.ts @@ -1,12 +1,8 @@ import { describe, expect, it } from 'vitest' -import type { - CheckStatus, - PRInfo, - Repo, - Worktree, - WorktreeLineage, - WorkspaceLineage -} from '../../../../shared/types' +import type { CheckStatus, PRInfo } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceKey, worktreeWorkspaceKey } from '../../../../shared/workspace-scope' import { getFolderWorkspaceCardPrDisplay } from './folder-workspace-card-pr-display' diff --git a/src/renderer/src/components/sidebar/folder-workspace-card-pr-display.ts b/src/renderer/src/components/sidebar/folder-workspace-card-pr-display.ts index 3f71970ec33..5914520603e 100644 --- a/src/renderer/src/components/sidebar/folder-workspace-card-pr-display.ts +++ b/src/renderer/src/components/sidebar/folder-workspace-card-pr-display.ts @@ -1,5 +1,7 @@ import type { AppState } from '@/store/types' -import type { Repo, Worktree, WorktreeLineage, WorkspaceLineage } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceKey, parseWorkspaceKey } from '../../../../shared/workspace-scope' import { buildParentPrChecksRows, diff --git a/src/renderer/src/components/sidebar/folder-workspace-composer-helpers.test.ts b/src/renderer/src/components/sidebar/folder-workspace-composer-helpers.test.ts index 0f43496ee54..73648ebfd02 100644 --- a/src/renderer/src/components/sidebar/folder-workspace-composer-helpers.test.ts +++ b/src/renderer/src/components/sidebar/folder-workspace-composer-helpers.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { ProjectGroup, Repo } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import { getFolderSourceRepos, getFolderWorkspacePrimaryActionLabel diff --git a/src/renderer/src/components/sidebar/folder-workspace-composer-helpers.ts b/src/renderer/src/components/sidebar/folder-workspace-composer-helpers.ts index c6b920bd9d8..a63a2caf920 100644 --- a/src/renderer/src/components/sidebar/folder-workspace-composer-helpers.ts +++ b/src/renderer/src/components/sidebar/folder-workspace-composer-helpers.ts @@ -17,14 +17,12 @@ import { } from '../../../../shared/execution-host' import { getProjectGroupSubtreeIds } from '../../../../shared/project-groups' import { isGitRepoKind } from '../../../../shared/repo-kind' -import type { - FolderWorkspace, - GitHubWorkItem, - GitLabWorkItem, - LinearIssue, - ProjectGroup, - Repo -} from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' +import type { GitLabWorkItem } from '../../../../shared/gitlab-types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import type { SmartWorkspaceNameSelection } from '@/components/new-workspace/SmartWorkspaceNameField' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/folder-workspace-composer-path-status.test.tsx b/src/renderer/src/components/sidebar/folder-workspace-composer-path-status.test.tsx index 6c5f3523561..e13c5c2c14c 100644 --- a/src/renderer/src/components/sidebar/folder-workspace-composer-path-status.test.tsx +++ b/src/renderer/src/components/sidebar/folder-workspace-composer-path-status.test.tsx @@ -3,7 +3,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { ProjectGroup } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' import { useAppStore } from '@/store' import { useFolderWorkspaceComposerPathStatus } from './folder-workspace-composer-path-status' diff --git a/src/renderer/src/components/sidebar/folder-workspace-composer-path-status.ts b/src/renderer/src/components/sidebar/folder-workspace-composer-path-status.ts index 51369b6b8ea..911c373191d 100644 --- a/src/renderer/src/components/sidebar/folder-workspace-composer-path-status.ts +++ b/src/renderer/src/components/sidebar/folder-workspace-composer-path-status.ts @@ -7,7 +7,7 @@ import { getFolderWorkspacePathStatusTitle } from '@/lib/folder-workspace-path-status' import { isConfirmedStaleFolderPathStatus } from '../../../../shared/folder-workspace-path-status' -import type { ProjectGroup } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' export function useFolderWorkspaceComposerPathStatus( projectGroup: ProjectGroup | null, diff --git a/src/renderer/src/components/sidebar/folder-workspace-composer-submit.test.ts b/src/renderer/src/components/sidebar/folder-workspace-composer-submit.test.ts index 4f129edf853..51432bc1e5f 100644 --- a/src/renderer/src/components/sidebar/folder-workspace-composer-submit.test.ts +++ b/src/renderer/src/components/sidebar/folder-workspace-composer-submit.test.ts @@ -1,7 +1,8 @@ // @vitest-environment happy-dom import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { FolderWorkspace, ProjectGroup } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import type * as NewWorkspaceModule from '@/lib/new-workspace' diff --git a/src/renderer/src/components/sidebar/folder-workspace-composer-submit.ts b/src/renderer/src/components/sidebar/folder-workspace-composer-submit.ts index 2b64f589e68..35b3240ccb6 100644 --- a/src/renderer/src/components/sidebar/folder-workspace-composer-submit.ts +++ b/src/renderer/src/components/sidebar/folder-workspace-composer-submit.ts @@ -16,7 +16,9 @@ import { activateAndRevealFolderWorkspace } from '@/lib/worktree-activation' import { isWorkItemLookupText } from '@/lib/work-item-lookup-text' import { TUI_AGENT_CONFIG } from '../../../../shared/tui-agent-config' import { isWindowsAbsolutePathLike } from '../../../../shared/cross-platform-path' -import type { FolderWorkspace, ProjectGroup, TuiAgent } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { isWslUncPath } from '../../../../shared/wsl-paths' import { resolveLocalWindowsAgentStartupShell } from '../../../../shared/windows-terminal-shell' import type { AgentStartupShell } from '../../../../shared/tui-agent-startup-shell' diff --git a/src/renderer/src/components/sidebar/host-rename-remove.ts b/src/renderer/src/components/sidebar/host-rename-remove.ts index dc1dfec6c84..03ade9762fe 100644 --- a/src/renderer/src/components/sidebar/host-rename-remove.ts +++ b/src/renderer/src/components/sidebar/host-rename-remove.ts @@ -4,7 +4,8 @@ import { getHostSettingOverride, setHostSettingOverride } from '../../../../shared/host-setting-overrides' -import type { GlobalSettings, HostSettingOverrides } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { HostSettingOverrides } from '../../../../shared/host-setting-overrides' type OverridesSlice = Pick type OverridesMap = Partial> diff --git a/src/renderer/src/components/sidebar/host-section-rows.test.ts b/src/renderer/src/components/sidebar/host-section-rows.test.ts index 702356e26a6..1d8cc55a14b 100644 --- a/src/renderer/src/components/sidebar/host-section-rows.test.ts +++ b/src/renderer/src/components/sidebar/host-section-rows.test.ts @@ -1,5 +1,8 @@ import { describe, expect, it } from 'vitest' -import type { FolderWorkspace, ProjectGroup, Repo, Worktree } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { PINNED_GROUP_KEY, type Row } from './worktree-list-groups' import { addHostSectionRows, type HostSectionRow } from './host-section-rows' diff --git a/src/renderer/src/components/sidebar/host-section-rows.ts b/src/renderer/src/components/sidebar/host-section-rows.ts index 7ca084d7520..1371f57ed05 100644 --- a/src/renderer/src/components/sidebar/host-section-rows.ts +++ b/src/renderer/src/components/sidebar/host-section-rows.ts @@ -11,7 +11,9 @@ import { import type { ExecutionHostHealth } from '../../../../shared/execution-host-registry' import type { RuntimeCompatVerdict } from '../../../../shared/protocol-compat' import type { SshConnectionStatus } from '../../../../shared/ssh-types' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import type { Row } from './worktree-list-groups' export type HostHeaderRow = { diff --git a/src/renderer/src/components/sidebar/imported-worktrees-card-actions.ts b/src/renderer/src/components/sidebar/imported-worktrees-card-actions.ts index ea4f758d3df..a40688cbb8a 100644 --- a/src/renderer/src/components/sidebar/imported-worktrees-card-actions.ts +++ b/src/renderer/src/components/sidebar/imported-worktrees-card-actions.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { mergeExternalWorktreeInboxPaths } from '../../../../shared/external-worktree-inbox' export type ImportedWorktreeCardActionState = { diff --git a/src/renderer/src/components/sidebar/imported-worktrees-card-candidates.test.ts b/src/renderer/src/components/sidebar/imported-worktrees-card-candidates.test.ts index 5a6ed56abfc..1ea7886d55a 100644 --- a/src/renderer/src/components/sidebar/imported-worktrees-card-candidates.test.ts +++ b/src/renderer/src/components/sidebar/imported-worktrees-card-candidates.test.ts @@ -4,12 +4,12 @@ import { buildImportedWorktreesCardCandidates, getHiddenImportedWorktrees } from './imported-worktrees-card-candidates' +import type { Repo } from '../../../../shared/repo-types' import type { DetectedWorktree, DetectedWorktreeListResult, - Repo, Worktree -} from '../../../../shared/types' +} from '../../../../shared/worktree/types' const repo: Repo = { id: 'repo-1', diff --git a/src/renderer/src/components/sidebar/imported-worktrees-card-candidates.ts b/src/renderer/src/components/sidebar/imported-worktrees-card-candidates.ts index e827d1662ef..d530d2c6d17 100644 --- a/src/renderer/src/components/sidebar/imported-worktrees-card-candidates.ts +++ b/src/renderer/src/components/sidebar/imported-worktrees-card-candidates.ts @@ -1,4 +1,5 @@ -import type { DetectedWorktreeListResult, Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { DetectedWorktreeListResult, Worktree } from '../../../../shared/worktree/types' import { getHiddenExternalWorktrees } from '../../../../shared/external-worktree-inbox' import { isGitRepoKind } from '../../../../shared/repo-kind' import { diff --git a/src/renderer/src/components/sidebar/linear-agent-skill-runtime.ts b/src/renderer/src/components/sidebar/linear-agent-skill-runtime.ts index 46b047a4bc1..d816c387313 100644 --- a/src/renderer/src/components/sidebar/linear-agent-skill-runtime.ts +++ b/src/renderer/src/components/sidebar/linear-agent-skill-runtime.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { ProjectExecutionRuntimeResolution } from '../../../../shared/project-execution-runtime' import type { SkillDiscoveryTarget } from '../../../../shared/skills' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/local-base-ref-suggestion-toast.test.tsx b/src/renderer/src/components/sidebar/local-base-ref-suggestion-toast.test.tsx index 88e5b8cb236..8c31110242c 100644 --- a/src/renderer/src/components/sidebar/local-base-ref-suggestion-toast.test.tsx +++ b/src/renderer/src/components/sidebar/local-base-ref-suggestion-toast.test.tsx @@ -5,7 +5,7 @@ import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it, vi } from 'vitest' import { toast } from 'sonner' import type { AppState } from '@/store/types' -import type { LocalBaseRefUpdateSuggestion } from '../../../../shared/types' +import type { LocalBaseRefUpdateSuggestion } from '../../../../shared/worktree/base-ref-drift-types' import { showLocalBaseRefUpdateSuggestionToast } from './local-base-ref-suggestion-toast' vi.mock('sonner', () => ({ diff --git a/src/renderer/src/components/sidebar/local-base-ref-suggestion-toast.tsx b/src/renderer/src/components/sidebar/local-base-ref-suggestion-toast.tsx index 97bd71e196a..18b0e619cd7 100644 --- a/src/renderer/src/components/sidebar/local-base-ref-suggestion-toast.tsx +++ b/src/renderer/src/components/sidebar/local-base-ref-suggestion-toast.tsx @@ -1,6 +1,6 @@ import { toast } from 'sonner' import type { AppState } from '@/store/types' -import type { LocalBaseRefUpdateSuggestion } from '../../../../shared/types' +import type { LocalBaseRefUpdateSuggestion } from '../../../../shared/worktree/base-ref-drift-types' import { Button } from '../ui/button' import { KEEP_LOCAL_MAIN_UP_TO_DATE_SECTION_ID, diff --git a/src/renderer/src/components/sidebar/new-external-worktrees-inbox-actions.test.ts b/src/renderer/src/components/sidebar/new-external-worktrees-inbox-actions.test.ts index 3435870dbd4..9f3abcc281a 100644 --- a/src/renderer/src/components/sidebar/new-external-worktrees-inbox-actions.test.ts +++ b/src/renderer/src/components/sidebar/new-external-worktrees-inbox-actions.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { importNewExternalWorktreeInboxPaths, keepNewExternalWorktreeInboxHidden, diff --git a/src/renderer/src/components/sidebar/new-external-worktrees-inbox-actions.ts b/src/renderer/src/components/sidebar/new-external-worktrees-inbox-actions.ts index 289d068d97f..f9a4534410d 100644 --- a/src/renderer/src/components/sidebar/new-external-worktrees-inbox-actions.ts +++ b/src/renderer/src/components/sidebar/new-external-worktrees-inbox-actions.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { mergeExternalWorktreeInboxPaths } from '../../../../shared/external-worktree-inbox' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/new-external-worktrees-inbox-candidates.test.ts b/src/renderer/src/components/sidebar/new-external-worktrees-inbox-candidates.test.ts index d099a63945c..cfab500f410 100644 --- a/src/renderer/src/components/sidebar/new-external-worktrees-inbox-candidates.test.ts +++ b/src/renderer/src/components/sidebar/new-external-worktrees-inbox-candidates.test.ts @@ -1,11 +1,11 @@ import { describe, expect, it } from 'vitest' +import type { Repo } from '../../../../shared/repo-types' import type { DetectedWorktree, DetectedWorktreeListResult, - Repo, Worktree -} from '../../../../shared/types' +} from '../../../../shared/worktree/types' import { buildNewExternalWorktreesInboxCandidates } from './new-external-worktrees-inbox-candidates' const repo: Repo = { diff --git a/src/renderer/src/components/sidebar/new-external-worktrees-inbox-candidates.ts b/src/renderer/src/components/sidebar/new-external-worktrees-inbox-candidates.ts index aeda87cf710..8b7e3423dc7 100644 --- a/src/renderer/src/components/sidebar/new-external-worktrees-inbox-candidates.ts +++ b/src/renderer/src/components/sidebar/new-external-worktrees-inbox-candidates.ts @@ -1,4 +1,5 @@ -import type { DetectedWorktreeListResult, Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { DetectedWorktreeListResult, Worktree } from '../../../../shared/worktree/types' import { getNewExternalWorktreeInboxWorktrees } from '../../../../shared/external-worktree-inbox' import { isGitRepoKind } from '../../../../shared/repo-kind' import type { NewExternalWorktreesInboxCandidate } from './worktree-list-groups' diff --git a/src/renderer/src/components/sidebar/preserved-branch-toast.test.tsx b/src/renderer/src/components/sidebar/preserved-branch-toast.test.tsx index 24f768af4af..3424c372581 100644 --- a/src/renderer/src/components/sidebar/preserved-branch-toast.test.tsx +++ b/src/renderer/src/components/sidebar/preserved-branch-toast.test.tsx @@ -4,7 +4,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it, vi } from 'vitest' import { toast } from 'sonner' -import type { RemoveWorktreeResult } from '../../../../shared/types' +import type { RemoveWorktreeResult } from '../../../../shared/worktree/create-types' import { showPreservedBranchToast } from './preserved-branch-toast' vi.mock('sonner', () => ({ diff --git a/src/renderer/src/components/sidebar/preserved-branch-toast.tsx b/src/renderer/src/components/sidebar/preserved-branch-toast.tsx index 03529ad4657..43b01513f53 100644 --- a/src/renderer/src/components/sidebar/preserved-branch-toast.tsx +++ b/src/renderer/src/components/sidebar/preserved-branch-toast.tsx @@ -1,6 +1,7 @@ import { Trash2 } from 'lucide-react' import { toast } from 'sonner' -import type { RemoveWorktreeResult, Worktree } from '../../../../shared/types' +import type { RemoveWorktreeResult } from '../../../../shared/worktree/create-types' +import type { Worktree } from '../../../../shared/worktree/types' import { translate } from '@/i18n/i18n' import { Button } from '../ui/button' diff --git a/src/renderer/src/components/sidebar/project-added-default-checkout.test.ts b/src/renderer/src/components/sidebar/project-added-default-checkout.test.ts index 8b4b42d8d44..24d1fd7b76a 100644 --- a/src/renderer/src/components/sidebar/project-added-default-checkout.test.ts +++ b/src/renderer/src/components/sidebar/project-added-default-checkout.test.ts @@ -1,11 +1,11 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultOnboardingState } from '../../../../shared/constants' +import type { Repo } from '../../../../shared/repo-types' import type { DetectedWorktree, DetectedWorktreeListResult, - Repo, Worktree -} from '../../../../shared/types' +} from '../../../../shared/worktree/types' import { finishProjectAddWithDefaultCheckout, getProjectDefaultCheckout, diff --git a/src/renderer/src/components/sidebar/project-added-default-checkout.ts b/src/renderer/src/components/sidebar/project-added-default-checkout.ts index dabf089a8a0..33ab7dadd07 100644 --- a/src/renderer/src/components/sidebar/project-added-default-checkout.ts +++ b/src/renderer/src/components/sidebar/project-added-default-checkout.ts @@ -5,7 +5,7 @@ import type { AddRepoDefaultCheckoutHandoffSource, EventProps } from '../../../../shared/telemetry-events' -import type { DetectedWorktreeListResult, Worktree } from '../../../../shared/types' +import type { DetectedWorktreeListResult, Worktree } from '../../../../shared/worktree/types' import { relativePathInsideRoot } from '../../../../shared/cross-platform-path' import { markOnboardingProjectAdded } from '@/lib/onboarding-project-checklist' import { finalizeImportedRepoAfterSkip } from './add-repo-skip-finalization' diff --git a/src/renderer/src/components/sidebar/project-group-header-drag-commit.test.ts b/src/renderer/src/components/sidebar/project-group-header-drag-commit.test.ts index 3c1b0384f41..43ff9581712 100644 --- a/src/renderer/src/components/sidebar/project-group-header-drag-commit.test.ts +++ b/src/renderer/src/components/sidebar/project-group-header-drag-commit.test.ts @@ -3,7 +3,7 @@ import { describe, expect, it, vi } from 'vitest' import { commitProjectGroupHeaderDragDrop } from './project-group-header-drag-commit' import type { ProjectGroupHeaderDragSession } from './project-group-header-drag-contract' -import type { ProjectGroup } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' function group(id: string, overrides: Partial = {}): ProjectGroup { return { diff --git a/src/renderer/src/components/sidebar/project-group-header-drag-commit.ts b/src/renderer/src/components/sidebar/project-group-header-drag-commit.ts index 6f3db2f1260..225b1792c95 100644 --- a/src/renderer/src/components/sidebar/project-group-header-drag-commit.ts +++ b/src/renderer/src/components/sidebar/project-group-header-drag-commit.ts @@ -1,6 +1,6 @@ import { getProjectGroupTabOrderUpdatesForSidebarDrop } from './project-group-header-drop' import type { ProjectGroupHeaderDragSession } from './project-group-header-drag-contract' -import type { ProjectGroup } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' export function commitProjectGroupHeaderDragDrop(args: { session: ProjectGroupHeaderDragSession diff --git a/src/renderer/src/components/sidebar/project-group-header-drag-contract.ts b/src/renderer/src/components/sidebar/project-group-header-drag-contract.ts index bedcefcfc59..9021d9c7636 100644 --- a/src/renderer/src/components/sidebar/project-group-header-drag-contract.ts +++ b/src/renderer/src/components/sidebar/project-group-header-drag-contract.ts @@ -5,7 +5,7 @@ import type { ProjectGroupHeaderDragRect } from './project-group-header-drop' import { REPO_HEADER_ACTION_SELECTOR } from './project-header-drag-contract' -import type { ProjectGroup } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' export type ProjectGroupDragState = { draggingGroupId: string | null diff --git a/src/renderer/src/components/sidebar/project-group-header-drag-start.test.ts b/src/renderer/src/components/sidebar/project-group-header-drag-start.test.ts index ef53dc54175..efb8c7b3959 100644 --- a/src/renderer/src/components/sidebar/project-group-header-drag-start.test.ts +++ b/src/renderer/src/components/sidebar/project-group-header-drag-start.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it, vi } from 'vitest' import { createProjectGroupHeaderDragSession } from './project-group-header-drag-start' -import type { ProjectGroup } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' function group(id: string, overrides: Partial = {}): ProjectGroup { return { diff --git a/src/renderer/src/components/sidebar/project-group-header-drag-start.ts b/src/renderer/src/components/sidebar/project-group-header-drag-start.ts index 89eb5bd9dd0..46616c2053d 100644 --- a/src/renderer/src/components/sidebar/project-group-header-drag-start.ts +++ b/src/renderer/src/components/sidebar/project-group-header-drag-start.ts @@ -10,7 +10,7 @@ import { isProjectGroupHeaderDragHandleTarget, type ProjectGroupHeaderDragSession } from './project-group-header-drag-contract' -import type { ProjectGroup } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' export function createProjectGroupHeaderDragSession(args: { event: PointerEvent diff --git a/src/renderer/src/components/sidebar/project-group-header-drop.test.ts b/src/renderer/src/components/sidebar/project-group-header-drop.test.ts index 8fa20c47b49..3e843cf7543 100644 --- a/src/renderer/src/components/sidebar/project-group-header-drop.test.ts +++ b/src/renderer/src/components/sidebar/project-group-header-drop.test.ts @@ -9,7 +9,8 @@ import { mapSidebarProjectGroupDropIndexToSiblingInsertIndex } from './project-group-header-drop' import type { Row } from './worktree-list-groups' -import type { ProjectGroup, Repo } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' function group(id: string, overrides: Partial = {}): ProjectGroup { return { diff --git a/src/renderer/src/components/sidebar/project-group-header-drop.ts b/src/renderer/src/components/sidebar/project-group-header-drop.ts index 81382372784..73f4415cd00 100644 --- a/src/renderer/src/components/sidebar/project-group-header-drop.ts +++ b/src/renderer/src/components/sidebar/project-group-header-drop.ts @@ -3,7 +3,7 @@ import { type WorktreeSidebarHeaderDropPreview } from './worktree-sidebar-header-drop-preview' import type { Row } from './worktree-list-groups' -import type { ProjectGroup } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' export type ProjectGroupHeaderDragBucketKey = string diff --git a/src/renderer/src/components/sidebar/project-header-drag-commit.test.ts b/src/renderer/src/components/sidebar/project-header-drag-commit.test.ts index 7b5a72def55..32fc47acef3 100644 --- a/src/renderer/src/components/sidebar/project-header-drag-commit.test.ts +++ b/src/renderer/src/components/sidebar/project-header-drag-commit.test.ts @@ -3,7 +3,7 @@ import { describe, expect, it, vi } from 'vitest' import { commitProjectHeaderDragDrop } from './project-header-drag-commit' import type { ProjectHeaderDragSession } from './project-header-drag-contract' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' function makeRepo(id: string, overrides: Partial = {}): Repo { return { diff --git a/src/renderer/src/components/sidebar/project-header-drag-commit.ts b/src/renderer/src/components/sidebar/project-header-drag-commit.ts index 2ab63663d71..0a89742097b 100644 --- a/src/renderer/src/components/sidebar/project-header-drag-commit.ts +++ b/src/renderer/src/components/sidebar/project-header-drag-commit.ts @@ -6,7 +6,7 @@ import { mapSidebarRepoDropIndexToAllRepoInsertAt } from './project-header-drop' import type { ProjectHeaderDragSession } from './project-header-drag-contract' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' export function commitProjectHeaderDragDrop(args: { session: ProjectHeaderDragSession diff --git a/src/renderer/src/components/sidebar/project-header-drag-contract.ts b/src/renderer/src/components/sidebar/project-header-drag-contract.ts index 9923c8c0979..f28f34eaffb 100644 --- a/src/renderer/src/components/sidebar/project-header-drag-contract.ts +++ b/src/renderer/src/components/sidebar/project-header-drag-contract.ts @@ -1,7 +1,7 @@ import type { PointerEvent } from 'react' import type { ProjectHeaderDragBucketKey, ProjectHeaderDragRect } from './project-header-drop' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' export type RepoDragState = { draggingRepoId: string | null diff --git a/src/renderer/src/components/sidebar/project-header-drag-start.test.ts b/src/renderer/src/components/sidebar/project-header-drag-start.test.ts index 6fa80295e67..da1a07c26cf 100644 --- a/src/renderer/src/components/sidebar/project-header-drag-start.test.ts +++ b/src/renderer/src/components/sidebar/project-header-drag-start.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it, vi } from 'vitest' import { createProjectHeaderDragSession } from './project-header-drag-start' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' function createRepo(id: string, projectGroupId: string | null = null): Repo { return { diff --git a/src/renderer/src/components/sidebar/project-header-drag-start.ts b/src/renderer/src/components/sidebar/project-header-drag-start.ts index 04c306a869e..0a0429f1bf4 100644 --- a/src/renderer/src/components/sidebar/project-header-drag-start.ts +++ b/src/renderer/src/components/sidebar/project-header-drag-start.ts @@ -10,7 +10,7 @@ import { isRepoHeaderActionTarget, type ProjectHeaderDragSession } from './project-header-drag-contract' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' export function createProjectHeaderDragSession(args: { event: PointerEvent diff --git a/src/renderer/src/components/sidebar/project-header-drop.test.ts b/src/renderer/src/components/sidebar/project-header-drop.test.ts index c0382a5f162..92baaf72b73 100644 --- a/src/renderer/src/components/sidebar/project-header-drop.test.ts +++ b/src/renderer/src/components/sidebar/project-header-drop.test.ts @@ -12,7 +12,7 @@ import { mapSidebarRepoDropIndexToAllRepoInsertAt } from './project-header-drop' import type { Row } from './worktree-list-groups' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' describe('getProjectHeaderDragBucketKey', () => { it('uses ungrouped for repos without a project group', () => { diff --git a/src/renderer/src/components/sidebar/project-header-drop.ts b/src/renderer/src/components/sidebar/project-header-drop.ts index 1f7418f805c..c2de72bcaf3 100644 --- a/src/renderer/src/components/sidebar/project-header-drop.ts +++ b/src/renderer/src/components/sidebar/project-header-drop.ts @@ -4,7 +4,7 @@ import { type WorktreeSidebarHeaderDropPreview } from './worktree-sidebar-header-drop-preview' import type { Row } from './worktree-list-groups' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' export type ProjectHeaderDragBucketKey = string diff --git a/src/renderer/src/components/sidebar/prompt-cache-timer-selection.ts b/src/renderer/src/components/sidebar/prompt-cache-timer-selection.ts index 69232f64f6f..d568c1d8508 100644 --- a/src/renderer/src/components/sidebar/prompt-cache-timer-selection.ts +++ b/src/renderer/src/components/sidebar/prompt-cache-timer-selection.ts @@ -1,4 +1,4 @@ -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { parsePaneKey } from '../../../../shared/stable-pane-id' export type PromptCacheCountdownSelection = { diff --git a/src/renderer/src/components/sidebar/remote-file-browser-drive-paths.ts b/src/renderer/src/components/sidebar/remote-file-browser-drive-paths.ts index 52e507aadf2..7e68874dfae 100644 --- a/src/renderer/src/components/sidebar/remote-file-browser-drive-paths.ts +++ b/src/renderer/src/components/sidebar/remote-file-browser-drive-paths.ts @@ -59,4 +59,4 @@ export function driveBreadcrumbPath( const kept = segments.slice(0, endIndex + 1) return kept.length === 0 ? driveRoot : `${driveRoot}${kept.join('\\')}` } -import type { FilesystemPathFlavor } from '../../../../shared/types' +import type { FilesystemPathFlavor } from '../../../../shared/filesystem-entry-types' diff --git a/src/renderer/src/components/sidebar/remote-file-browser-helpers.ts b/src/renderer/src/components/sidebar/remote-file-browser-helpers.ts index a9508a76364..54c0107376d 100644 --- a/src/renderer/src/components/sidebar/remote-file-browser-helpers.ts +++ b/src/renderer/src/components/sidebar/remote-file-browser-helpers.ts @@ -1,7 +1,7 @@ import { translate } from '@/i18n/i18n' import { shouldHandleTextControlPaste } from '@/lib/text-control-paste' import { isClipboardTextByteLengthOverLimit } from '../../../../shared/clipboard-text' -import type { FilesystemPathFlavor } from '../../../../shared/types' +import type { FilesystemPathFlavor } from '../../../../shared/filesystem-entry-types' import { driveRootOf, isDrivePath, diff --git a/src/renderer/src/components/sidebar/rendered-sidebar-worktree-order.test.ts b/src/renderer/src/components/sidebar/rendered-sidebar-worktree-order.test.ts index 0f549db9f23..2cb14d6894d 100644 --- a/src/renderer/src/components/sidebar/rendered-sidebar-worktree-order.test.ts +++ b/src/renderer/src/components/sidebar/rendered-sidebar-worktree-order.test.ts @@ -2,7 +2,10 @@ import { afterEach, describe, expect, it } from 'vitest' import { useAppStore } from '@/store' import { getVisibleWorktreeIds, setVisibleWorktreeIds } from './visible-worktrees' import type { AppState } from '@/store/types' -import type { FolderWorkspace, ProjectGroup, Repo, Worktree } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' const initialState = useAppStore.getInitialState() diff --git a/src/renderer/src/components/sidebar/rendered-sidebar-worktree-order.ts b/src/renderer/src/components/sidebar/rendered-sidebar-worktree-order.ts index fccdc79955c..bc2c038e8d2 100644 --- a/src/renderer/src/components/sidebar/rendered-sidebar-worktree-order.ts +++ b/src/renderer/src/components/sidebar/rendered-sidebar-worktree-order.ts @@ -1,4 +1,4 @@ -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import type { AppState } from '@/store/types' import { getHostDisplayLabelOverrides } from '../../../../shared/host-setting-overrides' import { diff --git a/src/renderer/src/components/sidebar/repo-header-create-state.test.ts b/src/renderer/src/components/sidebar/repo-header-create-state.test.ts index a6421b15c5b..6f4a121cb4c 100644 --- a/src/renderer/src/components/sidebar/repo-header-create-state.test.ts +++ b/src/renderer/src/components/sidebar/repo-header-create-state.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import type { SshConnectionStatus } from '../../../../shared/ssh-types' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { getRepoHeaderCreateState } from './repo-header-create-state' function makeRepo(overrides: Partial = {}): Repo { diff --git a/src/renderer/src/components/sidebar/repo-header-create-state.ts b/src/renderer/src/components/sidebar/repo-header-create-state.ts index 6b369f1e287..6b061932a9e 100644 --- a/src/renderer/src/components/sidebar/repo-header-create-state.ts +++ b/src/renderer/src/components/sidebar/repo-header-create-state.ts @@ -1,5 +1,5 @@ import type { SshConnectionStatus } from '../../../../shared/ssh-types' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { isGitRepoKind } from '../../../../shared/repo-kind' import { getSelectedRepoSshGate } from '../../lib/new-workspace-ssh-gate' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/setup-script-prompt-render-state.ts b/src/renderer/src/components/sidebar/setup-script-prompt-render-state.ts index 0e80337118d..2b7a6c79900 100644 --- a/src/renderer/src/components/sidebar/setup-script-prompt-render-state.ts +++ b/src/renderer/src/components/sidebar/setup-script-prompt-render-state.ts @@ -1,4 +1,6 @@ -import type { GlobalSettings, Repo, Worktree } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { SetupScriptPromptInspection } from '@/lib/setup-script-prompt' import { findRepoForHost } from '@/store/slices/repo-host-identity' import { toRuntimeExecutionHostId } from '../../../../shared/execution-host' diff --git a/src/renderer/src/components/sidebar/sidebar-filter-state.test.ts b/src/renderer/src/components/sidebar/sidebar-filter-state.test.ts index e46f6163985..c6945a7f041 100644 --- a/src/renderer/src/components/sidebar/sidebar-filter-state.test.ts +++ b/src/renderer/src/components/sidebar/sidebar-filter-state.test.ts @@ -1,11 +1,11 @@ import { describe, expect, it } from 'vitest' import { computeClearFilterActions, - isDefaultBranchWorkspace, isSleepingSweepExemptionNarrowingList, sidebarHasActiveFilters } from './visible-worktrees' -import type { Worktree } from '../../../../shared/types' +import { isDefaultBranchWorkspace } from './default-branch-workspace' +import type { Worktree } from '../../../../shared/worktree/types' function makeWorktree(id: string, repoId = 'repo1'): Worktree { return { diff --git a/src/renderer/src/components/sidebar/sidebar-host-options.ts b/src/renderer/src/components/sidebar/sidebar-host-options.ts index dc764112bcc..29d03ec1419 100644 --- a/src/renderer/src/components/sidebar/sidebar-host-options.ts +++ b/src/renderer/src/components/sidebar/sidebar-host-options.ts @@ -1,4 +1,6 @@ -import type { GlobalSettings, Repo, WorkspaceHostScope } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceHostScope } from '../../../../shared/ui-chrome-types' import { ALL_EXECUTION_HOSTS_SCOPE, LOCAL_EXECUTION_HOST_ID, diff --git a/src/renderer/src/components/sidebar/sidebar-project-drop.ts b/src/renderer/src/components/sidebar/sidebar-project-drop.ts index fc61c049e38..1793bfc9bcc 100644 --- a/src/renderer/src/components/sidebar/sidebar-project-drop.ts +++ b/src/renderer/src/components/sidebar/sidebar-project-drop.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' export type SidebarProjectDropPathResolution = diff --git a/src/renderer/src/components/sidebar/sidebar-workspace-option-items.ts b/src/renderer/src/components/sidebar/sidebar-workspace-option-items.ts index e804131b6ae..717dd2302d3 100644 --- a/src/renderer/src/components/sidebar/sidebar-workspace-option-items.ts +++ b/src/renderer/src/components/sidebar/sidebar-workspace-option-items.ts @@ -1,4 +1,7 @@ -import type { AgentActivityDisplayMode, WorktreeCardProperty } from '../../../../shared/types' +import type { + AgentActivityDisplayMode, + WorktreeCardProperty +} from '../../../../shared/ui-chrome-types' import { TASK_WORKTREE_CARD_PROPERTIES } from '../../../../shared/constants' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/smart-attention.test.ts b/src/renderer/src/components/sidebar/smart-attention.test.ts index 8723cf937fc..d04aed078bf 100644 --- a/src/renderer/src/components/sidebar/smart-attention.test.ts +++ b/src/renderer/src/components/sidebar/smart-attention.test.ts @@ -11,7 +11,8 @@ import { resolveAttention, type PaneInput } from './smart-attention' -import type { TerminalLayoutSnapshot, TerminalTab, Worktree } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' function hookPane(entry: AgentStatusEntry): PaneInput { return { kind: 'hook', entry } diff --git a/src/renderer/src/components/sidebar/smart-attention.ts b/src/renderer/src/components/sidebar/smart-attention.ts index 5238a9091eb..44abd4082b7 100644 --- a/src/renderer/src/components/sidebar/smart-attention.ts +++ b/src/renderer/src/components/sidebar/smart-attention.ts @@ -4,7 +4,8 @@ import { migrationUnsupportedToAgentStatusEntry } from '@/lib/migration-unsuppor import { tabHasLivePty } from '@/lib/tab-has-live-pty' import { resolveRuntimePaneTitleLeafId } from '@/lib/runtime-pane-title-leaf-id' import type { AgentStatus } from '../../../../shared/agent-detection' -import type { TerminalLayoutSnapshot, TerminalTab, Worktree } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import { AGENT_STATUS_STALE_AFTER_MS, type AgentStateHistoryEntry, diff --git a/src/renderer/src/components/sidebar/smart-sort.test.ts b/src/renderer/src/components/sidebar/smart-sort.test.ts index 75af8fae1cc..60700e59c95 100644 --- a/src/renderer/src/components/sidebar/smart-sort.test.ts +++ b/src/renderer/src/components/sidebar/smart-sort.test.ts @@ -1,5 +1,7 @@ import { describe, expect, it } from 'vitest' -import type { Repo, TerminalTab, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import { buildWorktreeComparator, CREATE_GRACE_MS, diff --git a/src/renderer/src/components/sidebar/smart-sort.ts b/src/renderer/src/components/sidebar/smart-sort.ts index 84474df4047..b30d60f755a 100644 --- a/src/renderer/src/components/sidebar/smart-sort.ts +++ b/src/renderer/src/components/sidebar/smart-sort.ts @@ -1,4 +1,6 @@ -import type { Worktree, Repo, TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { AgentStatusEntry, MigrationUnsupportedPtyEntry diff --git a/src/renderer/src/components/sidebar/ssh-host-remove-resolution.ts b/src/renderer/src/components/sidebar/ssh-host-remove-resolution.ts index 4949ab3db6c..3c0d41d8cc6 100644 --- a/src/renderer/src/components/sidebar/ssh-host-remove-resolution.ts +++ b/src/renderer/src/components/sidebar/ssh-host-remove-resolution.ts @@ -1,4 +1,5 @@ -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { SshConnectionState } from '../../../../shared/ssh-types' /** diff --git a/src/renderer/src/components/sidebar/ssh-workspace-forget-resolution.ts b/src/renderer/src/components/sidebar/ssh-workspace-forget-resolution.ts index 72243c5f370..6a723349809 100644 --- a/src/renderer/src/components/sidebar/ssh-workspace-forget-resolution.ts +++ b/src/renderer/src/components/sidebar/ssh-workspace-forget-resolution.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import type { SshConnectionState } from '../../../../shared/ssh-types' import { isRuntimeOwnedSshTargetId } from '../../../../shared/execution-host' diff --git a/src/renderer/src/components/sidebar/track-nested-folder-open.ts b/src/renderer/src/components/sidebar/track-nested-folder-open.ts index add9c4aae19..19871701d3f 100644 --- a/src/renderer/src/components/sidebar/track-nested-folder-open.ts +++ b/src/renderer/src/components/sidebar/track-nested-folder-open.ts @@ -3,7 +3,7 @@ import { buildNestedRepoImportActionTelemetry, type NestedRepoTelemetryRuntimeKind } from '../../../../shared/nested-repo-telemetry' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' export function trackNestedFolderOpen(args: { attemptId: string | null diff --git a/src/renderer/src/components/sidebar/use-add-repo-remote-nested-scan.ts b/src/renderer/src/components/sidebar/use-add-repo-remote-nested-scan.ts index c57557f0cc1..436a0618ff0 100644 --- a/src/renderer/src/components/sidebar/use-add-repo-remote-nested-scan.ts +++ b/src/renderer/src/components/sidebar/use-add-repo-remote-nested-scan.ts @@ -1,7 +1,7 @@ import { useCallback } from 'react' import { track } from '@/lib/telemetry' import { buildNestedRepoScanTelemetry } from '../../../../shared/nested-repo-telemetry' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' export function useAddRepoRemoteNestedScan({ setActiveNestedScanId, diff --git a/src/renderer/src/components/sidebar/use-delete-worktree-status-hydration.ts b/src/renderer/src/components/sidebar/use-delete-worktree-status-hydration.ts index 2a88a430c50..02972d6a907 100644 --- a/src/renderer/src/components/sidebar/use-delete-worktree-status-hydration.ts +++ b/src/renderer/src/components/sidebar/use-delete-worktree-status-hydration.ts @@ -3,7 +3,8 @@ import { useAppStore } from '@/store' import { getConnectionId } from '@/lib/connection-context' import { getSettingsForWorktreeRuntimeOwner } from '@/lib/worktree-runtime-owner' import { getRuntimeGitStatus } from '@/runtime/runtime-git-client' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { isFolderWorkspaceDelete } from './delete-worktree-dialog-copy' export function useDeleteWorktreeStatusHydration({ diff --git a/src/renderer/src/components/sidebar/use-visible-workspace-kanban-worktree-ids.ts b/src/renderer/src/components/sidebar/use-visible-workspace-kanban-worktree-ids.ts index 180ef7d6daf..1262dc92edb 100644 --- a/src/renderer/src/components/sidebar/use-visible-workspace-kanban-worktree-ids.ts +++ b/src/renderer/src/components/sidebar/use-visible-workspace-kanban-worktree-ids.ts @@ -1,6 +1,7 @@ import { useMemo } from 'react' import { useAppStore } from '@/store' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { computeVisibleWorktreeIds } from './visible-worktrees' import { getWorktreeIdsWithLiveAgent } from '@/lib/worktree-activity-state' import { getSettingsFocusedExecutionHostId } from '../../../../shared/execution-host' diff --git a/src/renderer/src/components/sidebar/use-workspace-kanban-card-pointer-drag.ts b/src/renderer/src/components/sidebar/use-workspace-kanban-card-pointer-drag.ts index 19a67a31663..d03add3da13 100644 --- a/src/renderer/src/components/sidebar/use-workspace-kanban-card-pointer-drag.ts +++ b/src/renderer/src/components/sidebar/use-workspace-kanban-card-pointer-drag.ts @@ -1,6 +1,6 @@ import { useCallback, useEffect, useRef } from 'react' import type React from 'react' -import type { WorkspaceStatus, Worktree } from '../../../../shared/types' +import type { WorkspaceStatus, Worktree } from '../../../../shared/worktree/types' import { CARD_SELECTOR, getCardDropTarget, diff --git a/src/renderer/src/components/sidebar/use-workspace-kanban-create-worktree.ts b/src/renderer/src/components/sidebar/use-workspace-kanban-create-worktree.ts index aae79fc9d8b..bd218580cb9 100644 --- a/src/renderer/src/components/sidebar/use-workspace-kanban-create-worktree.ts +++ b/src/renderer/src/components/sidebar/use-workspace-kanban-create-worktree.ts @@ -1,6 +1,6 @@ import { useCallback } from 'react' import { useAppStore } from '@/store' -import type { WorkspaceStatus } from '../../../../shared/types' +import type { WorkspaceStatus } from '../../../../shared/worktree/types' export function useWorkspaceKanbanCreateWorktree(): { canCreateWorktree: boolean diff --git a/src/renderer/src/components/sidebar/use-workspace-kanban-search.ts b/src/renderer/src/components/sidebar/use-workspace-kanban-search.ts index df5f3e0455f..e782b419ab3 100644 --- a/src/renderer/src/components/sidebar/use-workspace-kanban-search.ts +++ b/src/renderer/src/components/sidebar/use-workspace-kanban-search.ts @@ -1,6 +1,7 @@ import { useCallback, useDeferredValue, useMemo, useState } from 'react' import { isWorktreePaletteQueryTooLarge } from '@/lib/worktree-palette-query-bounds' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { matchWorkspaceBoardWorktrees } from './workspace-kanban-search' function areWorktreeIdSetsEqual(a: ReadonlySet, b: ReadonlySet): boolean { diff --git a/src/renderer/src/components/sidebar/use-workspace-kanban-selection.test.tsx b/src/renderer/src/components/sidebar/use-workspace-kanban-selection.test.tsx index 7d20d7c7523..abf1067895e 100644 --- a/src/renderer/src/components/sidebar/use-workspace-kanban-selection.test.tsx +++ b/src/renderer/src/components/sidebar/use-workspace-kanban-selection.test.tsx @@ -3,7 +3,7 @@ import React, { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { useWorkspaceKanbanSelection } from './use-workspace-kanban-selection' ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true diff --git a/src/renderer/src/components/sidebar/use-workspace-kanban-selection.ts b/src/renderer/src/components/sidebar/use-workspace-kanban-selection.ts index 54efeccdec3..f1a20a57147 100644 --- a/src/renderer/src/components/sidebar/use-workspace-kanban-selection.ts +++ b/src/renderer/src/components/sidebar/use-workspace-kanban-selection.ts @@ -1,5 +1,5 @@ import React, { useCallback, useMemo, useState } from 'react' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { areWorktreeSelectionsEqual, getWorktreeSelectionIntent, diff --git a/src/renderer/src/components/sidebar/use-workspace-status-drop.ts b/src/renderer/src/components/sidebar/use-workspace-status-drop.ts index eac45bb668d..5a5b441521d 100644 --- a/src/renderer/src/components/sidebar/use-workspace-status-drop.ts +++ b/src/renderer/src/components/sidebar/use-workspace-status-drop.ts @@ -1,6 +1,6 @@ import { useEffect } from 'react' import type React from 'react' -import type { WorkspaceStatus } from '../../../../shared/types' +import type { WorkspaceStatus } from '../../../../shared/worktree/types' import { hasWorkspaceDragData, readWorkspaceDragDataIds } from './workspace-status' const WORKSPACE_STATUS_DROP_TARGET = '[data-workspace-status-drop-target]' diff --git a/src/renderer/src/components/sidebar/use-worktree-activity-status.test.tsx b/src/renderer/src/components/sidebar/use-worktree-activity-status.test.tsx index aac20f34b97..17ff8d18cd3 100644 --- a/src/renderer/src/components/sidebar/use-worktree-activity-status.test.tsx +++ b/src/renderer/src/components/sidebar/use-worktree-activity-status.test.tsx @@ -2,7 +2,7 @@ import { renderToStaticMarkup } from 'react-dom/server' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' import { makePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' import { useWorktreeActivityStatus } from './use-worktree-activity-status' const LEAF_ID = '11111111-1111-4111-8111-111111111111' diff --git a/src/renderer/src/components/sidebar/use-worktree-card-linked-details.ts b/src/renderer/src/components/sidebar/use-worktree-card-linked-details.ts index fcf91b71a93..a2ec8e0774e 100644 --- a/src/renderer/src/components/sidebar/use-worktree-card-linked-details.ts +++ b/src/renderer/src/components/sidebar/use-worktree-card-linked-details.ts @@ -2,7 +2,8 @@ import React from 'react' import { translate } from '@/i18n/i18n' import { useAppStore } from '@/store' -import type { IssueInfo, LinearIssue } from '../../../../shared/types' +import type { IssueInfo } from '../../../../shared/github/pull-request-types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' import { getWorktreeCardJiraIssueDisplay } from './worktree-card-jira-issue-display' import type { WorktreeCardIssueDisplay } from './WorktreeCardMeta' import { diff --git a/src/renderer/src/components/sidebar/use-worktree-card-secondary-details.store-subscriptions.test.tsx b/src/renderer/src/components/sidebar/use-worktree-card-secondary-details.store-subscriptions.test.tsx index 693dba8f412..146f4e10916 100644 --- a/src/renderer/src/components/sidebar/use-worktree-card-secondary-details.store-subscriptions.test.tsx +++ b/src/renderer/src/components/sidebar/use-worktree-card-secondary-details.store-subscriptions.test.tsx @@ -5,7 +5,8 @@ import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it } from 'vitest' import { useAppStore } from '@/store' import { readStoreListenerCount } from '@/store/store-listener-census' -import type { GlobalSettings, Worktree } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Worktree } from '../../../../shared/worktree/types' import { usePromptCacheCountdownStartedAt } from './CacheTimer' import { useWorktreeCardSecondaryDetails } from './use-worktree-card-secondary-details' import { useWorktreeAgentRows } from './useWorktreeAgentRows' diff --git a/src/renderer/src/components/sidebar/use-worktree-card-secondary-details.ts b/src/renderer/src/components/sidebar/use-worktree-card-secondary-details.ts index ebc7cf483c8..64e9da831a6 100644 --- a/src/renderer/src/components/sidebar/use-worktree-card-secondary-details.ts +++ b/src/renderer/src/components/sidebar/use-worktree-card-secondary-details.ts @@ -1,6 +1,6 @@ import React, { useCallback } from 'react' -import type { GitHubWorkItem } from '../../../../shared/types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' import { hasWorktreeCardDetails } from './WorktreeCardMeta' import { usePromptCacheCountdownStartedAt } from './CacheTimer' import { useWorktreeAgentRows } from './useWorktreeAgentRows' diff --git a/src/renderer/src/components/sidebar/use-worktree-meta-workspace.ts b/src/renderer/src/components/sidebar/use-worktree-meta-workspace.ts index 336725efc1e..6e581d9c77e 100644 --- a/src/renderer/src/components/sidebar/use-worktree-meta-workspace.ts +++ b/src/renderer/src/components/sidebar/use-worktree-meta-workspace.ts @@ -1,7 +1,7 @@ import { useMemo } from 'react' import { useAppStore } from '@/store' import { findIndexedWorktreeOwner } from '@/lib/worktree-runtime-owner-index' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { parseWorkspaceKey } from '../../../../shared/workspace-scope' import { folderWorkspaceToWorktree } from '../../../../shared/folder-workspace-worktree' import type { IssueLinkProvider } from '../../../../shared/issue-link-input' diff --git a/src/renderer/src/components/sidebar/useAddRepoCloneFlow.test.ts b/src/renderer/src/components/sidebar/useAddRepoCloneFlow.test.ts index 57958126563..b9cd2bdd976 100644 --- a/src/renderer/src/components/sidebar/useAddRepoCloneFlow.test.ts +++ b/src/renderer/src/components/sidebar/useAddRepoCloneFlow.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type * as ReactModule from 'react' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' const mocks = vi.hoisted(() => ({ stateValues: [] as unknown[], diff --git a/src/renderer/src/components/sidebar/useAddRepoCloneFlow.ts b/src/renderer/src/components/sidebar/useAddRepoCloneFlow.ts index 24d27523942..f181929ddff 100644 --- a/src/renderer/src/components/sidebar/useAddRepoCloneFlow.ts +++ b/src/renderer/src/components/sidebar/useAddRepoCloneFlow.ts @@ -3,7 +3,7 @@ import { toast } from 'sonner' import { useAppStore } from '@/store' import { callRuntimeRpc, getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' import type { AddRepoExistingWorkspaceSource } from '../../../../shared/telemetry-events' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { getCloneDestinationAutoFill } from './clone-defaults' import type { AddRepoDialogStep } from './add-repo-dialog-types' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/sidebar/useAddRepoLocalFolderFlow.test.ts b/src/renderer/src/components/sidebar/useAddRepoLocalFolderFlow.test.ts index acc96258cb6..e3759cc13a0 100644 --- a/src/renderer/src/components/sidebar/useAddRepoLocalFolderFlow.test.ts +++ b/src/renderer/src/components/sidebar/useAddRepoLocalFolderFlow.test.ts @@ -1,6 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type * as ReactModule from 'react' -import type { NestedRepoScanResult, Repo } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' vi.mock('react', async (importOriginal) => { const actual = await importOriginal() diff --git a/src/renderer/src/components/sidebar/useAddRepoLocalFolderFlow.ts b/src/renderer/src/components/sidebar/useAddRepoLocalFolderFlow.ts index 859698f19f8..cf4c6b13ba5 100644 --- a/src/renderer/src/components/sidebar/useAddRepoLocalFolderFlow.ts +++ b/src/renderer/src/components/sidebar/useAddRepoLocalFolderFlow.ts @@ -8,7 +8,8 @@ import { type NestedRepoTelemetryRuntimeKind } from '../../../../shared/nested-repo-telemetry' import type { AddRepoExistingWorkspaceSource } from '../../../../shared/telemetry-events' -import type { NestedRepoScanResult, Repo } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import type { WorktreeFetchOptions } from '@/store/slices/worktree-helpers' import type { RepoSlice } from '@/store/slices/repos' import { createNestedRepoScanId } from './add-repo-dialog-types' diff --git a/src/renderer/src/components/sidebar/useAddRepoNestedImportFlow.test.ts b/src/renderer/src/components/sidebar/useAddRepoNestedImportFlow.test.ts index 6f56f454edd..4ed1f739f1a 100644 --- a/src/renderer/src/components/sidebar/useAddRepoNestedImportFlow.test.ts +++ b/src/renderer/src/components/sidebar/useAddRepoNestedImportFlow.test.ts @@ -1,6 +1,10 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type * as ReactModule from 'react' -import type { NestedRepoScanResult, ProjectGroupImportResult, Repo } from '../../../../shared/types' +import type { + NestedRepoScanResult, + ProjectGroupImportResult +} from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' vi.mock('react', async (importOriginal) => { const actual = await importOriginal() diff --git a/src/renderer/src/components/sidebar/useAddRepoNestedImportFlow.ts b/src/renderer/src/components/sidebar/useAddRepoNestedImportFlow.ts index c0c505cc97c..d52109bf0d7 100644 --- a/src/renderer/src/components/sidebar/useAddRepoNestedImportFlow.ts +++ b/src/renderer/src/components/sidebar/useAddRepoNestedImportFlow.ts @@ -10,7 +10,10 @@ import { type NestedRepoTelemetryRuntimeKind } from '../../../../shared/nested-repo-telemetry' import type { AddRepoExistingWorkspaceSource } from '../../../../shared/telemetry-events' -import type { NestedRepoScanResult, ProjectGroupImportResult } from '../../../../shared/types' +import type { + NestedRepoScanResult, + ProjectGroupImportResult +} from '../../../../shared/project-group-types' import type { WorktreeFetchOptions } from '@/store/slices/worktree-helpers' import { translate } from '@/i18n/i18n' import { worktreeRefreshOptions, type CapturedRuntimeOwner } from './add-repo-runtime-owner' diff --git a/src/renderer/src/components/sidebar/useAddRepoNestedReviewController.ts b/src/renderer/src/components/sidebar/useAddRepoNestedReviewController.ts index a5f47153736..f015883762b 100644 --- a/src/renderer/src/components/sidebar/useAddRepoNestedReviewController.ts +++ b/src/renderer/src/components/sidebar/useAddRepoNestedReviewController.ts @@ -1,6 +1,6 @@ import type { Dispatch, SetStateAction } from 'react' import type { AddRepoExistingWorkspaceSource } from '../../../../shared/telemetry-events' -import type { ProjectGroupImportResult } from '../../../../shared/types' +import type { ProjectGroupImportResult } from '../../../../shared/project-group-types' import type { WorktreeFetchOptions } from '@/store/slices/worktree-helpers' import { useAddRepoNestedImportFlow } from './useAddRepoNestedImportFlow' import { useAddRepoNestedReviewState } from './useAddRepoNestedReviewState' diff --git a/src/renderer/src/components/sidebar/useAddRepoNestedReviewState.ts b/src/renderer/src/components/sidebar/useAddRepoNestedReviewState.ts index a8f41592fbd..8e44b5a4076 100644 --- a/src/renderer/src/components/sidebar/useAddRepoNestedReviewState.ts +++ b/src/renderer/src/components/sidebar/useAddRepoNestedReviewState.ts @@ -1,6 +1,6 @@ import { useCallback, useRef, useState, type Dispatch, type SetStateAction } from 'react' import type { NestedRepoTelemetryRuntimeKind } from '../../../../shared/nested-repo-telemetry' -import type { NestedRepoScanResult } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' import { defaultProjectGroupNameForPath, type AddRepoDialogStep } from './add-repo-dialog-types' type ShowNestedRepoReviewArgs = { diff --git a/src/renderer/src/components/sidebar/useAddRepoServerPathFlow.test.ts b/src/renderer/src/components/sidebar/useAddRepoServerPathFlow.test.ts index 53d2b334112..2d0135bb420 100644 --- a/src/renderer/src/components/sidebar/useAddRepoServerPathFlow.test.ts +++ b/src/renderer/src/components/sidebar/useAddRepoServerPathFlow.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type * as ReactModule from 'react' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' const mocks = vi.hoisted(() => ({ stateValues: [] as unknown[], diff --git a/src/renderer/src/components/sidebar/useAddRepoServerPathFlow.ts b/src/renderer/src/components/sidebar/useAddRepoServerPathFlow.ts index a02bdbcf3f4..9810be00be8 100644 --- a/src/renderer/src/components/sidebar/useAddRepoServerPathFlow.ts +++ b/src/renderer/src/components/sidebar/useAddRepoServerPathFlow.ts @@ -8,7 +8,8 @@ import { type NestedRepoTelemetryRuntimeKind } from '../../../../shared/nested-repo-telemetry' import type { AddRepoExistingWorkspaceSource } from '../../../../shared/telemetry-events' -import type { NestedRepoScanResult, Repo } from '../../../../shared/types' +import type { NestedRepoScanResult } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import type { WorktreeFetchOptions } from '@/store/slices/worktree-helpers' import { createNestedRepoScanId } from './add-repo-dialog-types' import { worktreeRefreshOptions } from './add-repo-runtime-owner' diff --git a/src/renderer/src/components/sidebar/useCreateRepo.default-checkout.test.ts b/src/renderer/src/components/sidebar/useCreateRepo.default-checkout.test.ts index 832ce5b26dc..117e09d6fbe 100644 --- a/src/renderer/src/components/sidebar/useCreateRepo.default-checkout.test.ts +++ b/src/renderer/src/components/sidebar/useCreateRepo.default-checkout.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type * as ReactModule from 'react' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' const mocks = vi.hoisted(() => ({ stateValues: [] as unknown[], diff --git a/src/renderer/src/components/sidebar/useCreateRepo.ts b/src/renderer/src/components/sidebar/useCreateRepo.ts index a9c6c8c6525..103fb59f966 100644 --- a/src/renderer/src/components/sidebar/useCreateRepo.ts +++ b/src/renderer/src/components/sidebar/useCreateRepo.ts @@ -8,7 +8,7 @@ import { activateAndRevealWorktree } from '@/lib/worktree-activation' import { markOnboardingProjectAdded } from '@/lib/onboarding-project-checklist' import { callRuntimeRpc, getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' import { isGitRepoKind } from '../../../../shared/repo-kind' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { translate } from '@/i18n/i18n' import { extractIpcErrorMessage } from '@/lib/ipc-error' import { upsertAddedRepoWithProjectHostSetup } from './add-repo-store-upsert' diff --git a/src/renderer/src/components/sidebar/useSetupScriptPromptRevalidation.test.tsx b/src/renderer/src/components/sidebar/useSetupScriptPromptRevalidation.test.tsx index cb4e364d1b2..672d7130b5b 100644 --- a/src/renderer/src/components/sidebar/useSetupScriptPromptRevalidation.test.tsx +++ b/src/renderer/src/components/sidebar/useSetupScriptPromptRevalidation.test.tsx @@ -4,7 +4,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { useAppStore } from '@/store' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { useSetupScriptPromptRevalidation } from './useSetupScriptPromptRevalidation' import type { SetupScriptPromptState } from './setup-script-prompt-render-state' import { getRepoHostIdentityForParts } from '@/store/slices/repo-host-identity' diff --git a/src/renderer/src/components/sidebar/useSetupScriptPromptRevalidation.ts b/src/renderer/src/components/sidebar/useSetupScriptPromptRevalidation.ts index ce6a5e78fce..867b21052e7 100644 --- a/src/renderer/src/components/sidebar/useSetupScriptPromptRevalidation.ts +++ b/src/renderer/src/components/sidebar/useSetupScriptPromptRevalidation.ts @@ -1,7 +1,7 @@ import { useEffect, useRef } from 'react' import { useAppStore } from '@/store' import { isGitRepoKind } from '../../../../shared/repo-kind' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { getRepoHostIdentity } from '@/store/slices/repo-host-identity' import { getRepoExecutionHostId, parseExecutionHostId } from '../../../../shared/execution-host' import type { SetupScriptPromptState } from './setup-script-prompt-render-state' diff --git a/src/renderer/src/components/sidebar/useWorktreeAgentRows.test.ts b/src/renderer/src/components/sidebar/useWorktreeAgentRows.test.ts index 913e197691a..bd410ddc2a2 100644 --- a/src/renderer/src/components/sidebar/useWorktreeAgentRows.test.ts +++ b/src/renderer/src/components/sidebar/useWorktreeAgentRows.test.ts @@ -3,7 +3,7 @@ import { AGENT_STATUS_STALE_AFTER_MS, type AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' import type { RetainedAgentEntry } from '@/store/slices/agent-status' import { applyAgentRowLineage } from '@/components/dashboard/agent-row-lineage' import { makePaneKey } from '../../../../shared/stable-pane-id' diff --git a/src/renderer/src/components/sidebar/visible-worktree-activity-inputs.test.ts b/src/renderer/src/components/sidebar/visible-worktree-activity-inputs.test.ts index c96aa38d50d..c18c3cbceed 100644 --- a/src/renderer/src/components/sidebar/visible-worktree-activity-inputs.test.ts +++ b/src/renderer/src/components/sidebar/visible-worktree-activity-inputs.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { BrowserWorkspace, TerminalTab } from '../../../../shared/types' +import type { BrowserWorkspace } from '../../../../shared/browser-workspace-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { getVisibleWorktreeBrowserActivityTabs, getVisibleWorktreeTerminalActivityTabs diff --git a/src/renderer/src/components/sidebar/visible-worktree-activity-inputs.ts b/src/renderer/src/components/sidebar/visible-worktree-activity-inputs.ts index d843e8d20c1..683b984cca8 100644 --- a/src/renderer/src/components/sidebar/visible-worktree-activity-inputs.ts +++ b/src/renderer/src/components/sidebar/visible-worktree-activity-inputs.ts @@ -1,4 +1,5 @@ -import type { BrowserWorkspace, TerminalTab } from '../../../../shared/types' +import type { BrowserWorkspace } from '../../../../shared/browser-workspace-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' export type TerminalActivityTab = Pick export type BrowserActivityTab = Pick diff --git a/src/renderer/src/components/sidebar/visible-worktrees.test.ts b/src/renderer/src/components/sidebar/visible-worktrees.test.ts index 07e2d32a4b3..597d4b91e61 100644 --- a/src/renderer/src/components/sidebar/visible-worktrees.test.ts +++ b/src/renderer/src/components/sidebar/visible-worktrees.test.ts @@ -1,7 +1,10 @@ import { describe, expect, it } from 'vitest' import { computeVisibleWorktreeIds } from './visible-worktrees' import { getPairedDeviceIdsByEnvironment } from './workspace-creator-visibility' -import type { Repo, TerminalTab, Worktree, WorktreeLineage } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { LOCAL_EXECUTION_HOST_ID } from '../../../../shared/execution-host' function makeTab(id: string, worktreeId: string, ptyId: string | null): TerminalTab { diff --git a/src/renderer/src/components/sidebar/visible-worktrees.ts b/src/renderer/src/components/sidebar/visible-worktrees.ts index 927033c5bfa..270809d49da 100644 --- a/src/renderer/src/components/sidebar/visible-worktrees.ts +++ b/src/renderer/src/components/sidebar/visible-worktrees.ts @@ -1,4 +1,7 @@ -import type { Worktree, Repo, TerminalTab, WorktreeLineage } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { buildWorktreeComparator, sortWorktreesSmart } from './smart-sort' import { getWorktreeIdsWithLiveAgent, isInactiveWorkspace } from '@/lib/worktree-activity-state' import { useAppStore } from '@/store' @@ -28,8 +31,6 @@ import { } from './workspace-creator-visibility' import { isDefaultBranchWorkspace } from './default-branch-workspace' -export { isDefaultBranchWorkspace } from './default-branch-workspace' - /** * Whether the "Hide sleeping" sweep must keep this row (#8873). * diff --git a/src/renderer/src/components/sidebar/workspace-board-task-status-sync.test.ts b/src/renderer/src/components/sidebar/workspace-board-task-status-sync.test.ts index 17c0c2d2f14..880b03289d9 100644 --- a/src/renderer/src/components/sidebar/workspace-board-task-status-sync.test.ts +++ b/src/renderer/src/components/sidebar/workspace-board-task-status-sync.test.ts @@ -1,10 +1,7 @@ import { describe, expect, it, vi } from 'vitest' -import type { - LinearIssue, - LinearWorkflowState, - WorkspaceStatusDefinition, - Worktree -} from '../../../../shared/types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' +import type { LinearWorkflowState } from '../../../../shared/linear/workspace-types' +import type { WorkspaceStatusDefinition, Worktree } from '../../../../shared/worktree/types' import type { LinearMutationResult } from '@/runtime/runtime-linear-client' import { getWorkspaceBoardTaskStatusSyncRequest, diff --git a/src/renderer/src/components/sidebar/workspace-board-task-status-sync.ts b/src/renderer/src/components/sidebar/workspace-board-task-status-sync.ts index 15409ddcfe6..505459a99fd 100644 --- a/src/renderer/src/components/sidebar/workspace-board-task-status-sync.ts +++ b/src/renderer/src/components/sidebar/workspace-board-task-status-sync.ts @@ -5,13 +5,13 @@ import { type LinearMutationResult, type RuntimeLinearSettings } from '@/runtime/runtime-linear-client' +import type { LinearIssue } from '../../../../shared/linear/issue-types' +import type { LinearWorkflowState } from '../../../../shared/linear/workspace-types' import type { - LinearIssue, - LinearWorkflowState, WorkspaceStatus, WorkspaceStatusDefinition, Worktree -} from '../../../../shared/types' +} from '../../../../shared/worktree/types' import { getWorkspaceStatus } from '../../../../shared/workspace-statuses' export type WorkspaceBoardTaskStatusSyncResult = { diff --git a/src/renderer/src/components/sidebar/workspace-creator-visibility.test.ts b/src/renderer/src/components/sidebar/workspace-creator-visibility.test.ts index 1cbd5eedb08..f21c61c5279 100644 --- a/src/renderer/src/components/sidebar/workspace-creator-visibility.test.ts +++ b/src/renderer/src/components/sidebar/workspace-creator-visibility.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { FolderWorkspace } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' import { filterFolderWorkspacesFromOtherDevices } from './workspace-creator-visibility' function makeFolderWorkspace( diff --git a/src/renderer/src/components/sidebar/workspace-creator-visibility.ts b/src/renderer/src/components/sidebar/workspace-creator-visibility.ts index 1cc4e208cfd..ca0b929a40c 100644 --- a/src/renderer/src/components/sidebar/workspace-creator-visibility.ts +++ b/src/renderer/src/components/sidebar/workspace-creator-visibility.ts @@ -1,6 +1,7 @@ import type { RuntimeStatus } from '../../../../shared/runtime-types' import type { PublicKnownRuntimeEnvironment } from '../../../../shared/runtime-environments' -import type { FolderWorkspace, Worktree } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceToWorktree } from '../../../../shared/folder-workspace-worktree' import { normalizeWorkspaceCreatorProvenance } from '../../../../shared/workspace-creator-provenance' diff --git a/src/renderer/src/components/sidebar/workspace-delete-lineage.test.ts b/src/renderer/src/components/sidebar/workspace-delete-lineage.test.ts index b5679409cc5..b368cb93133 100644 --- a/src/renderer/src/components/sidebar/workspace-delete-lineage.test.ts +++ b/src/renderer/src/components/sidebar/workspace-delete-lineage.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import { LOCAL_EXECUTION_HOST_ID, toSshExecutionHostId } from '../../../../shared/execution-host' -import type { Worktree, WorktreeLineage } from '../../../../shared/types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getWorkspaceDeleteLineage } from './workspace-delete-lineage' function makeWorktree(id: string, path: string): Worktree { diff --git a/src/renderer/src/components/sidebar/workspace-delete-lineage.ts b/src/renderer/src/components/sidebar/workspace-delete-lineage.ts index ca6c78c1b67..55d62fc71fd 100644 --- a/src/renderer/src/components/sidebar/workspace-delete-lineage.ts +++ b/src/renderer/src/components/sidebar/workspace-delete-lineage.ts @@ -1,4 +1,5 @@ -import type { Worktree, WorktreeLineage } from '../../../../shared/types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getProjectedWorktreeLineageChildrenByParentId } from './worktree-lineage-projection' type WorkspaceDeleteLineage = { diff --git a/src/renderer/src/components/sidebar/workspace-kanban-card-pointer-drag-dom.ts b/src/renderer/src/components/sidebar/workspace-kanban-card-pointer-drag-dom.ts index dd59d430ab9..768fd3cd2bd 100644 --- a/src/renderer/src/components/sidebar/workspace-kanban-card-pointer-drag-dom.ts +++ b/src/renderer/src/components/sidebar/workspace-kanban-card-pointer-drag-dom.ts @@ -1,4 +1,4 @@ -import type { WorkspaceStatus } from '../../../../shared/types' +import type { WorkspaceStatus } from '../../../../shared/worktree/types' import { resolveWorkspaceKanbanVirtualLaneDropIndex, resolveWorkspaceKanbanVirtualLaneDropIndicatorY diff --git a/src/renderer/src/components/sidebar/workspace-kanban-search.test.ts b/src/renderer/src/components/sidebar/workspace-kanban-search.test.ts index d5b42c45cde..0eb1d42d377 100644 --- a/src/renderer/src/components/sidebar/workspace-kanban-search.test.ts +++ b/src/renderer/src/components/sidebar/workspace-kanban-search.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import { WORKTREE_PALETTE_QUERY_MAX_BYTES } from '@/lib/worktree-palette-query-bounds' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { buildWorkspaceKanbanLaneViews, matchWorkspaceBoardWorktrees diff --git a/src/renderer/src/components/sidebar/workspace-kanban-search.ts b/src/renderer/src/components/sidebar/workspace-kanban-search.ts index a7f8b0840d0..c76fb230610 100644 --- a/src/renderer/src/components/sidebar/workspace-kanban-search.ts +++ b/src/renderer/src/components/sidebar/workspace-kanban-search.ts @@ -1,6 +1,7 @@ import { isWorktreePaletteQueryTooLarge } from '@/lib/worktree-palette-query-bounds' import { searchWorktrees, type PaletteMatchedField } from '@/lib/worktree-palette-search' -import type { Repo, WorkspaceStatus, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceStatus, Worktree } from '../../../../shared/worktree/types' export type WorkspaceKanbanLaneView = { items: readonly Worktree[] diff --git a/src/renderer/src/components/sidebar/workspace-kanban-sidebar-drop.test.ts b/src/renderer/src/components/sidebar/workspace-kanban-sidebar-drop.test.ts index 5a4a3d62b4c..bdd9928ff17 100644 --- a/src/renderer/src/components/sidebar/workspace-kanban-sidebar-drop.test.ts +++ b/src/renderer/src/components/sidebar/workspace-kanban-sidebar-drop.test.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { WorkspaceStatusDefinition, Worktree } from '../../../../shared/types' +import type { WorkspaceStatusDefinition, Worktree } from '../../../../shared/worktree/types' import { serializeWorkspaceLaneFullIds } from './workspace-kanban-filtered-drop-index' import { buildWorkspaceKanbanSidebarDropUpdates, diff --git a/src/renderer/src/components/sidebar/workspace-kanban-sidebar-drop.ts b/src/renderer/src/components/sidebar/workspace-kanban-sidebar-drop.ts index 8475d91cdd8..53600b5b20b 100644 --- a/src/renderer/src/components/sidebar/workspace-kanban-sidebar-drop.ts +++ b/src/renderer/src/components/sidebar/workspace-kanban-sidebar-drop.ts @@ -1,9 +1,9 @@ +import type { WorktreeMeta } from '../../../../shared/worktree/meta-types' import type { WorkspaceStatus, WorkspaceStatusDefinition, - Worktree, - WorktreeMeta -} from '../../../../shared/types' + Worktree +} from '../../../../shared/worktree/types' import { parseWorkspaceLaneFullIds, resolveFullLaneDropIndex diff --git a/src/renderer/src/components/sidebar/workspace-kanban-worktree-groups.test.ts b/src/renderer/src/components/sidebar/workspace-kanban-worktree-groups.test.ts index 00fbbe84067..e705a12f9fe 100644 --- a/src/renderer/src/components/sidebar/workspace-kanban-worktree-groups.test.ts +++ b/src/renderer/src/components/sidebar/workspace-kanban-worktree-groups.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { groupWorkspaceKanbanWorktrees } from './workspace-kanban-worktree-groups' function worktree({ diff --git a/src/renderer/src/components/sidebar/workspace-kanban-worktree-groups.ts b/src/renderer/src/components/sidebar/workspace-kanban-worktree-groups.ts index 1f85cf3682c..b26ba6e7367 100644 --- a/src/renderer/src/components/sidebar/workspace-kanban-worktree-groups.ts +++ b/src/renderer/src/components/sidebar/workspace-kanban-worktree-groups.ts @@ -1,4 +1,8 @@ -import type { WorkspaceStatus, WorkspaceStatusDefinition, Worktree } from '../../../../shared/types' +import type { + WorkspaceStatus, + WorkspaceStatusDefinition, + Worktree +} from '../../../../shared/worktree/types' import type { SortBy } from './smart-sort' import { getWorkspaceStatus } from './workspace-status' import { compareWorktreeDisplayName } from '@/lib/worktree-display-name-order' diff --git a/src/renderer/src/components/sidebar/workspace-lineage-menu-actions.test.ts b/src/renderer/src/components/sidebar/workspace-lineage-menu-actions.test.ts index cc9d4646584..f4a06ccfada 100644 --- a/src/renderer/src/components/sidebar/workspace-lineage-menu-actions.test.ts +++ b/src/renderer/src/components/sidebar/workspace-lineage-menu-actions.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { Worktree, WorktreeLineage } from '../../../../shared/types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getWorkspaceLineageMenuActions, hasSleepableWorkspaceActivity diff --git a/src/renderer/src/components/sidebar/workspace-lineage-menu-actions.ts b/src/renderer/src/components/sidebar/workspace-lineage-menu-actions.ts index 64dd1260534..1ff8c20ea6c 100644 --- a/src/renderer/src/components/sidebar/workspace-lineage-menu-actions.ts +++ b/src/renderer/src/components/sidebar/workspace-lineage-menu-actions.ts @@ -1,6 +1,7 @@ import { useMemo } from 'react' import { tabHasLivePty } from '@/lib/tab-has-live-pty' -import type { Worktree, WorktreeLineage } from '../../../../shared/types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getWorkspaceDeleteLineage } from './workspace-delete-lineage' type WorkspaceActivityMaps = { diff --git a/src/renderer/src/components/sidebar/workspace-status.ts b/src/renderer/src/components/sidebar/workspace-status.ts index a35f7dff4fd..5229831dcac 100644 --- a/src/renderer/src/components/sidebar/workspace-status.ts +++ b/src/renderer/src/components/sidebar/workspace-status.ts @@ -1,6 +1,6 @@ import React from 'react' import { CircleDot } from 'lucide-react' -import type { WorkspaceStatus, WorkspaceStatusDefinition } from '../../../../shared/types' +import type { WorkspaceStatus, WorkspaceStatusDefinition } from '../../../../shared/worktree/types' import { DEFAULT_WORKSPACE_STATUS_COLOR_ID, DEFAULT_WORKSPACE_STATUS_ICON_ID, diff --git a/src/renderer/src/components/sidebar/worktree-agent-activity-summary.test.ts b/src/renderer/src/components/sidebar/worktree-agent-activity-summary.test.ts index bc1f06cc7b5..ed086d7c94e 100644 --- a/src/renderer/src/components/sidebar/worktree-agent-activity-summary.test.ts +++ b/src/renderer/src/components/sidebar/worktree-agent-activity-summary.test.ts @@ -2,7 +2,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import { shallow } from 'zustand/shallow' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' import { makePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { selectWorktreeAgentActivitySummary, type AgentActivityInput diff --git a/src/renderer/src/components/sidebar/worktree-agent-freshness-selector.test.ts b/src/renderer/src/components/sidebar/worktree-agent-freshness-selector.test.ts index b52b0dd9024..098c7eadcb4 100644 --- a/src/renderer/src/components/sidebar/worktree-agent-freshness-selector.test.ts +++ b/src/renderer/src/components/sidebar/worktree-agent-freshness-selector.test.ts @@ -4,7 +4,7 @@ import { type AgentStatusEntry } from '../../../../shared/agent-status-types' import { makePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { createWorktreeAgentFreshnessSelector } from './worktree-agent-freshness-selector' const WT_1_PANE = makePaneKey('tab-1', '11111111-1111-4111-8111-111111111111') diff --git a/src/renderer/src/components/sidebar/worktree-agent-orchestration-batch.test.ts b/src/renderer/src/components/sidebar/worktree-agent-orchestration-batch.test.ts index 808664cbc7c..665cbb07896 100644 --- a/src/renderer/src/components/sidebar/worktree-agent-orchestration-batch.test.ts +++ b/src/renderer/src/components/sidebar/worktree-agent-orchestration-batch.test.ts @@ -5,7 +5,7 @@ import type { AgentStatusOrchestrationContext } from '../../../../shared/agent-status-types' import { makePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { EMPTY_WORKTREE_AGENT_ORCHESTRATION, selectRuntimeAgentOrchestrationBatch diff --git a/src/renderer/src/components/sidebar/worktree-agent-orchestration-index.test.ts b/src/renderer/src/components/sidebar/worktree-agent-orchestration-index.test.ts index 2bd549481c0..e7881d95aff 100644 --- a/src/renderer/src/components/sidebar/worktree-agent-orchestration-index.test.ts +++ b/src/renderer/src/components/sidebar/worktree-agent-orchestration-index.test.ts @@ -4,7 +4,7 @@ import type { AgentStatusOrchestrationContext } from '../../../../shared/agent-status-types' import type { RetainedAgentEntry } from '@/store/slices/agent-status' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { makePaneKey, parsePaneKey } from '../../../../shared/stable-pane-id' import { EMPTY_WORKTREE_AGENT_ORCHESTRATION, diff --git a/src/renderer/src/components/sidebar/worktree-agent-row-fallback-tab.ts b/src/renderer/src/components/sidebar/worktree-agent-row-fallback-tab.ts index d722d39c4bb..9a0b6185a1a 100644 --- a/src/renderer/src/components/sidebar/worktree-agent-row-fallback-tab.ts +++ b/src/renderer/src/components/sidebar/worktree-agent-row-fallback-tab.ts @@ -1,6 +1,6 @@ import type { AgentStatusEntry } from '../../../../shared/agent-status-types' import { parsePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' export function effectiveWorktreeAgentRowStartedAt(entry: AgentStatusEntry): number { return entry.stateHistory[0]?.startedAt ?? entry.stateStartedAt diff --git a/src/renderer/src/components/sidebar/worktree-agent-row-selectors.test.ts b/src/renderer/src/components/sidebar/worktree-agent-row-selectors.test.ts index 46f75858ee9..29b30fa34ba 100644 --- a/src/renderer/src/components/sidebar/worktree-agent-row-selectors.test.ts +++ b/src/renderer/src/components/sidebar/worktree-agent-row-selectors.test.ts @@ -3,7 +3,7 @@ import type { AgentStatusEntry, MigrationUnsupportedPtyEntry } from '../../../../shared/agent-status-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { RetainedAgentEntry } from '@/store/slices/agent-status' import { makePaneKey } from '../../../../shared/stable-pane-id' import { getLiveEntriesFullRebuildCountForTests } from './worktree-agent-live-index-patch' diff --git a/src/renderer/src/components/sidebar/worktree-agent-row-selectors.ts b/src/renderer/src/components/sidebar/worktree-agent-row-selectors.ts index 75de25923f2..e9a6b5fde0b 100644 --- a/src/renderer/src/components/sidebar/worktree-agent-row-selectors.ts +++ b/src/renderer/src/components/sidebar/worktree-agent-row-selectors.ts @@ -13,7 +13,7 @@ import { recordLiveEntriesFullRebuild } from './worktree-agent-live-index-patch' import { selectWorktreeAgentOrchestration } from './worktree-agent-orchestration-index' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' const EMPTY_LIVE_ENTRIES: AgentStatusEntry[] = [] const EMPTY_MIGRATION_UNSUPPORTED_ENTRIES: MigrationUnsupportedPtyEntry[] = [] diff --git a/src/renderer/src/components/sidebar/worktree-agent-rows.ts b/src/renderer/src/components/sidebar/worktree-agent-rows.ts index da4a33650e6..1fbca0fc743 100644 --- a/src/renderer/src/components/sidebar/worktree-agent-rows.ts +++ b/src/renderer/src/components/sidebar/worktree-agent-rows.ts @@ -16,7 +16,7 @@ import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode, TerminalTab -} from '../../../../shared/types' +} from '../../../../shared/terminal-tab-types' import { resolveRuntimePaneTitleLeafId } from '@/lib/runtime-pane-title-leaf-id' import { buildTitleDerivedAgentRows, diff --git a/src/renderer/src/components/sidebar/worktree-card-display-property-options.ts b/src/renderer/src/components/sidebar/worktree-card-display-property-options.ts index e5256b48312..7a009b384fa 100644 --- a/src/renderer/src/components/sidebar/worktree-card-display-property-options.ts +++ b/src/renderer/src/components/sidebar/worktree-card-display-property-options.ts @@ -1,4 +1,4 @@ -import type { WorktreeCardProperty } from '../../../../shared/types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' import { translate } from '@/i18n/i18n' export const PROPERTY_OPTIONS: { id: WorktreeCardProperty; label: string }[] = [ diff --git a/src/renderer/src/components/sidebar/worktree-card-header.tsx b/src/renderer/src/components/sidebar/worktree-card-header.tsx index 0c063e28dee..8fb715b01ca 100644 --- a/src/renderer/src/components/sidebar/worktree-card-header.tsx +++ b/src/renderer/src/components/sidebar/worktree-card-header.tsx @@ -7,7 +7,7 @@ import { Button } from '@/components/ui/button' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { translate } from '@/i18n/i18n' import { cn } from '@/lib/utils' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { resolveRepoHeaderColor } from './project-header-color' import { formatSparseDirectoryPreview, shouldBeginWorktreeRename } from './worktree-card-model' import type { WorktreeCardPresentation } from './worktree-card-presentation' diff --git a/src/renderer/src/components/sidebar/worktree-card-jira-issue-display.ts b/src/renderer/src/components/sidebar/worktree-card-jira-issue-display.ts index b9373e1092a..a072c51c33f 100644 --- a/src/renderer/src/components/sidebar/worktree-card-jira-issue-display.ts +++ b/src/renderer/src/components/sidebar/worktree-card-jira-issue-display.ts @@ -1,4 +1,5 @@ -import type { Worktree, WorktreeCardProperty } from '../../../../shared/types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { WorktreeCardJiraIssueDisplay } from './worktree-card-meta-types' function withoutRepeatedJiraIdentifier(title: string, identifier: string): string { diff --git a/src/renderer/src/components/sidebar/worktree-card-meta-types.ts b/src/renderer/src/components/sidebar/worktree-card-meta-types.ts index 75373a14699..0be771e7534 100644 --- a/src/renderer/src/components/sidebar/worktree-card-meta-types.ts +++ b/src/renderer/src/components/sidebar/worktree-card-meta-types.ts @@ -1,9 +1,9 @@ import type { ExecutionHostId } from '../../../../shared/execution-host' +import type { IssueInfo } from '../../../../shared/github/pull-request-types' import type { AutomationWorkspaceProvenance, - CliWorkspaceProvenance, - IssueInfo -} from '../../../../shared/types' + CliWorkspaceProvenance +} from '../../../../shared/worktree/types' import type { WorktreeCardPrDisplay } from './worktree-card-pr-display' import type { WorktreeCardDetailsHoverControl } from './worktree-card-details-hover-state' diff --git a/src/renderer/src/components/sidebar/worktree-card-model.ts b/src/renderer/src/components/sidebar/worktree-card-model.ts index 2331b92d2cd..e10cf2da703 100644 --- a/src/renderer/src/components/sidebar/worktree-card-model.ts +++ b/src/renderer/src/components/sidebar/worktree-card-model.ts @@ -1,6 +1,7 @@ import type React from 'react' -import type { Repo, WorkspaceStatus, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceStatus, Worktree } from '../../../../shared/worktree/types' import type { WorktreeCardPrDisplay } from './worktree-card-pr-display' export type WorktreeRenameRequest = { diff --git a/src/renderer/src/components/sidebar/worktree-card-pr-display.test.ts b/src/renderer/src/components/sidebar/worktree-card-pr-display.test.ts index 8cc6d45ac5a..7e677708b50 100644 --- a/src/renderer/src/components/sidebar/worktree-card-pr-display.test.ts +++ b/src/renderer/src/components/sidebar/worktree-card-pr-display.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { PRInfo } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' import { getWorktreeCardPrDisplay, isCachedMergedBranchPRCurrentForWorktree diff --git a/src/renderer/src/components/sidebar/worktree-card-pr-display.ts b/src/renderer/src/components/sidebar/worktree-card-pr-display.ts index 27027e09183..12dcddfac03 100644 --- a/src/renderer/src/components/sidebar/worktree-card-pr-display.ts +++ b/src/renderer/src/components/sidebar/worktree-card-pr-display.ts @@ -1,5 +1,6 @@ import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { PRInfo, Worktree } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { Worktree } from '../../../../shared/worktree/types' type LinkedReviewMetadataProvider = Exclude diff --git a/src/renderer/src/components/sidebar/worktree-card-status-inputs.test.ts b/src/renderer/src/components/sidebar/worktree-card-status-inputs.test.ts index 0030e7d931e..7d366b845e8 100644 --- a/src/renderer/src/components/sidebar/worktree-card-status-inputs.test.ts +++ b/src/renderer/src/components/sidebar/worktree-card-status-inputs.test.ts @@ -4,7 +4,7 @@ import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode, TerminalTab -} from '../../../../shared/types' +} from '../../../../shared/terminal-tab-types' import { selectLivePtyIdsForWorktree, selectTerminalLayoutRootsForWorktree, diff --git a/src/renderer/src/components/sidebar/worktree-card-status-inputs.ts b/src/renderer/src/components/sidebar/worktree-card-status-inputs.ts index e06894441cf..128afafe03d 100644 --- a/src/renderer/src/components/sidebar/worktree-card-status-inputs.ts +++ b/src/renderer/src/components/sidebar/worktree-card-status-inputs.ts @@ -1,5 +1,5 @@ import type { AppState } from '@/store/types' -import type { TerminalPaneLayoutNode } from '../../../../shared/types' +import type { TerminalPaneLayoutNode } from '../../../../shared/terminal-tab-types' // Why: these selectors return fresh maps whose top-level values preserve // underlying per-tab references, so callers must compare them shallowly. diff --git a/src/renderer/src/components/sidebar/worktree-delete-execution.ts b/src/renderer/src/components/sidebar/worktree-delete-execution.ts index 889587306d0..f105acedcdf 100644 --- a/src/renderer/src/components/sidebar/worktree-delete-execution.ts +++ b/src/renderer/src/components/sidebar/worktree-delete-execution.ts @@ -7,7 +7,7 @@ import { isPathInsideOrEqual, normalizeRuntimePathForComparison } from '../../../../shared/cross-platform-path' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { prepareActiveWorktreeFocusAfterDelete } from './active-worktree-focus-after-delete' import { showDeleteWorktreeFailureToast } from './delete-worktree-failure-toast' import { showWorkspaceListChangedToast } from './stale-workspace-list-toast' diff --git a/src/renderer/src/components/sidebar/worktree-delete-request.ts b/src/renderer/src/components/sidebar/worktree-delete-request.ts index 71ef9e87cda..df357d8c55e 100644 --- a/src/renderer/src/components/sidebar/worktree-delete-request.ts +++ b/src/renderer/src/components/sidebar/worktree-delete-request.ts @@ -1,4 +1,4 @@ -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import type { PreservedBranchCleanup } from '@/lib/preserved-branch-cleanup' export type WorktreeBatchDeleteOptions = { diff --git a/src/renderer/src/components/sidebar/worktree-lineage-drag-drop.test.ts b/src/renderer/src/components/sidebar/worktree-lineage-drag-drop.test.ts index 9241dd2cf11..65ae3befbc7 100644 --- a/src/renderer/src/components/sidebar/worktree-lineage-drag-drop.test.ts +++ b/src/renderer/src/components/sidebar/worktree-lineage-drag-drop.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { Worktree, WorktreeLineage } from '../../../../shared/types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getCyclicProjectedWorktreeLineageIds } from './worktree-lineage-projection' import { getReorderedWorktreeIdsToUnnest, diff --git a/src/renderer/src/components/sidebar/worktree-lineage-drag-drop.ts b/src/renderer/src/components/sidebar/worktree-lineage-drag-drop.ts index f171ce5d2a6..5f63768aac3 100644 --- a/src/renderer/src/components/sidebar/worktree-lineage-drag-drop.ts +++ b/src/renderer/src/components/sidebar/worktree-lineage-drag-drop.ts @@ -1,4 +1,5 @@ -import type { Worktree, WorktreeLineage } from '../../../../shared/types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getLineageRenderInfo } from './worktree-lineage-projection' const WORKTREE_CARD_CONTENT_TARGET_SELECTOR = '[data-worktree-card-hover-trigger]' diff --git a/src/renderer/src/components/sidebar/worktree-lineage-projection.ts b/src/renderer/src/components/sidebar/worktree-lineage-projection.ts index 040a40eb737..337140f586c 100644 --- a/src/renderer/src/components/sidebar/worktree-lineage-projection.ts +++ b/src/renderer/src/components/sidebar/worktree-lineage-projection.ts @@ -2,7 +2,8 @@ import { getCyclicWorktreeLineageChildIds, isValidResolvedWorktreeLineageEdge } from '../../../../shared/resolved-worktree-lineage' -import type { Worktree, WorktreeLineage } from '../../../../shared/types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' export type LineageRenderInfo = | { state: 'none' } diff --git a/src/renderer/src/components/sidebar/worktree-list-folder-reveal.test.ts b/src/renderer/src/components/sidebar/worktree-list-folder-reveal.test.ts index 9b472ab7be7..61eca2889de 100644 --- a/src/renderer/src/components/sidebar/worktree-list-folder-reveal.test.ts +++ b/src/renderer/src/components/sidebar/worktree-list-folder-reveal.test.ts @@ -1,5 +1,7 @@ import { describe, expect, it } from 'vitest' -import type { FolderWorkspace, ProjectGroup, Worktree } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import { getFolderWorkspaceRevealGroupKeys, diff --git a/src/renderer/src/components/sidebar/worktree-list-folder-reveal.ts b/src/renderer/src/components/sidebar/worktree-list-folder-reveal.ts index 21c70db9384..de8ca2c278c 100644 --- a/src/renderer/src/components/sidebar/worktree-list-folder-reveal.ts +++ b/src/renderer/src/components/sidebar/worktree-list-folder-reveal.ts @@ -1,4 +1,6 @@ -import type { FolderWorkspace, ProjectGroup, Worktree } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceToWorktree } from '../../../../shared/folder-workspace-worktree' import { parseWorkspaceKey } from '../../../../shared/workspace-scope' import { getProjectGroupHeaderKey } from './worktree-list-groups' diff --git a/src/renderer/src/components/sidebar/worktree-list-groups.test.ts b/src/renderer/src/components/sidebar/worktree-list-groups.test.ts index c5a7f9606b2..dacfcb3a139 100644 --- a/src/renderer/src/components/sidebar/worktree-list-groups.test.ts +++ b/src/renderer/src/components/sidebar/worktree-list-groups.test.ts @@ -20,16 +20,12 @@ import { REPO_HEADER_ACTION_REVEAL_CLASS } from './repo-header-action-button-class' import { getWorktreeLineageAncestors } from './worktree-lineage-projection' -import type { - DetectedWorktree, - Project, - ProjectHostSetup, - FolderWorkspace, - Repo, - ProjectGroup, - Worktree, - WorktreeLineage -} from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { DetectedWorktree, Worktree } from '../../../../shared/worktree/types' const LOCAL_HOST_LABEL = getExecutionHostLabel('local') diff --git a/src/renderer/src/components/sidebar/worktree-list-groups.ts b/src/renderer/src/components/sidebar/worktree-list-groups.ts index a154eea8263..068da94edb7 100644 --- a/src/renderer/src/components/sidebar/worktree-list-groups.ts +++ b/src/renderer/src/components/sidebar/worktree-list-groups.ts @@ -1,18 +1,17 @@ /* eslint-disable max-lines -- Why: sidebar row construction keeps every grouping mode in one pure module so reveal, virtualized rendering, and tests share the same flat row contract. */ import { CircleX, FolderTree, List, Pin } from 'lucide-react' import type React from 'react' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { ProjectOrderBy } from '../../../../shared/ui-chrome-types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' import type { DetectedWorktree, - Project, - ProjectHostSetup, - FolderWorkspace, - Repo, - ProjectGroup, - ProjectOrderBy, - Worktree, - WorktreeLineage, - WorkspaceStatusDefinition -} from '../../../../shared/types' + WorkspaceStatusDefinition, + Worktree +} from '../../../../shared/worktree/types' import { branchName } from '../../lib/git-utils' import { getWorkspaceStatus, diff --git a/src/renderer/src/components/sidebar/worktree-list-host-filtering.test.ts b/src/renderer/src/components/sidebar/worktree-list-host-filtering.test.ts index 2321971231e..179e3ee8379 100644 --- a/src/renderer/src/components/sidebar/worktree-list-host-filtering.test.ts +++ b/src/renderer/src/components/sidebar/worktree-list-host-filtering.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { FolderWorkspace, ProjectGroup } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' import { getFolderPathStatusRouteOptionsForRows, getFolderWorkspaceExecutionHostIdForRows, diff --git a/src/renderer/src/components/sidebar/worktree-list-host-filtering.ts b/src/renderer/src/components/sidebar/worktree-list-host-filtering.ts index 655c4e4f2ff..8071b56bcb7 100644 --- a/src/renderer/src/components/sidebar/worktree-list-host-filtering.ts +++ b/src/renderer/src/components/sidebar/worktree-list-host-filtering.ts @@ -7,7 +7,8 @@ import { type ExecutionHostScope } from '../../../../shared/execution-host' import type { FolderWorkspacePathStatusRequest } from '../../../../shared/folder-workspace-path-status' -import type { FolderWorkspace, ProjectGroup } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' /** null means "no host filter" — every host is visible. */ export function getVisibleSidebarHostIdSet( diff --git a/src/renderer/src/components/sidebar/worktree-list-imported-rows.test.ts b/src/renderer/src/components/sidebar/worktree-list-imported-rows.test.ts index 67f3760c91c..9cda62a93b4 100644 --- a/src/renderer/src/components/sidebar/worktree-list-imported-rows.test.ts +++ b/src/renderer/src/components/sidebar/worktree-list-imported-rows.test.ts @@ -6,7 +6,8 @@ import { getWorktreeDragIndexes, renderRowContainsWorktree } from './WorktreeList' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { Row } from './worktree-list-groups' const repo: Repo = { diff --git a/src/renderer/src/components/sidebar/worktree-list-review-cache-inputs.test.ts b/src/renderer/src/components/sidebar/worktree-list-review-cache-inputs.test.ts index 4960445c342..714fe0e64b4 100644 --- a/src/renderer/src/components/sidebar/worktree-list-review-cache-inputs.test.ts +++ b/src/renderer/src/components/sidebar/worktree-list-review-cache-inputs.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { shallow } from 'zustand/shallow' -import type { FolderWorkspace } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' import { EMPTY_WORKTREE_LIST_REVIEW_CACHE_INPUTS, selectWorktreeListReviewCacheInputs, diff --git a/src/renderer/src/components/sidebar/worktree-list-review-cache-inputs.ts b/src/renderer/src/components/sidebar/worktree-list-review-cache-inputs.ts index 9ea780c89ea..690da091f3c 100644 --- a/src/renderer/src/components/sidebar/worktree-list-review-cache-inputs.ts +++ b/src/renderer/src/components/sidebar/worktree-list-review-cache-inputs.ts @@ -1,5 +1,5 @@ import type { AppState } from '@/store/types' -import type { WorktreeCardProperty } from '../../../../shared/types' +import type { WorktreeCardProperty } from '../../../../shared/ui-chrome-types' import type { WorktreeGroupBy } from './worktree-list-groups' export type WorktreeListReviewCacheState = Pick< diff --git a/src/renderer/src/components/sidebar/worktree-list-scroll-adjustment.test.ts b/src/renderer/src/components/sidebar/worktree-list-scroll-adjustment.test.ts index 924a4edc88a..f5b9d586f63 100644 --- a/src/renderer/src/components/sidebar/worktree-list-scroll-adjustment.test.ts +++ b/src/renderer/src/components/sidebar/worktree-list-scroll-adjustment.test.ts @@ -12,7 +12,7 @@ import { GROUP_HEADER_ROW_HEIGHT, getActiveStickyHeaderIndexForScroll } from './worktree-list-virtual-rows' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import type { Row } from './worktree-list-groups' const repo: Repo = { diff --git a/src/renderer/src/components/sidebar/worktree-list-sticky-headers.test.ts b/src/renderer/src/components/sidebar/worktree-list-sticky-headers.test.ts index 777560a9484..1c8efdfe9a0 100644 --- a/src/renderer/src/components/sidebar/worktree-list-sticky-headers.test.ts +++ b/src/renderer/src/components/sidebar/worktree-list-sticky-headers.test.ts @@ -1,7 +1,9 @@ import { describe, expect, it } from 'vitest' import { buildRows } from './worktree-list-groups' import { getStickyHeaderIndexes } from './worktree-list-virtual-rows' -import type { ProjectGroup, Repo, Worktree } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { Row } from './worktree-list-groups' const repo: Repo = { diff --git a/src/renderer/src/components/sidebar/worktree-meta-updates.test.ts b/src/renderer/src/components/sidebar/worktree-meta-updates.test.ts index 3ce6ffb74b4..38985cf7330 100644 --- a/src/renderer/src/components/sidebar/worktree-meta-updates.test.ts +++ b/src/renderer/src/components/sidebar/worktree-meta-updates.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { WorktreeMeta } from '../../../../shared/types' +import type { WorktreeMeta } from '../../../../shared/worktree/meta-types' import { buildWorktreeMetaUpdates, type WorktreeMetaDraft, diff --git a/src/renderer/src/components/sidebar/worktree-meta-updates.ts b/src/renderer/src/components/sidebar/worktree-meta-updates.ts index 20afdf8af26..b8f06c43d8c 100644 --- a/src/renderer/src/components/sidebar/worktree-meta-updates.ts +++ b/src/renderer/src/components/sidebar/worktree-meta-updates.ts @@ -5,7 +5,8 @@ import { } from '../../../../shared/linear/links' import { parseIssueLinkInput, type IssueLinkProvider } from '../../../../shared/issue-link-input' import type { WorkspaceSourceProvider } from '../../../../shared/new-workspace/workspace-source' -import type { WorkspaceLinkedItem, WorktreeMeta } from '../../../../shared/types' +import type { WorktreeMeta } from '../../../../shared/worktree/meta-types' +import type { WorkspaceLinkedItem } from '../../../../shared/worktree/types' export type WorktreeMetaSavedPayload = { worktreeId: string diff --git a/src/renderer/src/components/sidebar/worktree-parent-candidates.ts b/src/renderer/src/components/sidebar/worktree-parent-candidates.ts index 981ea7e3a7d..b95d2c1fbd3 100644 --- a/src/renderer/src/components/sidebar/worktree-parent-candidates.ts +++ b/src/renderer/src/components/sidebar/worktree-parent-candidates.ts @@ -1,5 +1,7 @@ import { getWorktreeExecutionHostId } from '../../../../shared/execution-host' -import type { Repo, Worktree, WorktreeLineage } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { canAssignWorktreeParent } from './worktree-parent-eligibility' import { getCyclicProjectedWorktreeLineageIds } from './worktree-lineage-projection' diff --git a/src/renderer/src/components/sidebar/worktree-parent-eligibility.test.ts b/src/renderer/src/components/sidebar/worktree-parent-eligibility.test.ts index 7dfe0360f02..64400b7dedd 100644 --- a/src/renderer/src/components/sidebar/worktree-parent-eligibility.test.ts +++ b/src/renderer/src/components/sidebar/worktree-parent-eligibility.test.ts @@ -1,6 +1,8 @@ import { describe, expect, it } from 'vitest' import { join } from 'node:path' -import type { Repo, Worktree, WorktreeLineage } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { canAssignWorktreeParent } from './worktree-parent-eligibility' import { getEligibleWorktreeParents, isEligibleWorktreeParent } from './worktree-parent-candidates' diff --git a/src/renderer/src/components/sidebar/worktree-parent-eligibility.ts b/src/renderer/src/components/sidebar/worktree-parent-eligibility.ts index fe2c4261064..f620f19133d 100644 --- a/src/renderer/src/components/sidebar/worktree-parent-eligibility.ts +++ b/src/renderer/src/components/sidebar/worktree-parent-eligibility.ts @@ -1,4 +1,5 @@ -import type { Worktree, WorktreeLineage } from '../../../../shared/types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { Worktree } from '../../../../shared/worktree/types' import { getCyclicProjectedWorktreeLineageIds, getLineageRenderInfo diff --git a/src/renderer/src/components/sidebar/worktree-parent-picker-filtering.ts b/src/renderer/src/components/sidebar/worktree-parent-picker-filtering.ts index 3c07c35b1e4..b15154440e6 100644 --- a/src/renderer/src/components/sidebar/worktree-parent-picker-filtering.ts +++ b/src/renderer/src/components/sidebar/worktree-parent-picker-filtering.ts @@ -1,6 +1,6 @@ import { defaultFilter } from 'cmdk' import { branchDisplayName } from './WorktreeCardHelpers' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' export function getWorktreeParentPickerItemValue(candidate: Worktree): string { return `${candidate.displayName} ${branchDisplayName(candidate.branch)} ${candidate.path}` diff --git a/src/renderer/src/components/sidebar/worktree-sidebar-row-preference.test.ts b/src/renderer/src/components/sidebar/worktree-sidebar-row-preference.test.ts index cd4672dc9a7..c8b49f10b1f 100644 --- a/src/renderer/src/components/sidebar/worktree-sidebar-row-preference.test.ts +++ b/src/renderer/src/components/sidebar/worktree-sidebar-row-preference.test.ts @@ -1,5 +1,8 @@ import { describe, expect, it } from 'vitest' -import type { FolderWorkspace, ProjectGroup, Repo, Worktree } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { HostSectionRow } from './host-section-rows' import { getRenderedWorktreesInSidebarOrder } from './worktree-sidebar-row-preference' diff --git a/src/renderer/src/components/sidebar/worktree-sidebar-row-preference.ts b/src/renderer/src/components/sidebar/worktree-sidebar-row-preference.ts index c73107cbed8..0495375b691 100644 --- a/src/renderer/src/components/sidebar/worktree-sidebar-row-preference.ts +++ b/src/renderer/src/components/sidebar/worktree-sidebar-row-preference.ts @@ -1,5 +1,5 @@ import { folderWorkspaceToWorktree } from '../../../../shared/folder-workspace-worktree' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import type { HostSectionRow } from './host-section-rows' import { PINNED_GROUP_KEY, diff --git a/src/renderer/src/components/sidebar/worktree-subagent-child-rows.ts b/src/renderer/src/components/sidebar/worktree-subagent-child-rows.ts index 2a76bb0799c..5135eea6933 100644 --- a/src/renderer/src/components/sidebar/worktree-subagent-child-rows.ts +++ b/src/renderer/src/components/sidebar/worktree-subagent-child-rows.ts @@ -1,6 +1,6 @@ import type { DashboardAgentRow } from '@/components/dashboard/useDashboardData' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' /** Row-identity key for an in-process subagent child row. The NUL separator * cannot appear in real pane keys, so synthetic keys can never collide with diff --git a/src/renderer/src/components/sidebar/worktree-title-derived-agent-rows.test.ts b/src/renderer/src/components/sidebar/worktree-title-derived-agent-rows.test.ts index 44c3e7f2639..6fcd0a6719c 100644 --- a/src/renderer/src/components/sidebar/worktree-title-derived-agent-rows.test.ts +++ b/src/renderer/src/components/sidebar/worktree-title-derived-agent-rows.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import { applyAgentRowLineage } from '@/components/dashboard/agent-row-lineage' -import type { TerminalLayoutSnapshot, TerminalTab, TuiAgent } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { makePaneKey } from '../../../../shared/stable-pane-id' import { buildWorktreeAgentRows } from './worktree-agent-rows' diff --git a/src/renderer/src/components/sidebar/worktree-title-derived-agent-rows.ts b/src/renderer/src/components/sidebar/worktree-title-derived-agent-rows.ts index 9224fe2cba3..70289b4b3fb 100644 --- a/src/renderer/src/components/sidebar/worktree-title-derived-agent-rows.ts +++ b/src/renderer/src/components/sidebar/worktree-title-derived-agent-rows.ts @@ -14,7 +14,7 @@ import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode, TerminalTab -} from '../../../../shared/types' +} from '../../../../shared/terminal-tab-types' import { normalizeCompatibleAgentTitleForOwner, resolveCompatibleAgentTypeForOwner diff --git a/src/renderer/src/components/sidebar/worktree-visibility-update-error.ts b/src/renderer/src/components/sidebar/worktree-visibility-update-error.ts index 74605160e68..3e82a24d0ac 100644 --- a/src/renderer/src/components/sidebar/worktree-visibility-update-error.ts +++ b/src/renderer/src/components/sidebar/worktree-visibility-update-error.ts @@ -1,5 +1,5 @@ import { translate } from '@/i18n/i18n' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' export function worktreeVisibilityUpdateError( updateSucceeded: boolean, diff --git a/src/renderer/src/components/sparse/SparseCheckoutPresetSelect.tsx b/src/renderer/src/components/sparse/SparseCheckoutPresetSelect.tsx index 8ff4f7bfed8..a25f4337c9c 100644 --- a/src/renderer/src/components/sparse/SparseCheckoutPresetSelect.tsx +++ b/src/renderer/src/components/sparse/SparseCheckoutPresetSelect.tsx @@ -7,7 +7,7 @@ import { useAppStore } from '@/store' import { cn } from '@/lib/utils' import { parseSparsePresetDirectories } from '@/lib/sparse-preset-draft' import { useMountedRef } from '@/hooks/useMountedRef' -import type { SparsePreset } from '../../../../shared/types' +import type { SparsePreset } from '../../../../shared/worktree/create-types' import { translate } from '@/i18n/i18n' import { SparseCheckoutPresetDraftForm, diff --git a/src/renderer/src/components/status-bar/PetStatusSegment.tsx b/src/renderer/src/components/status-bar/PetStatusSegment.tsx index b927e29351e..48cd2f0292b 100644 --- a/src/renderer/src/components/status-bar/PetStatusSegment.tsx +++ b/src/renderer/src/components/status-bar/PetStatusSegment.tsx @@ -15,7 +15,7 @@ import { } from '@/components/ui/dropdown-menu' import { useAppStore } from '../../store' import { BUNDLED_PET, BUNDLED_PETS, findBundledPet, isBundledPetId } from '../pet/pet-models' -import { PET_SIZE_MAX, PET_SIZE_MIN } from '../../../../shared/types' +import { PET_SIZE_MAX, PET_SIZE_MIN } from '../../../../shared/pet-types' import { translate } from '@/i18n/i18n' // Why: cluster pet-related controls (show/hide, character picker, custom diff --git a/src/renderer/src/components/status-bar/ResourceUsageStatusSegment.rows.test.tsx b/src/renderer/src/components/status-bar/ResourceUsageStatusSegment.rows.test.tsx index 3bf507646da..783202de0cb 100644 --- a/src/renderer/src/components/status-bar/ResourceUsageStatusSegment.rows.test.tsx +++ b/src/renderer/src/components/status-bar/ResourceUsageStatusSegment.rows.test.tsx @@ -4,7 +4,7 @@ import React, { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it, vi } from 'vitest' import { ORPHAN_WORKTREE_ID } from '../../../../shared/constants' -import type { BrowserWorkspace } from '../../../../shared/types' +import type { BrowserWorkspace } from '../../../../shared/browser-workspace-types' import type { UnifiedSessionRow, UnifiedWorktreeRow } from './resource-usage-merge-types' vi.mock('@/store', () => { diff --git a/src/renderer/src/components/status-bar/ResourceUsageStatusSegment.tsx b/src/renderer/src/components/status-bar/ResourceUsageStatusSegment.tsx index c4690a1c79a..688d59c9a14 100644 --- a/src/renderer/src/components/status-bar/ResourceUsageStatusSegment.tsx +++ b/src/renderer/src/components/status-bar/ResourceUsageStatusSegment.tsx @@ -31,7 +31,9 @@ import { useAppStore } from '../../store' import { useWorktreeMap } from '../../store/selectors' import { runWorktreeDelete } from '../sidebar/delete-worktree-flow' import { useDaemonActions, DaemonActionDialog } from '../shared/useDaemonActions' -import type { AppMemory, BrowserWorkspace, UsageValues, Worktree } from '../../../../shared/types' +import type { BrowserWorkspace } from '../../../../shared/browser-workspace-types' +import type { AppMemory, UsageValues } from '../../../../shared/process-stats-types' +import type { Worktree } from '../../../../shared/worktree/types' import { ORPHAN_WORKTREE_ID } from '../../../../shared/constants' import { getRepoExecutionHostId, parseExecutionHostId } from '../../../../shared/execution-host' import { countEstimatedInactiveWorkspaces } from '../workspace-cleanup/inactive-workspace-estimate' diff --git a/src/renderer/src/components/status-bar/StatusBar.tsx b/src/renderer/src/components/status-bar/StatusBar.tsx index 1c4af8fdff8..0243c5f8dee 100644 --- a/src/renderer/src/components/status-bar/StatusBar.tsx +++ b/src/renderer/src/components/status-bar/StatusBar.tsx @@ -38,11 +38,11 @@ import { } from '@/components/ui/dropdown-menu' import { useAppStore } from '../../store' import { selectFloatingWorkspaceHasUnread } from '../../store/selectors' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { ClaudeRateLimitAccountsState, - CodexRateLimitAccountsState, - GlobalSettings -} from '../../../../shared/types' + CodexRateLimitAccountsState +} from '../../../../shared/managed-account-types' import type { ProviderRateLimits, RateLimitRuntimeTarget, diff --git a/src/renderer/src/components/status-bar/WorkspaceSpaceManagerPanel.tsx b/src/renderer/src/components/status-bar/WorkspaceSpaceManagerPanel.tsx index 453e3553792..8a4c23c6a38 100644 --- a/src/renderer/src/components/status-bar/WorkspaceSpaceManagerPanel.tsx +++ b/src/renderer/src/components/status-bar/WorkspaceSpaceManagerPanel.tsx @@ -29,7 +29,10 @@ import type { AgentStatusEntry, MigrationUnsupportedPtyEntry } from '../../../../shared/agent-status-types' -import type { GitStatusResult, Repo, TerminalTab, Worktree } from '../../../../shared/types' +import type { GitStatusResult } from '../../../../shared/git-status-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { WorkspaceSpaceItem, WorkspaceSpaceWorktree diff --git a/src/renderer/src/components/status-bar/mergeSnapshotAndSessions.test.ts b/src/renderer/src/components/status-bar/mergeSnapshotAndSessions.test.ts index a2fb18c1193..8536518728e 100644 --- a/src/renderer/src/components/status-bar/mergeSnapshotAndSessions.test.ts +++ b/src/renderer/src/components/status-bar/mergeSnapshotAndSessions.test.ts @@ -1,11 +1,8 @@ import { describe, expect, it } from 'vitest' -import type { - BrowserWorkspace, - MemorySnapshot, - TerminalTab, - Worktree, - WorktreeMemory -} from '../../../../shared/types' +import type { BrowserWorkspace } from '../../../../shared/browser-workspace-types' +import type { MemorySnapshot, WorktreeMemory } from '../../../../shared/process-stats-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import { mergeSnapshotAndSessions, UNATTRIBUTED_REPO_ID } from './mergeSnapshotAndSessions' import { requiresKillConfirmation } from './resource-session-kill-confirmation' import type { DaemonSession, MergeContext } from './resource-usage-merge-types' diff --git a/src/renderer/src/components/status-bar/mergeSnapshotAndSessions.ts b/src/renderer/src/components/status-bar/mergeSnapshotAndSessions.ts index 672e7c622c2..7f858242952 100644 --- a/src/renderer/src/components/status-bar/mergeSnapshotAndSessions.ts +++ b/src/renderer/src/components/status-bar/mergeSnapshotAndSessions.ts @@ -17,7 +17,11 @@ * See docs/resource-usage-merge-spec.md for the full design. */ -import type { MemorySnapshot, SessionMemory, WorktreeMemory } from '../../../../shared/types' +import type { + MemorySnapshot, + SessionMemory, + WorktreeMemory +} from '../../../../shared/process-stats-types' import { parsePtySessionId } from '../../../../shared/pty-session-id-format' import { parsePaneKey as parseStablePaneKey } from '../../../../shared/stable-pane-id' import { diff --git a/src/renderer/src/components/status-bar/resource-memory-metric-copy.ts b/src/renderer/src/components/status-bar/resource-memory-metric-copy.ts index a847f7d53a9..50448bc4ae6 100644 --- a/src/renderer/src/components/status-bar/resource-memory-metric-copy.ts +++ b/src/renderer/src/components/status-bar/resource-memory-metric-copy.ts @@ -1,4 +1,4 @@ -import type { ProcessMemoryMetric } from '../../../../shared/types' +import type { ProcessMemoryMetric } from '../../../../shared/process-stats-types' import { translate } from '@/i18n/i18n' export type ResourceMemoryMetricCopy = { diff --git a/src/renderer/src/components/status-bar/resource-session-bindings.test.ts b/src/renderer/src/components/status-bar/resource-session-bindings.test.ts index 3845234d6ed..9cfefa99f3b 100644 --- a/src/renderer/src/components/status-bar/resource-session-bindings.test.ts +++ b/src/renderer/src/components/status-bar/resource-session-bindings.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' import { buildResourceSessionBindingIndex, countUnboundDaemonSessions, diff --git a/src/renderer/src/components/status-bar/resource-session-bindings.ts b/src/renderer/src/components/status-bar/resource-session-bindings.ts index 96240f82268..a0a46140072 100644 --- a/src/renderer/src/components/status-bar/resource-session-bindings.ts +++ b/src/renderer/src/components/status-bar/resource-session-bindings.ts @@ -1,4 +1,4 @@ -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' import { mayDestroyWithoutOwnerEvidence } from '../../../../shared/pty-listed-session' import type { DaemonSession } from './resource-usage-merge-types' diff --git a/src/renderer/src/components/status-bar/resource-usage-merge-types.ts b/src/renderer/src/components/status-bar/resource-usage-merge-types.ts index c365329c110..5943b744dfd 100644 --- a/src/renderer/src/components/status-bar/resource-usage-merge-types.ts +++ b/src/renderer/src/components/status-bar/resource-usage-merge-types.ts @@ -1,9 +1,6 @@ -import type { - BrowserWorkspace, - TerminalLayoutSnapshot, - TerminalTab, - Worktree -} from '../../../../shared/types' +import type { BrowserWorkspace } from '../../../../shared/browser-workspace-types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { AgentOwnershipEvidence, PtyListedSession diff --git a/src/renderer/src/components/status-bar/status-bar-agent-gating.ts b/src/renderer/src/components/status-bar/status-bar-agent-gating.ts index 4ded63147db..145abef3a90 100644 --- a/src/renderer/src/components/status-bar/status-bar-agent-gating.ts +++ b/src/renderer/src/components/status-bar/status-bar-agent-gating.ts @@ -1,4 +1,5 @@ -import type { StatusBarItem, TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' +import type { StatusBarItem } from '../../../../shared/ui-chrome-types' // Why: CLI-backed usage bars are surface noise when the underlying // CLI isn't installed (e.g. a fresh Ubuntu install showing "Gemini Usage" diff --git a/src/renderer/src/components/status-bar/status-bar-provider-visibility.ts b/src/renderer/src/components/status-bar/status-bar-provider-visibility.ts index e96fa09550a..f1afd97f5f4 100644 --- a/src/renderer/src/components/status-bar/status-bar-provider-visibility.ts +++ b/src/renderer/src/components/status-bar/status-bar-provider-visibility.ts @@ -1,5 +1,5 @@ import type { ProviderRateLimits } from '../../../../shared/rate-limit-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' export type UsageProviderSettings = Pick< GlobalSettings, diff --git a/src/renderer/src/components/status-bar/status-bar-runtime-groups.test.ts b/src/renderer/src/components/status-bar/status-bar-runtime-groups.test.ts index 262cf1595f1..5e0c4a162de 100644 --- a/src/renderer/src/components/status-bar/status-bar-runtime-groups.test.ts +++ b/src/renderer/src/components/status-bar/status-bar-runtime-groups.test.ts @@ -1,9 +1,9 @@ import { describe, expect, it } from 'vitest' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { ClaudeRateLimitAccountsState, - CodexRateLimitAccountsState, - GlobalSettings -} from '../../../../shared/types' + CodexRateLimitAccountsState +} from '../../../../shared/managed-account-types' import { buildClaudeStatusSwitchGroups, buildCodexStatusSwitchGroups, diff --git a/src/renderer/src/components/status-bar/use-available-status-bar-toggles.ts b/src/renderer/src/components/status-bar/use-available-status-bar-toggles.ts index f693aa84d60..cda54a7b8bc 100644 --- a/src/renderer/src/components/status-bar/use-available-status-bar-toggles.ts +++ b/src/renderer/src/components/status-bar/use-available-status-bar-toggles.ts @@ -1,5 +1,5 @@ import { useAppStore } from '../../store' -import type { StatusBarItem } from '../../../../shared/types' +import type { StatusBarItem } from '../../../../shared/ui-chrome-types' import { isStatusBarItemAvailable } from './status-bar-agent-gating' /** Subscribes to detected-agent state and returns the toggles filtered to diff --git a/src/renderer/src/components/status-bar/workspace-space-presentation.test.ts b/src/renderer/src/components/status-bar/workspace-space-presentation.test.ts index 702f3c1d70a..1d600faed2a 100644 --- a/src/renderer/src/components/status-bar/workspace-space-presentation.test.ts +++ b/src/renderer/src/components/status-bar/workspace-space-presentation.test.ts @@ -18,7 +18,8 @@ import { } from './workspace-space-presentation' import { getWorkspaceDecisionDetails } from './WorkspaceSpaceManagerPanel' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' function row(overrides: Partial): WorkspaceSpaceWorktree { return { diff --git a/src/renderer/src/components/status-bar/workspace-space-presentation.ts b/src/renderer/src/components/status-bar/workspace-space-presentation.ts index ad09532a652..5aab2dcefc5 100644 --- a/src/renderer/src/components/status-bar/workspace-space-presentation.ts +++ b/src/renderer/src/components/status-bar/workspace-space-presentation.ts @@ -6,7 +6,7 @@ import { type MigrationUnsupportedPtyEntry } from '../../../../shared/agent-status-types' import { parsePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { isClipboardTextByteLengthOverLimit } from '../../../../shared/clipboard-text' import type { WorkspaceSpaceItem, diff --git a/src/renderer/src/components/tab-bar/BrowserTab.test.tsx b/src/renderer/src/components/tab-bar/BrowserTab.test.tsx index c1e994301b9..951f2f9f132 100644 --- a/src/renderer/src/components/tab-bar/BrowserTab.test.tsx +++ b/src/renderer/src/components/tab-bar/BrowserTab.test.tsx @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { BrowserTab as BrowserTabState } from '../../../../shared/types' +import type { BrowserTab as BrowserTabState } from '../../../../shared/browser-workspace-types' const reactHookRuntime = vi.hoisted(() => ({ states: [] as unknown[], diff --git a/src/renderer/src/components/tab-bar/BrowserTab.tsx b/src/renderer/src/components/tab-bar/BrowserTab.tsx index e0ecca579d2..2ea3d2d42e5 100644 --- a/src/renderer/src/components/tab-bar/BrowserTab.tsx +++ b/src/renderer/src/components/tab-bar/BrowserTab.tsx @@ -21,7 +21,7 @@ import { import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { ORCA_BROWSER_BLANK_URL } from '../../../../shared/constants' import { redactKagiSessionToken } from '../../../../shared/browser-url' -import type { BrowserTab as BrowserTabState } from '../../../../shared/types' +import type { BrowserTab as BrowserTabState } from '../../../../shared/browser-workspace-types' import { CLOSE_ALL_CONTEXT_MENUS_EVENT } from './SortableTab' import { getLiveBrowserUrl } from '../browser-pane/browser-runtime' import type { TabDragItemData } from '../tab-group/useTabDragSplit' diff --git a/src/renderer/src/components/tab-bar/EditorFileTab.tsx b/src/renderer/src/components/tab-bar/EditorFileTab.tsx index 4af4e4fcfc4..1dcc0e96c16 100644 --- a/src/renderer/src/components/tab-bar/EditorFileTab.tsx +++ b/src/renderer/src/components/tab-bar/EditorFileTab.tsx @@ -12,7 +12,7 @@ import { getFileTypeIcon } from '@/lib/file-type-icons' import { useRepoById, useWorktreeById } from '@/store/selectors' import { useAppStore } from '@/store' import { STATUS_COLORS, STATUS_LABELS } from '../right-sidebar/status-display' -import type { GitFileStatus } from '../../../../shared/types' +import type { GitFileStatus } from '../../../../shared/git-status-types' import type { OpenFile } from '../../store/slices/editor' import { getUntitledFileRoot } from '@/components/editor/untitled-file-rename-path' import { preventMiddleButtonDefault } from './middle-button-default-guard' diff --git a/src/renderer/src/components/tab-bar/QuickLaunchButton.tsx b/src/renderer/src/components/tab-bar/QuickLaunchButton.tsx index d2e086f7496..6af2508048c 100644 --- a/src/renderer/src/components/tab-bar/QuickLaunchButton.tsx +++ b/src/renderer/src/components/tab-bar/QuickLaunchButton.tsx @@ -8,7 +8,7 @@ import { useAgentDetectionTargetForWorktree } from '@/hooks/useAgentDetectionTar import { useDetectedAgents } from '@/hooks/useDetectedAgents' import { useOptionalShortcutLabel } from '@/hooks/useShortcutLabel' import { launchAgentInNewTab } from '@/lib/launch-agent-in-new-tab' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { LaunchSource } from '../../../../shared/telemetry-events' import { DEFAULT_DISABLED_TUI_AGENTS, diff --git a/src/renderer/src/components/tab-bar/RecentTabSwitcher.test.tsx b/src/renderer/src/components/tab-bar/RecentTabSwitcher.test.tsx index e0a0ab9f7f0..31f01c65996 100644 --- a/src/renderer/src/components/tab-bar/RecentTabSwitcher.test.tsx +++ b/src/renderer/src/components/tab-bar/RecentTabSwitcher.test.tsx @@ -3,7 +3,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Tab } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' import type { AppState } from '../../store/types' const { activateCyclableTabMock, getStateMock } = vi.hoisted(() => ({ diff --git a/src/renderer/src/components/tab-bar/SortableTab.tsx b/src/renderer/src/components/tab-bar/SortableTab.tsx index cec2a0f0082..b1417b57c13 100644 --- a/src/renderer/src/components/tab-bar/SortableTab.tsx +++ b/src/renderer/src/components/tab-bar/SortableTab.tsx @@ -6,7 +6,7 @@ import { useTabAgent } from '@/lib/use-tab-agent' import { isImeCompositionKeyDown } from '@/lib/ime-composition-keyboard-event' import { Input } from '@/components/ui/input' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { TabDragItemData } from '../tab-group/useTabDragSplit' import { useAppStore } from '../../store' import { diff --git a/src/renderer/src/components/tab-bar/SortableTabContextMenu.tsx b/src/renderer/src/components/tab-bar/SortableTabContextMenu.tsx index 86d48961284..c10118dc45d 100644 --- a/src/renderer/src/components/tab-bar/SortableTabContextMenu.tsx +++ b/src/renderer/src/components/tab-bar/SortableTabContextMenu.tsx @@ -17,7 +17,7 @@ import { DropdownMenuShortcut, DropdownMenuTrigger } from '@/components/ui/dropdown-menu' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { useAppStore } from '../../store' import { formatShortcutLabel, useOptionalShortcutLabel } from '@/hooks/useShortcutLabel' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/tab-bar/TabBarCreateEntry.keyboard.test.tsx b/src/renderer/src/components/tab-bar/TabBarCreateEntry.keyboard.test.tsx index bb51c99d14c..0480bbcac87 100644 --- a/src/renderer/src/components/tab-bar/TabBarCreateEntry.keyboard.test.tsx +++ b/src/renderer/src/components/tab-bar/TabBarCreateEntry.keyboard.test.tsx @@ -3,7 +3,9 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Tab, TabGroup, TerminalTab, Worktree } from '../../../../shared/types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { TabEntryOption } from './tab-create-entry-action' import type { TabAgentLaunchOption } from './tab-agent-launch-options' // Unmocked on purpose: the empty-query message must stay in step with the diff --git a/src/renderer/src/components/tab-bar/TabBarQuickCommandsButton.tsx b/src/renderer/src/components/tab-bar/TabBarQuickCommandsButton.tsx index 776e7939b3e..ae831a418f9 100644 --- a/src/renderer/src/components/tab-bar/TabBarQuickCommandsButton.tsx +++ b/src/renderer/src/components/tab-bar/TabBarQuickCommandsButton.tsx @@ -13,7 +13,7 @@ import { import { getRepoIdFromWorktreeId } from '../../../../shared/worktree/id' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' import { runQuickCommandInNewTab } from '@/lib/run-quick-command-in-new-tab' -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import { useConfirmationDialog } from '@/components/confirmation-dialog-context' import { translate } from '@/i18n/i18n' import { TabBarQuickCommandsMenu } from './TabBarQuickCommandsMenu' diff --git a/src/renderer/src/components/tab-bar/TerminalTabLeadingIcon.tsx b/src/renderer/src/components/tab-bar/TerminalTabLeadingIcon.tsx index 44c75c39586..431157b0731 100644 --- a/src/renderer/src/components/tab-bar/TerminalTabLeadingIcon.tsx +++ b/src/renderer/src/components/tab-bar/TerminalTabLeadingIcon.tsx @@ -1,7 +1,8 @@ import { AgentStateDot } from '@/components/AgentStateDot' import { AgentIcon } from '@/lib/agent-catalog' import { cn } from '@/lib/utils' -import type { TerminalTab, TuiAgent } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { FilledBellIcon } from '../sidebar/WorktreeCardHelpers' import { ShellIcon } from './shell-icons' import { diff --git a/src/renderer/src/components/tab-bar/editor-tab-local-open-guard.ts b/src/renderer/src/components/tab-bar/editor-tab-local-open-guard.ts index 37302887f6d..574d6507232 100644 --- a/src/renderer/src/components/tab-bar/editor-tab-local-open-guard.ts +++ b/src/renderer/src/components/tab-bar/editor-tab-local-open-guard.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { isLocalPathOpenBlocked } from '@/lib/local-path-open-guard' import { settingsForRuntimeOwner } from '@/runtime/runtime-rpc-client' diff --git a/src/renderer/src/components/tab-bar/group-tab-order.test.ts b/src/renderer/src/components/tab-bar/group-tab-order.test.ts index 5835288bbc8..797fea97848 100644 --- a/src/renderer/src/components/tab-bar/group-tab-order.test.ts +++ b/src/renderer/src/components/tab-bar/group-tab-order.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Tab, TabGroup } from '../../../../shared/types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' import type { AppState } from '../../store/types' import { getActiveTabNavOrder, getGroupVisibleTabOrder } from './group-tab-order' diff --git a/src/renderer/src/components/tab-bar/group-tab-order.ts b/src/renderer/src/components/tab-bar/group-tab-order.ts index 8a16e51786b..d9396e3a53c 100644 --- a/src/renderer/src/components/tab-bar/group-tab-order.ts +++ b/src/renderer/src/components/tab-bar/group-tab-order.ts @@ -1,4 +1,4 @@ -import type { Tab, TabGroup } from '../../../../shared/types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' import type { AppState } from '../../store/types' import { reconcileTabOrder } from './reconcile-order' diff --git a/src/renderer/src/components/tab-bar/open-tab-search-entries.ts b/src/renderer/src/components/tab-bar/open-tab-search-entries.ts index 1b16a7d845f..4a808bcf6ce 100644 --- a/src/renderer/src/components/tab-bar/open-tab-search-entries.ts +++ b/src/renderer/src/components/tab-bar/open-tab-search-entries.ts @@ -1,7 +1,8 @@ // Builds one worktree's tabs, browser pages and simulator tabs into the shapes // the three Cmd+J engines search. -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { buildSearchableBrowserPages } from '@/lib/browser-palette-page-entries' import type { SearchableBrowserPage } from '@/lib/browser-palette-search' import { diff --git a/src/renderer/src/components/tab-bar/open-tab-search.test.ts b/src/renderer/src/components/tab-bar/open-tab-search.test.ts index 1476bdaa3bb..75103fe80c3 100644 --- a/src/renderer/src/components/tab-bar/open-tab-search.test.ts +++ b/src/renderer/src/components/tab-bar/open-tab-search.test.ts @@ -1,11 +1,7 @@ import { describe, expect, it } from 'vitest' -import type { - BrowserPage, - BrowserWorkspace, - Tab, - TabContentType, - Worktree -} from '../../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../../shared/browser-workspace-types' +import type { Tab, TabContentType } from '../../../../shared/tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { SearchableBrowserPage } from '@/lib/browser-palette-search' import type { SearchableSimulatorTab } from '@/lib/simulator-palette-search' import type { SearchableWorkspaceTab } from '@/lib/workspace-tab-palette-search' diff --git a/src/renderer/src/components/tab-bar/recent-tab-switching.test.ts b/src/renderer/src/components/tab-bar/recent-tab-switching.test.ts index 7f52e4ae1d1..49e0a4da7f6 100644 --- a/src/renderer/src/components/tab-bar/recent-tab-switching.test.ts +++ b/src/renderer/src/components/tab-bar/recent-tab-switching.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import type { AppState } from '../../store/types' -import type { Tab } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' import { buildRecentTabSwitcherModel, getNextRecentTabSwitcherIndex, diff --git a/src/renderer/src/components/tab-bar/recent-tab-switching.ts b/src/renderer/src/components/tab-bar/recent-tab-switching.ts index 89070ba14ec..a2b5fba9fab 100644 --- a/src/renderer/src/components/tab-bar/recent-tab-switching.ts +++ b/src/renderer/src/components/tab-bar/recent-tab-switching.ts @@ -1,4 +1,4 @@ -import type { CtrlTabOrderMode, Tab, TabContentType, TabGroup } from '../../../../shared/types' +import type { CtrlTabOrderMode, Tab, TabContentType, TabGroup } from '../../../../shared/tab-types' import { resolveUnifiedTabLabel } from '../../../../shared/tab-title-resolution' import type { AppState } from '../../store/types' import { sanitizeRecentTabIds } from '../../store/slices/tab-group-state' diff --git a/src/renderer/src/components/tab-bar/tab-agent-launch-options.ts b/src/renderer/src/components/tab-bar/tab-agent-launch-options.ts index b15f6f7c004..bc9fc575c20 100644 --- a/src/renderer/src/components/tab-bar/tab-agent-launch-options.ts +++ b/src/renderer/src/components/tab-bar/tab-agent-launch-options.ts @@ -1,6 +1,6 @@ import { getAgentCatalog } from '@/lib/agent-catalog' import { normalizeMatchQuery, tokenizeMatchValue } from './query-token-match' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' export type TabAgentLaunchOption = { agent: TuiAgent diff --git a/src/renderer/src/components/tab-bar/tab-agent-types-by-tab-id.test.ts b/src/renderer/src/components/tab-bar/tab-agent-types-by-tab-id.test.ts index e460318e609..38d6f2e267f 100644 --- a/src/renderer/src/components/tab-bar/tab-agent-types-by-tab-id.test.ts +++ b/src/renderer/src/components/tab-bar/tab-agent-types-by-tab-id.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest' import { shallow } from 'zustand/shallow' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' import { findTabAgentEntry } from '../native-chat/native-chat-tab-agent-entry' import { createTabBarAgentProjectionSelector, diff --git a/src/renderer/src/components/tab-bar/tab-agent-types-by-tab-id.ts b/src/renderer/src/components/tab-bar/tab-agent-types-by-tab-id.ts index b320d5e0ddc..420949992d8 100644 --- a/src/renderer/src/components/tab-bar/tab-agent-types-by-tab-id.ts +++ b/src/renderer/src/components/tab-bar/tab-agent-types-by-tab-id.ts @@ -1,5 +1,5 @@ import type { AgentStatusEntry, AgentType } from '../../../../shared/agent-status-types' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' import { isNativeChatTabWideFallbackSafe, resolveNativeChatActiveLayoutLeafId diff --git a/src/renderer/src/components/tab-bar/tab-bar-item-model.ts b/src/renderer/src/components/tab-bar/tab-bar-item-model.ts index 89e2891908d..0eee66d7b68 100644 --- a/src/renderer/src/components/tab-bar/tab-bar-item-model.ts +++ b/src/renderer/src/components/tab-bar/tab-bar-item-model.ts @@ -1,9 +1,6 @@ -import type { - BrowserTab as BrowserTabState, - Tab, - TerminalTab, - WorkspaceVisibleTabType -} from '../../../../shared/types' +import type { BrowserTab as BrowserTabState } from '../../../../shared/browser-workspace-types' +import type { Tab, WorkspaceVisibleTabType } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { resolveTerminalTabTitle } from '../../../../shared/tab-title-resolution' import type { OpenFile } from '../../store/slices/editor' import { getEditorDisplayLabel } from '@/components/editor/editor-labels' diff --git a/src/renderer/src/components/tab-bar/tab-bar-props.ts b/src/renderer/src/components/tab-bar/tab-bar-props.ts index 6f8d93ec0a7..59d2ef12fff 100644 --- a/src/renderer/src/components/tab-bar/tab-bar-props.ts +++ b/src/renderer/src/components/tab-bar/tab-bar-props.ts @@ -1,8 +1,6 @@ -import type { - BrowserTab as BrowserTabState, - TerminalTab, - WorkspaceVisibleTabType -} from '../../../../shared/types' +import type { BrowserTab as BrowserTabState } from '../../../../shared/browser-workspace-types' +import type { WorkspaceVisibleTabType } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { OpenFile } from '../../store/slices/editor' import type { HoveredTabInsertion } from '../tab-group/useTabDragSplit' import type { TabCreateEntryArgs } from './tab-create-entry-action' diff --git a/src/renderer/src/components/tab-bar/tab-create-entry-local-path.test.ts b/src/renderer/src/components/tab-bar/tab-create-entry-local-path.test.ts index 8a11f2262ee..5f4a887574a 100644 --- a/src/renderer/src/components/tab-bar/tab-create-entry-local-path.test.ts +++ b/src/renderer/src/components/tab-bar/tab-create-entry-local-path.test.ts @@ -1,5 +1,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import { useAppStore } from '@/store' import { diff --git a/src/renderer/src/components/tab-bar/tab-create-entry-props.ts b/src/renderer/src/components/tab-bar/tab-create-entry-props.ts index 56a4bca3abc..ba44b1d932e 100644 --- a/src/renderer/src/components/tab-bar/tab-create-entry-props.ts +++ b/src/renderer/src/components/tab-bar/tab-create-entry-props.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { TabCreateEntryArgs } from './tab-create-entry-action' import type { TabAgentLaunchOption } from './tab-agent-launch-options' import type { TabCreateMenuOption } from './tab-create-menu-options' diff --git a/src/renderer/src/components/tab-bar/tab-move-to-pane-column.test.ts b/src/renderer/src/components/tab-bar/tab-move-to-pane-column.test.ts index 5c9abb972a7..01dae6c0f98 100644 --- a/src/renderer/src/components/tab-bar/tab-move-to-pane-column.test.ts +++ b/src/renderer/src/components/tab-bar/tab-move-to-pane-column.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { useAppStore } from '../../store' -import type { Tab } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' import { canMoveTabToNewPaneColumn, moveTabToNewPaneColumn } from './tab-move-to-pane-column' const WT = 'wt-1' diff --git a/src/renderer/src/components/tab-bar/tab-title-tooltip.test.tsx b/src/renderer/src/components/tab-bar/tab-title-tooltip.test.tsx index 8105e0f3263..05579cb7b4d 100644 --- a/src/renderer/src/components/tab-bar/tab-title-tooltip.test.tsx +++ b/src/renderer/src/components/tab-bar/tab-title-tooltip.test.tsx @@ -1,12 +1,10 @@ import { cloneElement, isValidElement, type ReactElement, type ReactNode } from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { - BrowserTab as BrowserTabState, - GitFileStatus, - TerminalTab, - TuiAgent -} from '../../../../shared/types' +import type { BrowserTab as BrowserTabState } from '../../../../shared/browser-workspace-types' +import type { GitFileStatus } from '../../../../shared/git-status-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { OpenFile } from '../../store/slices/editor' import type { TabDragItemData } from '../tab-group/useTabDragSplit' import BrowserTab from './BrowserTab' diff --git a/src/renderer/src/components/tab-bar/terminal-tab-activity-status.test.ts b/src/renderer/src/components/tab-bar/terminal-tab-activity-status.test.ts index 133597431e0..e475ae49a4d 100644 --- a/src/renderer/src/components/tab-bar/terminal-tab-activity-status.test.ts +++ b/src/renderer/src/components/tab-bar/terminal-tab-activity-status.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { hasUnreadAgentCompletionForTerminalTab, resetTerminalTabActivityFlagsCacheForTest, diff --git a/src/renderer/src/components/tab-bar/terminal-tab-activity-status.ts b/src/renderer/src/components/tab-bar/terminal-tab-activity-status.ts index abdcc584881..afba5dc4c90 100644 --- a/src/renderer/src/components/tab-bar/terminal-tab-activity-status.ts +++ b/src/renderer/src/components/tab-bar/terminal-tab-activity-status.ts @@ -5,7 +5,7 @@ import { type AgentStatusEntry } from '../../../../shared/agent-status-types' import { parseLegacyNumericPaneKey, parsePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' // Why: a terminal tab is a container of panes, exactly like a worktree card is // a container of tabs. Reuse the WorktreeCard status vocabulary and resolver so diff --git a/src/renderer/src/components/tab-bar/terminal-tab-spinner-launch-agent.test.ts b/src/renderer/src/components/tab-bar/terminal-tab-spinner-launch-agent.test.ts index 4259ff8ade3..caa14841166 100644 --- a/src/renderer/src/components/tab-bar/terminal-tab-spinner-launch-agent.test.ts +++ b/src/renderer/src/components/tab-bar/terminal-tab-spinner-launch-agent.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { resetTerminalTabActivityFlagsCacheForTest, resolveTerminalTabActivityStatus diff --git a/src/renderer/src/components/tab-bar/use-open-tab-search.test.ts b/src/renderer/src/components/tab-bar/use-open-tab-search.test.ts index 43a92cbf1f4..65c5cdb0908 100644 --- a/src/renderer/src/components/tab-bar/use-open-tab-search.test.ts +++ b/src/renderer/src/components/tab-bar/use-open-tab-search.test.ts @@ -2,16 +2,11 @@ import { act, renderHook } from '@testing-library/react' import { beforeEach, describe, expect, it } from 'vitest' -import type { - BrowserPage, - BrowserWorkspace, - Repo, - Tab, - TabContentType, - TabGroup, - TerminalTab, - Worktree -} from '../../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../../shared/browser-workspace-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Tab, TabContentType, TabGroup } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import { useAppStore } from '@/store' import type { AppState } from '@/store/types' import { useOpenTabSearch } from './use-open-tab-search' diff --git a/src/renderer/src/components/tab-bar/use-tab-bar-create-menu-controller.ts b/src/renderer/src/components/tab-bar/use-tab-bar-create-menu-controller.ts index 7eb28f2bcc8..d12b275b556 100644 --- a/src/renderer/src/components/tab-bar/use-tab-bar-create-menu-controller.ts +++ b/src/renderer/src/components/tab-bar/use-tab-bar-create-menu-controller.ts @@ -1,6 +1,6 @@ import { useEffect, useMemo, useRef, useState } from 'react' import { toast } from 'sonner' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { translate } from '@/i18n/i18n' import { focusTerminalTabSurface } from '@/lib/focus-terminal-tab-surface' import { launchAgentInNewTab } from '@/lib/launch-agent-in-new-tab' diff --git a/src/renderer/src/components/tab-bar/use-tab-bar-item-projection.ts b/src/renderer/src/components/tab-bar/use-tab-bar-item-projection.ts index 0137c1f7cd7..3da80876b98 100644 --- a/src/renderer/src/components/tab-bar/use-tab-bar-item-projection.ts +++ b/src/renderer/src/components/tab-bar/use-tab-bar-item-projection.ts @@ -1,5 +1,6 @@ import { useMemo } from 'react' -import type { GitFileStatus, Tab } from '../../../../shared/types' +import type { GitFileStatus } from '../../../../shared/git-status-types' +import type { Tab } from '../../../../shared/tab-types' import type { TabBarProps } from './tab-bar-props' import { buildOrderedTabItems, diff --git a/src/renderer/src/components/tab-bar/use-tab-bar-quick-command-search-input.test.ts b/src/renderer/src/components/tab-bar/use-tab-bar-quick-command-search-input.test.ts index df75eeae463..25058e3f44a 100644 --- a/src/renderer/src/components/tab-bar/use-tab-bar-quick-command-search-input.test.ts +++ b/src/renderer/src/components/tab-bar/use-tab-bar-quick-command-search-input.test.ts @@ -4,7 +4,7 @@ import { renderHook } from '@testing-library/react' import { describe, expect, it, vi } from 'vitest' import { useTabBarQuickCommandSearchInput } from './use-tab-bar-quick-command-search-input' -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' const command = { id: 'cmd-1', label: 'Run tests' } as unknown as TerminalQuickCommand diff --git a/src/renderer/src/components/tab-bar/use-tab-bar-runtime-model.ts b/src/renderer/src/components/tab-bar/use-tab-bar-runtime-model.ts index 4515de2a071..298c77f8777 100644 --- a/src/renderer/src/components/tab-bar/use-tab-bar-runtime-model.ts +++ b/src/renderer/src/components/tab-bar/use-tab-bar-runtime-model.ts @@ -1,6 +1,9 @@ import { useMemo } from 'react' import { useShallow } from 'zustand/react/shallow' -import type { GitFileStatus, GlobalSettings, Tab, TuiAgent } from '../../../../shared/types' +import type { GitFileStatus } from '../../../../shared/git-status-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Tab } from '../../../../shared/tab-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { ProjectExecutionRuntimeResolution } from '../../../../shared/project-execution-runtime' import { useAppStore } from '../../store' import { buildStatusMap } from '../right-sidebar/status-display' diff --git a/src/renderer/src/components/tab-group/TabGroupPanel.context-menu.test.ts b/src/renderer/src/components/tab-group/TabGroupPanel.context-menu.test.ts index 58aa57400c4..1c90210820e 100644 --- a/src/renderer/src/components/tab-group/TabGroupPanel.context-menu.test.ts +++ b/src/renderer/src/components/tab-group/TabGroupPanel.context-menu.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Tab, TabContentType } from '../../../../shared/types' +import type { Tab, TabContentType } from '../../../../shared/tab-types' import { resolveGroupTabFromVisibleId } from './tab-group-visible-id' function tab(id: string, entityId: string, contentType: TabContentType, sortOrder: number): Tab { diff --git a/src/renderer/src/components/tab-group/TabGroupSplitLayout.tsx b/src/renderer/src/components/tab-group/TabGroupSplitLayout.tsx index 9a97ae673e4..77f04fb3023 100644 --- a/src/renderer/src/components/tab-group/TabGroupSplitLayout.tsx +++ b/src/renderer/src/components/tab-group/TabGroupSplitLayout.tsx @@ -1,6 +1,6 @@ import { useCallback, useEffect, useRef, useState } from 'react' import { DndContext, DragOverlay } from '@dnd-kit/core' -import type { TabGroupLayoutNode } from '../../../../shared/types' +import type { TabGroupLayoutNode } from '../../../../shared/tab-types' import { useAppStore } from '../../store' import TabGroupPanel from './TabGroupPanel' import TabDragPreview from '../tab-bar/TabDragPreview' diff --git a/src/renderer/src/components/tab-group/tab-drag-data.ts b/src/renderer/src/components/tab-group/tab-drag-data.ts index ad55f0edd10..572385a0d14 100644 --- a/src/renderer/src/components/tab-group/tab-drag-data.ts +++ b/src/renderer/src/components/tab-group/tab-drag-data.ts @@ -1,4 +1,5 @@ -import type { TabGroup, TuiAgent } from '../../../../shared/types' +import type { TabGroup } from '../../../../shared/tab-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { TabSplitDirection } from '../../store/slices/tabs' export type TabDropZone = 'center' | TabSplitDirection diff --git a/src/renderer/src/components/tab-group/tab-drag-preview-activation.test.ts b/src/renderer/src/components/tab-group/tab-drag-preview-activation.test.ts index d6a373fc865..019b3e297ee 100644 --- a/src/renderer/src/components/tab-group/tab-drag-preview-activation.test.ts +++ b/src/renderer/src/components/tab-group/tab-drag-preview-activation.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it } from 'vitest' -import type { Tab } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' import { useAppStore } from '../../store' import { applyDragPreviewTab, diff --git a/src/renderer/src/components/tab-group/tab-group-panel-split-target.test.ts b/src/renderer/src/components/tab-group/tab-group-panel-split-target.test.ts index ceca4d16962..7f72c716fe3 100644 --- a/src/renderer/src/components/tab-group/tab-group-panel-split-target.test.ts +++ b/src/renderer/src/components/tab-group/tab-group-panel-split-target.test.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { TabGroup, TabGroupLayoutNode } from '../../../../shared/types' +import type { TabGroup, TabGroupLayoutNode } from '../../../../shared/tab-types' import type { TabDragItemData } from './useTabDragSplit' import { captureTabGroupPanelGeometrySnapshot, diff --git a/src/renderer/src/components/tab-group/tab-group-panel-split-target.ts b/src/renderer/src/components/tab-group/tab-group-panel-split-target.ts index 80fefad4080..d7bab07f12f 100644 --- a/src/renderer/src/components/tab-group/tab-group-panel-split-target.ts +++ b/src/renderer/src/components/tab-group/tab-group-panel-split-target.ts @@ -1,5 +1,5 @@ import type { DragEndEvent, DragMoveEvent, DragOverEvent } from '@dnd-kit/core' -import type { TabGroup, TabGroupLayoutNode } from '../../../../shared/types' +import type { TabGroup, TabGroupLayoutNode } from '../../../../shared/tab-types' import { isPaneColumnSplitDropNoOp } from '../../store/slices/pane-column-split-drop-no-op' import { resolvePaneColumnEdgeZone, diff --git a/src/renderer/src/components/tab-group/tab-group-visible-id.ts b/src/renderer/src/components/tab-group/tab-group-visible-id.ts index 1e94a3df964..92cca52df7d 100644 --- a/src/renderer/src/components/tab-group/tab-group-visible-id.ts +++ b/src/renderer/src/components/tab-group/tab-group-visible-id.ts @@ -1,4 +1,4 @@ -import type { Tab } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' export function resolveGroupTabFromVisibleId( groupTabs: readonly Tab[], diff --git a/src/renderer/src/components/tab-group/useTabDragSplit.test.ts b/src/renderer/src/components/tab-group/useTabDragSplit.test.ts index fa825031762..2b372c2c2c4 100644 --- a/src/renderer/src/components/tab-group/useTabDragSplit.test.ts +++ b/src/renderer/src/components/tab-group/useTabDragSplit.test.ts @@ -4,7 +4,7 @@ import { act, createElement } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Tab, TabGroup, TabGroupLayoutNode } from '../../../../shared/types' +import type { Tab, TabGroup, TabGroupLayoutNode } from '../../../../shared/tab-types' import { useAppStore } from '../../store' import type { TabDragItemData } from './useTabDragSplit' import { shouldActivateTabDragFromDistanceSample } from './tab-drag-pointer-sensor' diff --git a/src/renderer/src/components/tab-group/useTabDragSplit.ts b/src/renderer/src/components/tab-group/useTabDragSplit.ts index ce79cf03281..a3c5c49ce9c 100644 --- a/src/renderer/src/components/tab-group/useTabDragSplit.ts +++ b/src/renderer/src/components/tab-group/useTabDragSplit.ts @@ -14,7 +14,7 @@ import { useSensor, useSensors } from '@dnd-kit/core' -import type { TabGroup } from '../../../../shared/types' +import type { TabGroup } from '../../../../shared/tab-types' import { useAppStore } from '../../store' import { mirrorWebRuntimeTabMove } from '../tab-bar/web-runtime-tab-move-mirror' import { diff --git a/src/renderer/src/components/tab-group/useTabGroupWorkspaceModel.ts b/src/renderer/src/components/tab-group/useTabGroupWorkspaceModel.ts index d2dcdcb965b..6bb2f7a5992 100644 --- a/src/renderer/src/components/tab-group/useTabGroupWorkspaceModel.ts +++ b/src/renderer/src/components/tab-group/useTabGroupWorkspaceModel.ts @@ -3,12 +3,9 @@ import { useCallback, useMemo } from 'react' import { toast } from 'sonner' import { useShallow } from 'zustand/react/shallow' import type { OpenFile } from '@/store/slices/editor' -import type { - BrowserTab as BrowserTabState, - Tab, - TabGroup, - TerminalTab -} from '../../../../shared/types' +import type { BrowserTab as BrowserTabState } from '../../../../shared/browser-workspace-types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { resolveUnifiedTabLabel } from '../../../../shared/tab-title-resolution' import { useAppStore } from '../../store' import { destroyWorkspaceWebviews } from '../../store/slices/browser-webview-cleanup' diff --git a/src/renderer/src/components/task-page-cache-selectors.test.ts b/src/renderer/src/components/task-page-cache-selectors.test.ts index d06bf9ee623..968189a5417 100644 --- a/src/renderer/src/components/task-page-cache-selectors.test.ts +++ b/src/renderer/src/components/task-page-cache-selectors.test.ts @@ -2,7 +2,9 @@ import { describe, expect, it } from 'vitest' import { shallow } from 'zustand/shallow' import { workItemsCacheKey, type CacheEntry } from '@/store/slices/github' -import type { GitHubWorkItem, LinearCollectionResult, LinearIssue } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { LinearIssue } from '../../../shared/linear/issue-types' +import type { LinearCollectionResult } from '../../../shared/linear/workspace-types' import { buildTaskPageRepoSourceState, selectTaskPageUnresolvedSourceRepos, diff --git a/src/renderer/src/components/task-page-cache-selectors.ts b/src/renderer/src/components/task-page-cache-selectors.ts index 525fa51a336..403a8a97dd1 100644 --- a/src/renderer/src/components/task-page-cache-selectors.ts +++ b/src/renderer/src/components/task-page-cache-selectors.ts @@ -4,7 +4,7 @@ import { type WorkItemsCacheError, type WorkItemsCacheSources } from '@/store/slices/github' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import { taskPageWorkItemKey, taskPageWorkItemStatusSignature, diff --git a/src/renderer/src/components/task-page-checks-pill.ts b/src/renderer/src/components/task-page-checks-pill.ts index ba3252a46f3..d119f1eb69e 100644 --- a/src/renderer/src/components/task-page-checks-pill.ts +++ b/src/renderer/src/components/task-page-checks-pill.ts @@ -1,5 +1,5 @@ import { getProviderChecksLabel } from '../../../shared/provider-check-summary' -import type { ProviderCheckSummary } from '../../../shared/types' +import type { ProviderCheckSummary } from '../../../shared/github/pull-request-types' type ChecksPillItem = { checksSummary?: ProviderCheckSummary } diff --git a/src/renderer/src/components/task-page-default-repo-selection.test.ts b/src/renderer/src/components/task-page-default-repo-selection.test.ts index 957cd67a6e5..d87ceeec5ba 100644 --- a/src/renderer/src/components/task-page-default-repo-selection.test.ts +++ b/src/renderer/src/components/task-page-default-repo-selection.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { getDefaultTaskRepoSelection, getTaskEligibleRepos, diff --git a/src/renderer/src/components/task-page-default-repo-selection.ts b/src/renderer/src/components/task-page-default-repo-selection.ts index e1b2eca2ebd..e5c41c08b18 100644 --- a/src/renderer/src/components/task-page-default-repo-selection.ts +++ b/src/renderer/src/components/task-page-default-repo-selection.ts @@ -5,7 +5,7 @@ import { isProjectRemoteIdentityPending } from '../../../shared/project-host-setup-projection' import { isGitRepoKind } from '../../../shared/repo-kind' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' export type TaskProjectPickerGroup = { projectKey: string diff --git a/src/renderer/src/components/task-page-github-dialog-state-authority.test.ts b/src/renderer/src/components/task-page-github-dialog-state-authority.test.ts index 2f4d1646d21..b0bde81eb82 100644 --- a/src/renderer/src/components/task-page-github-dialog-state-authority.test.ts +++ b/src/renderer/src/components/task-page-github-dialog-state-authority.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect, it } from 'vitest' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import { getTaskSourceCacheScope } from '../../../shared/task-source-context' import { assertTaskPageGitHubDialogStateAuthority } from './task-page-github-dialog-state-authority' import { diff --git a/src/renderer/src/components/task-page-github-dialog-state-authority.ts b/src/renderer/src/components/task-page-github-dialog-state-authority.ts index a372762e141..2918e1eb4d0 100644 --- a/src/renderer/src/components/task-page-github-dialog-state-authority.ts +++ b/src/renderer/src/components/task-page-github-dialog-state-authority.ts @@ -1,4 +1,4 @@ -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import { getTaskSourceCacheScope, type TaskSourceContext diff --git a/src/renderer/src/components/task-page-github-resume-cache.ts b/src/renderer/src/components/task-page-github-resume-cache.ts index c42ac9a0c3d..8cd4d14b029 100644 --- a/src/renderer/src/components/task-page-github-resume-cache.ts +++ b/src/renderer/src/components/task-page-github-resume-cache.ts @@ -1,4 +1,4 @@ -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' export const TASK_PAGE_GITHUB_RESUME_CACHE_LIMIT = 5 export const TASK_PAGE_GITHUB_RESUME_CACHE_TTL_MS = 10 * 60_000 diff --git a/src/renderer/src/components/task-page-github-status-actions.test.ts b/src/renderer/src/components/task-page-github-status-actions.test.ts index b18226f6f88..d2105e722dd 100644 --- a/src/renderer/src/components/task-page-github-status-actions.test.ts +++ b/src/renderer/src/components/task-page-github-status-actions.test.ts @@ -5,7 +5,7 @@ import { getTaskPageGitHubDuplicateTargetErrorMessage, validateTaskPageGitHubDuplicateTarget } from './task-page-github-status-actions' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' describe('TaskPage GitHub status actions', () => { it('builds completed and not planned close updates', () => { diff --git a/src/renderer/src/components/task-page-github-status-actions.ts b/src/renderer/src/components/task-page-github-status-actions.ts index 1d3ed687767..3722678a310 100644 --- a/src/renderer/src/components/task-page-github-status-actions.ts +++ b/src/renderer/src/components/task-page-github-status-actions.ts @@ -1,8 +1,8 @@ +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import type { GitHubIssueCloseReason, - GitHubIssueUpdate, - GitHubWorkItem -} from '../../../shared/types' + GitHubIssueUpdate +} from '../../../shared/issue-mutation-types' export type TaskPageGitHubCloseAction = | { stateReason: Exclude } diff --git a/src/renderer/src/components/task-page-github-status-state.ts b/src/renderer/src/components/task-page-github-status-state.ts index 45adc29016d..a61cb20ed09 100644 --- a/src/renderer/src/components/task-page-github-status-state.ts +++ b/src/renderer/src/components/task-page-github-status-state.ts @@ -1,4 +1,4 @@ -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' type GitHubStatusItem = Pick diff --git a/src/renderer/src/components/task-page-github-task-kind.ts b/src/renderer/src/components/task-page-github-task-kind.ts index 772fa2d1a6e..ab1b59bf896 100644 --- a/src/renderer/src/components/task-page-github-task-kind.ts +++ b/src/renderer/src/components/task-page-github-task-kind.ts @@ -1,6 +1,6 @@ import { getTaskPresetQuery } from '../../../shared/task-preset-query' import { parseTaskQuery } from '../../../shared/task-query' -import type { TaskViewPresetId } from '../../../shared/types' +import type { TaskViewPresetId } from '../../../shared/ui-chrome-types' import type { GitHubTaskKind } from '@/components/task-page-localized-options' export function isPRFocusedTaskView(preset: TaskViewPresetId | null, query: string): boolean { diff --git a/src/renderer/src/components/task-page-github-work-item-filter-membership.ts b/src/renderer/src/components/task-page-github-work-item-filter-membership.ts index b51ddd8bda3..e3607396b7b 100644 --- a/src/renderer/src/components/task-page-github-work-item-filter-membership.ts +++ b/src/renderer/src/components/task-page-github-work-item-filter-membership.ts @@ -1,5 +1,6 @@ import type { ParsedTaskQuery } from '../../../shared/task-query' -import type { GitHubAssignableUser, GitHubWorkItem } from '../../../shared/types' +import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import type { StickyHideEntry } from './task-page-github-work-item-mutation-registry' function includesLogin(users: readonly GitHubAssignableUser[] | undefined, login: string): boolean { diff --git a/src/renderer/src/components/task-page-github-work-item-mutation-composition.ts b/src/renderer/src/components/task-page-github-work-item-mutation-composition.ts index 25616c3c059..6e98c29cb9b 100644 --- a/src/renderer/src/components/task-page-github-work-item-mutation-composition.ts +++ b/src/renderer/src/components/task-page-github-work-item-mutation-composition.ts @@ -1,5 +1,6 @@ import type { ParsedTaskQuery } from '../../../shared/task-query' -import type { GitHubAssignableUser, GitHubWorkItem } from '../../../shared/types' +import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import { recomputeTaskPageGitHubItemSoftHide, shouldSoftHideTaskPageGitHubWorkItem diff --git a/src/renderer/src/components/task-page-github-work-item-mutation-lifecycle.ts b/src/renderer/src/components/task-page-github-work-item-mutation-lifecycle.ts index 3bad977b3be..8a693381628 100644 --- a/src/renderer/src/components/task-page-github-work-item-mutation-lifecycle.ts +++ b/src/renderer/src/components/task-page-github-work-item-mutation-lifecycle.ts @@ -1,5 +1,5 @@ import type { ParsedTaskQuery } from '../../../shared/task-query' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { applyTaskPageGitHubListOps } from './task-page-github-work-item-mutation-patches' import { diff --git a/src/renderer/src/components/task-page-github-work-item-mutation-pages.ts b/src/renderer/src/components/task-page-github-work-item-mutation-pages.ts index 65b9ffba648..6b62509a05b 100644 --- a/src/renderer/src/components/task-page-github-work-item-mutation-pages.ts +++ b/src/renderer/src/components/task-page-github-work-item-mutation-pages.ts @@ -1,4 +1,4 @@ -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { getRegistryMergedTaskPageGitHubWorkItem } from './task-page-github-work-item-mutation-composition' import { diff --git a/src/renderer/src/components/task-page-github-work-item-mutation-patches.test.ts b/src/renderer/src/components/task-page-github-work-item-mutation-patches.test.ts index dd5a305ccea..f32558adf09 100644 --- a/src/renderer/src/components/task-page-github-work-item-mutation-patches.test.ts +++ b/src/renderer/src/components/task-page-github-work-item-mutation-patches.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import { applyTaskPageGitHubListOps, buildTaskPageGitHubWorkItemMutationPatch, diff --git a/src/renderer/src/components/task-page-github-work-item-mutation-patches.ts b/src/renderer/src/components/task-page-github-work-item-mutation-patches.ts index f06db3f1ef8..c72d0026105 100644 --- a/src/renderer/src/components/task-page-github-work-item-mutation-patches.ts +++ b/src/renderer/src/components/task-page-github-work-item-mutation-patches.ts @@ -1,4 +1,5 @@ -import type { GitHubAssignableUser, GitHubWorkItem } from '../../../shared/types' +import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import type { TaskPageGitHubCloseAction } from './task-page-github-status-actions' import { taskPageGitHubListOpKey, diff --git a/src/renderer/src/components/task-page-github-work-item-mutation-registry.ts b/src/renderer/src/components/task-page-github-work-item-mutation-registry.ts index bfd575ea4ab..6988ff7f7b3 100644 --- a/src/renderer/src/components/task-page-github-work-item-mutation-registry.ts +++ b/src/renderer/src/components/task-page-github-work-item-mutation-registry.ts @@ -1,4 +1,4 @@ -import type { GitHubAssignableUser } from '../../../shared/types' +import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' import type { PendingOp, StickyHideEntry, diff --git a/src/renderer/src/components/task-page-github-work-item-mutation-regressions.test.ts b/src/renderer/src/components/task-page-github-work-item-mutation-regressions.test.ts index fd931a8045b..a24a20e33b6 100644 --- a/src/renderer/src/components/task-page-github-work-item-mutation-regressions.test.ts +++ b/src/renderer/src/components/task-page-github-work-item-mutation-regressions.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect, it } from 'vitest' import type { ParsedTaskQuery } from '../../../shared/task-query' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import { adoptQuietSearchFieldsForItem, advanceTaskPageQuietRevalidateScope, diff --git a/src/renderer/src/components/task-page-github-work-item-mutation-types.ts b/src/renderer/src/components/task-page-github-work-item-mutation-types.ts index f12310afc88..2aaa09e3bd0 100644 --- a/src/renderer/src/components/task-page-github-work-item-mutation-types.ts +++ b/src/renderer/src/components/task-page-github-work-item-mutation-types.ts @@ -1,5 +1,5 @@ import type { ParsedTaskQuery } from '../../../shared/task-query' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import type { TaskPageGitHubMutationIntent } from './task-page-github-work-item-mutation-patches' import type { TaskPageGitHubMutationKey } from './task-page-github-work-item-mutation-registry' diff --git a/src/renderer/src/components/task-page-github-work-item-mutations.test.ts b/src/renderer/src/components/task-page-github-work-item-mutations.test.ts index ad59620ef68..f50c40d4021 100644 --- a/src/renderer/src/components/task-page-github-work-item-mutations.test.ts +++ b/src/renderer/src/components/task-page-github-work-item-mutations.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { ParsedTaskQuery } from '../../../shared/task-query' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import { adoptQuietSearchFieldsForItem, applyPendingTaskPageGitHubMutationsToItems, diff --git a/src/renderer/src/components/task-page-github-work-item-mutations.ts b/src/renderer/src/components/task-page-github-work-item-mutations.ts index 450c0abc4e9..28e05a1ccb4 100644 --- a/src/renderer/src/components/task-page-github-work-item-mutations.ts +++ b/src/renderer/src/components/task-page-github-work-item-mutations.ts @@ -1,4 +1,4 @@ -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import { getTaskSourceCacheScope, type TaskSourceContext diff --git a/src/renderer/src/components/task-page-github-work-item-quiet-adopt.ts b/src/renderer/src/components/task-page-github-work-item-quiet-adopt.ts index 269f07164ae..5547986ab2e 100644 --- a/src/renderer/src/components/task-page-github-work-item-quiet-adopt.ts +++ b/src/renderer/src/components/task-page-github-work-item-quiet-adopt.ts @@ -1,4 +1,4 @@ -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { loginSetOfUsers, loginSetsEqual } from './task-page-github-work-item-mutation-patches' import { diff --git a/src/renderer/src/components/task-page-github-work-item-quiet-revalidate.ts b/src/renderer/src/components/task-page-github-work-item-quiet-revalidate.ts index 5895eb28f85..a482726f8c8 100644 --- a/src/renderer/src/components/task-page-github-work-item-quiet-revalidate.ts +++ b/src/renderer/src/components/task-page-github-work-item-quiet-revalidate.ts @@ -1,4 +1,4 @@ -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { adoptQuietSearchFieldsForItem, diff --git a/src/renderer/src/components/task-page-github-work-item-registry-types.ts b/src/renderer/src/components/task-page-github-work-item-registry-types.ts index a1e93064812..fecd93c4465 100644 --- a/src/renderer/src/components/task-page-github-work-item-registry-types.ts +++ b/src/renderer/src/components/task-page-github-work-item-registry-types.ts @@ -1,4 +1,5 @@ -import type { GitHubAssignableUser, GitHubWorkItem } from '../../../shared/types' +import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' export type TaskPageGitHubListFamily = 'assignees' | 'reviewRequests' export type TaskPageGitHubMutationKey = { diff --git a/src/renderer/src/components/task-page-github-work-item-status.ts b/src/renderer/src/components/task-page-github-work-item-status.ts index 5e54688305b..d5eb8cf7102 100644 --- a/src/renderer/src/components/task-page-github-work-item-status.ts +++ b/src/renderer/src/components/task-page-github-work-item-status.ts @@ -1,5 +1,5 @@ import { translate } from '@/i18n/i18n' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' export type GitHubWorkItemStatusItem = Pick diff --git a/src/renderer/src/components/task-page-jira-cache-selectors.test.ts b/src/renderer/src/components/task-page-jira-cache-selectors.test.ts index f5f60d3cbe2..bc4a4c07ffa 100644 --- a/src/renderer/src/components/task-page-jira-cache-selectors.test.ts +++ b/src/renderer/src/components/task-page-jira-cache-selectors.test.ts @@ -3,7 +3,7 @@ import { getTaskSourceCacheScope, type TaskSourceContext } from '../../../shared/task-source-context' -import type { JiraIssue } from '../../../shared/types' +import type { JiraIssue } from '../../../shared/jira-types' import { findTaskPageJiraIssue } from './task-page-jira-cache-selectors' function jiraSourceContext(environmentId: string): TaskSourceContext { diff --git a/src/renderer/src/components/task-page-jira-cache-selectors.ts b/src/renderer/src/components/task-page-jira-cache-selectors.ts index 5426c404dbf..969160f13f8 100644 --- a/src/renderer/src/components/task-page-jira-cache-selectors.ts +++ b/src/renderer/src/components/task-page-jira-cache-selectors.ts @@ -3,7 +3,7 @@ import { getTaskSourceCacheScope, type TaskSourceContext } from '../../../shared/task-source-context' -import type { JiraIssue } from '../../../shared/types' +import type { JiraIssue } from '../../../shared/jira-types' type JiraIssueCache = Record> type JiraSearchCache = Record> diff --git a/src/renderer/src/components/task-page-jira-create-fields.test.ts b/src/renderer/src/components/task-page-jira-create-fields.test.ts index 8cc24872386..11210e347db 100644 --- a/src/renderer/src/components/task-page-jira-create-fields.test.ts +++ b/src/renderer/src/components/task-page-jira-create-fields.test.ts @@ -8,7 +8,7 @@ import { getJiraCreateOptionPayload, isVisibleJiraCreateField } from './task-page-jira-create-fields' -import type { JiraCreateField } from '../../../shared/types' +import type { JiraCreateField } from '../../../shared/jira-types' function field(overrides: Partial = {}): JiraCreateField { return { key: 'customfield_1', name: 'Custom', required: true, ...overrides } diff --git a/src/renderer/src/components/task-page-jira-create-fields.ts b/src/renderer/src/components/task-page-jira-create-fields.ts index 568621ee3e7..932e64c2bb1 100644 --- a/src/renderer/src/components/task-page-jira-create-fields.ts +++ b/src/renderer/src/components/task-page-jira-create-fields.ts @@ -1,5 +1,5 @@ import { buildJiraCreateTextAdf } from '@/components/jira-create-adf' -import type { JiraCreateField } from '../../../shared/types' +import type { JiraCreateField } from '../../../shared/jira-types' const JIRA_CREATE_SYSTEM_FIELD_KEYS = new Set(['project', 'issuetype', 'summary', 'description']) diff --git a/src/renderer/src/components/task-page-jira-grouping.test.ts b/src/renderer/src/components/task-page-jira-grouping.test.ts index 44d8bce4fbf..fbfa5e5b069 100644 --- a/src/renderer/src/components/task-page-jira-grouping.test.ts +++ b/src/renderer/src/components/task-page-jira-grouping.test.ts @@ -14,7 +14,7 @@ import { getSingleJiraProjectScope, loadTaskPageJiraProjectStatusOrder } from './task-page-jira-status-order' -import type { JiraIssue, JiraProjectStatusOrder } from '../../../shared/types' +import type { JiraIssue, JiraProjectStatusOrder } from '../../../shared/jira-types' const { jiraGetProjectStatusOrderMock } = vi.hoisted(() => ({ jiraGetProjectStatusOrderMock: vi.fn() diff --git a/src/renderer/src/components/task-page-jira-issue-list.tsx b/src/renderer/src/components/task-page-jira-issue-list.tsx index 104f591ab76..989e0911591 100644 --- a/src/renderer/src/components/task-page-jira-issue-list.tsx +++ b/src/renderer/src/components/task-page-jira-issue-list.tsx @@ -6,7 +6,7 @@ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/component import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { translate } from '@/i18n/i18n' import { cn } from '@/lib/utils' -import type { JiraIssue, JiraProjectStatusOrder } from '../../../shared/types' +import type { JiraIssue, JiraProjectStatusOrder } from '../../../shared/jira-types' export type TaskPageJiraIssueSection = { key: string diff --git a/src/renderer/src/components/task-page-jira-item-source-context.test.ts b/src/renderer/src/components/task-page-jira-item-source-context.test.ts index 53917453655..a635fb86f30 100644 --- a/src/renderer/src/components/task-page-jira-item-source-context.test.ts +++ b/src/renderer/src/components/task-page-jira-item-source-context.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { JiraIssue, JiraSite } from '../../../shared/types' +import type { JiraIssue, JiraSite } from '../../../shared/jira-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { bindTaskPageJiraItemSourceContext } from './task-page-jira-item-source-context' diff --git a/src/renderer/src/components/task-page-jira-item-source-context.ts b/src/renderer/src/components/task-page-jira-item-source-context.ts index 1790797e3e6..be8ec6d4006 100644 --- a/src/renderer/src/components/task-page-jira-item-source-context.ts +++ b/src/renderer/src/components/task-page-jira-item-source-context.ts @@ -1,4 +1,4 @@ -import type { JiraIssue, JiraSite } from '../../../shared/types' +import type { JiraIssue, JiraSite } from '../../../shared/jira-types' import { normalizeTaskSourceContext, type TaskSourceContext diff --git a/src/renderer/src/components/task-page-jira-load-state.ts b/src/renderer/src/components/task-page-jira-load-state.ts index 77826b78126..0a542095ab0 100644 --- a/src/renderer/src/components/task-page-jira-load-state.ts +++ b/src/renderer/src/components/task-page-jira-load-state.ts @@ -1,4 +1,4 @@ -import type { JiraIssue } from '../../../shared/types' +import type { JiraIssue } from '../../../shared/jira-types' export type TaskPageJiraLoadError = { title: string diff --git a/src/renderer/src/components/task-page-jira-project-selection.test.ts b/src/renderer/src/components/task-page-jira-project-selection.test.ts index 82638f607cb..5f0bd24c884 100644 --- a/src/renderer/src/components/task-page-jira-project-selection.test.ts +++ b/src/renderer/src/components/task-page-jira-project-selection.test.ts @@ -4,7 +4,7 @@ import { compareJiraProjectsByDisplayLabel, getJiraProjectSelectionKey } from './task-page-jira-project-selection' -import type { JiraProject } from '../../../shared/types' +import type { JiraProject } from '../../../shared/jira-types' function project(overrides: Partial = {}): JiraProject { return { id: '1', key: 'AA', name: 'Alpha', ...overrides } diff --git a/src/renderer/src/components/task-page-jira-project-selection.ts b/src/renderer/src/components/task-page-jira-project-selection.ts index fe004b6cdf4..48a9af0dfc2 100644 --- a/src/renderer/src/components/task-page-jira-project-selection.ts +++ b/src/renderer/src/components/task-page-jira-project-selection.ts @@ -1,4 +1,4 @@ -import type { JiraProject } from '../../../shared/types' +import type { JiraProject } from '../../../shared/jira-types' export function getJiraProjectSelectionKey(project: JiraProject): string { return `${project.siteId ?? 'selected'}:${project.id}` diff --git a/src/renderer/src/components/task-page-jira-sorting.test.ts b/src/renderer/src/components/task-page-jira-sorting.test.ts index 767fbf7c1cb..0cdca7a6fe6 100644 --- a/src/renderer/src/components/task-page-jira-sorting.test.ts +++ b/src/renderer/src/components/task-page-jira-sorting.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { JiraIssue, JiraPriority } from '../../../shared/types' +import type { JiraIssue, JiraPriority } from '../../../shared/jira-types' import { getJiraPriorityWeight, sortJiraIssues } from './jira-issue-sorter' describe('TaskPage Jira sorting functionality', () => { diff --git a/src/renderer/src/components/task-page-jira-status-order.ts b/src/renderer/src/components/task-page-jira-status-order.ts index 8cb6ed39c37..e064f5732dc 100644 --- a/src/renderer/src/components/task-page-jira-status-order.ts +++ b/src/renderer/src/components/task-page-jira-status-order.ts @@ -1,4 +1,4 @@ -import type { JiraIssue, JiraProjectStatusOrder } from '../../../shared/types' +import type { JiraIssue, JiraProjectStatusOrder } from '../../../shared/jira-types' import { jiraGetProjectStatusOrder, type RuntimeJiraSettings } from '@/runtime/runtime-jira-client' import { createMetadataRequestStore, loadMetadata } from '@/hooks/metadata-request-cache' diff --git a/src/renderer/src/components/task-page-linear-cache-selectors.ts b/src/renderer/src/components/task-page-linear-cache-selectors.ts index d13536ea93f..31ac2730b27 100644 --- a/src/renderer/src/components/task-page-linear-cache-selectors.ts +++ b/src/renderer/src/components/task-page-linear-cache-selectors.ts @@ -1,5 +1,6 @@ import type { CacheEntry } from '@/store/slices/github' -import type { LinearCollectionResult, LinearIssue } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' +import type { LinearCollectionResult } from '../../../shared/linear/workspace-types' import { sortedStrings } from './task-page-work-item-signatures' type LinearIssueCache = Record> diff --git a/src/renderer/src/components/task-page-linear-in-orca-issues.test.ts b/src/renderer/src/components/task-page-linear-in-orca-issues.test.ts index 28804568fec..818bc9e60e5 100644 --- a/src/renderer/src/components/task-page-linear-in-orca-issues.test.ts +++ b/src/renderer/src/components/task-page-linear-in-orca-issues.test.ts @@ -7,7 +7,7 @@ import { linkedLinearIssueRefsSignature, readLinkedLinearIssuesWithLimit } from './task-page-linear-in-orca-issues' -import type { LinearIssue } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' function issue( partial: Partial & Pick diff --git a/src/renderer/src/components/task-page-linear-in-orca-issues.ts b/src/renderer/src/components/task-page-linear-in-orca-issues.ts index 55ae9293b85..36c66ea2c4c 100644 --- a/src/renderer/src/components/task-page-linear-in-orca-issues.ts +++ b/src/renderer/src/components/task-page-linear-in-orca-issues.ts @@ -1,4 +1,6 @@ -import type { LinearIssue, LinearWorkspace, Worktree } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' +import type { LinearWorkspace } from '../../../shared/linear/workspace-types' +import type { Worktree } from '../../../shared/worktree/types' import { parseLinearIssueInput } from '../../../shared/linear/links' import { getTaskSourceCacheScope, diff --git a/src/renderer/src/components/task-page-linear-team-selection.test.ts b/src/renderer/src/components/task-page-linear-team-selection.test.ts index a3d1a207b12..6eb1878fbbd 100644 --- a/src/renderer/src/components/task-page-linear-team-selection.test.ts +++ b/src/renderer/src/components/task-page-linear-team-selection.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { LinearTeam } from '../../../shared/types' +import type { LinearTeam } from '../../../shared/linear/workspace-types' import { reconcileLinearTeamSelection } from './task-page-linear-team-selection' function team(id: string): LinearTeam { diff --git a/src/renderer/src/components/task-page-linear-team-selection.ts b/src/renderer/src/components/task-page-linear-team-selection.ts index f6d7e52fa1f..3ec82284a59 100644 --- a/src/renderer/src/components/task-page-linear-team-selection.ts +++ b/src/renderer/src/components/task-page-linear-team-selection.ts @@ -1,4 +1,4 @@ -import type { LinearTeam } from '../../../shared/types' +import type { LinearTeam } from '../../../shared/linear/workspace-types' export function reconcileLinearTeamSelection( availableTeams: LinearTeam[], diff --git a/src/renderer/src/components/task-page-list-chrome-visibility.ts b/src/renderer/src/components/task-page-list-chrome-visibility.ts index e8b95e96288..e589ef2e579 100644 --- a/src/renderer/src/components/task-page-list-chrome-visibility.ts +++ b/src/renderer/src/components/task-page-list-chrome-visibility.ts @@ -1,4 +1,4 @@ -import type { TaskProvider } from '../../../shared/types' +import type { TaskProvider } from '../../../shared/task-providers' export type TaskPageListChromeVisibilityState = { taskSource: TaskProvider diff --git a/src/renderer/src/components/task-page-localized-options.tsx b/src/renderer/src/components/task-page-localized-options.tsx index 506f27add17..cd14317489d 100644 --- a/src/renderer/src/components/task-page-localized-options.tsx +++ b/src/renderer/src/components/task-page-localized-options.tsx @@ -15,7 +15,8 @@ import { type LinearViewMode } from '../../../shared/linear/issue-view-resume-state' import { getTaskPresetQuery } from '../../../shared/task-preset-query' -import type { TaskProvider, TaskViewPresetId } from '../../../shared/types' +import type { TaskProvider } from '../../../shared/task-providers' +import type { TaskViewPresetId } from '../../../shared/ui-chrome-types' export type GitLabTaskFilter = 'opened' | 'merged' | 'closed' | 'all' export type GitLabIssueFilter = 'opened' | 'assigned-to-me' diff --git a/src/renderer/src/components/task-page-new-issue-draft.test.ts b/src/renderer/src/components/task-page-new-issue-draft.test.ts index c5058f50989..42a63a68568 100644 --- a/src/renderer/src/components/task-page-new-issue-draft.test.ts +++ b/src/renderer/src/components/task-page-new-issue-draft.test.ts @@ -6,7 +6,7 @@ import { resolveVanishedNewIssueRepoReset } from './task-page-new-issue-draft' import type { NewIssueDraft } from '@/store/slices/new-issue-draft' -import type { GitHubAssignableUser } from '../../../shared/types' +import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' const assignee: GitHubAssignableUser = { login: 'octocat', name: 'Octo', avatarUrl: '' } diff --git a/src/renderer/src/components/task-page-new-issue-draft.ts b/src/renderer/src/components/task-page-new-issue-draft.ts index e252692f379..8b6de307fb7 100644 --- a/src/renderer/src/components/task-page-new-issue-draft.ts +++ b/src/renderer/src/components/task-page-new-issue-draft.ts @@ -1,4 +1,4 @@ -import type { GitHubAssignableUser } from '../../../shared/types' +import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' import type { NewIssueDraft } from '@/store/slices/new-issue-draft' export type NewIssueOpenSeed = { diff --git a/src/renderer/src/components/task-page-pr-check-summary.test.ts b/src/renderer/src/components/task-page-pr-check-summary.test.ts index ccd63d94c04..bc9360d4d4f 100644 --- a/src/renderer/src/components/task-page-pr-check-summary.test.ts +++ b/src/renderer/src/components/task-page-pr-check-summary.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest' import { deriveTaskPagePRCheckSummary } from './task-page-pr-check-summary' -import type { PRCheckDetail } from '../../../shared/types' +import type { PRCheckDetail } from '../../../shared/github/check-types' function check(patch: Partial): PRCheckDetail { return { diff --git a/src/renderer/src/components/task-page-pr-check-summary.ts b/src/renderer/src/components/task-page-pr-check-summary.ts index c7531040923..156e92b70ab 100644 --- a/src/renderer/src/components/task-page-pr-check-summary.ts +++ b/src/renderer/src/components/task-page-pr-check-summary.ts @@ -1,5 +1,6 @@ import { summarizeProviderChecks } from '../../../shared/provider-check-summary' -import type { PRCheckDetail, ProviderCheckSummary } from '../../../shared/types' +import type { PRCheckDetail } from '../../../shared/github/check-types' +import type { ProviderCheckSummary } from '../../../shared/github/pull-request-types' export function deriveTaskPagePRCheckSummary(checks: PRCheckDetail[]): ProviderCheckSummary { return summarizeProviderChecks(checks) diff --git a/src/renderer/src/components/task-page-pr-delta-summary.ts b/src/renderer/src/components/task-page-pr-delta-summary.ts index 9711d087cb0..091011a38ed 100644 --- a/src/renderer/src/components/task-page-pr-delta-summary.ts +++ b/src/renderer/src/components/task-page-pr-delta-summary.ts @@ -1,4 +1,4 @@ -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' export function formatPRDelta(item: GitHubWorkItem): string | null { const parts: string[] = [] diff --git a/src/renderer/src/components/task-page-work-item-pagination.test.ts b/src/renderer/src/components/task-page-work-item-pagination.test.ts index 670c862be98..50b88579158 100644 --- a/src/renderer/src/components/task-page-work-item-pagination.test.ts +++ b/src/renderer/src/components/task-page-work-item-pagination.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import { accumulateWorkItemPages, applyEmptyPageClamp, diff --git a/src/renderer/src/components/task-page-work-item-pagination.ts b/src/renderer/src/components/task-page-work-item-pagination.ts index 8209b61bdf0..2876831f000 100644 --- a/src/renderer/src/components/task-page-work-item-pagination.ts +++ b/src/renderer/src/components/task-page-work-item-pagination.ts @@ -1,4 +1,5 @@ -import type { ClassifiedError, GitHubWorkItem } from '../../../shared/types' +import type { ClassifiedError } from '../../../shared/classified-error' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' /** * Cross-repo Tasks pagination is cursor-based on `updatedAt`: each page's oldest diff --git a/src/renderer/src/components/task-page-work-item-signatures.ts b/src/renderer/src/components/task-page-work-item-signatures.ts index 67875e2e15e..8abb2f07a19 100644 --- a/src/renderer/src/components/task-page-work-item-signatures.ts +++ b/src/renderer/src/components/task-page-work-item-signatures.ts @@ -1,4 +1,4 @@ -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' export function taskPageWorkItemKey(item: GitHubWorkItem): string { return `${item.repoId}\u0000${item.id}` diff --git a/src/renderer/src/components/task-project-source-combobox-model.ts b/src/renderer/src/components/task-project-source-combobox-model.ts index 248adfcfa11..8229014e362 100644 --- a/src/renderer/src/components/task-project-source-combobox-model.ts +++ b/src/renderer/src/components/task-project-source-combobox-model.ts @@ -1,5 +1,5 @@ import { getRepoExecutionHostId } from '../../../shared/execution-host' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import type { TaskProjectPickerGroup } from './task-page-default-repo-selection' export function selectedTaskProjectGroups( diff --git a/src/renderer/src/components/task-project-source-combobox.tsx b/src/renderer/src/components/task-project-source-combobox.tsx index 0f3d0e33697..555089e75f7 100644 --- a/src/renderer/src/components/task-project-source-combobox.tsx +++ b/src/renderer/src/components/task-project-source-combobox.tsx @@ -7,7 +7,7 @@ import RepoBadgeLabel from '@/components/repo/RepoBadgeLabel' import { isRepoSearchQueryTooLarge, searchRepos } from '@/lib/repo-search' import { cn } from '@/lib/utils' import { translate } from '@/i18n/i18n' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import type { TaskProjectPickerGroup } from './task-page-default-repo-selection' import { getSelectedTaskProjectSource, diff --git a/src/renderer/src/components/task-source-context-summary.ts b/src/renderer/src/components/task-source-context-summary.ts index be1d5fa0790..af5e2879d0c 100644 --- a/src/renderer/src/components/task-source-context-summary.ts +++ b/src/renderer/src/components/task-source-context-summary.ts @@ -3,7 +3,7 @@ import { getExecutionHostLabel } from '../../../shared/execution-host' import type { ExecutionHostScope } from '../../../shared/execution-host' import type { ExecutionHostHealth } from '../../../shared/execution-host-registry' import type { SshConnectionStatus } from '../../../shared/ssh-types' -import type { TaskProvider } from '../../../shared/types' +import type { TaskProvider } from '../../../shared/task-providers' import type { TaskProviderIdentity, TaskSourceContext } from '../../../shared/task-source-context' export type TaskSourceContextSummary = { diff --git a/src/renderer/src/components/task-source-provider-availability.ts b/src/renderer/src/components/task-source-provider-availability.ts index e01e0fef057..5038ab7ea6a 100644 --- a/src/renderer/src/components/task-source-provider-availability.ts +++ b/src/renderer/src/components/task-source-provider-availability.ts @@ -1,5 +1,5 @@ import { parseExecutionHostId } from '../../../shared/execution-host' -import type { TaskProvider } from '../../../shared/types' +import type { TaskProvider } from '../../../shared/task-providers' import type { PreflightStatus } from '../../../preload/api-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import type { TaskSourceHostAvailability } from './task-source-context-summary' diff --git a/src/renderer/src/components/terminal-pane/TerminalContextMenu.tsx b/src/renderer/src/components/terminal-pane/TerminalContextMenu.tsx index c983b389760..73a9d508f4c 100644 --- a/src/renderer/src/components/terminal-pane/TerminalContextMenu.tsx +++ b/src/renderer/src/components/terminal-pane/TerminalContextMenu.tsx @@ -25,7 +25,7 @@ import { DropdownMenuTrigger } from '@/components/ui/dropdown-menu' import { shouldIgnoreTerminalMenuPointerDownOutside } from './terminal-context-menu-dismiss' -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import type { ExecutionHostId } from '../../../../shared/execution-host' import { formatPrimaryShortcutLabel } from '@/hooks/useShortcutLabel' import type { KeybindingOverrides } from '../../../../shared/keybindings' diff --git a/src/renderer/src/components/terminal-pane/TerminalPane.tsx b/src/renderer/src/components/terminal-pane/TerminalPane.tsx index 5546390b6db..79b7ab6bf13 100644 --- a/src/renderer/src/components/terminal-pane/TerminalPane.tsx +++ b/src/renderer/src/components/terminal-pane/TerminalPane.tsx @@ -152,7 +152,10 @@ import { isHostAuthoritativeLayout, planTerminalLiveLayoutInsertions } from './terminal-live-layout-reconciliation' -import type { TerminalQuickCommand, TerminalQuickCommandScope } from '../../../../shared/types' +import type { + TerminalQuickCommand, + TerminalQuickCommandScope +} from '../../../../shared/terminal-quick-command-types' import { createRemotePaneLayoutPusher, type RemotePaneLayoutPusher diff --git a/src/renderer/src/components/terminal-pane/TerminalPaneOverlayLayer.tsx b/src/renderer/src/components/terminal-pane/TerminalPaneOverlayLayer.tsx index 2196f7ed094..2cb20783f53 100644 --- a/src/renderer/src/components/terminal-pane/TerminalPaneOverlayLayer.tsx +++ b/src/renderer/src/components/terminal-pane/TerminalPaneOverlayLayer.tsx @@ -1,6 +1,7 @@ import { memo, useCallback, useMemo } from 'react' import { useShallow } from 'zustand/react/shallow' -import type { Tab, TabGroup, TerminalTab } from '../../../../shared/types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { useAppStore } from '../../store' import { findActivityTerminalPortal, diff --git a/src/renderer/src/components/terminal-pane/TerminalQuickCommandsSubmenu.tsx b/src/renderer/src/components/terminal-pane/TerminalQuickCommandsSubmenu.tsx index ed650dc1463..df32a3d2505 100644 --- a/src/renderer/src/components/terminal-pane/TerminalQuickCommandsSubmenu.tsx +++ b/src/renderer/src/components/terminal-pane/TerminalQuickCommandsSubmenu.tsx @@ -8,7 +8,7 @@ import { DropdownMenuSubContent, DropdownMenuSubTrigger } from '@/components/ui/dropdown-menu' -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import type { ExecutionHostId } from '../../../../shared/execution-host' import { isTerminalAgentQuickCommand } from '../../../../shared/terminal-quick-commands' import { AgentIcon } from '@/lib/agent-catalog' diff --git a/src/renderer/src/components/terminal-pane/agent-completion-coordinator-types.ts b/src/renderer/src/components/terminal-pane/agent-completion-coordinator-types.ts index 097ecd792d5..a388ec17457 100644 --- a/src/renderer/src/components/terminal-pane/agent-completion-coordinator-types.ts +++ b/src/renderer/src/components/terminal-pane/agent-completion-coordinator-types.ts @@ -1,5 +1,5 @@ import type { ParsedAgentStatusPayload } from '../../../../shared/agent-status-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { RecognizedAgentProcess } from '../../../../shared/agent-process-recognition' import type { RuntimeTerminalProcessInspection } from '@/runtime/runtime-terminal-inspection' diff --git a/src/renderer/src/components/terminal-pane/agent-task-complete-policy.ts b/src/renderer/src/components/terminal-pane/agent-task-complete-policy.ts index 6275cc9553c..4ba348d3f32 100644 --- a/src/renderer/src/components/terminal-pane/agent-task-complete-policy.ts +++ b/src/renderer/src/components/terminal-pane/agent-task-complete-policy.ts @@ -8,7 +8,7 @@ * consumers can use it. */ import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' /** Delay before BEL/completion OS notifications so the richer * agent-task-complete notification can win a same-burst BEL race. */ diff --git a/src/renderer/src/components/terminal-pane/codex-detached-pane-restart.ts b/src/renderer/src/components/terminal-pane/codex-detached-pane-restart.ts index 1ad6528c935..b1d0ddb6747 100644 --- a/src/renderer/src/components/terminal-pane/codex-detached-pane-restart.ts +++ b/src/renderer/src/components/terminal-pane/codex-detached-pane-restart.ts @@ -10,7 +10,7 @@ */ import { isTerminalLeafId, makePaneKey } from '../../../../shared/stable-pane-id' import { parseWorkspaceKey } from '../../../../shared/workspace-scope' -import type { TerminalPaneLayoutNode, TerminalTab } from '../../../../shared/types' +import type { TerminalPaneLayoutNode, TerminalTab } from '../../../../shared/terminal-tab-types' import type { AppState } from '@/store' import { useAppStore } from '@/store' import { getWorktreeMapFromState } from '@/store/selectors' diff --git a/src/renderer/src/components/terminal-pane/command-code-output-ownership.ts b/src/renderer/src/components/terminal-pane/command-code-output-ownership.ts index 65f5f196ca0..ec0b65cd49a 100644 --- a/src/renderer/src/components/terminal-pane/command-code-output-ownership.ts +++ b/src/renderer/src/components/terminal-pane/command-code-output-ownership.ts @@ -1,5 +1,5 @@ import type { AgentType } from '../../../../shared/agent-status-types' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' export function canCommandCodeOutputOwnPane(args: { foregroundAgent?: TuiAgent | null diff --git a/src/renderer/src/components/terminal-pane/compose-active-terminal-theme.test.ts b/src/renderer/src/components/terminal-pane/compose-active-terminal-theme.test.ts index 97e81b97135..b15bae2ec5b 100644 --- a/src/renderer/src/components/terminal-pane/compose-active-terminal-theme.test.ts +++ b/src/renderer/src/components/terminal-pane/compose-active-terminal-theme.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { composeActiveTerminalTheme } from './terminal-appearance' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' describe('composeActiveTerminalTheme', () => { function settingsWith(partial: Partial): GlobalSettings { diff --git a/src/renderer/src/components/terminal-pane/layout-serialization.test.ts b/src/renderer/src/components/terminal-pane/layout-serialization.test.ts index 626168ef265..597d5e54b58 100644 --- a/src/renderer/src/components/terminal-pane/layout-serialization.test.ts +++ b/src/renderer/src/components/terminal-pane/layout-serialization.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, beforeAll, vi } from 'vitest' -import type { TerminalPaneLayoutNode } from '../../../../shared/types' +import type { TerminalPaneLayoutNode } from '../../../../shared/terminal-tab-types' // --------------------------------------------------------------------------- // Provide a minimal HTMLElement so `instanceof HTMLElement` passes in Node env diff --git a/src/renderer/src/components/terminal-pane/layout-serialization.ts b/src/renderer/src/components/terminal-pane/layout-serialization.ts index 2f8d0fea2f9..c3807cffeac 100644 --- a/src/renderer/src/components/terminal-pane/layout-serialization.ts +++ b/src/renderer/src/components/terminal-pane/layout-serialization.ts @@ -2,7 +2,7 @@ import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode, TerminalPaneSplitDirection -} from '../../../../shared/types' +} from '../../../../shared/terminal-tab-types' import { isTerminalLeafId } from '../../../../shared/stable-pane-id' import { POST_REPLAY_MODE_RESET } from '../../../../shared/terminal-mode-reset-profiles' import type { PaneManager } from '@/lib/pane-manager/pane-manager' diff --git a/src/renderer/src/components/terminal-pane/native-chat-leaf-title-agent.ts b/src/renderer/src/components/terminal-pane/native-chat-leaf-title-agent.ts index 20f24fb6986..4bf7b230ffa 100644 --- a/src/renderer/src/components/terminal-pane/native-chat-leaf-title-agent.ts +++ b/src/renderer/src/components/terminal-pane/native-chat-leaf-title-agent.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { resolveCommittedTitleAgentType } from '@/lib/pane-agent-evidence' export type NativeChatLeafTitlePane = { diff --git a/src/renderer/src/components/terminal-pane/pane-foreground-agent-tracker.ts b/src/renderer/src/components/terminal-pane/pane-foreground-agent-tracker.ts index 189b91573b6..2a279abd110 100644 --- a/src/renderer/src/components/terminal-pane/pane-foreground-agent-tracker.ts +++ b/src/renderer/src/components/terminal-pane/pane-foreground-agent-tracker.ts @@ -3,7 +3,7 @@ import { recognizeAgentProcess } from '../../../../shared/agent-process-recognition' import { isShellProcess } from '../../../../shared/shell-process-detection' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { PaneForegroundAgentEntry } from '@/store/slices/pane-foreground-agent' // Why: settle after exec, then place the final generic retry beyond sequential diff --git a/src/renderer/src/components/terminal-pane/pty-connection-types.ts b/src/renderer/src/components/terminal-pane/pty-connection-types.ts index b2b5163ac93..9fef3423cbf 100644 --- a/src/renderer/src/components/terminal-pane/pty-connection-types.ts +++ b/src/renderer/src/components/terminal-pane/pty-connection-types.ts @@ -6,7 +6,8 @@ import type { AgentCompletionStatusSnapshot } from './agent-completion-coordinat import type { EventProps } from '../../../../shared/telemetry-events' import type { TerminalColorSchemeMode } from '../../../../shared/terminal-color-scheme-protocol' import type { StartupCommandDelivery } from '../../../../shared/codex-startup-delivery' -import type { SetupSplitDirection, TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' +import type { SetupSplitDirection } from '../../../../shared/worktree/launch-types' import type { AgentProviderSessionMetadata, SleepingAgentLaunchConfig diff --git a/src/renderer/src/components/terminal-pane/pty-connection.test.ts b/src/renderer/src/components/terminal-pane/pty-connection.test.ts index 6fbe70501f8..f4bd512fda9 100644 --- a/src/renderer/src/components/terminal-pane/pty-connection.test.ts +++ b/src/renderer/src/components/terminal-pane/pty-connection.test.ts @@ -23,7 +23,8 @@ import type { AgentType } from '../../../../shared/agent-status-types' import { makePaneKey } from '../../../../shared/stable-pane-id' import { toAppSshPtyId } from '../../../../shared/ssh-pty-id' import type { SshConnectionState } from '../../../../shared/ssh-types' -import type { TerminalLayoutSnapshot, TuiAgent } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { YOLO_TUI_AGENT_ARGS } from '../../../../shared/tui-agent-permissions' import { SETUP_AGENT_SEQUENCE_STARTUP_COMMAND_ENV } from '../../../../shared/setup-agent-sequencing' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' diff --git a/src/renderer/src/components/terminal-pane/pty-connection.ts b/src/renderer/src/components/terminal-pane/pty-connection.ts index e2efbb0a9c4..8a67ba6b324 100644 --- a/src/renderer/src/components/terminal-pane/pty-connection.ts +++ b/src/renderer/src/components/terminal-pane/pty-connection.ts @@ -310,7 +310,8 @@ import { isExpectedAgentProcess, recognizeAgentProcessFromCommandLine } from '../../../../shared/agent-process-recognition' -import type { SetupSplitDirection, TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' +import type { SetupSplitDirection } from '../../../../shared/worktree/launch-types' import { isTuiAgent, TUI_AGENT_CONFIG } from '../../../../shared/tui-agent-config' import { createDraftPasteReadyScanner } from '../../../../shared/draft-paste-ready-scanner' import { sendAgentDraftPasteContent } from '@/lib/agent-draft-paste-content' diff --git a/src/renderer/src/components/terminal-pane/pty-transport-types.ts b/src/renderer/src/components/terminal-pane/pty-transport-types.ts index 1ba841bd823..57e0c9e2e4e 100644 --- a/src/renderer/src/components/terminal-pane/pty-transport-types.ts +++ b/src/renderer/src/components/terminal-pane/pty-transport-types.ts @@ -11,7 +11,7 @@ import type { StartupCommandDelivery } from '../../../../shared/codex-startup-de import type { ProjectExecutionRuntimeResolution } from '../../../../shared/project-execution-runtime' import type { EventProps } from '../../../../shared/telemetry-events' import type { TerminalOscColorQueryReplyColors } from '../../../../shared/terminal-osc-color-reply' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { ExecutionHostId } from '../../../../shared/execution-host' import type { PtyDataMeta } from './pty-dispatcher' import type { RemoteRuntimeSnapshotOutcome } from '../../runtime/remote-runtime-terminal-multiplexer' diff --git a/src/renderer/src/components/terminal-pane/remote-pane-layout-push.test.ts b/src/renderer/src/components/terminal-pane/remote-pane-layout-push.test.ts index d6d777f728c..737339f4705 100644 --- a/src/renderer/src/components/terminal-pane/remote-pane-layout-push.test.ts +++ b/src/renderer/src/components/terminal-pane/remote-pane-layout-push.test.ts @@ -6,7 +6,7 @@ * before the dedupe and 1 after. */ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' const updateWebRuntimePaneLayout = vi.fn() vi.mock('@/runtime/web-runtime-session', () => ({ diff --git a/src/renderer/src/components/terminal-pane/remote-pane-layout-push.ts b/src/renderer/src/components/terminal-pane/remote-pane-layout-push.ts index 506bd7ea42f..963d4b78355 100644 --- a/src/renderer/src/components/terminal-pane/remote-pane-layout-push.ts +++ b/src/renderer/src/components/terminal-pane/remote-pane-layout-push.ts @@ -1,4 +1,4 @@ -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' import { terminalLayoutEqual } from '@/lib/terminal-layout-equality' import { updateWebRuntimePaneLayout } from '@/runtime/web-runtime-session' diff --git a/src/renderer/src/components/terminal-pane/terminal-agent-session-continuation.ts b/src/renderer/src/components/terminal-pane/terminal-agent-session-continuation.ts index f9f9a63792b..806197d5323 100644 --- a/src/renderer/src/components/terminal-pane/terminal-agent-session-continuation.ts +++ b/src/renderer/src/components/terminal-pane/terminal-agent-session-continuation.ts @@ -7,7 +7,7 @@ import { import { useAppStore } from '@/store' import { makePaneKey } from '../../../../shared/stable-pane-id' import { isTuiAgent } from '../../../../shared/tui-agent-config' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { translate } from '@/i18n/i18n' type PrepareAgentSessionContinuationFromPaneArgs = { diff --git a/src/renderer/src/components/terminal-pane/terminal-agent-session-fork.ts b/src/renderer/src/components/terminal-pane/terminal-agent-session-fork.ts index 959b4a9a7e4..211c9589b64 100644 --- a/src/renderer/src/components/terminal-pane/terminal-agent-session-fork.ts +++ b/src/renderer/src/components/terminal-pane/terminal-agent-session-fork.ts @@ -11,7 +11,7 @@ import { makePaneKey } from '../../../../shared/stable-pane-id' import { TUI_AGENT_CONFIG } from '../../../../shared/tui-agent-config' import { slugifyForWorkspaceName } from '../../../../shared/workspace-name' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { isWslUncPath } from '../../../../shared/wsl-paths' import type { ProjectExecutionRuntimeResolution } from '../../../../shared/project-execution-runtime' import { getLocalProjectExecutionRuntimeContext } from '@/lib/local-preflight-context' diff --git a/src/renderer/src/components/terminal-pane/terminal-appearance.ts b/src/renderer/src/components/terminal-pane/terminal-appearance.ts index a0d5bff3a04..bb61a50fbbc 100644 --- a/src/renderer/src/components/terminal-pane/terminal-appearance.ts +++ b/src/renderer/src/components/terminal-pane/terminal-appearance.ts @@ -1,6 +1,6 @@ import type { ITheme } from '@xterm/xterm' import type { PaneManager } from '@/lib/pane-manager/pane-manager' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { resolveTerminalFontWeights } from '../../../../shared/terminal-fonts' import { resolveTerminalLigaturesEnabled } from '../../../../shared/terminal-ligatures' import { diff --git a/src/renderer/src/components/terminal-pane/terminal-cold-park-pre-gate-loop.react185.test.tsx b/src/renderer/src/components/terminal-pane/terminal-cold-park-pre-gate-loop.react185.test.tsx index 902c3254557..5f4db2d3878 100644 --- a/src/renderer/src/components/terminal-pane/terminal-cold-park-pre-gate-loop.react185.test.tsx +++ b/src/renderer/src/components/terminal-pane/terminal-cold-park-pre-gate-loop.react185.test.tsx @@ -3,7 +3,8 @@ import { act, StrictMode } from 'react' import type * as ReactModule from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Tab, TabGroup, TerminalTab } from '../../../../shared/types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true diff --git a/src/renderer/src/components/terminal-pane/terminal-cold-park-verdict-loop.test.tsx b/src/renderer/src/components/terminal-pane/terminal-cold-park-verdict-loop.test.tsx index 08fadd307fe..769c7e45c67 100644 --- a/src/renderer/src/components/terminal-pane/terminal-cold-park-verdict-loop.test.tsx +++ b/src/renderer/src/components/terminal-pane/terminal-cold-park-verdict-loop.test.tsx @@ -17,7 +17,7 @@ import { act, useEffect, useRef, useState } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true diff --git a/src/renderer/src/components/terminal-pane/terminal-cold-park-withheld-tabs.test.ts b/src/renderer/src/components/terminal-pane/terminal-cold-park-withheld-tabs.test.ts index a72867e3c22..75ca204c5cd 100644 --- a/src/renderer/src/components/terminal-pane/terminal-cold-park-withheld-tabs.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-cold-park-withheld-tabs.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { ParkVerdictFlipRecord } from './terminal-park-verdict-flip-telemetry' import { withholdUnparkableTerminalTabs } from './terminal-cold-park-withheld-tabs' diff --git a/src/renderer/src/components/terminal-pane/terminal-cold-park-withheld-tabs.ts b/src/renderer/src/components/terminal-pane/terminal-cold-park-withheld-tabs.ts index 35be4446cb5..d35270bd170 100644 --- a/src/renderer/src/components/terminal-pane/terminal-cold-park-withheld-tabs.ts +++ b/src/renderer/src/components/terminal-pane/terminal-cold-park-withheld-tabs.ts @@ -6,7 +6,7 @@ * is returned because it is also the only remaining recheck wakeup once damping * has stopped the churn that was waking the parking effect. */ -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { getParkVerdictUnparkPinUntilMs, type ParkVerdictFlipRecord diff --git a/src/renderer/src/components/terminal-pane/terminal-fit-restore.ts b/src/renderer/src/components/terminal-pane/terminal-fit-restore.ts index 6503d13f58c..685ba20b9c9 100644 --- a/src/renderer/src/components/terminal-pane/terminal-fit-restore.ts +++ b/src/renderer/src/components/terminal-pane/terminal-fit-restore.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { mapWithConcurrency } from '../../../../shared/map-with-concurrency' import { TERMINAL_FIT_RESTORE_DEADLINE_MS } from '../../../../shared/terminal-fit-restore-deadline' import { callRuntimeRpc } from '@/runtime/runtime-rpc-client' diff --git a/src/renderer/src/components/terminal-pane/terminal-hidden-delivery-gate.ts b/src/renderer/src/components/terminal-pane/terminal-hidden-delivery-gate.ts index 0950b05508e..96d6a0eed07 100644 --- a/src/renderer/src/components/terminal-pane/terminal-hidden-delivery-gate.ts +++ b/src/renderer/src/components/terminal-pane/terminal-hidden-delivery-gate.ts @@ -7,7 +7,7 @@ * picks which observer records mode-2031 subscriptions (byte scan vs fact), * so it must never flip per chunk. */ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' // Why: cached once per session — the blocking read should only ever run on // the pre-hydration startup path, never per pane bind. diff --git a/src/renderer/src/components/terminal-pane/terminal-hidden-view-parking.ts b/src/renderer/src/components/terminal-pane/terminal-hidden-view-parking.ts index 2efcff11f4d..a6aa4d676a7 100644 --- a/src/renderer/src/components/terminal-pane/terminal-hidden-view-parking.ts +++ b/src/renderer/src/components/terminal-pane/terminal-hidden-view-parking.ts @@ -3,7 +3,7 @@ import { getRemoteRuntimePtyEnvironmentId } from '@/runtime/runtime-terminal-str import { PTY_SESSION_ID_SEPARATOR } from '../../../../shared/pty-session-id-format' import { TERMINAL_PAIRED_PARKING_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version' import { parseAppSshPtyId } from '../../../../shared/ssh-pty-id' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' // Why: cold-park hysteresis keeps a hidden pane mounted for 30s so quick tab // flips never pay a re-hydrate; hot-retain keeps a bounded recently-visible diff --git a/src/renderer/src/components/terminal-pane/terminal-hidden-worktree-retention.ts b/src/renderer/src/components/terminal-pane/terminal-hidden-worktree-retention.ts index 856f976cce0..105ca4fd43e 100644 --- a/src/renderer/src/components/terminal-pane/terminal-hidden-worktree-retention.ts +++ b/src/renderer/src/components/terminal-pane/terminal-hidden-worktree-retention.ts @@ -8,7 +8,7 @@ import { type ColdParkRetainCandidate, type TerminalColdParkPolicyOverrides } from './terminal-hidden-view-parking' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' // Why these sizes: a retained hidden pane costs a measured ~2.5MB of V8 heap // at the 5k-row default scrollback and ~19MB at 50k (plus per-pane queues), diff --git a/src/renderer/src/components/terminal-pane/terminal-keyboard-protocol-pane-agent.ts b/src/renderer/src/components/terminal-pane/terminal-keyboard-protocol-pane-agent.ts index 89fb02cbd67..674d0620c1b 100644 --- a/src/renderer/src/components/terminal-pane/terminal-keyboard-protocol-pane-agent.ts +++ b/src/renderer/src/components/terminal-pane/terminal-keyboard-protocol-pane-agent.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' type PaneKeyboardProtocolStartup = { launchAgent?: TuiAgent diff --git a/src/renderer/src/components/terminal-pane/terminal-layout-leaf-detach.test.ts b/src/renderer/src/components/terminal-pane/terminal-layout-leaf-detach.test.ts index 782113e1641..8a610702558 100644 --- a/src/renderer/src/components/terminal-pane/terminal-layout-leaf-detach.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-layout-leaf-detach.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' import { detachTerminalLayoutLeaf } from './terminal-layout-leaf-detach' const LEAF_1 = '11111111-1111-4111-8111-111111111111' diff --git a/src/renderer/src/components/terminal-pane/terminal-layout-leaf-detach.ts b/src/renderer/src/components/terminal-pane/terminal-layout-leaf-detach.ts index 7ca537b014d..4287e4eeee2 100644 --- a/src/renderer/src/components/terminal-pane/terminal-layout-leaf-detach.ts +++ b/src/renderer/src/components/terminal-pane/terminal-layout-leaf-detach.ts @@ -1,4 +1,7 @@ -import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode } from '../../../../shared/types' +import type { + TerminalLayoutSnapshot, + TerminalPaneLayoutNode +} from '../../../../shared/terminal-tab-types' import { collectLeafIdsInOrder, normalizeTerminalLayoutSnapshot, diff --git a/src/renderer/src/components/terminal-pane/terminal-layout-leaf-ids.test.ts b/src/renderer/src/components/terminal-pane/terminal-layout-leaf-ids.test.ts index 5f05376fd58..187f0a0d081 100644 --- a/src/renderer/src/components/terminal-pane/terminal-layout-leaf-ids.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-layout-leaf-ids.test.ts @@ -1,5 +1,8 @@ import { describe, expect, it } from 'vitest' -import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode } from '../../../../shared/types' +import type { + TerminalLayoutSnapshot, + TerminalPaneLayoutNode +} from '../../../../shared/terminal-tab-types' import { normalizeTerminalLayoutSnapshot, resolvePtyBoundActiveLeafId, diff --git a/src/renderer/src/components/terminal-pane/terminal-layout-leaf-ids.ts b/src/renderer/src/components/terminal-pane/terminal-layout-leaf-ids.ts index 9f21c39056b..37870c03d70 100644 --- a/src/renderer/src/components/terminal-pane/terminal-layout-leaf-ids.ts +++ b/src/renderer/src/components/terminal-pane/terminal-layout-leaf-ids.ts @@ -1,4 +1,7 @@ -import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode } from '../../../../shared/types' +import type { + TerminalLayoutSnapshot, + TerminalPaneLayoutNode +} from '../../../../shared/terminal-tab-types' import { isTerminalLeafId, type TerminalLeafId } from '../../../../shared/stable-pane-id' import { mintStablePaneId } from '@/lib/pane-manager/mint-stable-pane-id' import { normalizeTerminalLayoutPtyOwnership } from './terminal-layout-pty-ownership' diff --git a/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership-depth.test.ts b/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership-depth.test.ts index a7e3fa4fc5a..a22eb50b97f 100644 --- a/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership-depth.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership-depth.test.ts @@ -1,5 +1,5 @@ import { expect, it } from 'vitest' -import type { TerminalPaneLayoutNode } from '../../../../shared/types' +import type { TerminalPaneLayoutNode } from '../../../../shared/terminal-tab-types' import { normalizeTerminalLayoutPtyOwnership } from './terminal-layout-pty-ownership' it('prunes deeply nested duplicate ownership without recursive stack growth', () => { diff --git a/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership.test.ts b/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership.test.ts index 92a0def1df1..ddacb05ccd8 100644 --- a/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' import { normalizeTerminalLayoutSnapshot } from './terminal-layout-leaf-ids' import { normalizeTerminalLayoutPtyOwnership } from './terminal-layout-pty-ownership' diff --git a/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership.ts b/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership.ts index 4c44c3e6ead..3687621f151 100644 --- a/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership.ts +++ b/src/renderer/src/components/terminal-pane/terminal-layout-pty-ownership.ts @@ -1,4 +1,5 @@ -import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' +import { collectLeafIds, pruneLeaves } from './terminal-pane-layout-tree' type TerminalLayoutPtyOwnershipNormalization = { snapshot: TerminalLayoutSnapshot @@ -10,68 +11,6 @@ type DuplicatePtyLeafReplacements = { retainedLeafIdByRemovedLeafId: Map } -function collectLeafIds(node: TerminalPaneLayoutNode | null | undefined): string[] { - if (!node) { - return [] - } - const leafIds: string[] = [] - const pending = [node] - while (pending.length > 0) { - const current = pending.pop()! - if (current.type === 'leaf') { - leafIds.push(current.leafId) - continue - } - pending.push(current.second, current.first) - } - return leafIds -} - -function pruneLeaves( - node: TerminalPaneLayoutNode, - retainedLeafIdByRemovedLeafId: ReadonlyMap, - retainedSelfLeafIds: Set -): TerminalPaneLayoutNode | null { - const pending: { node: TerminalPaneLayoutNode; visited: boolean }[] = [{ node, visited: false }] - const pruned: (TerminalPaneLayoutNode | null)[] = [] - while (pending.length > 0) { - const current = pending.pop()! - if (current.node.type === 'leaf') { - const retainedLeafId = retainedLeafIdByRemovedLeafId.get(current.node.leafId) - if (!retainedLeafId) { - pruned.push(current.node) - } else if ( - retainedLeafId === current.node.leafId && - !retainedSelfLeafIds.has(current.node.leafId) - ) { - retainedSelfLeafIds.add(current.node.leafId) - pruned.push(current.node) - } else { - pruned.push(null) - } - continue - } - if (!current.visited) { - pending.push({ node: current.node, visited: true }) - pending.push({ node: current.node.second, visited: false }) - pending.push({ node: current.node.first, visited: false }) - continue - } - const second = pruned.pop() ?? null - const first = pruned.pop() ?? null - if (first && second) { - pruned.push( - first === current.node.first && second === current.node.second - ? current.node - : { ...current.node, first, second } - ) - } else { - pruned.push(first ?? second) - } - } - return pruned[0] ?? null -} - function resolveRetainedLeafId( leafId: string, retainedLeafIdByRemovedLeafId: ReadonlyMap diff --git a/src/renderer/src/components/terminal-pane/terminal-live-layout-reconciliation.test.ts b/src/renderer/src/components/terminal-pane/terminal-live-layout-reconciliation.test.ts index 50b51941701..06b321d0d04 100644 --- a/src/renderer/src/components/terminal-pane/terminal-live-layout-reconciliation.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-live-layout-reconciliation.test.ts @@ -3,7 +3,7 @@ import { isHostAuthoritativeLayout, planTerminalLiveLayoutInsertions } from './terminal-live-layout-reconciliation' -import type { TerminalPaneLayoutNode } from '../../../../shared/types' +import type { TerminalPaneLayoutNode } from '../../../../shared/terminal-tab-types' const LOCAL_PTY = 'pty-local-123' const REMOTE_PTY = 'remote:env-1@@term_abc' diff --git a/src/renderer/src/components/terminal-pane/terminal-live-layout-reconciliation.ts b/src/renderer/src/components/terminal-pane/terminal-live-layout-reconciliation.ts index 152c90f82e1..7de00009a73 100644 --- a/src/renderer/src/components/terminal-pane/terminal-live-layout-reconciliation.ts +++ b/src/renderer/src/components/terminal-pane/terminal-live-layout-reconciliation.ts @@ -1,4 +1,7 @@ -import type { TerminalPaneLayoutNode, TerminalPaneSplitDirection } from '../../../../shared/types' +import type { + TerminalPaneLayoutNode, + TerminalPaneSplitDirection +} from '../../../../shared/terminal-tab-types' import { isRemoteRuntimePtyId } from '@/runtime/runtime-terminal-inspection' /** diff --git a/src/renderer/src/components/terminal-pane/terminal-notification-pane-visibility.ts b/src/renderer/src/components/terminal-pane/terminal-notification-pane-visibility.ts index ac4eb9717d0..00166365084 100644 --- a/src/renderer/src/components/terminal-pane/terminal-notification-pane-visibility.ts +++ b/src/renderer/src/components/terminal-pane/terminal-notification-pane-visibility.ts @@ -1,5 +1,5 @@ import { parsePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' type NotificationPaneVisibilityState = { activeWorktreeId: string | null diff --git a/src/renderer/src/components/terminal-pane/terminal-notification-state.ts b/src/renderer/src/components/terminal-pane/terminal-notification-state.ts index a14b5b8e39e..ac2d1c6d227 100644 --- a/src/renderer/src/components/terminal-pane/terminal-notification-state.ts +++ b/src/renderer/src/components/terminal-pane/terminal-notification-state.ts @@ -3,7 +3,7 @@ import type { useAppStore } from '@/store' import { getWorktreeMapFromState } from '@/store/selectors' import { AGENT_STATUS_STALE_AFTER_MS } from '../../../../shared/agent-status-types' import { parsePaneKey } from '../../../../shared/stable-pane-id' -import type { TerminalPaneLayoutNode } from '../../../../shared/types' +import type { TerminalPaneLayoutNode } from '../../../../shared/terminal-tab-types' type StoreSnapshot = ReturnType diff --git a/src/renderer/src/components/terminal-pane/terminal-pane-close-identity.ts b/src/renderer/src/components/terminal-pane/terminal-pane-close-identity.ts index 2325241098f..4d0487b5bad 100644 --- a/src/renderer/src/components/terminal-pane/terminal-pane-close-identity.ts +++ b/src/renderer/src/components/terminal-pane/terminal-pane-close-identity.ts @@ -1,4 +1,4 @@ -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' export function shouldClearLaunchAgentForClosedPane( tab: Pick | null | undefined, diff --git a/src/renderer/src/components/terminal-pane/terminal-pane-layout-tree.ts b/src/renderer/src/components/terminal-pane/terminal-pane-layout-tree.ts new file mode 100644 index 00000000000..5e36a9904ba --- /dev/null +++ b/src/renderer/src/components/terminal-pane/terminal-pane-layout-tree.ts @@ -0,0 +1,63 @@ +import type { TerminalPaneLayoutNode } from '../../../../shared/terminal-tab-types' + +export function collectLeafIds(node: TerminalPaneLayoutNode | null | undefined): string[] { + if (!node) { + return [] + } + const leafIds: string[] = [] + const pending = [node] + while (pending.length > 0) { + const current = pending.pop()! + if (current.type === 'leaf') { + leafIds.push(current.leafId) + continue + } + pending.push(current.second, current.first) + } + return leafIds +} + +export function pruneLeaves( + node: TerminalPaneLayoutNode, + retainedLeafIdByRemovedLeafId: ReadonlyMap, + retainedSelfLeafIds: Set +): TerminalPaneLayoutNode | null { + const pending: { node: TerminalPaneLayoutNode; visited: boolean }[] = [{ node, visited: false }] + const pruned: (TerminalPaneLayoutNode | null)[] = [] + while (pending.length > 0) { + const current = pending.pop()! + if (current.node.type === 'leaf') { + const retainedLeafId = retainedLeafIdByRemovedLeafId.get(current.node.leafId) + if (!retainedLeafId) { + pruned.push(current.node) + } else if ( + retainedLeafId === current.node.leafId && + !retainedSelfLeafIds.has(current.node.leafId) + ) { + retainedSelfLeafIds.add(current.node.leafId) + pruned.push(current.node) + } else { + pruned.push(null) + } + continue + } + if (!current.visited) { + pending.push({ node: current.node, visited: true }) + pending.push({ node: current.node.second, visited: false }) + pending.push({ node: current.node.first, visited: false }) + continue + } + const second = pruned.pop() ?? null + const first = pruned.pop() ?? null + if (first && second) { + pruned.push( + first === current.node.first && second === current.node.second + ? current.node + : { ...current.node, first, second } + ) + } else { + pruned.push(first ?? second) + } + } + return pruned[0] ?? null +} diff --git a/src/renderer/src/components/terminal-pane/terminal-pane-tab-detach.test.ts b/src/renderer/src/components/terminal-pane/terminal-pane-tab-detach.test.ts index 8cfbc886925..d421ca04102 100644 --- a/src/renderer/src/components/terminal-pane/terminal-pane-tab-detach.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-pane-tab-detach.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import type { AppState } from '@/store' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' import { detachTerminalPaneToTab, resolveTerminalTabStripDropTarget, diff --git a/src/renderer/src/components/terminal-pane/terminal-pane-tab-detach.ts b/src/renderer/src/components/terminal-pane/terminal-pane-tab-detach.ts index f6cac5c5aca..0d8f7d72de9 100644 --- a/src/renderer/src/components/terminal-pane/terminal-pane-tab-detach.ts +++ b/src/renderer/src/components/terminal-pane/terminal-pane-tab-detach.ts @@ -1,6 +1,6 @@ import type { PaneExternalDropTarget } from '@/lib/pane-manager/pane-manager' import type { AppState } from '@/store' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { detachTerminalLayoutLeaf } from './terminal-layout-leaf-detach' const TAB_GROUP_STRIP_SELECTOR = '[data-tab-group-strip-id][data-worktree-id]' diff --git a/src/renderer/src/components/terminal-pane/terminal-parked-watcher-reconciliation.ts b/src/renderer/src/components/terminal-pane/terminal-parked-watcher-reconciliation.ts index 5376cb9ed13..0b2939aade8 100644 --- a/src/renderer/src/components/terminal-pane/terminal-parked-watcher-reconciliation.ts +++ b/src/renderer/src/components/terminal-pane/terminal-parked-watcher-reconciliation.ts @@ -1,4 +1,4 @@ -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { useAppStore } from '@/store' import { collectLeafIdsInOrder, diff --git a/src/renderer/src/components/terminal-pane/terminal-quick-command-dispatch.ts b/src/renderer/src/components/terminal-pane/terminal-quick-command-dispatch.ts index e8e96e8e58c..39d49d02c86 100644 --- a/src/renderer/src/components/terminal-pane/terminal-quick-command-dispatch.ts +++ b/src/renderer/src/components/terminal-pane/terminal-quick-command-dispatch.ts @@ -1,4 +1,4 @@ -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import { buildTerminalQuickCommandInput, flattenTerminalQuickCommand, diff --git a/src/renderer/src/components/terminal-pane/terminal-renderer-policy.ts b/src/renderer/src/components/terminal-pane/terminal-renderer-policy.ts index f6d225dcd09..4ae94968f75 100644 --- a/src/renderer/src/components/terminal-pane/terminal-renderer-policy.ts +++ b/src/renderer/src/components/terminal-pane/terminal-renderer-policy.ts @@ -1,6 +1,6 @@ import { isGeminiTerminalTitle } from '@/lib/agent-status' import type { AgentType } from '../../../../shared/agent-status-types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' export type TerminalGpuAccelerationMode = GlobalSettings['terminalGpuAcceleration'] diff --git a/src/renderer/src/components/terminal-pane/terminal-shutdown-layout-capture.test.ts b/src/renderer/src/components/terminal-pane/terminal-shutdown-layout-capture.test.ts index dcbf3782f4b..9e2b375939c 100644 --- a/src/renderer/src/components/terminal-pane/terminal-shutdown-layout-capture.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-shutdown-layout-capture.test.ts @@ -1,6 +1,6 @@ import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest' import { TERMINAL_SCROLLBACK_SESSION_BUFFER_BYTE_LIMIT } from '../../../../shared/terminal-scrollback-limits' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' import { getUtf8ByteLength } from '../../../../shared/utf8-byte-limits' const LEAF_ID = '11111111-1111-4111-8111-111111111111' as const diff --git a/src/renderer/src/components/terminal-pane/terminal-shutdown-layout-capture.ts b/src/renderer/src/components/terminal-pane/terminal-shutdown-layout-capture.ts index 006a76b913f..f43d8026bd0 100644 --- a/src/renderer/src/components/terminal-pane/terminal-shutdown-layout-capture.ts +++ b/src/renderer/src/components/terminal-pane/terminal-shutdown-layout-capture.ts @@ -1,4 +1,4 @@ -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' import type { ManagedPane } from '@/lib/pane-manager/pane-manager' import type { PtyTransport } from './pty-transport' import { flushTerminalOutput } from '@/lib/pane-manager/pane-terminal-output-scheduler' diff --git a/src/renderer/src/components/terminal-pane/terminal-side-effect-facts-handler.ts b/src/renderer/src/components/terminal-pane/terminal-side-effect-facts-handler.ts index 578a4147375..527fbb46b95 100644 --- a/src/renderer/src/components/terminal-pane/terminal-side-effect-facts-handler.ts +++ b/src/renderer/src/components/terminal-pane/terminal-side-effect-facts-handler.ts @@ -12,7 +12,7 @@ * where pre-mount output produces no attention side effects. The one exception * is a PTY whose consumer just unregistered: see the handoff buffer below. */ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { ParsedAgentStatusPayload } from '../../../../shared/agent-status-types' import type { TerminalGitHubPRLink } from '../../../../shared/terminal-github-pr-link-detector' import type { diff --git a/src/renderer/src/components/terminal-pane/terminal-tab-lookup.test.ts b/src/renderer/src/components/terminal-pane/terminal-tab-lookup.test.ts index a31fc9b0ec4..a3f7d7320f1 100644 --- a/src/renderer/src/components/terminal-pane/terminal-tab-lookup.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-tab-lookup.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { getCachedTerminalTabForWorktree } from './terminal-tab-lookup' function makeTab(id: string): TerminalTab { diff --git a/src/renderer/src/components/terminal-pane/terminal-tab-lookup.ts b/src/renderer/src/components/terminal-pane/terminal-tab-lookup.ts index 74447f0a87e..576ad570e00 100644 --- a/src/renderer/src/components/terminal-pane/terminal-tab-lookup.ts +++ b/src/renderer/src/components/terminal-pane/terminal-tab-lookup.ts @@ -1,4 +1,4 @@ -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' const terminalTabLookupByArray = new WeakMap>() diff --git a/src/renderer/src/components/terminal-pane/terminal-tab-park-candidates.ts b/src/renderer/src/components/terminal-pane/terminal-tab-park-candidates.ts index cb0e357b280..527bbac536d 100644 --- a/src/renderer/src/components/terminal-pane/terminal-tab-park-candidates.ts +++ b/src/renderer/src/components/terminal-pane/terminal-tab-park-candidates.ts @@ -1,5 +1,5 @@ /** Builds the stateful per-tab cold-park candidate list. */ -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { TerminalTabColdParkCandidate } from './terminal-hidden-view-parking' import type { TerminalTabActivationOrder } from './terminal-tab-activation-order' diff --git a/src/renderer/src/components/terminal-pane/terminal-unified-tab-lookup.test.ts b/src/renderer/src/components/terminal-pane/terminal-unified-tab-lookup.test.ts index 18872bf04bb..c4eaff387dc 100644 --- a/src/renderer/src/components/terminal-pane/terminal-unified-tab-lookup.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-unified-tab-lookup.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { Tab } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' import { getCachedTerminalGroupIdForWorktree, getCachedUnifiedTerminalTabForWorktree diff --git a/src/renderer/src/components/terminal-pane/terminal-unified-tab-lookup.ts b/src/renderer/src/components/terminal-pane/terminal-unified-tab-lookup.ts index 2113121b29f..11889344b75 100644 --- a/src/renderer/src/components/terminal-pane/terminal-unified-tab-lookup.ts +++ b/src/renderer/src/components/terminal-pane/terminal-unified-tab-lookup.ts @@ -1,4 +1,4 @@ -import type { Tab } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' const terminalTabLookupByUnifiedTabs = new WeakMap>() diff --git a/src/renderer/src/components/terminal-pane/terminal-view-attributes-publisher.ts b/src/renderer/src/components/terminal-pane/terminal-view-attributes-publisher.ts index aeecb1a6f48..f785b59ff12 100644 --- a/src/renderer/src/components/terminal-pane/terminal-view-attributes-publisher.ts +++ b/src/renderer/src/components/terminal-pane/terminal-view-attributes-publisher.ts @@ -9,7 +9,7 @@ * are app-global, so identical snapshots publish once. */ import type { ITheme } from '@xterm/xterm' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { TerminalColorSchemeMode } from '../../../../shared/terminal-color-scheme-protocol' import type { TerminalViewAttributes, diff --git a/src/renderer/src/components/terminal-pane/use-notification-dispatch.test.ts b/src/renderer/src/components/terminal-pane/use-notification-dispatch.test.ts index 1ca3490ef56..0fa4e74dd88 100644 --- a/src/renderer/src/components/terminal-pane/use-notification-dispatch.test.ts +++ b/src/renderer/src/components/terminal-pane/use-notification-dispatch.test.ts @@ -4,7 +4,7 @@ import { AGENT_STATUS_STALE_AFTER_MS, type AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' import { buildAgentNotificationId } from '../../../../shared/agent-notification-id' type MockState = { diff --git a/src/renderer/src/components/terminal-pane/use-parked-terminal-watcher-synchronization.react185.test.tsx b/src/renderer/src/components/terminal-pane/use-parked-terminal-watcher-synchronization.react185.test.tsx index f3ea986601f..5d364aba721 100644 --- a/src/renderer/src/components/terminal-pane/use-parked-terminal-watcher-synchronization.react185.test.tsx +++ b/src/renderer/src/components/terminal-pane/use-parked-terminal-watcher-synchronization.react185.test.tsx @@ -2,7 +2,7 @@ import { act, StrictMode, useEffect } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true diff --git a/src/renderer/src/components/terminal-pane/use-parked-terminal-watcher-synchronization.ts b/src/renderer/src/components/terminal-pane/use-parked-terminal-watcher-synchronization.ts index 1ee7ba8c2d0..ca533cccd88 100644 --- a/src/renderer/src/components/terminal-pane/use-parked-terminal-watcher-synchronization.ts +++ b/src/renderer/src/components/terminal-pane/use-parked-terminal-watcher-synchronization.ts @@ -1,6 +1,6 @@ import { useEffect, useRef } from 'react' import { useShallow } from 'zustand/react/shallow' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' import { useAppStore } from '../../store' import { disposeParkedTerminalWatchersForWorktree, diff --git a/src/renderer/src/components/terminal-pane/use-terminal-pane-context-menu.ts b/src/renderer/src/components/terminal-pane/use-terminal-pane-context-menu.ts index c8264945744..b785d085772 100644 --- a/src/renderer/src/components/terminal-pane/use-terminal-pane-context-menu.ts +++ b/src/renderer/src/components/terminal-pane/use-terminal-pane-context-menu.ts @@ -7,7 +7,7 @@ import type { PtyTransport } from './pty-transport' import { getConnectionId } from '@/lib/connection-context' import { getRuntimeEnvironmentIdForWorktree } from '@/lib/worktree-runtime-owner' import type { PaneCwdMap } from './resolve-split-cwd' -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import { isTerminalAgentQuickCommand } from '../../../../shared/terminal-quick-commands' import { sendTerminalQuickCommandToPane } from './terminal-quick-command-dispatch' import { pasteTerminalText } from './terminal-bracketed-paste' diff --git a/src/renderer/src/components/terminal-pane/use-terminal-pane-lifecycle.ts b/src/renderer/src/components/terminal-pane/use-terminal-pane-lifecycle.ts index 97e6b7f31bd..de5cc7aeadd 100644 --- a/src/renderer/src/components/terminal-pane/use-terminal-pane-lifecycle.ts +++ b/src/renderer/src/components/terminal-pane/use-terminal-pane-lifecycle.ts @@ -57,13 +57,10 @@ import { } from '@/lib/http-link-routing' import { resolveTerminalHttpLinkSourceOwner } from './terminal-http-link-source-owner' import { canOpenWorkspaceBrowserTabOnRuntime } from '@/lib/workspace-browser-tab-open' -import type { - GlobalSettings, - SetupSplitDirection, - TerminalTab, - TerminalLayoutSnapshot, - TuiAgent -} from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../../shared/tui-agent' +import type { SetupSplitDirection } from '../../../../shared/worktree/launch-types' import type { TerminalPaneSplitSource } from '../../../../shared/feature-education-telemetry' import type { EventProps } from '../../../../shared/telemetry-events' import type { StartupCommandDelivery } from '../../../../shared/codex-startup-delivery' diff --git a/src/renderer/src/components/terminal-pane/use-terminal-tab-cold-parking.test.ts b/src/renderer/src/components/terminal-pane/use-terminal-tab-cold-parking.test.ts index 783ff7af574..58f4cbd2c46 100644 --- a/src/renderer/src/components/terminal-pane/use-terminal-tab-cold-parking.test.ts +++ b/src/renderer/src/components/terminal-pane/use-terminal-tab-cold-parking.test.ts @@ -1,7 +1,7 @@ // @vitest-environment happy-dom import { act, renderHook } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' const mocks = vi.hoisted(() => ({ storeState: { diff --git a/src/renderer/src/components/terminal-pane/use-terminal-tab-cold-parking.ts b/src/renderer/src/components/terminal-pane/use-terminal-tab-cold-parking.ts index 94df8daf738..c078eed66c9 100644 --- a/src/renderer/src/components/terminal-pane/use-terminal-tab-cold-parking.ts +++ b/src/renderer/src/components/terminal-pane/use-terminal-tab-cold-parking.ts @@ -7,7 +7,7 @@ * render a slot as null. */ import { useEffect, useMemo, useRef, useState } from 'react' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { useAppStore } from '../../store' import { findActivityTerminalPortal, diff --git a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandAdvancedSection.tsx b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandAdvancedSection.tsx index af196b2c628..cca68ca54aa 100644 --- a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandAdvancedSection.tsx +++ b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandAdvancedSection.tsx @@ -1,6 +1,7 @@ import type { Dispatch, MutableRefObject, SetStateAction } from 'react' import { ChevronDown } from 'lucide-react' -import type { Repo, TerminalQuickCommand } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import type { getTerminalQuickCommandScope } from '../../../../shared/terminal-quick-commands' import { isTerminalAgentQuickCommand } from '../../../../shared/terminal-quick-commands' import { Button } from '@/components/ui/button' diff --git a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandContentSection.tsx b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandContentSection.tsx index 19967b0daba..5402ddb8dc4 100644 --- a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandContentSection.tsx +++ b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandContentSection.tsx @@ -1,5 +1,6 @@ import type { Dispatch, MutableRefObject, SetStateAction } from 'react' -import type { TerminalQuickCommand, TuiAgent } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { isTerminalAgentQuickCommand, supportsTerminalAgentQuickCommand diff --git a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandDialog.test.tsx b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandDialog.test.tsx index 050dc3a1dfa..3b9bd8095e3 100644 --- a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandDialog.test.tsx +++ b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandDialog.test.tsx @@ -3,7 +3,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it, vi } from 'vitest' -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import { TerminalQuickCommandDialog } from './TerminalQuickCommandDialog' const mountedRoots: Root[] = [] diff --git a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandDialog.tsx b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandDialog.tsx index 1c9c615d72d..0e8eadc2ff3 100644 --- a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandDialog.tsx +++ b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandDialog.tsx @@ -1,10 +1,10 @@ import { useRef, useState } from 'react' +import type { Repo } from '../../../../shared/repo-types' import type { - Repo, TerminalQuickCommand, - TerminalQuickCommandScope, - TuiAgent -} from '../../../../shared/types' + TerminalQuickCommandScope +} from '../../../../shared/terminal-quick-command-types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { getTerminalQuickCommandAction, getTerminalQuickCommandScope, diff --git a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandLabelField.tsx b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandLabelField.tsx index a337be4361e..7fb30e8d683 100644 --- a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandLabelField.tsx +++ b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandLabelField.tsx @@ -1,5 +1,5 @@ import type { Dispatch, SetStateAction } from 'react' -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandScopeField.tsx b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandScopeField.tsx index 58cd0ea8fd2..7af1f31b53f 100644 --- a/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandScopeField.tsx +++ b/src/renderer/src/components/terminal-quick-commands/TerminalQuickCommandScopeField.tsx @@ -1,9 +1,9 @@ import type { Dispatch, SetStateAction } from 'react' +import type { Repo } from '../../../../shared/repo-types' import type { - Repo, TerminalQuickCommand, TerminalQuickCommandScope -} from '../../../../shared/types' +} from '../../../../shared/terminal-quick-command-types' import { Label } from '@/components/ui/label' import { Select, diff --git a/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-agent-options.ts b/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-agent-options.ts index c0ad04b4159..82b44ae990a 100644 --- a/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-agent-options.ts +++ b/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-agent-options.ts @@ -1,7 +1,7 @@ import type { AgentCatalogEntry } from '@/lib/agent-catalog' import { getAgentCatalog } from '@/lib/agent-catalog' import { supportsTerminalAgentQuickCommand } from '../../../../shared/terminal-quick-commands' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' const QUICK_COMMAND_AGENT_PRESENTATION_ORDER = [ 'claude', diff --git a/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-dialog-draft.test.ts b/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-dialog-draft.test.ts index d4397d4fd2e..becc121fb15 100644 --- a/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-dialog-draft.test.ts +++ b/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-dialog-draft.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import { createTerminalQuickCommandDialogDraftMemory, switchTerminalQuickCommandDialogAction diff --git a/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-dialog-draft.ts b/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-dialog-draft.ts index ce61efb4d1a..01dc86367c7 100644 --- a/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-dialog-draft.ts +++ b/src/renderer/src/components/terminal-quick-commands/terminal-quick-command-dialog-draft.ts @@ -2,7 +2,8 @@ import { getTerminalQuickCommandScope, isTerminalAgentQuickCommand } from '../../../../shared/terminal-quick-commands' -import type { TerminalQuickCommand, TuiAgent } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' +import type { TuiAgent } from '../../../../shared/tui-agent' export type TerminalQuickCommandDialogAction = 'terminal-command' | 'agent-prompt' diff --git a/src/renderer/src/components/terminal/active-terminal-repair-loop.react185.test.tsx b/src/renderer/src/components/terminal/active-terminal-repair-loop.react185.test.tsx index ab3ff3ac45e..3e8395b1327 100644 --- a/src/renderer/src/components/terminal/active-terminal-repair-loop.react185.test.tsx +++ b/src/renderer/src/components/terminal/active-terminal-repair-loop.react185.test.tsx @@ -3,7 +3,8 @@ import { act, useMemo } from 'react' import { createRoot } from 'react-dom/client' import { afterEach, describe, expect, it } from 'vitest' import { useAppStore } from '@/store' -import type { Tab, TabGroup, TerminalTab } from '../../../../shared/types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { useActiveTerminalRepair } from './use-active-terminal-repair' ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true diff --git a/src/renderer/src/components/terminal/active-terminal-repair.test.ts b/src/renderer/src/components/terminal/active-terminal-repair.test.ts index f62cd0e4da7..4dfb08cf084 100644 --- a/src/renderer/src/components/terminal/active-terminal-repair.test.ts +++ b/src/renderer/src/components/terminal/active-terminal-repair.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { resolveRepairedActiveTerminalTabId, shouldRepairActiveTerminalTab diff --git a/src/renderer/src/components/terminal/active-terminal-repair.ts b/src/renderer/src/components/terminal/active-terminal-repair.ts index 81dc5b2c6d3..539644b6fc8 100644 --- a/src/renderer/src/components/terminal/active-terminal-repair.ts +++ b/src/renderer/src/components/terminal/active-terminal-repair.ts @@ -1,4 +1,5 @@ -import type { TerminalTab, WorkspaceVisibleTabType } from '../../../../shared/types' +import type { WorkspaceVisibleTabType } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' export function shouldRepairActiveTerminalTab(args: { activeTabType: WorkspaceVisibleTabType diff --git a/src/renderer/src/components/terminal/split-group-mount.test.ts b/src/renderer/src/components/terminal/split-group-mount.test.ts index 79316fbe6b1..4a66f6d6f80 100644 --- a/src/renderer/src/components/terminal/split-group-mount.test.ts +++ b/src/renderer/src/components/terminal/split-group-mount.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { getEffectiveLayoutForWorktree, anyMountedWorktreeHasLayout } from './split-group-mount' -import type { TabGroup, TabGroupLayoutNode } from '../../../../shared/types' +import type { TabGroup, TabGroupLayoutNode } from '../../../../shared/tab-types' function makeGroup(id: string, worktreeId: string): TabGroup { return { id, worktreeId, activeTabId: null, tabOrder: [] } diff --git a/src/renderer/src/components/terminal/split-group-mount.ts b/src/renderer/src/components/terminal/split-group-mount.ts index ca10c331bc5..f9fccd56683 100644 --- a/src/renderer/src/components/terminal/split-group-mount.ts +++ b/src/renderer/src/components/terminal/split-group-mount.ts @@ -1,4 +1,4 @@ -import type { TabGroup, TabGroupLayoutNode } from '../../../../shared/types' +import type { TabGroup, TabGroupLayoutNode } from '../../../../shared/tab-types' /** * Derive the effective layout for a worktree: either its explicit layout diff --git a/src/renderer/src/components/terminal/terminal-tab-bulk-actions.ts b/src/renderer/src/components/terminal/terminal-tab-bulk-actions.ts index f9a649eb2ad..3bca59bd476 100644 --- a/src/renderer/src/components/terminal/terminal-tab-bulk-actions.ts +++ b/src/renderer/src/components/terminal/terminal-tab-bulk-actions.ts @@ -1,4 +1,4 @@ -import type { TabContentType } from '../../../../shared/types' +import type { TabContentType } from '../../../../shared/tab-types' import { hasUnroutableTerminalWorktreeOwner, resolveTerminalWorktreeRoute diff --git a/src/renderer/src/components/terminal/use-active-terminal-repair.ts b/src/renderer/src/components/terminal/use-active-terminal-repair.ts index d495c80c330..81197f29fd2 100644 --- a/src/renderer/src/components/terminal/use-active-terminal-repair.ts +++ b/src/renderer/src/components/terminal/use-active-terminal-repair.ts @@ -1,5 +1,6 @@ import { useEffect } from 'react' -import type { TerminalTab, WorkspaceVisibleTabType } from '../../../../shared/types' +import type { WorkspaceVisibleTabType } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { resolveRepairedActiveTerminalTabId } from './active-terminal-repair' type ActiveTerminalRepairInput = { diff --git a/src/renderer/src/components/ui/repo-multi-combobox.test.ts b/src/renderer/src/components/ui/repo-multi-combobox.test.ts index a0a4a747e31..3248e743afc 100644 --- a/src/renderer/src/components/ui/repo-multi-combobox.test.ts +++ b/src/renderer/src/components/ui/repo-multi-combobox.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { getRepoMultiComboboxDetail } from './repo-multi-combobox' function repo(overrides: Partial = {}): Repo { diff --git a/src/renderer/src/components/ui/repo-multi-combobox.tsx b/src/renderer/src/components/ui/repo-multi-combobox.tsx index f3dfef437d0..5af4313ebda 100644 --- a/src/renderer/src/components/ui/repo-multi-combobox.tsx +++ b/src/renderer/src/components/ui/repo-multi-combobox.tsx @@ -11,7 +11,7 @@ import { import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { searchRepos } from '@/lib/repo-search' import { cn } from '@/lib/utils' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import RepoBadgeLabel from '@/components/repo/RepoBadgeLabel' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/components/workspace-cleanup/inactive-workspace-estimate.test.ts b/src/renderer/src/components/workspace-cleanup/inactive-workspace-estimate.test.ts index e2546210158..0cb2b0329d0 100644 --- a/src/renderer/src/components/workspace-cleanup/inactive-workspace-estimate.test.ts +++ b/src/renderer/src/components/workspace-cleanup/inactive-workspace-estimate.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { countEstimatedInactiveWorkspaces } from './inactive-workspace-estimate' const NOW = 1_800_000_000_000 diff --git a/src/renderer/src/components/workspace-cleanup/inactive-workspace-estimate.ts b/src/renderer/src/components/workspace-cleanup/inactive-workspace-estimate.ts index a0103360f5f..23524b5e904 100644 --- a/src/renderer/src/components/workspace-cleanup/inactive-workspace-estimate.ts +++ b/src/renderer/src/components/workspace-cleanup/inactive-workspace-estimate.ts @@ -1,4 +1,5 @@ -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { isFolderRepo } from '../../../../shared/repo-kind' import { getPersistedWorkspaceCleanupActivityAt, diff --git a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-presentation-fixtures.ts b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-presentation-fixtures.ts index 4538c9619c5..17f5f2f7c05 100644 --- a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-presentation-fixtures.ts +++ b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-presentation-fixtures.ts @@ -1,7 +1,8 @@ import type { AppState } from '@/store/types' import { translate } from '@/i18n/i18n' import type { HostedReviewInfo } from '../../../../shared/hosted-review' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { WorkspaceCleanupCandidate } from '../../../../shared/workspace-cleanup' import type { WorkspaceCleanupFilters } from './workspace-cleanup-presentation' diff --git a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-presentation.ts b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-presentation.ts index bfcc64cc0fa..1accef346ca 100644 --- a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-presentation.ts +++ b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-presentation.ts @@ -3,7 +3,8 @@ import { getHostedReviewCacheKey } from '@/store/slices/hosted-review' import type { AppState } from '@/store/types' import { translate } from '@/i18n/i18n' import type { HostedReviewInfo, HostedReviewProvider } from '../../../../shared/hosted-review' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { WorkspaceCleanupCandidate } from '../../../../shared/workspace-cleanup' export type WorkspaceCleanupSortKey = 'activity' | 'name' | 'repo' | 'review' | 'git' diff --git a/src/renderer/src/components/worktree-base-fallback-notice.ts b/src/renderer/src/components/worktree-base-fallback-notice.ts index fc314732b4a..1d31517b224 100644 --- a/src/renderer/src/components/worktree-base-fallback-notice.ts +++ b/src/renderer/src/components/worktree-base-fallback-notice.ts @@ -1,4 +1,4 @@ -import type { WorktreeCreateBaseFallback } from '../../../shared/types' +import type { WorktreeCreateBaseFallback } from '../../../shared/worktree/create-types' const notices: WorktreeCreateBaseFallback[] = [] const listeners = new Set<() => void>() diff --git a/src/renderer/src/components/worktree-jump-palette-interleaved-sections.test.tsx b/src/renderer/src/components/worktree-jump-palette-interleaved-sections.test.tsx index 425522acbb3..7ed47d72512 100644 --- a/src/renderer/src/components/worktree-jump-palette-interleaved-sections.test.tsx +++ b/src/renderer/src/components/worktree-jump-palette-interleaved-sections.test.tsx @@ -4,7 +4,10 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type * as ReactI18Next from 'react-i18next' -import type { Repo, Tab, TabGroup, TerminalTab, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Tab, TabGroup } from '../../../shared/tab-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { useAppStore } from '@/store' import type { AppState } from '@/store/types' import { diff --git a/src/renderer/src/components/worktree-jump-palette-sleeping-filter.test.ts b/src/renderer/src/components/worktree-jump-palette-sleeping-filter.test.ts index 05ac5130e36..a5410ec7dbb 100644 --- a/src/renderer/src/components/worktree-jump-palette-sleeping-filter.test.ts +++ b/src/renderer/src/components/worktree-jump-palette-sleeping-filter.test.ts @@ -2,7 +2,7 @@ import { readFileSync } from 'node:fs' import { join } from 'node:path' import { describe, expect, it } from 'vitest' import { isSleepingSweepExemptWorkspace } from './sidebar/visible-worktrees' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' const source = readFileSync(join(__dirname, 'WorktreeJumpPalette.tsx'), 'utf8') diff --git a/src/renderer/src/components/worktree-jump-palette-test-fixtures.ts b/src/renderer/src/components/worktree-jump-palette-test-fixtures.ts index f707b445d5a..5dfbcdaf6a8 100644 --- a/src/renderer/src/components/worktree-jump-palette-test-fixtures.ts +++ b/src/renderer/src/components/worktree-jump-palette-test-fixtures.ts @@ -1,4 +1,7 @@ -import type { Repo, Tab, TabGroup, TerminalTab, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Tab, TabGroup } from '../../../shared/tab-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { Worktree } from '../../../shared/worktree/types' import type { AgentStatusEntry, AgentStatusState } from '../../../shared/agent-status-types' import { makePaneKey } from '../../../shared/stable-pane-id' import type { AppState } from '@/store/types' diff --git a/src/renderer/src/hooks/direct-ssh-host-hydration.test.ts b/src/renderer/src/hooks/direct-ssh-host-hydration.test.ts index 3f8a00813eb..4aa654cf33a 100644 --- a/src/renderer/src/hooks/direct-ssh-host-hydration.test.ts +++ b/src/renderer/src/hooks/direct-ssh-host-hydration.test.ts @@ -3,7 +3,8 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import type { HostLineageSnapshot } from '../../../shared/host-lineage-contract' import type { HostRepoCatalogSnapshot } from '../../../shared/host-repo-catalog-contract' import type { DirectSshAuthority, SshProviderEpoch } from '../../../shared/ssh-types' -import type { Repo, WorktreeLineage, WorkspaceLineage } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../../shared/worktree/lineage-types' import { folderWorkspaceKey, worktreeWorkspaceKey } from '../../../shared/workspace-scope' import type { AppState } from '../store/types' import { createDirectSshHostHydration } from './direct-ssh-host-hydration' diff --git a/src/renderer/src/hooks/ipc-events-test-harness.ts b/src/renderer/src/hooks/ipc-events-test-harness.ts index e2226460a7b..509aff00b04 100644 --- a/src/renderer/src/hooks/ipc-events-test-harness.ts +++ b/src/renderer/src/hooks/ipc-events-test-harness.ts @@ -1,6 +1,6 @@ import { vi } from 'vitest' import type * as ReactModule from 'react' -import type { TerminalPaneLayoutNode } from '../../../shared/types' +import type { TerminalPaneLayoutNode } from '../../../shared/terminal-tab-types' export type CreateTerminalRequest = { requestId?: string diff --git a/src/renderer/src/hooks/remote-workspace-session-merge.ts b/src/renderer/src/hooks/remote-workspace-session-merge.ts index 0f772ff8794..c5a31073184 100644 --- a/src/renderer/src/hooks/remote-workspace-session-merge.ts +++ b/src/renderer/src/hooks/remote-workspace-session-merge.ts @@ -1,4 +1,5 @@ -import type { TerminalTab, WorkspaceSessionState } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' import { worktreeWorkspaceKey } from '../../../shared/workspace-scope' import { splitWorktreeId } from '../../../shared/worktree/id' import type { AppState } from '../store/types' diff --git a/src/renderer/src/hooks/remote-workspace-target-sync.ts b/src/renderer/src/hooks/remote-workspace-target-sync.ts index 79bc3d9690e..836fd763fc6 100644 --- a/src/renderer/src/hooks/remote-workspace-target-sync.ts +++ b/src/renderer/src/hooks/remote-workspace-target-sync.ts @@ -3,7 +3,7 @@ import type { RemoteWorkspacePatchResult, RemoteWorkspaceSnapshot } from '../../../shared/remote-workspace-types' -import type { WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' import type { DirectSshAuthority } from '../../../shared/ssh-types' import { translate } from '@/i18n/i18n' import { buildWorkspaceSessionPayload } from '../lib/workspace-session' diff --git a/src/renderer/src/hooks/resolve-zoom-target.ts b/src/renderer/src/hooks/resolve-zoom-target.ts index 5e3c2171a3c..cc727f4c8a7 100644 --- a/src/renderer/src/hooks/resolve-zoom-target.ts +++ b/src/renderer/src/hooks/resolve-zoom-target.ts @@ -54,4 +54,4 @@ export function resolveZoomTarget(args: { } return 'ui' } -import type { TopLevelView } from '../../../shared/types' +import type { TopLevelView } from '../../../shared/ui-chrome-types' diff --git a/src/renderer/src/hooks/use-terminal-quick-command-hosts.test.ts b/src/renderer/src/hooks/use-terminal-quick-command-hosts.test.ts index c3014b35d8c..fe14513ecf3 100644 --- a/src/renderer/src/hooks/use-terminal-quick-command-hosts.test.ts +++ b/src/renderer/src/hooks/use-terminal-quick-command-hosts.test.ts @@ -5,7 +5,7 @@ import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../../shared/constants' import type { ExecutionHostId } from '../../../shared/execution-host' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import type { RuntimeTerminalQuickCommands } from '@/store/slices/terminal-quick-command-hosts' const testState = vi.hoisted(() => ({ diff --git a/src/renderer/src/hooks/use-terminal-quick-command-hosts.ts b/src/renderer/src/hooks/use-terminal-quick-command-hosts.ts index df70bb58fdc..28483b4ecb1 100644 --- a/src/renderer/src/hooks/use-terminal-quick-command-hosts.ts +++ b/src/renderer/src/hooks/use-terminal-quick-command-hosts.ts @@ -1,6 +1,7 @@ import { useCallback, useEffect, useMemo } from 'react' import { useShallow } from 'zustand/react/shallow' -import type { GlobalSettings, TerminalQuickCommand } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { TerminalQuickCommand } from '../../../shared/terminal-quick-command-types' import { LOCAL_EXECUTION_HOST_ID, parseExecutionHostId, diff --git a/src/renderer/src/hooks/useAgentDetectionTarget.test.ts b/src/renderer/src/hooks/useAgentDetectionTarget.test.ts index dd8f1b8176c..16cf58acf1f 100644 --- a/src/renderer/src/hooks/useAgentDetectionTarget.test.ts +++ b/src/renderer/src/hooks/useAgentDetectionTarget.test.ts @@ -1,5 +1,7 @@ import { describe, expect, it } from 'vitest' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../../shared/types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { Repo } from '../../../shared/repo-types' import { folderWorkspaceKey } from '../../../shared/workspace-scope' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../shared/constants' import { diff --git a/src/renderer/src/hooks/useAutoAckViewedAgent.ts b/src/renderer/src/hooks/useAutoAckViewedAgent.ts index 1e6052342ba..4e471aa5eed 100644 --- a/src/renderer/src/hooks/useAutoAckViewedAgent.ts +++ b/src/renderer/src/hooks/useAutoAckViewedAgent.ts @@ -2,7 +2,7 @@ import { useEffect } from 'react' import { useAppStore } from '@/store' import type { AgentStatusEntry } from '../../../shared/agent-status-types' import type { RetainedAgentEntry } from '@/store/slices/agent-status' -import type { TerminalLayoutSnapshot } from '../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../shared/terminal-tab-types' import { isTerminalLeafId, makePaneKey, parsePaneKey } from '../../../shared/stable-pane-id' function resolveActiveLeafId( diff --git a/src/renderer/src/hooks/useComposerState.ts b/src/renderer/src/hooks/useComposerState.ts index aa83700baf2..1b26a98dfe5 100644 --- a/src/renderer/src/hooks/useComposerState.ts +++ b/src/renderer/src/hooks/useComposerState.ts @@ -39,26 +39,27 @@ import { normalizeTaskSourceContext, type TaskSourceContext } from '../../../shared/task-source-context' +import type { GitHubRepositoryIdentity } from '../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { GitLabWorkItem } from '../../../shared/gitlab-types' +import type { JiraIssue } from '../../../shared/jira-types' +import type { LinearIssue } from '../../../shared/linear/issue-types' import type { - GitHubRepositoryIdentity, - GitHubWorkItem, - GitHubPrStartPoint, - GitPushTarget, - GitLabWorkItem, - JiraIssue, - LinearIssue, OrcaHooks, RepoHookSettings, SetupAgentStartupPolicy, - SetupDecision, - SetupRunPolicy, - SparsePreset, - TuiAgent, - WorktreeMeta, - WorkspaceStatus, - WorkspaceCreateTelemetrySource, - ProjectGroup -} from '../../../shared/types' + SetupRunPolicy +} from '../../../shared/orca-yaml-hook-types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { TuiAgent } from '../../../shared/tui-agent' +import type { WorkspaceSource as WorkspaceCreateTelemetrySource } from '../../../shared/workspace-source' +import type { SetupDecision, SparsePreset } from '../../../shared/worktree/create-types' +import type { WorktreeMeta } from '../../../shared/worktree/meta-types' +import type { + GitHubPrStartPoint, + GitPushTarget, + WorkspaceStatus +} from '../../../shared/worktree/types' import { githubRepoIdentityKey } from '../../../shared/github/repository-identity-key' import { isWorkspaceStatusId } from '../../../shared/workspace-statuses' import { diff --git a/src/renderer/src/hooks/useDetectedAgents.ts b/src/renderer/src/hooks/useDetectedAgents.ts index 3015e524aa4..284083b287d 100644 --- a/src/renderer/src/hooks/useDetectedAgents.ts +++ b/src/renderer/src/hooks/useDetectedAgents.ts @@ -1,6 +1,6 @@ import { useCallback, useEffect, useRef } from 'react' import { useAppStore } from '@/store' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' export type UseDetectedAgentsResult = { /** Null while detection is in flight on first load. */ diff --git a/src/renderer/src/hooks/useEditorExternalWatch-complexity.test.ts b/src/renderer/src/hooks/useEditorExternalWatch-complexity.test.ts index cfcb973d968..f6e726f5a1f 100644 --- a/src/renderer/src/hooks/useEditorExternalWatch-complexity.test.ts +++ b/src/renderer/src/hooks/useEditorExternalWatch-complexity.test.ts @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type * as EditorAutosaveModule from '@/components/editor/editor-autosave' import type * as CrossPlatformPathModule from '../../../shared/cross-platform-path' -import type { FsChangedPayload } from '../../../shared/types' +import type { FsChangedPayload } from '../../../shared/filesystem-entry-types' const pathOperationCounts = vi.hoisted(() => ({ aliasComparisons: 0, diff --git a/src/renderer/src/hooks/useEditorExternalWatch-self-move.test.ts b/src/renderer/src/hooks/useEditorExternalWatch-self-move.test.ts index a9fbd0e2c61..523e00420ca 100644 --- a/src/renderer/src/hooks/useEditorExternalWatch-self-move.test.ts +++ b/src/renderer/src/hooks/useEditorExternalWatch-self-move.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type * as EditorAutosaveModule from '@/components/editor/editor-autosave' -import type { FsChangedPayload } from '../../../shared/types' +import type { FsChangedPayload } from '../../../shared/filesystem-entry-types' vi.mock('@/store', () => ({ useAppStore: { getState: vi.fn() } diff --git a/src/renderer/src/hooks/useEditorExternalWatch-wsl-repro.test.ts b/src/renderer/src/hooks/useEditorExternalWatch-wsl-repro.test.ts index 256632dfd58..930dc1167f6 100644 --- a/src/renderer/src/hooks/useEditorExternalWatch-wsl-repro.test.ts +++ b/src/renderer/src/hooks/useEditorExternalWatch-wsl-repro.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type * as EditorAutosaveModule from '@/components/editor/editor-autosave' -import type { FsChangedPayload } from '../../../shared/types' +import type { FsChangedPayload } from '../../../shared/filesystem-entry-types' vi.mock('@/store', () => ({ useAppStore: { getState: vi.fn() } })) vi.mock('@/components/editor/editor-autosave', async (importOriginal) => { diff --git a/src/renderer/src/hooks/useEditorExternalWatch.test.ts b/src/renderer/src/hooks/useEditorExternalWatch.test.ts index 891bbc35e4e..c006d2612d5 100644 --- a/src/renderer/src/hooks/useEditorExternalWatch.test.ts +++ b/src/renderer/src/hooks/useEditorExternalWatch.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi, afterEach } from 'vitest' import type * as EditorAutosaveModule from '@/components/editor/editor-autosave' -import type { FsChangedPayload } from '../../../shared/types' +import type { FsChangedPayload } from '../../../shared/filesystem-entry-types' vi.mock('@/store', () => ({ useAppStore: { diff --git a/src/renderer/src/hooks/useEditorExternalWatch.ts b/src/renderer/src/hooks/useEditorExternalWatch.ts index c07f9bd25c1..304390a6b42 100644 --- a/src/renderer/src/hooks/useEditorExternalWatch.ts +++ b/src/renderer/src/hooks/useEditorExternalWatch.ts @@ -22,7 +22,7 @@ import { hasActiveEditorPathMoves, isActiveMoveSourcePath } from '@/components/editor/editor-path-move-inflight' -import type { FsChangedPayload } from '../../../shared/types' +import type { FsChangedPayload } from '../../../shared/filesystem-entry-types' import { findWorktreeById } from '@/store/slices/worktree-helpers' import type { OpenFile } from '@/store/slices/editor' import { readRuntimeFileContent, subscribeRuntimeFileChanges } from '@/runtime/runtime-file-client' diff --git a/src/renderer/src/hooks/useEphemeralVmRecipeOptions.ts b/src/renderer/src/hooks/useEphemeralVmRecipeOptions.ts index 6ebf489f894..3cf47e7a707 100644 --- a/src/renderer/src/hooks/useEphemeralVmRecipeOptions.ts +++ b/src/renderer/src/hooks/useEphemeralVmRecipeOptions.ts @@ -1,6 +1,6 @@ import { useCallback, useEffect, useRef, useState } from 'react' import { LOCAL_EXECUTION_HOST_ID, type ExecutionHostId } from '../../../shared/execution-host' -import type { OrcaVmRecipe } from '../../../shared/types' +import type { OrcaVmRecipe } from '../../../shared/orca-yaml-hook-types' type EphemeralVmRecipeOptionsArgs = { enabled: boolean diff --git a/src/renderer/src/hooks/useGitHubSlugMetadata.ts b/src/renderer/src/hooks/useGitHubSlugMetadata.ts index a268a7bbc93..8b7ab1b4c62 100644 --- a/src/renderer/src/hooks/useGitHubSlugMetadata.ts +++ b/src/renderer/src/hooks/useGitHubSlugMetadata.ts @@ -1,5 +1,6 @@ import { callRuntimeRpc, getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' -import type { GitHubAssignableUser, GlobalSettings } from '../../../shared/types' +import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import type { ListAssignableUsersBySlugResult, ListLabelsBySlugResult diff --git a/src/renderer/src/hooks/useGlobalFileDrop.ts b/src/renderer/src/hooks/useGlobalFileDrop.ts index b151809fd76..1ddc557f49b 100644 --- a/src/renderer/src/hooks/useGlobalFileDrop.ts +++ b/src/renderer/src/hooks/useGlobalFileDrop.ts @@ -12,7 +12,7 @@ import { statRuntimePath, type RuntimeFileOperationArgs } from '@/runtime/runtime-file-client' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' import type { WorktreeRuntimeOwnerState } from '@/lib/worktree-runtime-owner' import { diff --git a/src/renderer/src/hooks/useInstalledAgentSkills.react.test.tsx b/src/renderer/src/hooks/useInstalledAgentSkills.react.test.tsx index 61070599652..3c379e1c1f2 100644 --- a/src/renderer/src/hooks/useInstalledAgentSkills.react.test.tsx +++ b/src/renderer/src/hooks/useInstalledAgentSkills.react.test.tsx @@ -9,7 +9,7 @@ import type { SkillDiscoveryTarget } from '../../../shared/skills' import type { ProjectExecutionRuntimeResolution } from '../../../shared/project-execution-runtime' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { createCompatibleRuntimeStatusResponseIfNeeded } from '@/runtime/runtime-compatibility-test-fixture' import { clearRuntimeCompatibilityCacheForTests } from '@/runtime/runtime-rpc-client' import { useAppStore } from '@/store' diff --git a/src/renderer/src/hooks/useIpcEvents.test.ts b/src/renderer/src/hooks/useIpcEvents.test.ts index 064f816516f..392750fe861 100644 --- a/src/renderer/src/hooks/useIpcEvents.test.ts +++ b/src/renderer/src/hooks/useIpcEvents.test.ts @@ -33,7 +33,8 @@ import type { AgentStatusClearIpcPayload, MigrationUnsupportedPtyEntry } from '../../../shared/agent-status-types' -import type { TerminalPaneLayoutNode, TuiAgent } from '../../../shared/types' +import type { TerminalPaneLayoutNode } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import type * as CmdJRowIndexJump from '@/lib/cmd-j-row-index-jump' import { makePaneKey } from '../../../shared/stable-pane-id' import { folderWorkspaceKey } from '../../../shared/workspace-scope' diff --git a/src/renderer/src/hooks/useIpcEvents.ts b/src/renderer/src/hooks/useIpcEvents.ts index 9ed8d279660..d9f3727232d 100644 --- a/src/renderer/src/hooks/useIpcEvents.ts +++ b/src/renderer/src/hooks/useIpcEvents.ts @@ -28,9 +28,9 @@ import { nextEditorFontZoomLevel, computeEditorFontSize } from '@/lib/editor-fon import { canConnectSshStatus } from '@/ssh/ssh-connection-recoverability' import type { TerminalLayoutSnapshot, - TerminalPaneLayoutNode, - UpdateStatus -} from '../../../shared/types' + TerminalPaneLayoutNode +} from '../../../shared/terminal-tab-types' +import type { UpdateStatus } from '../../../shared/update-status-types' import type { RateLimitState } from '../../../shared/rate-limit-types' import type { DirectSshAuthority, SshConnectionState } from '../../../shared/ssh-types' import { diff --git a/src/renderer/src/hooks/useIssueMetadata.ts b/src/renderer/src/hooks/useIssueMetadata.ts index 8d8a44599ef..3dc10686323 100644 --- a/src/renderer/src/hooks/useIssueMetadata.ts +++ b/src/renderer/src/hooks/useIssueMetadata.ts @@ -6,12 +6,12 @@ import { linearTeamStates, type RuntimeLinearSettings } from '@/runtime/runtime-linear-client' +import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' import type { - GitHubAssignableUser, - LinearWorkflowState, LinearLabel, - LinearMember -} from '../../../shared/types' + LinearMember, + LinearWorkflowState +} from '../../../shared/linear/workspace-types' import { getTaskSourceRuntimeSettings } from '../../../shared/task-source-context' import { unionLinearMetadataById } from '../components/linear-issue-attribute-filter-team-ids' import { diff --git a/src/renderer/src/hooks/useLinearProviderConnected.test.tsx b/src/renderer/src/hooks/useLinearProviderConnected.test.tsx index c10afed44c5..622d6fcd95f 100644 --- a/src/renderer/src/hooks/useLinearProviderConnected.test.tsx +++ b/src/renderer/src/hooks/useLinearProviderConnected.test.tsx @@ -3,7 +3,7 @@ import { act } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, describe, expect, it } from 'vitest' -import type { LinearConnectionStatus } from '../../../shared/types' +import type { LinearConnectionStatus } from '../../../shared/linear/workspace-types' import { getProviderRuntimeContextKey } from '@/lib/provider-runtime-context' import { useAppStore } from '@/store' import { useLinearProviderConnected } from './useLinearProviderConnected' diff --git a/src/renderer/src/hooks/useSettingsNavigationMetadata.capability-owner.test.tsx b/src/renderer/src/hooks/useSettingsNavigationMetadata.capability-owner.test.tsx index 1cb259a8578..fc0e4e04464 100644 --- a/src/renderer/src/hooks/useSettingsNavigationMetadata.capability-owner.test.tsx +++ b/src/renderer/src/hooks/useSettingsNavigationMetadata.capability-owner.test.tsx @@ -4,7 +4,7 @@ import { act, createElement } from 'react' import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../../shared/constants' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import type { SettingsNavSection } from '@/lib/settings-navigation-types' import { resetWindowsTerminalCapabilitiesForTests } from '@/lib/windows-terminal-capabilities' diff --git a/src/renderer/src/hooks/useSettingsNavigationMetadata.test.ts b/src/renderer/src/hooks/useSettingsNavigationMetadata.test.ts index 6008db31856..6cc9f641280 100644 --- a/src/renderer/src/hooks/useSettingsNavigationMetadata.test.ts +++ b/src/renderer/src/hooks/useSettingsNavigationMetadata.test.ts @@ -2,7 +2,7 @@ import { readFileSync } from 'node:fs' import { resolve } from 'node:path' import { describe, expect, it } from 'vitest' import { buildSettingsNavigationMetadata } from './useSettingsNavigationMetadata' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' const repo = { id: 'repo-1', diff --git a/src/renderer/src/hooks/useSettingsNavigationMetadata.ts b/src/renderer/src/hooks/useSettingsNavigationMetadata.ts index c0c85b115ed..77d9a885f7e 100644 --- a/src/renderer/src/hooks/useSettingsNavigationMetadata.ts +++ b/src/renderer/src/hooks/useSettingsNavigationMetadata.ts @@ -39,7 +39,7 @@ import { } from 'lucide-react' import { OrcaLogoSettingsIcon } from '@/components/settings/orca-logo-settings-icon' import { LinearIcon } from '@/components/icons/LinearIcon' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { getRepoKindLabel } from '../../../shared/repo-kind' import { useAppStore } from '@/store' import { isMacUserAgent, isWindowsUserAgent } from '@/components/terminal-pane/pane-helpers' diff --git a/src/renderer/src/hooks/useTaskPageGitHubWorkItemMutation.ts b/src/renderer/src/hooks/useTaskPageGitHubWorkItemMutation.ts index 9b80be9a6c4..24b6a969c68 100644 --- a/src/renderer/src/hooks/useTaskPageGitHubWorkItemMutation.ts +++ b/src/renderer/src/hooks/useTaskPageGitHubWorkItemMutation.ts @@ -2,7 +2,7 @@ import { useCallback, useEffect, useRef, useState } from 'react' import { toast } from 'sonner' import { parseExecutionHostId } from '../../../shared/execution-host' import type { ParsedTaskQuery } from '../../../shared/task-query' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { useAppStore } from '@/store' import { diff --git a/src/renderer/src/hooks/worktree-file-change-event.ts b/src/renderer/src/hooks/worktree-file-change-event.ts index 67c234202bb..1cfe6fca1ae 100644 --- a/src/renderer/src/hooks/worktree-file-change-event.ts +++ b/src/renderer/src/hooks/worktree-file-change-event.ts @@ -1,4 +1,4 @@ -import type { FsChangedPayload } from '../../../shared/types' +import type { FsChangedPayload } from '../../../shared/filesystem-entry-types' export const ORCA_WORKTREE_FILE_CHANGE_EVENT = 'orca:worktree-file-change' diff --git a/src/renderer/src/hooks/worktree-head-identity-apply.test.ts b/src/renderer/src/hooks/worktree-head-identity-apply.test.ts index 3df3e92297e..35028c5fa7f 100644 --- a/src/renderer/src/hooks/worktree-head-identity-apply.test.ts +++ b/src/renderer/src/hooks/worktree-head-identity-apply.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { applyWorktreeHeadIdentities } from './worktree-head-identity-apply' function makeWorktree(overrides: Partial): Worktree { diff --git a/src/renderer/src/hooks/worktree-head-identity-apply.ts b/src/renderer/src/hooks/worktree-head-identity-apply.ts index 29be23b6022..c419b17fcf6 100644 --- a/src/renderer/src/hooks/worktree-head-identity-apply.ts +++ b/src/renderer/src/hooks/worktree-head-identity-apply.ts @@ -1,4 +1,4 @@ -import type { Worktree, WorktreeHeadIdentity } from '../../../shared/types' +import type { Worktree, WorktreeHeadIdentity } from '../../../shared/worktree/types' import { normalizeRuntimePathForComparison } from '../../../shared/cross-platform-path' export type WorktreeHeadIdentityApplyDeps = { diff --git a/src/renderer/src/lib/active-agent-note-send.test.ts b/src/renderer/src/lib/active-agent-note-send.test.ts index 2abcdd0d772..bad9faf7daf 100644 --- a/src/renderer/src/lib/active-agent-note-send.test.ts +++ b/src/renderer/src/lib/active-agent-note-send.test.ts @@ -10,7 +10,7 @@ import { } from './active-agent-note-send' import type { AgentStatusEntry } from '../../../shared/agent-status-types' import { makePaneKey } from '../../../shared/stable-pane-id' -import type { TerminalLayoutSnapshot } from '../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../shared/terminal-tab-types' const LEAF_ID = '11111111-1111-4111-8111-111111111111' const OTHER_LEAF_ID = '22222222-2222-4222-8222-222222222222' diff --git a/src/renderer/src/lib/active-agent-note-target.ts b/src/renderer/src/lib/active-agent-note-target.ts index 326a44dbb0b..dbacc97e4c1 100644 --- a/src/renderer/src/lib/active-agent-note-target.ts +++ b/src/renderer/src/lib/active-agent-note-target.ts @@ -11,7 +11,7 @@ import { } from '@/lib/worktree-runtime-owner' import { toRuntimeWorktreeSelector } from '@/runtime/runtime-worktree-selector' import { isTerminalLeafId, makePaneKey } from '../../../shared/stable-pane-id' -import type { TerminalLayoutSnapshot } from '../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../shared/terminal-tab-types' import { classifyTitleActivity, isExplicitAgentStatusFresh, diff --git a/src/renderer/src/lib/active-view-persist.ts b/src/renderer/src/lib/active-view-persist.ts index 79f965b33aa..dfd77e70b44 100644 --- a/src/renderer/src/lib/active-view-persist.ts +++ b/src/renderer/src/lib/active-view-persist.ts @@ -1,4 +1,5 @@ -import type { PersistedUIState, TopLevelView } from '../../../shared/types' +import type { PersistedUIState } from '../../../shared/persisted-ui-state-types' +import type { TopLevelView } from '../../../shared/ui-chrome-types' type ActiveViewUnloadState = { activeView: TopLevelView diff --git a/src/renderer/src/lib/activity-thread-display.ts b/src/renderer/src/lib/activity-thread-display.ts index f1933a06146..ea6603edeac 100644 --- a/src/renderer/src/lib/activity-thread-display.ts +++ b/src/renderer/src/lib/activity-thread-display.ts @@ -3,7 +3,8 @@ import type { AgentStatusEntry, AgentStatusState } from '../../../shared/agent-status-types' -import type { TerminalTab, Worktree } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { getAgentRowPrimaryText, isOrcaDispatchPrompt, diff --git a/src/renderer/src/lib/agent-background-draft-delivery.ts b/src/renderer/src/lib/agent-background-draft-delivery.ts index 745248f7239..6976745c30d 100644 --- a/src/renderer/src/lib/agent-background-draft-delivery.ts +++ b/src/renderer/src/lib/agent-background-draft-delivery.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { pasteDraftWhenAgentReady } from '@/lib/agent-paste-draft' import { showAutomationPromptNotSentToast } from '@/lib/agent-background-session-timeout-toast' diff --git a/src/renderer/src/lib/agent-background-session-contract.ts b/src/renderer/src/lib/agent-background-session-contract.ts index fe793aa24d3..26145d313dd 100644 --- a/src/renderer/src/lib/agent-background-session-contract.ts +++ b/src/renderer/src/lib/agent-background-session-contract.ts @@ -1,6 +1,6 @@ import type { ParsedAgentStatusPayload } from '../../../shared/agent-status-types' import type { LaunchSource } from '../../../shared/telemetry-events' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import type { AgentStartupPlan } from '@/lib/tui-agent-startup' import type { AutomationTerminalOwnership } from '@/lib/automation-terminal-ownership' diff --git a/src/renderer/src/lib/agent-background-session-timeout-toast.ts b/src/renderer/src/lib/agent-background-session-timeout-toast.ts index d6d2751b38a..71870958fd7 100644 --- a/src/renderer/src/lib/agent-background-session-timeout-toast.ts +++ b/src/renderer/src/lib/agent-background-session-timeout-toast.ts @@ -1,7 +1,7 @@ import { toast } from 'sonner' import { translate } from '@/i18n/i18n' import { track, tuiAgentToAgentKind } from '@/lib/telemetry' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' export function showAutomationPromptNotSentToast(agent: TuiAgent): void { toast.message( diff --git a/src/renderer/src/lib/agent-catalog.tsx b/src/renderer/src/lib/agent-catalog.tsx index ffac60fe4ca..650668bc1a0 100644 --- a/src/renderer/src/lib/agent-catalog.tsx +++ b/src/renderer/src/lib/agent-catalog.tsx @@ -1,7 +1,7 @@ import type React from 'react' import { ClaudeIcon, DroidIcon, OpenAIIcon } from '@/components/status-bar/icons' import openClaudeLogoUrl from '../../../../resources/openclaude-logo.png?url' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { getTuiAgentLaunchCommand, TUI_AGENT_CONFIG } from '../../../shared/tui-agent-config' import { AgentLetterIcon, diff --git a/src/renderer/src/lib/agent-draft-paste-content.ts b/src/renderer/src/lib/agent-draft-paste-content.ts index 526e717de27..a76086b6790 100644 --- a/src/renderer/src/lib/agent-draft-paste-content.ts +++ b/src/renderer/src/lib/agent-draft-paste-content.ts @@ -1,5 +1,5 @@ import { yieldToEventLoop } from '../../../shared/event-loop-yield' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { getUtf8ByteLengthForCodePoint, readUtf8CodePointAt diff --git a/src/renderer/src/lib/agent-draft-readiness.ts b/src/renderer/src/lib/agent-draft-readiness.ts index 248137ab313..8980f1aeb5c 100644 --- a/src/renderer/src/lib/agent-draft-readiness.ts +++ b/src/renderer/src/lib/agent-draft-readiness.ts @@ -1,5 +1,5 @@ import type { DraftPasteReadySignal } from '../../../shared/tui-agent-config' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { subscribeToPtyData } from '@/components/terminal-pane/pty-data-sidecar-subscriptions' import { isRemoteRuntimePtyId } from '@/runtime/runtime-terminal-inspection' import { subscribeToRuntimeTerminalData } from '@/runtime/runtime-terminal-stream' diff --git a/src/renderer/src/lib/agent-favicon-assets.ts b/src/renderer/src/lib/agent-favicon-assets.ts index dd1489e14bd..565437f75be 100644 --- a/src/renderer/src/lib/agent-favicon-assets.ts +++ b/src/renderer/src/lib/agent-favicon-assets.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import grokUrl from '../../../shared/agent-icons/grok.png?url' import mimoCodeUrl from '../../../shared/agent-icons/mimo-code.png?url' import anteUrl from '../../../shared/agent-icons/ante.png?url' diff --git a/src/renderer/src/lib/agent-followup-delivery.ts b/src/renderer/src/lib/agent-followup-delivery.ts index 0042cb0f2e4..bdcf0b4a92f 100644 --- a/src/renderer/src/lib/agent-followup-delivery.ts +++ b/src/renderer/src/lib/agent-followup-delivery.ts @@ -7,7 +7,7 @@ import { isExpectedAgentProcess } from '../../../shared/agent-process-recognition' import { isShellProcess } from '../../../shared/shell-process-detection' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' type RuntimeOwnerSettings = Pick | null | undefined diff --git a/src/renderer/src/lib/agent-hibernation-coordinator.test.ts b/src/renderer/src/lib/agent-hibernation-coordinator.test.ts index e6b7d41951f..f87c59591b6 100644 --- a/src/renderer/src/lib/agent-hibernation-coordinator.test.ts +++ b/src/renderer/src/lib/agent-hibernation-coordinator.test.ts @@ -2,7 +2,7 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, describe, expect, it, vi } from 'vitest' import type { AgentStatusEntry } from '../../../shared/agent-status-types' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' import { useAppStore } from '@/store' import { DEFAULT_AGENT_HIBERNATION_IDLE_MS } from './agent-hibernation-planner' import { diff --git a/src/renderer/src/lib/agent-hibernation-planner.test.ts b/src/renderer/src/lib/agent-hibernation-planner.test.ts index 4c3a550642f..f825fc9758d 100644 --- a/src/renderer/src/lib/agent-hibernation-planner.test.ts +++ b/src/renderer/src/lib/agent-hibernation-planner.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import type { AgentStatusEntry } from '../../../shared/agent-status-types' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' import { DEFAULT_AGENT_HIBERNATION_IDLE_MS, MAX_AGENT_HIBERNATION_IDLE_MS, diff --git a/src/renderer/src/lib/agent-hibernation-planner.ts b/src/renderer/src/lib/agent-hibernation-planner.ts index f5631ffc8ed..c350296d9b3 100644 --- a/src/renderer/src/lib/agent-hibernation-planner.ts +++ b/src/renderer/src/lib/agent-hibernation-planner.ts @@ -7,7 +7,8 @@ import { import { parsePaneKey } from '../../../shared/stable-pane-id' import { lastInputBlocksHibernation } from './agent-hibernation-input-guard' import { isCompletedPiCompatibleAgentWithLiveRecoveryRecord } from './pi-compatible-live-recovery-record' -import type { GlobalSettings, TerminalLayoutSnapshot, TerminalTab } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' import { parseRemoteRuntimePtyId } from '@/runtime/runtime-terminal-stream' export const DEFAULT_AGENT_HIBERNATION_IDLE_MS = 30 * 60 * 1000 diff --git a/src/renderer/src/lib/agent-launch-prompt-delivery.ts b/src/renderer/src/lib/agent-launch-prompt-delivery.ts index de76c6f4d14..87680462cce 100644 --- a/src/renderer/src/lib/agent-launch-prompt-delivery.ts +++ b/src/renderer/src/lib/agent-launch-prompt-delivery.ts @@ -3,7 +3,7 @@ import { pasteDraftWhenAgentReady } from '@/lib/agent-paste-draft' import { canMirrorLaunchDraftToNativeChat } from '@/lib/native-chat-launch-draft-mirrorability' import { isNativeChatSupportedAgent } from '@/lib/native-chat-supported-agent' import { useAppStore } from '@/store' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' /** Seed the chat-composer copy of launch context that reaches only the TUI * input (argv prefill or startup paste). No-op for agents without a diff --git a/src/renderer/src/lib/agent-native-draft-prefill.ts b/src/renderer/src/lib/agent-native-draft-prefill.ts index 797b25e7827..750f68c39ca 100644 --- a/src/renderer/src/lib/agent-native-draft-prefill.ts +++ b/src/renderer/src/lib/agent-native-draft-prefill.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { TUI_AGENT_CONFIG } from '../../../shared/tui-agent-config' // Why: agents with a native draft-prefill flag/env launch with the prompt diff --git a/src/renderer/src/lib/agent-paste-draft.ts b/src/renderer/src/lib/agent-paste-draft.ts index 4e53f4ac102..1275535b93f 100644 --- a/src/renderer/src/lib/agent-paste-draft.ts +++ b/src/renderer/src/lib/agent-paste-draft.ts @@ -1,4 +1,5 @@ -import type { TuiAgent, GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { TUI_AGENT_CONFIG } from '../../../shared/tui-agent-config' import { useAppStore } from '@/store' import { diff --git a/src/renderer/src/lib/agent-session-continuation.ts b/src/renderer/src/lib/agent-session-continuation.ts index 2747f001cfd..3e910fd5d36 100644 --- a/src/renderer/src/lib/agent-session-continuation.ts +++ b/src/renderer/src/lib/agent-session-continuation.ts @@ -1,6 +1,6 @@ import { buildBoundedSessionTranscript } from '@/lib/agent-session-fork-context' import type { LaunchSource } from '../../../shared/telemetry-events' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' export type AgentSessionContinuationContextMode = 'focused' | 'full' diff --git a/src/renderer/src/lib/agent-status-count.test.ts b/src/renderer/src/lib/agent-status-count.test.ts index dac9294b3e3..1bc880af293 100644 --- a/src/renderer/src/lib/agent-status-count.test.ts +++ b/src/renderer/src/lib/agent-status-count.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { TerminalTab, Worktree } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { countWorkingAgents, getWorkingAgentsPerWorktree } from './agent-status' function makeTab(overrides: Partial = {}): TerminalTab { diff --git a/src/renderer/src/lib/agent-status.ts b/src/renderer/src/lib/agent-status.ts index 11d966cb8bf..94933a05bff 100644 --- a/src/renderer/src/lib/agent-status.ts +++ b/src/renderer/src/lib/agent-status.ts @@ -1,4 +1,6 @@ -import type { TerminalTab, TuiAgent, Worktree } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' +import type { Worktree } from '../../../shared/worktree/types' import type { AgentStatusState, AgentType } from '../../../shared/agent-status-types' import { tabHasLivePty } from './tab-has-live-pty' import type { WorktreeStatus } from './worktree-status' diff --git a/src/renderer/src/lib/agent-tab-shortcuts.ts b/src/renderer/src/lib/agent-tab-shortcuts.ts index f3fac9912bd..55995d88064 100644 --- a/src/renderer/src/lib/agent-tab-shortcuts.ts +++ b/src/renderer/src/lib/agent-tab-shortcuts.ts @@ -5,7 +5,7 @@ import { } from '../../../shared/keybindings' import { ALL_TUI_AGENTS } from '../../../shared/tui-agent-display-names' import { normalizeDisabledTuiAgents, pickTuiAgent } from '../../../shared/tui-agent-selection' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' export type BoundAgentTabAction = { agent: TuiAgent diff --git a/src/renderer/src/lib/ai-vault-resume-target.ts b/src/renderer/src/lib/ai-vault-resume-target.ts index 2cab097ca3d..fffc0c8c4bd 100644 --- a/src/renderer/src/lib/ai-vault-resume-target.ts +++ b/src/renderer/src/lib/ai-vault-resume-target.ts @@ -6,7 +6,7 @@ import { toSshExecutionHostId, type ExecutionHostId } from '../../../shared/execution-host' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { getRepoIdFromWorktreeId } from '../../../shared/worktree/id' import { parseWorkspaceKey } from '../../../shared/workspace-scope' import { isWslUncPath } from '../../../shared/wsl-paths' diff --git a/src/renderer/src/lib/ai-vault-tab-title-requests.ts b/src/renderer/src/lib/ai-vault-tab-title-requests.ts index a5a6de5bdd9..1efeb48e001 100644 --- a/src/renderer/src/lib/ai-vault-tab-title-requests.ts +++ b/src/renderer/src/lib/ai-vault-tab-title-requests.ts @@ -4,7 +4,7 @@ import type { AiVaultSessionTitle } from '../../../shared/ai-vault-session-title import { isAiVaultTitleAgent } from '../../../shared/ai-vault-session-title' import type { ExecutionHostId } from '../../../shared/execution-host' import { parsePaneKey } from '../../../shared/stable-pane-id' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { getExecutionHostIdForWorktree } from '@/lib/worktree-runtime-owner' import type { AppState } from '@/store/types' diff --git a/src/renderer/src/lib/ai-vault-tab-title-sync-inputs.ts b/src/renderer/src/lib/ai-vault-tab-title-sync-inputs.ts index 5693b57cdd3..569d79b0dc8 100644 --- a/src/renderer/src/lib/ai-vault-tab-title-sync-inputs.ts +++ b/src/renderer/src/lib/ai-vault-tab-title-sync-inputs.ts @@ -1,6 +1,6 @@ import type { AgentProviderSessionMetadata } from '../../../shared/agent-session-resume' import { isAiVaultTitleAgent } from '../../../shared/ai-vault-session-title' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { getExecutionHostIdForWorktree } from '@/lib/worktree-runtime-owner' import type { AppState } from '@/store/types' import { collectAiVaultTitleRequests } from './ai-vault-tab-title-requests' diff --git a/src/renderer/src/lib/ai-vault-tab-title-sync.test.ts b/src/renderer/src/lib/ai-vault-tab-title-sync.test.ts index 26cecdd0014..a062b9df906 100644 --- a/src/renderer/src/lib/ai-vault-tab-title-sync.test.ts +++ b/src/renderer/src/lib/ai-vault-tab-title-sync.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest' import type { AiVaultSessionTitlesResult } from '../../../shared/ai-vault-session-title' import { resolveTerminalTabTitle } from '../../../shared/tab-title-resolution' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { collectAiVaultTitleRequests, type AiVaultTitleRequest diff --git a/src/renderer/src/lib/automation-session-reuse.ts b/src/renderer/src/lib/automation-session-reuse.ts index 0d5c22049d6..0672a86872a 100644 --- a/src/renderer/src/lib/automation-session-reuse.ts +++ b/src/renderer/src/lib/automation-session-reuse.ts @@ -1,6 +1,6 @@ import type { AgentStatusEntry } from '../../../shared/agent-status-types' import type { AutomationRun } from '../../../shared/automations-types' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { parsePaneKey } from '../../../shared/stable-pane-id' import type { AppState } from '@/store/types' diff --git a/src/renderer/src/lib/automation-terminal-ownership.ts b/src/renderer/src/lib/automation-terminal-ownership.ts index 1cf0c9a4742..9b6ec37d77b 100644 --- a/src/renderer/src/lib/automation-terminal-ownership.ts +++ b/src/renderer/src/lib/automation-terminal-ownership.ts @@ -1,6 +1,6 @@ import { useAppStore } from '@/store' import type { AppState } from '@/store/types' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { parsePaneKey } from '../../../shared/stable-pane-id' import { singlePaneLayoutSnapshot } from '@/store/slices/terminal-helpers' import { readLastTerminalInputAt } from './terminal-input-activity-coalescing' diff --git a/src/renderer/src/lib/browser-cookie-import-toast.test.ts b/src/renderer/src/lib/browser-cookie-import-toast.test.ts index 40f2800102e..3479887b419 100644 --- a/src/renderer/src/lib/browser-cookie-import-toast.test.ts +++ b/src/renderer/src/lib/browser-cookie-import-toast.test.ts @@ -9,7 +9,7 @@ vi.mock('sonner', () => ({ toast: { success: successToastMock, warning: warningToastMock } })) -import type { BrowserCookieImportSummary } from '../../../shared/types' +import type { BrowserCookieImportSummary } from '../../../shared/browser-workspace-types' import { emitBrowserCookieImportToast } from './browser-cookie-import-toast' const summary: BrowserCookieImportSummary = { diff --git a/src/renderer/src/lib/browser-cookie-import-toast.ts b/src/renderer/src/lib/browser-cookie-import-toast.ts index ced4c3cfdbd..9e18e3c96c8 100644 --- a/src/renderer/src/lib/browser-cookie-import-toast.ts +++ b/src/renderer/src/lib/browser-cookie-import-toast.ts @@ -1,5 +1,5 @@ import { toast } from 'sonner' -import type { BrowserCookieImportSummary } from '../../../shared/types' +import type { BrowserCookieImportSummary } from '../../../shared/browser-workspace-types' import { translate } from '@/i18n/i18n' type CookieImportWarning = NonNullable diff --git a/src/renderer/src/lib/browser-page-palette-activation.test.ts b/src/renderer/src/lib/browser-page-palette-activation.test.ts index d2264698c02..97dbf66ef77 100644 --- a/src/renderer/src/lib/browser-page-palette-activation.test.ts +++ b/src/renderer/src/lib/browser-page-palette-activation.test.ts @@ -1,14 +1,10 @@ // @vitest-environment happy-dom import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { - BrowserPage, - BrowserWorkspace, - FolderWorkspace, - Tab, - TabGroup, - Worktree -} from '../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../shared/browser-workspace-types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { Tab, TabGroup } from '../../../shared/tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { ORCA_BROWSER_BLANK_URL } from '../../../shared/constants' import { folderWorkspaceKey } from '../../../shared/workspace-scope' import { useAppStore } from '@/store' diff --git a/src/renderer/src/lib/browser-palette-page-entries.test.ts b/src/renderer/src/lib/browser-palette-page-entries.test.ts index 6fefc35b51b..f367ac85e73 100644 --- a/src/renderer/src/lib/browser-palette-page-entries.test.ts +++ b/src/renderer/src/lib/browser-palette-page-entries.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { BrowserPage, BrowserWorkspace, Worktree } from '../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../shared/browser-workspace-types' +import type { Worktree } from '../../../shared/worktree/types' import { buildSearchableBrowserPages } from './browser-palette-page-entries' import { searchBrowserPages } from './browser-palette-search' diff --git a/src/renderer/src/lib/browser-palette-page-entries.ts b/src/renderer/src/lib/browser-palette-page-entries.ts index 05e30a0d806..226180597ef 100644 --- a/src/renderer/src/lib/browser-palette-page-entries.ts +++ b/src/renderer/src/lib/browser-palette-page-entries.ts @@ -1,4 +1,5 @@ -import type { BrowserPage, BrowserWorkspace, Worktree } from '../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../shared/browser-workspace-types' +import type { Worktree } from '../../../shared/worktree/types' import type { SearchableBrowserPage } from './browser-palette-search' type BrowserPaletteActiveTabType = 'browser' | 'editor' | 'terminal' | 'simulator' diff --git a/src/renderer/src/lib/browser-palette-search.test.ts b/src/renderer/src/lib/browser-palette-search.test.ts index 23cf0196984..2eb66623abd 100644 --- a/src/renderer/src/lib/browser-palette-search.test.ts +++ b/src/renderer/src/lib/browser-palette-search.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { BrowserPage, BrowserWorkspace, Worktree } from '../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../shared/browser-workspace-types' +import type { Worktree } from '../../../shared/worktree/types' import { BROWSER_PALETTE_QUERY_MAX_BYTES, searchBrowserPages, diff --git a/src/renderer/src/lib/browser-palette-search.ts b/src/renderer/src/lib/browser-palette-search.ts index 7c76e9f9ead..4bcb044fb5e 100644 --- a/src/renderer/src/lib/browser-palette-search.ts +++ b/src/renderer/src/lib/browser-palette-search.ts @@ -1,5 +1,6 @@ import { ORCA_BROWSER_BLANK_URL } from '../../../shared/constants' -import type { BrowserPage, BrowserWorkspace, Worktree } from '../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../shared/browser-workspace-types' +import type { Worktree } from '../../../shared/worktree/types' import { isClipboardTextByteLengthOverLimit } from '../../../shared/clipboard-text' import { compareBaseSensitivityLocaleText } from './locale-text-collators' import { resolveWorktreeDisplayName } from './worktree-default-display-name' diff --git a/src/renderer/src/lib/cmd-j-github-url-lookup.test.ts b/src/renderer/src/lib/cmd-j-github-url-lookup.test.ts index 82b533c859d..790122e0d2f 100644 --- a/src/renderer/src/lib/cmd-j-github-url-lookup.test.ts +++ b/src/renderer/src/lib/cmd-j-github-url-lookup.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { GitHubWorkItem } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' const { lookupGitHubWorkItemByOwnerRepoForSource } = vi.hoisted(() => ({ lookupGitHubWorkItemByOwnerRepoForSource: vi.fn() diff --git a/src/renderer/src/lib/cmd-j-github-url-lookup.ts b/src/renderer/src/lib/cmd-j-github-url-lookup.ts index ba7fcc03d5a..260e74afa7c 100644 --- a/src/renderer/src/lib/cmd-j-github-url-lookup.ts +++ b/src/renderer/src/lib/cmd-j-github-url-lookup.ts @@ -1,5 +1,6 @@ import type { GitHubIssueOrPRLink } from '../../../shared/github/links' -import type { GitHubWorkItem, Repo } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { Repo } from '../../../shared/repo-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { lookupGitHubWorkItemByOwnerRepoForSource } from './github-work-item-source-lookup' diff --git a/src/renderer/src/lib/cmd-j-match-relevance.test.ts b/src/renderer/src/lib/cmd-j-match-relevance.test.ts index 07711ac97bc..ee4d2f74263 100644 --- a/src/renderer/src/lib/cmd-j-match-relevance.test.ts +++ b/src/renderer/src/lib/cmd-j-match-relevance.test.ts @@ -6,7 +6,7 @@ import { scorePaletteRelevance } from './cmd-j-match-relevance' import type { PaletteSearchResult } from './worktree-palette-search' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' function makeWorktree(overrides: Partial = {}): Worktree { return { diff --git a/src/renderer/src/lib/cmd-j-match-relevance.ts b/src/renderer/src/lib/cmd-j-match-relevance.ts index 44015d0d4f1..58e77d3fe9c 100644 --- a/src/renderer/src/lib/cmd-j-match-relevance.ts +++ b/src/renderer/src/lib/cmd-j-match-relevance.ts @@ -3,7 +3,7 @@ import { resolveWorktreeDisplayName } from './worktree-default-display-name' import type { MatchRange, PaletteSearchResult } from './worktree-palette-search' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' // Why: worktrees and open tabs are searched by separate scorers whose scales encode list position, // so neither can say which section holds the better hit. Relevance is the one shared scale: which diff --git a/src/renderer/src/lib/codex-pane-restart-eligibility.ts b/src/renderer/src/lib/codex-pane-restart-eligibility.ts index dc9f63b6f7b..f986408c5dd 100644 --- a/src/renderer/src/lib/codex-pane-restart-eligibility.ts +++ b/src/renderer/src/lib/codex-pane-restart-eligibility.ts @@ -3,7 +3,7 @@ import { recognizeAgentProcess } from '../../../shared/agent-process-recognition' import { isShellProcess } from '../../../shared/shell-process-detection' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import type { RuntimeTerminalProcessInspection } from '@/runtime/runtime-terminal-inspection' function normalizeProcessName(processName: string | null): string | null { diff --git a/src/renderer/src/lib/codex-pane-selection-lane.ts b/src/renderer/src/lib/codex-pane-selection-lane.ts index e6c8a6877da..56ea2108074 100644 --- a/src/renderer/src/lib/codex-pane-selection-lane.ts +++ b/src/renderer/src/lib/codex-pane-selection-lane.ts @@ -14,7 +14,8 @@ import { } from '../../../shared/local-windows-terminal-runtime' import { parseAppSshPtyId } from '../../../shared/ssh-pty-id' import { resolveTerminalStartupCwd } from '../../../shared/terminal-startup-cwd' -import type { GlobalSettings, TerminalTab } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { parseWorkspaceKey } from '../../../shared/workspace-scope' import { parseWslUncPath } from '../../../shared/wsl-paths' import { getLocalProjectExecutionRuntimeContext } from './local-preflight-context' diff --git a/src/renderer/src/lib/codex-session-restart.test.ts b/src/renderer/src/lib/codex-session-restart.test.ts index 0f659aa2521..93bde5ed353 100644 --- a/src/renderer/src/lib/codex-session-restart.test.ts +++ b/src/renderer/src/lib/codex-session-restart.test.ts @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { useAppStore } from '@/store' import { shouldUseShellReadyStartupDelivery } from '../../../shared/codex-startup-delivery' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { CODEX_ACCOUNT_RESTART_STARTUP, markLiveCodexSessionsForRestart, diff --git a/src/renderer/src/lib/codex-session-restart.ts b/src/renderer/src/lib/codex-session-restart.ts index 4b3ed2e43b2..01d6a5fab00 100644 --- a/src/renderer/src/lib/codex-session-restart.ts +++ b/src/renderer/src/lib/codex-session-restart.ts @@ -18,7 +18,7 @@ import { resolveCodexPaneSelectionLane } from './codex-pane-selection-lane' import type { CodexAccountSelectionTarget } from '../../../shared/codex-selection-lane' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' // Why: prompt integrations such as Starship can outlast the daemon's 300ms // Codex fast-path timeout; account restarts must wait until the shell accepts input. diff --git a/src/renderer/src/lib/composer-issue-command.ts b/src/renderer/src/lib/composer-issue-command.ts index ddb841bb7ea..3ac90dcda7b 100644 --- a/src/renderer/src/lib/composer-issue-command.ts +++ b/src/renderer/src/lib/composer-issue-command.ts @@ -3,7 +3,7 @@ import { canUseIssueCommandForLinkedItemProvider, renderIssueCommandTemplate } from '@/lib/new-workspace' -import type { FolderWorkspaceLinkedTask } from '../../../shared/types' +import type { FolderWorkspaceLinkedTask } from '../../../shared/folder-workspace-types' type ComposerIssueCommandInput = { enabled: boolean diff --git a/src/renderer/src/lib/connection-context.test.ts b/src/renderer/src/lib/connection-context.test.ts index 27bfbe3a77a..2ef70ba95e2 100644 --- a/src/renderer/src/lib/connection-context.test.ts +++ b/src/renderer/src/lib/connection-context.test.ts @@ -1,5 +1,8 @@ import { afterEach, describe, expect, it, vi } from 'vitest' -import type { FolderWorkspace, ProjectGroup, Repo, Worktree } from '../../../shared/types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import { useAppStore } from '@/store' import type { AppState } from '@/store/types' import { diff --git a/src/renderer/src/lib/create-untitled-markdown.ts b/src/renderer/src/lib/create-untitled-markdown.ts index fc9ff482f06..01c4b7f9a28 100644 --- a/src/renderer/src/lib/create-untitled-markdown.ts +++ b/src/renderer/src/lib/create-untitled-markdown.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { createRuntimePath, deleteRuntimePath, diff --git a/src/renderer/src/lib/diff-comment-compat.test.ts b/src/renderer/src/lib/diff-comment-compat.test.ts index 48b6e3b22b3..7ab54e94b83 100644 --- a/src/renderer/src/lib/diff-comment-compat.test.ts +++ b/src/renderer/src/lib/diff-comment-compat.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { DiffComment } from '../../../shared/types' +import type { DiffComment } from '../../../shared/diff-comment-types' import { getDiffCommentLineLabel, getDiffCommentSource, diff --git a/src/renderer/src/lib/diff-comment-compat.ts b/src/renderer/src/lib/diff-comment-compat.ts index ed88baf0dd0..2f1ab95ed2a 100644 --- a/src/renderer/src/lib/diff-comment-compat.ts +++ b/src/renderer/src/lib/diff-comment-compat.ts @@ -1,4 +1,4 @@ -import type { DiffComment, DiffCommentSource } from '../../../shared/types' +import type { DiffComment, DiffCommentSource } from '../../../shared/diff-comment-types' export function getDiffCommentSource(comment: Pick): DiffCommentSource { return comment.source === 'markdown' ? 'markdown' : 'diff' diff --git a/src/renderer/src/lib/diff-comments-format.test.ts b/src/renderer/src/lib/diff-comments-format.test.ts index cc3e0256c6b..eaf840f755f 100644 --- a/src/renderer/src/lib/diff-comments-format.test.ts +++ b/src/renderer/src/lib/diff-comments-format.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from 'vitest' -import type { DiffComment } from '../../../shared/types' +import type { DiffComment } from '../../../shared/diff-comment-types' import { formatDiffComment, formatDiffComments } from './diff-comments-format' function makeComment(overrides: Partial = {}): DiffComment { diff --git a/src/renderer/src/lib/direct-ssh-target-scope-types.ts b/src/renderer/src/lib/direct-ssh-target-scope-types.ts index 1c12e0a25c5..068e723bb9d 100644 --- a/src/renderer/src/lib/direct-ssh-target-scope-types.ts +++ b/src/renderer/src/lib/direct-ssh-target-scope-types.ts @@ -1,10 +1,7 @@ -import type { - FolderWorkspace, - ProjectGroup, - Repo, - WorkspaceKey, - Worktree -} from '../../../shared/types' +import type { FolderWorkspace, WorkspaceKey } from '../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' export type DirectSshGitRepoRef = { repoId: string diff --git a/src/renderer/src/lib/document-theme.ts b/src/renderer/src/lib/document-theme.ts index 1880a6e0af0..dc0cbc4eb87 100644 --- a/src/renderer/src/lib/document-theme.ts +++ b/src/renderer/src/lib/document-theme.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' export type DocumentThemePreference = GlobalSettings['theme'] diff --git a/src/renderer/src/lib/duplicate-browser-tab-options.ts b/src/renderer/src/lib/duplicate-browser-tab-options.ts index e2a41c80df8..6b24b2b0417 100644 --- a/src/renderer/src/lib/duplicate-browser-tab-options.ts +++ b/src/renderer/src/lib/duplicate-browser-tab-options.ts @@ -1,4 +1,4 @@ -import type { BrowserTab } from '../../../shared/types' +import type { BrowserTab } from '../../../shared/browser-workspace-types' export function buildDuplicatedBrowserTabOptions( source: Pick diff --git a/src/renderer/src/lib/emulator-right-split-target.ts b/src/renderer/src/lib/emulator-right-split-target.ts index 5d19b0d4e9a..f173a2e155f 100644 --- a/src/renderer/src/lib/emulator-right-split-target.ts +++ b/src/renderer/src/lib/emulator-right-split-target.ts @@ -1,4 +1,4 @@ -import type { TabGroupLayoutNode } from '../../../shared/types' +import type { TabGroupLayoutNode } from '../../../shared/tab-types' type SearchResult = { containsSource: boolean diff --git a/src/renderer/src/lib/ensure-hooks-confirmed.test.ts b/src/renderer/src/lib/ensure-hooks-confirmed.test.ts index bbfbe637cb7..b21f0f39c4c 100644 --- a/src/renderer/src/lib/ensure-hooks-confirmed.test.ts +++ b/src/renderer/src/lib/ensure-hooks-confirmed.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type { AppState } from '@/store/types' -import type { PersistedTrustedOrcaHooks } from '../../../shared/types' +import type { PersistedTrustedOrcaHooks } from '../../../shared/orca-yaml-hook-types' import { __resetTrustPromptChainForTests, ensureHooksConfirmed, diff --git a/src/renderer/src/lib/ensure-hooks-confirmed.ts b/src/renderer/src/lib/ensure-hooks-confirmed.ts index c98638deddf..8128e9ae8a0 100644 --- a/src/renderer/src/lib/ensure-hooks-confirmed.ts +++ b/src/renderer/src/lib/ensure-hooks-confirmed.ts @@ -1,5 +1,5 @@ import type { AppState } from '@/store/types' -import type { OrcaHooks } from '../../../shared/types' +import type { OrcaHooks } from '../../../shared/orca-yaml-hook-types' import { resolveHookCommandSourcePolicy } from '../../../shared/hook-command-source-policy' import { hashOrcaHookScript, type OrcaHookScriptKind } from './orca-hook-trust' import { diff --git a/src/renderer/src/lib/ephemeral-vm-workspace-target.test.ts b/src/renderer/src/lib/ephemeral-vm-workspace-target.test.ts index 2a3ab2fefb8..da25a8669eb 100644 --- a/src/renderer/src/lib/ephemeral-vm-workspace-target.test.ts +++ b/src/renderer/src/lib/ephemeral-vm-workspace-target.test.ts @@ -3,7 +3,7 @@ import { prepareEphemeralVmWorkspaceTarget, type PrepareEphemeralVmWorkspaceTargetArgs } from './ephemeral-vm-workspace-target' -import type { ProjectHostSetupResult } from '../../../shared/types' +import type { ProjectHostSetupResult } from '../../../shared/project-types' vi.mock('@/runtime/runtime-rpc-client', () => ({ assertRuntimeEnvironmentCapability: vi.fn() diff --git a/src/renderer/src/lib/ephemeral-vm-workspace-target.ts b/src/renderer/src/lib/ephemeral-vm-workspace-target.ts index fc588d667be..eab9af1ccf4 100644 --- a/src/renderer/src/lib/ephemeral-vm-workspace-target.ts +++ b/src/renderer/src/lib/ephemeral-vm-workspace-target.ts @@ -2,7 +2,7 @@ import { toRuntimeExecutionHostId, toSshExecutionHostId } from '../../../shared/ import type { ProjectHostSetupExistingFolderArgs, ProjectHostSetupResult -} from '../../../shared/types' +} from '../../../shared/project-types' import { getEphemeralVmRecipeResultCheckoutMode, getEphemeralVmRecipeResultProjectRoot diff --git a/src/renderer/src/lib/ephemeral-vm-worktree-creation.ts b/src/renderer/src/lib/ephemeral-vm-worktree-creation.ts index b8f0bd9ba96..8c32bb275bd 100644 --- a/src/renderer/src/lib/ephemeral-vm-worktree-creation.ts +++ b/src/renderer/src/lib/ephemeral-vm-worktree-creation.ts @@ -3,7 +3,7 @@ import { useAppStore } from '@/store' import { prepareEphemeralVmWorkspaceTarget } from '@/lib/ephemeral-vm-workspace-target' import type { WorktreeCreationRequest } from '@/lib/pending-worktree-creation' import { getProjectIdentityKey } from '../../../shared/project-host-setup-projection' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { translate } from '@/i18n/i18n' import { cleanupFailedEphemeralVmWorkspace } from '@/lib/ephemeral-vm-failed-create-cleanup' diff --git a/src/renderer/src/lib/external-editor-open-capability.ts b/src/renderer/src/lib/external-editor-open-capability.ts index bab7547b9b8..459c8c0061b 100644 --- a/src/renderer/src/lib/external-editor-open-capability.ts +++ b/src/renderer/src/lib/external-editor-open-capability.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { isVsCodeRemoteSshCommand } from '../../../shared/vscode-remote-ssh-launcher' export type ExternalEditorOpenCapability = diff --git a/src/renderer/src/lib/file-search-result-owner.ts b/src/renderer/src/lib/file-search-result-owner.ts index b2c719f245a..d352ad34246 100644 --- a/src/renderer/src/lib/file-search-result-owner.ts +++ b/src/renderer/src/lib/file-search-result-owner.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' export type FileSearchResultOwner = { worktreeId: string diff --git a/src/renderer/src/lib/fix-checks-agent-launch.ts b/src/renderer/src/lib/fix-checks-agent-launch.ts index 49ad2ccb856..5c6cd7ffca1 100644 --- a/src/renderer/src/lib/fix-checks-agent-launch.ts +++ b/src/renderer/src/lib/fix-checks-agent-launch.ts @@ -20,11 +20,9 @@ import { renderSourceControlActionCommandTemplate } from '../../../shared/source-control-ai-actions' import { isTuiAgentEnabled } from '../../../shared/tui-agent-selection' -import type { - GitHubWorkItem, - TuiAgent, - WorkspaceCreateTelemetrySource -} from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { TuiAgent } from '../../../shared/tui-agent' +import type { WorkspaceSource as WorkspaceCreateTelemetrySource } from '../../../shared/workspace-source' import type { LaunchSource } from '../../../shared/telemetry-events' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/lib/floating-workspace-tab-creation.ts b/src/renderer/src/lib/floating-workspace-tab-creation.ts index 58a22ad9320..a443c572106 100644 --- a/src/renderer/src/lib/floating-workspace-tab-creation.ts +++ b/src/renderer/src/lib/floating-workspace-tab-creation.ts @@ -1,5 +1,6 @@ import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../shared/constants' -import type { BrowserTab, TerminalTab } from '../../../shared/types' +import type { BrowserTab } from '../../../shared/browser-workspace-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { createUntitledMarkdownFileWithTemplateSelection } from './create-untitled-markdown' import { getConnectionId } from './connection-context' import { detectLanguage } from './language-detect' diff --git a/src/renderer/src/lib/floating-workspace-terminal-actions.test.ts b/src/renderer/src/lib/floating-workspace-terminal-actions.test.ts index 2c556a4c32e..7f2a79ed9a7 100644 --- a/src/renderer/src/lib/floating-workspace-terminal-actions.test.ts +++ b/src/renderer/src/lib/floating-workspace-terminal-actions.test.ts @@ -1,6 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../shared/constants' -import type { Tab, TerminalTab } from '../../../shared/types' +import type { Tab } from '../../../shared/tab-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { createFloatingWorkspaceBrowserTab, createFloatingWorkspaceMarkdownTab, diff --git a/src/renderer/src/lib/floating-workspace-terminal-actions.ts b/src/renderer/src/lib/floating-workspace-terminal-actions.ts index d1133e7fcfa..484143160d9 100644 --- a/src/renderer/src/lib/floating-workspace-terminal-actions.ts +++ b/src/renderer/src/lib/floating-workspace-terminal-actions.ts @@ -1,5 +1,6 @@ import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../shared/constants' -import type { BrowserTab, TabGroup } from '../../../shared/types' +import type { BrowserTab } from '../../../shared/browser-workspace-types' +import type { TabGroup } from '../../../shared/tab-types' import { getGroupVisibleTabOrder } from '@/components/tab-bar/group-tab-order' import { getNextTabAcrossAllTypes, diff --git a/src/renderer/src/lib/folder-workspace-connection.ts b/src/renderer/src/lib/folder-workspace-connection.ts index 2c9376fc284..7edfbeedf32 100644 --- a/src/renderer/src/lib/folder-workspace-connection.ts +++ b/src/renderer/src/lib/folder-workspace-connection.ts @@ -1,4 +1,6 @@ -import type { FolderWorkspace, ProjectGroup, Repo } from '../../../shared/types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { Repo } from '../../../shared/repo-types' import { isPathInsideOrEqual } from '../../../shared/cross-platform-path' import { getProjectGroupSubtreeIds } from '../../../shared/project-groups' import { parseExecutionHostId } from '../../../shared/execution-host' diff --git a/src/renderer/src/lib/folder-workspace-runtime-owner.ts b/src/renderer/src/lib/folder-workspace-runtime-owner.ts index fce08c49302..b9b0266ff07 100644 --- a/src/renderer/src/lib/folder-workspace-runtime-owner.ts +++ b/src/renderer/src/lib/folder-workspace-runtime-owner.ts @@ -1,6 +1,7 @@ import { parseExecutionHostId, toSshExecutionHostId } from '../../../shared/execution-host' import type { ExecutionHostId, ParsedExecutionHost } from '../../../shared/execution-host' -import type { FolderWorkspace, ProjectGroup } from '../../../shared/types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../shared/project-group-types' import { folderWorkspaceKey } from '../../../shared/workspace-scope' import { findIndexedFolderWorkspaceOwner, diff --git a/src/renderer/src/lib/github-pr-start-point.ts b/src/renderer/src/lib/github-pr-start-point.ts index a0ded7900b8..3984bf32cf3 100644 --- a/src/renderer/src/lib/github-pr-start-point.ts +++ b/src/renderer/src/lib/github-pr-start-point.ts @@ -1,5 +1,6 @@ import { callRuntimeRpc, getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' -import type { GitHubPrStartPoint, GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { GitHubPrStartPoint } from '../../../shared/worktree/types' type PrStartPointSettings = Pick | null | undefined diff --git a/src/renderer/src/lib/github-source-runtime-context.ts b/src/renderer/src/lib/github-source-runtime-context.ts index c36598e3420..0267497f0b7 100644 --- a/src/renderer/src/lib/github-source-runtime-context.ts +++ b/src/renderer/src/lib/github-source-runtime-context.ts @@ -2,7 +2,7 @@ import type { ParsedExecutionHost } from '../../../shared/execution-host' import { parseExecutionHostId } from '../../../shared/execution-host' import type { TaskSourceContext } from '../../../shared/task-source-context' import { getTaskSourceRuntimeSettings } from '../../../shared/task-source-context' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import type { RuntimeClientTarget } from '@/runtime/runtime-rpc-client' import { getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' import { diff --git a/src/renderer/src/lib/github-work-item-source-lookup.ts b/src/renderer/src/lib/github-work-item-source-lookup.ts index 046c4af0790..5a49e15ba83 100644 --- a/src/renderer/src/lib/github-work-item-source-lookup.ts +++ b/src/renderer/src/lib/github-work-item-source-lookup.ts @@ -1,4 +1,4 @@ -import type { GitHubWorkItem, GitHubWorkItemDetails } from '../../../shared/types' +import type { GitHubWorkItem, GitHubWorkItemDetails } from '../../../shared/github/work-item-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { callRuntimeRpc } from '@/runtime/runtime-rpc-client' import { diff --git a/src/renderer/src/lib/github-work-item-workspace-attachment.test.ts b/src/renderer/src/lib/github-work-item-workspace-attachment.test.ts index f0cae1ba204..f52808dc8e0 100644 --- a/src/renderer/src/lib/github-work-item-workspace-attachment.test.ts +++ b/src/renderer/src/lib/github-work-item-workspace-attachment.test.ts @@ -7,7 +7,7 @@ import { getGithubWorkItemWorkspaceAttachmentLabel, getGithubPrWorkspaceAttachmentLabel } from './github-work-item-workspace-attachment' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' function worktree(overrides: Partial = {}): Worktree { return { diff --git a/src/renderer/src/lib/github-work-item-workspace-attachment.ts b/src/renderer/src/lib/github-work-item-workspace-attachment.ts index 7a31c32a743..283260913d8 100644 --- a/src/renderer/src/lib/github-work-item-workspace-attachment.ts +++ b/src/renderer/src/lib/github-work-item-workspace-attachment.ts @@ -1,4 +1,5 @@ -import type { GitHubWorkItem, Worktree } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { Worktree } from '../../../shared/worktree/types' import { getWorktreeAttachmentLabel } from './worktree-attachment-label' type GitHubWorkItemType = GitHubWorkItem['type'] diff --git a/src/renderer/src/lib/gitlab-work-item-source-lookup.test.ts b/src/renderer/src/lib/gitlab-work-item-source-lookup.test.ts index 82d9b82628f..88c37cf128c 100644 --- a/src/renderer/src/lib/gitlab-work-item-source-lookup.test.ts +++ b/src/renderer/src/lib/gitlab-work-item-source-lookup.test.ts @@ -5,7 +5,7 @@ import { listGitLabMRsForSource, lookupGitLabWorkItemByPathForSource } from './gitlab-work-item-source-lookup' -import type { GitLabWorkItem, ListMergeRequestsResult } from '../../../shared/types' +import type { GitLabWorkItem, ListMergeRequestsResult } from '../../../shared/gitlab-types' import type { TaskSourceContext } from '../../../shared/task-source-context' vi.mock('@/runtime/runtime-rpc-client', async () => { diff --git a/src/renderer/src/lib/gitlab-work-item-source-lookup.ts b/src/renderer/src/lib/gitlab-work-item-source-lookup.ts index 911997a82f9..c848a84b771 100644 --- a/src/renderer/src/lib/gitlab-work-item-source-lookup.ts +++ b/src/renderer/src/lib/gitlab-work-item-source-lookup.ts @@ -1,4 +1,4 @@ -import type { GitLabWorkItem, ListMergeRequestsResult } from '../../../shared/types' +import type { GitLabWorkItem, ListMergeRequestsResult } from '../../../shared/gitlab-types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { getTaskSourceRuntimeSettings } from '../../../shared/task-source-context' import { callRuntimeRpc, getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' diff --git a/src/renderer/src/lib/http-link-routing.ts b/src/renderer/src/lib/http-link-routing.ts index 3295183d504..0699a7f6300 100644 --- a/src/renderer/src/lib/http-link-routing.ts +++ b/src/renderer/src/lib/http-link-routing.ts @@ -4,7 +4,7 @@ import { parseLoopbackUrlWithPort, type LocalhostWorktreeLabelRoute } from '../../../shared/localhost-worktree-labels' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import type { WorkspacePort, WorkspacePortScanResult } from '../../../shared/workspace-ports' import { toast } from 'sonner' diff --git a/src/renderer/src/lib/launch-agent-in-new-tab.ts b/src/renderer/src/lib/launch-agent-in-new-tab.ts index 58e36fd4a33..d46cb530bd6 100644 --- a/src/renderer/src/lib/launch-agent-in-new-tab.ts +++ b/src/renderer/src/lib/launch-agent-in-new-tab.ts @@ -24,7 +24,7 @@ import { resolveLocalWindowsAgentStartupShell } from '../../../shared/windows-te import { TUI_AGENT_CONFIG } from '../../../shared/tui-agent-config' import { repoIsRemote } from '../../../shared/agent-launch-remote' import { seedCommandCodeSubmittedPromptStatus } from '@/lib/command-code-prompt-status-seed' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import type { LaunchSource } from '../../../shared/telemetry-events' import { getConnectionIdFromState } from '@/lib/connection-context' import { resolveInitialNativeChatSessionOptions } from '@/components/native-chat/native-chat-launch-session-options' diff --git a/src/renderer/src/lib/launch-agent-paste-timeout-notice.ts b/src/renderer/src/lib/launch-agent-paste-timeout-notice.ts index a99371f9647..f72f5b8b3b7 100644 --- a/src/renderer/src/lib/launch-agent-paste-timeout-notice.ts +++ b/src/renderer/src/lib/launch-agent-paste-timeout-notice.ts @@ -2,7 +2,7 @@ import { toast } from 'sonner' import { useAppStore } from '@/store' import { track, tuiAgentToAgentKind } from '@/lib/telemetry' import { translate } from '@/i18n/i18n' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' /** * Notice for a post-launch paste that never landed — a stalled readiness wait diff --git a/src/renderer/src/lib/launch-agent-session-continuation.ts b/src/renderer/src/lib/launch-agent-session-continuation.ts index 9b73a3852ee..a1eb70dc0d5 100644 --- a/src/renderer/src/lib/launch-agent-session-continuation.ts +++ b/src/renderer/src/lib/launch-agent-session-continuation.ts @@ -7,7 +7,7 @@ import { useAppStore } from '@/store' import { isTuiAgentEnabled } from '../../../shared/tui-agent-selection' import { TUI_AGENT_CONFIG } from '../../../shared/tui-agent-config' import type { LaunchSource } from '../../../shared/telemetry-events' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { translate } from '@/i18n/i18n' type LaunchAgentSessionContinuationArgs = { diff --git a/src/renderer/src/lib/launch-agent-web-host-tab.ts b/src/renderer/src/lib/launch-agent-web-host-tab.ts index eb5421bdb86..528798d424d 100644 --- a/src/renderer/src/lib/launch-agent-web-host-tab.ts +++ b/src/renderer/src/lib/launch-agent-web-host-tab.ts @@ -7,7 +7,8 @@ import { isWebTerminalSurfaceTabId } from '@/runtime/web-runtime-session' import type { AgentStartupPlan } from '@/lib/tui-agent-startup' -import type { Tab, TuiAgent } from '../../../shared/types' +import type { Tab } from '../../../shared/tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import type { AgentPromptDelivery } from '../../../shared/agent-session-host-authority' import { translate } from '@/i18n/i18n' import { toAgentLaunchPreferences } from '@/runtime/agent-session-create-operation' diff --git a/src/renderer/src/lib/launch-work-item-direct-agent.ts b/src/renderer/src/lib/launch-work-item-direct-agent.ts index 467ef5065b6..6073ef5e180 100644 --- a/src/renderer/src/lib/launch-work-item-direct-agent.ts +++ b/src/renderer/src/lib/launch-work-item-direct-agent.ts @@ -10,7 +10,7 @@ import type { AgentStartedTelemetry } from '@/lib/worktree-activation' import type { SleepingAgentLaunchConfig } from '../../../shared/agent-session-resume' import type { LaunchSource } from '../../../shared/telemetry-events' import type { StartupCommandDelivery } from '../../../shared/codex-startup-delivery' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { resolveTuiAgentLaunchArgs, resolveTuiAgentLaunchEnv diff --git a/src/renderer/src/lib/launch-work-item-direct-preflight.ts b/src/renderer/src/lib/launch-work-item-direct-preflight.ts index 3a09dfc67c1..84cc3033f09 100644 --- a/src/renderer/src/lib/launch-work-item-direct-preflight.ts +++ b/src/renderer/src/lib/launch-work-item-direct-preflight.ts @@ -1,13 +1,10 @@ import { getSetupConfig } from '@/lib/new-workspace' import { checkRuntimeHooks } from '@/runtime/runtime-hooks-client' import { resolveGitHubPrStartPointForRepo } from '@/lib/github-pr-start-point' -import type { - GitHubPrStartPoint, - GlobalSettings, - OrcaHooks, - RepoHookSettings, - SetupDecision -} from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { OrcaHooks, RepoHookSettings } from '../../../shared/orca-yaml-hook-types' +import type { SetupDecision } from '../../../shared/worktree/create-types' +import type { GitHubPrStartPoint } from '../../../shared/worktree/types' // Why: preflight routes by the repo's owner host, which `getSettingsForRepoRuntimeOwner` // hands back as a narrow runtime-scope pick rather than the full GlobalSettings. diff --git a/src/renderer/src/lib/launch-work-item-direct-types.ts b/src/renderer/src/lib/launch-work-item-direct-types.ts index e94b543d687..4d68b4d36c3 100644 --- a/src/renderer/src/lib/launch-work-item-direct-types.ts +++ b/src/renderer/src/lib/launch-work-item-direct-types.ts @@ -1,5 +1,7 @@ import type { LinkedWorkItemContext } from '@/lib/linked-work-item-context' -import type { TaskProvider, TuiAgent, WorkspaceCreateTelemetrySource } from '../../../shared/types' +import type { TaskProvider } from '../../../shared/task-providers' +import type { TuiAgent } from '../../../shared/tui-agent' +import type { WorkspaceSource as WorkspaceCreateTelemetrySource } from '../../../shared/workspace-source' import type { LaunchSource } from '../../../shared/telemetry-events' export type LaunchableWorkItem = { diff --git a/src/renderer/src/lib/launch-work-item-direct.ts b/src/renderer/src/lib/launch-work-item-direct.ts index 6a0fa63a214..d27220bf089 100644 --- a/src/renderer/src/lib/launch-work-item-direct.ts +++ b/src/renderer/src/lib/launch-work-item-direct.ts @@ -16,7 +16,9 @@ import { ensureHooksConfirmed } from '@/lib/ensure-hooks-confirmed' import { seedNativeChatLaunchDraftForAgentTab } from '@/lib/agent-launch-prompt-delivery' import { getConnectionId } from '@/lib/connection-context' import { isNativeChatTranscriptLocalReadable } from '@/lib/native-chat-transcript-readability' -import type { GitPushTarget, SetupDecision, TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' +import type { SetupDecision } from '../../../shared/worktree/create-types' +import type { GitPushTarget } from '../../../shared/worktree/types' import { getLinearIssueWorkspaceName } from '../../../shared/workspace-name' import { resolveGitHubWorkItemIdentity } from '@/lib/github-work-item-identity' import { diff --git a/src/renderer/src/lib/launch-worktree-background-terminals.ts b/src/renderer/src/lib/launch-worktree-background-terminals.ts index 5725ce397a8..049176c1e81 100644 --- a/src/renderer/src/lib/launch-worktree-background-terminals.ts +++ b/src/renderer/src/lib/launch-worktree-background-terminals.ts @@ -14,12 +14,12 @@ import { buildSetupRunnerCommand, getSetupRunnerCommandPlatformForPath } from '../../../shared/setup-runner-command' +import type { TerminalLayoutSnapshot } from '../../../shared/terminal-tab-types' import type { - TerminalLayoutSnapshot, - Worktree, WorktreeDefaultTabsLaunch, WorktreeSetupLaunch -} from '../../../shared/types' +} from '../../../shared/worktree/launch-types' +import type { Worktree } from '../../../shared/worktree/types' type BackgroundPane = { leafId: string diff --git a/src/renderer/src/lib/left-sidebar-appearance.ts b/src/renderer/src/lib/left-sidebar-appearance.ts index 9966818c36a..4760aac8565 100644 --- a/src/renderer/src/lib/left-sidebar-appearance.ts +++ b/src/renderer/src/lib/left-sidebar-appearance.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { HEX_COLOR_RE } from '../../../shared/color-validation' import { normalizeLeftSidebarTintColor, diff --git a/src/renderer/src/lib/linear-issue-context-snapshot.test.ts b/src/renderer/src/lib/linear-issue-context-snapshot.test.ts index 5ad8ca68e9b..d8206a7aa9f 100644 --- a/src/renderer/src/lib/linear-issue-context-snapshot.test.ts +++ b/src/renderer/src/lib/linear-issue-context-snapshot.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect, it, vi } from 'vitest' -import type { LinearComment, LinearIssue } from '../../../shared/types' +import type { LinearComment, LinearIssue } from '../../../shared/linear/issue-types' import { buildLinearIssueContextSnapshot, LINEAR_ISSUE_CONTEXT_CAPS diff --git a/src/renderer/src/lib/linear-issue-context-snapshot.ts b/src/renderer/src/lib/linear-issue-context-snapshot.ts index 0cdec67ec1c..37e77c56b60 100644 --- a/src/renderer/src/lib/linear-issue-context-snapshot.ts +++ b/src/renderer/src/lib/linear-issue-context-snapshot.ts @@ -1,4 +1,4 @@ -import type { LinearComment, LinearIssue } from '../../../shared/types' +import type { LinearComment, LinearIssue } from '../../../shared/linear/issue-types' export const LINEAR_ISSUE_CONTEXT_CAPS = { descriptionChars: 3000, diff --git a/src/renderer/src/lib/linear-issue-url-lookup.test.ts b/src/renderer/src/lib/linear-issue-url-lookup.test.ts index 28bc918caed..5cae0b9ae6b 100644 --- a/src/renderer/src/lib/linear-issue-url-lookup.test.ts +++ b/src/renderer/src/lib/linear-issue-url-lookup.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it, vi } from 'vitest' -import type { LinearConnectionStatus, LinearIssue } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' +import type { LinearConnectionStatus } from '../../../shared/linear/workspace-types' import { lookupLinearIssueUrl } from './linear-issue-url-lookup' const intent = { identifier: 'STA-4084', organizationUrlKey: 'stably' } diff --git a/src/renderer/src/lib/linear-issue-url-lookup.ts b/src/renderer/src/lib/linear-issue-url-lookup.ts index 55493d628f7..e2ea3ed9aef 100644 --- a/src/renderer/src/lib/linear-issue-url-lookup.ts +++ b/src/renderer/src/lib/linear-issue-url-lookup.ts @@ -4,7 +4,8 @@ import { isLinearIssueUrlResolutionMatch, type LinearIssueUrlIntent } from '../../../shared/linear/links' -import type { LinearConnectionStatus, LinearIssue } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' +import type { LinearConnectionStatus } from '../../../shared/linear/workspace-types' import type { TaskSourceContext } from '../../../shared/task-source-context' type FetchLinearIssue = ( diff --git a/src/renderer/src/lib/linear-issue-workspace-attachment.test.ts b/src/renderer/src/lib/linear-issue-workspace-attachment.test.ts index 94455731201..9e44943421d 100644 --- a/src/renderer/src/lib/linear-issue-workspace-attachment.test.ts +++ b/src/renderer/src/lib/linear-issue-workspace-attachment.test.ts @@ -6,7 +6,7 @@ import { findLinearIssueWorkspaceAttachmentInIndex, getLinearIssueWorkspaceAttachmentLabel } from './linear-issue-workspace-attachment' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' function worktree(overrides: Partial = {}): Worktree { return { diff --git a/src/renderer/src/lib/linear-issue-workspace-attachment.ts b/src/renderer/src/lib/linear-issue-workspace-attachment.ts index e1904dd02d4..e931b619aab 100644 --- a/src/renderer/src/lib/linear-issue-workspace-attachment.ts +++ b/src/renderer/src/lib/linear-issue-workspace-attachment.ts @@ -1,4 +1,5 @@ -import type { LinearIssue, Worktree } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' +import type { Worktree } from '../../../shared/worktree/types' import { getLinearOrganizationUrlKeyFromIssueUrl, parseLinearIssueInput diff --git a/src/renderer/src/lib/linear-issue-workspace-open.test.ts b/src/renderer/src/lib/linear-issue-workspace-open.test.ts index 0d6dd0211bc..86a72ab4df9 100644 --- a/src/renderer/src/lib/linear-issue-workspace-open.test.ts +++ b/src/renderer/src/lib/linear-issue-workspace-open.test.ts @@ -1,6 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { FolderWorkspace, Worktree } from '../../../shared/types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { Worktree } from '../../../shared/worktree/types' const mocks = vi.hoisted(() => ({ activateAndRevealFolderWorkspace: vi.fn(), diff --git a/src/renderer/src/lib/linear-linked-work-item.test.ts b/src/renderer/src/lib/linear-linked-work-item.test.ts index 10c11a9dde1..b8aa6f8fd0a 100644 --- a/src/renderer/src/lib/linear-linked-work-item.test.ts +++ b/src/renderer/src/lib/linear-linked-work-item.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { LinearIssue } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' import { buildLinearIssueLinkedWorkItem, getLinearLinkedWorkItemBranchName, diff --git a/src/renderer/src/lib/linear-linked-work-item.ts b/src/renderer/src/lib/linear-linked-work-item.ts index d1219bad8dc..098fed173f4 100644 --- a/src/renderer/src/lib/linear-linked-work-item.ts +++ b/src/renderer/src/lib/linear-linked-work-item.ts @@ -1,4 +1,4 @@ -import type { LinearIssue } from '../../../shared/types' +import type { LinearIssue } from '../../../shared/linear/issue-types' import type { LinkedWorkItemSummary } from '@/lib/new-workspace' import { buildLinearWorkspaceSource, diff --git a/src/renderer/src/lib/linked-work-item-context.ts b/src/renderer/src/lib/linked-work-item-context.ts index bd39e87c453..214b892b35b 100644 --- a/src/renderer/src/lib/linked-work-item-context.ts +++ b/src/renderer/src/lib/linked-work-item-context.ts @@ -1,4 +1,4 @@ -import type { TaskProvider } from '../../../shared/types' +import type { TaskProvider } from '../../../shared/task-providers' export type LinkedWorkItemContext = { provider: TaskProvider diff --git a/src/renderer/src/lib/local-path-open-guard.ts b/src/renderer/src/lib/local-path-open-guard.ts index 7fed28d8e10..21d92a48e5e 100644 --- a/src/renderer/src/lib/local-path-open-guard.ts +++ b/src/renderer/src/lib/local-path-open-guard.ts @@ -1,5 +1,5 @@ import { toast } from 'sonner' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { translate } from '@/i18n/i18n' export function isLocalPathOpenBlocked( diff --git a/src/renderer/src/lib/local-preflight-context.test.ts b/src/renderer/src/lib/local-preflight-context.test.ts index 69d38f9ced6..3bce56d5340 100644 --- a/src/renderer/src/lib/local-preflight-context.test.ts +++ b/src/renderer/src/lib/local-preflight-context.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../shared/constants' -import type { Repo, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import type { AppState } from '@/store/types' import { getLocalAgentPreflightContext, diff --git a/src/renderer/src/lib/local-preflight-context.ts b/src/renderer/src/lib/local-preflight-context.ts index 28da8a3d5bd..98ac6c1059e 100644 --- a/src/renderer/src/lib/local-preflight-context.ts +++ b/src/renderer/src/lib/local-preflight-context.ts @@ -7,7 +7,8 @@ import { type ProjectExecutionRuntimeResolution } from '../../../shared/project-execution-runtime' import { getRepoExecutionHostId, LOCAL_EXECUTION_HOST_ID } from '../../../shared/execution-host' -import type { Repo, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import { getProviderRuntimeContextKey } from './provider-runtime-context' import { getRendererAppPlatform } from './renderer-app-platform' import { diff --git a/src/renderer/src/lib/markdown-comment-blocks.test.ts b/src/renderer/src/lib/markdown-comment-blocks.test.ts index f3b0443d6ea..74eb3190b74 100644 --- a/src/renderer/src/lib/markdown-comment-blocks.test.ts +++ b/src/renderer/src/lib/markdown-comment-blocks.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { DiffComment } from '../../../shared/types' +import type { DiffComment } from '../../../shared/diff-comment-types' import { mapMarkdownCommentsToBlocks, type MarkdownCommentBlock } from './markdown-comment-blocks' function makeComment(overrides: Partial = {}): DiffComment { diff --git a/src/renderer/src/lib/markdown-comment-blocks.ts b/src/renderer/src/lib/markdown-comment-blocks.ts index 59d11ed4402..6d12ac6d2c2 100644 --- a/src/renderer/src/lib/markdown-comment-blocks.ts +++ b/src/renderer/src/lib/markdown-comment-blocks.ts @@ -1,4 +1,4 @@ -import type { DiffComment } from '../../../shared/types' +import type { DiffComment } from '../../../shared/diff-comment-types' export type MarkdownCommentBlock = { key: string diff --git a/src/renderer/src/lib/markdown-document-templates.test.ts b/src/renderer/src/lib/markdown-document-templates.test.ts index e787805dfb6..ab17687fcc2 100644 --- a/src/renderer/src/lib/markdown-document-templates.test.ts +++ b/src/renderer/src/lib/markdown-document-templates.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect, it, vi } from 'vitest' -import type { DirEntry } from '../../../shared/types' +import type { DirEntry } from '../../../shared/filesystem-entry-types' import { applyMarkdownTemplatePlaceholders, getMarkdownTemplateTitleForFileName, diff --git a/src/renderer/src/lib/markdown-document-templates.ts b/src/renderer/src/lib/markdown-document-templates.ts index 60414d481f0..b4149389c02 100644 --- a/src/renderer/src/lib/markdown-document-templates.ts +++ b/src/renderer/src/lib/markdown-document-templates.ts @@ -1,4 +1,5 @@ -import type { DirEntry, GlobalSettings } from '../../../shared/types' +import type { DirEntry } from '../../../shared/filesystem-entry-types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import type { RuntimeFileOperationArgs } from '@/runtime/runtime-file-client' import { readRuntimeDirectory, diff --git a/src/renderer/src/lib/markdown-review-note-copy.test.ts b/src/renderer/src/lib/markdown-review-note-copy.test.ts index bfac91ff209..ae00b96fe25 100644 --- a/src/renderer/src/lib/markdown-review-note-copy.test.ts +++ b/src/renderer/src/lib/markdown-review-note-copy.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { DiffComment } from '../../../shared/types' +import type { DiffComment } from '../../../shared/diff-comment-types' import { copyMarkdownReviewNotesForAgent, type MarkdownReviewNoteClipboardWriter diff --git a/src/renderer/src/lib/markdown-review-notes.test.ts b/src/renderer/src/lib/markdown-review-notes.test.ts index 9d583df9fdc..80c40089e1f 100644 --- a/src/renderer/src/lib/markdown-review-notes.test.ts +++ b/src/renderer/src/lib/markdown-review-notes.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect, it, vi } from 'vitest' -import type { DiffComment } from '../../../shared/types' +import type { DiffComment } from '../../../shared/diff-comment-types' import { formatMarkdownReviewCardQuote, formatMarkdownReviewNotes, diff --git a/src/renderer/src/lib/markdown-review-notes.ts b/src/renderer/src/lib/markdown-review-notes.ts index 93feeb6099f..c0831ef8edd 100644 --- a/src/renderer/src/lib/markdown-review-notes.ts +++ b/src/renderer/src/lib/markdown-review-notes.ts @@ -1,4 +1,4 @@ -import type { DiffComment } from '../../../shared/types' +import type { DiffComment } from '../../../shared/diff-comment-types' import { getDiffCommentLineLabel } from './diff-comment-compat' const MAX_EXCERPT_LINES = 8 diff --git a/src/renderer/src/lib/native-chat-initial-view-mode.test.ts b/src/renderer/src/lib/native-chat-initial-view-mode.test.ts index 4ef61a5cb78..e3a7a5b7aad 100644 --- a/src/renderer/src/lib/native-chat-initial-view-mode.test.ts +++ b/src/renderer/src/lib/native-chat-initial-view-mode.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from 'vitest' -import type { Tab } from '../../../shared/types' +import type { Tab } from '../../../shared/tab-types' import { decideInitialAgentTabViewMode, initialAgentTabViewModeProps diff --git a/src/renderer/src/lib/native-chat-initial-view-mode.ts b/src/renderer/src/lib/native-chat-initial-view-mode.ts index 9b06a0a0d38..258fd8f190f 100644 --- a/src/renderer/src/lib/native-chat-initial-view-mode.ts +++ b/src/renderer/src/lib/native-chat-initial-view-mode.ts @@ -1,4 +1,6 @@ -import type { GlobalSettings, Tab, TuiAgent } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { Tab } from '../../../shared/tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { canMirrorLaunchDraftToNativeChat } from '@/lib/native-chat-launch-draft-mirrorability' import { isNativeChatSupportedAgent, diff --git a/src/renderer/src/lib/native-chat-launch-prompt.ts b/src/renderer/src/lib/native-chat-launch-prompt.ts index b279730c812..289bc78d6e5 100644 --- a/src/renderer/src/lib/native-chat-launch-prompt.ts +++ b/src/renderer/src/lib/native-chat-launch-prompt.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' export type NativeChatLaunchPrompt = { tabId: string diff --git a/src/renderer/src/lib/native-chat-telemetry.ts b/src/renderer/src/lib/native-chat-telemetry.ts index 1299204b6db..ba3f7e5d9cc 100644 --- a/src/renderer/src/lib/native-chat-telemetry.ts +++ b/src/renderer/src/lib/native-chat-telemetry.ts @@ -9,7 +9,7 @@ import { track, tuiAgentToAgentKind } from './telemetry' import type { NativeChatRuntime } from '../../../shared/telemetry-events' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' /** Loose agent type accepted by these emitters: the strict launch `TuiAgent`, or * the broader `AgentType` string carried by the chat view. Narrowing to the diff --git a/src/renderer/src/lib/nested-repo-selected-paths.ts b/src/renderer/src/lib/nested-repo-selected-paths.ts index 450544bbcd0..1faf58ca430 100644 --- a/src/renderer/src/lib/nested-repo-selected-paths.ts +++ b/src/renderer/src/lib/nested-repo-selected-paths.ts @@ -1,4 +1,4 @@ -import type { NestedRepoScanResult } from '../../../shared/types' +import type { NestedRepoScanResult } from '../../../shared/project-group-types' export function getSelectedNestedRepoPathsInScanOrder( scan: Pick, diff --git a/src/renderer/src/lib/new-workspace-composer-repo.test.ts b/src/renderer/src/lib/new-workspace-composer-repo.test.ts index 575725630dc..3b73d209b15 100644 --- a/src/renderer/src/lib/new-workspace-composer-repo.test.ts +++ b/src/renderer/src/lib/new-workspace-composer-repo.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { getComposerEligibleRepos, resolveComposerActiveRepoId, diff --git a/src/renderer/src/lib/new-workspace-composer-repo.ts b/src/renderer/src/lib/new-workspace-composer-repo.ts index 1cce749e03b..8e32e1e4bca 100644 --- a/src/renderer/src/lib/new-workspace-composer-repo.ts +++ b/src/renderer/src/lib/new-workspace-composer-repo.ts @@ -5,7 +5,7 @@ import { resolveNewWorkspaceDialogRepoId } from '../../../shared/new-workspace-dialog-repo' import { getProjectIdentityKey } from '../../../shared/project-host-setup-projection' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' export function getComposerEligibleRepos(repos: readonly Repo[]): Repo[] { return getNewWorkspaceDialogEligibleRepos(repos) diff --git a/src/renderer/src/lib/new-workspace-project-options.test.ts b/src/renderer/src/lib/new-workspace-project-options.test.ts index f6130d8f861..b249570fb3d 100644 --- a/src/renderer/src/lib/new-workspace-project-options.test.ts +++ b/src/renderer/src/lib/new-workspace-project-options.test.ts @@ -9,7 +9,9 @@ import { searchNewWorkspaceProjectOptions, type NewWorkspaceProjectOption } from './new-workspace-project-options' -import type { Project, ProjectGroup, ProjectHostSetup, Repo } from '../../../shared/types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { Project, ProjectHostSetup } from '../../../shared/project-types' +import type { Repo } from '../../../shared/repo-types' function repo(id: string, overrides: Partial = {}): Repo { return { diff --git a/src/renderer/src/lib/new-workspace-project-options.ts b/src/renderer/src/lib/new-workspace-project-options.ts index 58cab355340..be8261126b8 100644 --- a/src/renderer/src/lib/new-workspace-project-options.ts +++ b/src/renderer/src/lib/new-workspace-project-options.ts @@ -1,5 +1,7 @@ import { projectHostSetupProjectionFromRepos } from '../../../shared/project-host-setup-projection' -import type { Project, ProjectGroup, ProjectHostSetup, Repo } from '../../../shared/types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { Project, ProjectHostSetup } from '../../../shared/project-types' +import type { Repo } from '../../../shared/repo-types' import { isClipboardTextByteLengthOverLimit } from '../../../shared/clipboard-text' import type { ExecutionHostRegistryEntry } from '../../../shared/execution-host-registry' import { diff --git a/src/renderer/src/lib/new-workspace.ts b/src/renderer/src/lib/new-workspace.ts index d9b133b5263..d19da5e5de4 100644 --- a/src/renderer/src/lib/new-workspace.ts +++ b/src/renderer/src/lib/new-workspace.ts @@ -13,7 +13,8 @@ import { queuePendingAgentStartupDelivery, resolveAgentStartupTabId } from '@/lib/agent-startup-delayed-delivery' -import type { FolderWorkspaceLinkedTask, OrcaHooks } from '../../../shared/types' +import type { FolderWorkspaceLinkedTask } from '../../../shared/folder-workspace-types' +import type { OrcaHooks } from '../../../shared/orca-yaml-hook-types' import { resolveHookCommandSourcePolicy } from '../../../shared/hook-command-source-policy' import { slugifyForWorkspaceName } from '../../../shared/workspace-name' import { createBrowserUuid } from '@/lib/browser-uuid' diff --git a/src/renderer/src/lib/notes-send-agent-targets.test.ts b/src/renderer/src/lib/notes-send-agent-targets.test.ts index 0b24234c3bf..6dba34d51ce 100644 --- a/src/renderer/src/lib/notes-send-agent-targets.test.ts +++ b/src/renderer/src/lib/notes-send-agent-targets.test.ts @@ -4,7 +4,7 @@ import { type AgentStatusEntry, type AgentStatusState } from '../../../shared/agent-status-types' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' import { makePaneKey } from '../../../shared/stable-pane-id' import { deriveNotesSendAgentTargets, diff --git a/src/renderer/src/lib/notes-send-agent-targets.ts b/src/renderer/src/lib/notes-send-agent-targets.ts index 3c2f6d412c4..ce4e00ae1ed 100644 --- a/src/renderer/src/lib/notes-send-agent-targets.ts +++ b/src/renderer/src/lib/notes-send-agent-targets.ts @@ -2,7 +2,7 @@ import type { AgentType } from '../../../shared/agent-status-types' import type { AppState } from '@/store/types' import { isTerminalLeafId, makePaneKey } from '../../../shared/stable-pane-id' import { resolveTerminalTitleAgentType } from '../../../shared/terminal-title-agent-type' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { detectAgentSendTitleStatus } from './agent-send-title-status' import { resolveRuntimePaneTitleLeafResolution, diff --git a/src/renderer/src/lib/onboarding-folder-agent-startup.ts b/src/renderer/src/lib/onboarding-folder-agent-startup.ts index 55668937430..adb1a8bfbbf 100644 --- a/src/renderer/src/lib/onboarding-folder-agent-startup.ts +++ b/src/renderer/src/lib/onboarding-folder-agent-startup.ts @@ -8,7 +8,9 @@ import { import type { AgentStartedTelemetry } from '@/lib/worktree-activation' import type { StartupCommandDelivery } from '../../../shared/codex-startup-delivery' import type { SleepingAgentLaunchConfig } from '../../../shared/agent-session-resume' -import type { GlobalSettings, OnboardingState, TuiAgent } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { OnboardingState } from '../../../shared/onboarding-state-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { resolveInitialNativeChatSessionOptions } from '@/components/native-chat/native-chat-launch-session-options' import type { SessionOptionValue } from '../../../shared/native-chat-session-options' diff --git a/src/renderer/src/lib/onboarding-project-checklist.ts b/src/renderer/src/lib/onboarding-project-checklist.ts index a39e8d093a2..742cd164776 100644 --- a/src/renderer/src/lib/onboarding-project-checklist.ts +++ b/src/renderer/src/lib/onboarding-project-checklist.ts @@ -1,5 +1,5 @@ import { track } from '@/lib/telemetry' -import type { OnboardingState } from '../../../shared/types' +import type { OnboardingState } from '../../../shared/onboarding-state-types' export type OnboardingProjectChecklistItem = 'addedRepo' | 'addedFolder' diff --git a/src/renderer/src/lib/open-in-app-catalog.tsx b/src/renderer/src/lib/open-in-app-catalog.tsx index ea54d1d2491..a2ed0526354 100644 --- a/src/renderer/src/lib/open-in-app-catalog.tsx +++ b/src/renderer/src/lib/open-in-app-catalog.tsx @@ -1,6 +1,6 @@ import type React from 'react' import { AppWindow } from 'lucide-react' -import type { OpenInApplication } from '../../../shared/types' +import type { OpenInApplication } from '../../../shared/ui-chrome-types' import { cn } from './utils' import { translate } from '@/i18n/i18n' import { createLocalizedCatalog } from '@/i18n/localized-catalog' diff --git a/src/renderer/src/lib/open-in-application-selection.ts b/src/renderer/src/lib/open-in-application-selection.ts index 09ccaca9bb9..a4c1f53e609 100644 --- a/src/renderer/src/lib/open-in-application-selection.ts +++ b/src/renderer/src/lib/open-in-application-selection.ts @@ -1,3 +1,3 @@ -import type { OpenInApplication } from '../../../shared/types' +import type { OpenInApplication } from '../../../shared/ui-chrome-types' export const NO_OPEN_IN_APPLICATIONS: readonly OpenInApplication[] = [] diff --git a/src/renderer/src/lib/orchestration-skill-coverage.test.ts b/src/renderer/src/lib/orchestration-skill-coverage.test.ts index d7001e7ebd8..d0128396e4e 100644 --- a/src/renderer/src/lib/orchestration-skill-coverage.test.ts +++ b/src/renderer/src/lib/orchestration-skill-coverage.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import type { DiscoveredSkill, SkillDiscoverySource } from '../../../shared/skills' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { agentHasOrchestrationSkill, getOrchestrationSkillAgentStatuses diff --git a/src/renderer/src/lib/orchestration-skill-coverage.ts b/src/renderer/src/lib/orchestration-skill-coverage.ts index 4b4e58144c2..4196a50dd18 100644 --- a/src/renderer/src/lib/orchestration-skill-coverage.ts +++ b/src/renderer/src/lib/orchestration-skill-coverage.ts @@ -1,6 +1,6 @@ import type { AgentType } from '../../../shared/agent-status-types' import type { DiscoveredSkill, SkillDiscoverySource } from '../../../shared/skills' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { ORCHESTRATION_SKILL_NAME } from '@/lib/agent-feature-install-commands' import { getAgentLabel } from '@/lib/agent-catalog' import { TUI_AGENT_AUTO_PICK_ORDER } from '../../../shared/tui-agent-selection' diff --git a/src/renderer/src/lib/order-empty-query-worktrees.test.ts b/src/renderer/src/lib/order-empty-query-worktrees.test.ts index 967863f5d0f..f60ddb04a89 100644 --- a/src/renderer/src/lib/order-empty-query-worktrees.test.ts +++ b/src/renderer/src/lib/order-empty-query-worktrees.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { orderEmptyQueryWorktrees } from './order-empty-query-worktrees' function wt(overrides: Partial & { id: string; displayName: string }): Worktree { diff --git a/src/renderer/src/lib/order-empty-query-worktrees.ts b/src/renderer/src/lib/order-empty-query-worktrees.ts index aa165b8c6a4..8362bc03527 100644 --- a/src/renderer/src/lib/order-empty-query-worktrees.ts +++ b/src/renderer/src/lib/order-empty-query-worktrees.ts @@ -1,4 +1,4 @@ -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { compareWorktreeDisplayName } from './worktree-display-name-order' export type OrderEmptyQueryInputs = { diff --git a/src/renderer/src/lib/pane-agent-evidence.ts b/src/renderer/src/lib/pane-agent-evidence.ts index 4c9c49ad9bb..8230bb51522 100644 --- a/src/renderer/src/lib/pane-agent-evidence.ts +++ b/src/renderer/src/lib/pane-agent-evidence.ts @@ -1,7 +1,7 @@ import type { AgentStatus } from '../../../shared/agent-detection' import { detectAgentStatusFromTitle, getAgentLabel } from '../../../shared/agent-detection' import { resolveExplicitTerminalTitleAgentType } from '../../../shared/terminal-title-agent-type' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { AGENT_STATUS_STALE_AFTER_MS, type AgentStatusEntry, diff --git a/src/renderer/src/lib/pane-manager/pane-manager-types.ts b/src/renderer/src/lib/pane-manager/pane-manager-types.ts index 34b42c4b591..62c69836841 100644 --- a/src/renderer/src/lib/pane-manager/pane-manager-types.ts +++ b/src/renderer/src/lib/pane-manager/pane-manager-types.ts @@ -6,7 +6,7 @@ import type { Unicode11Addon } from '@xterm/addon-unicode11' import type { WebLinksAddon } from '@xterm/addon-web-links' import type { WebglAddon } from '@xterm/addon-webgl' import type { SerializeAddon } from '@xterm/addon-serialize' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { TerminalLeafId } from '../../../../shared/stable-pane-id' import type { TerminalWebglAutoDecision } from './terminal-webgl-auto-policy' diff --git a/src/renderer/src/lib/pane-manager/terminal-keyboard-protocol.ts b/src/renderer/src/lib/pane-manager/terminal-keyboard-protocol.ts index 8c804236f9b..66c85d56581 100644 --- a/src/renderer/src/lib/pane-manager/terminal-keyboard-protocol.ts +++ b/src/renderer/src/lib/pane-manager/terminal-keyboard-protocol.ts @@ -1,6 +1,6 @@ import type { ITerminalOptions } from '@xterm/xterm' import type { ExecutionHostId } from '../../../../shared/execution-host' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { isLocalNativeWindowsConpty, type WindowsPtyCompatibilityContext diff --git a/src/renderer/src/lib/pending-worktree-creation.ts b/src/renderer/src/lib/pending-worktree-creation.ts index 10e37abcf89..cbf41f283b7 100644 --- a/src/renderer/src/lib/pending-worktree-creation.ts +++ b/src/renderer/src/lib/pending-worktree-creation.ts @@ -1,13 +1,15 @@ +import type { TuiAgent } from '../../../shared/tui-agent' +import type { WorkspaceSource as WorkspaceCreateTelemetrySource } from '../../../shared/workspace-source' import type { CreateSparseCheckoutRequest, + SetupDecision +} from '../../../shared/worktree/create-types' +import type { WorktreeStartupLaunch } from '../../../shared/worktree/launch-types' +import type { GitPushTarget, - SetupDecision, - TuiAgent, - WorkspaceCreateTelemetrySource, - WorkspaceStatus, WorkspaceLinkedItem, - WorktreeStartupLaunch -} from '../../../shared/types' + WorkspaceStatus +} from '../../../shared/worktree/types' import type { AgentStartupPlan } from '@/lib/tui-agent-startup' import type { AgentStartedTelemetry } from '@/lib/worktree-activation' import type { TaskSourceContext, WorkspaceRunContext } from '../../../shared/task-source-context' diff --git a/src/renderer/src/lib/pi-session-resume-wake.test.ts b/src/renderer/src/lib/pi-session-resume-wake.test.ts index a0f69f68c2a..984a4fd9639 100644 --- a/src/renderer/src/lib/pi-session-resume-wake.test.ts +++ b/src/renderer/src/lib/pi-session-resume-wake.test.ts @@ -2,7 +2,7 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, describe, expect, it } from 'vitest' import type { SleepingAgentSessionRecord } from '../../../shared/agent-session-resume' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { useAppStore } from '@/store' import { resumeSleepingAgentSessionsForWorktree } from './resume-sleeping-agent-session' diff --git a/src/renderer/src/lib/pr-comment-action-state.test.ts b/src/renderer/src/lib/pr-comment-action-state.test.ts index b3038076b87..62f7e3979d1 100644 --- a/src/renderer/src/lib/pr-comment-action-state.test.ts +++ b/src/renderer/src/lib/pr-comment-action-state.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRComment } from '../../../shared/types' +import type { PRComment } from '../../../shared/github/comment-types' import { groupPRComments, type PRCommentGroup } from '../../../shared/pr-comment-groups' import { getPRCommentGroupActionState, diff --git a/src/renderer/src/lib/pr-comment-action-state.ts b/src/renderer/src/lib/pr-comment-action-state.ts index 2207141bd06..12f9ef87287 100644 --- a/src/renderer/src/lib/pr-comment-action-state.ts +++ b/src/renderer/src/lib/pr-comment-action-state.ts @@ -1,5 +1,5 @@ import { getPRCommentGroupRoot, type PRCommentGroup } from '../../../shared/pr-comment-groups' -import type { PRComment } from '../../../shared/types' +import type { PRComment } from '../../../shared/github/comment-types' /** How a comment group should read in the PR sidebar triage UI. */ export type PRCommentGroupActionState = 'open' | 'conversation' | 'resolved' diff --git a/src/renderer/src/lib/pr-comment-reactions.test.ts b/src/renderer/src/lib/pr-comment-reactions.test.ts index d742fde85d8..01dcb7e5523 100644 --- a/src/renderer/src/lib/pr-comment-reactions.test.ts +++ b/src/renderer/src/lib/pr-comment-reactions.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRComment } from '../../../shared/types' +import type { PRComment } from '../../../shared/github/comment-types' import { restoreCommentReaction, setCommentReaction, diff --git a/src/renderer/src/lib/pr-comment-reactions.ts b/src/renderer/src/lib/pr-comment-reactions.ts index f124f082d17..417b8a9e4bb 100644 --- a/src/renderer/src/lib/pr-comment-reactions.ts +++ b/src/renderer/src/lib/pr-comment-reactions.ts @@ -1,4 +1,8 @@ -import type { GitHubReaction, GitHubReactionContent, PRComment } from '../../../shared/types' +import type { + GitHubReaction, + GitHubReactionContent, + PRComment +} from '../../../shared/github/comment-types' export const GITHUB_REACTION_ORDER: readonly GitHubReactionContent[] = [ '+1', diff --git a/src/renderer/src/lib/project-host-clone-url.test.ts b/src/renderer/src/lib/project-host-clone-url.test.ts index 4850e41a308..f383945ce93 100644 --- a/src/renderer/src/lib/project-host-clone-url.test.ts +++ b/src/renderer/src/lib/project-host-clone-url.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Project } from '../../../shared/types' +import type { Project } from '../../../shared/project-types' import { getProjectHostCloneUrl } from './project-host-clone-url' function createProject(overrides: Partial = {}): Project { diff --git a/src/renderer/src/lib/project-host-clone-url.ts b/src/renderer/src/lib/project-host-clone-url.ts index e32e9a699d1..b7ff42ffbf4 100644 --- a/src/renderer/src/lib/project-host-clone-url.ts +++ b/src/renderer/src/lib/project-host-clone-url.ts @@ -1,4 +1,4 @@ -import type { Project } from '../../../shared/types' +import type { Project } from '../../../shared/project-types' export function getProjectHostCloneUrl(project: Project | null | undefined): string | null { const identity = project?.providerIdentity diff --git a/src/renderer/src/lib/project-host-setup-options.test.ts b/src/renderer/src/lib/project-host-setup-options.test.ts index a5e5e2056d4..9eee19f9725 100644 --- a/src/renderer/src/lib/project-host-setup-options.test.ts +++ b/src/renderer/src/lib/project-host-setup-options.test.ts @@ -8,7 +8,8 @@ import { PROJECT_HOST_SETUP_RUNTIME_CAPABILITY, WORKSPACE_RUN_CONTEXT_RUNTIME_CAPABILITY } from '../../../shared/protocol-version' -import type { ProjectHostSetup, Repo } from '../../../shared/types' +import type { ProjectHostSetup } from '../../../shared/project-types' +import type { Repo } from '../../../shared/repo-types' import { buildProjectHostSetupOptions } from './project-host-setup-options' const FULL_HOST_MODEL_RUNTIME_CAPABILITIES = [ diff --git a/src/renderer/src/lib/project-host-setup-options.ts b/src/renderer/src/lib/project-host-setup-options.ts index 9a8039cf19f..eca4dc397c6 100644 --- a/src/renderer/src/lib/project-host-setup-options.ts +++ b/src/renderer/src/lib/project-host-setup-options.ts @@ -11,7 +11,8 @@ import { PROJECT_HOST_SETUP_RUNTIME_CAPABILITY, WORKSPACE_RUN_CONTEXT_RUNTIME_CAPABILITY } from '../../../shared/protocol-version' -import type { ProjectHostSetup, Repo } from '../../../shared/types' +import type { ProjectHostSetup } from '../../../shared/project-types' +import type { Repo } from '../../../shared/repo-types' export type ProjectHostSetupOption = | { diff --git a/src/renderer/src/lib/project-host-workspace-target.test.ts b/src/renderer/src/lib/project-host-workspace-target.test.ts index 08484c99b5e..d49cb568763 100644 --- a/src/renderer/src/lib/project-host-workspace-target.test.ts +++ b/src/renderer/src/lib/project-host-workspace-target.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import type { ExecutionHostId } from '../../../shared/execution-host' -import type { Project, ProjectHostSetup, Repo } from '../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../shared/project-types' +import type { Repo } from '../../../shared/repo-types' import { resolveWorkspaceCreationRepoId, resolveWorkspaceCreationTarget diff --git a/src/renderer/src/lib/project-host-workspace-target.ts b/src/renderer/src/lib/project-host-workspace-target.ts index 09a63309138..a7b08dc6617 100644 --- a/src/renderer/src/lib/project-host-workspace-target.ts +++ b/src/renderer/src/lib/project-host-workspace-target.ts @@ -5,7 +5,8 @@ import { type ExecutionHostScope } from '../../../shared/execution-host' import { projectHostSetupProjectionFromRepos } from '../../../shared/project-host-setup-projection' -import type { Project, ProjectHostSetup, Repo } from '../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../shared/project-types' +import type { Repo } from '../../../shared/repo-types' import { resolveComposerRepoId } from './new-workspace-composer-repo' export type WorkspaceCreationTarget = { diff --git a/src/renderer/src/lib/project-skill-runtime.ts b/src/renderer/src/lib/project-skill-runtime.ts index 4366d6a9f58..1f10495a4aa 100644 --- a/src/renderer/src/lib/project-skill-runtime.ts +++ b/src/renderer/src/lib/project-skill-runtime.ts @@ -1,6 +1,6 @@ import type { ProjectExecutionRuntimeResolution } from '../../../shared/project-execution-runtime' import type { SkillDiscoveryTarget } from '../../../shared/skills' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { resolveWindowsShellStartupFamily } from '../../../shared/windows-terminal-shell' import { translate } from '@/i18n/i18n' diff --git a/src/renderer/src/lib/provider-runtime-context.ts b/src/renderer/src/lib/provider-runtime-context.ts index 7b949e587ac..772ca7ffb42 100644 --- a/src/renderer/src/lib/provider-runtime-context.ts +++ b/src/renderer/src/lib/provider-runtime-context.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' export function getProviderRuntimeContextKey( settings: Pick | null | undefined diff --git a/src/renderer/src/lib/quick-workspace-agent-selection.ts b/src/renderer/src/lib/quick-workspace-agent-selection.ts index 51fe886e7eb..09801125d0d 100644 --- a/src/renderer/src/lib/quick-workspace-agent-selection.ts +++ b/src/renderer/src/lib/quick-workspace-agent-selection.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { isTuiAgentEnabled, pickTuiAgent, diff --git a/src/renderer/src/lib/recent-workspace-tab-rows.test.ts b/src/renderer/src/lib/recent-workspace-tab-rows.test.ts index 1e71bb74f63..c36a48dc615 100644 --- a/src/renderer/src/lib/recent-workspace-tab-rows.test.ts +++ b/src/renderer/src/lib/recent-workspace-tab-rows.test.ts @@ -7,7 +7,7 @@ import { } from './recent-workspace-tab-rows' import type { TabPaneInputSources } from '@/components/sidebar/smart-attention' import type { AgentStatusEntry, AgentStatusState } from '../../../shared/agent-status-types' -import type { TabGroup } from '../../../shared/types' +import type { TabGroup } from '../../../shared/tab-types' const NOW = 1_700_000_000_000 const LEAF_ID = '11111111-2222-4333-8444-555555555555' diff --git a/src/renderer/src/lib/recent-workspace-tab-rows.ts b/src/renderer/src/lib/recent-workspace-tab-rows.ts index b990ef1bdd2..5005030b81a 100644 --- a/src/renderer/src/lib/recent-workspace-tab-rows.ts +++ b/src/renderer/src/lib/recent-workspace-tab-rows.ts @@ -8,7 +8,8 @@ import { } from '@/components/sidebar/smart-attention' import { tabHasLivePty } from './tab-has-live-pty' import type { WorktreeStatus } from './worktree-status' -import type { TabGroup, TerminalTab } from '../../../shared/types' +import type { TabGroup } from '../../../shared/tab-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' /** * Row model for Cmd+J's empty-query "Recent chats & terminals" section. diff --git a/src/renderer/src/lib/repo-runtime-owner.test.ts b/src/renderer/src/lib/repo-runtime-owner.test.ts index c34dda10e0f..b341dbdbd6a 100644 --- a/src/renderer/src/lib/repo-runtime-owner.test.ts +++ b/src/renderer/src/lib/repo-runtime-owner.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it } from 'vitest' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import type { RepoRuntimeOwnerState } from './repo-runtime-owner' import { getExplicitRuntimeOwnerEnvironmentId, diff --git a/src/renderer/src/lib/repo-runtime-owner.ts b/src/renderer/src/lib/repo-runtime-owner.ts index 8cd59142816..81930d72a33 100644 --- a/src/renderer/src/lib/repo-runtime-owner.ts +++ b/src/renderer/src/lib/repo-runtime-owner.ts @@ -3,7 +3,8 @@ import { getSettingsFocusedExecutionHostId, parseExecutionHostId } from '../../../shared/execution-host' -import type { GlobalSettings, Repo } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { Repo } from '../../../shared/repo-types' export type RepoRuntimeOwnerState = { repos?: readonly Pick[] diff --git a/src/renderer/src/lib/repo-search.test.ts b/src/renderer/src/lib/repo-search.test.ts index 884093ac25f..c355807896c 100644 --- a/src/renderer/src/lib/repo-search.test.ts +++ b/src/renderer/src/lib/repo-search.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { REPO_SEARCH_QUERY_MAX_BYTES, isRepoSearchQueryTooLarge, searchRepos } from './repo-search' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' function makeRepo(overrides: Partial = {}): Repo { return { diff --git a/src/renderer/src/lib/repo-search.ts b/src/renderer/src/lib/repo-search.ts index 5a223af6392..c36458e808f 100644 --- a/src/renderer/src/lib/repo-search.ts +++ b/src/renderer/src/lib/repo-search.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { isClipboardTextByteLengthOverLimit } from '../../../shared/clipboard-text' // Display-name matches must always outrank path-only matches. This offset is diff --git a/src/renderer/src/lib/repo-slug-cache.test.ts b/src/renderer/src/lib/repo-slug-cache.test.ts index 491afbc22b9..6f01ba8d46e 100644 --- a/src/renderer/src/lib/repo-slug-cache.test.ts +++ b/src/renderer/src/lib/repo-slug-cache.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it } from 'vitest' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { githubRepoIdentityKey } from '../../../shared/github/repository-identity-key' import { REPO_SLUG_FAILURE_TTL_MS, diff --git a/src/renderer/src/lib/repo-slug-cache.ts b/src/renderer/src/lib/repo-slug-cache.ts index 9c2a455f574..7c73372d5ee 100644 --- a/src/renderer/src/lib/repo-slug-cache.ts +++ b/src/renderer/src/lib/repo-slug-cache.ts @@ -1,7 +1,8 @@ // Why: the slug → Repo cache and its synchronous lookup live here (separate from // repo-slug-index.ts) so store slices can import the sync lookup without pulling // in repo-slug-index's `@/store` dependency, which would form an import cycle. -import type { GlobalSettings, Repo } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { Repo } from '../../../shared/repo-types' import { getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' import { getSettingsForRepoRuntimeOwner } from './repo-runtime-owner' import { diff --git a/src/renderer/src/lib/repo-slug-index.test.ts b/src/renderer/src/lib/repo-slug-index.test.ts index 0b710cf5438..d09d515d627 100644 --- a/src/renderer/src/lib/repo-slug-index.test.ts +++ b/src/renderer/src/lib/repo-slug-index.test.ts @@ -2,7 +2,7 @@ import { act, cleanup, renderHook, waitFor } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { useAppStore } from '@/store' import { useRepoSlugIndex } from './repo-slug-index' import { REPO_SLUG_FAILURE_TTL_MS, clearRepoSlugCacheValues } from './repo-slug-cache' diff --git a/src/renderer/src/lib/repo-slug-index.ts b/src/renderer/src/lib/repo-slug-index.ts index 07d6896cb08..51460ceb551 100644 --- a/src/renderer/src/lib/repo-slug-index.ts +++ b/src/renderer/src/lib/repo-slug-index.ts @@ -15,7 +15,8 @@ // process (`repoSlug` reads `.git/config`). import { useEffect, useMemo, useRef, useState } from 'react' import { useAppStore } from '@/store' -import type { Repo, GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { Repo } from '../../../shared/repo-types' import { callRuntimeRpc, getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' import { deleteRepoSlugCacheKey, diff --git a/src/renderer/src/lib/run-quick-command-in-new-tab.ts b/src/renderer/src/lib/run-quick-command-in-new-tab.ts index 526d35e5b9c..1d822ad8fc2 100644 --- a/src/renderer/src/lib/run-quick-command-in-new-tab.ts +++ b/src/renderer/src/lib/run-quick-command-in-new-tab.ts @@ -6,7 +6,7 @@ import { isTerminalAgentQuickCommand, supportsTerminalAgentQuickCommand } from '../../../shared/terminal-quick-commands' -import type { TerminalQuickCommand } from '../../../shared/types' +import type { TerminalQuickCommand } from '../../../shared/terminal-quick-command-types' export type RunQuickCommandInNewTabArgs = { command: TerminalQuickCommand diff --git a/src/renderer/src/lib/running-agent-targets.test.ts b/src/renderer/src/lib/running-agent-targets.test.ts index addf1741fa8..81126bdbda0 100644 --- a/src/renderer/src/lib/running-agent-targets.test.ts +++ b/src/renderer/src/lib/running-agent-targets.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest' import type { AppState } from '@/store/types' import type { AgentStatusEntry, AgentStatusState } from '../../../shared/agent-status-types' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { makePaneKey } from '../../../shared/stable-pane-id' import { deriveRunningAgentSendTargets, diff --git a/src/renderer/src/lib/running-agent-targets.ts b/src/renderer/src/lib/running-agent-targets.ts index e483b04b4a9..1eb3f0a227d 100644 --- a/src/renderer/src/lib/running-agent-targets.ts +++ b/src/renderer/src/lib/running-agent-targets.ts @@ -1,6 +1,6 @@ import type { AppState } from '@/store/types' import type { AgentStatusEntry } from '../../../shared/agent-status-types' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { parsePaneKey } from '../../../shared/stable-pane-id' import { resolvePaneAgentActivity } from '@/lib/pane-agent-evidence' import { detectAgentSendTitleStatus } from './agent-send-title-status' diff --git a/src/renderer/src/lib/runtime-agent-background-create.ts b/src/renderer/src/lib/runtime-agent-background-create.ts index 70915ae63d4..71362fa4dd3 100644 --- a/src/renderer/src/lib/runtime-agent-background-create.ts +++ b/src/renderer/src/lib/runtime-agent-background-create.ts @@ -2,7 +2,7 @@ import type { SleepingAgentLaunchConfig } from '../../../shared/agent-session-re import type { StartupCommandDelivery } from '../../../shared/codex-startup-delivery' import type { SessionOptionValue } from '../../../shared/native-chat-session-options' import type { RuntimeTerminalCreate } from '../../../shared/runtime-types' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { createAgentSessionCreateOperation, toAgentLaunchPreferences, diff --git a/src/renderer/src/lib/runtime-pane-title-leaf-id.test.ts b/src/renderer/src/lib/runtime-pane-title-leaf-id.test.ts index be00d6b7098..b81d8994eae 100644 --- a/src/renderer/src/lib/runtime-pane-title-leaf-id.test.ts +++ b/src/renderer/src/lib/runtime-pane-title-leaf-id.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalLayoutSnapshot } from '../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../shared/terminal-tab-types' import { resolveRuntimePaneTitleForLeaf, resolveRuntimePaneTitleLeafResolution diff --git a/src/renderer/src/lib/runtime-pane-title-leaf-id.ts b/src/renderer/src/lib/runtime-pane-title-leaf-id.ts index c18e752e883..78c669cef66 100644 --- a/src/renderer/src/lib/runtime-pane-title-leaf-id.ts +++ b/src/renderer/src/lib/runtime-pane-title-leaf-id.ts @@ -1,6 +1,9 @@ import { FIRST_PANE_ID } from '../../../shared/pane-key' import { isTerminalLeafId } from '../../../shared/stable-pane-id' -import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode } from '../../../shared/types' +import type { + TerminalLayoutSnapshot, + TerminalPaneLayoutNode +} from '../../../shared/terminal-tab-types' export type RuntimePaneTitleLeafResolution = { title: string | null diff --git a/src/renderer/src/lib/session-write-subscriber.ts b/src/renderer/src/lib/session-write-subscriber.ts index ba1e2c7cdd0..05e49127e81 100644 --- a/src/renderer/src/lib/session-write-subscriber.ts +++ b/src/renderer/src/lib/session-write-subscriber.ts @@ -1,6 +1,6 @@ import type { AppState } from '../store' import { isDecorativeAgentTitleFrameChange } from '../../../shared/agent-decorative-title-signature' -import type { WorkspaceSessionPatch } from '../../../shared/types' +import type { WorkspaceSessionPatch } from '../../../shared/workspace-session-state-types' import { SESSION_RELEVANT_FIELDS, shouldPersistWorkspaceSession } from './workspace-session' import { buildWorkspaceSessionPatch } from './workspace-session-patch' diff --git a/src/renderer/src/lib/setup-script-prompt.test.ts b/src/renderer/src/lib/setup-script-prompt.test.ts index 605142bc154..b85c0baa66f 100644 --- a/src/renderer/src/lib/setup-script-prompt.test.ts +++ b/src/renderer/src/lib/setup-script-prompt.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import type { SetupScriptImportCandidate } from '../../../shared/setup-script-imports' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { getRepoHostIdentityForParts } from '@/store/slices/repo-host-identity' import { buildImportedHookSettings, @@ -220,10 +220,7 @@ describe('setup script prompt inspection', () => { getSetupScriptPromptDismissalKey(remoteIdentity) ] expect( - filterSetupScriptPromptDismissalsToValidRepos( - input, - new Set([localIdentity, remoteIdentity]) - ) + filterSetupScriptPromptDismissalsToValidRepos(input, new Set([localIdentity, remoteIdentity])) ).toBe(input) }) diff --git a/src/renderer/src/lib/setup-script-prompt.ts b/src/renderer/src/lib/setup-script-prompt.ts index 6adbc04b092..a1315b1c73f 100644 --- a/src/renderer/src/lib/setup-script-prompt.ts +++ b/src/renderer/src/lib/setup-script-prompt.ts @@ -1,7 +1,8 @@ import { getDefaultRepoHookSettings } from '../../../shared/constants' import { resolveHookCommandSourcePolicy } from '../../../shared/hook-command-source-policy' import type { SetupScriptImportCandidate } from '../../../shared/setup-script-imports' -import type { Repo, RepoHookSettings } from '../../../shared/types' +import type { RepoHookSettings } from '../../../shared/orca-yaml-hook-types' +import type { Repo } from '../../../shared/repo-types' import type { HookCheckResult } from '@/runtime/runtime-hooks-client' import { isRuntimeScopeForbiddenError } from '@/runtime/runtime-rpc-client' import { hasEffectiveSetupCommand } from './setup-script-status' diff --git a/src/renderer/src/lib/setup-script-status.ts b/src/renderer/src/lib/setup-script-status.ts index a23d0d1a06f..33afbfbcc4a 100644 --- a/src/renderer/src/lib/setup-script-status.ts +++ b/src/renderer/src/lib/setup-script-status.ts @@ -1,5 +1,5 @@ import { resolveHookCommandSourcePolicy } from '../../../shared/hook-command-source-policy' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import type { HookCheckResult } from '@/runtime/runtime-hooks-client' export function hasEffectiveSetupCommand(repo: Repo, hooksResult: HookCheckResult): boolean { diff --git a/src/renderer/src/lib/simulator-palette-search.test.ts b/src/renderer/src/lib/simulator-palette-search.test.ts index 989f70554f6..4a0b33fcec5 100644 --- a/src/renderer/src/lib/simulator-palette-search.test.ts +++ b/src/renderer/src/lib/simulator-palette-search.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { Tab, TabGroup, Worktree } from '../../../shared/types' +import type { Tab, TabGroup } from '../../../shared/tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { SIMULATOR_PALETTE_QUERY_MAX_BYTES, buildSearchableSimulatorTabs, diff --git a/src/renderer/src/lib/simulator-palette-search.ts b/src/renderer/src/lib/simulator-palette-search.ts index 148d723f8f2..5919fed1aed 100644 --- a/src/renderer/src/lib/simulator-palette-search.ts +++ b/src/renderer/src/lib/simulator-palette-search.ts @@ -1,5 +1,6 @@ import type { ExecutionHostId } from '../../../shared/execution-host' -import type { Tab, TabGroup, Worktree } from '../../../shared/types' +import type { Tab, TabGroup } from '../../../shared/tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { isClipboardTextByteLengthOverLimit } from '../../../shared/clipboard-text' import { selectPaletteTypeAliasMatch } from './palette-type-alias-match' import { compareBaseSensitivityLocaleText } from './locale-text-collators' diff --git a/src/renderer/src/lib/simulator-tab-palette-activation.test.ts b/src/renderer/src/lib/simulator-tab-palette-activation.test.ts index 07c1090f622..745ed5a33e6 100644 --- a/src/renderer/src/lib/simulator-tab-palette-activation.test.ts +++ b/src/renderer/src/lib/simulator-tab-palette-activation.test.ts @@ -1,7 +1,8 @@ // @vitest-environment happy-dom import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Tab, TabGroup, Worktree } from '../../../shared/types' +import type { Tab, TabGroup } from '../../../shared/tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { useAppStore } from '@/store' import type { AppState } from '@/store/types' diff --git a/src/renderer/src/lib/sleeping-agent-pane-ownership.ts b/src/renderer/src/lib/sleeping-agent-pane-ownership.ts index 29cc0a0e6d9..4ebed782f56 100644 --- a/src/renderer/src/lib/sleeping-agent-pane-ownership.ts +++ b/src/renderer/src/lib/sleeping-agent-pane-ownership.ts @@ -4,7 +4,7 @@ import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode, TerminalTab -} from '../../../shared/types' +} from '../../../shared/terminal-tab-types' import { parseLegacyNumericPaneKey, parsePaneKey } from '../../../shared/stable-pane-id' import { isWebTerminalSurfaceTabId } from '../../../shared/terminal-surface-id' diff --git a/src/renderer/src/lib/smart-github-submit.ts b/src/renderer/src/lib/smart-github-submit.ts index 9d500d98eb9..fee799ce224 100644 --- a/src/renderer/src/lib/smart-github-submit.ts +++ b/src/renderer/src/lib/smart-github-submit.ts @@ -1,4 +1,5 @@ -import type { GitHubWorkItem, GitPushTarget } from '../../../shared/types' +import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { GitPushTarget } from '../../../shared/worktree/types' import type { TaskSourceContext } from '../../../shared/task-source-context' import { getTaskSourceCacheScope } from '../../../shared/task-source-context' import { getLinkedWorkItemWorkspaceName } from '../../../shared/workspace-name' diff --git a/src/renderer/src/lib/source-control-agent-action-plan.ts b/src/renderer/src/lib/source-control-agent-action-plan.ts index 05bc1de3c28..5e6681975e6 100644 --- a/src/renderer/src/lib/source-control-agent-action-plan.ts +++ b/src/renderer/src/lib/source-control-agent-action-plan.ts @@ -7,7 +7,7 @@ import { import { CLIENT_PLATFORM } from '@/lib/new-workspace' import { TUI_AGENT_CONFIG } from '../../../shared/tui-agent-config' import { isTuiAgentEnabled } from '../../../shared/tui-agent-selection' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { translate } from '@/i18n/i18n' import { resolveLocalWindowsAgentStartupShell } from '../../../shared/windows-terminal-shell' import type { SessionOptionValue } from '../../../shared/native-chat-session-options' diff --git a/src/renderer/src/lib/source-control-launch-agent-selection.test.ts b/src/renderer/src/lib/source-control-launch-agent-selection.test.ts index 63a053f0186..3ef15b580d9 100644 --- a/src/renderer/src/lib/source-control-launch-agent-selection.test.ts +++ b/src/renderer/src/lib/source-control-launch-agent-selection.test.ts @@ -1,6 +1,8 @@ import { describe, expect, it } from 'vitest' import { getDefaultSettings } from '../../../shared/constants' -import type { GlobalSettings, Repo, TuiAgent } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { Repo } from '../../../shared/repo-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { resolveSourceControlLaunchAgentScope, summarizeReposOverridingActionRecipe diff --git a/src/renderer/src/lib/source-control-launch-agent-selection.ts b/src/renderer/src/lib/source-control-launch-agent-selection.ts index c72098c9481..379f5640544 100644 --- a/src/renderer/src/lib/source-control-launch-agent-selection.ts +++ b/src/renderer/src/lib/source-control-launch-agent-selection.ts @@ -9,7 +9,9 @@ import type { SourceControlActionRecipe } from '../../../shared/source-control-ai-actions' import { filterEnabledTuiAgents } from '../../../shared/tui-agent-selection' -import type { GlobalSettings, Repo, TuiAgent } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { Repo } from '../../../shared/repo-types' +import type { TuiAgent } from '../../../shared/tui-agent' export function readSourceControlLaunchRecipeAgentId( recipe: Pick | null | undefined diff --git a/src/renderer/src/lib/startup-ui-hydration.test.ts b/src/renderer/src/lib/startup-ui-hydration.test.ts index 13e954ca260..748c2619c9a 100644 --- a/src/renderer/src/lib/startup-ui-hydration.test.ts +++ b/src/renderer/src/lib/startup-ui-hydration.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import { getDefaultUIState } from '../../../shared/constants' -import type { PersistedUIState } from '../../../shared/types' +import type { PersistedUIState } from '../../../shared/persisted-ui-state-types' import { getStartupErrorFallbackUI, hydratePersistedUIAfterStartupRead diff --git a/src/renderer/src/lib/startup-ui-hydration.ts b/src/renderer/src/lib/startup-ui-hydration.ts index aeb14f9c73e..fe53e945d0f 100644 --- a/src/renderer/src/lib/startup-ui-hydration.ts +++ b/src/renderer/src/lib/startup-ui-hydration.ts @@ -4,7 +4,7 @@ import { DEFAULT_STATUS_BAR_ITEMS, DEFAULT_WORKTREE_CARD_PROPERTIES } from '../../../shared/constants' -import type { PersistedUIState } from '../../../shared/types' +import type { PersistedUIState } from '../../../shared/persisted-ui-state-types' export function hydratePersistedUIAfterStartupRead({ persistedUI, diff --git a/src/renderer/src/lib/tab-agent-status-index.test.ts b/src/renderer/src/lib/tab-agent-status-index.test.ts index 77ca75e4d2d..2f9f2793d16 100644 --- a/src/renderer/src/lib/tab-agent-status-index.test.ts +++ b/src/renderer/src/lib/tab-agent-status-index.test.ts @@ -14,7 +14,8 @@ import type { AgentStatusState, AgentType } from '../../../shared/agent-status-types' -import type { TerminalLayoutSnapshot, TerminalTab, TuiAgent } from '../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import type { RetainedAgentEntry } from '@/store/slices/agent-status' // ─── Oracle: the pre-index full-map scans, kept here (not in src) so the diff --git a/src/renderer/src/lib/tab-agent-status-index.ts b/src/renderer/src/lib/tab-agent-status-index.ts index daa1b4fb273..30dff454624 100644 --- a/src/renderer/src/lib/tab-agent-status-index.ts +++ b/src/renderer/src/lib/tab-agent-status-index.ts @@ -1,5 +1,5 @@ import type { AgentStatusEntry } from '../../../shared/agent-status-types' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' import { parsePaneKey } from '../../../shared/stable-pane-id' import type { RetainedAgentEntry } from '@/store/slices/agent-status' import { agentTypeToIconAgent } from './agent-status' diff --git a/src/renderer/src/lib/tab-agent.test.ts b/src/renderer/src/lib/tab-agent.test.ts index 4d1f48837f1..3f564adbfb7 100644 --- a/src/renderer/src/lib/tab-agent.test.ts +++ b/src/renderer/src/lib/tab-agent.test.ts @@ -8,7 +8,8 @@ import { resolveSiblingTabAgent } from './tab-agent' import type { AgentStatusEntry, AgentType } from '../../../shared/agent-status-types' -import type { TerminalLayoutSnapshot, TerminalTab, TuiAgent } from '../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import type { RetainedAgentEntry } from '@/store/slices/agent-status' // Composed exactly the way useTabAgent layers the resolvers: focused pane diff --git a/src/renderer/src/lib/tab-agent.ts b/src/renderer/src/lib/tab-agent.ts index 5512ce5e8a5..a6b99b4164e 100644 --- a/src/renderer/src/lib/tab-agent.ts +++ b/src/renderer/src/lib/tab-agent.ts @@ -1,5 +1,6 @@ import type { AgentStatusEntry } from '../../../shared/agent-status-types' -import type { TerminalLayoutSnapshot, TuiAgent } from '../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { isTerminalLeafId, makePaneKey } from '../../../shared/stable-pane-id' import type { RetainedAgentEntry } from '@/store/slices/agent-status' import { agentTypeToIconAgent } from './agent-status' diff --git a/src/renderer/src/lib/tab-number-shortcuts.test.ts b/src/renderer/src/lib/tab-number-shortcuts.test.ts index 4840e6aafd0..defee201fca 100644 --- a/src/renderer/src/lib/tab-number-shortcuts.test.ts +++ b/src/renderer/src/lib/tab-number-shortcuts.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Tab, TabGroup } from '../../../shared/types' +import type { Tab, TabGroup } from '../../../shared/tab-types' import type { AppState } from '@/store/types' import { resolveTabNumberShortcutTarget } from './tab-number-shortcuts' diff --git a/src/renderer/src/lib/tab-number-shortcuts.ts b/src/renderer/src/lib/tab-number-shortcuts.ts index 27a65675ce8..56968ad4eda 100644 --- a/src/renderer/src/lib/tab-number-shortcuts.ts +++ b/src/renderer/src/lib/tab-number-shortcuts.ts @@ -3,7 +3,7 @@ import { useAppStore } from '@/store' import type { AppState } from '@/store/types' import { getRuntimeEnvironmentIdForWorktree } from '@/lib/worktree-runtime-owner' import { dedupeTabOrder } from '@/store/slices/tab-group-state' -import type { Tab } from '../../../shared/types' +import type { Tab } from '../../../shared/tab-types' import { activateWebRuntimeSessionTab, isWebRuntimeSessionActive diff --git a/src/renderer/src/lib/terminal-layout-equality.ts b/src/renderer/src/lib/terminal-layout-equality.ts index 716482764e8..fd023897cab 100644 --- a/src/renderer/src/lib/terminal-layout-equality.ts +++ b/src/renderer/src/lib/terminal-layout-equality.ts @@ -1,4 +1,7 @@ -import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode } from '../../../shared/types' +import type { + TerminalLayoutSnapshot, + TerminalPaneLayoutNode +} from '../../../shared/terminal-tab-types' function sameStringRecord( a: Readonly> | undefined, diff --git a/src/renderer/src/lib/terminal-pane-title-sanitization.test.ts b/src/renderer/src/lib/terminal-pane-title-sanitization.test.ts index d7195203c2d..f65d463941b 100644 --- a/src/renderer/src/lib/terminal-pane-title-sanitization.test.ts +++ b/src/renderer/src/lib/terminal-pane-title-sanitization.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' import { sanitizeTerminalLayoutPaneTitles } from './terminal-pane-title-sanitization' const TAB: TerminalTab = { diff --git a/src/renderer/src/lib/terminal-pane-title-sanitization.ts b/src/renderer/src/lib/terminal-pane-title-sanitization.ts index 542562ceca9..14f94c9d166 100644 --- a/src/renderer/src/lib/terminal-pane-title-sanitization.ts +++ b/src/renderer/src/lib/terminal-pane-title-sanitization.ts @@ -2,7 +2,7 @@ import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode, TerminalTab -} from '../../../shared/types' +} from '../../../shared/terminal-tab-types' function collectLeafIds(node: TerminalPaneLayoutNode | null): string[] { if (!node) { diff --git a/src/renderer/src/lib/terminal-quick-command-project-scope.test.ts b/src/renderer/src/lib/terminal-quick-command-project-scope.test.ts index bfde748ee85..4b428bafe50 100644 --- a/src/renderer/src/lib/terminal-quick-command-project-scope.test.ts +++ b/src/renderer/src/lib/terminal-quick-command-project-scope.test.ts @@ -1,7 +1,9 @@ import { describe, expect, it } from 'vitest' import type { ExecutionHostId } from '../../../shared/execution-host' import { projectHostSetupProjectionFromRepos } from '../../../shared/project-host-setup-projection' -import type { ProjectHostSetup, Repo, TerminalQuickCommand } from '../../../shared/types' +import type { ProjectHostSetup } from '../../../shared/project-types' +import type { Repo } from '../../../shared/repo-types' +import type { TerminalQuickCommand } from '../../../shared/terminal-quick-command-types' import { terminalQuickCommandMatchesWorkspaceProject } from './terminal-quick-command-project-scope' type ScopeSetup = Pick diff --git a/src/renderer/src/lib/terminal-quick-command-project-scope.ts b/src/renderer/src/lib/terminal-quick-command-project-scope.ts index 7b48a7b3ada..c7422c0228e 100644 --- a/src/renderer/src/lib/terminal-quick-command-project-scope.ts +++ b/src/renderer/src/lib/terminal-quick-command-project-scope.ts @@ -1,6 +1,7 @@ import type { ExecutionHostId } from '../../../shared/execution-host' import { getTerminalQuickCommandScope } from '../../../shared/terminal-quick-commands' -import type { ProjectHostSetup, TerminalQuickCommand } from '../../../shared/types' +import type { ProjectHostSetup } from '../../../shared/project-types' +import type { TerminalQuickCommand } from '../../../shared/terminal-quick-command-types' type TerminalQuickCommandProjectContext = { commandHostId: ExecutionHostId diff --git a/src/renderer/src/lib/terminal-quick-command-search.test.ts b/src/renderer/src/lib/terminal-quick-command-search.test.ts index 4d295e3c73d..6aab45e4ed2 100644 --- a/src/renderer/src/lib/terminal-quick-command-search.test.ts +++ b/src/renderer/src/lib/terminal-quick-command-search.test.ts @@ -5,7 +5,7 @@ import { TERMINAL_QUICK_COMMAND_SEARCH_QUERY_MAX_BYTES, searchTerminalQuickCommands } from './terminal-quick-command-search' -import type { TerminalQuickCommand } from '../../../shared/types' +import type { TerminalQuickCommand } from '../../../shared/terminal-quick-command-types' const commands: TerminalQuickCommand[] = [ { diff --git a/src/renderer/src/lib/terminal-quick-command-search.ts b/src/renderer/src/lib/terminal-quick-command-search.ts index 8530e915d07..4c780dc3808 100644 --- a/src/renderer/src/lib/terminal-quick-command-search.ts +++ b/src/renderer/src/lib/terminal-quick-command-search.ts @@ -3,7 +3,7 @@ import { isTerminalAgentQuickCommand } from '../../../shared/terminal-quick-commands' import { isClipboardTextByteLengthOverLimit } from '../../../shared/clipboard-text' -import type { TerminalQuickCommand } from '../../../shared/types' +import type { TerminalQuickCommand } from '../../../shared/terminal-quick-command-types' type RankedCommand = { command: TerminalQuickCommand diff --git a/src/renderer/src/lib/terminal-theme.ts b/src/renderer/src/lib/terminal-theme.ts index e6db774a54c..365cb63f7b9 100644 --- a/src/renderer/src/lib/terminal-theme.ts +++ b/src/renderer/src/lib/terminal-theme.ts @@ -1,6 +1,6 @@ import type { ITheme } from '@xterm/xterm' import { getTheme, getThemeNames } from './terminal-themes-data' -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { makeCustomTerminalThemeSelection, normalizeTerminalCustomThemes, diff --git a/src/renderer/src/lib/unread-badge-count.test.ts b/src/renderer/src/lib/unread-badge-count.test.ts index fdf20dfab30..8d031579522 100644 --- a/src/renderer/src/lib/unread-badge-count.test.ts +++ b/src/renderer/src/lib/unread-badge-count.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { TerminalTab, Worktree } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { getUnreadBadgeCount } from './unread-badge-count' function worktree(id: string, isUnread: boolean): Worktree { diff --git a/src/renderer/src/lib/unread-badge-count.ts b/src/renderer/src/lib/unread-badge-count.ts index 79cd2ffa36b..8ffd7e02e2e 100644 --- a/src/renderer/src/lib/unread-badge-count.ts +++ b/src/renderer/src/lib/unread-badge-count.ts @@ -1,4 +1,5 @@ -import type { TerminalTab, Worktree } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { Worktree } from '../../../shared/worktree/types' export function getUnreadBadgeCount({ worktreesByRepo, diff --git a/src/renderer/src/lib/update-check-click-options.ts b/src/renderer/src/lib/update-check-click-options.ts index 1734c4f1968..ffb7fa99900 100644 --- a/src/renderer/src/lib/update-check-click-options.ts +++ b/src/renderer/src/lib/update-check-click-options.ts @@ -1,4 +1,4 @@ -import type { UpdateCheckOptions } from '../../../shared/types' +import type { UpdateCheckOptions } from '../../../shared/update-status-types' import { getShortcutPlatform } from './shortcut-platform' type UpdateCheckClickEvent = Pick diff --git a/src/renderer/src/lib/use-tab-agent-opencode-native-title.test.ts b/src/renderer/src/lib/use-tab-agent-opencode-native-title.test.ts index abf724a67c1..a527a47758f 100644 --- a/src/renderer/src/lib/use-tab-agent-opencode-native-title.test.ts +++ b/src/renderer/src/lib/use-tab-agent-opencode-native-title.test.ts @@ -6,7 +6,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { useAppStore } from '@/store' import type { SleepingAgentSessionRecord } from '../../../shared/agent-session-resume' import { makePaneKey } from '../../../shared/stable-pane-id' -import type { TerminalLayoutSnapshot, TerminalTab, TuiAgent } from '../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { parseWorkspaceSession } from '../../../shared/workspace-session-schema' import { resolveTabAgentFromSignals, useTabAgent } from './use-tab-agent' diff --git a/src/renderer/src/lib/use-tab-agent-process-signals.test.ts b/src/renderer/src/lib/use-tab-agent-process-signals.test.ts index e69b27a814b..380d5ba1d91 100644 --- a/src/renderer/src/lib/use-tab-agent-process-signals.test.ts +++ b/src/renderer/src/lib/use-tab-agent-process-signals.test.ts @@ -6,7 +6,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { useAppStore } from '@/store' import { makePaneKey } from '../../../shared/stable-pane-id' import type { PaneForegroundAgentEntry } from '@/store/slices/pane-foreground-agent' -import type { TerminalTab, TuiAgent } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { resolveLaunchedAgentExitEvidence, resolveTabAgentFromSignals, diff --git a/src/renderer/src/lib/use-tab-agent-retained-identity.test.ts b/src/renderer/src/lib/use-tab-agent-retained-identity.test.ts index cccc3e662fe..ddb579a6b72 100644 --- a/src/renderer/src/lib/use-tab-agent-retained-identity.test.ts +++ b/src/renderer/src/lib/use-tab-agent-retained-identity.test.ts @@ -7,7 +7,8 @@ import { useAppStore } from '@/store' import type { RetainedAgentEntry } from '@/store/slices/agent-status' import type { AgentStatusEntry, AgentType } from '../../../shared/agent-status-types' import { makePaneKey } from '../../../shared/stable-pane-id' -import type { TerminalLayoutSnapshot, TerminalTab, TuiAgent } from '../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { useTabAgent } from './use-tab-agent' const initialAppState = useAppStore.getInitialState() diff --git a/src/renderer/src/lib/use-tab-agent-sleeping-session.test.ts b/src/renderer/src/lib/use-tab-agent-sleeping-session.test.ts index 3963dd881b9..37c7345771e 100644 --- a/src/renderer/src/lib/use-tab-agent-sleeping-session.test.ts +++ b/src/renderer/src/lib/use-tab-agent-sleeping-session.test.ts @@ -9,7 +9,8 @@ import type { SleepingAgentSessionRecord } from '../../../shared/agent-session-resume' import { makePaneKey } from '../../../shared/stable-pane-id' -import type { TerminalTab, TuiAgent } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { resolveTabAgentFromSignals, useTabAgent } from './use-tab-agent' const initialAppState = useAppStore.getInitialState() diff --git a/src/renderer/src/lib/use-tab-agent.test.ts b/src/renderer/src/lib/use-tab-agent.test.ts index a0bcbea57b1..26dbaf201e9 100644 --- a/src/renderer/src/lib/use-tab-agent.test.ts +++ b/src/renderer/src/lib/use-tab-agent.test.ts @@ -6,7 +6,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { useAppStore } from '@/store' import type { AgentStatusEntry } from '../../../shared/agent-status-types' import { makePaneKey } from '../../../shared/stable-pane-id' -import type { TerminalLayoutSnapshot, TerminalTab, TuiAgent } from '../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { resolveTabAgentFromSignals, useTabAgent } from './use-tab-agent' const initialAppState = useAppStore.getInitialState() diff --git a/src/renderer/src/lib/use-tab-agent.ts b/src/renderer/src/lib/use-tab-agent.ts index 017126a860a..09afd63c43d 100644 --- a/src/renderer/src/lib/use-tab-agent.ts +++ b/src/renderer/src/lib/use-tab-agent.ts @@ -19,7 +19,8 @@ import { import { resolveCompatibleAgentTypeForOwner } from '../../../shared/agent-title-owner' import { isOpenCodeNativeTitle } from '../../../shared/opencode-terminal-title' import { resolvePaneAgentOwner } from '../../../shared/pane-agent-owner' -import type { TerminalTab, TuiAgent } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' // A shell name or the tab's neutral default title (where inferred-interrupt reset parks it); blank titles are no evidence. function titleShowsNoAgent(title: string, defaultTitle?: string): boolean { diff --git a/src/renderer/src/lib/workspace-activation-path-gate.test.ts b/src/renderer/src/lib/workspace-activation-path-gate.test.ts index d8110a747fb..8cec38ffa26 100644 --- a/src/renderer/src/lib/workspace-activation-path-gate.test.ts +++ b/src/renderer/src/lib/workspace-activation-path-gate.test.ts @@ -1,6 +1,7 @@ import { readFile } from 'node:fs/promises' import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { FolderWorkspace, ProjectGroup } from '../../../shared/types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../shared/project-group-types' import type { FolderWorkspacePathStatusReason } from '../../../shared/folder-workspace-path-status' import { folderWorkspaceKey } from '../../../shared/workspace-scope' import { resolveWindowShortcutAction } from '../../../shared/window-shortcut-policy' diff --git a/src/renderer/src/lib/workspace-port-localhost-label-selector.ts b/src/renderer/src/lib/workspace-port-localhost-label-selector.ts index 8e996cf6690..c5ac96299b5 100644 --- a/src/renderer/src/lib/workspace-port-localhost-label-selector.ts +++ b/src/renderer/src/lib/workspace-port-localhost-label-selector.ts @@ -1,5 +1,7 @@ import type { LocalhostWorktreeLabelRoute } from '../../../shared/localhost-worktree-labels' -import type { GlobalSettings, Project, Repo } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { Project } from '../../../shared/project-types' +import type { Repo } from '../../../shared/repo-types' import type { WorkspacePort } from '../../../shared/workspace-ports' import { useAppStore } from '@/store' import { localhostWorktreeLabelRouteForPort } from './workspace-port-localhost-label' diff --git a/src/renderer/src/lib/workspace-port-localhost-label.ts b/src/renderer/src/lib/workspace-port-localhost-label.ts index 896af05dde0..c060d8ab374 100644 --- a/src/renderer/src/lib/workspace-port-localhost-label.ts +++ b/src/renderer/src/lib/workspace-port-localhost-label.ts @@ -1,5 +1,7 @@ import type { LocalhostWorktreeLabelRoute } from '../../../shared/localhost-worktree-labels' -import type { GlobalSettings, Project, Repo } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { Project } from '../../../shared/project-types' +import type { Repo } from '../../../shared/repo-types' import type { WorkspacePort } from '../../../shared/workspace-ports' import { browserUrlForPort } from './workspace-port-urls' diff --git a/src/renderer/src/lib/workspace-runtime-host-ownership.ts b/src/renderer/src/lib/workspace-runtime-host-ownership.ts index 1b629a2fdc4..330ea86ad16 100644 --- a/src/renderer/src/lib/workspace-runtime-host-ownership.ts +++ b/src/renderer/src/lib/workspace-runtime-host-ownership.ts @@ -1,4 +1,4 @@ -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { parseExecutionHostId, toRuntimeExecutionHostId, diff --git a/src/renderer/src/lib/workspace-session-browser-history.test.ts b/src/renderer/src/lib/workspace-session-browser-history.test.ts index 505110ac427..0ae2df2c872 100644 --- a/src/renderer/src/lib/workspace-session-browser-history.test.ts +++ b/src/renderer/src/lib/workspace-session-browser-history.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { BrowserHistoryEntry } from '../../../shared/types' +import type { BrowserHistoryEntry } from '../../../shared/browser-workspace-types' import { MAX_BROWSER_HISTORY_ENTRIES } from '../../../shared/workspace-session-browser-history' import { buildWorkspaceSessionPayload, type WorkspaceSessionSnapshot } from './workspace-session' diff --git a/src/renderer/src/lib/workspace-session-focus-recency.ts b/src/renderer/src/lib/workspace-session-focus-recency.ts index 2db18208975..bc1ed783e46 100644 --- a/src/renderer/src/lib/workspace-session-focus-recency.ts +++ b/src/renderer/src/lib/workspace-session-focus-recency.ts @@ -1,4 +1,4 @@ -import type { WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' export function buildLastVisitedAtByWorktreeId(snapshot: { lastVisitedAtByWorktreeId: WorkspaceSessionState['lastVisitedAtByWorktreeId'] diff --git a/src/renderer/src/lib/workspace-session-host-field-ownership.ts b/src/renderer/src/lib/workspace-session-host-field-ownership.ts index db1ffe835bd..1b154a00a1d 100644 --- a/src/renderer/src/lib/workspace-session-host-field-ownership.ts +++ b/src/renderer/src/lib/workspace-session-host-field-ownership.ts @@ -1,4 +1,4 @@ -import type { WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' export type WorkspaceSessionFieldOwnership = | 'global' diff --git a/src/renderer/src/lib/workspace-session-host-persistence.test.ts b/src/renderer/src/lib/workspace-session-host-persistence.test.ts index d86fc3ba927..29d166d0816 100644 --- a/src/renderer/src/lib/workspace-session-host-persistence.test.ts +++ b/src/renderer/src/lib/workspace-session-host-persistence.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import { getDefaultWorkspaceSession } from '../../../shared/constants' -import type { WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' import { folderWorkspaceKey, worktreeWorkspaceKey } from '../../../shared/workspace-scope' import { buildHostIdByWorktreeId, diff --git a/src/renderer/src/lib/workspace-session-host-persistence.ts b/src/renderer/src/lib/workspace-session-host-persistence.ts index 47a93b4d577..b84b50909f7 100644 --- a/src/renderer/src/lib/workspace-session-host-persistence.ts +++ b/src/renderer/src/lib/workspace-session-host-persistence.ts @@ -1,4 +1,8 @@ -import type { Repo, WorkspaceSessionPatch, WorkspaceSessionState } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { + WorkspaceSessionPatch, + WorkspaceSessionState +} from '../../../shared/workspace-session-state-types' import { getRepoExecutionHostId, LOCAL_EXECUTION_HOST_ID, diff --git a/src/renderer/src/lib/workspace-session-host-records.ts b/src/renderer/src/lib/workspace-session-host-records.ts index bb34dcde12a..766880817b1 100644 --- a/src/renderer/src/lib/workspace-session-host-records.ts +++ b/src/renderer/src/lib/workspace-session-host-records.ts @@ -1,4 +1,4 @@ -import type { WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' export type WorkspaceSessionRecord = Record diff --git a/src/renderer/src/lib/workspace-session-host-split.test.ts b/src/renderer/src/lib/workspace-session-host-split.test.ts index 6e1448c076f..a3aff69a888 100644 --- a/src/renderer/src/lib/workspace-session-host-split.test.ts +++ b/src/renderer/src/lib/workspace-session-host-split.test.ts @@ -6,13 +6,10 @@ import { } from './workspace-session-host-split' import { getDefaultWorkspaceSession } from '../../../shared/constants' import { LOCAL_EXECUTION_HOST_ID, type ExecutionHostId } from '../../../shared/execution-host' -import type { - BrowserPage, - Tab, - TerminalLayoutSnapshot, - TerminalTab, - WorkspaceSessionState -} from '../../../shared/types' +import type { BrowserPage } from '../../../shared/browser-workspace-types' +import type { Tab } from '../../../shared/tab-types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' const RUNTIME_A: ExecutionHostId = 'runtime:env-a' const RUNTIME_B: ExecutionHostId = 'runtime:env-b' diff --git a/src/renderer/src/lib/workspace-session-host-split.ts b/src/renderer/src/lib/workspace-session-host-split.ts index 43343249589..103a1abcf63 100644 --- a/src/renderer/src/lib/workspace-session-host-split.ts +++ b/src/renderer/src/lib/workspace-session-host-split.ts @@ -1,4 +1,4 @@ -import type { WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' import { LOCAL_EXECUTION_HOST_ID, type ExecutionHostId } from '../../../shared/execution-host' import { GLOBAL_WORKSPACE_SESSION_FIELDS, diff --git a/src/renderer/src/lib/workspace-session-hydration-keys.test.ts b/src/renderer/src/lib/workspace-session-hydration-keys.test.ts index 62f97f7b4c2..54248e45a38 100644 --- a/src/renderer/src/lib/workspace-session-hydration-keys.test.ts +++ b/src/renderer/src/lib/workspace-session-hydration-keys.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' import { collectFolderWorkspaceKeysFromSession, collectWorktreeHydrationRepoIdsFromSession diff --git a/src/renderer/src/lib/workspace-session-hydration-keys.ts b/src/renderer/src/lib/workspace-session-hydration-keys.ts index d4339e30cb6..bcfce2c9eae 100644 --- a/src/renderer/src/lib/workspace-session-hydration-keys.ts +++ b/src/renderer/src/lib/workspace-session-hydration-keys.ts @@ -1,6 +1,7 @@ import type { ExecutionHostId } from '../../../shared/execution-host' import { parseExecutionHostId } from '../../../shared/execution-host' -import type { WorkspaceKey, WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceKey } from '../../../shared/folder-workspace-types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' import { parseWorkspaceKey } from '../../../shared/workspace-scope' import { getRepoIdFromWorktreeId } from '../../../shared/worktree/id' diff --git a/src/renderer/src/lib/workspace-session-patch.test.ts b/src/renderer/src/lib/workspace-session-patch.test.ts index da578c1ff42..efe16ca0c5b 100644 --- a/src/renderer/src/lib/workspace-session-patch.test.ts +++ b/src/renderer/src/lib/workspace-session-patch.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import type { WorkspaceSessionSnapshot } from './workspace-session' import { buildWorkspaceSessionPatch } from './workspace-session-patch' diff --git a/src/renderer/src/lib/workspace-session-patch.ts b/src/renderer/src/lib/workspace-session-patch.ts index e88f476a8f6..a5ef39c29db 100644 --- a/src/renderer/src/lib/workspace-session-patch.ts +++ b/src/renderer/src/lib/workspace-session-patch.ts @@ -1,4 +1,7 @@ -import type { WorkspaceSessionPatch, WorkspaceSessionState } from '../../../shared/types' +import type { + WorkspaceSessionPatch, + WorkspaceSessionState +} from '../../../shared/workspace-session-state-types' import { pruneLocalTerminalScrollbackBuffers } from '../../../shared/workspace-session-terminal-buffers' import { normalizeBrowserHistoryEntries } from '../../../shared/workspace-session-browser-history' import { diff --git a/src/renderer/src/lib/workspace-session-reconnect-targets.ts b/src/renderer/src/lib/workspace-session-reconnect-targets.ts index 713e4388e53..1dc2ae717e1 100644 --- a/src/renderer/src/lib/workspace-session-reconnect-targets.ts +++ b/src/renderer/src/lib/workspace-session-reconnect-targets.ts @@ -1,4 +1,4 @@ -import type { WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' import { parseAppSshPtyId } from '../../../shared/ssh-pty-id' import { isRuntimeOwnedSshTargetId } from '../../../shared/execution-host' import type { WorkspaceSessionSnapshot } from './workspace-session' diff --git a/src/renderer/src/lib/workspace-session-sleeping-agents.ts b/src/renderer/src/lib/workspace-session-sleeping-agents.ts index fc54bc1c524..29ee3d0fe6a 100644 --- a/src/renderer/src/lib/workspace-session-sleeping-agents.ts +++ b/src/renderer/src/lib/workspace-session-sleeping-agents.ts @@ -1,4 +1,4 @@ -import type { WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' export function buildSleepingAgentSessionData(snapshot: { sleepingAgentSessionsByPaneKey?: WorkspaceSessionState['sleepingAgentSessionsByPaneKey'] diff --git a/src/renderer/src/lib/workspace-session-unified-tabs.ts b/src/renderer/src/lib/workspace-session-unified-tabs.ts index 359bdd8b2a8..38660c2ea3a 100644 --- a/src/renderer/src/lib/workspace-session-unified-tabs.ts +++ b/src/renderer/src/lib/workspace-session-unified-tabs.ts @@ -1,9 +1,5 @@ -import type { - Tab, - TabGroup, - TabGroupLayoutNode, - WorkspaceSessionState -} from '../../../shared/types' +import type { Tab, TabGroup, TabGroupLayoutNode } from '../../../shared/tab-types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' import type { WorkspaceSessionSnapshot } from './workspace-session' type PersistedUnifiedTabSessionData = Pick< diff --git a/src/renderer/src/lib/workspace-session.ts b/src/renderer/src/lib/workspace-session.ts index cfe1bbf3034..aae9ce46eeb 100644 --- a/src/renderer/src/lib/workspace-session.ts +++ b/src/renderer/src/lib/workspace-session.ts @@ -1,10 +1,9 @@ +import type { BrowserPage, BrowserWorkspace } from '../../../shared/browser-workspace-types' +import type { WorkspaceVisibleTabType } from '../../../shared/tab-types' import type { - BrowserPage, - BrowserWorkspace, PersistedOpenFile, - WorkspaceSessionState, - WorkspaceVisibleTabType -} from '../../../shared/types' + WorkspaceSessionState +} from '../../../shared/workspace-session-state-types' import { pruneLocalTerminalScrollbackBuffers } from '../../../shared/workspace-session-terminal-buffers' import { normalizeBrowserHistoryEntries } from '../../../shared/workspace-session-browser-history' import type { AppState } from '../store' diff --git a/src/renderer/src/lib/workspace-tab-palette-search.test.ts b/src/renderer/src/lib/workspace-tab-palette-search.test.ts index a2a7e147bc3..875e5f4573b 100644 --- a/src/renderer/src/lib/workspace-tab-palette-search.test.ts +++ b/src/renderer/src/lib/workspace-tab-palette-search.test.ts @@ -4,7 +4,9 @@ import type { RetainedAgentEntry } from '@/store/slices/agent-status' import type { OpenFile } from '@/store/slices/editor' import type { AgentStatusEntry } from '../../../shared/agent-status-types' import type { SleepingAgentSessionRecord } from '../../../shared/agent-session-resume' -import type { Tab, TabGroup, TerminalTab, Worktree } from '../../../shared/types' +import type { Tab, TabGroup } from '../../../shared/tab-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { buildSearchableWorkspaceTabs, searchWorkspaceTabs } from './workspace-tab-palette-search' const WT_ROOT = path.join('tmp', 'wt-1') diff --git a/src/renderer/src/lib/workspace-tab-palette-search.ts b/src/renderer/src/lib/workspace-tab-palette-search.ts index 458a9b76240..dd33344cf13 100644 --- a/src/renderer/src/lib/workspace-tab-palette-search.ts +++ b/src/renderer/src/lib/workspace-tab-palette-search.ts @@ -4,7 +4,9 @@ import { resolveTerminalTabTitle, resolveUnifiedTabLabel } from '../../../shared/tab-title-resolution' -import type { Tab, TabContentType, TabGroup, TerminalTab, Worktree } from '../../../shared/types' +import type { Tab, TabContentType, TabGroup } from '../../../shared/tab-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { buildAgentMetadataTabIndex, collectAgentMetadataFromIndex, diff --git a/src/renderer/src/lib/worktree-activation-automation-filter.test.ts b/src/renderer/src/lib/worktree-activation-automation-filter.test.ts index a6968e414e2..9e07ee425aa 100644 --- a/src/renderer/src/lib/worktree-activation-automation-filter.test.ts +++ b/src/renderer/src/lib/worktree-activation-automation-filter.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect, it, vi } from 'vitest' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { useAppStore } from '@/store' import { activateAndRevealWorktree } from './worktree-activation' diff --git a/src/renderer/src/lib/worktree-activation-created-agent-test-state.ts b/src/renderer/src/lib/worktree-activation-created-agent-test-state.ts index 5cd35181547..6c0a50906c9 100644 --- a/src/renderer/src/lib/worktree-activation-created-agent-test-state.ts +++ b/src/renderer/src/lib/worktree-activation-created-agent-test-state.ts @@ -1,6 +1,6 @@ import path from 'node:path' import { vi } from 'vitest' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { useAppStore } from '@/store' export function makeCreatedAgentWorktree(): Worktree { diff --git a/src/renderer/src/lib/worktree-activation-empty-remote.test.ts b/src/renderer/src/lib/worktree-activation-empty-remote.test.ts index 49f38e7aa7c..ffa5369a845 100644 --- a/src/renderer/src/lib/worktree-activation-empty-remote.test.ts +++ b/src/renderer/src/lib/worktree-activation-empty-remote.test.ts @@ -1,7 +1,7 @@ import path from 'node:path' import { afterEach, describe, expect, it, vi } from 'vitest' import { getDefaultSettings } from '../../../shared/constants' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { resetWebRuntimeWakeTerminalRespawnForTests } from '@/runtime/web-runtime-wake-terminal-respawn' import { resetWebSessionTabsSnapshotFreshnessForTests } from '@/runtime/web-session-tabs-sync' import { useAppStore } from '@/store' diff --git a/src/renderer/src/lib/worktree-activation.test.ts b/src/renderer/src/lib/worktree-activation.test.ts index 923cecd5aed..6223026f301 100644 --- a/src/renderer/src/lib/worktree-activation.test.ts +++ b/src/renderer/src/lib/worktree-activation.test.ts @@ -1,6 +1,6 @@ /* eslint-disable max-lines -- Why: these activation cases share one mock store and assert ordering across startup, setup, issue commands, and default tabs. */ import { afterEach, describe, expect, it, vi } from 'vitest' -import type { SetupScriptLaunchMode } from '../../../shared/types' +import type { SetupScriptLaunchMode } from '../../../shared/worktree/launch-types' import { SETUP_AGENT_SEQUENCE_STARTUP_SCRIPT_ENV } from '../../../shared/setup-agent-sequencing' import { activateAndRevealWorktree, ensureWorktreeHasInitialTerminal } from './worktree-activation' import { resetHookCommandDelayedDeliveryForTests } from './hook-command-delayed-delivery' diff --git a/src/renderer/src/lib/worktree-activation.ts b/src/renderer/src/lib/worktree-activation.ts index d27a18565ef..cd2f1bd1c5a 100644 --- a/src/renderer/src/lib/worktree-activation.ts +++ b/src/renderer/src/lib/worktree-activation.ts @@ -1,13 +1,13 @@ /* eslint-disable max-lines -- Why: worktree activation is a single ordered flow spanning startup, setup, issue commands, and default tabs; splitting it would obscure sequencing guarantees. */ +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { Tab } from '../../../shared/tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import type { - FolderWorkspace, - GlobalSettings, SetupSplitDirection, - Tab, - TuiAgent, WorktreeDefaultTabsLaunch, WorktreeSetupLaunch -} from '../../../shared/types' +} from '../../../shared/worktree/launch-types' import type { EventProps } from '../../../shared/telemetry-events' import type { StartupCommandDelivery } from '../../../shared/codex-startup-delivery' import type { diff --git a/src/renderer/src/lib/worktree-activity-state.test.ts b/src/renderer/src/lib/worktree-activity-state.test.ts index 2aec8c2c648..c0e5855a598 100644 --- a/src/renderer/src/lib/worktree-activity-state.test.ts +++ b/src/renderer/src/lib/worktree-activity-state.test.ts @@ -5,7 +5,7 @@ import { hasActiveWorkspaceActivity, isInactiveWorkspace } from './worktree-activity-state' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import type { AgentStatusEntry } from '../../../shared/agent-status-types' const NOW = 10_000_000 diff --git a/src/renderer/src/lib/worktree-activity-state.ts b/src/renderer/src/lib/worktree-activity-state.ts index 827e6c91ceb..2f6e804dcc7 100644 --- a/src/renderer/src/lib/worktree-activity-state.ts +++ b/src/renderer/src/lib/worktree-activity-state.ts @@ -1,5 +1,5 @@ import { tabHasLivePty } from '@/lib/tab-has-live-pty' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import { isFreshNonDoneAgentStatus, type AgentStatusEntry diff --git a/src/renderer/src/lib/worktree-attachment-label.ts b/src/renderer/src/lib/worktree-attachment-label.ts index e79a83521f1..ac9998e16f0 100644 --- a/src/renderer/src/lib/worktree-attachment-label.ts +++ b/src/renderer/src/lib/worktree-attachment-label.ts @@ -1,4 +1,4 @@ -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { basename } from './path' /** Shared by every "workspace attached to this work item" surface so GitHub, GitLab, diff --git a/src/renderer/src/lib/worktree-creation-agent-seeds.ts b/src/renderer/src/lib/worktree-creation-agent-seeds.ts index 295b5e5c06c..6abf478bd28 100644 --- a/src/renderer/src/lib/worktree-creation-agent-seeds.ts +++ b/src/renderer/src/lib/worktree-creation-agent-seeds.ts @@ -9,7 +9,7 @@ import { nativeChatRequiresLocalTranscript } from '@/lib/native-chat-supported-a import { getRuntimeEnvironmentIdForWorktree } from '@/lib/worktree-runtime-owner' import { toWebTerminalSurfaceTabId } from '@/runtime/web-terminal-surface-id' import type { WorktreeCreationRequest } from '@/lib/pending-worktree-creation' -import type { TuiAgent } from '../../../shared/types' +import type { TuiAgent } from '../../../shared/tui-agent' type AppStoreSnapshot = ReturnType diff --git a/src/renderer/src/lib/worktree-creation-flow.ts b/src/renderer/src/lib/worktree-creation-flow.ts index e8703256ceb..535a1870fe8 100644 --- a/src/renderer/src/lib/worktree-creation-flow.ts +++ b/src/renderer/src/lib/worktree-creation-flow.ts @@ -18,7 +18,7 @@ import { formatWorkspaceCreateError, getWorkspaceCreateErrorToastMessage } from '@/lib/workspace-create-error-format' -import type { CreateWorktreeResult } from '../../../shared/types' +import type { CreateWorktreeResult } from '../../../shared/worktree/create-types' import { findPendingLinkedWorkItemCreationId, type WorktreeCreationPhase, diff --git a/src/renderer/src/lib/worktree-default-display-name.ts b/src/renderer/src/lib/worktree-default-display-name.ts index 765b6d084a1..1214036ce30 100644 --- a/src/renderer/src/lib/worktree-default-display-name.ts +++ b/src/renderer/src/lib/worktree-default-display-name.ts @@ -1,6 +1,6 @@ import { branchName } from '@/lib/git-utils' import { basename } from '@/lib/path' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' type WorktreeDisplayNameSource = Pick diff --git a/src/renderer/src/lib/worktree-display-name-order.test.ts b/src/renderer/src/lib/worktree-display-name-order.test.ts index 9c5875ba821..70477ca8454 100644 --- a/src/renderer/src/lib/worktree-display-name-order.test.ts +++ b/src/renderer/src/lib/worktree-display-name-order.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { compareWorktreeDisplayName } from './worktree-display-name-order' // displayName is typed `string`, but crash 99657ab1 proved it arrives undefined diff --git a/src/renderer/src/lib/worktree-display-name-order.ts b/src/renderer/src/lib/worktree-display-name-order.ts index 1b5bab8f4db..738db84d123 100644 --- a/src/renderer/src/lib/worktree-display-name-order.ts +++ b/src/renderer/src/lib/worktree-display-name-order.ts @@ -1,4 +1,4 @@ -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' // Why: displayName is typed non-optional but arrives undefined at runtime for // persisted/discovered worktrees (crash 99657ab1); coalesce so it can't throw. diff --git a/src/renderer/src/lib/worktree-operation-route.test.ts b/src/renderer/src/lib/worktree-operation-route.test.ts index 8f2ef74d3b5..98878845e22 100644 --- a/src/renderer/src/lib/worktree-operation-route.test.ts +++ b/src/renderer/src/lib/worktree-operation-route.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { resolveWorktreeOperationRouteResult } from './worktree-operation-route' const WORKTREE_ID = 'repo-1::/srv/worktree' diff --git a/src/renderer/src/lib/worktree-palette-gitlab-url-match.ts b/src/renderer/src/lib/worktree-palette-gitlab-url-match.ts index a40c330208f..6fd291a7576 100644 --- a/src/renderer/src/lib/worktree-palette-gitlab-url-match.ts +++ b/src/renderer/src/lib/worktree-palette-gitlab-url-match.ts @@ -9,7 +9,8 @@ import { parseGitLabIssueOrMRLink, type ProjectSlug } from '../../../shared/new-workspace/gitlab-links' -import type { Repo, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' export type GitLabIssueOrMRLink = NonNullable> diff --git a/src/renderer/src/lib/worktree-palette-review-match.test.ts b/src/renderer/src/lib/worktree-palette-review-match.test.ts index c72710d2931..7c702522ed1 100644 --- a/src/renderer/src/lib/worktree-palette-review-match.test.ts +++ b/src/renderer/src/lib/worktree-palette-review-match.test.ts @@ -1,7 +1,8 @@ import { describe, expect, it } from 'vitest' import { matchWorktreePaletteReview } from './worktree-palette-review-match' import { searchWorktrees } from './worktree-palette-search' -import type { Repo, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import type { HostedReviewInfo } from '../../../shared/hosted-review' // Regression tests for the production crash (report c5d87873, macOS, Orca 1.4.147): diff --git a/src/renderer/src/lib/worktree-palette-search.test.ts b/src/renderer/src/lib/worktree-palette-search.test.ts index 6e0fa1848f9..2484600d666 100644 --- a/src/renderer/src/lib/worktree-palette-search.test.ts +++ b/src/renderer/src/lib/worktree-palette-search.test.ts @@ -4,7 +4,8 @@ import { WORKTREE_PALETTE_QUERY_MAX_BYTES, isWorktreePaletteQueryTooLarge } from './worktree-palette-query-bounds' -import type { Repo, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import type { HostedReviewInfo } from '../../../shared/hosted-review' function makeWorktree(overrides: Partial = {}): Worktree { diff --git a/src/renderer/src/lib/worktree-palette-search.ts b/src/renderer/src/lib/worktree-palette-search.ts index a2fa082456f..7a90aced676 100644 --- a/src/renderer/src/lib/worktree-palette-search.ts +++ b/src/renderer/src/lib/worktree-palette-search.ts @@ -4,7 +4,8 @@ import { resolveWorktreeDisplayName } from './worktree-default-display-name' import type { HostedReviewInfo } from '../../../shared/hosted-review' -import type { Repo, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import { extractWorktreePaletteCommentSnippet } from './worktree-palette-comment-snippet' import { isWorktreePaletteQueryTooLarge } from './worktree-palette-query-bounds' import { matchWorktreePaletteReview } from './worktree-palette-review-match' diff --git a/src/renderer/src/lib/worktree-palette-task-url-match.test.ts b/src/renderer/src/lib/worktree-palette-task-url-match.test.ts index 88691ac8bb6..0ccdf75d931 100644 --- a/src/renderer/src/lib/worktree-palette-task-url-match.test.ts +++ b/src/renderer/src/lib/worktree-palette-task-url-match.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { Repo, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import { getCmdJTaskUrlCreatePreview, matchWorktreePaletteTaskUrl, diff --git a/src/renderer/src/lib/worktree-palette-task-url-match.ts b/src/renderer/src/lib/worktree-palette-task-url-match.ts index d16d135dcb1..854ba244c71 100644 --- a/src/renderer/src/lib/worktree-palette-task-url-match.ts +++ b/src/renderer/src/lib/worktree-palette-task-url-match.ts @@ -14,7 +14,8 @@ import { githubRepoIdentityKey } from '../../../shared/github/repository-identit import { parseGitLabIssueOrMRLink } from '../../../shared/new-workspace/gitlab-links' import { parseJiraIssueUrl, type ParsedJiraIssueUrl } from '../../../shared/jira-issue-url' import { parseLinearIssueUrlIntent, type LinearIssueUrlIntent } from '../../../shared/linear/links' -import type { Repo, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import { normalizeLinearIdentifier } from './linear-issue-workspace-attachment' import { worktreeMatchesGitLabUrl, diff --git a/src/renderer/src/lib/worktree-runtime-owner-index.ts b/src/renderer/src/lib/worktree-runtime-owner-index.ts index 6a66d7e33f4..047976b4587 100644 --- a/src/renderer/src/lib/worktree-runtime-owner-index.ts +++ b/src/renderer/src/lib/worktree-runtime-owner-index.ts @@ -1,4 +1,7 @@ -import type { FolderWorkspace, ProjectGroup, Repo, Worktree } from '../../../shared/types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import { getRepoExecutionHostId, parseExecutionHostId, diff --git a/src/renderer/src/lib/worktree-runtime-owner-state.ts b/src/renderer/src/lib/worktree-runtime-owner-state.ts index 6e65f7a1bcf..ee4da2d1569 100644 --- a/src/renderer/src/lib/worktree-runtime-owner-state.ts +++ b/src/renderer/src/lib/worktree-runtime-owner-state.ts @@ -1,11 +1,9 @@ import type { ExecutionHostId } from '../../../shared/execution-host' -import type { - FolderWorkspace, - GlobalSettings, - ProjectGroup, - Repo, - Worktree -} from '../../../shared/types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' export type WorktreeRuntimeOwnerState = { repos?: readonly Pick[] diff --git a/src/renderer/src/lib/worktree-runtime-owner.ts b/src/renderer/src/lib/worktree-runtime-owner.ts index 999ba347c6d..473b306eeaf 100644 --- a/src/renderer/src/lib/worktree-runtime-owner.ts +++ b/src/renderer/src/lib/worktree-runtime-owner.ts @@ -1,6 +1,7 @@ import { getRepoExecutionHostId, parseExecutionHostId } from '../../../shared/execution-host' import type { ExecutionHostId } from '../../../shared/execution-host' -import type { GlobalSettings, Worktree } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { Worktree } from '../../../shared/worktree/types' import { parseWorkspaceKey } from '../../../shared/workspace-scope' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../shared/constants' import { getRepoIdFromWorktreeId } from '@/store/slices/worktree-helpers' diff --git a/src/renderer/src/lib/worktree-status-spinner-launch-agent.test.ts b/src/renderer/src/lib/worktree-status-spinner-launch-agent.test.ts index 34bc7916164..78b71ef25da 100644 --- a/src/renderer/src/lib/worktree-status-spinner-launch-agent.test.ts +++ b/src/renderer/src/lib/worktree-status-spinner-launch-agent.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { buildTitleDerivedAgentRows } from '@/components/sidebar/worktree-title-derived-agent-rows' -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' import { getWorktreeStatus } from './worktree-status' const LEAF_ID = '11111111-1111-4111-8111-111111111111' diff --git a/src/renderer/src/lib/worktree-status-terminal-layout-roots.test.ts b/src/renderer/src/lib/worktree-status-terminal-layout-roots.test.ts index 906a44675cb..f66ecfea04d 100644 --- a/src/renderer/src/lib/worktree-status-terminal-layout-roots.test.ts +++ b/src/renderer/src/lib/worktree-status-terminal-layout-roots.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalPaneLayoutNode } from '../../../shared/types' +import type { TerminalPaneLayoutNode } from '../../../shared/terminal-tab-types' import { resolveWorktreeStatus } from './worktree-status' const LEAF_ID_1 = '11111111-1111-4111-8111-111111111111' diff --git a/src/renderer/src/lib/worktree-status.test.ts b/src/renderer/src/lib/worktree-status.test.ts index be406bace19..bdea2105785 100644 --- a/src/renderer/src/lib/worktree-status.test.ts +++ b/src/renderer/src/lib/worktree-status.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalLayoutSnapshot } from '../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../shared/terminal-tab-types' import { getWorktreeStatus, getWorktreeStatusLabel, resolveWorktreeStatus } from './worktree-status' const LEAF_ID_1 = '11111111-1111-4111-8111-111111111111' diff --git a/src/renderer/src/lib/worktree-status.ts b/src/renderer/src/lib/worktree-status.ts index 6f39d8c1e0b..91470f75409 100644 --- a/src/renderer/src/lib/worktree-status.ts +++ b/src/renderer/src/lib/worktree-status.ts @@ -6,9 +6,9 @@ import { containsAgentSpinnerGlyph } from '../../../shared/agent-title-core' import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode, - TerminalTab, - TuiAgent -} from '../../../shared/types' + TerminalTab +} from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import type { LiveAgentWorktreeStatus } from './worktree-activity-state' export type WorktreeStatus = 'active' | 'working' | 'permission' | 'done' | 'inactive' diff --git a/src/renderer/src/popout.tsx b/src/renderer/src/popout.tsx index 15f1be88fb6..c9b8e762d6b 100644 --- a/src/renderer/src/popout.tsx +++ b/src/renderer/src/popout.tsx @@ -13,7 +13,7 @@ import { buildAppFontFamily } from './lib/app-font-family' import { I18nProvider } from './i18n/I18nProvider' import { translate } from './i18n/i18n' import { useAppStore } from './store' -import type { GlobalSettings } from '../../shared/types' +import type { GlobalSettings } from '../../shared/global-settings-types' import { getOrCreateRendererRoot } from './lib/react-renderer-root' // Why: the pop-out window is a separate BrowserWindow with its own React root, diff --git a/src/renderer/src/runtime/close-mirrored-editor-tab.ts b/src/renderer/src/runtime/close-mirrored-editor-tab.ts index 749f7b8a642..3897d9ce2b6 100644 --- a/src/renderer/src/runtime/close-mirrored-editor-tab.ts +++ b/src/renderer/src/runtime/close-mirrored-editor-tab.ts @@ -5,7 +5,7 @@ import { import { recordWebSessionCloseIntent } from './web-session-close-intent' import { toHostSessionTabId } from '../../../shared/terminal-surface-id' import type { OpenFile } from '@/store/slices/editor' -import type { Tab } from '../../../shared/types' +import type { Tab } from '../../../shared/tab-types' export type MirroredEditorCloseState = WorktreeRuntimeOwnerState & { openFiles: readonly OpenFile[] diff --git a/src/renderer/src/runtime/file-explorer-delete-owner-provenance.test.ts b/src/renderer/src/runtime/file-explorer-delete-owner-provenance.test.ts index 20a325a5d7d..320b736ac4e 100644 --- a/src/renderer/src/runtime/file-explorer-delete-owner-provenance.test.ts +++ b/src/renderer/src/runtime/file-explorer-delete-owner-provenance.test.ts @@ -2,7 +2,10 @@ import { act, renderHook } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { FolderWorkspace, ProjectGroup, Repo, Worktree } from '../../../shared/types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import { folderWorkspaceKey } from '../../../shared/workspace-scope' import { useAppStore } from '@/store' import { useFileDeletion } from '@/components/right-sidebar/useFileDeletion' diff --git a/src/renderer/src/runtime/gitlab-job-trace-client.test.ts b/src/renderer/src/runtime/gitlab-job-trace-client.test.ts index 10ecd88884c..37bba45f66c 100644 --- a/src/renderer/src/runtime/gitlab-job-trace-client.test.ts +++ b/src/renderer/src/runtime/gitlab-job-trace-client.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { PRCheckDetail } from '../../../shared/types' +import type { PRCheckDetail } from '../../../shared/github/check-types' import { loadGitLabJobLogDetails } from './gitlab-job-trace-client' const callRuntimeRpc = vi.hoisted(() => vi.fn()) diff --git a/src/renderer/src/runtime/gitlab-job-trace-client.ts b/src/renderer/src/runtime/gitlab-job-trace-client.ts index 929c8581c1f..597b476dc05 100644 --- a/src/renderer/src/runtime/gitlab-job-trace-client.ts +++ b/src/renderer/src/runtime/gitlab-job-trace-client.ts @@ -4,7 +4,7 @@ import { gitLabJobTraceToCheckRunDetails } from '../../../shared/gitlab-job-trace-check-details' import type { GitLabJobTraceResult, GitLabProjectRef } from '../../../shared/gitlab-types' -import type { PRCheckDetail, PRCheckRunDetails } from '../../../shared/types' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../shared/github/check-types' import { getActiveRuntimeTarget } from './runtime-client-target' import { callRuntimeRpc } from './runtime-rpc-client' diff --git a/src/renderer/src/runtime/local-jira-search-cancellation.ts b/src/renderer/src/runtime/local-jira-search-cancellation.ts index c17d0199b63..37524987790 100644 --- a/src/renderer/src/runtime/local-jira-search-cancellation.ts +++ b/src/renderer/src/runtime/local-jira-search-cancellation.ts @@ -1,4 +1,4 @@ -import type { JiraIssue, JiraSiteSelection } from '../../../shared/types' +import type { JiraIssue, JiraSiteSelection } from '../../../shared/jira-types' import { createBrowserUuid } from '@/lib/browser-uuid' type LocalJiraSearchArgs = { jql: string; limit?: number; siteId?: JiraSiteSelection } diff --git a/src/renderer/src/runtime/remote-host-file-delete-repro.test.ts b/src/renderer/src/runtime/remote-host-file-delete-repro.test.ts index a9c144499c9..b91f61b48cd 100644 --- a/src/renderer/src/runtime/remote-host-file-delete-repro.test.ts +++ b/src/renderer/src/runtime/remote-host-file-delete-repro.test.ts @@ -2,7 +2,9 @@ import { act, renderHook } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../../shared/types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { Repo } from '../../../shared/repo-types' import { useAppStore } from '@/store' import { folderWorkspaceKey } from '../../../shared/workspace-scope' import { useFileDeletion } from '@/components/right-sidebar/useFileDeletion' diff --git a/src/renderer/src/runtime/remote-host-file-open-repro.test.ts b/src/renderer/src/runtime/remote-host-file-open-repro.test.ts index 8359a602921..1c35465d5e4 100644 --- a/src/renderer/src/runtime/remote-host-file-open-repro.test.ts +++ b/src/renderer/src/runtime/remote-host-file-open-repro.test.ts @@ -21,7 +21,7 @@ * latches permanently even after the SSH repo finishes hydrating. */ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' import { useAppStore } from '@/store' import { getConnectionIdForFile, isWorktreeConnectionResolved } from '@/lib/connection-context' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../shared/constants' diff --git a/src/renderer/src/runtime/remote-server-parity.test.ts b/src/renderer/src/runtime/remote-server-parity.test.ts index 41318a7248e..3c8b2fb62bb 100644 --- a/src/renderer/src/runtime/remote-server-parity.test.ts +++ b/src/renderer/src/runtime/remote-server-parity.test.ts @@ -15,7 +15,7 @@ import { beforeEach, describe, expect, it } from 'vitest' import type { RuntimeMobileSessionTabsResult } from '../../../shared/runtime-types' import { toWebTerminalSurfaceTabId } from '../../../shared/terminal-surface-id' -import type { Tab } from '../../../shared/types' +import type { Tab } from '../../../shared/tab-types' import { applyFreshWebSessionTabsSnapshot, applyWebSessionTabsSnapshot, diff --git a/src/renderer/src/runtime/remote-server-update-coordinator.ts b/src/renderer/src/runtime/remote-server-update-coordinator.ts index 196699b6eed..2e8d729bd79 100644 --- a/src/renderer/src/runtime/remote-server-update-coordinator.ts +++ b/src/renderer/src/runtime/remote-server-update-coordinator.ts @@ -13,7 +13,7 @@ import type { } from '../../../shared/remote-server-update' import type { PublicKnownRuntimeEnvironment } from '../../../shared/runtime-environments' import type { RuntimeStatus } from '../../../shared/runtime-types' -import type { UpdateCheckOptions } from '../../../shared/types' +import type { UpdateCheckOptions } from '../../../shared/update-status-types' import { waitForReplacementRuntime } from './remote-server-restart-wait' import { remoteServerUpdateErrorMessage } from './remote-server-update-errors' import { pollRemoteServerUpdater } from './remote-server-updater-polling' diff --git a/src/renderer/src/runtime/remote-terminal-layout-resolution.test.ts b/src/renderer/src/runtime/remote-terminal-layout-resolution.test.ts index ce2510771c7..a47d09350ad 100644 --- a/src/renderer/src/runtime/remote-terminal-layout-resolution.test.ts +++ b/src/renderer/src/runtime/remote-terminal-layout-resolution.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { TerminalPaneLayoutNode } from '../../../shared/types' +import type { TerminalPaneLayoutNode } from '../../../shared/terminal-tab-types' import { layoutCoversLeaves, resolveTerminalLayoutRoot } from './remote-terminal-layout-resolution' const verticalSplit: TerminalPaneLayoutNode = { diff --git a/src/renderer/src/runtime/remote-terminal-layout-resolution.ts b/src/renderer/src/runtime/remote-terminal-layout-resolution.ts index 7070f55b57c..1691132227b 100644 --- a/src/renderer/src/runtime/remote-terminal-layout-resolution.ts +++ b/src/renderer/src/runtime/remote-terminal-layout-resolution.ts @@ -1,4 +1,4 @@ -import type { TerminalPaneLayoutNode } from '../../../shared/types' +import type { TerminalPaneLayoutNode } from '../../../shared/terminal-tab-types' /** * Single source of truth for turning a set of terminal leaves into a layout diff --git a/src/renderer/src/runtime/runtime-client-target.ts b/src/renderer/src/runtime/runtime-client-target.ts index 6e553445401..1a0b8e4b8a4 100644 --- a/src/renderer/src/runtime/runtime-client-target.ts +++ b/src/renderer/src/runtime/runtime-client-target.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' export type RuntimeClientTarget = { kind: 'local' } | { kind: 'environment'; environmentId: string } diff --git a/src/renderer/src/runtime/runtime-file-client.ts b/src/renderer/src/runtime/runtime-file-client.ts index 788c1751359..e6df50d1f5b 100644 --- a/src/renderer/src/runtime/runtime-file-client.ts +++ b/src/renderer/src/runtime/runtime-file-client.ts @@ -1,14 +1,13 @@ /* eslint-disable max-lines -- Why: this client intentionally centralizes the file preload API plus remote runtime fallbacks so call sites cannot drift on local-vs-environment routing rules. */ +import type { SearchOptions, SearchResult } from '../../../shared/code-search-types' import type { DirEntry, FsChangedPayload, - GlobalSettings, - MarkdownDocument, - SearchOptions, - SearchResult -} from '../../../shared/types' + MarkdownDocument +} from '../../../shared/filesystem-entry-types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import type { RuntimeFilePreviewResult, RuntimeFileReadChunkResult, diff --git a/src/renderer/src/runtime/runtime-file-search-bounds.ts b/src/renderer/src/runtime/runtime-file-search-bounds.ts index b7823f783fd..6dd99e3c97c 100644 --- a/src/renderer/src/runtime/runtime-file-search-bounds.ts +++ b/src/renderer/src/runtime/runtime-file-search-bounds.ts @@ -1,4 +1,4 @@ -import type { SearchOptions, SearchResult } from '../../../shared/types' +import type { SearchOptions, SearchResult } from '../../../shared/code-search-types' import { isUtf8ByteLengthWithinLimit } from '../../../shared/utf8-byte-limits' export const RUNTIME_FILE_SEARCH_TEXT_MAX_BYTES = 8 * 1024 diff --git a/src/renderer/src/runtime/runtime-git-client.ts b/src/renderer/src/runtime/runtime-git-client.ts index ae5d2d2156d..eeb31ab3124 100644 --- a/src/renderer/src/runtime/runtime-git-client.ts +++ b/src/renderer/src/runtime/runtime-git-client.ts @@ -4,16 +4,17 @@ of reimplementing local-vs-environment branching per operation. */ import type { GitBranchCompareResult, GitCommitCompareResult, + GitDiffResult +} from '../../../shared/git-diff-compare-types' +import type { GitForkSyncExpectedUpstream, GitForkSyncResult } from '../../../shared/git-fork-sync' +import type { GitConflictOperation, - GitDiffResult, - GitForkSyncExpectedUpstream, - GitForkSyncResult, - GitPushTarget, GitStagingArea, GitStatusResult, - GitUpstreamStatus, - GlobalSettings -} from '../../../shared/types' + GitUpstreamStatus +} from '../../../shared/git-status-types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { GitPushTarget } from '../../../shared/worktree/types' import type { CommitMessageAgentCapability, CommitMessageModelCapability diff --git a/src/renderer/src/runtime/runtime-hooks-client.ts b/src/renderer/src/runtime/runtime-hooks-client.ts index 61f67a6b8a0..ee70da86b3c 100644 --- a/src/renderer/src/runtime/runtime-hooks-client.ts +++ b/src/renderer/src/runtime/runtime-hooks-client.ts @@ -1,4 +1,5 @@ -import type { GlobalSettings, OrcaHooks } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { OrcaHooks } from '../../../shared/orca-yaml-hook-types' import { parseExecutionHostId, type ExecutionHostId } from '../../../shared/execution-host' import type { SetupScriptImportCandidate } from '../../../shared/setup-script-imports' import { callRuntimeRpc, getActiveRuntimeTarget } from './runtime-rpc-client' diff --git a/src/renderer/src/runtime/runtime-jira-client.ts b/src/renderer/src/runtime/runtime-jira-client.ts index 708addc5fcf..157b7b33e75 100644 --- a/src/renderer/src/runtime/runtime-jira-client.ts +++ b/src/renderer/src/runtime/runtime-jira-client.ts @@ -17,7 +17,7 @@ import type { JiraTransition, JiraUser, JiraViewer -} from '../../../shared/types' +} from '../../../shared/jira-types' import { searchLocalJiraIssues } from './local-jira-search-cancellation' import { callRuntimeRpc, RuntimeRpcCallError } from './runtime-rpc-client' import { isRuntimeProviderSearchQueryWithinLimit } from './runtime-provider-search-bounds' diff --git a/src/renderer/src/runtime/runtime-jira-summary-client.ts b/src/renderer/src/runtime/runtime-jira-summary-client.ts index 48f8ffbf46d..3276a5765dc 100644 --- a/src/renderer/src/runtime/runtime-jira-summary-client.ts +++ b/src/renderer/src/runtime/runtime-jira-summary-client.ts @@ -1,4 +1,4 @@ -import type { JiraConnectionStatus, JiraIssue } from '../../../shared/types' +import type { JiraConnectionStatus, JiraIssue } from '../../../shared/jira-types' import { createBrowserUuid } from '@/lib/browser-uuid' import { callRuntimeRpc } from './runtime-rpc-client' import { getJiraRuntimeTarget, type RuntimeJiraSettings } from './runtime-jira-target' diff --git a/src/renderer/src/runtime/runtime-jira-target.ts b/src/renderer/src/runtime/runtime-jira-target.ts index b00a37d27ef..610ac82c0b1 100644 --- a/src/renderer/src/runtime/runtime-jira-target.ts +++ b/src/renderer/src/runtime/runtime-jira-target.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { getTaskSourceRuntimeSettings, type TaskSourceContext diff --git a/src/renderer/src/runtime/runtime-linear-client.ts b/src/renderer/src/runtime/runtime-linear-client.ts index 94d6be6197c..d960923075e 100644 --- a/src/renderer/src/runtime/runtime-linear-client.ts +++ b/src/renderer/src/runtime/runtime-linear-client.ts @@ -1,24 +1,25 @@ /* eslint-disable max-lines -- Why: the renderer Linear client mirrors the preload/RPC Linear namespace so local and remote runtime routing stays in one auditable boundary. */ +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { LinearIssueUpdate } from '../../../shared/issue-mutation-types' +import type { LinearComment, LinearIssue } from '../../../shared/linear/issue-types' import type { - GlobalSettings, - LinearComment, - LinearCollectionResult, - LinearConnectionStatus, LinearCustomViewModel, LinearCustomViewSummary, - LinearIssue, - LinearIssueUpdate, + LinearProjectDetail, + LinearProjectSummary +} from '../../../shared/linear/project-types' +import type { + LinearCollectionResult, + LinearConnectionStatus, LinearLabel, LinearMember, - LinearProjectDetail, - LinearProjectSummary, LinearTeam, LinearViewer, - LinearWorkspaceSelection, - LinearWorkflowState -} from '../../../shared/types' + LinearWorkflowState, + LinearWorkspaceSelection +} from '../../../shared/linear/workspace-types' import { callRuntimeRpc, getActiveRuntimeTarget, diff --git a/src/renderer/src/runtime/runtime-provider-accounts-client.test.ts b/src/renderer/src/runtime/runtime-provider-accounts-client.test.ts index 2bd3f65e8d9..decdaf86e8a 100644 --- a/src/renderer/src/runtime/runtime-provider-accounts-client.test.ts +++ b/src/renderer/src/runtime/runtime-provider-accounts-client.test.ts @@ -2,7 +2,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type { ClaudeRateLimitAccountsState, CodexRateLimitAccountsState -} from '../../../shared/types' +} from '../../../shared/managed-account-types' import { fetchProviderAccountsSnapshot, removeClaudeProviderAccount, diff --git a/src/renderer/src/runtime/runtime-provider-accounts-client.ts b/src/renderer/src/runtime/runtime-provider-accounts-client.ts index 6a43ddf8a6e..2620a55cf2f 100644 --- a/src/renderer/src/runtime/runtime-provider-accounts-client.ts +++ b/src/renderer/src/runtime/runtime-provider-accounts-client.ts @@ -1,8 +1,8 @@ +import type { GlobalSettings } from '../../../shared/global-settings-types' import type { ClaudeRateLimitAccountsState, - CodexRateLimitAccountsState, - GlobalSettings -} from '../../../shared/types' + CodexRateLimitAccountsState +} from '../../../shared/managed-account-types' import type { RateLimitState } from '../../../shared/rate-limit-types' import type { RuntimeRpcResponse } from '../../../shared/runtime-rpc-envelope' import { callRuntimeRpc, getActiveRuntimeTarget, RuntimeRpcCallError } from './runtime-rpc-client' diff --git a/src/renderer/src/runtime/runtime-repo-client.ts b/src/renderer/src/runtime/runtime-repo-client.ts index 6a916d1c67c..67f9a24d0cc 100644 --- a/src/renderer/src/runtime/runtime-repo-client.ts +++ b/src/renderer/src/runtime/runtime-repo-client.ts @@ -1,4 +1,5 @@ -import type { BaseRefSearchResult, GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { BaseRefSearchResult } from '../../../shared/repo-types' import { legacyBaseRefSearchResult } from '../../../shared/base-ref-search-result' import { callRuntimeRpc, getActiveRuntimeTarget } from './runtime-rpc-client' import { isRuntimeRepoRefSearchQueryWithinLimit } from './runtime-repo-search-bounds' diff --git a/src/renderer/src/runtime/runtime-server-directory-browser.ts b/src/renderer/src/runtime/runtime-server-directory-browser.ts index b28e7755f16..b420bd70312 100644 --- a/src/renderer/src/runtime/runtime-server-directory-browser.ts +++ b/src/renderer/src/runtime/runtime-server-directory-browser.ts @@ -1,4 +1,4 @@ -import type { DirEntry, FilesystemPathFlavor } from '../../../shared/types' +import type { DirEntry, FilesystemPathFlavor } from '../../../shared/filesystem-entry-types' import { sortDirEntries } from '../../../shared/file-name-sort' import { callRuntimeRpc } from './runtime-rpc-client' diff --git a/src/renderer/src/runtime/runtime-terminal-inspection.ts b/src/renderer/src/runtime/runtime-terminal-inspection.ts index 741d381e11f..29be1aed435 100644 --- a/src/renderer/src/runtime/runtime-terminal-inspection.ts +++ b/src/renderer/src/runtime/runtime-terminal-inspection.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import type { RuntimeTerminalSend } from '../../../shared/runtime-types' import { makePaneKey } from '../../../shared/stable-pane-id' import { isTerminalInputTooLargeWithDeferredMeasurement } from '../../../shared/terminal-input' diff --git a/src/renderer/src/runtime/runtime-terminal-stream.ts b/src/renderer/src/runtime/runtime-terminal-stream.ts index af5ffdd6f97..327e8d3e904 100644 --- a/src/renderer/src/runtime/runtime-terminal-stream.ts +++ b/src/renderer/src/runtime/runtime-terminal-stream.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../shared/types' +import type { GlobalSettings } from '../../../shared/global-settings-types' import { RuntimeRpcCallError, getActiveRuntimeTarget } from './runtime-rpc-client' import { getRemoteRuntimeTerminalMultiplexer } from './remote-runtime-terminal-multiplexer' diff --git a/src/renderer/src/runtime/sync-runtime-graph-automation-leaf.test.ts b/src/renderer/src/runtime/sync-runtime-graph-automation-leaf.test.ts index 1d01c5689d6..eb5767ba854 100644 --- a/src/renderer/src/runtime/sync-runtime-graph-automation-leaf.test.ts +++ b/src/renderer/src/runtime/sync-runtime-graph-automation-leaf.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import type { RuntimeSyncWindowGraph } from '../../../shared/runtime-types' import type { AppState } from '../store/types' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' // Why: Part B publishes never-mounted background automation tabs into the // runtime graph, gated on a live eager buffer. Stub the eager-buffer lookup so diff --git a/src/renderer/src/runtime/sync-runtime-graph-scheduling.test.ts b/src/renderer/src/runtime/sync-runtime-graph-scheduling.test.ts index f23a0f04a4a..fc000ae31b8 100644 --- a/src/renderer/src/runtime/sync-runtime-graph-scheduling.test.ts +++ b/src/renderer/src/runtime/sync-runtime-graph-scheduling.test.ts @@ -9,7 +9,7 @@ import { setRuntimeGraphSyncEnabled } from './sync-runtime-graph' import type { AppState } from '../store/types' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' function makeState(overrides: Partial = {}): AppState { return { diff --git a/src/renderer/src/runtime/sync-runtime-graph.ts b/src/renderer/src/runtime/sync-runtime-graph.ts index 52872628116..2422a31b3c7 100644 --- a/src/renderer/src/runtime/sync-runtime-graph.ts +++ b/src/renderer/src/runtime/sync-runtime-graph.ts @@ -26,14 +26,12 @@ import { isTerminalLeafId, makePaneKey, parsePaneKey } from '../../../shared/sta import { isWebTerminalSurfaceTabId } from '../../../shared/terminal-surface-id' import { isClaudeManagementTitle } from '../../../shared/agent-detection' import { parseWorkspaceKey } from '../../../shared/workspace-scope' +import type { Tab, TabGroup, TabGroupLayoutNode } from '../../../shared/tab-types' import type { - Tab, - TabGroup, - TabGroupLayoutNode, TerminalLayoutSnapshot, TerminalPaneLayoutNode, TerminalTab -} from '../../../shared/types' +} from '../../../shared/terminal-tab-types' import { resolveTerminalTabTitle } from '../../../shared/tab-title-resolution' import { isNativeChatTabWideFallbackSafe, diff --git a/src/renderer/src/runtime/use-runtime-session-mirror-environment-key.test.ts b/src/renderer/src/runtime/use-runtime-session-mirror-environment-key.test.ts index fc28095e136..be02031255c 100644 --- a/src/renderer/src/runtime/use-runtime-session-mirror-environment-key.test.ts +++ b/src/renderer/src/runtime/use-runtime-session-mirror-environment-key.test.ts @@ -4,7 +4,8 @@ import { act, cleanup, renderHook } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { shallow } from 'zustand/shallow' import { getDefaultSettings } from '../../../shared/constants' -import type { ProjectGroup, Repo } from '../../../shared/types' +import type { ProjectGroup } from '../../../shared/project-group-types' +import type { Repo } from '../../../shared/repo-types' import type * as RuntimeSessionMirrorTargetsModule from '@/lib/runtime-session-mirror-targets' import { makeWorktree } from '@/store/slices/store-test-helpers' diff --git a/src/renderer/src/runtime/web-runtime-session.ts b/src/renderer/src/runtime/web-runtime-session.ts index 691202eae08..0f4bae03f6a 100644 --- a/src/renderer/src/runtime/web-runtime-session.ts +++ b/src/renderer/src/runtime/web-runtime-session.ts @@ -29,7 +29,8 @@ import type { RuntimeCreateAgentSessionResult, RuntimeEnsureAgentSessionResult } from '../../../shared/agent-session-host-authority' -import type { TerminalPaneLayoutNode, TuiAgent } from '../../../shared/types' +import type { TerminalPaneLayoutNode } from '../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../shared/tui-agent' import { createBrowserUuid } from '../lib/browser-uuid' import { getRuntimeEnvironmentIdForWorktree } from '../lib/worktree-runtime-owner' import { useAppStore } from '../store' diff --git a/src/renderer/src/runtime/web-session-tabs-sync-mirror-identity.test.ts b/src/renderer/src/runtime/web-session-tabs-sync-mirror-identity.test.ts index 317065d7c81..c58c6471a16 100644 --- a/src/renderer/src/runtime/web-session-tabs-sync-mirror-identity.test.ts +++ b/src/renderer/src/runtime/web-session-tabs-sync-mirror-identity.test.ts @@ -2,7 +2,7 @@ import { beforeEach, describe, expect, it } from 'vitest' import { createStore } from 'zustand/vanilla' import type { RuntimeMobileSessionTabsResult } from '../../../shared/runtime-types' import { toWebTerminalSurfaceTabId } from '../../../shared/terminal-surface-id' -import type { BrowserCertificateFailure } from '../../../shared/types' +import type { BrowserCertificateFailure } from '../../../shared/browser-workspace-types' import { applyWebSessionTabsSnapshot, applyWebSessionTabsSnapshots, diff --git a/src/renderer/src/runtime/web-session-tabs-sync.test.ts b/src/renderer/src/runtime/web-session-tabs-sync.test.ts index e830e027208..07e95685c23 100644 --- a/src/renderer/src/runtime/web-session-tabs-sync.test.ts +++ b/src/renderer/src/runtime/web-session-tabs-sync.test.ts @@ -20,13 +20,9 @@ import { recordWebSessionReorderIntent, resetWebSessionReorderIntentForTests } from './web-session-reorder-intent' -import type { - BrowserPage, - BrowserWorkspace, - Tab, - TabGroupLayoutNode, - TerminalTab -} from '../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../shared/browser-workspace-types' +import type { Tab, TabGroupLayoutNode } from '../../../shared/tab-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import type { OpenFile } from '../store/slices/editor' import { confirmWebAgentSessionHandoffAfterCreate, diff --git a/src/renderer/src/runtime/web-session-tabs-sync.ts b/src/renderer/src/runtime/web-session-tabs-sync.ts index 8de495919d7..9ee15c8421f 100644 --- a/src/renderer/src/runtime/web-session-tabs-sync.ts +++ b/src/renderer/src/runtime/web-session-tabs-sync.ts @@ -22,13 +22,10 @@ import type { import type { BrowserCertificateFailure, BrowserPage, - BrowserWorkspace, - Tab, - TabGroup, - TabGroupLayoutNode, - TerminalLayoutSnapshot, - TerminalTab -} from '../../../shared/types' + BrowserWorkspace +} from '../../../shared/browser-workspace-types' +import type { Tab, TabGroup, TabGroupLayoutNode } from '../../../shared/tab-types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../shared/terminal-tab-types' import type { OpenFile } from '../store/slices/editor' import { isTerminalLeafId, makePaneKey, parsePaneKey } from '../../../shared/stable-pane-id' import { getRemoteRuntimePtyEnvironmentId, toRemoteRuntimePtyId } from './runtime-terminal-stream' diff --git a/src/renderer/src/runtime/web-session-terminal-orphan-recovery.ts b/src/renderer/src/runtime/web-session-terminal-orphan-recovery.ts index 5e56142bcf8..ee57dd610e2 100644 --- a/src/renderer/src/runtime/web-session-terminal-orphan-recovery.ts +++ b/src/renderer/src/runtime/web-session-terminal-orphan-recovery.ts @@ -3,7 +3,7 @@ import type { RuntimeTerminalListResult, RuntimeTerminalOrphanAdoptionResult } from '../../../shared/runtime-types' -import type { TerminalTab } from '../../../shared/types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' import type { RuntimeRpcResponse } from '../../../shared/runtime-rpc-envelope' import { parseRemoteRuntimePtyId } from './runtime-terminal-stream' import { toRuntimeWorktreeSelector } from './runtime-worktree-selector' diff --git a/src/renderer/src/runtime/web-session-terminal-orphan-topology.ts b/src/renderer/src/runtime/web-session-terminal-orphan-topology.ts index 5d7e0a9db8f..1d1dd242129 100644 --- a/src/renderer/src/runtime/web-session-terminal-orphan-topology.ts +++ b/src/renderer/src/runtime/web-session-terminal-orphan-topology.ts @@ -1,11 +1,10 @@ import type { RuntimeTerminalOrphanTopology } from '../../../shared/runtime-types' +import type { TabGroup, TabGroupLayoutNode } from '../../../shared/tab-types' import type { - TabGroup, - TabGroupLayoutNode, TerminalLayoutSnapshot, TerminalPaneLayoutNode, TerminalTab -} from '../../../shared/types' +} from '../../../shared/terminal-tab-types' import { toHostSessionTabId } from './web-terminal-surface-id' export type WebTerminalOrphanTopologyState = { diff --git a/src/renderer/src/store/project-host-setup-selector-normalization.ts b/src/renderer/src/store/project-host-setup-selector-normalization.ts index acc7e6f4edf..154ee4e5ea0 100644 --- a/src/renderer/src/store/project-host-setup-selector-normalization.ts +++ b/src/renderer/src/store/project-host-setup-selector-normalization.ts @@ -1,4 +1,5 @@ -import type { Project, ProjectHostSetup, Repo } from '../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../shared/project-types' +import type { Repo } from '../../../shared/repo-types' import { getProjectIdentityKey, type ProjectHostSetupProjection diff --git a/src/renderer/src/store/project-host-setup-selector.ts b/src/renderer/src/store/project-host-setup-selector.ts index c3e1f9269dc..55ba345f5ba 100644 --- a/src/renderer/src/store/project-host-setup-selector.ts +++ b/src/renderer/src/store/project-host-setup-selector.ts @@ -1,4 +1,4 @@ -import type { Project, ProjectHostSetup } from '../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../shared/project-types' import { projectHostSetupProjectionFromRepos, type ProjectHostSetupProjection diff --git a/src/renderer/src/store/right-sidebar-route.ts b/src/renderer/src/store/right-sidebar-route.ts index 38bddf68e1a..e0b2bc0fa1b 100644 --- a/src/renderer/src/store/right-sidebar-route.ts +++ b/src/renderer/src/store/right-sidebar-route.ts @@ -1,4 +1,7 @@ -import type { ActiveRightSidebarTab, RightSidebarExplorerView } from '../../../shared/types' +import type { + ActiveRightSidebarTab, + RightSidebarExplorerView +} from '../../../shared/ui-chrome-types' import { isPluginPanelTabKey } from '../../../shared/plugins/plugin-manifest' export type RightSidebarRoute = { diff --git a/src/renderer/src/store/selectors.test.ts b/src/renderer/src/store/selectors.test.ts index 345a25c0eec..f6b8555925a 100644 --- a/src/renderer/src/store/selectors.test.ts +++ b/src/renderer/src/store/selectors.test.ts @@ -1,5 +1,7 @@ import { beforeEach, describe, expect, it } from 'vitest' -import type { Repo, TerminalTab, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { Worktree } from '../../../shared/worktree/types' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../shared/constants' import { toRuntimeExecutionHostId, toSshExecutionHostId } from '../../../shared/execution-host' import { isGitRepoKind } from '../../../shared/repo-kind' diff --git a/src/renderer/src/store/selectors.ts b/src/renderer/src/store/selectors.ts index b955666760f..7b16f29bf4f 100644 --- a/src/renderer/src/store/selectors.ts +++ b/src/renderer/src/store/selectors.ts @@ -1,6 +1,8 @@ import { useAppStore } from './index' import { useShallow } from 'zustand/react/shallow' -import type { Repo, Worktree, TerminalTab } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { TerminalTab } from '../../../shared/terminal-tab-types' +import type { Worktree } from '../../../shared/worktree/types' import type { AppState } from './types' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../shared/constants' import { diff --git a/src/renderer/src/store/slices/active-tab-owner-worktree.test.ts b/src/renderer/src/store/slices/active-tab-owner-worktree.test.ts index 7e8c092a6c7..c0537bf698d 100644 --- a/src/renderer/src/store/slices/active-tab-owner-worktree.test.ts +++ b/src/renderer/src/store/slices/active-tab-owner-worktree.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' const recordRendererCrashBreadcrumb = vi.fn() vi.mock('../../lib/crash-breadcrumb-recorder', () => ({ diff --git a/src/renderer/src/store/slices/active-tab-owner-worktree.ts b/src/renderer/src/store/slices/active-tab-owner-worktree.ts index 270c5d44f1c..e8f4bbaed03 100644 --- a/src/renderer/src/store/slices/active-tab-owner-worktree.ts +++ b/src/renderer/src/store/slices/active-tab-owner-worktree.ts @@ -1,4 +1,4 @@ -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { recordRendererCrashBreadcrumb } from '../../lib/crash-breadcrumb-recorder' const reportedDuplicateTabVerdicts = new Set() diff --git a/src/renderer/src/store/slices/agent-status-drop-ipc.test.ts b/src/renderer/src/store/slices/agent-status-drop-ipc.test.ts index 06e8e900a2d..53a0a4e131e 100644 --- a/src/renderer/src/store/slices/agent-status-drop-ipc.test.ts +++ b/src/renderer/src/store/slices/agent-status-drop-ipc.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { RetainedAgentEntry } from './agent-status' import { RECENTLY_CLOSED_AGENT_STATUS_TAB_IDS_MAX } from './agent-status' import { createTestStore } from './store-test-helpers' diff --git a/src/renderer/src/store/slices/agent-status-drop.test.ts b/src/renderer/src/store/slices/agent-status-drop.test.ts index 5a4b86838c2..c13a93cd413 100644 --- a/src/renderer/src/store/slices/agent-status-drop.test.ts +++ b/src/renderer/src/store/slices/agent-status-drop.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { RetainedAgentEntry } from './agent-status' import { createTestStore, makeTab } from './store-test-helpers' diff --git a/src/renderer/src/store/slices/agent-status-retained-leak.test.ts b/src/renderer/src/store/slices/agent-status-retained-leak.test.ts index 2259af3cf5c..fd275d4e43d 100644 --- a/src/renderer/src/store/slices/agent-status-retained-leak.test.ts +++ b/src/renderer/src/store/slices/agent-status-retained-leak.test.ts @@ -23,7 +23,7 @@ */ import { afterEach, describe, expect, it, vi } from 'vitest' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { RetainedAgentEntry } from './agent-status' import { createTestStore } from './store-test-helpers' diff --git a/src/renderer/src/store/slices/agent-status.ts b/src/renderer/src/store/slices/agent-status.ts index 0f1ebf66e08..013b98f01a5 100644 --- a/src/renderer/src/store/slices/agent-status.ts +++ b/src/renderer/src/store/slices/agent-status.ts @@ -27,7 +27,7 @@ import { } from '../../../../shared/agent-status-identity' import { isCommandCodeNewTurnWhileWorking } from '../../../../shared/command-code-turn-boundary' import { agentEntryCompletionAt } from '../../../../shared/agent-completion-time' -import type { TerminalPaneLayoutNode, TerminalTab } from '../../../../shared/types' +import type { TerminalPaneLayoutNode, TerminalTab } from '../../../../shared/terminal-tab-types' import { getRepoExecutionHostId, getWorktreeExecutionHostId diff --git a/src/renderer/src/store/slices/browser-webview-cleanup.test.ts b/src/renderer/src/store/slices/browser-webview-cleanup.test.ts index 060fd5d1247..3f7c69a4d29 100644 --- a/src/renderer/src/store/slices/browser-webview-cleanup.test.ts +++ b/src/renderer/src/store/slices/browser-webview-cleanup.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { BrowserPage, BrowserWorkspace } from '../../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../../shared/browser-workspace-types' vi.mock('../../components/browser-pane/webview-registry', () => ({ destroyPersistentWebview: vi.fn() diff --git a/src/renderer/src/store/slices/browser-webview-cleanup.ts b/src/renderer/src/store/slices/browser-webview-cleanup.ts index 234199560ed..7b835841c3a 100644 --- a/src/renderer/src/store/slices/browser-webview-cleanup.ts +++ b/src/renderer/src/store/slices/browser-webview-cleanup.ts @@ -1,4 +1,4 @@ -import type { BrowserPage, BrowserWorkspace } from '../../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../../shared/browser-workspace-types' import { destroyPersistentWebview, moveFocusToRendererBeforeFocusedWebviewHidden diff --git a/src/renderer/src/store/slices/browser.ts b/src/renderer/src/store/slices/browser.ts index 946fdd4e853..fe7c3a694a2 100644 --- a/src/renderer/src/store/slices/browser.ts +++ b/src/renderer/src/store/slices/browser.ts @@ -2,18 +2,18 @@ import type { StateCreator } from 'zustand' import type { AppState } from '../types' import type { + BrowserCertificateFailure, BrowserCookieImportResult, BrowserCookieImportSummary, - BrowserCertificateFailure, BrowserHistoryEntry, BrowserLoadError, BrowserPage, BrowserSessionProfile, BrowserSessionProfileCreateOptions, BrowserViewportPresetId, - BrowserWorkspace, - WorkspaceSessionState -} from '../../../../shared/types' + BrowserWorkspace +} from '../../../../shared/browser-workspace-types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { GRAB_BUDGET, type BrowserPageAnnotation } from '../../../../shared/browser-grab-types' import { FLOATING_TERMINAL_WORKTREE_ID, ORCA_BROWSER_BLANK_URL } from '../../../../shared/constants' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' diff --git a/src/renderer/src/store/slices/commit-message-generation.ts b/src/renderer/src/store/slices/commit-message-generation.ts index 77f271781cf..e361958932c 100644 --- a/src/renderer/src/store/slices/commit-message-generation.ts +++ b/src/renderer/src/store/slices/commit-message-generation.ts @@ -1,5 +1,5 @@ import type { StateCreator } from 'zustand' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { AppState } from '../types' export type CommitMessageGenerationRuntimeTargetSettings = Pick< diff --git a/src/renderer/src/store/slices/degraded-repo-hydration.test.ts b/src/renderer/src/store/slices/degraded-repo-hydration.test.ts index 48690c43f51..b8063a48408 100644 --- a/src/renderer/src/store/slices/degraded-repo-hydration.test.ts +++ b/src/renderer/src/store/slices/degraded-repo-hydration.test.ts @@ -1,6 +1,7 @@ import { expect, it, vi } from 'vitest' import type * as AgentStatusModule from '@/lib/agent-status' -import type { BrowserTab, WorkspaceSessionState } from '../../../../shared/types' +import type { BrowserTab } from '../../../../shared/browser-workspace-types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { getDefaultWorkspaceSession } from '../../../../shared/constants' vi.mock('sonner', () => ({ toast: { info: vi.fn(), success: vi.fn(), error: vi.fn() } })) diff --git a/src/renderer/src/store/slices/degraded-repo-worktree-validity.ts b/src/renderer/src/store/slices/degraded-repo-worktree-validity.ts index 139312608b2..16b97061df1 100644 --- a/src/renderer/src/store/slices/degraded-repo-worktree-validity.ts +++ b/src/renderer/src/store/slices/degraded-repo-worktree-validity.ts @@ -1,9 +1,6 @@ -import type { - DetectedWorktreeListResult, - Repo, - WorkspaceSessionState, - Worktree -} from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' +import type { DetectedWorktreeListResult, Worktree } from '../../../../shared/worktree/types' import { parseWorkspaceKey } from '../../../../shared/workspace-scope' import { getRepoIdFromWorktreeId } from '../../../../shared/worktree/id' diff --git a/src/renderer/src/store/slices/detected-agents.test.ts b/src/renderer/src/store/slices/detected-agents.test.ts index f85b5977960..a343fe2c59c 100644 --- a/src/renderer/src/store/slices/detected-agents.test.ts +++ b/src/renderer/src/store/slices/detected-agents.test.ts @@ -1,7 +1,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { create } from 'zustand' import type { AppState } from '../types' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { _getRemoteDetectPromiseCountForTest, createDetectedAgentsSlice } from './detected-agents' import { _getRuntimeDetectPromiseCountForTest, diff --git a/src/renderer/src/store/slices/detected-agents.ts b/src/renderer/src/store/slices/detected-agents.ts index 87e34b712ff..1ab5daebcdc 100644 --- a/src/renderer/src/store/slices/detected-agents.ts +++ b/src/renderer/src/store/slices/detected-agents.ts @@ -1,6 +1,6 @@ import type { StateCreator } from 'zustand' import type { AppState } from '../types' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { createLocalDetectedAgentState } from './local-detected-agent-state' import type { LocalDetectedAgentState } from './local-detected-agent-store-state' diff --git a/src/renderer/src/store/slices/diffComments.test.ts b/src/renderer/src/store/slices/diffComments.test.ts index 6f230b8665c..ecfa3a1408e 100644 --- a/src/renderer/src/store/slices/diffComments.test.ts +++ b/src/renderer/src/store/slices/diffComments.test.ts @@ -1,7 +1,8 @@ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest' import { create } from 'zustand' import type { AppState } from '../types' -import type { DiffComment, Worktree } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' +import type { Worktree } from '../../../../shared/worktree/types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/diffComments.ts b/src/renderer/src/store/slices/diffComments.ts index 2bf3b18ceec..fb4a1cb2e9e 100644 --- a/src/renderer/src/store/slices/diffComments.ts +++ b/src/renderer/src/store/slices/diffComments.ts @@ -1,7 +1,9 @@ /* eslint-disable max-lines -- Why: keeps note mutation, rollback, persistence ordering, and sent-state transitions under shared queue/rollback invariants. */ import type { StateCreator } from 'zustand' import type { AppState } from '../types' -import type { DiffComment, FolderWorkspace, Worktree } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { Worktree } from '../../../../shared/worktree/types' import { findWorktreeById, getRepoIdFromWorktreeId } from './worktree-helpers' import { callRuntimeRpc, getActiveRuntimeTarget } from '../../runtime/runtime-rpc-client' import { toRuntimeWorktreeSelector } from '../../runtime/runtime-worktree-selector' diff --git a/src/renderer/src/store/slices/direct-ssh-pane-retry-ledger.ts b/src/renderer/src/store/slices/direct-ssh-pane-retry-ledger.ts index 51730cf70a8..b9b9e3400cc 100644 --- a/src/renderer/src/store/slices/direct-ssh-pane-retry-ledger.ts +++ b/src/renderer/src/store/slices/direct-ssh-pane-retry-ledger.ts @@ -1,5 +1,5 @@ import type { DirectSshAuthority } from '../../../../shared/ssh-types' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' import { shouldRetryPaneSpawnOnSshReconnect } from '../../hooks/ssh-reconnect-pane-retry' import { directSshAuthoritiesEqual, diff --git a/src/renderer/src/store/slices/direct-ssh-terminal-authority-ledger.ts b/src/renderer/src/store/slices/direct-ssh-terminal-authority-ledger.ts index b0e5d5731c1..ac938ce67be 100644 --- a/src/renderer/src/store/slices/direct-ssh-terminal-authority-ledger.ts +++ b/src/renderer/src/store/slices/direct-ssh-terminal-authority-ledger.ts @@ -1,6 +1,6 @@ import type { DirectSshAuthority } from '../../../../shared/ssh-types' import { parseAppSshPtyId } from '../../../../shared/ssh-pty-id' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { DirectSshLivePtyBinding, DirectSshPaneRetryResult, diff --git a/src/renderer/src/store/slices/direct-ssh-terminal-recovery-types.ts b/src/renderer/src/store/slices/direct-ssh-terminal-recovery-types.ts index 2784559f201..f59015b6ee7 100644 --- a/src/renderer/src/store/slices/direct-ssh-terminal-recovery-types.ts +++ b/src/renderer/src/store/slices/direct-ssh-terminal-recovery-types.ts @@ -1,5 +1,5 @@ import type { DirectSshAuthority } from '../../../../shared/ssh-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { CodexRestartNotice } from './terminals' export type DirectSshPaneRetryAttemptId = string & { diff --git a/src/renderer/src/store/slices/direct-ssh-terminal-recovery.test.ts b/src/renderer/src/store/slices/direct-ssh-terminal-recovery.test.ts index acc1db0ec72..232c2d1bd79 100644 --- a/src/renderer/src/store/slices/direct-ssh-terminal-recovery.test.ts +++ b/src/renderer/src/store/slices/direct-ssh-terminal-recovery.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { clearDirectSshTerminalBindings, type DirectSshTerminalBindingState diff --git a/src/renderer/src/store/slices/direct-ssh-terminal-recovery.ts b/src/renderer/src/store/slices/direct-ssh-terminal-recovery.ts index 8cc2978379b..4bc678a0437 100644 --- a/src/renderer/src/store/slices/direct-ssh-terminal-recovery.ts +++ b/src/renderer/src/store/slices/direct-ssh-terminal-recovery.ts @@ -1,5 +1,5 @@ import type { DirectSshAuthority } from '../../../../shared/ssh-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { CodexRestartNotice } from './terminals' import { directSshAuthoritiesEqual, diff --git a/src/renderer/src/store/slices/direct-ssh-terminal-workspace-scope.test.ts b/src/renderer/src/store/slices/direct-ssh-terminal-workspace-scope.test.ts index 063a773e1fa..5f9974966be 100644 --- a/src/renderer/src/store/slices/direct-ssh-terminal-workspace-scope.test.ts +++ b/src/renderer/src/store/slices/direct-ssh-terminal-workspace-scope.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { resolveDirectSshTerminalWorkspaceKeys } from './direct-ssh-terminal-workspace-scope' function tab(worktreeId: string, ptyId: string): TerminalTab { diff --git a/src/renderer/src/store/slices/direct-ssh-terminal-workspace-scope.ts b/src/renderer/src/store/slices/direct-ssh-terminal-workspace-scope.ts index e24ca1cdcd1..428069a60ea 100644 --- a/src/renderer/src/store/slices/direct-ssh-terminal-workspace-scope.ts +++ b/src/renderer/src/store/slices/direct-ssh-terminal-workspace-scope.ts @@ -6,7 +6,7 @@ import { import { isPathInsideOrEqual } from '../../../../shared/cross-platform-path' import { getProjectGroupSubtreeIds } from '../../../../shared/project-groups' import { parseAppSshPtyId } from '../../../../shared/ssh-pty-id' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { folderWorkspaceKey, worktreeWorkspaceKey } from '../../../../shared/workspace-scope' import { resolveDirectSshTargetScope, diff --git a/src/renderer/src/store/slices/editor-branch-line-total.test.ts b/src/renderer/src/store/slices/editor-branch-line-total.test.ts index 2b7132085da..e28f7f3c2bb 100644 --- a/src/renderer/src/store/slices/editor-branch-line-total.test.ts +++ b/src/renderer/src/store/slices/editor-branch-line-total.test.ts @@ -2,7 +2,7 @@ import { createStore, type StoreApi } from 'zustand/vanilla' import { describe, expect, it, vi } from 'vitest' import { createEditorSlice } from './editor' import type { AppState } from '../types' -import type { GitStatusResult } from '../../../../shared/types' +import type { GitStatusResult } from '../../../../shared/git-status-types' const MERGE_BASE = '1f3c0d9a5b6e7f8091a2b3c4d5e6f708192a3b4c' diff --git a/src/renderer/src/store/slices/editor-rekey-open-files.test.ts b/src/renderer/src/store/slices/editor-rekey-open-files.test.ts index e7ea518092e..2099c826e9b 100644 --- a/src/renderer/src/store/slices/editor-rekey-open-files.test.ts +++ b/src/renderer/src/store/slices/editor-rekey-open-files.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it } from 'vitest' import { useAppStore } from '@/store' import type { OpenFilePathRekey } from './editor' -import type { Tab, TabGroup } from '../../../../shared/types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' // Stage-1 foundation: rekeyOpenFilesForPathChange atomically retargets an open // edit session across an Orca-owned move (no close/reopen), preserving all diff --git a/src/renderer/src/store/slices/editor.test.ts b/src/renderer/src/store/slices/editor.test.ts index 50530c90382..13b49c94991 100644 --- a/src/renderer/src/store/slices/editor.test.ts +++ b/src/renderer/src/store/slices/editor.test.ts @@ -13,10 +13,10 @@ import { clearRuntimeCompatibilityCacheForTests } from '../../runtime/runtime-rp import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' import type { GitBranchChangeEntry, - GitBranchCompareSummary, - GitStatusEntry, - Tab -} from '../../../../shared/types' + GitBranchCompareSummary +} from '../../../../shared/git-diff-compare-types' +import type { GitStatusEntry } from '../../../../shared/git-status-types' +import type { Tab } from '../../../../shared/tab-types' import { isSyncPushStageError } from '@/lib/source-control-remote-error' const { toastErrorMock } = vi.hoisted(() => ({ diff --git a/src/renderer/src/store/slices/editor.ts b/src/renderer/src/store/slices/editor.ts index 4b2efe9516a..35fcc7d4633 100644 --- a/src/renderer/src/store/slices/editor.ts +++ b/src/renderer/src/store/slices/editor.ts @@ -28,29 +28,33 @@ import { openHttpLink, type HttpLinkSourceOwner } from '@/lib/http-link-routing' import { getConnectionIdForFileFromState } from '@/lib/connection-owner-resolution' import { isLocalPathOpenBlocked, showLocalPathOpenBlockedToast } from '@/lib/local-path-open-guard' import { detectLanguage } from '@/lib/language-detect' +import type { SearchResult } from '../../../../shared/code-search-types' import type { GitBranchChangeEntry, GitBranchCompareSummary, - GitCommitCompareSummary, + GitCommitCompareSummary +} from '../../../../shared/git-diff-compare-types' +import type { + GitBranchLineTotal, GitConflictKind, GitConflictOperation, GitConflictResolutionStatus, GitConflictStatusSource, - GlobalSettings, - GitPushTarget, GitStatusEntry, GitStatusResult, - PersistedOpenFile, - Tab, - TabGroup, - GitUpstreamStatus, + GitUpstreamStatus +} from '../../../../shared/git-status-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Tab, TabGroup, WorkspaceVisibleTabType } from '../../../../shared/tab-types' +import type { ActiveRightSidebarTab, - RightSidebarExplorerView, - SearchResult, - WorkspaceSessionState, - WorkspaceVisibleTabType -} from '../../../../shared/types' -import type { GitBranchLineTotal } from '../../../../shared/git-status-types' + RightSidebarExplorerView +} from '../../../../shared/ui-chrome-types' +import type { + PersistedOpenFile, + WorkspaceSessionState +} from '../../../../shared/workspace-session-state-types' +import type { GitPushTarget } from '../../../../shared/worktree/types' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' import { clampMarkdownTocPanelWidth } from '../../../../shared/markdown-toc-panel-width' import { @@ -116,7 +120,7 @@ export type { ActiveRightSidebarTab, RightSidebarExplorerView, RightSidebarTab -} from '../../../../shared/types' +} from '../../../../shared/ui-chrome-types' const DEFAULT_FILE_SEARCH_STATE = { query: '', diff --git a/src/renderer/src/store/slices/folder-workspace-activation-and-activity.test.ts b/src/renderer/src/store/slices/folder-workspace-activation-and-activity.test.ts index aa4efc3754f..35e9397c1a5 100644 --- a/src/renderer/src/store/slices/folder-workspace-activation-and-activity.test.ts +++ b/src/renderer/src/store/slices/folder-workspace-activation-and-activity.test.ts @@ -1,6 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { AppState } from '../types' -import type { FolderWorkspace, ProjectGroup } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import { createCompatibleRuntimeStatusResponseIfNeeded, diff --git a/src/renderer/src/store/slices/folder-workspace-diff-comments.test.ts b/src/renderer/src/store/slices/folder-workspace-diff-comments.test.ts index b03015ec98d..c11ed39868a 100644 --- a/src/renderer/src/store/slices/folder-workspace-diff-comments.test.ts +++ b/src/renderer/src/store/slices/folder-workspace-diff-comments.test.ts @@ -1,7 +1,9 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { create } from 'zustand' import type { AppState } from '../types' -import type { DiffComment, FolderWorkspace, ProjectGroup } from '../../../../shared/types' +import type { DiffComment } from '../../../../shared/diff-comment-types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import { createCompatibleRuntimeStatusResponseIfNeeded, diff --git a/src/renderer/src/store/slices/folder-workspace-owner-routed-mutations.test.ts b/src/renderer/src/store/slices/folder-workspace-owner-routed-mutations.test.ts index 83ea704c690..4100588a88c 100644 --- a/src/renderer/src/store/slices/folder-workspace-owner-routed-mutations.test.ts +++ b/src/renderer/src/store/slices/folder-workspace-owner-routed-mutations.test.ts @@ -1,5 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { FolderWorkspace, ProjectGroup } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/github-cache-key.ts b/src/renderer/src/store/slices/github-cache-key.ts index e9117f1f69f..1f5a22908c5 100644 --- a/src/renderer/src/store/slices/github-cache-key.ts +++ b/src/renderer/src/store/slices/github-cache-key.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { LOCAL_EXECUTION_HOST_ID, normalizeExecutionHostId, diff --git a/src/renderer/src/store/slices/github-checks-cache.test.ts b/src/renderer/src/store/slices/github-checks-cache.test.ts index 2474ac521e3..0808acba490 100644 --- a/src/renderer/src/store/slices/github-checks-cache.test.ts +++ b/src/renderer/src/store/slices/github-checks-cache.test.ts @@ -5,7 +5,8 @@ import { createGitHubSlice, prChecksCacheSuffix } from './github' import { createHostedReviewSlice } from './hosted-review' import { getHostedReviewCacheKey } from './hosted-review-cache-identity' import type { AppState } from '../types' -import type { PRCheckDetail, PRInfo } from '../../../../shared/types' +import type { PRCheckDetail } from '../../../../shared/github/check-types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' const mockApi = { gh: { diff --git a/src/renderer/src/store/slices/github-checks.test.ts b/src/renderer/src/store/slices/github-checks.test.ts index b5c46ce6882..ce41e0f40af 100644 --- a/src/renderer/src/store/slices/github-checks.test.ts +++ b/src/renderer/src/store/slices/github-checks.test.ts @@ -5,7 +5,7 @@ import { normalizeBranchName } from './github-checks' import type { AppState } from '../types' -import type { PRCheckDetail } from '../../../../shared/types' +import type { PRCheckDetail } from '../../../../shared/github/check-types' describe('deriveCheckStatusFromChecks', () => { it('treats an action_required check as failure so it is not a silent pass', () => { diff --git a/src/renderer/src/store/slices/github-checks.ts b/src/renderer/src/store/slices/github-checks.ts index da36a378ddf..900c482ac7d 100644 --- a/src/renderer/src/store/slices/github-checks.ts +++ b/src/renderer/src/store/slices/github-checks.ts @@ -1,5 +1,6 @@ import type { AppState } from '../types' -import type { PRCheckDetail, GitHubOwnerRepo } from '../../../../shared/types' +import type { PRCheckDetail } from '../../../../shared/github/check-types' +import type { GitHubOwnerRepo } from '../../../../shared/github/pull-request-types' import { getGitHubPRCacheKey } from './github-cache-key' import { githubRepoIdentityKey } from '../../../../shared/github/repository-identity-key' import { derivePRCheckStatus } from '../../../../shared/pr-check-status' diff --git a/src/renderer/src/store/slices/github-pr-refresh-owner-routing.test.ts b/src/renderer/src/store/slices/github-pr-refresh-owner-routing.test.ts index f7e49e211d1..f78393f62c7 100644 --- a/src/renderer/src/store/slices/github-pr-refresh-owner-routing.test.ts +++ b/src/renderer/src/store/slices/github-pr-refresh-owner-routing.test.ts @@ -3,7 +3,9 @@ import { create } from 'zustand' import { createGitHubSlice } from './github' import { createHostedReviewSlice } from './hosted-review' import type { AppState } from '../types' -import type { PRInfo, Repo, Worktree } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/github-pr-refresh-states-leak.test.ts b/src/renderer/src/store/slices/github-pr-refresh-states-leak.test.ts index 74096867101..9ed10018a69 100644 --- a/src/renderer/src/store/slices/github-pr-refresh-states-leak.test.ts +++ b/src/renderer/src/store/slices/github-pr-refresh-states-leak.test.ts @@ -18,7 +18,10 @@ import { create } from 'zustand' import { createGitHubSlice } from './github' import { createHostedReviewSlice } from './hosted-review' import type { AppState } from '../types' -import type { GitHubPRRefreshEvent, GitHubPRRefreshReason } from '../../../../shared/types' +import type { + GitHubPRRefreshEvent, + GitHubPRRefreshReason +} from '../../../../shared/github/pull-request-refresh-types' // MAX_PR_REFRESH_STATE_ENTRIES is module-private; mirror its value here. const MAX_ENTRIES = 2000 diff --git a/src/renderer/src/store/slices/github-project-row-owner.test.ts b/src/renderer/src/store/slices/github-project-row-owner.test.ts index dccaec073e3..89b10e295b6 100644 --- a/src/renderer/src/store/slices/github-project-row-owner.test.ts +++ b/src/renderer/src/store/slices/github-project-row-owner.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi, beforeEach } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { settingsForProjectRowOwner } from './github-project-row-owner' import { lookupReposBySlugFromCache } from '@/lib/repo-slug-cache' diff --git a/src/renderer/src/store/slices/github-project-row-owner.ts b/src/renderer/src/store/slices/github-project-row-owner.ts index db3a4b3333e..9af67dc4d50 100644 --- a/src/renderer/src/store/slices/github-project-row-owner.ts +++ b/src/renderer/src/store/slices/github-project-row-owner.ts @@ -1,4 +1,5 @@ -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' import { getSettingsForRepoRuntimeOwner } from '@/lib/repo-runtime-owner' import { lookupReposBySlugFromCache } from '@/lib/repo-slug-cache' diff --git a/src/renderer/src/store/slices/github-repo-lookup-index.test.ts b/src/renderer/src/store/slices/github-repo-lookup-index.test.ts index 41918b28c07..d964fe18826 100644 --- a/src/renderer/src/store/slices/github-repo-lookup-index.test.ts +++ b/src/renderer/src/store/slices/github-repo-lookup-index.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { getGitHubRepoLookupIndex } from './github-repo-lookup-index' function makeRepo(id: string, path: string): Repo { diff --git a/src/renderer/src/store/slices/github-repo-lookup-index.ts b/src/renderer/src/store/slices/github-repo-lookup-index.ts index 0c21a2fbd50..62d60e44b3a 100644 --- a/src/renderer/src/store/slices/github-repo-lookup-index.ts +++ b/src/renderer/src/store/slices/github-repo-lookup-index.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' type IndexedRepo = { index: number diff --git a/src/renderer/src/store/slices/github.test.ts b/src/renderer/src/store/slices/github.test.ts index dfcd76ec5d1..140840121f3 100644 --- a/src/renderer/src/store/slices/github.test.ts +++ b/src/renderer/src/store/slices/github.test.ts @@ -18,7 +18,9 @@ import { } from './github' import { createHostedReviewSlice } from './hosted-review' import type { AppState } from '../types' -import type { GitHubWorkItem, PRInfo, Worktree } from '../../../../shared/types' +import type { PRInfo } from '../../../../shared/github/pull-request-types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { HostedReviewInfo } from '../../../../shared/hosted-review' import { GITHUB_WORK_ITEMS_SSH_REMOTE_REQUIRED_MESSAGE } from '../../../../shared/work-items' import { diff --git a/src/renderer/src/store/slices/github.ts b/src/renderer/src/store/slices/github.ts index 71cf753e662..e74e7a35586 100644 --- a/src/renderer/src/store/slices/github.ts +++ b/src/renderer/src/store/slices/github.ts @@ -4,30 +4,31 @@ import { toast } from 'sonner' import type { AppState } from '../types' import { githubRepoIdentityKey } from '../../../../shared/github/repository-identity-key' import { githubProjectIdentityKey } from '../../../../shared/github/project-identity' +import type { ClassifiedError } from '../../../../shared/classified-error' +import type { PRCheckDetail, PRCheckRunDetails } from '../../../../shared/github/check-types' +import type { + GitHubCommentResult, + GitHubReactionContent, + PRComment +} from '../../../../shared/github/comment-types' import type { - ClassifiedError, - GitHubOwnerRepo, GitHubPRRefreshAlias, - IssueSourcePreference, - PRInfo, GitHubPRRefreshCandidate, GitHubPRRefreshEvent, GitHubPRRefreshReason, GitHubPRRefreshSkippedReason, PRRefreshErrorType, - PRRefreshOutcome, - GitHubCommentResult, - GitHubReactionContent, + PRRefreshOutcome +} from '../../../../shared/github/pull-request-refresh-types' +import type { + GitHubOwnerRepo, IssueInfo, - PRCheckDetail, - PRCheckRunDetails, - PRComment, - Repo, - Worktree, - GitHubWorkItem, - ListWorkItemsResult, - GlobalSettings -} from '../../../../shared/types' + PRInfo +} from '../../../../shared/github/pull-request-types' +import type { GitHubWorkItem, ListWorkItemsResult } from '../../../../shared/github/work-item-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { IssueSourcePreference, Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { GetProjectViewTableArgs, GetProjectViewTableResult, diff --git a/src/renderer/src/store/slices/hosted-review-cache-identity.ts b/src/renderer/src/store/slices/hosted-review-cache-identity.ts index f1b852ff752..c53f91a82f4 100644 --- a/src/renderer/src/store/slices/hosted-review-cache-identity.ts +++ b/src/renderer/src/store/slices/hosted-review-cache-identity.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { getSettingsFocusedExecutionHostId, normalizeExecutionHostId, diff --git a/src/renderer/src/store/slices/hosted-review.ts b/src/renderer/src/store/slices/hosted-review.ts index 4e64aa48e84..3c3940b6acc 100644 --- a/src/renderer/src/store/slices/hosted-review.ts +++ b/src/renderer/src/store/slices/hosted-review.ts @@ -10,7 +10,7 @@ import type { HostedReviewCreationEligibilityArgs, HostedReviewInfo } from '../../../../shared/hosted-review' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { callRuntimeRpc, getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client' import type { AppState } from '../types' import { diff --git a/src/renderer/src/store/slices/jira.test.ts b/src/renderer/src/store/slices/jira.test.ts index a9925e17a61..964d36420a1 100644 --- a/src/renderer/src/store/slices/jira.test.ts +++ b/src/renderer/src/store/slices/jira.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { create } from 'zustand' import type { AppState } from '../types' -import type { JiraConnectionStatus, JiraIssue, JiraViewer } from '../../../../shared/types' +import type { JiraConnectionStatus, JiraIssue, JiraViewer } from '../../../../shared/jira-types' import { getTaskSourceCacheScope, getTaskSourceRuntimeSettings, diff --git a/src/renderer/src/store/slices/jira.ts b/src/renderer/src/store/slices/jira.ts index bb0423a2e38..418e4a7ad25 100644 --- a/src/renderer/src/store/slices/jira.ts +++ b/src/renderer/src/store/slices/jira.ts @@ -10,7 +10,7 @@ import type { JiraIssueFilter, JiraSiteSelection, JiraViewer -} from '../../../../shared/types' +} from '../../../../shared/jira-types' import type { CacheEntry } from './github' import { isIntegrationCredentialDecryptionError } from '../../../../shared/integration-credential-errors' import { diff --git a/src/renderer/src/store/slices/linear-invalidation.test.ts b/src/renderer/src/store/slices/linear-invalidation.test.ts index 95c1d99ffaf..03c917187fa 100644 --- a/src/renderer/src/store/slices/linear-invalidation.test.ts +++ b/src/renderer/src/store/slices/linear-invalidation.test.ts @@ -1,7 +1,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { create } from 'zustand' import type { AppState } from '../types' -import type { LinearConnectionStatus, LinearIssue, LinearTeam } from '../../../../shared/types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' +import type { LinearConnectionStatus, LinearTeam } from '../../../../shared/linear/workspace-types' import { createLinearSlice } from './linear' const linearStatus = vi.fn() diff --git a/src/renderer/src/store/slices/linear.test.ts b/src/renderer/src/store/slices/linear.test.ts index f18f27a3261..8fbf089757c 100644 --- a/src/renderer/src/store/slices/linear.test.ts +++ b/src/renderer/src/store/slices/linear.test.ts @@ -3,15 +3,17 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { create } from 'zustand' import type { AppState } from '../types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' import type { - LinearConnectionStatus, - LinearCollectionResult, - LinearIssue, LinearProjectDetail, - LinearProjectSummary, + LinearProjectSummary +} from '../../../../shared/linear/project-types' +import type { + LinearCollectionResult, + LinearConnectionStatus, LinearTeam, LinearViewer -} from '../../../../shared/types' +} from '../../../../shared/linear/workspace-types' import { getTaskSourceCacheScope, type TaskSourceContext diff --git a/src/renderer/src/store/slices/linear.ts b/src/renderer/src/store/slices/linear.ts index 614020debd5..eddbbcf3086 100644 --- a/src/renderer/src/store/slices/linear.ts +++ b/src/renderer/src/store/slices/linear.ts @@ -3,20 +3,22 @@ boundary so cache invalidation stays coherent. */ import type { StateCreator } from 'zustand' import type { AppState } from '../types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' import type { - LinearViewer, - LinearConnectionStatus, - LinearCollectionResult, LinearCustomViewModel, LinearCustomViewSummary, - LinearIssue, LinearProjectDetail, - LinearProjectSummary, + LinearProjectSummary +} from '../../../../shared/linear/project-types' +import type { + LinearCollectionResult, + LinearConnectionStatus, LinearTeam, + LinearViewer, LinearWorkspace, LinearWorkspaceError, LinearWorkspaceSelection -} from '../../../../shared/types' +} from '../../../../shared/linear/workspace-types' import type { CacheEntry } from './github' import { clampLinearIssueListLimit } from '../../../../shared/linear/issue-read-limits' import { isIntegrationCredentialDecryptionError } from '../../../../shared/integration-credential-errors' diff --git a/src/renderer/src/store/slices/local-detected-agent-state.test.ts b/src/renderer/src/store/slices/local-detected-agent-state.test.ts index 77303b8bc89..dd4636a24a6 100644 --- a/src/renderer/src/store/slices/local-detected-agent-state.test.ts +++ b/src/renderer/src/store/slices/local-detected-agent-state.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { create } from 'zustand' import type { AppState } from '../types' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' import { createDetectedAgentsSlice } from './detected-agents' diff --git a/src/renderer/src/store/slices/local-detected-agent-state.ts b/src/renderer/src/store/slices/local-detected-agent-state.ts index 43b39ff5980..62760a0851b 100644 --- a/src/renderer/src/store/slices/local-detected-agent-state.ts +++ b/src/renderer/src/store/slices/local-detected-agent-state.ts @@ -1,6 +1,6 @@ import type { StateCreator } from 'zustand' import type { AppState } from '../types' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' import { getLocalAgentPreflightContext, diff --git a/src/renderer/src/store/slices/local-detected-agent-store-state.ts b/src/renderer/src/store/slices/local-detected-agent-store-state.ts index c961bb5114f..2bd45db165c 100644 --- a/src/renderer/src/store/slices/local-detected-agent-store-state.ts +++ b/src/renderer/src/store/slices/local-detected-agent-store-state.ts @@ -1,5 +1,9 @@ import type { AppState } from '../types' -import type { PathSource, ShellHydrationFailureReason, TuiAgent } from '../../../../shared/types' +import type { + PathSource, + ShellHydrationFailureReason +} from '../../../../shared/shell-path-hydration-types' +import type { TuiAgent } from '../../../../shared/tui-agent' export type LocalDetectedAgentState = { detectedAgentIds: TuiAgent[] | null diff --git a/src/renderer/src/store/slices/memory.test.ts b/src/renderer/src/store/slices/memory.test.ts index a63b5d92288..cdcb7e454c5 100644 --- a/src/renderer/src/store/slices/memory.test.ts +++ b/src/renderer/src/store/slices/memory.test.ts @@ -2,7 +2,7 @@ import { create } from 'zustand' import { afterEach, describe, expect, it, vi } from 'vitest' import { createMemorySlice } from './memory' import type { AppState } from '../types' -import type { MemorySnapshot } from '../../../../shared/types' +import type { MemorySnapshot } from '../../../../shared/process-stats-types' function makeMemorySnapshot(overrides: Partial = {}): MemorySnapshot { return { diff --git a/src/renderer/src/store/slices/memory.ts b/src/renderer/src/store/slices/memory.ts index bc6b26f5066..3fdc80f4d51 100644 --- a/src/renderer/src/store/slices/memory.ts +++ b/src/renderer/src/store/slices/memory.ts @@ -1,6 +1,6 @@ import type { StateCreator } from 'zustand' import type { AppState } from '../types' -import type { MemorySnapshot } from '../../../../shared/types' +import type { MemorySnapshot } from '../../../../shared/process-stats-types' export type MemorySlice = { memorySnapshot: MemorySnapshot | null diff --git a/src/renderer/src/store/slices/new-issue-draft.test.ts b/src/renderer/src/store/slices/new-issue-draft.test.ts index 459cb1eb1f0..c6809c48560 100644 --- a/src/renderer/src/store/slices/new-issue-draft.test.ts +++ b/src/renderer/src/store/slices/new-issue-draft.test.ts @@ -2,7 +2,7 @@ import { create } from 'zustand' import { describe, expect, it } from 'vitest' import { createNewIssueDraftSlice } from './new-issue-draft' import type { AppState } from '../types' -import type { GitHubAssignableUser } from '../../../../shared/types' +import type { GitHubAssignableUser } from '../../../../shared/github/pull-request-types' function makeStore() { return create>()( diff --git a/src/renderer/src/store/slices/new-issue-draft.ts b/src/renderer/src/store/slices/new-issue-draft.ts index 6ef7bb31b28..1bd9f3a98f8 100644 --- a/src/renderer/src/store/slices/new-issue-draft.ts +++ b/src/renderer/src/store/slices/new-issue-draft.ts @@ -1,6 +1,6 @@ import type { StateCreator } from 'zustand' import type { AppState } from '../types' -import type { GitHubAssignableUser } from '../../../../shared/types' +import type { GitHubAssignableUser } from '../../../../shared/github/pull-request-types' /** In-progress "New GitHub issue" composer draft. Session-only (never * `persist`-wrapped, no disk surface): it exists so an accidental dismissal diff --git a/src/renderer/src/store/slices/new-markdown.test.ts b/src/renderer/src/store/slices/new-markdown.test.ts index b0f1ebb9997..fe592dd7bf9 100644 --- a/src/renderer/src/store/slices/new-markdown.test.ts +++ b/src/renderer/src/store/slices/new-markdown.test.ts @@ -2,7 +2,8 @@ import { createStore, type StoreApi } from 'zustand/vanilla' import { describe, expect, it } from 'vitest' import { createEditorSlice } from './editor' import type { AppState } from '../types' -import type { BrowserTab, Tab, TabContentType, TabGroup } from '../../../../shared/types' +import type { BrowserTab } from '../../../../shared/browser-workspace-types' +import type { Tab, TabContentType, TabGroup } from '../../../../shared/tab-types' function createEditorStore(overrides?: Partial): StoreApi { // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/src/renderer/src/store/slices/pane-column-split-drop-no-op.test.ts b/src/renderer/src/store/slices/pane-column-split-drop-no-op.test.ts index f5c4d68b309..e8e98738241 100644 --- a/src/renderer/src/store/slices/pane-column-split-drop-no-op.test.ts +++ b/src/renderer/src/store/slices/pane-column-split-drop-no-op.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TabGroupLayoutNode } from '../../../../shared/types' +import type { TabGroupLayoutNode } from '../../../../shared/tab-types' import { findLayoutSiblingOnSplitSide, isPaneColumnSplitDropNoOp diff --git a/src/renderer/src/store/slices/pane-column-split-drop-no-op.ts b/src/renderer/src/store/slices/pane-column-split-drop-no-op.ts index 9f87e4a20a5..d149d477d5a 100644 --- a/src/renderer/src/store/slices/pane-column-split-drop-no-op.ts +++ b/src/renderer/src/store/slices/pane-column-split-drop-no-op.ts @@ -1,4 +1,4 @@ -import type { TabGroupLayoutNode } from '../../../../shared/types' +import type { TabGroupLayoutNode } from '../../../../shared/tab-types' import type { TabSplitDirection } from './tabs' function getDirectLayoutSiblingOnSplitSide( diff --git a/src/renderer/src/store/slices/pane-foreground-agent.test.ts b/src/renderer/src/store/slices/pane-foreground-agent.test.ts index 62363eee82c..a56158a99db 100644 --- a/src/renderer/src/store/slices/pane-foreground-agent.test.ts +++ b/src/renderer/src/store/slices/pane-foreground-agent.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' function terminalTab(id: string, worktreeId: string): TerminalTab { return { diff --git a/src/renderer/src/store/slices/pane-foreground-agent.ts b/src/renderer/src/store/slices/pane-foreground-agent.ts index 7adc8fea4ba..ebdd69e6865 100644 --- a/src/renderer/src/store/slices/pane-foreground-agent.ts +++ b/src/renderer/src/store/slices/pane-foreground-agent.ts @@ -1,6 +1,6 @@ import type { StateCreator } from 'zustand' import type { AppState } from '../types' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' export type PaneForegroundAgentEntry = { /** Recognized agent process in the pane's foreground; null when unknown. */ diff --git a/src/renderer/src/store/slices/preflight.test.ts b/src/renderer/src/store/slices/preflight.test.ts index 18ebaf839cd..386bdfdc59a 100644 --- a/src/renderer/src/store/slices/preflight.test.ts +++ b/src/renderer/src/store/slices/preflight.test.ts @@ -1,7 +1,8 @@ import { describe, expect, it, vi } from 'vitest' import { create } from 'zustand' import type { PreflightStatus } from '../../../../preload/api-types' -import type { Repo, Worktree } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { AppState } from '../types' import { createPreflightSlice } from './preflight' import { createRuntimeStatusSlice } from './runtime-status' diff --git a/src/renderer/src/store/slices/project-group-removal-targets.test.ts b/src/renderer/src/store/slices/project-group-removal-targets.test.ts index 0cf5a53ace9..f193730fb5d 100644 --- a/src/renderer/src/store/slices/project-group-removal-targets.test.ts +++ b/src/renderer/src/store/slices/project-group-removal-targets.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { ProjectGroup, Repo } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import { selectProjectGroupRemovalTargets } from './project-group-removal-targets' const rootGroup: ProjectGroup = { diff --git a/src/renderer/src/store/slices/project-group-removal-targets.ts b/src/renderer/src/store/slices/project-group-removal-targets.ts index 33bd8ba121a..ee0c11c3c4b 100644 --- a/src/renderer/src/store/slices/project-group-removal-targets.ts +++ b/src/renderer/src/store/slices/project-group-removal-targets.ts @@ -1,4 +1,5 @@ -import type { ProjectGroup, Repo } from '../../../../shared/types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import { getProjectGroupSubtreeIds } from '../../../../shared/project-groups' export type ProjectGroupRemovalTargets = { diff --git a/src/renderer/src/store/slices/pull-request-generation.ts b/src/renderer/src/store/slices/pull-request-generation.ts index aa8dc76bd5f..cf306b316cf 100644 --- a/src/renderer/src/store/slices/pull-request-generation.ts +++ b/src/renderer/src/store/slices/pull-request-generation.ts @@ -1,5 +1,5 @@ import type { StateCreator } from 'zustand' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { AppState } from '../types' export type PullRequestFieldName = 'base' | 'title' | 'body' | 'draft' diff --git a/src/renderer/src/store/slices/purge-stale-runtime-host-state.test.ts b/src/renderer/src/store/slices/purge-stale-runtime-host-state.test.ts index 0d05535ed2d..36bf4aafc2d 100644 --- a/src/renderer/src/store/slices/purge-stale-runtime-host-state.test.ts +++ b/src/renderer/src/store/slices/purge-stale-runtime-host-state.test.ts @@ -10,7 +10,8 @@ import { describe, it, expect, vi } from 'vitest' import { toRuntimeExecutionHostId } from '../../../../shared/execution-host' import { worktreeWorkspaceKey } from '../../../../shared/workspace-scope' -import type { ProjectHostSetup, DetectedWorktreeListResult } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { DetectedWorktreeListResult } from '../../../../shared/worktree/types' vi.mock('sonner', () => ({ toast: { info: vi.fn(), success: vi.fn(), error: vi.fn(), warning: vi.fn() } diff --git a/src/renderer/src/store/slices/remote-server-updates.ts b/src/renderer/src/store/slices/remote-server-updates.ts index 80b8a7370c1..07210ee7f97 100644 --- a/src/renderer/src/store/slices/remote-server-updates.ts +++ b/src/renderer/src/store/slices/remote-server-updates.ts @@ -4,7 +4,7 @@ import type { RemoteServerUpdaterSnapshot } from '../../../../shared/remote-serv import { isUserManagedRuntimeEnvironment } from '../../../../shared/runtime-environments' import type { RuntimeRpcResponse } from '../../../../shared/runtime-rpc-envelope' import type { RuntimeStatus } from '../../../../shared/runtime-types' -import type { UpdateCheckOptions } from '../../../../shared/types' +import type { UpdateCheckOptions } from '../../../../shared/update-status-types' import { unwrapRuntimeRpcResult } from '@/runtime/runtime-rpc-client' import { checkingRemoteServerUpdateEntry, diff --git a/src/renderer/src/store/slices/repo-host-identity.ts b/src/renderer/src/store/slices/repo-host-identity.ts index 772d5dc2925..a55198fd85c 100644 --- a/src/renderer/src/store/slices/repo-host-identity.ts +++ b/src/renderer/src/store/slices/repo-host-identity.ts @@ -1,4 +1,5 @@ -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' import { getRepoExecutionHostId, getSettingsFocusedExecutionHostId, diff --git a/src/renderer/src/store/slices/repo-identity-reconcile.test.ts b/src/renderer/src/store/slices/repo-identity-reconcile.test.ts index ecc1fa7d59e..43afafe717f 100644 --- a/src/renderer/src/store/slices/repo-identity-reconcile.test.ts +++ b/src/renderer/src/store/slices/repo-identity-reconcile.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import fs from 'node:fs' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { reconcileFetchedRepos, reuseEqualRecordMap } from './repo-identity-reconcile' function makeRepo(id: string, overrides: Partial = {}): Repo { diff --git a/src/renderer/src/store/slices/repo-identity-reconcile.ts b/src/renderer/src/store/slices/repo-identity-reconcile.ts index ea118295754..0e2b4aa1147 100644 --- a/src/renderer/src/store/slices/repo-identity-reconcile.ts +++ b/src/renderer/src/store/slices/repo-identity-reconcile.ts @@ -1,4 +1,4 @@ -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { structuralValuesEqual } from '../../../../shared/structural-value-equality' import { getRepoHostIdentity } from './repo-host-identity' diff --git a/src/renderer/src/store/slices/repo-reorder-host-split.test.ts b/src/renderer/src/store/slices/repo-reorder-host-split.test.ts index fd4ace117f3..e3d4311e03f 100644 --- a/src/renderer/src/store/slices/repo-reorder-host-split.test.ts +++ b/src/renderer/src/store/slices/repo-reorder-host-split.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { splitRepoReorderByHost } from './repo-reorder-host-split' function repo(id: string, executionHostId: string | null): Repo { diff --git a/src/renderer/src/store/slices/repo-reorder-host-split.ts b/src/renderer/src/store/slices/repo-reorder-host-split.ts index 9924df17c7f..82ad29bd6dd 100644 --- a/src/renderer/src/store/slices/repo-reorder-host-split.ts +++ b/src/renderer/src/store/slices/repo-reorder-host-split.ts @@ -1,4 +1,5 @@ -import type { GlobalSettings, Repo } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import type { Repo } from '../../../../shared/repo-types' import { getRepoExecutionHostId, getSettingsFocusedExecutionHostId diff --git a/src/renderer/src/store/slices/repos-all-hosts-folder-workspaces.test.ts b/src/renderer/src/store/slices/repos-all-hosts-folder-workspaces.test.ts index bbbd90d6440..148ea2209dc 100644 --- a/src/renderer/src/store/slices/repos-all-hosts-folder-workspaces.test.ts +++ b/src/renderer/src/store/slices/repos-all-hosts-folder-workspaces.test.ts @@ -1,6 +1,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-all-hosts-generation.test.ts b/src/renderer/src/store/slices/repos-all-hosts-generation.test.ts index 1aa9ed76072..2d89d53ceac 100644 --- a/src/renderer/src/store/slices/repos-all-hosts-generation.test.ts +++ b/src/renderer/src/store/slices/repos-all-hosts-generation.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-all-hosts.test.ts b/src/renderer/src/store/slices/repos-all-hosts.test.ts index 9d38bc0bf8c..17c9227aa5e 100644 --- a/src/renderer/src/store/slices/repos-all-hosts.test.ts +++ b/src/renderer/src/store/slices/repos-all-hosts.test.ts @@ -1,12 +1,9 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { - FolderWorkspace, - Project, - ProjectHostSetup, - ProjectGroup, - Repo -} from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-catalog-merge-identity.test.ts b/src/renderer/src/store/slices/repos-catalog-merge-identity.test.ts index 69f73e589b5..4cf74a63640 100644 --- a/src/renderer/src/store/slices/repos-catalog-merge-identity.test.ts +++ b/src/renderer/src/store/slices/repos-catalog-merge-identity.test.ts @@ -1,5 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import type { FolderWorkspacePathStatusCacheEntry } from './repos' import { createTestStore } from './store-test-helpers' diff --git a/src/renderer/src/store/slices/repos-cross-host-project-collisions.test.ts b/src/renderer/src/store/slices/repos-cross-host-project-collisions.test.ts index 5908c56118a..d3cac1929aa 100644 --- a/src/renderer/src/store/slices/repos-cross-host-project-collisions.test.ts +++ b/src/renderer/src/store/slices/repos-cross-host-project-collisions.test.ts @@ -10,7 +10,7 @@ */ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-cross-host-refresh-identity.test.ts b/src/renderer/src/store/slices/repos-cross-host-refresh-identity.test.ts index 6218d251607..9169384b55e 100644 --- a/src/renderer/src/store/slices/repos-cross-host-refresh-identity.test.ts +++ b/src/renderer/src/store/slices/repos-cross-host-refresh-identity.test.ts @@ -1,6 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { Project, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-host-identity-routing.test.ts b/src/renderer/src/store/slices/repos-host-identity-routing.test.ts index 33ad35355fb..5eba51545d4 100644 --- a/src/renderer/src/store/slices/repos-host-identity-routing.test.ts +++ b/src/renderer/src/store/slices/repos-host-identity-routing.test.ts @@ -1,6 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore, makeWorktree } from './store-test-helpers' -import type { Project, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-manual-order-hydration.test.ts b/src/renderer/src/store/slices/repos-manual-order-hydration.test.ts index 91374d47701..ce93d07e280 100644 --- a/src/renderer/src/store/slices/repos-manual-order-hydration.test.ts +++ b/src/renderer/src/store/slices/repos-manual-order-hydration.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { createTestStore } from './store-test-helpers' import { createCompatibleRuntimeStatusResponseIfNeeded, diff --git a/src/renderer/src/store/slices/repos-nested-ssh-projection.test.ts b/src/renderer/src/store/slices/repos-nested-ssh-projection.test.ts index bcdc36afdaf..9ced00f07fc 100644 --- a/src/renderer/src/store/slices/repos-nested-ssh-projection.test.ts +++ b/src/renderer/src/store/slices/repos-nested-ssh-projection.test.ts @@ -1,5 +1,5 @@ import { expect, it, vi } from 'vitest' -import type { Project, ProjectHostSetup } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' import { createTestStore } from './store-test-helpers' import { installReposRuntimeRoutingHarness, diff --git a/src/renderer/src/store/slices/repos-project-groups-delete.test.ts b/src/renderer/src/store/slices/repos-project-groups-delete.test.ts index b1692509c00..4f063f1eba3 100644 --- a/src/renderer/src/store/slices/repos-project-groups-delete.test.ts +++ b/src/renderer/src/store/slices/repos-project-groups-delete.test.ts @@ -1,6 +1,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-project-groups.test.ts b/src/renderer/src/store/slices/repos-project-groups.test.ts index 9fbf455587b..281fbde53e8 100644 --- a/src/renderer/src/store/slices/repos-project-groups.test.ts +++ b/src/renderer/src/store/slices/repos-project-groups.test.ts @@ -1,11 +1,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { - NestedRepoScanResult, - Repo, - ProjectGroup, - FolderWorkspace -} from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { NestedRepoScanResult, ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponse, createCompatibleRuntimeStatusResponseIfNeeded, diff --git a/src/renderer/src/store/slices/repos-project-host-capability.test.ts b/src/renderer/src/store/slices/repos-project-host-capability.test.ts index 862babeb51c..2bed7180315 100644 --- a/src/renderer/src/store/slices/repos-project-host-capability.test.ts +++ b/src/renderer/src/store/slices/repos-project-host-capability.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { PROJECT_HOST_SETUP_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version' import { clearRuntimeCompatibilityCacheForTests } from '../../runtime/runtime-rpc-client' import type { RuntimeEnvironmentCallRequest } from '../../runtime/runtime-compatibility-test-fixture' diff --git a/src/renderer/src/store/slices/repos-project-host-lifecycle.test.ts b/src/renderer/src/store/slices/repos-project-host-lifecycle.test.ts index 55ea9c1caea..667c1d308bb 100644 --- a/src/renderer/src/store/slices/repos-project-host-lifecycle.test.ts +++ b/src/renderer/src/store/slices/repos-project-host-lifecycle.test.ts @@ -1,5 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Project, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-project-runtime.test.ts b/src/renderer/src/store/slices/repos-project-runtime.test.ts index ba61fd6a552..6df79a4af58 100644 --- a/src/renderer/src/store/slices/repos-project-runtime.test.ts +++ b/src/renderer/src/store/slices/repos-project-runtime.test.ts @@ -1,6 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { Project, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-refresh-identity.test.ts b/src/renderer/src/store/slices/repos-refresh-identity.test.ts index 98750177831..78cc36eb0e7 100644 --- a/src/renderer/src/store/slices/repos-refresh-identity.test.ts +++ b/src/renderer/src/store/slices/repos-refresh-identity.test.ts @@ -1,5 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Project, Repo } from '../../../../shared/types' +import type { Project } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { getSetupScriptPromptDismissalKey } from '../../lib/setup-script-prompt' import { getRepoHostIdentityForParts } from './repo-host-identity' import { createTestStore } from './store-test-helpers' @@ -472,9 +473,11 @@ describe('SSH readoption catalog identity', () => { expect(oldSetup).toBeDefined() expect(newSetup).toBeDefined() - store.getState().recordSshRepoReadoptions([ - { oldTargetId: 'ssh-old', newTargetId: 'ssh-new', repoIds: [repo.id] } - ]) + store + .getState() + .recordSshRepoReadoptions([ + { oldTargetId: 'ssh-old', newTargetId: 'ssh-new', repoIds: [repo.id] } + ]) const next = store.getState().projectHostSetups expect(next).not.toBe(setups) @@ -486,4 +489,3 @@ describe('SSH readoption catalog identity', () => { expect(store.getState().pendingSshRepoReadoptions).toEqual([]) }) }) - diff --git a/src/renderer/src/store/slices/repos-remove-missing-remote-project.test.ts b/src/renderer/src/store/slices/repos-remove-missing-remote-project.test.ts index ef9c5bd7431..78e7896f7c5 100644 --- a/src/renderer/src/store/slices/repos-remove-missing-remote-project.test.ts +++ b/src/renderer/src/store/slices/repos-remove-missing-remote-project.test.ts @@ -9,7 +9,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { toast } from 'sonner' import { createTestStore } from './store-test-helpers' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-remove-project-purge-leak.test.ts b/src/renderer/src/store/slices/repos-remove-project-purge-leak.test.ts index 69bebba9240..2c35bb35fb8 100644 --- a/src/renderer/src/store/slices/repos-remove-project-purge-leak.test.ts +++ b/src/renderer/src/store/slices/repos-remove-project-purge-leak.test.ts @@ -15,7 +15,7 @@ */ import { describe, it, expect, vi, beforeEach } from 'vitest' import { createTestStore, makeWorktree } from './store-test-helpers' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' const repo1: Repo = { id: 'repo-1', path: '/r1', displayName: 'R1', badgeColor: '#000', addedAt: 1 } const repo2: Repo = { id: 'repo-2', path: '/r2', displayName: 'R2', badgeColor: '#111', addedAt: 2 } diff --git a/src/renderer/src/store/slices/repos-runtime-project-groups.test.ts b/src/renderer/src/store/slices/repos-runtime-project-groups.test.ts index bab610f598b..c01ccf818b7 100644 --- a/src/renderer/src/store/slices/repos-runtime-project-groups.test.ts +++ b/src/renderer/src/store/slices/repos-runtime-project-groups.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-runtime-routing-fixture.ts b/src/renderer/src/store/slices/repos-runtime-routing-fixture.ts index ef96a644e77..5df2606b057 100644 --- a/src/renderer/src/store/slices/repos-runtime-routing-fixture.ts +++ b/src/renderer/src/store/slices/repos-runtime-routing-fixture.ts @@ -1,6 +1,6 @@ import { beforeEach, vi, type Mock } from 'vitest' import { toast } from 'sonner' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-selected-owner-routing.test.ts b/src/renderer/src/store/slices/repos-selected-owner-routing.test.ts index 691a9fbdaaf..37922e968d8 100644 --- a/src/renderer/src/store/slices/repos-selected-owner-routing.test.ts +++ b/src/renderer/src/store/slices/repos-selected-owner-routing.test.ts @@ -1,5 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectGroup } from '../../../../shared/project-group-types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-setup-script-dismissals.test.ts b/src/renderer/src/store/slices/repos-setup-script-dismissals.test.ts index f805b66ac0c..6ddcdf99f9f 100644 --- a/src/renderer/src/store/slices/repos-setup-script-dismissals.test.ts +++ b/src/renderer/src/store/slices/repos-setup-script-dismissals.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { getSetupScriptPromptDismissalKey } from '../../lib/setup-script-prompt' import { createTestStore } from './store-test-helpers' import { getRepoHostIdentityForParts } from './repo-host-identity' diff --git a/src/renderer/src/store/slices/repos-shared-project-badge-color.test.ts b/src/renderer/src/store/slices/repos-shared-project-badge-color.test.ts index 77948ba5ed7..bc143733556 100644 --- a/src/renderer/src/store/slices/repos-shared-project-badge-color.test.ts +++ b/src/renderer/src/store/slices/repos-shared-project-badge-color.test.ts @@ -1,6 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { Project, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { createCompatibleRuntimeStatusResponseIfNeeded, type RuntimeEnvironmentCallRequest diff --git a/src/renderer/src/store/slices/repos-ssh-host-reconciliation.test.ts b/src/renderer/src/store/slices/repos-ssh-host-reconciliation.test.ts index e32f2da3699..58d694c84d0 100644 --- a/src/renderer/src/store/slices/repos-ssh-host-reconciliation.test.ts +++ b/src/renderer/src/store/slices/repos-ssh-host-reconciliation.test.ts @@ -8,7 +8,9 @@ import type { SshConnectionState, SshProviderEpoch } from '../../../../shared/ssh-types' -import type { Project, ProjectHostSetup, Repo, Worktree } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Worktree } from '../../../../shared/worktree/types' import { createTestStore } from './store-test-helpers' const repoId = 're-adopted-repo' diff --git a/src/renderer/src/store/slices/repos-stale-fetch.test.ts b/src/renderer/src/store/slices/repos-stale-fetch.test.ts index c3c73d204ce..0c25f864cec 100644 --- a/src/renderer/src/store/slices/repos-stale-fetch.test.ts +++ b/src/renderer/src/store/slices/repos-stale-fetch.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it, vi, beforeEach } from 'vitest' import { createTestStore, makeLayout, makeTab } from './store-test-helpers' -import type { Repo, WorkspaceSessionState } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { getDefaultWorkspaceSession } from '../../../../shared/constants' import { clearRuntimeCompatibilityCacheForTests } from '../../runtime/runtime-rpc-client' diff --git a/src/renderer/src/store/slices/repos-update-serialization.test.ts b/src/renderer/src/store/slices/repos-update-serialization.test.ts index 811d4c81f07..ebfc23161d5 100644 --- a/src/renderer/src/store/slices/repos-update-serialization.test.ts +++ b/src/renderer/src/store/slices/repos-update-serialization.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' const localRepo: Repo = { id: 'local-repo', diff --git a/src/renderer/src/store/slices/repos.runtime-fallback.test.ts b/src/renderer/src/store/slices/repos.runtime-fallback.test.ts index 9847481fd34..a5c38b8917b 100644 --- a/src/renderer/src/store/slices/repos.runtime-fallback.test.ts +++ b/src/renderer/src/store/slices/repos.runtime-fallback.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { FOLDER_WORKSPACE_PATH_STATUS_RUNTIME_CAPABILITY, RUNTIME_CAPABILITIES diff --git a/src/renderer/src/store/slices/repos.test.ts b/src/renderer/src/store/slices/repos.test.ts index efd5a998375..83a3564cf5b 100644 --- a/src/renderer/src/store/slices/repos.test.ts +++ b/src/renderer/src/store/slices/repos.test.ts @@ -1,7 +1,8 @@ import { describe, expect, it, vi } from 'vitest' import { createTestStore, makeWorktree } from './store-test-helpers' import { workItemsCacheKey } from './github' -import type { Project, ProjectHostSetup, Repo } from '../../../../shared/types' +import type { Project, ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { toast } from 'sonner' import { installReposRuntimeRoutingHarness, diff --git a/src/renderer/src/store/slices/repos.ts b/src/renderer/src/store/slices/repos.ts index 3cfa784209d..a619f5c0182 100644 --- a/src/renderer/src/store/slices/repos.ts +++ b/src/renderer/src/store/slices/repos.ts @@ -3,16 +3,16 @@ import type { StateCreator } from 'zustand' import { toast } from 'sonner' import type { AppState } from '../types' import type { SshRepoReadoption } from '../../../../shared/ssh-types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { - GlobalSettings, - Project, - ProjectUpdateArgs, - Repo, - ProjectGroup, - ProjectHostSetup, - FolderWorkspace, - ProjectGroupImportResult, NestedRepoScanResult, + ProjectGroup, + ProjectGroupImportResult +} from '../../../../shared/project-group-types' +import type { + Project, + ProjectHostSetup, ProjectHostSetupCloneArgs, ProjectHostSetupCreateArgs, ProjectHostSetupCreateResult, @@ -21,8 +21,10 @@ import type { ProjectHostSetupExistingFolderArgs, ProjectHostSetupResult, ProjectHostSetupUpdateArgs, - ProjectHostSetupUpdateResult -} from '../../../../shared/types' + ProjectHostSetupUpdateResult, + ProjectUpdateArgs +} from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' import { getProjectIdentityKey, mergeCatalogCreatedAt, diff --git a/src/renderer/src/store/slices/restored-editor-owner-reparent.test.ts b/src/renderer/src/store/slices/restored-editor-owner-reparent.test.ts index d3e8f37f15f..9e7cf558ba2 100644 --- a/src/renderer/src/store/slices/restored-editor-owner-reparent.test.ts +++ b/src/renderer/src/store/slices/restored-editor-owner-reparent.test.ts @@ -15,7 +15,7 @@ import { getEditorFileOperationContext } from '@/lib/editor-file-operation-owner' import type { AppState } from '@/store/types' -import type { WorkspaceSessionState } from '../../../../shared/types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' const SOURCE = 'repo-a::/repo-a' const TARGET = 'repo-b::/repo-b' diff --git a/src/renderer/src/store/slices/runtime-catalog-merge-removed-env-guard.test.ts b/src/renderer/src/store/slices/runtime-catalog-merge-removed-env-guard.test.ts index 972a78b1ad2..76a28ae2634 100644 --- a/src/renderer/src/store/slices/runtime-catalog-merge-removed-env-guard.test.ts +++ b/src/renderer/src/store/slices/runtime-catalog-merge-removed-env-guard.test.ts @@ -9,7 +9,7 @@ */ import { describe, it, expect, vi } from 'vitest' import type * as RuntimeRpcClientModule from '@/runtime/runtime-rpc-client' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import type { PublicKnownRuntimeEnvironment } from '../../../../shared/runtime-environments' vi.mock('sonner', () => ({ diff --git a/src/renderer/src/store/slices/runtime-detected-agents.ts b/src/renderer/src/store/slices/runtime-detected-agents.ts index 466c131f4e7..daac8ffada0 100644 --- a/src/renderer/src/store/slices/runtime-detected-agents.ts +++ b/src/renderer/src/store/slices/runtime-detected-agents.ts @@ -1,6 +1,6 @@ import type { StateCreator } from 'zustand' import type { AppState } from '../types' -import type { TuiAgent } from '../../../../shared/types' +import type { TuiAgent } from '../../../../shared/tui-agent' import { callRuntimeRpc, RuntimeRpcCallError } from '@/runtime/runtime-rpc-client' // Why: remote runtime hosts are not SSH connections, but their launch surfaces diff --git a/src/renderer/src/store/slices/runtime-host-purge-session-partition-split.test.ts b/src/renderer/src/store/slices/runtime-host-purge-session-partition-split.test.ts index da09283ffcb..4b3d95b384c 100644 --- a/src/renderer/src/store/slices/runtime-host-purge-session-partition-split.test.ts +++ b/src/renderer/src/store/slices/runtime-host-purge-session-partition-split.test.ts @@ -7,7 +7,7 @@ */ import { describe, it, expect, vi } from 'vitest' import { toRuntimeExecutionHostId } from '../../../../shared/execution-host' -import type { WorkspaceSessionPatch } from '../../../../shared/types' +import type { WorkspaceSessionPatch } from '../../../../shared/workspace-session-state-types' import { buildHostIdByWorktreeId, patchWorkspaceSessionByHost, diff --git a/src/renderer/src/store/slices/selected-host-active-workspace-identity.test.ts b/src/renderer/src/store/slices/selected-host-active-workspace-identity.test.ts index a18fbfe23ce..fa07d59a718 100644 --- a/src/renderer/src/store/slices/selected-host-active-workspace-identity.test.ts +++ b/src/renderer/src/store/slices/selected-host-active-workspace-identity.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect, it } from 'vitest' import type { ExecutionHostId } from '../../../../shared/execution-host' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { getExecutionHostIdForWorktree } from '@/lib/worktree-runtime-owner' import { useAppStore } from '@/store' diff --git a/src/renderer/src/store/slices/set-runtime-environments-purge-wiring.test.ts b/src/renderer/src/store/slices/set-runtime-environments-purge-wiring.test.ts index 80d4c24daad..41afe5a067f 100644 --- a/src/renderer/src/store/slices/set-runtime-environments-purge-wiring.test.ts +++ b/src/renderer/src/store/slices/set-runtime-environments-purge-wiring.test.ts @@ -6,7 +6,7 @@ */ import { describe, it, expect, vi } from 'vitest' import { toRuntimeExecutionHostId } from '../../../../shared/execution-host' -import type { ProjectHostSetup } from '../../../../shared/types' +import type { ProjectHostSetup } from '../../../../shared/project-types' import type { PublicKnownRuntimeEnvironment } from '../../../../shared/runtime-environments' vi.mock('sonner', () => ({ diff --git a/src/renderer/src/store/slices/settings.test.ts b/src/renderer/src/store/slices/settings.test.ts index 756e6d9baa8..3f55f065358 100644 --- a/src/renderer/src/store/slices/settings.test.ts +++ b/src/renderer/src/store/slices/settings.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi, beforeEach } from 'vitest' import { createTestStore, makeWorktree } from './store-test-helpers' import type { AppState } from '../types' -import type { WorktreeLineage } from '../../../../shared/types' +import type { WorktreeLineage } from '../../../../shared/worktree/lineage-types' import type { PublicKnownRuntimeEnvironment } from '../../../../shared/runtime-environments' import { toast } from 'sonner' import { diff --git a/src/renderer/src/store/slices/settings.ts b/src/renderer/src/store/slices/settings.ts index 593d1650e1e..22cf42b8cc6 100644 --- a/src/renderer/src/store/slices/settings.ts +++ b/src/renderer/src/store/slices/settings.ts @@ -1,6 +1,6 @@ import type { StateCreator } from 'zustand' import type { AppState } from '../types' -import type { GlobalSettings } from '../../../../shared/types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { toast } from 'sonner' import { clearRuntimeCompatibilityCache, diff --git a/src/renderer/src/store/slices/sparse-presets-repo-removal-purge-leak.test.ts b/src/renderer/src/store/slices/sparse-presets-repo-removal-purge-leak.test.ts index d03b8418345..429e3e793d8 100644 --- a/src/renderer/src/store/slices/sparse-presets-repo-removal-purge-leak.test.ts +++ b/src/renderer/src/store/slices/sparse-presets-repo-removal-purge-leak.test.ts @@ -9,7 +9,8 @@ */ import { describe, it, expect, vi, beforeEach } from 'vitest' import { createTestStore, makeWorktree } from './store-test-helpers' -import type { Repo, SparsePreset } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' +import type { SparsePreset } from '../../../../shared/worktree/create-types' const repo1: Repo = { id: 'repo-1', path: '/r1', displayName: 'R1', badgeColor: '#000', addedAt: 1 } const repo2: Repo = { id: 'repo-2', path: '/r2', displayName: 'R2', badgeColor: '#111', addedAt: 2 } diff --git a/src/renderer/src/store/slices/sparse-presets.test.ts b/src/renderer/src/store/slices/sparse-presets.test.ts index 5b41551ab21..c8192983c1d 100644 --- a/src/renderer/src/store/slices/sparse-presets.test.ts +++ b/src/renderer/src/store/slices/sparse-presets.test.ts @@ -1,6 +1,6 @@ import { create } from 'zustand' import { beforeEach, describe, expect, it, vi } from 'vitest' -import type { SparsePreset } from '../../../../shared/types' +import type { SparsePreset } from '../../../../shared/worktree/create-types' import type { AppState } from '../types' import { createSparsePresetsSlice } from './sparse-presets' diff --git a/src/renderer/src/store/slices/sparse-presets.ts b/src/renderer/src/store/slices/sparse-presets.ts index af118c7703b..b9e763bf72e 100644 --- a/src/renderer/src/store/slices/sparse-presets.ts +++ b/src/renderer/src/store/slices/sparse-presets.ts @@ -1,7 +1,7 @@ import type { StateCreator } from 'zustand' import { toast } from 'sonner' import type { AppState } from '../types' -import type { SparsePreset } from '../../../../shared/types' +import type { SparsePreset } from '../../../../shared/worktree/create-types' import { translate } from '@/i18n/i18n' const ERROR_TOAST_DURATION = 60_000 diff --git a/src/renderer/src/store/slices/stats.ts b/src/renderer/src/store/slices/stats.ts index 290ee9f44c0..19e87066be3 100644 --- a/src/renderer/src/store/slices/stats.ts +++ b/src/renderer/src/store/slices/stats.ts @@ -1,6 +1,6 @@ import type { StateCreator } from 'zustand' import type { AppState } from '../types' -import type { StatsSummary } from '../../../../shared/types' +import type { StatsSummary } from '../../../../shared/process-stats-types' export type StatsSlice = { statsSummary: StatsSummary | null diff --git a/src/renderer/src/store/slices/store-session-cascades.test.ts b/src/renderer/src/store/slices/store-session-cascades.test.ts index 65474236f67..3ce0ac52a74 100644 --- a/src/renderer/src/store/slices/store-session-cascades.test.ts +++ b/src/renderer/src/store/slices/store-session-cascades.test.ts @@ -1,12 +1,8 @@ /* eslint-disable max-lines */ import { describe, it, expect, vi, beforeEach } from 'vitest' import type * as AgentStatusModule from '@/lib/agent-status' -import type { - BrowserPage, - BrowserTab, - DetectedWorktreeListResult, - Worktree -} from '../../../../shared/types' +import type { BrowserPage, BrowserTab } from '../../../../shared/browser-workspace-types' +import type { DetectedWorktreeListResult, Worktree } from '../../../../shared/worktree/types' import { isTerminalLeafId } from '../../../../shared/stable-pane-id' import { FLOATING_TERMINAL_WORKTREE_ID, diff --git a/src/renderer/src/store/slices/store-test-helpers.ts b/src/renderer/src/store/slices/store-test-helpers.ts index a4117e25260..1878bb3e7ce 100644 --- a/src/renderer/src/store/slices/store-test-helpers.ts +++ b/src/renderer/src/store/slices/store-test-helpers.ts @@ -1,12 +1,8 @@ import { create } from 'zustand' import type { AppState } from '../types' -import type { - Worktree, - TerminalTab, - TerminalLayoutSnapshot, - Tab, - TabGroup -} from '../../../../shared/types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { OpenFile } from './editor' import { createRepoSlice } from './repos' import { createSparsePresetsSlice } from './sparse-presets' diff --git a/src/renderer/src/store/slices/superseded-ssh-repo-rows.test.ts b/src/renderer/src/store/slices/superseded-ssh-repo-rows.test.ts index 7b50312d7a5..42f89222f35 100644 --- a/src/renderer/src/store/slices/superseded-ssh-repo-rows.test.ts +++ b/src/renderer/src/store/slices/superseded-ssh-repo-rows.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { mergeSshRepoReadoptions, reconcileReadoptedSshRepoRows } from './superseded-ssh-repo-rows' function repo(overrides: Partial): Repo { diff --git a/src/renderer/src/store/slices/superseded-ssh-repo-rows.ts b/src/renderer/src/store/slices/superseded-ssh-repo-rows.ts index a9880577f60..4dc3d9399df 100644 --- a/src/renderer/src/store/slices/superseded-ssh-repo-rows.ts +++ b/src/renderer/src/store/slices/superseded-ssh-repo-rows.ts @@ -1,5 +1,5 @@ import type { SshRepoReadoption } from '../../../../shared/ssh-types' -import type { Repo } from '../../../../shared/types' +import type { Repo } from '../../../../shared/repo-types' import { getRepoExecutionHostId, toSshExecutionHostId } from '../../../../shared/execution-host' import { getRepoHostIdentityForParts } from '../../../../shared/repo-host-identity' diff --git a/src/renderer/src/store/slices/tab-group-reference-repair.ts b/src/renderer/src/store/slices/tab-group-reference-repair.ts index 42a742cc724..e992139cf28 100644 --- a/src/renderer/src/store/slices/tab-group-reference-repair.ts +++ b/src/renderer/src/store/slices/tab-group-reference-repair.ts @@ -1,4 +1,4 @@ -import type { Tab, TabGroup, TabGroupLayoutNode } from '../../../../shared/types' +import type { Tab, TabGroup, TabGroupLayoutNode } from '../../../../shared/tab-types' import { createBrowserUuid } from '@/lib/browser-uuid' function collectLayoutGroupIds(node: TabGroupLayoutNode, groupIds: Set): void { diff --git a/src/renderer/src/store/slices/tab-group-state.test.ts b/src/renderer/src/store/slices/tab-group-state.test.ts index 22529cdea8e..9ec2d00b7ea 100644 --- a/src/renderer/src/store/slices/tab-group-state.test.ts +++ b/src/renderer/src/store/slices/tab-group-state.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from 'vitest' -import type { Tab, TabGroup } from '../../../../shared/types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' import { findTabAndWorktree, findGroupForTab, diff --git a/src/renderer/src/store/slices/tab-group-state.ts b/src/renderer/src/store/slices/tab-group-state.ts index 6563829f89d..838433651c7 100644 --- a/src/renderer/src/store/slices/tab-group-state.ts +++ b/src/renderer/src/store/slices/tab-group-state.ts @@ -1,4 +1,5 @@ -import type { Tab, TabContentType, TabGroup, WorkspaceSessionState } from '../../../../shared/types' +import type { Tab, TabContentType, TabGroup } from '../../../../shared/tab-types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { createBrowserUuid } from '@/lib/browser-uuid' export function findTabAndWorktree( diff --git a/src/renderer/src/store/slices/tabs-hydration-generated-title.test.ts b/src/renderer/src/store/slices/tabs-hydration-generated-title.test.ts index 1f0b2501174..dc8d7836a2a 100644 --- a/src/renderer/src/store/slices/tabs-hydration-generated-title.test.ts +++ b/src/renderer/src/store/slices/tabs-hydration-generated-title.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { WorkspaceSessionState } from '../../../../shared/types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { buildHydratedTabState } from './tabs-hydration' function makeBaseSession(): WorkspaceSessionState { diff --git a/src/renderer/src/store/slices/tabs-hydration-group-validation.test.ts b/src/renderer/src/store/slices/tabs-hydration-group-validation.test.ts index dca253f4733..70d81deb851 100644 --- a/src/renderer/src/store/slices/tabs-hydration-group-validation.test.ts +++ b/src/renderer/src/store/slices/tabs-hydration-group-validation.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { WorkspaceSessionState } from '../../../../shared/types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { buildHydratedTabState } from './tabs-hydration' function makeBaseSession(): WorkspaceSessionState { diff --git a/src/renderer/src/store/slices/tabs-hydration.test.ts b/src/renderer/src/store/slices/tabs-hydration.test.ts index afd5a05eced..bab64605273 100644 --- a/src/renderer/src/store/slices/tabs-hydration.test.ts +++ b/src/renderer/src/store/slices/tabs-hydration.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect, vi } from 'vitest' -import type { WorkspaceSessionState } from '../../../../shared/types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { buildHydratedTabState } from './tabs-hydration' vi.stubGlobal('crypto', { randomUUID: () => `uuid-${Math.random().toString(36).slice(2, 8)}` }) diff --git a/src/renderer/src/store/slices/tabs-hydration.ts b/src/renderer/src/store/slices/tabs-hydration.ts index 2fb85ab3808..d3a8dd97c01 100644 --- a/src/renderer/src/store/slices/tabs-hydration.ts +++ b/src/renderer/src/store/slices/tabs-hydration.ts @@ -1,9 +1,5 @@ -import type { - Tab, - TabGroup, - TabGroupLayoutNode, - WorkspaceSessionState -} from '../../../../shared/types' +import type { Tab, TabGroup, TabGroupLayoutNode } from '../../../../shared/tab-types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { isValidTerminalTabId } from '../../../../shared/terminal-tab-id' import { createBrowserUuid } from '@/lib/browser-uuid' import { adoptGrouplessTabs, layoutSpanningGroups } from './tab-group-reference-repair' diff --git a/src/renderer/src/store/slices/tabs.test.ts b/src/renderer/src/store/slices/tabs.test.ts index c7bab81ff81..1599c2b8db1 100644 --- a/src/renderer/src/store/slices/tabs.test.ts +++ b/src/renderer/src/store/slices/tabs.test.ts @@ -1,6 +1,6 @@ /* eslint-disable max-lines */ import { describe, it, expect, vi, beforeEach } from 'vitest' -import type { Tab, TabGroup } from '../../../../shared/types' +import type { Tab, TabGroup } from '../../../../shared/tab-types' import type * as AgentStatusModule from '@/lib/agent-status' import { FLOATING_TERMINAL_WORKTREE_ID, getDefaultUIState } from '../../../../shared/constants' import { buildMobileSessionTabSnapshots } from '../../runtime/sync-runtime-graph' diff --git a/src/renderer/src/store/slices/tabs.ts b/src/renderer/src/store/slices/tabs.ts index 10b3ddbda0f..1c318830e0f 100644 --- a/src/renderer/src/store/slices/tabs.ts +++ b/src/renderer/src/store/slices/tabs.ts @@ -6,11 +6,11 @@ import type { TabContentType, TabGroup, TabGroupLayoutNode, - TerminalTab, - TuiAgent, - WorkspaceSessionState, WorkspaceVisibleTabType -} from '../../../../shared/types' +} from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../../shared/tui-agent' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { emitNativeChatToggled } from '@/lib/native-chat-telemetry' import { dedupeTabOrder, diff --git a/src/renderer/src/store/slices/terminal-activation-spawn-suppression.ts b/src/renderer/src/store/slices/terminal-activation-spawn-suppression.ts index 203736af29d..500b2f4cf35 100644 --- a/src/renderer/src/store/slices/terminal-activation-spawn-suppression.ts +++ b/src/renderer/src/store/slices/terminal-activation-spawn-suppression.ts @@ -1,4 +1,7 @@ -import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode } from '../../../../shared/types' +import type { + TerminalLayoutSnapshot, + TerminalPaneLayoutNode +} from '../../../../shared/terminal-tab-types' function countTerminalLayoutLeaves(node: TerminalPaneLayoutNode | null | undefined): number { if (!node) { diff --git a/src/renderer/src/store/slices/terminal-helpers.test.ts b/src/renderer/src/store/slices/terminal-helpers.test.ts index 93c6f395d3a..ee84ad2faf7 100644 --- a/src/renderer/src/store/slices/terminal-helpers.test.ts +++ b/src/renderer/src/store/slices/terminal-helpers.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { emptyLayoutSnapshot, clearTransientTerminalState } from './terminal-helpers' function makeTab(overrides: Partial = {}): TerminalTab { diff --git a/src/renderer/src/store/slices/terminal-helpers.ts b/src/renderer/src/store/slices/terminal-helpers.ts index 7f42c049ab6..3815849ea14 100644 --- a/src/renderer/src/store/slices/terminal-helpers.ts +++ b/src/renderer/src/store/slices/terminal-helpers.ts @@ -1,4 +1,4 @@ -import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' import { classifyTitleActivity } from '@/lib/pane-agent-evidence' export function emptyLayoutSnapshot(): TerminalLayoutSnapshot { diff --git a/src/renderer/src/store/slices/terminal-orphan-helpers.test.ts b/src/renderer/src/store/slices/terminal-orphan-helpers.test.ts index 0058213701d..00472302e2a 100644 --- a/src/renderer/src/store/slices/terminal-orphan-helpers.test.ts +++ b/src/renderer/src/store/slices/terminal-orphan-helpers.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { getOrphanTerminalIds } from './terminal-orphan-helpers' import { buildTerminalTabRetirementPlan } from './terminal-tab-retirement' diff --git a/src/renderer/src/store/slices/terminal-pane-detach-agent-retention.test.ts b/src/renderer/src/store/slices/terminal-pane-detach-agent-retention.test.ts index 257753fa58d..5545b3678f6 100644 --- a/src/renderer/src/store/slices/terminal-pane-detach-agent-retention.test.ts +++ b/src/renderer/src/store/slices/terminal-pane-detach-agent-retention.test.ts @@ -7,7 +7,7 @@ import { } from './agent-pane-authority' import { createTestStore, makeTab, makeWorktree, seedStore } from './store-test-helpers' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { DashboardAgentRow } from '@/components/dashboard/useDashboardData' const WORKTREE_ID = 'repo::/repo/worktree' diff --git a/src/renderer/src/store/slices/terminal-quick-command-hosts.test.ts b/src/renderer/src/store/slices/terminal-quick-command-hosts.test.ts index 43c8ab5dd74..435f560cfd2 100644 --- a/src/renderer/src/store/slices/terminal-quick-command-hosts.test.ts +++ b/src/renderer/src/store/slices/terminal-quick-command-hosts.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore } from './store-test-helpers' -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import { getDefaultSettings } from '../../../../shared/constants' import { MIN_COMPATIBLE_RUNTIME_CLIENT_VERSION, diff --git a/src/renderer/src/store/slices/terminal-quick-command-hosts.ts b/src/renderer/src/store/slices/terminal-quick-command-hosts.ts index df951c77324..7fd3b299eae 100644 --- a/src/renderer/src/store/slices/terminal-quick-command-hosts.ts +++ b/src/renderer/src/store/slices/terminal-quick-command-hosts.ts @@ -1,7 +1,7 @@ import type { StateCreator } from 'zustand' import { toast } from 'sonner' import type { AppState } from '../types' -import type { TerminalQuickCommand } from '../../../../shared/types' +import type { TerminalQuickCommand } from '../../../../shared/terminal-quick-command-types' import { applyTerminalQuickCommandMutation, parseNormalizedTerminalQuickCommands, diff --git a/src/renderer/src/store/slices/terminal-session-row-hydration.ts b/src/renderer/src/store/slices/terminal-session-row-hydration.ts index bb728f76483..eda4f369725 100644 --- a/src/renderer/src/store/slices/terminal-session-row-hydration.ts +++ b/src/renderer/src/store/slices/terminal-session-row-hydration.ts @@ -1,8 +1,5 @@ -import type { - TerminalLayoutSnapshot, - TerminalTab, - WorkspaceSessionState -} from '../../../../shared/types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import type { AiVaultSessionTitle } from '../../../../shared/ai-vault-session-title' import { isValidTerminalTabId } from '../../../../shared/terminal-tab-id' import { collectLeafIdsInOrder } from '@/components/terminal-pane/terminal-layout-leaf-ids' diff --git a/src/renderer/src/store/slices/terminal-tab-id-hydration.test.ts b/src/renderer/src/store/slices/terminal-tab-id-hydration.test.ts index cb5e7080ced..7745102c79a 100644 --- a/src/renderer/src/store/slices/terminal-tab-id-hydration.test.ts +++ b/src/renderer/src/store/slices/terminal-tab-id-hydration.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { WorkspaceSessionState } from '../../../../shared/types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { buildHydratedTabState } from './tabs-hydration' vi.mock('sonner', () => ({ toast: { info: vi.fn(), success: vi.fn(), error: vi.fn() } })) diff --git a/src/renderer/src/store/slices/terminal-tab-retirement.test.ts b/src/renderer/src/store/slices/terminal-tab-retirement.test.ts index c18b07e27d5..7365707be97 100644 --- a/src/renderer/src/store/slices/terminal-tab-retirement.test.ts +++ b/src/renderer/src/store/slices/terminal-tab-retirement.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import type { SleepingAgentSessionRecord } from '../../../../shared/agent-session-resume' -import type { TerminalTab } from '../../../../shared/types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' import { brandEphemeralSetupTerminalWorktreeId } from '../../../../shared/ephemeral-setup-terminal-worktree-id' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' diff --git a/src/renderer/src/store/slices/terminal-tab-title-batch.ts b/src/renderer/src/store/slices/terminal-tab-title-batch.ts index 21701f3bd9d..20c51f59967 100644 --- a/src/renderer/src/store/slices/terminal-tab-title-batch.ts +++ b/src/renderer/src/store/slices/terminal-tab-title-batch.ts @@ -1,7 +1,8 @@ import { deriveGeneratedTabTitle } from '../../../../shared/agent-tab-title' import { isDecorativeAgentTitleFrameChange } from '../../../../shared/agent-decorative-title-signature' import { parseLegacyNumericPaneKey, parsePaneKey } from '../../../../shared/stable-pane-id' -import type { Tab, TerminalTab } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' import type { AppState } from '../types' export type TerminalTabTitleUpdate = { tabId: string; title: string } diff --git a/src/renderer/src/store/slices/terminal-write-identity-bailouts.test.ts b/src/renderer/src/store/slices/terminal-write-identity-bailouts.test.ts index bfd5ab13964..c68f58436c8 100644 --- a/src/renderer/src/store/slices/terminal-write-identity-bailouts.test.ts +++ b/src/renderer/src/store/slices/terminal-write-identity-bailouts.test.ts @@ -13,7 +13,7 @@ * 1_000 (one per call), the post-fix numbers are 0. */ import { describe, expect, it } from 'vitest' -import type { TerminalLayoutSnapshot } from '../../../../shared/types' +import type { TerminalLayoutSnapshot } from '../../../../shared/terminal-tab-types' import { createTestStore } from './store-test-helpers' const REPEATS = 1_000 diff --git a/src/renderer/src/store/slices/terminals-hydration-canonical-pty-overlap.test.ts b/src/renderer/src/store/slices/terminals-hydration-canonical-pty-overlap.test.ts index ddea9b058ab..170b1ceac81 100644 --- a/src/renderer/src/store/slices/terminals-hydration-canonical-pty-overlap.test.ts +++ b/src/renderer/src/store/slices/terminals-hydration-canonical-pty-overlap.test.ts @@ -5,7 +5,9 @@ import { describe, expect, it } from 'vitest' import { hydrateWorkspaceTerminalRows } from './terminal-session-row-hydration' import { getOrphanTerminalIds } from './terminal-orphan-helpers' import type { SleepingAgentSessionRecord } from '../../../../shared/agent-session-resume' -import type { Tab, TerminalTab, WorkspaceSessionState } from '../../../../shared/types' +import type { Tab } from '../../../../shared/tab-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { getDefaultWorkspaceSession } from '../../../../shared/constants' import { buildWorkspaceSessionPayload } from '@/lib/workspace-session' import { createTestStore, makeLayout, makeTab, makeWorktree, seedStore } from './store-test-helpers' diff --git a/src/renderer/src/store/slices/terminals-hydration-canonical-rows.test.ts b/src/renderer/src/store/slices/terminals-hydration-canonical-rows.test.ts index 6a559c9e114..464159fa219 100644 --- a/src/renderer/src/store/slices/terminals-hydration-canonical-rows.test.ts +++ b/src/renderer/src/store/slices/terminals-hydration-canonical-rows.test.ts @@ -1,7 +1,7 @@ import './terminal-hydration-store-test-bootstrap' import { describe, expect, it } from 'vitest' import type { SleepingAgentSessionRecord } from '../../../../shared/agent-session-resume' -import type { WorkspaceSessionState } from '../../../../shared/types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import { getDefaultWorkspaceSession } from '../../../../shared/constants' import { buildWorkspaceSessionPayload } from '@/lib/workspace-session' import { createTestStore, makeLayout, makeTab, makeWorktree, seedStore } from './store-test-helpers' diff --git a/src/renderer/src/store/slices/terminals-hydration.test.ts b/src/renderer/src/store/slices/terminals-hydration.test.ts index 837fde338fd..261acaa3211 100644 --- a/src/renderer/src/store/slices/terminals-hydration.test.ts +++ b/src/renderer/src/store/slices/terminals-hydration.test.ts @@ -91,7 +91,7 @@ const mockApi = { // @ts-expect-error -- mocked browser preload API globalThis.window = { api: mockApi } -import type { WorkspaceSessionState } from '../../../../shared/types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' import type { SshProviderEpoch } from '../../../../shared/ssh-types' import type { DirectSshPaneRetryAttemptId } from './direct-ssh-terminal-recovery-types' import { diff --git a/src/renderer/src/store/slices/terminals.ts b/src/renderer/src/store/slices/terminals.ts index 9b65267f895..cb7537dfcfe 100644 --- a/src/renderer/src/store/slices/terminals.ts +++ b/src/renderer/src/store/slices/terminals.ts @@ -1,17 +1,14 @@ /* eslint-disable max-lines */ import type { StateCreator } from 'zustand' import type { AppState } from '../types' -import type { - Repo, - SetupSplitDirection, - Tab, - TerminalLayoutSnapshot, - TerminalTab, - TuiAgent, - Worktree, - WorkspaceKey, - WorkspaceSessionState -} from '../../../../shared/types' +import type { WorkspaceKey } from '../../../../shared/folder-workspace-types' +import type { Repo } from '../../../../shared/repo-types' +import type { Tab } from '../../../../shared/tab-types' +import type { TerminalLayoutSnapshot, TerminalTab } from '../../../../shared/terminal-tab-types' +import type { TuiAgent } from '../../../../shared/tui-agent' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session-state-types' +import type { SetupSplitDirection } from '../../../../shared/worktree/launch-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { AgentProviderSessionMetadata, SleepingAgentLaunchConfig diff --git a/src/renderer/src/store/slices/ui.test.ts b/src/renderer/src/store/slices/ui.test.ts index 4cb747821a0..a4707693874 100644 --- a/src/renderer/src/store/slices/ui.test.ts +++ b/src/renderer/src/store/slices/ui.test.ts @@ -6,15 +6,13 @@ import { getDefaultUIState, getWorktreeCardModeProperties } from '../../../../shared/constants' -import type { - GitHubWorkItem, - JiraIssue, - LinearIssue, - PersistedUIState, - Repo, - TerminalTab, - Worktree -} from '../../../../shared/types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' +import type { JiraIssue } from '../../../../shared/jira-types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' +import type { PersistedUIState } from '../../../../shared/persisted-ui-state-types' +import type { Repo } from '../../../../shared/repo-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { GitLabWorkItem } from '../../../../shared/gitlab-types' import { createUISlice } from './ui' import { createWorktreeNavHistorySlice } from './worktree-nav-history' diff --git a/src/renderer/src/store/slices/ui.ts b/src/renderer/src/store/slices/ui.ts index 063e8157c02..f9ea3110cb6 100644 --- a/src/renderer/src/store/slices/ui.ts +++ b/src/renderer/src/store/slices/ui.ts @@ -6,31 +6,30 @@ import { findPrevLiveNonTaskStackHistoryIndex, findPrevLiveWorktreeHistoryIndex } from './worktree-nav-history' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' +import type { JiraIssue } from '../../../../shared/jira-types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' +import type { PersistedTrustedOrcaHooks } from '../../../../shared/orca-yaml-hook-types' +import type { PersistedUIState } from '../../../../shared/persisted-ui-state-types' +import type { CustomPet } from '../../../../shared/pet-types' +import type { TaskProvider } from '../../../../shared/task-providers' +import type { TuiAgent } from '../../../../shared/tui-agent' import type { - ChangelogData, - CustomPet, - GitHubWorkItem, - JiraIssue, - LinearIssue, + AgentActivityDisplayMode, ManualRepoOrderEntry, - PersistedTrustedOrcaHooks, - PersistedUIState, + ProjectOrderBy, StatusBarItem, - TaskProvider, TaskResumeState, TaskViewPresetId, - TuiAgent, - UpdateStatus, - WorkspaceStatusDefinition, - AgentActivityDisplayMode, - ProjectOrderBy, - WorktreeCardProperty, - WorktreeCardMode, + TopLevelView, + VisibleWorkspaceHostIds, WorkspaceHostOrder, WorkspaceHostScope, - VisibleWorkspaceHostIds, - TopLevelView -} from '../../../../shared/types' + WorktreeCardMode, + WorktreeCardProperty +} from '../../../../shared/ui-chrome-types' +import type { ChangelogData, UpdateStatus } from '../../../../shared/update-status-types' +import type { WorkspaceStatusDefinition } from '../../../../shared/worktree/types' import { applyManualRepoOrder, normalizeManualRepoOrder @@ -50,7 +49,7 @@ import { import type { GitLabWorkItem } from '../../../../shared/gitlab-types' import type { LaunchSource } from '../../../../shared/telemetry-events' import type { TaskSourceContext } from '../../../../shared/task-source-context' -import { PET_SIZE_DEFAULT, PET_SIZE_MAX, PET_SIZE_MIN } from '../../../../shared/types' +import { PET_SIZE_DEFAULT, PET_SIZE_MAX, PET_SIZE_MIN } from '../../../../shared/pet-types' import { WORKSPACE_CLEANUP_CLASSIFIER_VERSION, type WorkspaceCleanupDismissal diff --git a/src/renderer/src/store/slices/worktree-by-id-index.test.ts b/src/renderer/src/store/slices/worktree-by-id-index.test.ts index 1c5d28e6295..70930836731 100644 --- a/src/renderer/src/store/slices/worktree-by-id-index.test.ts +++ b/src/renderer/src/store/slices/worktree-by-id-index.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { buildByIdIndex, buildWorktreeByIdIndex } from './worktree-by-id-index' function worktree(id: string, repoId: string): Worktree { diff --git a/src/renderer/src/store/slices/worktree-by-id-index.ts b/src/renderer/src/store/slices/worktree-by-id-index.ts index a7eaf17239e..3607ce0f339 100644 --- a/src/renderer/src/store/slices/worktree-by-id-index.ts +++ b/src/renderer/src/store/slices/worktree-by-id-index.ts @@ -1,4 +1,4 @@ -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' /** * Flattens worktreesByRepo into an id lookup. diff --git a/src/renderer/src/store/slices/worktree-helpers.test.ts b/src/renderer/src/store/slices/worktree-helpers.test.ts index 2750be4445b..d483c04aeaf 100644 --- a/src/renderer/src/store/slices/worktree-helpers.test.ts +++ b/src/renderer/src/store/slices/worktree-helpers.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { applyWorktreeUpdates } from './worktree-helpers' function makeWorktree(overrides: Partial & { id: string; repoId: string }): Worktree { diff --git a/src/renderer/src/store/slices/worktree-helpers.ts b/src/renderer/src/store/slices/worktree-helpers.ts index 45c64ed8b4c..6d201d03251 100644 --- a/src/renderer/src/store/slices/worktree-helpers.ts +++ b/src/renderer/src/store/slices/worktree-helpers.ts @@ -1,26 +1,29 @@ +import type { WorkspaceKey } from '../../../../shared/folder-workspace-types' +import type { TuiAgent } from '../../../../shared/tui-agent' +import type { WorkspaceSource as WorkspaceCreateTelemetrySource } from '../../../../shared/workspace-source' +import type { + WorktreeBaseStatusEvent, + WorktreeRemoteBranchConflictEvent +} from '../../../../shared/worktree/base-ref-drift-types' import type { - CreateWorktreeResult, - CreateWorktreeArgs, CreateSparseCheckoutRequest, + CreateWorktreeArgs, + CreateWorktreeResult, + ForceDeleteWorktreeBranchResult, + RemoveWorktreeResult, + SetupDecision +} from '../../../../shared/worktree/create-types' +import type { WorktreeStartupLaunch } from '../../../../shared/worktree/launch-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { WorktreeMeta } from '../../../../shared/worktree/meta-types' +import type { DetectedWorktree, DetectedWorktreeListResult, - ForceDeleteWorktreeBranchResult, GitPushTarget, - RemoveWorktreeResult, - SetupDecision, - TuiAgent, - WorkspaceCreateTelemetrySource, WorkspaceLinkedItem, WorkspaceStatus, - WorkspaceLineage, - WorktreeStartupLaunch, - Worktree, - WorktreeBaseStatusEvent, - WorktreeLineage, - WorktreeRemoteBranchConflictEvent, - WorktreeMeta, - WorkspaceKey -} from '../../../../shared/types' + Worktree +} from '../../../../shared/worktree/types' import type { TaskSourceContext } from '../../../../shared/task-source-context' import type { WorktreeForceDeleteReason } from '../../../../shared/worktree/removal' import type { TerminalGitHubPRLink } from '../../../../shared/terminal-github-pr-link-detector' diff --git a/src/renderer/src/store/slices/worktree-listing-branch-switch.test.ts b/src/renderer/src/store/slices/worktree-listing-branch-switch.test.ts index 0edf89bfb7b..281fa019e9e 100644 --- a/src/renderer/src/store/slices/worktree-listing-branch-switch.test.ts +++ b/src/renderer/src/store/slices/worktree-listing-branch-switch.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' import { routeListingBranchSwitchesThroughGitIdentity } from './worktree-listing-branch-switch' function makeWorktree(overrides: Partial & { id: string }): Worktree { diff --git a/src/renderer/src/store/slices/worktree-listing-branch-switch.ts b/src/renderer/src/store/slices/worktree-listing-branch-switch.ts index 3782463668c..a72c50b7ce0 100644 --- a/src/renderer/src/store/slices/worktree-listing-branch-switch.ts +++ b/src/renderer/src/store/slices/worktree-listing-branch-switch.ts @@ -1,4 +1,4 @@ -import type { Worktree } from '../../../../shared/types' +import type { Worktree } from '../../../../shared/worktree/types' function indexUnambiguousWorktrees( worktrees: readonly Worktree[], diff --git a/src/renderer/src/store/slices/worktree-nav-history-view-entries.test.ts b/src/renderer/src/store/slices/worktree-nav-history-view-entries.test.ts index 70d4475ba3a..2c5f96fc97c 100644 --- a/src/renderer/src/store/slices/worktree-nav-history-view-entries.test.ts +++ b/src/renderer/src/store/slices/worktree-nav-history-view-entries.test.ts @@ -1,7 +1,9 @@ import { createStore, type StoreApi } from 'zustand/vanilla' import { afterEach, describe, expect, it } from 'vitest' import type { AppState } from '../types' -import type { GitHubWorkItem, JiraIssue, Worktree } from '../../../../shared/types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' +import type { JiraIssue } from '../../../../shared/jira-types' +import type { Worktree } from '../../../../shared/worktree/types' import type { GitLabWorkItem } from '../../../../shared/gitlab-types' import type { TaskSourceContext } from '../../../../shared/task-source-context' import { diff --git a/src/renderer/src/store/slices/worktree-nav-history.test.ts b/src/renderer/src/store/slices/worktree-nav-history.test.ts index bb686e558fc..18863300026 100644 --- a/src/renderer/src/store/slices/worktree-nav-history.test.ts +++ b/src/renderer/src/store/slices/worktree-nav-history.test.ts @@ -1,7 +1,8 @@ import { createStore, type StoreApi } from 'zustand/vanilla' import { afterEach, describe, expect, it } from 'vitest' import type { AppState } from '../types' -import type { FolderWorkspace, Worktree } from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceKey } from '../../../../shared/workspace-scope' import { canGoBackWorktreeHistory, diff --git a/src/renderer/src/store/slices/worktree-nav-history.ts b/src/renderer/src/store/slices/worktree-nav-history.ts index 1582e649017..f59485d9801 100644 --- a/src/renderer/src/store/slices/worktree-nav-history.ts +++ b/src/renderer/src/store/slices/worktree-nav-history.ts @@ -1,7 +1,9 @@ import type { StateCreator } from 'zustand' import type { AppState } from '../types' import { findWorktreeById } from './worktree-helpers' -import type { GitHubWorkItem, JiraIssue, LinearIssue } from '../../../../shared/types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' +import type { JiraIssue } from '../../../../shared/jira-types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' import type { GitLabWorkItem } from '../../../../shared/gitlab-types' import { getTaskSourceCacheScope, diff --git a/src/renderer/src/store/slices/worktree-removal-maps-leak.test.ts b/src/renderer/src/store/slices/worktree-removal-maps-leak.test.ts index d379a8ec895..98049554eb8 100644 --- a/src/renderer/src/store/slices/worktree-removal-maps-leak.test.ts +++ b/src/renderer/src/store/slices/worktree-removal-maps-leak.test.ts @@ -21,7 +21,7 @@ */ import { describe, it, expect, vi, beforeEach } from 'vitest' import type * as AgentStatusModule from '@/lib/agent-status' -import type { BrowserPage, BrowserWorkspace } from '../../../../shared/types' +import type { BrowserPage, BrowserWorkspace } from '../../../../shared/browser-workspace-types' import { getAgentHibernationPaneOutputEpoch, recordAgentHibernationPaneOutput, diff --git a/src/renderer/src/store/slices/worktrees.test.ts b/src/renderer/src/store/slices/worktrees.test.ts index 2cb3597da53..b3bc0224513 100644 --- a/src/renderer/src/store/slices/worktrees.test.ts +++ b/src/renderer/src/store/slices/worktrees.test.ts @@ -2,15 +2,11 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { create } from 'zustand' import type { AppState } from '../types' -import type { - DetectedWorktreeListResult, - FolderWorkspace, - LocalBaseRefRefreshResult, - TerminalTab, - Worktree, - WorktreeLineage, - WorkspaceLineage -} from '../../../../shared/types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import type { LocalBaseRefRefreshResult } from '../../../../shared/worktree/base-ref-drift-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { DetectedWorktreeListResult, Worktree } from '../../../../shared/worktree/types' import { toast } from 'sonner' import { createCompatibleRuntimeStatusResponse, diff --git a/src/renderer/src/store/slices/worktrees.ts b/src/renderer/src/store/slices/worktrees.ts index 497e8d3be6b..1a704a53875 100644 --- a/src/renderer/src/store/slices/worktrees.ts +++ b/src/renderer/src/store/slices/worktrees.ts @@ -1,22 +1,23 @@ /* eslint-disable max-lines */ import type { StateCreator, StoreApi } from 'zustand' import type { AppState } from '../types' +import type { FolderWorkspace } from '../../../../shared/folder-workspace-types' +import type { ProjectHostSetup } from '../../../../shared/project-types' +import type { Repo } from '../../../../shared/repo-types' +import type { WorkspaceVisibleTabType } from '../../../../shared/tab-types' +import type { LocalBaseRefRefreshResult } from '../../../../shared/worktree/base-ref-drift-types' +import type { + ForceDeleteWorktreeBranchResult, + RemoveWorktreeResult +} from '../../../../shared/worktree/create-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../../../shared/worktree/lineage-types' +import type { WorktreeMeta } from '../../../../shared/worktree/meta-types' import type { DetectedWorktreeListResult, - LocalBaseRefRefreshResult, - ForceDeleteWorktreeBranchResult, - FolderWorkspace, GitHubPrStartPoint, - Worktree, - WorkspaceVisibleTabType, GitPushTarget, - RemoveWorktreeResult, - WorktreeLineage, - WorkspaceLineage, - ProjectHostSetup, - Repo, - WorktreeMeta -} from '../../../../shared/types' + Worktree +} from '../../../../shared/worktree/types' import type { RuntimeWorktreeListResult } from '../../../../shared/runtime-types' import { findWorktreeById, diff --git a/src/renderer/src/store/worktree-diff-comments-selector.test.ts b/src/renderer/src/store/worktree-diff-comments-selector.test.ts index db45edec6b3..ce375285d48 100644 --- a/src/renderer/src/store/worktree-diff-comments-selector.test.ts +++ b/src/renderer/src/store/worktree-diff-comments-selector.test.ts @@ -1,5 +1,7 @@ import { describe, expect, it } from 'vitest' -import type { DiffComment, FolderWorkspace, Worktree } from '../../../shared/types' +import type { DiffComment } from '../../../shared/diff-comment-types' +import type { FolderWorkspace } from '../../../shared/folder-workspace-types' +import type { Worktree } from '../../../shared/worktree/types' import type { AppState } from './types' import { selectWorktreeDiffComments, diff --git a/src/renderer/src/store/worktree-diff-comments-selector.ts b/src/renderer/src/store/worktree-diff-comments-selector.ts index 31e6edfa9ee..3fe9a37a84a 100644 --- a/src/renderer/src/store/worktree-diff-comments-selector.ts +++ b/src/renderer/src/store/worktree-diff-comments-selector.ts @@ -1,4 +1,4 @@ -import type { DiffComment } from '../../../shared/types' +import type { DiffComment } from '../../../shared/diff-comment-types' import type { AppState } from './types' import { getIndexedWorktreeById } from './worktree-repo-index' import { findFolderWorkspaceOwner } from '@/lib/folder-workspace-runtime-owner' diff --git a/src/renderer/src/store/worktree-repo-index.ts b/src/renderer/src/store/worktree-repo-index.ts index 9c459f90f86..670e6b7ceec 100644 --- a/src/renderer/src/store/worktree-repo-index.ts +++ b/src/renderer/src/store/worktree-repo-index.ts @@ -1,4 +1,5 @@ -import type { Repo, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import type { AppState } from './types' type WorktreeSnapshot = { diff --git a/src/renderer/src/web/web-file-mutation-methods.test.ts b/src/renderer/src/web/web-file-mutation-methods.test.ts index 7a996e24805..266beec9fb5 100644 --- a/src/renderer/src/web/web-file-mutation-methods.test.ts +++ b/src/renderer/src/web/web-file-mutation-methods.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import type { SshConnectionState } from '../../../shared/ssh-types' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { createWebFileMutationMethods } from './web-file-mutation-methods' function resolvedFile( diff --git a/src/renderer/src/web/web-file-mutation-methods.ts b/src/renderer/src/web/web-file-mutation-methods.ts index 5467f6a8ccf..262b7e30fc9 100644 --- a/src/renderer/src/web/web-file-mutation-methods.ts +++ b/src/renderer/src/web/web-file-mutation-methods.ts @@ -1,7 +1,7 @@ import type { PreloadApi } from '../../../preload/api-types' import { parseExecutionHostId } from '../../../shared/execution-host' import type { SshConnectionState, SshMutationExpectation } from '../../../shared/ssh-types' -import type { Worktree } from '../../../shared/types' +import type { Worktree } from '../../../shared/worktree/types' import { toRuntimeWorktreeSelector } from '../runtime/runtime-worktree-selector' const SSH_OWNER_CHANGED_MESSAGE = diff --git a/src/renderer/src/web/web-preload-api.ts b/src/renderer/src/web/web-preload-api.ts index b142bb0adce..5d209deff38 100644 --- a/src/renderer/src/web/web-preload-api.ts +++ b/src/renderer/src/web/web-preload-api.ts @@ -24,24 +24,23 @@ import type { ComputerUsePermissionSetupResult, ComputerUsePermissionStatusResult } from '../../../shared/computer-use-permissions-types' +import type { SearchResult } from '../../../shared/code-search-types' +import type { DirEntry } from '../../../shared/filesystem-entry-types' +import type { GlobalSettings } from '../../../shared/global-settings-types' +import type { OnboardingState } from '../../../shared/onboarding-state-types' +import type { PersistedUIState } from '../../../shared/persisted-ui-state-types' +import type { MemorySnapshot, StatsSummary } from '../../../shared/process-stats-types' +import type { Repo } from '../../../shared/repo-types' import type { - DetectedWorktreeListResult, - DirEntry, - ForceDeleteWorktreeBranchResult, - GlobalSettings, - MemorySnapshot, - OnboardingState, - PersistedUIState, - Repo, - RemoveWorktreeResult, - SearchResult, - StatsSummary, - Worktree, - WorktreeLineage, - WorkspaceLineage, WorkspaceSessionPatch, WorkspaceSessionState -} from '../../../shared/types' +} from '../../../shared/workspace-session-state-types' +import type { + ForceDeleteWorktreeBranchResult, + RemoveWorktreeResult +} from '../../../shared/worktree/create-types' +import type { WorkspaceLineage, WorktreeLineage } from '../../../shared/worktree/lineage-types' +import type { DetectedWorktreeListResult, Worktree } from '../../../shared/worktree/types' import type { SkillDiscoveryResult } from '../../../shared/skills' import type { SkillFreshnessInventory } from '../../../shared/skill-freshness' import type { SshConnectionState, SshTarget } from '../../../shared/ssh-types' diff --git a/src/renderer/src/web/web-runtime-direct-proxy-live.integration.test.ts b/src/renderer/src/web/web-runtime-direct-proxy-live.integration.test.ts index 25c863c959d..b289c2a080b 100644 --- a/src/renderer/src/web/web-runtime-direct-proxy-live.integration.test.ts +++ b/src/renderer/src/web/web-runtime-direct-proxy-live.integration.test.ts @@ -1,5 +1,6 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest' -import type { Repo, Worktree } from '../../../shared/types' +import type { Repo } from '../../../shared/repo-types' +import type { Worktree } from '../../../shared/worktree/types' import type { RuntimeRpcResponse } from '../../../shared/runtime-rpc-envelope' import type { WorkspacePortScanResult } from '../../../shared/workspace-ports' import { parseWebPairingInput, type WebPairingOffer } from './web-pairing' diff --git a/src/renderer/src/web/web-workspace-session.test.ts b/src/renderer/src/web/web-workspace-session.test.ts index 95f1686cdbb..cfa19c076a7 100644 --- a/src/renderer/src/web/web-workspace-session.test.ts +++ b/src/renderer/src/web/web-workspace-session.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' import { sanitizeWebRuntimeWorkspaceSession } from './web-workspace-session' describe('sanitizeWebRuntimeWorkspaceSession', () => { diff --git a/src/renderer/src/web/web-workspace-session.ts b/src/renderer/src/web/web-workspace-session.ts index fbafdd277b6..30cea317a62 100644 --- a/src/renderer/src/web/web-workspace-session.ts +++ b/src/renderer/src/web/web-workspace-session.ts @@ -1,5 +1,5 @@ import { getDefaultWorkspaceSession } from '../../../shared/constants' -import type { WorkspaceSessionState } from '../../../shared/types' +import type { WorkspaceSessionState } from '../../../shared/workspace-session-state-types' export function sanitizeWebRuntimeWorkspaceSession( session: WorkspaceSessionState diff --git a/src/shared/agent-headless-command.ts b/src/shared/agent-headless-command.ts index 1ab62f2f5b5..9ff40e6af1d 100644 --- a/src/shared/agent-headless-command.ts +++ b/src/shared/agent-headless-command.ts @@ -1,7 +1,7 @@ import { isAnteHeadlessOneShotCommand } from './ante-headless-command' import { isPrimeAgentHeadlessOneShotCommand } from './prime-agent-headless-command' import { isPrintModeHeadlessOneShotCommand } from './print-mode-headless-command' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' // Why: a table (not an if-chain) so adding an agent is one entry; Claude and Trae share // the same `--print` one-shot contract, Ante's `--prompt` form and Prime Agent's diff --git a/src/shared/agent-kind.test.ts b/src/shared/agent-kind.test.ts index d479fd78e50..edea4d20fc4 100644 --- a/src/shared/agent-kind.test.ts +++ b/src/shared/agent-kind.test.ts @@ -3,7 +3,7 @@ import { describe, expect, it } from 'vitest' import { agentKindToTuiAgent, tuiAgentToAgentKind } from './agent-kind' import { AGENT_KIND_VALUES, agentKindSchema } from './telemetry-events' import { TUI_AGENT_CONFIG } from './tui-agent-config' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' describe('tuiAgentToAgentKind', () => { it('maps every shipped TuiAgent to a concrete telemetry kind', () => { diff --git a/src/shared/agent-kind.ts b/src/shared/agent-kind.ts index bea996873ca..324a73f2cd8 100644 --- a/src/shared/agent-kind.ts +++ b/src/shared/agent-kind.ts @@ -9,7 +9,7 @@ // not a sweep across renderer + main. import type { AgentKind } from './telemetry-events' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' type ConcreteAgentKind = Exclude diff --git a/src/shared/agent-model-probe-spec.ts b/src/shared/agent-model-probe-spec.ts index e546f151b1f..d60dbda6f9f 100644 --- a/src/shared/agent-model-probe-spec.ts +++ b/src/shared/agent-model-probe-spec.ts @@ -1,6 +1,6 @@ import { getCommitMessageAgentSpec, type CommitMessageAgentSpec } from './commit-message-agent-spec' import { GROK_MODEL_LIST_ARGS, parseGrokModelList } from './grok-model-list-probe' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' /** Why: model discovery reads only these fields; excluding the prompt-delivery * half is what keeps a probe-only agent out of the commit-message registry. */ diff --git a/src/shared/agent-node-entrypoint-identities.ts b/src/shared/agent-node-entrypoint-identities.ts index 9c7f2a9f98c..e71118312d0 100644 --- a/src/shared/agent-node-entrypoint-identities.ts +++ b/src/shared/agent-node-entrypoint-identities.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' // Node CLIs whose shims launch a generic script (cli.js, versioned index.js), so // only the exact install path is an authoritative identity signal. diff --git a/src/shared/agent-process-recognition.ts b/src/shared/agent-process-recognition.ts index 957bfa5cb7b..e0fa3568c68 100644 --- a/src/shared/agent-process-recognition.ts +++ b/src/shared/agent-process-recognition.ts @@ -1,7 +1,7 @@ import { getTuiAgentDetectCommands, TUI_AGENT_CONFIG } from './tui-agent-config' import { EXACT_NODE_ENTRYPOINT_IDENTITIES } from './agent-node-entrypoint-identities' import type { AgentType } from './agent-status-types' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' import { filterHeadlessOneShotAgentCommand } from './agent-headless-command' import { getFirstCommandToken } from './command-token-scanner' diff --git a/src/shared/agent-row-conversation-name.ts b/src/shared/agent-row-conversation-name.ts index 95e5dfcfb28..02ea55b240b 100644 --- a/src/shared/agent-row-conversation-name.ts +++ b/src/shared/agent-row-conversation-name.ts @@ -11,7 +11,7 @@ import { stripLeadingAgentTitleDecorationOrEmpty } from './agent-title-decoratio import { formatAgentTypeLabel } from './agent-type-label' import { isMeaningfulOpenCodeTerminalTitle } from './opencode-terminal-title' import { SYNTHETIC_AGENT_TITLE_PROFILES } from './synthetic-agent-title' -import type { TerminalTab } from './types' +import type { TerminalTab } from './terminal-tab-types' export type ConversationNameTab = Pick< TerminalTab, diff --git a/src/shared/agent-session-host-authority.ts b/src/shared/agent-session-host-authority.ts index 96e079afb63..ec9f5776fc3 100644 --- a/src/shared/agent-session-host-authority.ts +++ b/src/shared/agent-session-host-authority.ts @@ -7,7 +7,7 @@ import { import type { RuntimeTerminalCreate, RuntimeTerminalPresentation } from './runtime-types' import { isTerminalLeafId } from './stable-pane-id' import { isValidTerminalTabId } from './terminal-tab-id' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' export { AGENT_SESSION_HOST_AUTHORITY_RUNTIME_CAPABILITY as AGENT_SESSION_HOST_AUTHORITY_CAPABILITY } from './protocol-version' diff --git a/src/shared/agent-session-resume.ts b/src/shared/agent-session-resume.ts index b6e3ee9900d..66f7168e8ba 100644 --- a/src/shared/agent-session-resume.ts +++ b/src/shared/agent-session-resume.ts @@ -1,6 +1,6 @@ import type { AgentHookSource } from './agent-hook-relay' import type { AgentStatusState } from './agent-status-types' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' export const RESUMABLE_TUI_AGENTS = [ 'claude', diff --git a/src/shared/ai-vault-types.ts b/src/shared/ai-vault-types.ts index 71387faf924..a6dff1b59a9 100644 --- a/src/shared/ai-vault-types.ts +++ b/src/shared/ai-vault-types.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' import type { ExecutionHostId, ExecutionHostScope } from './execution-host' export const AI_VAULT_AGENTS = [ diff --git a/src/shared/artifact-sharing-gate.ts b/src/shared/artifact-sharing-gate.ts index a8d8c743a7e..0d10f7af3f0 100644 --- a/src/shared/artifact-sharing-gate.ts +++ b/src/shared/artifact-sharing-gate.ts @@ -1,6 +1,6 @@ // Why: publishing an artifact mints a URL anyone can open, so agents get the capability only // after the user grants it. The gate lives here so main, the CLI, and Settings share one contract. -import type { GlobalSettings } from './types' +import type { GlobalSettings } from './global-settings-types' export const ARTIFACT_SHARING_DISABLED_CODE = 'artifact_sharing_disabled' diff --git a/src/shared/auto-rename-branch-from-work-settings.ts b/src/shared/auto-rename-branch-from-work-settings.ts index ab2422d9e39..544e4c3833e 100644 --- a/src/shared/auto-rename-branch-from-work-settings.ts +++ b/src/shared/auto-rename-branch-from-work-settings.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from './types' +import type { GlobalSettings } from './global-settings-types' type AutoRenameBranchFromWorkSettings = Pick< GlobalSettings, diff --git a/src/shared/automation-workspace-provenance.ts b/src/shared/automation-workspace-provenance.ts index 7fd42119e22..6f1c0f9894e 100644 --- a/src/shared/automation-workspace-provenance.ts +++ b/src/shared/automation-workspace-provenance.ts @@ -1,6 +1,7 @@ import type { Automation, AutomationRun } from './automations-types' import { getRepoExecutionHostId } from './execution-host' -import type { AutomationWorkspaceProvenance, Repo } from './types' +import type { Repo } from './repo-types' +import type { AutomationWorkspaceProvenance } from './worktree/types' type AutomationProvenanceRun = Pick diff --git a/src/shared/automations-types.ts b/src/shared/automations-types.ts index d2572020ba8..82ebcb2dbae 100644 --- a/src/shared/automations-types.ts +++ b/src/shared/automations-types.ts @@ -1,4 +1,5 @@ -import type { SetupDecision, TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' +import type { SetupDecision } from './worktree/create-types' import type { TaskSourceContext, WorkspaceRunContext } from './task-source-context' export type AutomationWorkspaceMode = 'existing' | 'new_per_run' diff --git a/src/shared/base-ref-search-result.ts b/src/shared/base-ref-search-result.ts index 895ecf28f9a..469c358a05e 100644 --- a/src/shared/base-ref-search-result.ts +++ b/src/shared/base-ref-search-result.ts @@ -1,4 +1,4 @@ -import type { BaseRefSearchResult } from './types' +import type { BaseRefSearchResult } from './repo-types' const LEGACY_REMOTE_REF_PREFIXES = ['origin/', 'upstream/'] diff --git a/src/shared/branch-prefix.ts b/src/shared/branch-prefix.ts index 18a5fbe0ba7..1c2abf92276 100644 --- a/src/shared/branch-prefix.ts +++ b/src/shared/branch-prefix.ts @@ -1,4 +1,4 @@ -import type { BranchPrefixStrategy } from './types' +import type { BranchPrefixStrategy } from './ui-chrome-types' /** The branch-prefix settings slice the prefix helpers read. */ export type BranchPrefixSettings = { diff --git a/src/shared/browser-viewport-presets.ts b/src/shared/browser-viewport-presets.ts index 34cdebc5bb5..411a924213e 100644 --- a/src/shared/browser-viewport-presets.ts +++ b/src/shared/browser-viewport-presets.ts @@ -1,4 +1,4 @@ -import type { BrowserViewportOverride, BrowserViewportPresetId } from './types' +import type { BrowserViewportOverride, BrowserViewportPresetId } from './browser-workspace-types' export type BrowserViewportPreset = { id: BrowserViewportPresetId diff --git a/src/shared/cli-workspace-provenance.ts b/src/shared/cli-workspace-provenance.ts index 3334a7b6516..15de35c4172 100644 --- a/src/shared/cli-workspace-provenance.ts +++ b/src/shared/cli-workspace-provenance.ts @@ -1,4 +1,5 @@ -import type { CliWorkspaceProvenance, TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' +import type { CliWorkspaceProvenance } from './worktree/types' /** Client-supplied context for a `orca worktree create`. Descriptive only — * the host stamps `createdAt` so a skewed client clock can't affect sort order. */ diff --git a/src/shared/codex-pet-sprite-defaults.ts b/src/shared/codex-pet-sprite-defaults.ts index b33625d6202..ba5bd32786a 100644 --- a/src/shared/codex-pet-sprite-defaults.ts +++ b/src/shared/codex-pet-sprite-defaults.ts @@ -1,4 +1,4 @@ -import type { CustomPet, SpriteAnimation } from './types' +import type { CustomPet, SpriteAnimation } from './pet-types' /** Codex pet sprite layout and pacing, mirroring the tables in Codex CLI's * `tui/src/pets`. Shared because main bakes these into imported bundles and diff --git a/src/shared/codex-reset-credit-scope.test.ts b/src/shared/codex-reset-credit-scope.test.ts index 0852612a8c6..134d9c32dae 100644 --- a/src/shared/codex-reset-credit-scope.test.ts +++ b/src/shared/codex-reset-credit-scope.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import type { ProviderRateLimits } from './rate-limit-types' -import type { CodexManagedAccountSummary } from './types' +import type { CodexManagedAccountSummary } from './managed-account-types' import { buildCodexResetCreditExpectedScope } from './codex-reset-credit-scope' const account: CodexManagedAccountSummary = { diff --git a/src/shared/codex-reset-credit-scope.ts b/src/shared/codex-reset-credit-scope.ts index aec85c73117..390c40dc6cd 100644 --- a/src/shared/codex-reset-credit-scope.ts +++ b/src/shared/codex-reset-credit-scope.ts @@ -3,7 +3,7 @@ import type { RateLimitRuntimeTarget, RateLimitWindow } from './rate-limit-types' -import type { CodexManagedAccountSummary } from './types' +import type { CodexManagedAccountSummary } from './managed-account-types' export type CodexResetCreditExpectedScope = { target: RateLimitRuntimeTarget diff --git a/src/shared/commit-message-agent-spec.ts b/src/shared/commit-message-agent-spec.ts index 7c8b8bbfa9e..2281bd00a2b 100644 --- a/src/shared/commit-message-agent-spec.ts +++ b/src/shared/commit-message-agent-spec.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' import { isTuiAgentEnabled } from './tui-agent-selection' import { assertJsonTextStructureWithinLimits } from './json-text-structure-limit' import { diff --git a/src/shared/commit-message-generation.ts b/src/shared/commit-message-generation.ts index 3c5c92ad835..8cc6820e938 100644 --- a/src/shared/commit-message-generation.ts +++ b/src/shared/commit-message-generation.ts @@ -1,5 +1,5 @@ import { cleanGeneratedCommitMessage, truncateDiffForPrompt } from './commit-message-prompt' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' export type CommitMessageDraftAgent = TuiAgent | 'custom' diff --git a/src/shared/commit-message-plan.ts b/src/shared/commit-message-plan.ts index 1141ecec0e7..dc77b1d4e17 100644 --- a/src/shared/commit-message-plan.ts +++ b/src/shared/commit-message-plan.ts @@ -4,7 +4,7 @@ import { isCustomAgentId } from './commit-message-agent-spec' import { planCustomCommand, tokenizeCustomCommandTemplate } from './commit-message-prompt' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' // Why: planning is a pure transformation from "user request + prompt text" // into "spawn-ready binary + argv". Keeping it in shared lets both the local diff --git a/src/shared/composer-branch-selection.ts b/src/shared/composer-branch-selection.ts index 9342f18bfd7..66ed39f6036 100644 --- a/src/shared/composer-branch-selection.ts +++ b/src/shared/composer-branch-selection.ts @@ -1,4 +1,4 @@ -import type { GitPushTarget } from './types' +import type { GitPushTarget } from './worktree/types' export type ComposerBranchSelection = { baseBranch: string diff --git a/src/shared/constants.ts b/src/shared/constants.ts index b0cf4abffca..99ee48a4e35 100644 --- a/src/shared/constants.ts +++ b/src/shared/constants.ts @@ -1,15 +1,12 @@ /* eslint-disable max-lines -- Why: default persisted settings live in one schema-shaped object so migrations and tests compare against one source of truth. */ -import type { - GlobalSettings, - NotificationSettings, - OnboardingChecklistState, - OnboardingState, - PersistedState, - PersistedUIState, - RepoHookSettings, - WorkspaceSessionState, - AgentActivityDisplayMode -} from './types' +import type { GlobalSettings } from './global-settings-types' +import type { NotificationSettings } from './notification-settings-types' +import type { OnboardingChecklistState, OnboardingState } from './onboarding-state-types' +import type { RepoHookSettings } from './orca-yaml-hook-types' +import type { PersistedState } from './persisted-state-types' +import type { PersistedUIState } from './persisted-ui-state-types' +import type { AgentActivityDisplayMode } from './ui-chrome-types' +import type { WorkspaceSessionState } from './workspace-session-state-types' import { EMPTY_CODEX_RESET_CREDIT_ATTEMPT_LEDGER } from './codex-reset-credit-attempt-ledger' import { DEFAULT_STATUS_BAR_ITEMS } from './status-bar-defaults' import { DEFAULT_TERMINAL_FONT_WEIGHT, DEFAULT_TERMINAL_FONT_WEIGHT_BOLD } from './terminal-fonts' diff --git a/src/shared/dashboard-snapshot.ts b/src/shared/dashboard-snapshot.ts index cd59983ae25..a3a888d820f 100644 --- a/src/shared/dashboard-snapshot.ts +++ b/src/shared/dashboard-snapshot.ts @@ -1,7 +1,7 @@ import type { AgentType } from './agent-status-types' import type { ExecutionHostId } from './execution-host' import type { RepoIcon } from './repo-icon' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' /** * Serializable contract for the pop-out agent dashboard. The main renderer owns diff --git a/src/shared/detected-worktree-provider-contract.ts b/src/shared/detected-worktree-provider-contract.ts index 662c2fed3c9..9f146e35778 100644 --- a/src/shared/detected-worktree-provider-contract.ts +++ b/src/shared/detected-worktree-provider-contract.ts @@ -1,6 +1,6 @@ import type { ExecutionHostId, LOCAL_EXECUTION_HOST_ID } from './execution-host' import type { DirectSshAuthority } from './ssh-types' -import type { DetectedWorktreeListResult } from './types' +import type { DetectedWorktreeListResult } from './worktree/types' export const PROVIDER_REQUEST_ID_MAX_UTF8_BYTES = 128 export type ProviderRequestId = string & { readonly __providerRequestId: unique symbol } diff --git a/src/shared/diff-comments-format.ts b/src/shared/diff-comments-format.ts index 4f35f818adc..a66b2a8ec99 100644 --- a/src/shared/diff-comments-format.ts +++ b/src/shared/diff-comments-format.ts @@ -1,4 +1,4 @@ -import type { DiffComment } from './types' +import type { DiffComment } from './diff-comment-types' function isMarkdownComment(comment: Pick): boolean { return comment.source === 'markdown' diff --git a/src/shared/ephemeral-vm-recipe-checkout-mode.test.ts b/src/shared/ephemeral-vm-recipe-checkout-mode.test.ts index ea77181ada0..d49d395afde 100644 --- a/src/shared/ephemeral-vm-recipe-checkout-mode.test.ts +++ b/src/shared/ephemeral-vm-recipe-checkout-mode.test.ts @@ -3,7 +3,7 @@ import { getEphemeralVmRecipeCheckoutModeError, getEphemeralVmRecipeResultSchemaVersion } from './ephemeral-vm-recipe-checkout-mode' -import type { OrcaVmRecipe } from './types' +import type { OrcaVmRecipe } from './orca-yaml-hook-types' const defaultRecipe: OrcaVmRecipe = { id: 'cloud-sandbox', diff --git a/src/shared/ephemeral-vm-recipe-checkout-mode.ts b/src/shared/ephemeral-vm-recipe-checkout-mode.ts index 1b50da88312..67e27f3e89e 100644 --- a/src/shared/ephemeral-vm-recipe-checkout-mode.ts +++ b/src/shared/ephemeral-vm-recipe-checkout-mode.ts @@ -1,6 +1,6 @@ import { getEphemeralVmRecipeResultCheckoutMode } from './ephemeral-vm-recipes' import type { EphemeralVmRecipeResult } from './ephemeral-vm-recipes' -import type { OrcaVmRecipe } from './types' +import type { OrcaVmRecipe } from './orca-yaml-hook-types' export function getEphemeralVmRecipeResultSchemaVersion(recipe: OrcaVmRecipe): 1 | 2 { return recipe.checkoutMode === 'provisioned-root' ? 2 : 1 diff --git a/src/shared/ephemeral-vm-recipe-doctor.test.ts b/src/shared/ephemeral-vm-recipe-doctor.test.ts index 2c6a22a41e8..2c738bd73f3 100644 --- a/src/shared/ephemeral-vm-recipe-doctor.test.ts +++ b/src/shared/ephemeral-vm-recipe-doctor.test.ts @@ -3,7 +3,7 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, describe, expect, it } from 'vitest' import { doctorEphemeralVmRecipe } from './ephemeral-vm-recipe-doctor' -import type { OrcaVmRecipe } from './types' +import type { OrcaVmRecipe } from './orca-yaml-hook-types' const roots: string[] = [] diff --git a/src/shared/ephemeral-vm-recipe-doctor.ts b/src/shared/ephemeral-vm-recipe-doctor.ts index 9f0ffc8a91b..35e279c1855 100644 --- a/src/shared/ephemeral-vm-recipe-doctor.ts +++ b/src/shared/ephemeral-vm-recipe-doctor.ts @@ -4,7 +4,7 @@ import type { EphemeralVmRecipeDoctorCheck, EphemeralVmRecipeDoctorResult } from './ephemeral-vm-recipes' -import type { OrcaVmRecipe } from './types' +import type { OrcaVmRecipe } from './orca-yaml-hook-types' export function doctorEphemeralVmRecipe(args: { repoPath: string diff --git a/src/shared/ephemeral-vm-recipe-lifecycle-payload.ts b/src/shared/ephemeral-vm-recipe-lifecycle-payload.ts index ab1a28904f1..4cee67602c2 100644 --- a/src/shared/ephemeral-vm-recipe-lifecycle-payload.ts +++ b/src/shared/ephemeral-vm-recipe-lifecycle-payload.ts @@ -1,7 +1,7 @@ import type { EphemeralVmRecipeResult } from './ephemeral-vm-recipes' import type { EphemeralVmRecipeContext } from './ephemeral-vm-recipe-runner' import { quoteShellToken } from './ephemeral-vm-recipe-process' -import type { OrcaVmRecipe } from './types' +import type { OrcaVmRecipe } from './orca-yaml-hook-types' export type EphemeralVmRecipeLifecycleMode = 'suspend' | 'resume' | 'destroy' diff --git a/src/shared/ephemeral-vm-recipe-repo-url.ts b/src/shared/ephemeral-vm-recipe-repo-url.ts index badd9fa3fbd..d4089591a4d 100644 --- a/src/shared/ephemeral-vm-recipe-repo-url.ts +++ b/src/shared/ephemeral-vm-recipe-repo-url.ts @@ -1,5 +1,5 @@ import { stripCredentialsFromMessage } from './git-remote-error' -import type { OrcaVmRecipe } from './types' +import type { OrcaVmRecipe } from './orca-yaml-hook-types' export function getProvisionedRootRecipeRepoUrl( checkoutMode: OrcaVmRecipe['checkoutMode'], diff --git a/src/shared/ephemeral-vm-recipe-runner.ts b/src/shared/ephemeral-vm-recipe-runner.ts index 496e9573fdb..60d6545abf7 100644 --- a/src/shared/ephemeral-vm-recipe-runner.ts +++ b/src/shared/ephemeral-vm-recipe-runner.ts @@ -1,7 +1,7 @@ import type { spawn } from 'node:child_process' import { randomUUID } from 'node:crypto' import { statSync } from 'node:fs' -import type { OrcaVmRecipe } from './types' +import type { OrcaVmRecipe } from './orca-yaml-hook-types' import { parseEphemeralVmRecipeResult, type EphemeralVmRecipeResult } from './ephemeral-vm-recipes' import { getEphemeralVmRecipeCheckoutModeError, diff --git a/src/shared/execution-host-registry.ts b/src/shared/execution-host-registry.ts index bceddd86a4b..890466ec703 100644 --- a/src/shared/execution-host-registry.ts +++ b/src/shared/execution-host-registry.ts @@ -14,7 +14,8 @@ import { MIN_COMPATIBLE_RUNTIME_SERVER_VERSION, RUNTIME_PROTOCOL_VERSION } from import type { RuntimeStatus } from './runtime-types' import type { SshConnectionState, SshConnectionStatus } from './ssh-types' import type { RuntimeEnvironmentSource } from './runtime-environments' -import type { GlobalSettings, Repo } from './types' +import type { GlobalSettings } from './global-settings-types' +import type { Repo } from './repo-types' export type ExecutionHostHealth = | 'local' diff --git a/src/shared/execution-host.ts b/src/shared/execution-host.ts index 814182c2bae..18d584674bf 100644 --- a/src/shared/execution-host.ts +++ b/src/shared/execution-host.ts @@ -1,4 +1,6 @@ -import type { GlobalSettings, Repo, Worktree } from './types' +import type { GlobalSettings } from './global-settings-types' +import type { Repo } from './repo-types' +import type { Worktree } from './worktree/types' export const LOCAL_EXECUTION_HOST_ID = 'local' export const ALL_EXECUTION_HOSTS_SCOPE = 'all' diff --git a/src/shared/external-worktree-inbox.test.ts b/src/shared/external-worktree-inbox.test.ts index 2c29fe4a117..251b07026a6 100644 --- a/src/shared/external-worktree-inbox.test.ts +++ b/src/shared/external-worktree-inbox.test.ts @@ -1,12 +1,8 @@ import { describe, expect, it } from 'vitest' -import type { - DetectedWorktree, - DetectedWorktreeListResult, - GlobalSettings, - Repo, - Worktree -} from './types' +import type { GlobalSettings } from './global-settings-types' +import type { Repo } from './repo-types' +import type { DetectedWorktree, DetectedWorktreeListResult, Worktree } from './worktree/types' import { getHiddenExternalWorktrees, getHiddenImportableExternalWorktrees, diff --git a/src/shared/external-worktree-inbox.ts b/src/shared/external-worktree-inbox.ts index c42a1249bd7..309da287892 100644 --- a/src/shared/external-worktree-inbox.ts +++ b/src/shared/external-worktree-inbox.ts @@ -1,5 +1,6 @@ import { normalizeRuntimePathForComparison } from './cross-platform-path' -import type { DetectedWorktree, DetectedWorktreeListResult, Repo } from './types' +import type { Repo } from './repo-types' +import type { DetectedWorktree, DetectedWorktreeListResult } from './worktree/types' import { effectiveExternalWorktreeVisibility, isLegacyRepoForExternalWorktreeVisibility diff --git a/src/shared/external-worktree-visibility.ts b/src/shared/external-worktree-visibility.ts index fc4af8c1681..999bfbcbeb4 100644 --- a/src/shared/external-worktree-visibility.ts +++ b/src/shared/external-worktree-visibility.ts @@ -1,5 +1,5 @@ import { normalizeRuntimePathSeparators } from './cross-platform-path' -import type { ExternalWorktreeVisibility, Repo } from './types' +import type { ExternalWorktreeVisibility, Repo } from './repo-types' export const EXTERNAL_WORKTREE_VISIBILITY_ROLLOUT_AT = Date.UTC(2026, 4, 23) export const UNKNOWN_EXTERNAL_WORKTREE_PARENT_PATH = 'Unknown location' diff --git a/src/shared/folder-workspace-worktree.test.ts b/src/shared/folder-workspace-worktree.test.ts index 270e62eb2ce..420da41488c 100644 --- a/src/shared/folder-workspace-worktree.test.ts +++ b/src/shared/folder-workspace-worktree.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { FolderWorkspace } from './types' +import type { FolderWorkspace } from './folder-workspace-types' import { folderWorkspaceToWorktree } from './folder-workspace-worktree' function makeFolderWorkspace(overrides: Partial = {}): FolderWorkspace { diff --git a/src/shared/folder-workspace-worktree.ts b/src/shared/folder-workspace-worktree.ts index 3bc62acb41f..c8715a12b3a 100644 --- a/src/shared/folder-workspace-worktree.ts +++ b/src/shared/folder-workspace-worktree.ts @@ -1,4 +1,5 @@ -import type { FolderWorkspace, Worktree } from './types' +import type { FolderWorkspace } from './folder-workspace-types' +import type { Worktree } from './worktree/types' import { folderWorkspaceKey } from './workspace-scope' import { parseExecutionHostId, toSshExecutionHostId } from './execution-host' import { normalizeWorkspaceCreatorProvenance } from './workspace-creator-provenance' diff --git a/src/shared/folder-workspaces.ts b/src/shared/folder-workspaces.ts index e5badf0d8d6..97409bd271d 100644 --- a/src/shared/folder-workspaces.ts +++ b/src/shared/folder-workspaces.ts @@ -1,4 +1,5 @@ -import type { FolderWorkspace, ProjectGroup } from './types' +import type { FolderWorkspace } from './folder-workspace-types' +import type { ProjectGroup } from './project-group-types' import { isTuiAgent } from './tui-agent-config' import { normalizeStoredTaskSourceContext } from './task-source-context' import { normalizeWorkspaceLinkedItem } from './workspace-linked-item' diff --git a/src/shared/git-effective-upstream.ts b/src/shared/git-effective-upstream.ts index 8292a9299c9..db364c53b20 100644 --- a/src/shared/git-effective-upstream.ts +++ b/src/shared/git-effective-upstream.ts @@ -1,5 +1,5 @@ import { isNoUpstreamError } from './git-remote-error' -import type { GitUpstreamStatus } from './types' +import type { GitUpstreamStatus } from './git-status-types' import { getConfiguredBranchRemoteUpstream, hasConfiguredBranchPushTarget diff --git a/src/shared/git-publish-target-status.ts b/src/shared/git-publish-target-status.ts index a391fb35c7f..392a7f13291 100644 --- a/src/shared/git-publish-target-status.ts +++ b/src/shared/git-publish-target-status.ts @@ -1,5 +1,5 @@ import type { GitUpstreamStatus } from './git-status-types' -import type { GitPushTarget } from './types' +import type { GitPushTarget } from './worktree/types' import { parseGitRevListAheadBehindCounts } from './git-rev-list-output' export type GitCommandRunner = (args: string[]) => Promise<{ stdout: string }> diff --git a/src/shared/git-push-target-validation.ts b/src/shared/git-push-target-validation.ts index e4de8736aad..208874bd10b 100644 --- a/src/shared/git-push-target-validation.ts +++ b/src/shared/git-push-target-validation.ts @@ -1,4 +1,4 @@ -import type { GitPushTarget } from './types' +import type { GitPushTarget } from './worktree/types' const SAFE_REMOTE_NAME_SEGMENT = /^[A-Za-z0-9][A-Za-z0-9._-]*$/ const GITHUB_CLONE_URL = /^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+\.git$/ diff --git a/src/shared/github/project-types.ts b/src/shared/github/project-types.ts index 6560e410474..dc1e20ea7ce 100644 --- a/src/shared/github/project-types.ts +++ b/src/shared/github/project-types.ts @@ -4,12 +4,10 @@ // import from here directly — do not re-export through `./types.ts` just to // match the existing import block; routing through the issue types module // would obscure ownership of the Project surface. -import type { - GitHubAssignableUser, - GitHubIssueUpdate, - GitHubWorkItemDetails, - PRComment -} from '../types' +import type { PRComment } from './comment-types' +import type { GitHubAssignableUser } from './pull-request-types' +import type { GitHubWorkItemDetails } from './work-item-types' +import type { GitHubIssueUpdate } from '../issue-mutation-types' export type GitHubProjectViewLayout = 'TABLE_LAYOUT' | 'BOARD_LAYOUT' | 'ROADMAP_LAYOUT' export type GitHubProjectOwnerType = 'organization' | 'user' diff --git a/src/shared/github/pull-request-auto-merge-availability.ts b/src/shared/github/pull-request-auto-merge-availability.ts index 90500d1618e..867224fc0ee 100644 --- a/src/shared/github/pull-request-auto-merge-availability.ts +++ b/src/shared/github/pull-request-auto-merge-availability.ts @@ -1,4 +1,4 @@ -import type { PRMergeableState, PRReviewDecision, PRState } from '../types' +import type { PRMergeableState, PRReviewDecision, PRState } from './pull-request-types' export type GitHubPRAutoMergeAvailabilityInput = { state: PRState | 'open' | 'closed' | 'merged' | 'draft' diff --git a/src/shared/github/pull-request-for-branch-outcome.test.ts b/src/shared/github/pull-request-for-branch-outcome.test.ts index 2eff1b7ae33..7ad79b1f61c 100644 --- a/src/shared/github/pull-request-for-branch-outcome.test.ts +++ b/src/shared/github/pull-request-for-branch-outcome.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { PRInfo, PRRefreshOutcome } from '../types' +import type { PRRefreshOutcome } from './pull-request-refresh-types' +import type { PRInfo } from './pull-request-types' import { normalizeGitHubPRForBranchOutcome } from './pull-request-for-branch-outcome' const PR = { diff --git a/src/shared/github/pull-request-for-branch-outcome.ts b/src/shared/github/pull-request-for-branch-outcome.ts index b6cdc180609..9e4a4574043 100644 --- a/src/shared/github/pull-request-for-branch-outcome.ts +++ b/src/shared/github/pull-request-for-branch-outcome.ts @@ -1,4 +1,5 @@ -import type { PRInfo, PRRefreshOutcome } from '../types' +import type { PRRefreshOutcome } from './pull-request-refresh-types' +import type { PRInfo } from './pull-request-types' export type GitHubPRForBranchResponse = PRRefreshOutcome | PRInfo | null diff --git a/src/shared/github/pull-request-merge-methods.ts b/src/shared/github/pull-request-merge-methods.ts index 2072706a41b..1cfb709635b 100644 --- a/src/shared/github/pull-request-merge-methods.ts +++ b/src/shared/github/pull-request-merge-methods.ts @@ -1,4 +1,4 @@ -import type { GitHubPRMergeMethod, GitHubPRMergeMethodSettings } from '../types' +import type { GitHubPRMergeMethod, GitHubPRMergeMethodSettings } from './pull-request-types' export const GITHUB_PR_MERGE_METHODS = ['squash', 'merge', 'rebase'] as const diff --git a/src/shared/gitlab-job-trace-check-details.test.ts b/src/shared/gitlab-job-trace-check-details.test.ts index 59cf24cbf79..9cc9240dd36 100644 --- a/src/shared/gitlab-job-trace-check-details.test.ts +++ b/src/shared/gitlab-job-trace-check-details.test.ts @@ -5,7 +5,7 @@ import { } from './gitlab-job-trace-check-details' import { gitLabPipelineJobsToPRChecks } from './gitlab-pipeline-checks' import type { GitLabPipelineJob } from './gitlab-types' -import type { PRCheckDetail } from './types' +import type { PRCheckDetail } from './github/check-types' const STRINGS = { emptyTrace: 'No log is available for this GitLab job.' } diff --git a/src/shared/gitlab-job-trace-check-details.ts b/src/shared/gitlab-job-trace-check-details.ts index fd81789bc0a..4c0129ca6d4 100644 --- a/src/shared/gitlab-job-trace-check-details.ts +++ b/src/shared/gitlab-job-trace-check-details.ts @@ -1,5 +1,5 @@ import { gitLabJobTraceToLogExcerpt } from './gitlab-job-log-excerpt' -import type { PRCheckDetail, PRCheckRunDetails } from './types' +import type { PRCheckDetail, PRCheckRunDetails } from './github/check-types' export type GitLabJobTraceCheckDetailsStrings = { /** Shown for a job with no log: never ran, waiting on a human, or log erased/expired. */ diff --git a/src/shared/gitlab-pipeline-checks.test.ts b/src/shared/gitlab-pipeline-checks.test.ts index 71f2be73d8d..ee97352fcc0 100644 --- a/src/shared/gitlab-pipeline-checks.test.ts +++ b/src/shared/gitlab-pipeline-checks.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { gitLabPipelineJobsToPRChecks } from './gitlab-pipeline-checks' -import type { GitLabPipelineJob } from './types' +import type { GitLabPipelineJob } from './gitlab-types' describe('gitLabPipelineJobsToPRChecks', () => { it('maps GitLab pipeline jobs into right-panel check rows', () => { diff --git a/src/shared/gitlab-pipeline-checks.ts b/src/shared/gitlab-pipeline-checks.ts index 9cb9a2b1ebd..e9beb309853 100644 --- a/src/shared/gitlab-pipeline-checks.ts +++ b/src/shared/gitlab-pipeline-checks.ts @@ -1,5 +1,5 @@ import type { GitLabPipelineJob } from './gitlab-types' -import type { PRCheckDetail } from './types' +import type { PRCheckDetail } from './github/check-types' export function mapGitLabPipelineJobStatusToCheckStatus(status: string): PRCheckDetail['status'] { const s = status.toLowerCase() diff --git a/src/shared/gitlab-projects.ts b/src/shared/gitlab-projects.ts index f09d6fa19f1..6f518febb4e 100644 --- a/src/shared/gitlab-projects.ts +++ b/src/shared/gitlab-projects.ts @@ -1,6 +1,6 @@ // Why: pure helpers for GitLabProjectSettings — kept out of the IPC // handler so the recents logic is testable without mocking the Store. -import type { GitLabProjectSettings } from './types' +import type { GitLabProjectSettings } from './gitlab-types' /** Default max recents kept before older entries fall off. */ export const GITLAB_RECENTS_MAX = 10 diff --git a/src/shared/gitlab-types.ts b/src/shared/gitlab-types.ts index c9f2a0fffba..56a506a0f5a 100644 --- a/src/shared/gitlab-types.ts +++ b/src/shared/gitlab-types.ts @@ -1,5 +1,10 @@ /* GitLab-specific shared types, split from `./types` to avoid merge conflicts on upstream syncs; re-exported from `./types` for import stability. */ -import type { CheckStatus, ClassifiedError, PRConflictSummary, ProviderCheckSummary } from './types' +import type { ClassifiedError } from './classified-error' +import type { + CheckStatus, + PRConflictSummary, + ProviderCheckSummary +} from './github/pull-request-types' import type { HostedReviewDecision } from './hosted-review' // Why: flat owner/repo is inadequate — projects nest (`group/subgroup/project`) and self-hosted hosts must travel with the path for URL/glab targeting. diff --git a/src/shared/hook-command-source-policy.ts b/src/shared/hook-command-source-policy.ts index 2a3b634bb53..32cd81af0e1 100644 --- a/src/shared/hook-command-source-policy.ts +++ b/src/shared/hook-command-source-policy.ts @@ -1,4 +1,4 @@ -import type { HookCommandSourcePolicy } from './types' +import type { HookCommandSourcePolicy } from './orca-yaml-hook-types' export function normalizeHookCommandSourcePolicy(policy: unknown): HookCommandSourcePolicy { if (policy === 'local-only' || policy === 'run-both' || policy === 'shared-only') { diff --git a/src/shared/host-lineage-contract.ts b/src/shared/host-lineage-contract.ts index 6541b84abac..7bb69f02bb9 100644 --- a/src/shared/host-lineage-contract.ts +++ b/src/shared/host-lineage-contract.ts @@ -1,7 +1,7 @@ import type { ExecutionHostId, LOCAL_EXECUTION_HOST_ID } from './execution-host' import type { SshExecutionHostId } from './detected-worktree-provider-contract' import type { DirectSshAuthority } from './ssh-types' -import type { WorktreeLineage, WorkspaceLineage } from './types' +import type { WorkspaceLineage, WorktreeLineage } from './worktree/lineage-types' export type ListDesktopLineageForHostArgs = | { executionHostId: typeof LOCAL_EXECUTION_HOST_ID } diff --git a/src/shared/host-repo-catalog-contract.ts b/src/shared/host-repo-catalog-contract.ts index 6a44bf8bd85..30f88d7f271 100644 --- a/src/shared/host-repo-catalog-contract.ts +++ b/src/shared/host-repo-catalog-contract.ts @@ -1,7 +1,7 @@ import type { ExecutionHostId, LOCAL_EXECUTION_HOST_ID } from './execution-host' import type { SshExecutionHostId } from './detected-worktree-provider-contract' import type { DirectSshAuthority } from './ssh-types' -import type { Repo } from './types' +import type { Repo } from './repo-types' export type ListReposForExecutionHostArgs = | { executionHostId: typeof LOCAL_EXECUTION_HOST_ID } diff --git a/src/shared/host-setting-overrides.test.ts b/src/shared/host-setting-overrides.test.ts index 58871e77892..e1fd5a390f8 100644 --- a/src/shared/host-setting-overrides.test.ts +++ b/src/shared/host-setting-overrides.test.ts @@ -6,7 +6,7 @@ import { getHostSettingOverride, setHostSettingOverride } from './host-setting-overrides' -import type { GlobalSettings } from './types' +import type { GlobalSettings } from './global-settings-types' function settingsWith( overrides: GlobalSettings['hostSettingOverrides'] diff --git a/src/shared/host-setting-overrides.ts b/src/shared/host-setting-overrides.ts index 5d7f0693d3a..840d64682a8 100644 --- a/src/shared/host-setting-overrides.ts +++ b/src/shared/host-setting-overrides.ts @@ -1,5 +1,5 @@ import type { ExecutionHostId } from './execution-host' -import type { GlobalSettings } from './types' +import type { GlobalSettings } from './global-settings-types' /** Per-host overrides for client preferences that genuinely vary by execution * host. NARROW by design: only settings whose value is meaningless to share diff --git a/src/shared/hosted-review-github.test.ts b/src/shared/hosted-review-github.test.ts index bbc17fa785b..1ad43f32b99 100644 --- a/src/shared/hosted-review-github.test.ts +++ b/src/shared/hosted-review-github.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { hostedReviewInfoFromGitHubPRInfo } from './hosted-review-github' -import type { PRInfo } from './types' +import type { PRInfo } from './github/pull-request-types' const pr: PRInfo = { number: 12, diff --git a/src/shared/hosted-review-github.ts b/src/shared/hosted-review-github.ts index 3cf76175bda..26d866d5c09 100644 --- a/src/shared/hosted-review-github.ts +++ b/src/shared/hosted-review-github.ts @@ -1,5 +1,5 @@ import type { HostedReviewInfo } from './hosted-review' -import type { PRInfo } from './types' +import type { PRInfo } from './github/pull-request-types' export function hostedReviewInfoFromGitHubPRInfo(pr: PRInfo): HostedReviewInfo { return { diff --git a/src/shared/hosted-review.ts b/src/shared/hosted-review.ts index c0763cb4184..2d0b218e9b1 100644 --- a/src/shared/hosted-review.ts +++ b/src/shared/hosted-review.ts @@ -4,7 +4,7 @@ import type { PRConflictSummary, PRMergeableState, PRReviewDecision -} from './types' +} from './github/pull-request-types' export type HostedReviewProvider = | 'github' diff --git a/src/shared/keybindings.ts b/src/shared/keybindings.ts index cbb448e030c..43c30d89d90 100644 --- a/src/shared/keybindings.ts +++ b/src/shared/keybindings.ts @@ -1,5 +1,5 @@ /* eslint-disable max-lines -- Why: keep the shortcut registry, parser, formatter, and conflict detector in one shared module so main/renderer/browser/Settings can't drift. */ -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' import { ALL_TUI_AGENTS, TUI_AGENT_DISPLAY_NAMES } from './tui-agent-display-names' export type KeybindingScope = diff --git a/src/shared/linear/links.ts b/src/shared/linear/links.ts index ce457f0a419..c4b7f6b2c52 100644 --- a/src/shared/linear/links.ts +++ b/src/shared/linear/links.ts @@ -1,4 +1,5 @@ -import type { LinearConnectionStatus, LinearIssue, LinearWorkspace } from '../types' +import type { LinearIssue } from './issue-types' +import type { LinearConnectionStatus, LinearWorkspace } from './workspace-types' export function buildLinearTeamUrl(args: { organizationUrlKey?: string | null diff --git a/src/shared/local-account-runtime.ts b/src/shared/local-account-runtime.ts index 2e2b8b000da..b52234db538 100644 --- a/src/shared/local-account-runtime.ts +++ b/src/shared/local-account-runtime.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from './types' +import type { GlobalSettings } from './global-settings-types' import { normalizeGlobalWindowsRuntimeDefault } from './project-execution-runtime' export type LocalAccountRuntimeTarget = { diff --git a/src/shared/local-windows-terminal-runtime.ts b/src/shared/local-windows-terminal-runtime.ts index 0eb61d8bf08..ea225752a48 100644 --- a/src/shared/local-windows-terminal-runtime.ts +++ b/src/shared/local-windows-terminal-runtime.ts @@ -1,5 +1,5 @@ import type { ProjectExecutionRuntimeResolution } from './project-execution-runtime' -import type { GlobalSettings } from './types' +import type { GlobalSettings } from './global-settings-types' type LocalWindowsTerminalRuntimeSettings = | Partial> diff --git a/src/shared/managed-agent-hook-targets.ts b/src/shared/managed-agent-hook-targets.ts index a32dc63d411..fd339c52eaa 100644 --- a/src/shared/managed-agent-hook-targets.ts +++ b/src/shared/managed-agent-hook-targets.ts @@ -1,6 +1,6 @@ import { AGENT_HOOK_TARGETS, type AgentHookTarget } from './agent-hook-types' import { getTuiAgentDetectCommands, TUI_AGENT_CONFIG } from './tui-agent-config' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' export type ManagedAgentHookTarget = { agent: AgentHookTarget diff --git a/src/shared/manual-repo-order.test.ts b/src/shared/manual-repo-order.test.ts index 3044a8d5399..616c6209bde 100644 --- a/src/shared/manual-repo-order.test.ts +++ b/src/shared/manual-repo-order.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' -import type { ManualRepoOrderEntry, Repo } from './types' +import type { Repo } from './repo-types' +import type { ManualRepoOrderEntry } from './ui-chrome-types' import { applyManualRepoOrder, getManualRepoOrder, diff --git a/src/shared/manual-repo-order.ts b/src/shared/manual-repo-order.ts index 9813412c676..dce66fa2bee 100644 --- a/src/shared/manual-repo-order.ts +++ b/src/shared/manual-repo-order.ts @@ -1,6 +1,7 @@ import { getRepoExecutionHostId, normalizeExecutionHostId } from './execution-host' import { getRepoHostIdentityForParts } from './repo-host-identity' -import type { ManualRepoOrderEntry, Repo } from './types' +import type { Repo } from './repo-types' +import type { ManualRepoOrderEntry } from './ui-chrome-types' function getEntryKey(entry: ManualRepoOrderEntry): string { return getRepoHostIdentityForParts(entry.repoId, entry.hostId) diff --git a/src/shared/markdown-document-listing-limits.test.ts b/src/shared/markdown-document-listing-limits.test.ts index 574e146b4ee..54a3ee18500 100644 --- a/src/shared/markdown-document-listing-limits.test.ts +++ b/src/shared/markdown-document-listing-limits.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { MarkdownDocument } from './types' +import type { MarkdownDocument } from './filesystem-entry-types' import { assertMarkdownDocumentsWithinLimit, createMarkdownDocumentListingBudget, diff --git a/src/shared/markdown-document-listing-limits.ts b/src/shared/markdown-document-listing-limits.ts index 9c9b39c49b3..9b3676bb3d4 100644 --- a/src/shared/markdown-document-listing-limits.ts +++ b/src/shared/markdown-document-listing-limits.ts @@ -1,4 +1,4 @@ -import type { MarkdownDocument } from './types' +import type { MarkdownDocument } from './filesystem-entry-types' import { measureUtf8ByteLength } from './utf8-byte-limits' export const MARKDOWN_DOCUMENT_LISTING_MAX_DOCUMENTS = 20_000 diff --git a/src/shared/nested-repo-telemetry.test.ts b/src/shared/nested-repo-telemetry.test.ts index e2a1a7e579f..bce580bc0cb 100644 --- a/src/shared/nested-repo-telemetry.test.ts +++ b/src/shared/nested-repo-telemetry.test.ts @@ -9,7 +9,7 @@ import { createNestedRepoTelemetryAttemptId, shouldEmitNestedRepoImportSubmitTelemetry } from './nested-repo-telemetry' -import type { NestedRepoScanResult, ProjectGroupImportResult } from './types' +import type { NestedRepoScanResult, ProjectGroupImportResult } from './project-group-types' const scanResult: NestedRepoScanResult = { selectedPath: '/workspace/platform', diff --git a/src/shared/nested-repo-telemetry.ts b/src/shared/nested-repo-telemetry.ts index 44c536a7b3b..7aea296c57a 100644 --- a/src/shared/nested-repo-telemetry.ts +++ b/src/shared/nested-repo-telemetry.ts @@ -2,7 +2,7 @@ import type { NestedRepoScanResult, ProjectGroupImportMode, ProjectGroupImportResult -} from './types' +} from './project-group-types' export const NESTED_REPO_TELEMETRY_MAX_REPO_COUNT = 500 diff --git a/src/shared/new-workspace-dialog-repo.test.ts b/src/shared/new-workspace-dialog-repo.test.ts index cfc65ded826..e14116f915e 100644 --- a/src/shared/new-workspace-dialog-repo.test.ts +++ b/src/shared/new-workspace-dialog-repo.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { Repo } from './types' +import type { Repo } from './repo-types' import { getNewWorkspaceDialogEligibleRepos, resolveNewWorkspaceDialogGitRepoId, diff --git a/src/shared/new-workspace-dialog-repo.ts b/src/shared/new-workspace-dialog-repo.ts index 2e016853ce2..ae037513ca8 100644 --- a/src/shared/new-workspace-dialog-repo.ts +++ b/src/shared/new-workspace-dialog-repo.ts @@ -5,7 +5,7 @@ import { type ExecutionHostScope } from './execution-host' import { isGitRepoKind } from './repo-kind' -import type { Repo } from './types' +import type { Repo } from './repo-types' type NewWorkspaceDialogRepo = Pick< Repo, diff --git a/src/shared/new-workspace/fork-push-warning.ts b/src/shared/new-workspace/fork-push-warning.ts index 5c3a7c29e68..1cb634caf61 100644 --- a/src/shared/new-workspace/fork-push-warning.ts +++ b/src/shared/new-workspace/fork-push-warning.ts @@ -1,4 +1,4 @@ -import type { GitHubPrStartPoint } from '../types' +import type { GitHubPrStartPoint } from '../worktree/types' export const FORK_PUSH_NO_MAINTAINER_EDIT_WARNING = 'This PR has "Allow edits from maintainers" off; pushing to the fork may be rejected by GitHub.' diff --git a/src/shared/new-workspace/smart-workspace-linear-intent.ts b/src/shared/new-workspace/smart-workspace-linear-intent.ts index ec77fcb2fbd..1bca3ee822a 100644 --- a/src/shared/new-workspace/smart-workspace-linear-intent.ts +++ b/src/shared/new-workspace/smart-workspace-linear-intent.ts @@ -1,4 +1,4 @@ -import type { LinearIssue } from '../types' +import type { LinearIssue } from '../linear/issue-types' import { parseLinearIssueInput, parseLinearIssueUrlIntent, diff --git a/src/shared/new-workspace/smart-workspace-source-results.ts b/src/shared/new-workspace/smart-workspace-source-results.ts index e17a4029d8e..40de888f150 100644 --- a/src/shared/new-workspace/smart-workspace-source-results.ts +++ b/src/shared/new-workspace/smart-workspace-source-results.ts @@ -1,11 +1,9 @@ -import type { - BaseRefSearchResult, - GitHubWorkItem, - GitLabWorkItem, - JiraIssue, - LinearCollectionResult, - LinearIssue -} from '../types' +import type { GitHubWorkItem } from '../github/work-item-types' +import type { GitLabWorkItem } from '../gitlab-types' +import type { JiraIssue } from '../jira-types' +import type { LinearIssue } from '../linear/issue-types' +import type { LinearCollectionResult } from '../linear/workspace-types' +import type { BaseRefSearchResult } from '../repo-types' import { JIRA_ISSUE_KEY_PATTERN, parseJiraIssueUrl } from '../jira-issue-url' import { isSmartWorkspaceLinearIssueIntentMatch, diff --git a/src/shared/new-workspace/workspace-source.ts b/src/shared/new-workspace/workspace-source.ts index db15573d9ab..42af0804915 100644 --- a/src/shared/new-workspace/workspace-source.ts +++ b/src/shared/new-workspace/workspace-source.ts @@ -1,5 +1,7 @@ import { getLinearOrganizationUrlKeyFromIssueUrl } from '../linear/links' -import type { FolderWorkspaceLinkedTask, JiraIssue, LinearIssue } from '../types' +import type { FolderWorkspaceLinkedTask } from '../folder-workspace-types' +import type { JiraIssue } from '../jira-types' +import type { LinearIssue } from '../linear/issue-types' import { getLinkedWorkItemSuggestedName, getLinkedWorkItemWorkspaceName, diff --git a/src/shared/open-in-applications.ts b/src/shared/open-in-applications.ts index ace0f526bb8..5e48ec4c824 100644 --- a/src/shared/open-in-applications.ts +++ b/src/shared/open-in-applications.ts @@ -1,4 +1,4 @@ -import type { OpenInApplication } from './types' +import type { OpenInApplication } from './ui-chrome-types' export const OPEN_IN_APPLICATIONS_MAX = 8 export const DEFAULT_OPEN_IN_APPLICATIONS: OpenInApplication[] = [ diff --git a/src/shared/orca-yaml.ts b/src/shared/orca-yaml.ts index 35b49b20a7c..b2a84104df2 100644 --- a/src/shared/orca-yaml.ts +++ b/src/shared/orca-yaml.ts @@ -4,7 +4,7 @@ import type { OrcaHooks, OrcaVmRecipe, OrcaVmRecipeDiagnostic -} from './types' +} from './orca-yaml-hook-types' import { isOrcaYamlFieldWithinLimit, isOrcaYamlTextWithinLimit, diff --git a/src/shared/osc52-clipboard-settings.ts b/src/shared/osc52-clipboard-settings.ts index 2beb06dda16..2f1605bfc6d 100644 --- a/src/shared/osc52-clipboard-settings.ts +++ b/src/shared/osc52-clipboard-settings.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from './types' +import type { GlobalSettings } from './global-settings-types' type Osc52ClipboardSettings = Pick< GlobalSettings, diff --git a/src/shared/plugins/plugin-vm-recipe-artifact.ts b/src/shared/plugins/plugin-vm-recipe-artifact.ts index df99b40178c..fb39a7bccb6 100644 --- a/src/shared/plugins/plugin-vm-recipe-artifact.ts +++ b/src/shared/plugins/plugin-vm-recipe-artifact.ts @@ -1,6 +1,6 @@ import { z } from 'zod' import { ORCA_VM_RECIPE_ID_PATTERN, ORCA_VM_RECIPE_ID_RULE } from '../orca-yaml' -import type { OrcaVmRecipe } from '../types' +import type { OrcaVmRecipe } from '../orca-yaml-hook-types' const recipeCommandSchema = z .string() diff --git a/src/shared/pr-check-severity-order.test.ts b/src/shared/pr-check-severity-order.test.ts index 685886513aa..e2b6b39d285 100644 --- a/src/shared/pr-check-severity-order.test.ts +++ b/src/shared/pr-check-severity-order.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRCheckDetail } from './types' +import type { PRCheckDetail } from './github/check-types' import { getCheckSeverityRank, sortChecksBySeverity } from './pr-check-severity-order' import { mapGitLabPipelineJobStatusToConclusion } from './gitlab-pipeline-checks' diff --git a/src/shared/pr-check-severity-order.ts b/src/shared/pr-check-severity-order.ts index 0bf9effba63..db0230d37dd 100644 --- a/src/shared/pr-check-severity-order.ts +++ b/src/shared/pr-check-severity-order.ts @@ -1,4 +1,4 @@ -import type { PRCheckDetail } from './types' +import type { PRCheckDetail } from './github/check-types' // Why: `neutral`/`skipped` carry no signal, so they sink below `success` — otherwise a // wall of skipped jobs buries the passing checks a reviewer actually reads. diff --git a/src/shared/pr-check-status.test.ts b/src/shared/pr-check-status.test.ts index b924b68bc19..50f5132b40e 100644 --- a/src/shared/pr-check-status.test.ts +++ b/src/shared/pr-check-status.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { derivePRCheckStatus, derivePRCheckStatusFromRollup } from './pr-check-status' -import type { PRCheckDetail } from './types' +import type { PRCheckDetail } from './github/check-types' const check = ( status: PRCheckDetail['status'], diff --git a/src/shared/pr-check-status.ts b/src/shared/pr-check-status.ts index b2127671d1a..f67fd5cb66b 100644 --- a/src/shared/pr-check-status.ts +++ b/src/shared/pr-check-status.ts @@ -1,5 +1,6 @@ import { summarizeProviderChecks } from './provider-check-summary' -import type { CheckStatus, PRCheckDetail } from './types' +import type { PRCheckDetail } from './github/check-types' +import type { CheckStatus } from './github/pull-request-types' /** Derives the review status from the normalized check contract. */ export function derivePRCheckStatus(checks: readonly PRCheckDetail[]): CheckStatus { diff --git a/src/shared/pr-checks-fix-prompt.ts b/src/shared/pr-checks-fix-prompt.ts index ff50a410942..bf68218240d 100644 --- a/src/shared/pr-checks-fix-prompt.ts +++ b/src/shared/pr-checks-fix-prompt.ts @@ -1,4 +1,4 @@ -import type { PRCheckDetail, PRCheckRunDetails } from './types' +import type { PRCheckDetail, PRCheckRunDetails } from './github/check-types' export const PROMPT_LOG_TAIL_LINES = 150 export const PROMPT_LOG_TAIL_SCAN_CODE_UNITS = 256 * 1024 diff --git a/src/shared/pr-comment-audience.test.ts b/src/shared/pr-comment-audience.test.ts index 7499e791b90..76fb50fa888 100644 --- a/src/shared/pr-comment-audience.test.ts +++ b/src/shared/pr-comment-audience.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRComment } from './types' +import type { PRComment } from './github/comment-types' import { createBotAuthorOverrideSet } from './pr-bot-author-overrides' import { filterPRCommentsByAudience, diff --git a/src/shared/pr-comment-audience.ts b/src/shared/pr-comment-audience.ts index 280d0590a7a..4736ab5c372 100644 --- a/src/shared/pr-comment-audience.ts +++ b/src/shared/pr-comment-audience.ts @@ -1,4 +1,4 @@ -import type { PRComment } from './types' +import type { PRComment } from './github/comment-types' import { normalizePRCommentAuthorLogin } from './pr-bot-author-overrides' export type PRCommentAudienceFilter = 'all' | 'human' | 'bot' diff --git a/src/shared/pr-comment-groups.test.ts b/src/shared/pr-comment-groups.test.ts index b2f8de72980..06b801fbf66 100644 --- a/src/shared/pr-comment-groups.test.ts +++ b/src/shared/pr-comment-groups.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { PRComment } from './types' +import type { PRComment } from './github/comment-types' import { getPRCommentGroupCount, getPRCommentGroupId, diff --git a/src/shared/pr-comment-groups.ts b/src/shared/pr-comment-groups.ts index 8d43b9e2b77..119af69c72c 100644 --- a/src/shared/pr-comment-groups.ts +++ b/src/shared/pr-comment-groups.ts @@ -1,4 +1,4 @@ -import type { PRComment } from './types' +import type { PRComment } from './github/comment-types' export type PRCommentGroup = | { kind: 'standalone'; comment: PRComment } diff --git a/src/shared/project-groups.test.ts b/src/shared/project-groups.test.ts index 4c11e8d598b..6b228f698d9 100644 --- a/src/shared/project-groups.test.ts +++ b/src/shared/project-groups.test.ts @@ -8,7 +8,7 @@ import { normalizeProjectGroupName, normalizeProjectGroups } from './project-groups' -import type { Repo } from './types' +import type { Repo } from './repo-types' function repo(overrides: Partial): Repo { return { diff --git a/src/shared/project-groups.ts b/src/shared/project-groups.ts index 6d9b02d8354..67c2897ead6 100644 --- a/src/shared/project-groups.ts +++ b/src/shared/project-groups.ts @@ -1,5 +1,6 @@ import { normalizeExecutionHostId } from './execution-host' -import type { Repo, ProjectGroup, ProjectGroupCreatedFrom } from './types' +import type { ProjectGroup, ProjectGroupCreatedFrom } from './project-group-types' +import type { Repo } from './repo-types' export const UNGROUPED_PROJECT_GROUP_KEY = 'project-group:ungrouped' diff --git a/src/shared/project-host-setup-projection.test.ts b/src/shared/project-host-setup-projection.test.ts index d0456d392de..97ea8cc66b0 100644 --- a/src/shared/project-host-setup-projection.test.ts +++ b/src/shared/project-host-setup-projection.test.ts @@ -7,7 +7,7 @@ import { getProjectIdForProviderIdentity, isProjectRemoteIdentityPending } from './project-host-setup-projection' -import type { Repo } from './types' +import type { Repo } from './repo-types' function repo(overrides: Partial & Pick): Repo { return { diff --git a/src/shared/project-host-setup-projection.ts b/src/shared/project-host-setup-projection.ts index 1db66b2d2c9..537fa5af42b 100644 --- a/src/shared/project-host-setup-projection.ts +++ b/src/shared/project-host-setup-projection.ts @@ -1,13 +1,9 @@ import { getRepoExecutionHostId } from './execution-host' import { normalizeGitHubRemoteHost } from './git-remote-host-alias' import { githubRepoIdentityKey, isDefaultGitHubHost } from './github/repository-identity-key' -import type { - Project, - ProjectHostSetup, - ProjectProviderIdentity, - Repo, - WorktreeMeta -} from './types' +import type { Project, ProjectHostSetup, ProjectProviderIdentity } from './project-types' +import type { Repo } from './repo-types' +import type { WorktreeMeta } from './worktree/meta-types' type ProjectAccumulator = { project: Project diff --git a/src/shared/project-identity-succession.test.ts b/src/shared/project-identity-succession.test.ts index be9cda1c4ed..a5cad899035 100644 --- a/src/shared/project-identity-succession.test.ts +++ b/src/shared/project-identity-succession.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { carryProjectStateThroughIdentityChange } from './project-identity-succession' -import type { Project } from './types' +import type { Project } from './project-types' const makeProject = (overrides: Partial = {}): Project => ({ id: 'project-1', diff --git a/src/shared/project-identity-succession.ts b/src/shared/project-identity-succession.ts index 815d1b58f6d..8afc9aed99a 100644 --- a/src/shared/project-identity-succession.ts +++ b/src/shared/project-identity-succession.ts @@ -1,4 +1,4 @@ -import type { Project } from './types' +import type { Project } from './project-types' export type ProjectIdentitySuccession = { /** Projected projects with user-set state carried forward from their predecessor row. */ diff --git a/src/shared/provider-check-summary.ts b/src/shared/provider-check-summary.ts index a3fe8813458..d191aa5d123 100644 --- a/src/shared/provider-check-summary.ts +++ b/src/shared/provider-check-summary.ts @@ -1,4 +1,4 @@ -import type { ProviderCheckSummary } from './types' +import type { ProviderCheckSummary } from './github/pull-request-types' export type CheckOutcome = 'passed' | 'failed' | 'pending' | 'neutral' diff --git a/src/shared/remote-server-update.ts b/src/shared/remote-server-update.ts index 7817e8fd9f9..917056996af 100644 --- a/src/shared/remote-server-update.ts +++ b/src/shared/remote-server-update.ts @@ -1,4 +1,4 @@ -import type { UpdateStatus } from './types' +import type { UpdateStatus } from './update-status-types' export const REMOTE_SERVER_UPDATE_CAPABILITY = 'updater.remote-control.v1' as const diff --git a/src/shared/remote-workspace-session-projection.ts b/src/shared/remote-workspace-session-projection.ts index dc9a4019a8b..3b60d9044ff 100644 --- a/src/shared/remote-workspace-session-projection.ts +++ b/src/shared/remote-workspace-session-projection.ts @@ -1,6 +1,7 @@ import { getDefaultWorkspaceSession } from './constants' import type { RemoteWorkspaceSession, RemoteWorkspaceTerminalTab } from './remote-workspace-types' -import type { TerminalTab, WorkspaceSessionState } from './types' +import type { TerminalTab } from './terminal-tab-types' +import type { WorkspaceSessionState } from './workspace-session-state-types' import { splitWorktreeId } from './worktree/id' type ExportOptions = { diff --git a/src/shared/remote-workspace-types.ts b/src/shared/remote-workspace-types.ts index 3c08f272864..509ab83b436 100644 --- a/src/shared/remote-workspace-types.ts +++ b/src/shared/remote-workspace-types.ts @@ -1,4 +1,4 @@ -import type { TerminalLayoutSnapshot, TerminalTab } from './types' +import type { TerminalLayoutSnapshot, TerminalTab } from './terminal-tab-types' export type RemoteWorkspaceTerminalTab = Omit & { worktreePath: string diff --git a/src/shared/renderer-restart-preparation.test.ts b/src/shared/renderer-restart-preparation.test.ts index b755496e0c2..ca690ab3cc6 100644 --- a/src/shared/renderer-restart-preparation.test.ts +++ b/src/shared/renderer-restart-preparation.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { UpdateStatus } from './types' +import type { UpdateStatus } from './update-status-types' import { ORCA_RENDERER_SHUTDOWN_CHECKPOINT_FAILED_EVENT } from './renderer-shutdown-events' import { createUpdaterQuitAbortRelay, diff --git a/src/shared/renderer-restart-preparation.ts b/src/shared/renderer-restart-preparation.ts index 20a5311cd6a..356008e0f62 100644 --- a/src/shared/renderer-restart-preparation.ts +++ b/src/shared/renderer-restart-preparation.ts @@ -3,7 +3,7 @@ import { type EditorPrepareHotExitDetail } from './editor-save-events' import { ORCA_RENDERER_SHUTDOWN_CHECKPOINT_FAILED_EVENT } from './renderer-shutdown-events' -import type { UpdateStatus } from './types' +import type { UpdateStatus } from './update-status-types' export type AppRestartPrepOptions = { startedEventName: string diff --git a/src/shared/repo-kind.ts b/src/shared/repo-kind.ts index b5c3946ce98..a9d03a78fad 100644 --- a/src/shared/repo-kind.ts +++ b/src/shared/repo-kind.ts @@ -1,4 +1,4 @@ -import type { Repo } from './types' +import type { Repo } from './repo-types' export function getRepoKind(repo: Pick): 'git' | 'folder' { return repo.kind === 'folder' ? 'folder' : 'git' diff --git a/src/shared/repro-7732-gitlab-job-id-dropped.test.ts b/src/shared/repro-7732-gitlab-job-id-dropped.test.ts index 4f1130f26f2..2f108571dcf 100644 --- a/src/shared/repro-7732-gitlab-job-id-dropped.test.ts +++ b/src/shared/repro-7732-gitlab-job-id-dropped.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { gitLabPipelineJobsToPRChecks } from './gitlab-pipeline-checks' -import type { GitLabPipelineJob } from './types' +import type { GitLabPipelineJob } from './gitlab-types' // Repro for #7732: the Checks side panel can only ask for a GitLab job trace if the mapped // check row still carries the numeric GitLab job id (gitlab:jobTrace takes { jobId }). diff --git a/src/shared/resolved-worktree-lineage.test.ts b/src/shared/resolved-worktree-lineage.test.ts index fc42c1ed608..1c8803d28dd 100644 --- a/src/shared/resolved-worktree-lineage.test.ts +++ b/src/shared/resolved-worktree-lineage.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import { join } from 'node:path' -import type { Worktree, WorktreeLineage } from './types' +import type { WorktreeLineage } from './worktree/lineage-types' +import type { Worktree } from './worktree/types' import { projectResolvedWorktreeLineage } from './resolved-worktree-lineage' function worktree(id: string, instanceId: string, overrides: Partial = {}): Worktree { diff --git a/src/shared/resolved-worktree-lineage.ts b/src/shared/resolved-worktree-lineage.ts index 4967d8450b4..f0a50ae2266 100644 --- a/src/shared/resolved-worktree-lineage.ts +++ b/src/shared/resolved-worktree-lineage.ts @@ -1,4 +1,5 @@ -import type { Worktree, WorktreeLineage } from './types' +import type { WorktreeLineage } from './worktree/lineage-types' +import type { Worktree } from './worktree/types' export type WorktreeWithResolvedLineage = T & { parentWorktreeId: string | null diff --git a/src/shared/runtime-client-events.ts b/src/shared/runtime-client-events.ts index 242dd44af24..c849f2f6630 100644 --- a/src/shared/runtime-client-events.ts +++ b/src/shared/runtime-client-events.ts @@ -1,9 +1,9 @@ +import type { CreateWorktreeResult } from './worktree/create-types' import type { - CreateWorktreeResult, WorktreeDefaultTabsLaunch, WorktreeSetupLaunch, WorktreeStartupLaunch -} from './types' +} from './worktree/launch-types' import type { SshConnectionState } from './ssh-types' import type { TerminalSideEffectBatch } from './terminal-side-effect-facts' import type { RuntimeNativeChatLaunchDraftResolution } from './runtime-types' diff --git a/src/shared/runtime-types.ts b/src/shared/runtime-types.ts index 079a416749a..aa5ed57d939 100644 --- a/src/shared/runtime-types.ts +++ b/src/shared/runtime-types.ts @@ -6,26 +6,24 @@ import type { AgentType } from './agent-status-types' import type { - BaseRefSearchResult, - BrowserCookieImportResult, BrowserCertificateFailure, + BrowserCookieImportResult, BrowserLoadError, BrowserSessionProfile, - BrowserSessionProfileSource, - CreateWorktreeResult, - GitWorktreeInfo, - RemoveWorktreeResult, - Repo, - TabGroupLayoutNode, - TerminalColorOverrides, - TerminalLayoutSnapshot, - TuiAgent, - Worktree, - WorktreeLineage, + BrowserSessionProfileSource +} from './browser-workspace-types' +import type { BaseRefSearchResult, Repo } from './repo-types' +import type { TabGroupLayoutNode } from './tab-types' +import type { TerminalColorOverrides } from './terminal-color-overrides' +import type { TerminalLayoutSnapshot, TerminalPaneLayoutNode } from './terminal-tab-types' +import type { TuiAgent } from './tui-agent' +import type { CreateWorktreeResult, RemoveWorktreeResult } from './worktree/create-types' +import type { WorkspaceLineage, - WorktreeLineageWarning, - TerminalPaneLayoutNode -} from './types' + WorktreeLineage, + WorktreeLineageWarning +} from './worktree/lineage-types' +import type { GitWorktreeInfo, Worktree } from './worktree/types' import type { RuntimeMarkdownReadTabResult, RuntimeMarkdownSaveTabResult diff --git a/src/shared/search-match-count.test.ts b/src/shared/search-match-count.test.ts index 93f484c8558..bf86fe56527 100644 --- a/src/shared/search-match-count.test.ts +++ b/src/shared/search-match-count.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { normalizeSearchFileMatchCount, normalizeSearchResult } from './search-match-count' -import type { SearchFileResult } from './types' +import type { SearchFileResult } from './code-search-types' const match = { line: 1, column: 1, matchLength: 3, lineContent: 'foo' } diff --git a/src/shared/search-match-count.ts b/src/shared/search-match-count.ts index 6692eca1a1b..a5378f2b77b 100644 --- a/src/shared/search-match-count.ts +++ b/src/shared/search-match-count.ts @@ -1,4 +1,4 @@ -import type { SearchFileResult, SearchResult } from './types' +import type { SearchFileResult, SearchResult } from './code-search-types' function isValidMatchCount(value: unknown): value is number { return ( diff --git a/src/shared/setup-agent-startup-policy.ts b/src/shared/setup-agent-startup-policy.ts index 4c4fe2485e2..aa77da6eedc 100644 --- a/src/shared/setup-agent-startup-policy.ts +++ b/src/shared/setup-agent-startup-policy.ts @@ -1,4 +1,4 @@ -import type { SetupAgentStartupPolicy } from './types' +import type { SetupAgentStartupPolicy } from './orca-yaml-hook-types' // Why: existing repos should keep launching setup and agents side by side unless // the user explicitly opts into waiting for setup completion. diff --git a/src/shared/skills-cli-agent-keys.ts b/src/shared/skills-cli-agent-keys.ts index c74641f095d..3126c0a81e5 100644 --- a/src/shared/skills-cli-agent-keys.ts +++ b/src/shared/skills-cli-agent-keys.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' /** * The community `skills` CLI's own `--agent` key for each agent Orca detects. diff --git a/src/shared/source-control-ai-action-recipes.test.ts b/src/shared/source-control-ai-action-recipes.test.ts index 0df6fa064e5..aba81519d09 100644 --- a/src/shared/source-control-ai-action-recipes.test.ts +++ b/src/shared/source-control-ai-action-recipes.test.ts @@ -6,7 +6,7 @@ import { resolveSourceControlActionRecipe, resolveSourceControlAiForOperation } from './source-control-ai' -import type { GlobalSettings } from './types' +import type { GlobalSettings } from './global-settings-types' function settings(): GlobalSettings { const base = getDefaultSettings('/tmp') diff --git a/src/shared/source-control-ai-actions.ts b/src/shared/source-control-ai-actions.ts index 19dc70aa652..d857ad4b61b 100644 --- a/src/shared/source-control-ai-actions.ts +++ b/src/shared/source-control-ai-actions.ts @@ -1,6 +1,6 @@ import { isCustomAgentId, type CustomAgentId } from './commit-message-agent-spec' import { isTuiAgent } from './tui-agent-config' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' // Why: the variable registry lives in `./source-control-ai-action-variables` for max-lines // headroom. It is deliberately not re-exported here — one import path per symbol keeps a diff --git a/src/shared/source-control-ai-recipe-save.test.ts b/src/shared/source-control-ai-recipe-save.test.ts index 93d30b43881..b4aeaf355b6 100644 --- a/src/shared/source-control-ai-recipe-save.test.ts +++ b/src/shared/source-control-ai-recipe-save.test.ts @@ -5,7 +5,8 @@ import { saveSourceControlActionRecipe, toSourceControlAiRepoUpdate } from './source-control-ai-recipe-save' -import type { GlobalSettings, Repo } from './types' +import type { GlobalSettings } from './global-settings-types' +import type { Repo } from './repo-types' function settings(): GlobalSettings { const base = getDefaultSettings('/tmp') diff --git a/src/shared/source-control-ai-recipe-save.ts b/src/shared/source-control-ai-recipe-save.ts index 013baee46bd..d000fc399f6 100644 --- a/src/shared/source-control-ai-recipe-save.ts +++ b/src/shared/source-control-ai-recipe-save.ts @@ -16,7 +16,8 @@ import type { SourceControlAiSettings, WritableRepoSourceControlAiOverrides } from './source-control-ai-types' -import type { GlobalSettings, Repo } from './types' +import type { GlobalSettings } from './global-settings-types' +import type { Repo } from './repo-types' export type SourceControlAiWriteTarget = { type: 'repo'; repoId: string } | { type: 'global' } diff --git a/src/shared/source-control-ai-types.ts b/src/shared/source-control-ai-types.ts index 020ec4d16c5..888f80d38a0 100644 --- a/src/shared/source-control-ai-types.ts +++ b/src/shared/source-control-ai-types.ts @@ -1,4 +1,5 @@ -import type { CommitMessageAiModelCapability, TuiAgent } from './types' +import type { CommitMessageAiModelCapability } from './commit-message-ai-types' +import type { TuiAgent } from './tui-agent' import type { CustomAgentId } from './commit-message-agent-spec' import type { SourceControlAiActionDefaults, diff --git a/src/shared/source-control-ai.test.ts b/src/shared/source-control-ai.test.ts index 54a35115b87..d839a77c769 100644 --- a/src/shared/source-control-ai.test.ts +++ b/src/shared/source-control-ai.test.ts @@ -17,7 +17,7 @@ import type { RepoSourceControlAiOverrides, SourceControlAiOperation } from './source-control-ai-types' -import type { GlobalSettings } from './types' +import type { GlobalSettings } from './global-settings-types' function settings(): GlobalSettings { const base = getDefaultSettings('/tmp') diff --git a/src/shared/source-control-ai.ts b/src/shared/source-control-ai.ts index 7445ee5b874..72669000186 100644 --- a/src/shared/source-control-ai.ts +++ b/src/shared/source-control-ai.ts @@ -24,11 +24,11 @@ import { } from './source-control-ai-actions' import type { CommitMessageAiModelCapability, - CommitMessageAiSettings, - GlobalSettings, - Repo, - TuiAgent -} from './types' + CommitMessageAiSettings +} from './commit-message-ai-types' +import type { GlobalSettings } from './global-settings-types' +import type { Repo } from './repo-types' +import type { TuiAgent } from './tui-agent' import type { RepoSourceControlAiOverrides, SourceControlAiModelChoice, diff --git a/src/shared/source-control-commit-failure.ts b/src/shared/source-control-commit-failure.ts index a2f9e0dfd44..29dbecd4dda 100644 --- a/src/shared/source-control-commit-failure.ts +++ b/src/shared/source-control-commit-failure.ts @@ -1,4 +1,4 @@ -import type { GitStatusEntry } from './types' +import type { GitStatusEntry } from './git-status-types' const FALLBACK_COMMIT_FAILURE_SUMMARY = 'Commit failed.' const LINT_COMMIT_FAILURE_SUMMARY = 'Lint failed during commit.' diff --git a/src/shared/source-control-conflict-prompts.ts b/src/shared/source-control-conflict-prompts.ts index a9c717eeaef..e67c3266ba5 100644 --- a/src/shared/source-control-conflict-prompts.ts +++ b/src/shared/source-control-conflict-prompts.ts @@ -1,4 +1,4 @@ -import type { GitConflictKind, GitConflictOperation, GitStatusEntry } from './types' +import type { GitConflictKind, GitConflictOperation, GitStatusEntry } from './git-status-types' export const CONFLICT_KIND_LABELS: Record = { both_modified: 'Both modified', diff --git a/src/shared/source-control-group-order.ts b/src/shared/source-control-group-order.ts index acfe5160ac7..f2856c42598 100644 --- a/src/shared/source-control-group-order.ts +++ b/src/shared/source-control-group-order.ts @@ -1,4 +1,4 @@ -import type { SourceControlGroupOrder } from './types' +import type { SourceControlGroupOrder } from './ui-chrome-types' export const DEFAULT_SOURCE_CONTROL_GROUP_ORDER: SourceControlGroupOrder = 'changes-first' diff --git a/src/shared/source-control-primary-action-decision-types.ts b/src/shared/source-control-primary-action-decision-types.ts index c1e2147b315..e9eec6e91ce 100644 --- a/src/shared/source-control-primary-action-decision-types.ts +++ b/src/shared/source-control-primary-action-decision-types.ts @@ -1,6 +1,6 @@ import type { HostedReviewCreationEligibility } from './hosted-review' import type { GitUpstreamStatus } from './git-status-types' -import type { PRState } from './types' +import type { PRState } from './github/pull-request-types' export type SourceControlPrimaryActionKind = | 'commit' diff --git a/src/shared/source-control-push-failure.ts b/src/shared/source-control-push-failure.ts index 3d26e3ad486..41c5549f9b9 100644 --- a/src/shared/source-control-push-failure.ts +++ b/src/shared/source-control-push-failure.ts @@ -1,4 +1,4 @@ -import type { GitStatusEntry } from './types' +import type { GitStatusEntry } from './git-status-types' const FALLBACK_PUSH_FAILURE_SUMMARY = 'Push failed.' const LINT_PUSH_FAILURE_SUMMARY = 'Lint failed during push.' diff --git a/src/shared/status-bar-defaults.ts b/src/shared/status-bar-defaults.ts index b1884262d7d..73d72a70ab2 100644 --- a/src/shared/status-bar-defaults.ts +++ b/src/shared/status-bar-defaults.ts @@ -1,4 +1,4 @@ -import type { StatusBarItem } from './types' +import type { StatusBarItem } from './ui-chrome-types' export const DEFAULT_STATUS_BAR_ITEMS: StatusBarItem[] = [ 'claude', diff --git a/src/shared/tab-title-resolution.ts b/src/shared/tab-title-resolution.ts index 9eea2b62371..ffcab13925d 100644 --- a/src/shared/tab-title-resolution.ts +++ b/src/shared/tab-title-resolution.ts @@ -1,4 +1,5 @@ -import type { Tab, TerminalTab } from './types' +import type { Tab } from './tab-types' +import type { TerminalTab } from './terminal-tab-types' import { isMeaningfulOpenCodeTerminalTitle } from './opencode-terminal-title' export function resolveTerminalTabTitle( diff --git a/src/shared/task-preset-query.ts b/src/shared/task-preset-query.ts index ba89a3b131f..66830c860f1 100644 --- a/src/shared/task-preset-query.ts +++ b/src/shared/task-preset-query.ts @@ -1,4 +1,4 @@ -import type { TaskViewPresetId } from './types' +import type { TaskViewPresetId } from './ui-chrome-types' /** * Why: TaskPage presets, blank-search fallbacks, and openTaskPage prefetch must diff --git a/src/shared/task-provider-identity.ts b/src/shared/task-provider-identity.ts index 5d9dbe8c390..46f81229aa2 100644 --- a/src/shared/task-provider-identity.ts +++ b/src/shared/task-provider-identity.ts @@ -1,6 +1,6 @@ import { githubRepoIdentityKey } from './github/repository-identity-key' import type { TaskProvider } from './task-providers' -import type { ProjectProviderIdentity } from './types' +import type { ProjectProviderIdentity } from './project-types' export type GitHubTaskProviderIdentity = ProjectProviderIdentity & { provider: 'github' diff --git a/src/shared/task-source-context.ts b/src/shared/task-source-context.ts index e1576e2de92..78f5ec9e8cf 100644 --- a/src/shared/task-source-context.ts +++ b/src/shared/task-source-context.ts @@ -14,7 +14,8 @@ import { type TaskProviderIdentity } from './task-provider-identity' import type { TaskProvider } from './task-providers' -import type { GlobalSettings, Repo } from './types' +import type { GlobalSettings } from './global-settings-types' +import type { Repo } from './repo-types' export type { GitHubTaskProviderIdentity, diff --git a/src/shared/telemetry-events.ts b/src/shared/telemetry-events.ts index bbffedaefe0..1d6905c1f8d 100644 --- a/src/shared/telemetry-events.ts +++ b/src/shared/telemetry-events.ts @@ -56,13 +56,9 @@ import { } from './nested-repo-telemetry' import { AGENT_HOOK_TARGETS } from './agent-hook-types' -import type { - DiscoveryStatusEmitted, - GlobalSettings, - OnboardingChecklistState, - PathSource, - ShellHydrationFailureReason -} from './types' +import type { GlobalSettings } from './global-settings-types' +import type { DiscoveryStatusEmitted, OnboardingChecklistState } from './onboarding-state-types' +import type { PathSource, ShellHydrationFailureReason } from './shell-path-hydration-types' // ── Shared property enums ─────────────────────────────────────────────── diff --git a/src/shared/terminal-color-scheme-protocol.ts b/src/shared/terminal-color-scheme-protocol.ts index 1b6d680c2a1..76ac88c62cc 100644 --- a/src/shared/terminal-color-scheme-protocol.ts +++ b/src/shared/terminal-color-scheme-protocol.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from './types' +import type { GlobalSettings } from './global-settings-types' export type TerminalColorSchemeMode = 'dark' | 'light' diff --git a/src/shared/terminal-cursor-style-settings.ts b/src/shared/terminal-cursor-style-settings.ts index ec271a7b972..3d8613b9b80 100644 --- a/src/shared/terminal-cursor-style-settings.ts +++ b/src/shared/terminal-cursor-style-settings.ts @@ -1,4 +1,4 @@ -import type { GlobalSettings } from './types' +import type { GlobalSettings } from './global-settings-types' type TerminalCursorStyleSettings = Pick< GlobalSettings, diff --git a/src/shared/terminal-custom-themes.ts b/src/shared/terminal-custom-themes.ts index f91b7d8e22e..c1c3fdcfc8f 100644 --- a/src/shared/terminal-custom-themes.ts +++ b/src/shared/terminal-custom-themes.ts @@ -1,4 +1,4 @@ -import type { TerminalColorOverrides } from './types' +import type { TerminalColorOverrides } from './terminal-color-overrides' import { HEX_COLOR_RE } from './color-validation' export type TerminalCustomThemeSource = 'warp' | 'ghostty' | 'manual' diff --git a/src/shared/terminal-quick-commands.ts b/src/shared/terminal-quick-commands.ts index cee9cdc9fa9..28d51bc0323 100644 --- a/src/shared/terminal-quick-commands.ts +++ b/src/shared/terminal-quick-commands.ts @@ -5,7 +5,7 @@ import type { TerminalQuickCommand, TerminalQuickCommandAction, TerminalQuickCommandScope -} from './types' +} from './terminal-quick-command-types' export const MAX_QUICK_COMMANDS = 40 export const MAX_QUICK_COMMAND_ID_LENGTH = 80 diff --git a/src/shared/terminal-title-agent-type.ts b/src/shared/terminal-title-agent-type.ts index 0952d96e63f..c679933c88e 100644 --- a/src/shared/terminal-title-agent-type.ts +++ b/src/shared/terminal-title-agent-type.ts @@ -12,7 +12,7 @@ import { getPiCompatibleSyntheticAgentLabel, isLegacyPiCompatibleTitle } from './pi-compatible-synthetic-title' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' export const CLAUDE_IDLE = '\u2733' // ✳ (eight-spoked asterisk — Claude Code idle prefix) const CLAUDE_MANAGEMENT_TITLE_RE = diff --git a/src/shared/text-search.ts b/src/shared/text-search.ts index 780164372cb..7919e50cb47 100644 --- a/src/shared/text-search.ts +++ b/src/shared/text-search.ts @@ -14,7 +14,12 @@ import { posix, win32 } from 'node:path' import { assertJsonTextStructureWithinLimits } from './json-text-structure-limit' import { normalizeSearchResult } from './search-match-count' import { escapeRegex } from './string-utils' -import type { SearchFileResult, SearchMatch, SearchOptions, SearchResult } from './types' +import type { + SearchFileResult, + SearchMatch, + SearchOptions, + SearchResult +} from './code-search-types' export type SearchAccumulator = { fileMap: Map diff --git a/src/shared/top-level-view.ts b/src/shared/top-level-view.ts index 8f0e2ee99c1..479c161130d 100644 --- a/src/shared/top-level-view.ts +++ b/src/shared/top-level-view.ts @@ -1,4 +1,4 @@ -import type { TopLevelView } from './types' +import type { TopLevelView } from './ui-chrome-types' // Record keys are exhaustive so adding a top-level view also updates every // persistence boundary that validates values loaded from disk or IPC. diff --git a/src/shared/tui-agent-config.ts b/src/shared/tui-agent-config.ts index 3437e44e560..ea7cb092c68 100644 --- a/src/shared/tui-agent-config.ts +++ b/src/shared/tui-agent-config.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' import { getOrcaCliCommandNameForPlatform } from './orca-cli-command-name' export type AgentPromptInjectionMode = diff --git a/src/shared/tui-agent-detection-commands.ts b/src/shared/tui-agent-detection-commands.ts index b0ca1b443b8..81ee6589649 100644 --- a/src/shared/tui-agent-detection-commands.ts +++ b/src/shared/tui-agent-detection-commands.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' import { getTuiAgentDetectCommands, TUI_AGENT_CONFIG, diff --git a/src/shared/tui-agent-display-names.ts b/src/shared/tui-agent-display-names.ts index 618ef034a68..0b2078f0479 100644 --- a/src/shared/tui-agent-display-names.ts +++ b/src/shared/tui-agent-display-names.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' /** Why: plain-English agent names for non-localized surfaces (keybinding * titles in the shared registry, which main, renderer, and the keybindings diff --git a/src/shared/tui-agent-launch-command.ts b/src/shared/tui-agent-launch-command.ts index c45ac67bd19..140ef935626 100644 --- a/src/shared/tui-agent-launch-command.ts +++ b/src/shared/tui-agent-launch-command.ts @@ -10,7 +10,7 @@ import { tokenizeStartupCommand, type AgentStartupShell } from './tui-agent-startup-shell' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' export type ResolvedAgentLaunchCommand = | { diff --git a/src/shared/tui-agent-launch-defaults.ts b/src/shared/tui-agent-launch-defaults.ts index f0f5d3e8bd1..6e0dc16f08d 100644 --- a/src/shared/tui-agent-launch-defaults.ts +++ b/src/shared/tui-agent-launch-defaults.ts @@ -1,6 +1,6 @@ import { isTuiAgent } from './tui-agent-config' import { YOLO_TUI_AGENT_ARGS, YOLO_TUI_AGENT_ENV } from './tui-agent-permissions' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' const UNSUPPORTED_TUI_AGENT_ARGS: Partial> = { opencode: ['--dangerously-skip-permissions'], diff --git a/src/shared/tui-agent-permissions.ts b/src/shared/tui-agent-permissions.ts index ae0c34391a2..596ef7a1a60 100644 --- a/src/shared/tui-agent-permissions.ts +++ b/src/shared/tui-agent-permissions.ts @@ -1,5 +1,5 @@ import { TUI_AGENT_CONFIG } from './tui-agent-config' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' export type AgentPermissionMode = 'yolo' | 'manual' | 'mixed' diff --git a/src/shared/tui-agent-selection.ts b/src/shared/tui-agent-selection.ts index e0c93daf47c..86216e589b8 100644 --- a/src/shared/tui-agent-selection.ts +++ b/src/shared/tui-agent-selection.ts @@ -1,4 +1,4 @@ -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' import { isTuiAgent } from './tui-agent-config' // Keep this order in sync with the desktop agent catalog. It defines the diff --git a/src/shared/tui-agent-startup.ts b/src/shared/tui-agent-startup.ts index 4cef246ccdb..7b013c4ffd7 100644 --- a/src/shared/tui-agent-startup.ts +++ b/src/shared/tui-agent-startup.ts @@ -17,7 +17,7 @@ import type { StartupCommandDelivery } from './codex-startup-delivery' import { buildSleepingAgentLaunchConfig } from './sleeping-agent-launch-config' import { planHermesStartupQuery } from './hermes-startup-query' import { inlineAgentDraftFitsPlatform } from './agent-draft-platform-limit' -import type { TuiAgent } from './types' +import type { TuiAgent } from './tui-agent' import type { SessionOptionValue } from './native-chat-session-options' import { resolveAgentLaunchCommand } from './tui-agent-launch-command' import { buildAgentResumeLaunchCommand } from './agent-resume-launch-command' diff --git a/src/shared/types.ts b/src/shared/types.ts deleted file mode 100644 index b08e93a3be8..00000000000 --- a/src/shared/types.ts +++ /dev/null @@ -1,366 +0,0 @@ -/** - * Public barrel for Orca's shared domain types. Declarations live in the - * per-domain modules re-exported below; keep this file re-exports only. - */ - -// Repos, projects, and project groups - -export type { RepoKind, IssueSourcePreference, ExternalWorktreeVisibility } from './repo-types' -export type { BuiltInWorktreeVisibilitySourceId } from './repo-types' -export type { CustomWorktreeVisibilitySource } from './repo-types' -export type { WorktreeVisibilitySourcePreferences, Repo, BaseRefDefaultResult } from './repo-types' -export type { BaseRefSearchResult } from './repo-types' - -export type { ForkSyncMode, GitForkSyncExpectedUpstream, GitForkSyncResult } from './git-fork-sync' - -export type { ProjectProviderIdentity, Project, ProjectUpdateArgs } from './project-types' -export type { ProjectHostSetupState, ProjectHostSetupMethod } from './project-types' -export type { RepoProjectHostSetupMethod, ProjectHostSetup } from './project-types' -export type { ProjectHostSetupExistingFolderArgs } from './project-types' -export type { ProjectHostSetupCreateArgs, ProjectHostSetupCloneArgs } from './project-types' -export type { ProjectHostSetupUpdateArgs, ProjectHostSetupDeleteArgs } from './project-types' -export type { ProjectHostSetupResult, ProjectHostSetupCreateResult } from './project-types' -export type { ProjectHostSetupUpdateResult, ProjectHostSetupDeleteResult } from './project-types' - -export type { ProjectGroupCreatedFrom, ProjectGroup } from './project-group-types' -export type { NestedRepoScanOptions, NestedRepoCandidate } from './project-group-types' -export type { NestedRepoScanResult, ProjectGroupImportMode } from './project-group-types' -export type { ProjectGroupImportProjectResult } from './project-group-types' -export type { ProjectGroupImportResult } from './project-group-types' - -export type { WorkspaceScope, WorkspaceKey, FolderWorkspace } from './folder-workspace-types' -export type { FolderWorkspaceLinkedTask } from './folder-workspace-types' - -// Worktrees and workspace session state - -export type { GitWorktreeInfo, WorktreeHeadIdentity, WorkspaceStatus } from './worktree/types' -export type { WorkspaceStatusDefinition, Worktree, WorkspaceLinkedItem } from './worktree/types' -export type { CliWorkspaceProvenance, WorkspaceCreatorProvenance } from './worktree/types' -export type { AutomationWorkspaceProvenance } from './worktree/types' -export type { AutomationWorkspaceProvenanceRequest, GitPushTarget } from './worktree/types' -export type { GitHubPrStartPoint, WorktreeOwnership } from './worktree/types' -export type { DetectedWorktreeListSource, DetectedWorktree } from './worktree/types' -export type { DetectedWorktreeListResult } from './worktree/types' - -export type { WorktreeMeta } from './worktree/meta-types' - -export type { WorktreeLineageOrigin } from './worktree/lineage-types' -export type { WorktreeLineageCaptureConfidence } from './worktree/lineage-types' -export type { WorktreeLineageCaptureSource, WorktreeLineageCapture } from './worktree/lineage-types' -export type { WorktreeLineage, WorkspaceLineage } from './worktree/lineage-types' -export type { WorktreeLineageWarningCode, WorktreeLineageWarning } from './worktree/lineage-types' - -export type { WorktreeSetupLaunch, WorktreeStartupLaunch } from './worktree/launch-types' -export type { WorktreeDefaultTabsLaunch, SetupScriptLaunchMode } from './worktree/launch-types' -export type { SetupSplitDirection } from './worktree/launch-types' - -export type { SetupDecision, WorktreeCreateTimingPhase } from './worktree/create-types' -export type { WorktreeCreateTiming, CreateSparseCheckoutRequest } from './worktree/create-types' -export type { SparsePreset, CreateWorktreeArgs } from './worktree/create-types' -export type { AdoptProvisionedRootArgs, CreateWorktreeResult } from './worktree/create-types' -export type { WorktreeCreateBaseFallback, PreservedWorktreeBranch } from './worktree/create-types' -export type { RemoveWorktreeResult, ForceDeleteWorktreeBranchResult } from './worktree/create-types' - -export type { LocalBaseRefRefreshResult } from './worktree/base-ref-drift-types' -export type { LocalBaseRefUpdateSuggestion } from './worktree/base-ref-drift-types' -export type { WorktreeBaseStatusKind } from './worktree/base-ref-drift-types' -export type { WorktreeBaseStatusEvent } from './worktree/base-ref-drift-types' -export type { WorktreeRemoteBranchConflictEvent } from './worktree/base-ref-drift-types' - -export type { PersistedOpenFile, WorkspaceSessionState } from './workspace-session-state-types' -export type { WorkspaceSessionPatch } from './workspace-session-state-types' - -// Re-exported for backward compat with renderer call sites that import -// `WorkspaceCreateTelemetrySource` from '../../../shared/types'. -export type { WorkspaceSource as WorkspaceCreateTelemetrySource } from './workspace-source' - -// Tabs, terminals, and the embedded browser - -export type { TabGroupSplitDirection, TabGroupLayoutNode, TabContentType } from './tab-types' -export type { WorkspaceVisibleTabType, CtrlTabOrderMode, Tab, TabGroup } from './tab-types' - -export type { TerminalTab, TerminalPaneSplitDirection } from './terminal-tab-types' -export type { TerminalPaneLayoutNode, TerminalLayoutSnapshot } from './terminal-tab-types' - -export type { TerminalColorOverrides } from './terminal-color-overrides' - -export type { TerminalQuickCommandScope } from './terminal-quick-command-types' -export type { TerminalQuickCommandAction } from './terminal-quick-command-types' -export type { TerminalQuickCommandBase } from './terminal-quick-command-types' -export type { TerminalCommandQuickCommand } from './terminal-quick-command-types' -export type { TerminalAgentQuickCommand } from './terminal-quick-command-types' -export type { TerminalQuickCommand } from './terminal-quick-command-types' - -export type { BrowserHistoryEntry, BrowserLoadError } from './browser-workspace-types' -export type { BrowserCertificateFailure } from './browser-workspace-types' -export type { BrowserCertificateProceedFailureReason } from './browser-workspace-types' -export type { BrowserCertificateProceedResult } from './browser-workspace-types' -export type { BrowserViewportPresetId, BrowserViewportOverride } from './browser-workspace-types' -export type { BrowserPage, BrowserWorkspace, BrowserTab } from './browser-workspace-types' -export type { BrowserSessionProfileScope } from './browser-workspace-types' -export type { BrowserSessionUserAgentMode } from './browser-workspace-types' -export type { BrowserSessionProfileCreateOptions } from './browser-workspace-types' -export type { BrowserSessionProfileSource, BrowserSessionProfile } from './browser-workspace-types' -export type { BrowserCookieImportSummary } from './browser-workspace-types' -export type { BrowserCookieImportResult } from './browser-workspace-types' - -// Git status, diffs, and review comments - -export type { - GitBranchChangeStatus, - GitConflictKind, - GitConflictOperation, - GitConflictResolutionStatus, - GitConflictStatusSource, - GitFileStatus, - GitStagingArea, - GitStatusEntry, - GitStatusResult, - GitSubmoduleStatus, - GitUncommittedEntry, - GitUpstreamStatus -} from './git-status-types' - -export type { GitBranchChangeEntry, GitBranchCompareSummary } from './git-diff-compare-types' -export type { GitBranchCompareResult, GitCommitCompareSummary } from './git-diff-compare-types' -export type { GitCommitCompareResult, GitDiffTextResult } from './git-diff-compare-types' -export type { GitDiffBinaryResult, GitDiffResult } from './git-diff-compare-types' - -export type { DiffCommentSource, DiffReviewScope } from './diff-comment-types' -export type { MobileDiffReviewFileState, MobileDiffReviewState } from './diff-comment-types' -export type { DiffComment } from './diff-comment-types' - -// GitHub - -export type { - PRState, - IssueState, - CheckStatus, - PRMergeableState -} from './github/pull-request-types' -export type { PRReviewDecision, PRConflictSummary } from './github/pull-request-types' -export type { GitHubRepositoryIdentity, GitHubOwnerRepo } from './github/pull-request-types' -export type { GitHubPRMergeMethod, GitHubPRMergeMethodSettings } from './github/pull-request-types' -export type { - GitHubPRStackEntry, - GitHubPRStack, - PRInfo, - IssueInfo -} from './github/pull-request-types' -export type { - GitHubViewer, - GitHubAssignableUser, - ProviderCheckSummary -} from './github/pull-request-types' -export type { GitHubPRReviewSummary, GitHubPRFileViewedState } from './github/pull-request-types' -export type { GitHubPRFile, GitHubPRFileContents } from './github/pull-request-types' - -export type { - PRRefreshErrorType, - PRRefreshUpstreamErrorType -} from './github/pull-request-refresh-types' -export type { PRRefreshOutcome, GitHubPRRefreshReason } from './github/pull-request-refresh-types' -export type { - GitHubPRRefreshEnqueueResult, - GitHubPRRefreshAlias -} from './github/pull-request-refresh-types' -export type { GitHubPRRefreshCandidate } from './github/pull-request-refresh-types' -export type { - GitHubPRRefreshSkippedReason, - GitHubPRRefreshEvent -} from './github/pull-request-refresh-types' - -export type { PRCheckDetail, PRCheckAnnotation, PRCheckStep } from './github/check-types' -export type { PRCheckJob, PRCheckRunDetails, GitHubRerunPRChecksResult } from './github/check-types' - -export type { GitHubReactionContent, GitHubReaction, PRComment } from './github/comment-types' -export type { GitHubCommentResult, GitHubPRReviewCommentInput } from './github/comment-types' -export type { GitHubIssueTimelineTarget, GitHubIssueTimelineItem } from './github/comment-types' - -export type { GitHubWorkItem, GitHubWorkItemDetails } from './github/work-item-types' -export type { ListWorkItemsResult } from './github/work-item-types' - -export type { GitHubRateLimitBucket, GitHubRateLimitSnapshot } from './github/rate-limit-types' -export type { GetRateLimitResult } from './github/rate-limit-types' - -// GitLab - -export type { - GitLabAssignableUser, - GitLabAuthDiagnostic, - GitLabCommentResult, - GitLabDiscussionResolveResult, - GitLabIssueInfo, - GitLabIssueState, - GitLabIssueUpdate, - GitLabJobTraceResult, - GitLabRateLimitBucket, - GitLabRateLimitSnapshot, - GitLabMRApprovalRule, - GitLabMRApprovalState, - GitLabMRFile, - GitLabMRInlineCommentInput, - GitLabMRReviewersUpdateResult, - GitLabMRUpdate, - GitLabPagedResult, - GitLabPipelineJob, - GitLabProjectRef, - GitLabProjectSettings, - GitLabRetryJobResult, - GitLabReaction, - GitLabTodo, - GitLabTodoTargetType, - GitLabViewer, - GitLabWorkItem, - GitLabWorkItemDetails, - GetGitLabRateLimitResult, - ListMergeRequestsResult, - MRCheckDetail, - MRComment, - MRInfo, - MRListState, - MRMergeableState, - MRState -} from './gitlab-types' - -// Jira - -export type { - JiraAuthType, - JiraComment, - JiraConnectArgs, - JiraConnectionStatus, - JiraCreateField, - JiraCreateFieldAllowedValue, - JiraCreateIssueArgs, - JiraCreateIssueResult, - JiraIssue, - JiraIssueFilter, - JiraIssueType, - JiraIssueUpdate, - JiraMutationResult, - JiraPriority, - JiraProject, - JiraProjectStatusOrder, - JiraSite, - JiraSiteSelection, - JiraStatus, - JiraTransition, - JiraUser, - JiraViewer -} from './jira-types' - -// Linear - -export type { LinearViewer, LinearWorkspace } from './linear/workspace-types' -export type { LinearWorkspaceSelection, LinearWorkspaceSelector } from './linear/workspace-types' -export type { LinearConcreteWorkspaceId, LinearWorkspaceError } from './linear/workspace-types' -export type { LinearCollectionResult, LinearConnectionStatus } from './linear/workspace-types' -export type { LinearWorkflowState, LinearLabel, LinearMember } from './linear/workspace-types' -export type { LinearTeam } from './linear/workspace-types' - -export type { LinearIssue, LinearIssueChildSummary, LinearComment } from './linear/issue-types' - -export type { LinearProjectSummary, LinearProjectStatusSummary } from './linear/project-types' -export type { LinearProjectMemberSummary } from './linear/project-types' -export type { LinearProjectMilestoneSummary } from './linear/project-types' -export type { LinearProjectResourceSummary } from './linear/project-types' -export type { LinearProjectUpdateSummary, LinearProjectDetail } from './linear/project-types' -export type { LinearCustomViewModel, LinearCustomViewSummary } from './linear/project-types' - -// Cross-provider issue mutations and task sources - -export type { GitHubCreateIssueFields, GitHubCreateIssueResult } from './issue-mutation-types' -export type { GitHubIssueCloseReason, GitHubIssueUpdate } from './issue-mutation-types' -export type { GitHubPullRequestStateUpdate, LinearIssueUpdate } from './issue-mutation-types' - -export type { TaskProvider } from './task-providers' - -// orca.yaml hooks, setup policy, and VM recipes - -export type { OrcaHooks, OrcaWorktreeDefaults } from './orca-yaml-hook-types' -export type { OrcaDefaultTabTemplate, EphemeralVmCheckoutMode } from './orca-yaml-hook-types' -export type { OrcaVmRecipe, OrcaVmRecipeDiagnostic, RepoHookSettings } from './orca-yaml-hook-types' -export type { SetupRunPolicy, SetupAgentStartupPolicy } from './orca-yaml-hook-types' -export type { HookCommandSourcePolicy, PersistedTrustedOrcaHookEntry } from './orca-yaml-hook-types' -export type { PersistedTrustedOrcaHookRepo } from './orca-yaml-hook-types' -export type { PersistedTrustedOrcaHooks } from './orca-yaml-hook-types' - -// Settings, persisted UI state, and onboarding - -export type { TaskViewPresetId, OpenInApplication, SourceControlViewMode } from './ui-chrome-types' -export type { SourceControlGroupOrder, LeftSidebarAppearanceMode } from './ui-chrome-types' -export type { BranchPrefixStrategy, FloatingTerminalCwdRequest } from './ui-chrome-types' -export type { AgentDashboardMode, WorktreeCardProperty, WorktreeCardMode } from './ui-chrome-types' -export type { AgentActivityDisplayMode, StatusBarItem } from './ui-chrome-types' -export type { FloatingTerminalTriggerLocation, TaskResumeState } from './ui-chrome-types' -export type { RightSidebarTab, ActiveRightSidebarTab } from './ui-chrome-types' -export type { RightSidebarExplorerView, ProjectOrderBy } from './ui-chrome-types' -export type { WorkspaceHostScope, VisibleWorkspaceHostIds } from './ui-chrome-types' -export type { WorkspaceHostOrder, ManualRepoOrderEntry, TopLevelView } from './ui-chrome-types' - -export type { GlobalSettings, OrcaWorkspaceLayout } from './global-settings-types' -export type { GhosttyImportPreview } from './global-settings-types' - -export type { HostSettingOverrides } from './host-setting-overrides' - -export type { CommitMessageAiModelCapability } from './commit-message-ai-types' -export type { CommitMessageAiSettings } from './commit-message-ai-types' - -export type { NotificationSettings, NotificationEventSource } from './notification-settings-types' -export type { NotificationDispatchRequest } from './notification-settings-types' -export type { NotificationDispatchResult } from './notification-settings-types' -export type { NotificationDismissResult } from './notification-settings-types' -export type { NotificationSoundResult } from './notification-settings-types' -export type { NotificationSoundDataResult } from './notification-settings-types' -export type { NotificationSoundPathResult } from './notification-settings-types' -export type { NotificationPermissionStatusResult } from './notification-settings-types' -export type { NotificationDeliveryProbeResult } from './notification-settings-types' - -export type { DiscoveryStatusEmitted, OnboardingOutcome } from './onboarding-state-types' -export type { OnboardingChecklistState, OnboardingState } from './onboarding-state-types' - -export type { PersistedUIState } from './persisted-ui-state-types' - -export type { LegacyPaneKeyAliasEntry } from './persisted-state-types' -export type { PersistedMobileClientTabSelection } from './persisted-state-types' -export type { PersistedMobileClientTabSelections, PersistedState } from './persisted-state-types' - -export { PET_SIZE_MIN, PET_SIZE_MAX, PET_SIZE_DEFAULT } from './pet-types' -export type { CustomPet, SpriteAnimation } from './pet-types' - -// Agents, managed accounts, and updates - -export type { TuiAgent } from './tui-agent' - -export type { CodexManagedAccount, CodexManagedAccountSummary } from './managed-account-types' -export type { CodexSystemDefaultIdentity } from './managed-account-types' -export type { CodexRateLimitAccountsState } from './managed-account-types' -export type { CodexManagedAccountRuntimeSelection } from './managed-account-types' -export type { ClaudeManagedAccount, ClaudeManagedAccountSummary } from './managed-account-types' -export type { ClaudeRateLimitAccountsState } from './managed-account-types' -export type { ClaudeManagedAccountRuntimeSelection } from './managed-account-types' - -export type { ChangelogRelease, ChangelogData, UpdateCheckOptions } from './update-status-types' -export type { UpdateSource, LinuxRootPackageType } from './update-status-types' -export type { LinuxPackageInstallFailureReason } from './update-status-types' -export type { LinuxPackageInstallRecovery } from './update-status-types' -export type { LinuxPackageCommandUnavailableReason } from './update-status-types' -export type { LinuxPackageInstallInstructions, UpdateStatus } from './update-status-types' -export type { ReleaseBuildListResult } from './update-status-types' - -// Filesystem, search, process stats, and shared error shape - -export type { ShellHydrationFailureReason, PathSource } from './shell-path-hydration-types' - -export type { FilesystemPathFlavor, DirEntry, MarkdownDocument } from './filesystem-entry-types' -export type { FsChangeEvent, FsChangedPayload } from './filesystem-entry-types' - -export type { SearchMatch, SearchFileResult, SearchResult } from './code-search-types' -export type { SearchOptions } from './code-search-types' - -export type { StatsSummary, UsageValues, ProcessMemoryMetric } from './process-stats-types' -export type { HostAvailableMemorySource, AppMemory, SessionMemory } from './process-stats-types' -export type { WorktreeMemory, HostMemory, MemorySnapshot } from './process-stats-types' - -export type { ClassifiedError } from './classified-error' diff --git a/src/shared/workspace-creator-provenance.ts b/src/shared/workspace-creator-provenance.ts index 541cf3f2a5e..7fe2802f607 100644 --- a/src/shared/workspace-creator-provenance.ts +++ b/src/shared/workspace-creator-provenance.ts @@ -1,4 +1,4 @@ -import type { WorkspaceCreatorProvenance } from './types' +import type { WorkspaceCreatorProvenance } from './worktree/types' export function normalizeWorkspaceCreatorProvenance( value: unknown diff --git a/src/shared/workspace-linked-item-equality.test.ts b/src/shared/workspace-linked-item-equality.test.ts index 45ff9800093..dba84854e98 100644 --- a/src/shared/workspace-linked-item-equality.test.ts +++ b/src/shared/workspace-linked-item-equality.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { areWorkspaceLinkedItemsEqual } from './workspace-linked-item' -import type { WorkspaceLinkedItem } from './types' +import type { WorkspaceLinkedItem } from './worktree/types' const item: WorkspaceLinkedItem = { provider: 'jira', diff --git a/src/shared/workspace-linked-item-schema.ts b/src/shared/workspace-linked-item-schema.ts index 5e50cc3c40a..d1b648fa58b 100644 --- a/src/shared/workspace-linked-item-schema.ts +++ b/src/shared/workspace-linked-item-schema.ts @@ -1,5 +1,5 @@ import { z } from 'zod' -import type { WorkspaceLinkedItem } from './types' +import type { WorkspaceLinkedItem } from './worktree/types' import { normalizeWorkspaceLinkedItem } from './workspace-linked-item' export const WorkspaceLinkedItemSchema = z diff --git a/src/shared/workspace-linked-item-source-context.test.ts b/src/shared/workspace-linked-item-source-context.test.ts index 41288b956d1..aaff22d8155 100644 --- a/src/shared/workspace-linked-item-source-context.test.ts +++ b/src/shared/workspace-linked-item-source-context.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import type { TaskSourceContext } from './task-source-context' -import type { WorkspaceLinkedItem } from './types' +import type { WorkspaceLinkedItem } from './worktree/types' import { isWorkspaceLinkedItemSourceContextMatch } from './workspace-linked-item-source-context' const JIRA_ITEM: WorkspaceLinkedItem = { diff --git a/src/shared/workspace-linked-item-source-context.ts b/src/shared/workspace-linked-item-source-context.ts index 81d29c4be05..7b4ecd4b60d 100644 --- a/src/shared/workspace-linked-item-source-context.ts +++ b/src/shared/workspace-linked-item-source-context.ts @@ -1,7 +1,7 @@ import { parseJiraIssueUrl } from './jira-issue-url' import { getWorkspaceSourceProvider } from './new-workspace/workspace-source' import type { TaskSourceContext } from './task-source-context' -import type { WorkspaceLinkedItem } from './types' +import type { WorkspaceLinkedItem } from './worktree/types' function resolveLinkedItemProvider( item: Pick & Partial diff --git a/src/shared/workspace-linked-item.ts b/src/shared/workspace-linked-item.ts index bca3929d09b..11f60f1864f 100644 --- a/src/shared/workspace-linked-item.ts +++ b/src/shared/workspace-linked-item.ts @@ -1,4 +1,4 @@ -import type { WorkspaceLinkedItem } from './types' +import type { WorkspaceLinkedItem } from './worktree/types' export function areWorkspaceLinkedItemsEqual( a: WorkspaceLinkedItem | null | undefined, diff --git a/src/shared/workspace-scope.ts b/src/shared/workspace-scope.ts index 4993c0599d7..262f6a82afe 100644 --- a/src/shared/workspace-scope.ts +++ b/src/shared/workspace-scope.ts @@ -1,4 +1,4 @@ -import type { WorkspaceKey, WorkspaceScope } from './types' +import type { WorkspaceKey, WorkspaceScope } from './folder-workspace-types' export function worktreeWorkspaceKey(worktreeId: string): WorkspaceKey { return `worktree:${worktreeId}` diff --git a/src/shared/workspace-session-browser-history.ts b/src/shared/workspace-session-browser-history.ts index 666671a0d04..ad734c17471 100644 --- a/src/shared/workspace-session-browser-history.ts +++ b/src/shared/workspace-session-browser-history.ts @@ -1,4 +1,5 @@ -import type { BrowserHistoryEntry, WorkspaceSessionState } from './types' +import type { BrowserHistoryEntry } from './browser-workspace-types' +import type { WorkspaceSessionState } from './workspace-session-state-types' import { redactKagiSessionToken } from './browser-url' export const MAX_BROWSER_HISTORY_ENTRIES = 200 diff --git a/src/shared/workspace-session-browser-schema.ts b/src/shared/workspace-session-browser-schema.ts index 19aaeb0ae82..0feb744faf4 100644 --- a/src/shared/workspace-session-browser-schema.ts +++ b/src/shared/workspace-session-browser-schema.ts @@ -3,7 +3,7 @@ * schemas themselves are unchanged apart from the per-entry tolerance the * session schema now declares everywhere. */ import { z } from 'zod' -import type { BrowserWorkspace } from './types' +import type { BrowserWorkspace } from './browser-workspace-types' import { normalizeBrowserHistoryEntries } from './workspace-session-browser-history' import { salvagingArray } from './zod-salvage' diff --git a/src/shared/workspace-session-salvage.ts b/src/shared/workspace-session-salvage.ts index 66b6a6374e9..4f3bdf88fa2 100644 --- a/src/shared/workspace-session-salvage.ts +++ b/src/shared/workspace-session-salvage.ts @@ -1,4 +1,4 @@ -import type { WorkspaceSessionState } from './types' +import type { WorkspaceSessionState } from './workspace-session-state-types' import { describeWorkspaceSessionError, safeParseWorkspaceSession, diff --git a/src/shared/workspace-session-schema.ts b/src/shared/workspace-session-schema.ts index 446e19270da..9f65e2a1034 100644 --- a/src/shared/workspace-session-schema.ts +++ b/src/shared/workspace-session-schema.ts @@ -12,13 +12,11 @@ * Only a payload that is not a session at all falls back to defaults. */ import { z } from 'zod' -import type { - TabGroupLayoutNode, - TerminalPaneLayoutNode, - TuiAgent, - WorkspaceKey, - WorkspaceSessionState -} from './types' +import type { WorkspaceKey } from './folder-workspace-types' +import type { TabGroupLayoutNode } from './tab-types' +import type { TerminalPaneLayoutNode } from './terminal-tab-types' +import type { TuiAgent } from './tui-agent' +import type { WorkspaceSessionState } from './workspace-session-state-types' import { isValidTerminalTabId } from './terminal-tab-id' import { parseExecutionHostId, type ExecutionHostId } from './execution-host' import { isTuiAgent } from './tui-agent-config' diff --git a/src/shared/workspace-session-terminal-buffers.test.ts b/src/shared/workspace-session-terminal-buffers.test.ts index e5c868cd691..d1316659440 100644 --- a/src/shared/workspace-session-terminal-buffers.test.ts +++ b/src/shared/workspace-session-terminal-buffers.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { FLOATING_TERMINAL_WORKTREE_ID } from './constants' -import type { WorkspaceSessionState } from './types' +import type { WorkspaceSessionState } from './workspace-session-state-types' import { TERMINAL_SCROLLBACK_SESSION_BUFFER_BYTE_LIMIT } from './terminal-scrollback-limits' import { getUtf8ByteLength } from './utf8-byte-limits' import { diff --git a/src/shared/workspace-session-terminal-buffers.ts b/src/shared/workspace-session-terminal-buffers.ts index b2ec9df45dc..96bb76cafe2 100644 --- a/src/shared/workspace-session-terminal-buffers.ts +++ b/src/shared/workspace-session-terminal-buffers.ts @@ -1,4 +1,5 @@ -import type { Repo, WorkspaceSessionState } from './types' +import type { Repo } from './repo-types' +import type { WorkspaceSessionState } from './workspace-session-state-types' import { FLOATING_TERMINAL_WORKTREE_ID } from './constants' import { getRepoIdFromWorktreeId } from './worktree/id' import { TERMINAL_SCROLLBACK_SESSION_BUFFER_BYTE_LIMIT } from './terminal-scrollback-limits' diff --git a/src/shared/workspace-session-terminal-tab-close.test.ts b/src/shared/workspace-session-terminal-tab-close.test.ts index 66bb3d5dd63..e8b50c3b71d 100644 --- a/src/shared/workspace-session-terminal-tab-close.test.ts +++ b/src/shared/workspace-session-terminal-tab-close.test.ts @@ -1,6 +1,8 @@ import { describe, expect, it } from 'vitest' import { getDefaultWorkspaceSession } from './constants' -import type { Tab, TerminalTab, WorkspaceSessionState } from './types' +import type { Tab } from './tab-types' +import type { TerminalTab } from './terminal-tab-types' +import type { WorkspaceSessionState } from './workspace-session-state-types' import { closeTerminalTabInWorkspaceSession } from './workspace-session-terminal-tab-close' const WORKTREE_ID = 'worktree-1' diff --git a/src/shared/workspace-session-terminal-tab-close.ts b/src/shared/workspace-session-terminal-tab-close.ts index e5f2d6cd28a..fd82abc1dc3 100644 --- a/src/shared/workspace-session-terminal-tab-close.ts +++ b/src/shared/workspace-session-terminal-tab-close.ts @@ -1,10 +1,5 @@ -import type { - Tab, - TabGroup, - TabGroupLayoutNode, - WorkspaceSessionState, - WorkspaceVisibleTabType -} from './types' +import type { Tab, TabGroup, TabGroupLayoutNode, WorkspaceVisibleTabType } from './tab-types' +import type { WorkspaceSessionState } from './workspace-session-state-types' export type WorkspaceSessionTerminalTabCloseResult = { session: WorkspaceSessionState diff --git a/src/shared/workspace-status-defaults.ts b/src/shared/workspace-status-defaults.ts index f0c4f10e426..47aedee7e95 100644 --- a/src/shared/workspace-status-defaults.ts +++ b/src/shared/workspace-status-defaults.ts @@ -1,4 +1,4 @@ -import type { WorkspaceStatusDefinition } from './types' +import type { WorkspaceStatusDefinition } from './worktree/types' export const DEFAULT_STATUS_VISUALS: Record = { todo: { color: 'neutral', icon: 'circle' }, diff --git a/src/shared/workspace-statuses.ts b/src/shared/workspace-statuses.ts index 430595733fc..4635824c809 100644 --- a/src/shared/workspace-statuses.ts +++ b/src/shared/workspace-statuses.ts @@ -1,4 +1,4 @@ -import type { Worktree, WorkspaceStatus, WorkspaceStatusDefinition } from './types' +import type { WorkspaceStatus, WorkspaceStatusDefinition, Worktree } from './worktree/types' import { DEFAULT_STATUS_VISUALS, DEFAULT_WORKSPACE_STATUSES } from './workspace-status-defaults' import { isKnownBadPRReorderedDefaultStatusPayload, diff --git a/src/shared/worktree/card-properties.ts b/src/shared/worktree/card-properties.ts index 240b3ba341e..d0b09a01344 100644 --- a/src/shared/worktree/card-properties.ts +++ b/src/shared/worktree/card-properties.ts @@ -1,9 +1,6 @@ -import type { - GlobalSettings, - PersistedUIState, - WorktreeCardMode, - WorktreeCardProperty -} from '../types' +import type { GlobalSettings } from '../global-settings-types' +import type { PersistedUIState } from '../persisted-ui-state-types' +import type { WorktreeCardMode, WorktreeCardProperty } from '../ui-chrome-types' const FIXED_WORKTREE_CARD_PROPERTIES: WorktreeCardProperty[] = ['status', 'unread'] diff --git a/src/shared/worktree/ownership-worktree-base-path.test.ts b/src/shared/worktree/ownership-worktree-base-path.test.ts index aff3c951285..549a3d46763 100644 --- a/src/shared/worktree/ownership-worktree-base-path.test.ts +++ b/src/shared/worktree/ownership-worktree-base-path.test.ts @@ -1,5 +1,7 @@ import { describe, expect, it } from 'vitest' -import type { GlobalSettings, Repo, Worktree } from '../types' +import type { GlobalSettings } from '../global-settings-types' +import type { Repo } from '../repo-types' +import type { Worktree } from './types' import { buildKnownOrcaWorkspaceLayouts, classifyWorktreeOwnership } from './ownership' function makeRepo(overrides: Partial = {}): Repo { diff --git a/src/shared/worktree/ownership.test.ts b/src/shared/worktree/ownership.test.ts index 8877a415b53..12e17145a32 100644 --- a/src/shared/worktree/ownership.test.ts +++ b/src/shared/worktree/ownership.test.ts @@ -1,5 +1,8 @@ import { describe, expect, it } from 'vitest' -import type { GlobalSettings, Repo, Worktree, WorktreeMeta } from '../types' +import type { GlobalSettings } from '../global-settings-types' +import type { Repo } from '../repo-types' +import type { WorktreeMeta } from './meta-types' +import type { Worktree } from './types' import { createAgentScratchWorktreePathMatcher } from '../agent-scratch-worktrees' import { applyMetadataFallbackVisibility, diff --git a/src/shared/worktree/ownership.ts b/src/shared/worktree/ownership.ts index 7e224d0689f..a123e6c9c65 100644 --- a/src/shared/worktree/ownership.ts +++ b/src/shared/worktree/ownership.ts @@ -23,15 +23,10 @@ import { effectiveExternalWorktreeVisibility, isLegacyRepoForExternalWorktreeVisibility } from '../external-worktree-visibility' -import type { - DetectedWorktree, - GlobalSettings, - OrcaWorkspaceLayout, - Repo, - Worktree, - WorktreeMeta, - WorktreeOwnership -} from '../types' +import type { GlobalSettings, OrcaWorkspaceLayout } from '../global-settings-types' +import type { Repo } from '../repo-types' +import type { WorktreeMeta } from './meta-types' +import type { DetectedWorktree, Worktree, WorktreeOwnership } from './types' export { effectiveAgentWorktreeVisibility, diff --git a/src/shared/worktree/removal.ts b/src/shared/worktree/removal.ts index 68d1072b247..8788171ebe0 100644 --- a/src/shared/worktree/removal.ts +++ b/src/shared/worktree/removal.ts @@ -1,4 +1,4 @@ -import type { GitWorktreeInfo } from '../types' +import type { GitWorktreeInfo } from './types' export const LOCKED_WORKTREE_REMOVAL_PREFIX = 'Worktree is locked by Git.' diff --git a/src/shared/worktree/visibility-sources.test.ts b/src/shared/worktree/visibility-sources.test.ts index 280ac0f3082..c0fd4193206 100644 --- a/src/shared/worktree/visibility-sources.test.ts +++ b/src/shared/worktree/visibility-sources.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { Repo } from '../types' +import type { Repo } from '../repo-types' import { buildWorktreeSourcePreferenceUpdate, createWorktreeVisibilitySourceMatcher, diff --git a/src/shared/worktree/visibility-sources.ts b/src/shared/worktree/visibility-sources.ts index 0053bedf2de..9ba158b40d7 100644 --- a/src/shared/worktree/visibility-sources.ts +++ b/src/shared/worktree/visibility-sources.ts @@ -9,7 +9,7 @@ import type { ExternalWorktreeVisibility, Repo, WorktreeVisibilitySourcePreferences -} from '../types' +} from '../repo-types' export const MAX_CUSTOM_WORKTREE_VISIBILITY_SOURCES = 32 const MAX_SOURCE_ID_LENGTH = 128 diff --git a/tests/e2e/completed-worker-retirement-resume.unit.test.ts b/tests/e2e/completed-worker-retirement-resume.unit.test.ts index ac201ab9b32..a9c18acdd1a 100644 --- a/tests/e2e/completed-worker-retirement-resume.unit.test.ts +++ b/tests/e2e/completed-worker-retirement-resume.unit.test.ts @@ -4,7 +4,8 @@ import type { SleepingAgentSessionRecord } from '../../src/shared/agent-session- import { makePaneKey } from '../../src/shared/stable-pane-id' import { tokenizeStartupCommand } from '../../src/shared/tui-agent-startup-shell' import { parseWorkspaceSession } from '../../src/shared/workspace-session-schema' -import type { TerminalTab, Worktree } from '../../src/shared/types' +import type { TerminalTab } from '../../src/shared/terminal-tab-types' +import type { Worktree } from '../../src/shared/worktree/types' import { OrchestrationDb } from '../../src/main/runtime/orchestration/db' import { OrcaRuntimeService } from '../../src/main/runtime/orca-runtime' import type { RpcContext } from '../../src/main/runtime/rpc/core' diff --git a/tests/e2e/helpers/pr-comments-sidebar-fixture.ts b/tests/e2e/helpers/pr-comments-sidebar-fixture.ts index 3fc047ec1bf..f01661f2de8 100644 --- a/tests/e2e/helpers/pr-comments-sidebar-fixture.ts +++ b/tests/e2e/helpers/pr-comments-sidebar-fixture.ts @@ -1,5 +1,6 @@ import type { Page } from '@stablyai/playwright-test' -import type { PRComment, PRInfo } from '../../../src/shared/types' +import type { PRComment } from '../../../src/shared/github/comment-types' +import type { PRInfo } from '../../../src/shared/github/pull-request-types' export type PRCommentsSidebarSeed = { worktreeId: string diff --git a/tests/e2e/helpers/runtime-types.ts b/tests/e2e/helpers/runtime-types.ts index a376e2416da..de18b94a2d9 100644 --- a/tests/e2e/helpers/runtime-types.ts +++ b/tests/e2e/helpers/runtime-types.ts @@ -1,13 +1,11 @@ import type { AppState } from '../../../src/renderer/src/store/types' import type { OpenFile, RightSidebarTab } from '../../../src/renderer/src/store/slices/editor' import type { ManagedPane } from '../../../src/renderer/src/lib/pane-manager/pane-manager-types' -import type { - BrowserWorkspace, - Repo, - TerminalTab, - Worktree, - WorkspaceVisibleTabType -} from '../../../src/shared/types' +import type { BrowserWorkspace } from '../../../src/shared/browser-workspace-types' +import type { Repo } from '../../../src/shared/repo-types' +import type { WorkspaceVisibleTabType } from '../../../src/shared/tab-types' +import type { TerminalTab } from '../../../src/shared/terminal-tab-types' +import type { Worktree } from '../../../src/shared/worktree/types' export type AppStore = { getState(): AppState diff --git a/tests/e2e/helpers/worktree-registration.ts b/tests/e2e/helpers/worktree-registration.ts index 96a4bce5e2f..1fd6a7f9bb9 100644 --- a/tests/e2e/helpers/worktree-registration.ts +++ b/tests/e2e/helpers/worktree-registration.ts @@ -1,6 +1,6 @@ import type { Page } from '@stablyai/playwright-test' import { expect } from './orca-app' -import type { CommitMessageAiSettings } from '../../../src/shared/types' +import type { CommitMessageAiSettings } from '../../../src/shared/commit-message-ai-types' // Why: these specs create worktrees via raw `git worktree add`, which bypasses // Orca's own add/remove path — the one thing that invalidates the main-process diff --git a/tests/e2e/linear-url-workspace-entry.spec.ts b/tests/e2e/linear-url-workspace-entry.spec.ts index ccdf1d00c4a..7cd9ccf30ca 100644 --- a/tests/e2e/linear-url-workspace-entry.spec.ts +++ b/tests/e2e/linear-url-workspace-entry.spec.ts @@ -1,7 +1,7 @@ import type { ElectronApplication, Page } from '@stablyai/playwright-test' import { test, expect } from './helpers/orca-app' import { waitForActiveWorktree, waitForSessionReady } from './helpers/store' -import type { LinearIssue } from '../../src/shared/types' +import type { LinearIssue } from '../../src/shared/linear/issue-types' const LINEAR_URL = 'https://linear.app/stably/issue/STA-4084/restore-osc-133-shell-integration-when-an-exec-in-user-rc-files-strips' diff --git a/tests/e2e/native-chat-ask-user-question-card.spec.ts b/tests/e2e/native-chat-ask-user-question-card.spec.ts index a3788e5aa96..74620ed3104 100644 --- a/tests/e2e/native-chat-ask-user-question-card.spec.ts +++ b/tests/e2e/native-chat-ask-user-question-card.spec.ts @@ -6,7 +6,7 @@ import type { Page } from '@stablyai/playwright-test' import { test, expect } from './helpers/orca-app' import { ensureTerminalVisible, waitForActiveWorktree, waitForSessionReady } from './helpers/store' import { waitForActivePaneHookDescriptor, waitForActiveTerminalManager } from './helpers/terminal' -import type { GlobalSettings } from '../../src/shared/types' +import type { GlobalSettings } from '../../src/shared/global-settings-types' const QUESTION = 'Tabs or spaces?' diff --git a/tests/e2e/native-chat-first-flush-race.spec.ts b/tests/e2e/native-chat-first-flush-race.spec.ts index 15ec43dc843..1362a882902 100644 --- a/tests/e2e/native-chat-first-flush-race.spec.ts +++ b/tests/e2e/native-chat-first-flush-race.spec.ts @@ -6,7 +6,7 @@ import type { Page } from '@stablyai/playwright-test' import { test, expect } from './helpers/orca-app' import { ensureTerminalVisible, waitForActiveWorktree, waitForSessionReady } from './helpers/store' import { waitForActivePaneHookDescriptor, waitForActiveTerminalManager } from './helpers/terminal' -import type { GlobalSettings } from '../../src/shared/types' +import type { GlobalSettings } from '../../src/shared/global-settings-types' const LOADING_TITLE = 'Loading conversation…' const ERROR_TITLE = 'Could not load conversation' diff --git a/tests/e2e/notification-settings.spec.ts b/tests/e2e/notification-settings.spec.ts index ae33f26d7ae..2b4f78fbc57 100644 --- a/tests/e2e/notification-settings.spec.ts +++ b/tests/e2e/notification-settings.spec.ts @@ -1,6 +1,6 @@ import { test, expect } from './helpers/orca-app' import { waitForSessionReady } from './helpers/store' -import type { GlobalSettings } from '../../src/shared/types' +import type { GlobalSettings } from '../../src/shared/global-settings-types' async function getSettings( page: Parameters[0] diff --git a/tests/e2e/onboarding.spec.ts b/tests/e2e/onboarding.spec.ts index 0fb5ad870c1..a4fcaa8dc1d 100644 --- a/tests/e2e/onboarding.spec.ts +++ b/tests/e2e/onboarding.spec.ts @@ -10,7 +10,8 @@ import { test, expect } from './helpers/orca-app' import { waitForSessionReady } from './helpers/store' import type { Page } from '@stablyai/playwright-test' -import type { GlobalSettings, TuiAgent } from '../../src/shared/types' +import type { GlobalSettings } from '../../src/shared/global-settings-types' +import type { TuiAgent } from '../../src/shared/tui-agent' import { ONBOARDING_FINAL_STEP } from '../../src/shared/constants' import { encodePairingOffer, PAIRING_OFFER_VERSION } from '../../src/shared/pairing' diff --git a/tests/e2e/paired-remote-pane-layout-retry.spec.ts b/tests/e2e/paired-remote-pane-layout-retry.spec.ts index 653cde88add..fd5f347bb69 100644 --- a/tests/e2e/paired-remote-pane-layout-retry.spec.ts +++ b/tests/e2e/paired-remote-pane-layout-retry.spec.ts @@ -1,7 +1,7 @@ import type { Page } from '@stablyai/playwright-test' import type { RuntimeMobileSessionTabsResult } from '../../src/shared/runtime-types' import { toWebTerminalSurfaceTabId } from '../../src/shared/terminal-surface-id' -import type { TerminalLayoutSnapshot } from '../../src/shared/types' +import type { TerminalLayoutSnapshot } from '../../src/shared/terminal-tab-types' import { launchHeadlessPairedRuntimeHost, type HeadlessPairedRuntimeHost diff --git a/tests/e2e/pr11346-selected-runtime-add.spec.ts b/tests/e2e/pr11346-selected-runtime-add.spec.ts index f4e86d8b0f5..20e34121f88 100644 --- a/tests/e2e/pr11346-selected-runtime-add.spec.ts +++ b/tests/e2e/pr11346-selected-runtime-add.spec.ts @@ -2,7 +2,9 @@ import { rmSync } from 'node:fs' import path from 'node:path' import type { ElectronApplication, Locator, Page, TestInfo } from '@stablyai/playwright-test' import { RuntimeClient } from '../../src/cli/runtime/client' -import type { FolderWorkspace, ProjectGroup, Repo } from '../../src/shared/types' +import type { FolderWorkspace } from '../../src/shared/folder-workspace-types' +import type { ProjectGroup } from '../../src/shared/project-group-types' +import type { Repo } from '../../src/shared/repo-types' import { expect, test } from './helpers/orca-app' import { createRuntimeDesktopPairingOffer, diff --git a/tests/e2e/remote-terminal-tab-retirement.unit.test.ts b/tests/e2e/remote-terminal-tab-retirement.unit.test.ts index 6696e2ca7f6..45ac2f8b0a0 100644 --- a/tests/e2e/remote-terminal-tab-retirement.unit.test.ts +++ b/tests/e2e/remote-terminal-tab-retirement.unit.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { getDefaultWorkspaceSession } from '../../src/shared/constants' import type { RuntimeMobileSessionTabsSnapshot } from '../../src/shared/runtime-types' -import type { WorkspaceSessionState } from '../../src/shared/types' +import type { WorkspaceSessionState } from '../../src/shared/workspace-session-state-types' import { acceptReplayedWebSessionTabsSnapshot, applyWebSessionTabsSnapshot, diff --git a/tests/e2e/repo-icon-emoji-picker.spec.ts b/tests/e2e/repo-icon-emoji-picker.spec.ts index 2698615b881..1513365725c 100644 --- a/tests/e2e/repo-icon-emoji-picker.spec.ts +++ b/tests/e2e/repo-icon-emoji-picker.spec.ts @@ -7,7 +7,7 @@ import type { Page, TestInfo } from '@stablyai/playwright-test' import { expect, test } from './helpers/orca-app' import { getStoreState, waitForSessionReady } from './helpers/store' -import type { Repo } from '../../src/shared/types' +import type { Repo } from '../../src/shared/repo-types' /** Opens the repo settings panel and pins the UI language to English. */ async function openRepoSettings(page: Page, repoId: string): Promise { diff --git a/tests/e2e/settings-agent-awake.spec.ts b/tests/e2e/settings-agent-awake.spec.ts index 15c25e2fc4e..8a2ad840a14 100644 --- a/tests/e2e/settings-agent-awake.spec.ts +++ b/tests/e2e/settings-agent-awake.spec.ts @@ -2,7 +2,7 @@ import { randomUUID } from 'node:crypto' import type { ElectronApplication, Page } from '@stablyai/playwright-test' import { test, expect } from './helpers/orca-app' import { waitForSessionReady } from './helpers/store' -import type { GlobalSettings } from '../../src/shared/types' +import type { GlobalSettings } from '../../src/shared/global-settings-types' import { readHookEndpoint } from './helpers/agent-hook-endpoint' type AwakeProbeSnapshot = { diff --git a/tests/e2e/settings-display-name-ime.spec.ts b/tests/e2e/settings-display-name-ime.spec.ts index 8001c6d3338..e6da51bdb71 100644 --- a/tests/e2e/settings-display-name-ime.spec.ts +++ b/tests/e2e/settings-display-name-ime.spec.ts @@ -10,7 +10,7 @@ import type { CDPSession, Locator, Page } from '@stablyai/playwright-test' import { test, expect } from './helpers/orca-app' import { getStoreState, waitForSessionReady } from './helpers/store' -import type { Repo } from '../../src/shared/types' +import type { Repo } from '../../src/shared/repo-types' async function openRepoSettings(page: Page, repoId: string): Promise { await page.evaluate((repoId) => { diff --git a/tests/e2e/settings-search-responsiveness.spec.ts b/tests/e2e/settings-search-responsiveness.spec.ts index 05bbb29e284..b3ac59d3320 100644 --- a/tests/e2e/settings-search-responsiveness.spec.ts +++ b/tests/e2e/settings-search-responsiveness.spec.ts @@ -1,7 +1,7 @@ import path from 'node:path' import { test, expect } from './helpers/orca-app' import { waitForSessionReady } from './helpers/store' -import type { Repo } from '../../src/shared/types' +import type { Repo } from '../../src/shared/repo-types' const MATCHING_PROJECT_COUNT = 240 diff --git a/tests/e2e/terminal-duplicate-pty-renderer-reveal.spec.ts b/tests/e2e/terminal-duplicate-pty-renderer-reveal.spec.ts index b11c74c86be..8bc5db7be0b 100644 --- a/tests/e2e/terminal-duplicate-pty-renderer-reveal.spec.ts +++ b/tests/e2e/terminal-duplicate-pty-renderer-reveal.spec.ts @@ -2,7 +2,7 @@ import { randomUUID } from 'node:crypto' import { existsSync, readFileSync, writeFileSync } from 'node:fs' import path from 'node:path' import type { ElectronApplication, Page } from '@stablyai/playwright-test' -import type { TerminalLayoutSnapshot } from '../../src/shared/types' +import type { TerminalLayoutSnapshot } from '../../src/shared/terminal-tab-types' import { DEFAULT_LOCAL_ORCA_PROFILE_ID } from '../../src/shared/orca-profiles' import { test, expect } from './helpers/orca-app' import { attachRepoAndOpenTerminal, createRestartSession } from './helpers/orca-restart' diff --git a/tests/e2e/worktree-smart-sort.spec.ts b/tests/e2e/worktree-smart-sort.spec.ts index 0bcadf31623..2c193d3336b 100644 --- a/tests/e2e/worktree-smart-sort.spec.ts +++ b/tests/e2e/worktree-smart-sort.spec.ts @@ -1,6 +1,6 @@ import { test, expect } from './helpers/orca-app' import type { Page } from '@stablyai/playwright-test' -import type { TerminalPaneLayoutNode } from '../../src/shared/types' +import type { TerminalPaneLayoutNode } from '../../src/shared/terminal-tab-types' import { ensureTerminalVisible, waitForActiveWorktree, waitForSessionReady } from './helpers/store' import { worktreeRow } from './worktree-row-locators'