From 8417fa890af30b04f02a5b93413e9cfcf2600a45 Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Thu, 5 Nov 2026 06:45:18 -0800 Subject: [PATCH] refactor(main): group agent runtime code by defining owner (#38565) --- .github/workflows/macos-updater-tests.yml | 4 +- .github/workflows/pr.yml | 2 +- config/flaky-test-pattern-baseline.txt | 10 +- config/reliability-gates.jsonc | 14 +-- .../scripts/ci/sharding/ci-shard-timings.json | 110 +++++++++--------- .../dependency-graph/ci-unit-files.mjs | 2 +- .../vitest-node-runtime-files.mjs | 2 +- .../typecheck-project-coverage.test.mjs | 5 +- .../pr-shell-contract-prefixes.mjs | 6 +- config/tsconfig.node.json | 4 +- config/tsconfig.test.pane-launch.json | 2 +- src/main/acp/acp-account-binding.ts | 2 +- src/main/acp/acp-at-rest-commands.ts | 2 +- .../acp/acp-scripted-child.test-fixture.ts | 2 +- ...acp-structured-host-restore-failed.test.ts | 2 +- ...uctured-launch-resolution-opencode.test.ts | 4 +- .../acp-structured-launch-resolution.test.ts | 4 +- .../acp/acp-structured-launch-resolution.ts | 4 +- .../acp-structured-managed-runtime.test.ts | 2 +- .../acp-structured-session-adapter.test.ts | 2 +- src/main/acp/acp-text-task.test.ts | 2 +- src/main/acp/acp-text-task.ts | 2 +- src/main/agent-launch/agent-launch-mode.ts | 2 +- .../ai-vault/structured-chat-cli-fork.test.ts | 2 +- src/main/ai-vault/structured-chat-cli-fork.ts | 2 +- ...tured-session-ownership-acp-and-pi.test.ts | 2 +- .../ai-vault/structured-session-ownership.ts | 4 +- .../antigravity-chat-sign-in.test.ts | 4 +- .../antigravity/antigravity-chat-sign-in.ts | 2 +- .../claude-launch-routing.test.ts | 2 +- .../claude-agent-sdk-contract-pins.test.ts | 2 +- src/main/claude/claude-launch-account.ts | 2 +- .../claude/claude-naming-invocation.test.ts | 2 +- src/main/claude/claude-naming-invocation.ts | 2 +- .../claude/claude-rewind-transcript.test.ts | 2 +- .../claude-scripted-child.test-fixture.ts | 4 +- ...claude-structured-real-cli-visuals.test.ts | 2 +- .../claude-structured-session-state.ts | 2 +- ...laude-structured-turn-resume-point.test.ts | 2 +- ...-structured-launch-account-routing.test.ts | 6 +- ...laude-structured-launch-resolution.test.ts | 2 +- .../claude-structured-launch-resolution.ts | 2 +- .../claude-structured-launch-visuals.test.ts | 2 +- .../runtime-home-catalog-account-key.test.ts | 2 +- .../launch/codex-cli-installation-error.ts | 2 +- .../launch/codex-minimum-version.test.ts | 2 +- ...codex-structured-child-environment.test.ts | 6 +- ...codex-structured-launch-resolution.test.ts | 2 +- .../codex-structured-launch-resolution.ts | 2 +- .../launch/codex-structured-visuals.test.ts | 2 +- .../codex-scripted-child.test-fixture.ts | 2 +- .../codex-structured-session-adapter.test.ts | 2 +- .../codex-structured-session-state.ts | 2 +- .../ipc/preflight-agent-detection.test.ts | 2 +- .../ipc/pty/pty-launch-parity.test-fixture.ts | 2 +- src/main/ipc/pty/runtime/spawn-state.ts | 2 +- src/main/ipc/pty/spawn-startup-target.ts | 2 +- .../agent-model-catalog-prewarm.test.ts | 2 +- ...tured-agent-session-adopted-import.test.ts | 2 +- ...t-session-catalog-mutation.test-support.ts | 2 +- ...ion-claude-account-routing.test-support.ts | 4 +- ...-agent-session-claude-compact-stop.test.ts | 2 +- ...-agent-session-claude-echo-working.test.ts | 2 +- ...ent-session-claude-hung-start-stop.test.ts | 2 +- ...t-session-claude-opening-send-hold.test.ts | 2 +- ...d-agent-session-claude-queued-stop.test.ts | 2 +- ...t-session-claude-resume-exit-start.test.ts | 2 +- ...ssion-claude-stop-contract-test-fixture.ts | 2 +- ...ssion-claude-stop-exit-ends-record.test.ts | 2 +- ...agent-session-claude-stop-note-end.test.ts | 2 +- ...agent-session-claude-stop-turn-end.test.ts | 2 +- ...-agent-session-claude-subagent-row.test.ts | 2 +- ...ent-session-create-adoption-budget.test.ts | 2 +- ...ured-agent-session-create-adoption.test.ts | 2 +- ...ured-agent-session-damaged-runtime.test.ts | 2 +- ...tured-agent-session-outgrown-child.test.ts | 2 +- ...ed-agent-session-owed-work-release.test.ts | 2 +- ...ured-agent-session-permission-mode.test.ts | 6 +- ...-session-receiving-callers.test-support.ts | 4 +- ...ed-agent-session-receiving-catalog.test.ts | 2 +- ...ctured-agent-session-recovery-read.test.ts | 2 +- .../structured-agent-session-recovery-read.ts | 2 +- ...nt-session-startup-provider-errors.test.ts | 2 +- ...nt-session-terminal-writer-acquire.test.ts | 2 +- ...sion-view-start-after-failed-start.test.ts | 2 +- .../structured-provider-session-ownership.ts | 2 +- .../native-chat/chat-launcher-command.test.ts | 2 +- ...native-chat-inline-visuals-setting.test.ts | 2 +- .../native-chat-visuals-delivery.test.ts | 2 +- ...ed-agent-cli-conversation-adoption.test.ts | 2 +- .../structured-chat-naming-execution.test.ts | 2 +- ...structured-chat-naming-publication.test.ts | 2 +- .../structured-chat-naming.test.ts | 4 +- .../structured-conversation-key.ts | 2 +- src/main/orcad/orcad-account-services.ts | 2 +- .../orcad-cli-launcher.integration.test.ts | 2 +- ...rcad-host-account-launch-env-store.test.ts | 2 +- ...ad-wsl-host-claude-profile-refresh.test.ts | 2 +- src/main/pi/pi-scripted-child.test-fixture.ts | 2 +- src/main/pi/rpc-launch-resolution.test.ts | 2 +- src/main/pi/rpc-launch-resolution.ts | 2 +- src/main/pi/rpc-launch.test.ts | 2 +- src/main/pi/rpc-launch.ts | 2 +- src/main/pi/rpc-runtime-metadata.ts | 2 +- src/main/pi/rpc-runtime-registration.ts | 4 +- .../codex-workspace-relative-path.test.ts | 4 +- .../preflight/workspace-agent-detection.ts | 2 +- .../antigravity-usage-fetcher.test.ts | 2 +- .../rate-limits/antigravity-usage-fetcher.ts | 2 +- .../agent-session-inventory-scale.test.ts | 2 +- .../runtime/agent-session-tab-layout-queue.ts | 2 +- .../runtime-account-controller.ts | 39 ++++--- .../structured-agent-account-home.ts | 16 +-- ...ed-agent-shell-environment-catalog.test.ts | 16 +-- ...structured-agent-shell-environment.test.ts | 8 +- .../structured-agent-shell-environment.ts | 14 +-- ...ructured-session-child-env.test-support.ts | 0 .../structured-session-child-env.test.ts | 8 +- .../structured-session-child-env.ts | 16 +-- ...session-cli-login-shell.live-shell.test.ts | 0 ...structured-session-cli-login-shell.test.ts | 0 ...ctured-session-login-shell-test-harness.ts | 2 +- ...structured-fake-connection-test-fixture.ts | 6 +- ...structured-agent-registration-seam.test.ts | 6 +- .../structured-agent-runtime-metadata.ts | 36 +++--- ...ctured-agent-runtime-registration-types.ts | 28 ++--- .../structured-agent-runtime-registrations.ts | 56 ++++----- ...tured-agent-scripted-child.test-fixture.ts | 0 .../structured-agent-session-host-assembly.ts | 32 ++--- ...ructured-agent-session-runtime-contract.ts | 26 ++--- .../structured-claude-piped-test-support.ts | 11 +- .../structured-claude-runtime-adapter.ts | 28 ++--- ...ed-claude-scripted-runtime-test-support.ts | 20 ++-- ...tructured-agent-launch-parity.test.ts.snap | 0 ...ctured-agent-session-create-intent.test.ts | 22 ++-- .../structured-agent-availability.test.ts | 12 +- .../launch}/structured-agent-availability.ts | 20 ++-- ...-agent-create-support-opencode-rig.test.ts | 6 +- .../structured-agent-install-refresh.test.ts | 4 +- ...d-agent-launch-composition.test-support.ts | 34 +++--- .../structured-agent-launch-composition.ts | 24 ++-- .../structured-agent-launch-parity.test.ts | 86 +++++++------- ...red-agent-launch-support-probe-omp.test.ts | 8 +- ...uctured-agent-launch-support-probe.test.ts | 8 +- .../structured-agent-launch-support.test.ts | 16 +-- .../structured-agent-launch-support.ts | 29 ++--- ...ured-agent-new-chat-effort-at-rest.test.ts | 44 +++---- ...laude-structured-exit-mid-response.test.ts | 10 +- ...ude-structured-failed-start-resume.test.ts | 6 +- ...e-structured-idle-releases-unknown.test.ts | 14 +-- ...e-structured-resumed-start-failure.test.ts | 10 +- ...ude-structured-retired-saved-model.test.ts | 17 +-- ...-send-restart-dies-before-dispatch.test.ts | 12 +- ...ude-structured-session-integration.test.ts | 46 ++++---- ...tured-startup-fault-is-not-an-exit.test.ts | 10 +- ...startup-unanswered-control-request.test.ts | 10 +- ...runtime-structured-session-restore.test.ts | 18 +-- ...ed-structured-agent-session-restoration.ts | 6 +- .../lifecycle}/structured-agent-chat-stop.ts | 2 +- .../structured-agent-cli-writers.test.ts | 12 +- .../structured-agent-cli-writers.ts | 12 +- ...agent-session-claude-kill-evidence.test.ts | 20 ++-- ...t-session-codex-goal-stop-settings.test.ts | 20 ++-- ...-agent-session-codex-stop-evidence.test.ts | 38 +++--- ...d-agent-session-history-close-race.test.ts | 16 +-- ...ctured-agent-session-pi-kill-retry.test.ts | 20 ++-- ...gent-session-tab-authority.test-support.ts | 36 +++--- ...ctured-agent-session-tab-authority.test.ts | 36 +++--- .../structured-chat-tab-compatibility.test.ts | 50 ++++---- .../structured-claude-pending-rewind.test.ts | 32 ++--- ...ed-claude-thinking-display-refusal.test.ts | 8 +- .../structured-session-recovery-options.ts | 12 +- ...ured-agent-model-catalog-discovery.test.ts | 16 +-- ...tructured-agent-model-catalog-discovery.ts | 14 +-- ...ed-agent-model-catalog-first-frame.test.ts | 42 +++---- ...ructured-agent-model-catalog-owner.test.ts | 32 ++--- .../structured-agent-model-catalog-wiring.ts | 38 +++--- ...t-session-provider-naming-shutdown.test.ts | 20 ++-- .../structured-chat-naming-agent-launch.ts | 16 +-- .../structured-chat-naming-contract.test.ts | 34 +++--- .../structured-chat-naming-runtime.test.ts | 28 ++--- .../naming}/structured-chat-naming-runtime.ts | 34 +++--- .../structured-claude-naming-lifetime.test.ts | 14 +-- ...ructured-claude-naming-occurrences.test.ts | 20 ++-- .../structured-claude-naming-test-support.ts | 28 ++--- ...gent-session-adapter-start-failure.test.ts | 2 +- .../structured-agent-session-close.ts | 2 +- ...agent-session-codex-scripted-child.test.ts | 2 +- ...agent-session-codex-start-deadline.test.ts | 2 +- ...-session-codex-turn-end-settlement.test.ts | 2 +- ...tructured-agent-session-create-adoption.ts | 2 +- ...ured-agent-session-install-failure.test.ts | 4 +- ...provider-operations-while-starting.test.ts | 2 +- ...t-session-runtime-provider-started.test.ts | 2 +- .../structured-agent-session-runtime.ts | 6 +- ...structured-agent-session-tab-index-seed.ts | 2 +- .../construction/runtime-construction.ts | 2 +- .../construction/runtime-host-services.ts | 4 +- .../construction/runtime-service-state.ts | 2 +- .../first-host-launch-env-gate.test.ts | 2 +- .../runtime/host-account-launch-env.spec.ts | 5 +- .../runtime/orca-runtime-agent-transitions.ts | 2 +- src/main/runtime/orca-runtime-core.ts | 2 +- ...a-runtime-default-tab-agent-status.test.ts | 2 +- ...-runtime-migrated-pane-restore-cwd.test.ts | 2 +- .../scripted-codex-transport.test-fixture.ts | 2 +- src/main/runtime/orca-runtime.ts | 4 +- .../chat-worker-error-escalation.ts | 2 +- .../crew-recipient-nested-authority.test.ts | 2 +- .../crew/crew-recipient-worker-facts.ts | 2 +- .../orchestration/db/dispatch-depth.test.ts | 2 +- ...n-coordinator-orca-session-binding.test.ts | 2 +- ...tured-worker-orca-session-backfill.test.ts | 2 +- ...structured-worker-orca-session-backfill.ts | 2 +- ...ker-dispatch-assignee-orca-session.test.ts | 2 +- .../dispatch-assignee-orca-session-id.ts | 2 +- ...tration-legacy-worker-terminal-recovery.ts | 2 +- ...tion-orca-session-column-migration.test.ts | 2 +- .../orchestration/orchestration-party.ts | 4 +- ...n-coordinator-orca-session-address.test.ts | 2 +- .../structured-session-lineage.ts | 2 +- .../structured-session-mail-target.test.ts | 2 +- .../structured-session-mail-target.ts | 2 +- ...structured-worker-group-addressing.test.ts | 2 +- .../structured-worker-group-addressing.ts | 4 +- ...e-legacy-worker-terminal-recovery-types.ts | 18 ++- ...red-chat-coordinator-fake-codex-fixture.ts | 10 +- ...-chat-coordinator-mail-rig.test-fixture.ts | 30 ++--- .../structured-chat-coordinator-mail.test.ts | 19 +-- ...rdinator-observation-clock.test-fixture.ts | 6 +- ...red-chat-dispatch-worker-lifecycle.test.ts | 16 +-- ...ructured-chat-dispatch-worker-mail.test.ts | 8 +- .../structured-chat-dispatch-worker.test.ts | 10 +- .../structured-chat-mail-custody.test.ts | 22 ++-- .../structured-chat-worker-helpers.test.ts | 10 +- .../structured-chat-worker-reuse.test.ts | 19 +-- ...ructured-chat-worker-start-unknown.test.ts | 6 +- .../structured-chat-worker-start.test.ts | 8 +- .../structured-worker-agent-presence.test.ts | 2 +- .../structured-worker-at-rest.test.ts | 23 ++-- .../structured-worker-authority.test.ts | 2 +- .../structured-worker-authority.ts | 24 ++-- .../structured-worker-cleared-session.test.ts | 42 +++---- .../structured-worker-custody.ts | 18 +-- ...structured-worker-hook-attestation.test.ts | 10 +- .../structured-worker-identity.test.ts | 19 +-- .../structured-worker-identity.ts | 20 ++-- .../structured-worker-rpc.test-support.ts | 8 +- .../structured-worker-terminal-read.ts | 15 +-- .../structured-worker-terminal-refusal.ts | 2 +- .../terminal-pane-mail-routing.ts | 2 +- .../worker-auto-release-activity.ts | 2 +- .../worker-dispatch-settlement.test.ts | 2 +- .../orchestration/worker-output-archive.ts | 4 +- .../rpc/methods/agent-launch-surfaces.ts | 2 +- .../rpc/methods/agent-launch.test-fixture.ts | 2 +- .../rpc/methods/antigravity-accounts.ts | 4 +- .../methods/managed-runtime-install.test.ts | 2 +- .../rpc/methods/managed-runtime-install.ts | 4 +- .../orchestration-chat-assignee-journal.ts | 2 +- ...ration-structured-worker-lifecycle.test.ts | 2 +- ...chestration-structured-worker-lifecycle.ts | 6 +- ...stration-structured-worker-redrive.test.ts | 2 +- ...hestration-structured-worker-retry.test.ts | 2 +- ...stration-structured-worker-session.test.ts | 6 +- ...orchestration-structured-worker-session.ts | 4 +- .../orchestration-worker-mode-opacity.test.ts | 2 +- .../settled-worker-follow-through.ts | 2 +- .../helper-follow-up-cli.test-support.ts | 2 +- .../worker/session-worker-observation.ts | 2 +- .../worker/structured-worker-release-stop.ts | 2 +- .../orchestration/worker/worker-control.ts | 2 +- .../worker/worker-follow-up-choice.ts | 2 +- .../worker/worker-follow-up-placement.ts | 2 +- .../orchestration/worker/worker-keep-open.ts | 2 +- ...orker-start-launch-executor-parity.test.ts | 2 +- .../worker/worker-terminal-release-lease.ts | 2 +- .../structured-agent-session-agents.ts | 2 +- .../structured-worker-read-cursor.test.ts | 2 +- .../structured-worker-stop-receipt.test.ts | 2 +- .../structured-worker-tab-retirement.test.ts | 2 +- .../rpc/methods/usage-credentials.test.ts | 2 +- .../rpc/orchestration-caller-show.test.ts | 2 +- .../orchestration-party-addressing.test.ts | 2 +- .../rpc/orchestration-party-agreement.test.ts | 2 +- ...chestration-session-caller-test-fixture.ts | 2 +- .../rpc/orchestration-session-caller.test.ts | 2 +- .../rpc/orchestration-session-caller.ts | 2 +- .../orchestration-session-coordinator.test.ts | 2 +- .../orchestration-session-recipient.test.ts | 2 +- .../orchestration-session-run-binding.test.ts | 2 +- .../structured-worker-cli.integration.test.ts | 9 +- .../runtime-agent-lineage.test-fixture.ts | 2 +- ...ime-agent-orchestration-projection.test.ts | 2 +- .../runtime-agent-sender-associations.test.ts | 2 +- ...ime-legacy-worker-recovery-test-fixture.ts | 8 +- ...gacy-worker-terminal-recovery-candidate.ts | 6 +- ...acy-worker-terminal-recovery-controller.ts | 2 +- ...rker-terminal-recovery-persistence.test.ts | 2 +- ...cy-worker-terminal-recovery-persistence.ts | 2 +- ...acy-worker-terminal-recovery-retry.test.ts | 2 +- ...-legacy-worker-terminal-recovery-runner.ts | 2 +- .../runtime-pty-controller-contract.ts | 2 +- .../runtime/runtime-reference-agents.test.ts | 9 +- src/main/runtime/runtime-reference-agents.ts | 4 +- .../runtime-service-command-surface.ts | 2 +- .../get-agent-session-execution-namespace.ts | 2 +- .../orca-runtime-create-agent-session.ts | 16 +-- .../session-graph/session-graph-authority.ts | 2 +- .../projection/restored-pane-materialize.ts | 2 +- .../session-tabs/restored-chat-tab-changes.ts | 2 +- .../structured-session-account-home.ts | 2 +- .../structured-session-cli-writer-host.ts | 2 +- .../structured-session-create-support.ts | 6 +- .../structured-session-tab-presentation.ts | 2 +- .../structured-session-tab-restoration.ts | 2 +- .../structured-child-records-switch.test.ts | 2 +- .../adopt-terminal-orphans-from-inventory.ts | 4 +- .../runtime-terminal-orphan-adoption-plan.ts | 2 +- .../driver/terminal-driver-resources.ts | 2 +- .../launch/agent-launch-scope-runtime.ts | 2 +- .../mobile-terminal-chat-fork-create.ts | 2 +- .../launch/mobile-terminal-renderer-create.ts | 2 +- .../launch/mobile-terminal-shell-refusal.ts | 2 +- .../launch/mobile-terminal-startup.ts | 2 +- .../launch/runtime-agent-terminal-startup.ts | 4 +- .../launch/terminal-create-deduplication.ts | 4 +- .../terminal/launch/terminal-create-reveal.ts | 2 +- .../launch/terminal-workspace-scope.ts | 2 +- .../layout/terminal-resize-listeners.ts | 2 +- .../terminal-orchestration-authority.ts | 2 +- .../terminal/query/pty-terminal-summary.ts | 2 +- .../terminal-identity-projection-inputs.ts | 2 +- .../query/terminal-identity-read-context.ts | 2 +- .../recovery/resolve-terminal-pane.ts | 2 +- .../managed-workspace-operations.ts | 2 +- .../automation-operations.ts | 2 +- ...act-persisted-terminal-surface-identity.ts | 5 +- .../workspace-process-listing.ts | 6 +- .../structured-session-worktree-teardown.ts | 2 +- .../startup/workspace-activation.ts | 2 +- .../workspace-process-listing-dependencies.ts | 8 +- .../workspaces/workspace-removal-target.ts | 2 +- .../wsl-host-agent-launch-paths.test.ts | 2 +- .../startup/main-process-account-services.ts | 2 +- .../startup/main-process-runtime-service.ts | 2 +- src/main/startup/main-window-core-services.ts | 2 +- .../local-project-runtime-resolution.ts | 2 +- ...ovider-account-observation.test-fixture.ts | 2 +- .../ai-vault-account-stream-test-fixture.ts | 2 +- .../automation-chat-reopen-test-harness.ts | 2 +- ...e-chat-startup-option-pickers.unit.test.ts | 2 +- ...t-session-launch-continuation.unit.test.ts | 2 +- ...ctured-chat-tab-lifetime-cost.unit.test.ts | 8 +- ...red-chat-tab-unavailable-host.unit.test.ts | 2 +- ...permission-report-publication.unit.test.ts | 6 +- ...d-session-workspace-authority.unit.test.ts | 2 +- 357 files changed, 1332 insertions(+), 1320 deletions(-) rename src/main/runtime/{ => agent-session/environment}/runtime-account-controller.ts (89%) rename src/main/runtime/{ => agent-session/environment}/structured-agent-account-home.ts (83%) rename src/main/runtime/{ => agent-session/environment}/structured-agent-shell-environment-catalog.test.ts (94%) rename src/main/runtime/{ => agent-session/environment}/structured-agent-shell-environment.test.ts (98%) rename src/main/runtime/{ => agent-session/environment}/structured-agent-shell-environment.ts (94%) rename src/main/runtime/{ => agent-session/environment}/structured-session-child-env.test-support.ts (100%) rename src/main/runtime/{ => agent-session/environment}/structured-session-child-env.test.ts (96%) rename src/main/runtime/{ => agent-session/environment}/structured-session-child-env.ts (85%) rename src/main/runtime/{ => agent-session/environment}/structured-session-cli-login-shell.live-shell.test.ts (100%) rename src/main/runtime/{ => agent-session/environment}/structured-session-cli-login-shell.test.ts (100%) rename src/main/runtime/{ => agent-session/environment}/structured-session-login-shell-test-harness.ts (93%) rename src/main/runtime/{ => agent-session/installation}/claude-structured-fake-connection-test-fixture.ts (95%) rename src/main/runtime/{ => agent-session/installation}/orca-runtime-structured-agent-registration-seam.test.ts (95%) rename src/main/runtime/{ => agent-session/installation}/structured-agent-runtime-metadata.ts (77%) rename src/main/runtime/{ => agent-session/installation}/structured-agent-runtime-registration-types.ts (80%) rename src/main/runtime/{ => agent-session/installation}/structured-agent-runtime-registrations.ts (79%) rename src/main/runtime/{ => agent-session/installation}/structured-agent-scripted-child.test-fixture.ts (100%) rename src/main/runtime/{ => agent-session/installation}/structured-agent-session-host-assembly.ts (80%) rename src/main/runtime/{ => agent-session/installation}/structured-agent-session-runtime-contract.ts (77%) rename src/main/runtime/{ => agent-session/installation}/structured-claude-piped-test-support.ts (94%) rename src/main/runtime/{ => agent-session/installation}/structured-claude-runtime-adapter.ts (83%) rename src/main/runtime/{ => agent-session/installation}/structured-claude-scripted-runtime-test-support.ts (92%) rename src/main/runtime/{ => agent-session/launch}/__snapshots__/structured-agent-launch-parity.test.ts.snap (100%) rename src/main/runtime/{ => agent-session/launch}/orca-runtime-structured-agent-session-create-intent.test.ts (95%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-availability.test.ts (94%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-availability.ts (85%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-create-support-opencode-rig.test.ts (94%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-install-refresh.test.ts (90%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-launch-composition.test-support.ts (78%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-launch-composition.ts (88%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-launch-parity.test.ts (87%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-launch-support-probe-omp.test.ts (93%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-launch-support-probe.test.ts (93%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-launch-support.test.ts (93%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-launch-support.ts (81%) rename src/main/runtime/{ => agent-session/launch}/structured-agent-new-chat-effort-at-rest.test.ts (84%) rename src/main/runtime/{ => agent-session/lifecycle}/claude-structured-exit-mid-response.test.ts (80%) rename src/main/runtime/{ => agent-session/lifecycle}/claude-structured-failed-start-resume.test.ts (90%) rename src/main/runtime/{ => agent-session/lifecycle}/claude-structured-idle-releases-unknown.test.ts (91%) rename src/main/runtime/{ => agent-session/lifecycle}/claude-structured-resumed-start-failure.test.ts (87%) rename src/main/runtime/{ => agent-session/lifecycle}/claude-structured-retired-saved-model.test.ts (92%) rename src/main/runtime/{ => agent-session/lifecycle}/claude-structured-send-restart-dies-before-dispatch.test.ts (94%) rename src/main/runtime/{ => agent-session/lifecycle}/claude-structured-session-integration.test.ts (93%) rename src/main/runtime/{ => agent-session/lifecycle}/claude-structured-startup-fault-is-not-an-exit.test.ts (88%) rename src/main/runtime/{ => agent-session/lifecycle}/claude-structured-startup-unanswered-control-request.test.ts (94%) rename src/main/runtime/{ => agent-session/lifecycle}/orca-runtime-structured-session-restore.test.ts (95%) rename src/main/runtime/{ => agent-session/lifecycle}/saved-structured-agent-session-restoration.ts (81%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-agent-chat-stop.ts (87%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-agent-cli-writers.test.ts (93%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-agent-cli-writers.ts (81%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-agent-session-claude-kill-evidence.test.ts (93%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-agent-session-codex-goal-stop-settings.test.ts (96%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-agent-session-codex-stop-evidence.test.ts (89%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-agent-session-history-close-race.test.ts (80%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-agent-session-pi-kill-retry.test.ts (89%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-agent-session-tab-authority.test-support.ts (83%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-agent-session-tab-authority.test.ts (94%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-chat-tab-compatibility.test.ts (87%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-claude-pending-rewind.test.ts (81%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-claude-thinking-display-refusal.test.ts (91%) rename src/main/runtime/{ => agent-session/lifecycle}/structured-session-recovery-options.ts (85%) rename src/main/runtime/{ => agent-session/model-catalog}/structured-agent-model-catalog-discovery.test.ts (91%) rename src/main/runtime/{ => agent-session/model-catalog}/structured-agent-model-catalog-discovery.ts (85%) rename src/main/runtime/{ => agent-session/model-catalog}/structured-agent-model-catalog-first-frame.test.ts (79%) rename src/main/runtime/{ => agent-session/model-catalog}/structured-agent-model-catalog-owner.test.ts (89%) rename src/main/runtime/{ => agent-session/model-catalog}/structured-agent-model-catalog-wiring.ts (82%) rename src/main/runtime/{ => agent-session/naming}/structured-agent-session-provider-naming-shutdown.test.ts (84%) rename src/main/runtime/{ => agent-session/naming}/structured-chat-naming-agent-launch.ts (64%) rename src/main/runtime/{ => agent-session/naming}/structured-chat-naming-contract.test.ts (88%) rename src/main/runtime/{ => agent-session/naming}/structured-chat-naming-runtime.test.ts (92%) rename src/main/runtime/{ => agent-session/naming}/structured-chat-naming-runtime.ts (77%) rename src/main/runtime/{ => agent-session/naming}/structured-claude-naming-lifetime.test.ts (96%) rename src/main/runtime/{ => agent-session/naming}/structured-claude-naming-occurrences.test.ts (93%) rename src/main/runtime/{ => agent-session/naming}/structured-claude-naming-test-support.ts (87%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/runtime-legacy-worker-terminal-recovery-types.ts (81%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-coordinator-fake-codex-fixture.ts (92%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-coordinator-mail-rig.test-fixture.ts (89%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-coordinator-mail.test.ts (96%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-coordinator-observation-clock.test-fixture.ts (87%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-dispatch-worker-lifecycle.test.ts (94%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-dispatch-worker-mail.test.ts (91%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-dispatch-worker.test.ts (96%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-mail-custody.test.ts (94%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-worker-helpers.test.ts (96%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-worker-reuse.test.ts (95%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-worker-start-unknown.test.ts (92%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-chat-worker-start.test.ts (95%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-agent-presence.test.ts (93%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-at-rest.test.ts (93%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-authority.test.ts (95%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-authority.ts (92%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-cleared-session.test.ts (95%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-custody.ts (89%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-hook-attestation.test.ts (88%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-identity.test.ts (94%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-identity.ts (90%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-rpc.test-support.ts (76%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-terminal-read.ts (80%) rename src/main/runtime/{ => orchestration/terminal-authority/structured-sessions}/structured-worker-terminal-refusal.ts (94%) rename src/main/runtime/{ => session-construction/agent-session}/orca-runtime-create-agent-session.ts (94%) diff --git a/.github/workflows/macos-updater-tests.yml b/.github/workflows/macos-updater-tests.yml index ca8792f8c2f..5bd8b655052 100644 --- a/.github/workflows/macos-updater-tests.yml +++ b/.github/workflows/macos-updater-tests.yml @@ -15,7 +15,7 @@ on: - 'src/main/window/main-window-state-lifecycle*' - 'src/main/window/dashboard-popout-window*' - 'src/packages/process-host/**' - - 'src/main/runtime/structured-agent-cli-writers*' + - 'src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers*' - 'src/main/providers/macos-tcc-login-shell*' - 'src/shared/process-table-snapshot*' - 'src/shared/darwin-process-table-capture*' @@ -62,4 +62,4 @@ jobs: env: ORCA_MACOS_LOGIN_CENSUS_CI: '1' ORCA_BACKGROUND_LAUNCH: '1' - run: pnpm exec vitest run --config config/vitest.config.ts src/main/runtime/structured-agent-cli-writers.test.ts + run: pnpm exec vitest run --config config/vitest.config.ts src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.test.ts diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 1dc62f29790..025e319e560 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -860,7 +860,7 @@ jobs: src/main/pty/history/terminal-history-fish-session.node-pty.test.ts \ src/main/pty/shell-startup/zsh-scoped-histfile.live-shell.test.ts \ src/main/pty/shell-startup/zsh-startup-hook-user-config-equivalence.live-shell.test.ts \ - src/main/runtime/structured-session-cli-login-shell.live-shell.test.ts \ + src/main/runtime/agent-session/environment/structured-session-cli-login-shell.live-shell.test.ts \ src/renderer/src/components/terminal-pane/fish-color-scheme-child-stdin.node-pty.test.ts \ src/shared/fish-query-reply-child-stdin.node-pty.test.ts \ src/shared/fish-wsl-cwd-report.node-pty.test.ts \ diff --git a/config/flaky-test-pattern-baseline.txt b/config/flaky-test-pattern-baseline.txt index 6d8bd431f81..234d47998a0 100644 --- a/config/flaky-test-pattern-baseline.txt +++ b/config/flaky-test-pattern-baseline.txt @@ -76,7 +76,7 @@ 1 test-no-polling-loop:src/main/pty/process-retirement/windows-live-tree-kill.win32.test.ts 1 test-no-polling-loop:src/main/runtime/orchestration-codex-real-pty.integration.test.ts 1 test-no-polling-loop:src/main/runtime/remote-runtime-request-connection.integration.test.ts -1 test-no-polling-loop:src/main/runtime/structured-agent-shell-environment.test.ts +1 test-no-polling-loop:src/main/runtime/agent-session/environment/structured-agent-shell-environment.test.ts 1 test-no-polling-loop:src/main/skills/skill-process-contention-child.test.ts 1 test-no-polling-loop:src/main/skills/skill-process-contention.integration.test.ts 1 test-no-polling-loop:src/main/ssh/connection/ssh-connection-host-key-store-wiring.test.ts @@ -247,7 +247,7 @@ 1 test-no-real-time-wait:src/main/runtime/agent-session/structured-agent-session-provider-operations-while-starting.test.ts 1 test-no-real-time-wait:src/main/runtime/agent-session/structured-agent-session-runtime-exit.test.ts 1 test-no-real-time-wait:src/main/runtime/agent-session/structured-agent-session-runtime.test.ts -1 test-no-real-time-wait:src/main/runtime/claude-structured-idle-releases-unknown.test.ts +1 test-no-real-time-wait:src/main/runtime/agent-session/lifecycle/claude-structured-idle-releases-unknown.test.ts 1 test-no-real-time-wait:src/main/runtime/terminal/wait/launched-agent-crash-guard.live-shell.test.ts 1 test-no-real-time-wait:src/main/runtime/terminal/wait/launched-agent-shell-handoff-readiness.test.ts 1 test-no-real-time-wait:src/main/runtime/mobile-desktop-relay/mobile-desktop-relay.integration.test.ts @@ -490,7 +490,7 @@ 1 test-no-wall-clock:src/main/runtime/agent-session/structured-agent-session-provider-operations-while-starting.test.ts 1 test-no-wall-clock:src/main/runtime/agent-state-rules/agent-state-rules-engine.test.ts 1 test-no-wall-clock:src/main/runtime/antigravity-readiness-transcripts.test.ts -1 test-no-wall-clock:src/main/runtime/claude-structured-session-integration.test.ts +1 test-no-wall-clock:src/main/runtime/agent-session/lifecycle/claude-structured-session-integration.test.ts 1 test-no-wall-clock:src/main/runtime/mobile-cloud-relay/mobile-relay-e2ee.integration.test.ts 1 test-no-wall-clock:src/main/runtime/mobile-cloud-relay/relay-http-client.test.ts 1 test-no-wall-clock:src/main/runtime/mobile-store-orphaned-temp-cleanup.test.ts @@ -509,7 +509,7 @@ 1 test-no-wall-clock:src/main/runtime/rpc/methods/orchestration/worker/worker-list-pagination.test.ts 1 test-no-wall-clock:src/main/runtime/rpc/methods/pairing.test.ts 1 test-no-wall-clock:src/main/runtime/runtime-mobile-codex-side-title.test.ts -1 test-no-wall-clock:src/main/runtime/structured-agent-launch-support.test.ts +1 test-no-wall-clock:src/main/runtime/agent-session/launch/structured-agent-launch-support.test.ts 1 test-no-wall-clock:src/main/runtime/structured-child-records-switch.test.ts 1 test-no-wall-clock:src/main/runtime/structured-codex-child-work-runtime.test.ts 1 test-no-wall-clock:src/main/runtime/terminal-pane-recovery-liveness-gate.test.ts @@ -1220,7 +1220,7 @@ 4 test-no-real-time-wait:src/main/daemon/sessions/testing/session-shell-recovery.test.ts 4 test-no-real-time-wait:src/main/git/refs/maintenance/repo-ref-maintenance-real-git.test.ts 4 test-no-real-time-wait:src/main/orcad/orcad-stop-request-listener.test.ts -4 test-no-real-time-wait:src/main/runtime/structured-agent-shell-environment.test.ts +4 test-no-real-time-wait:src/main/runtime/agent-session/environment/structured-agent-shell-environment.test.ts 4 test-no-real-time-wait:src/main/runtime/workspaces/removal/worktree-teardown-unstopped-pty.test.ts 4 test-no-real-time-wait:src/main/ssh/connection/ssh-connection-host-key-store-wiring.test.ts 4 test-no-real-time-wait:src/renderer/src/components/activity/activity-auto-mark-read-loop.react185.test.tsx diff --git a/config/reliability-gates.jsonc b/config/reliability-gates.jsonc index da29dd48405..4929de3459d 100644 --- a/config/reliability-gates.jsonc +++ b/config/reliability-gates.jsonc @@ -1240,13 +1240,13 @@ "invariant": "A fresh PTY launch of an agent with a trust preset pre-trusts its workspace root (for Codex, whose lookup keys on its start folder, the folder it starts in, including a floating terminal's) before the provider spawn, in both spawn builders, on the host that runs the agent: main for local and WSL launches, the SSH relay on its own disk for SSH launches. It never waits past the preset's deadline: 20 s for local Codex, the short budget for every other write, local or on the relay. A failed or abandoned write lets the launch proceed untrusted, so the agent asks. Restored or reattached panes, spawns with no launch command and the setting turned off are never trusted; for an agent whose trust on a home covers the folders below it (Claude, Copilot, Qoder), no writer stores a path that is a root, a home or a folder above one, and an unknown home writes nothing; Codex, Cursor and Antigravity, whose trust on a home covers only the home, trust it as they did before; and a WSL launch never writes the Windows home. A structured Codex chat, which has no PTY, pre-trusts its folder the same way when it is created, under the same setting.", "oracle": "A pending local Codex write keeps the dispatcher unresolved past the short budget and settles after the long deadline. A pending Claude write settles at the short deadline with a warning, and a real Claude grant writes the config selected by the launch environment. Actual host-writer artifacts establish ordinary-folder admission and home/root/ancestor/symlink/missing-segment refusal, including an unknown home, with exact Codex worktree, subfolder and home keys. Other retained assertions are named in assertionRefs; removed mock-routing assertions provide no current protection.", "commands": [ - "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/pty/spawn-options-agent-workspace-trust.test.ts src/main/agent-launch/trust/agent-workspace-trust.test.ts src/main/agent-launch/trust/execution-host-workspace-trust.test.ts src/main/runtime/orca-runtime-structured-agent-session-create-intent.test.ts" + "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/pty/spawn-options-agent-workspace-trust.test.ts src/main/agent-launch/trust/agent-workspace-trust.test.ts src/main/agent-launch/trust/execution-host-workspace-trust.test.ts src/main/runtime/agent-session/launch/orca-runtime-structured-agent-session-create-intent.test.ts" ], "testFiles": [ "src/main/ipc/pty/spawn-options-agent-workspace-trust.test.ts", "src/main/agent-launch/trust/agent-workspace-trust.test.ts", "src/main/agent-launch/trust/execution-host-workspace-trust.test.ts", - "src/main/runtime/orca-runtime-structured-agent-session-create-intent.test.ts" + "src/main/runtime/agent-session/launch/orca-runtime-structured-agent-session-create-intent.test.ts" ], "assertionRefs": [ { @@ -1273,7 +1273,7 @@ ] }, { - "file": "src/main/runtime/orca-runtime-structured-agent-session-create-intent.test.ts", + "file": "src/main/runtime/agent-session/launch/orca-runtime-structured-agent-session-create-intent.test.ts", "assertions": [ "pre-trusts the chat folder in the account home launch preparation selected", "writes nothing with the setting off, and still prepares the launch" @@ -1285,7 +1285,7 @@ "date": "2026-09-29", "runner": "local", "platform": "macos", - "currentCommand": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/pty/spawn-options-agent-workspace-trust.test.ts src/main/agent-launch/trust/agent-workspace-trust.test.ts src/main/agent-launch/trust/execution-host-workspace-trust.test.ts src/main/runtime/orca-runtime-structured-agent-session-create-intent.test.ts", + "currentCommand": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/pty/spawn-options-agent-workspace-trust.test.ts src/main/agent-launch/trust/agent-workspace-trust.test.ts src/main/agent-launch/trust/execution-host-workspace-trust.test.ts src/main/runtime/agent-session/launch/orca-runtime-structured-agent-session-create-intent.test.ts", "command": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/pty/spawn-options-agent-workspace-trust.test.ts src/main/agent-workspace-trust-spawn.test.ts src/main/agent-workspace-trust.test.ts src/main/execution-host-workspace-trust.test.ts src/main/runtime/orca-runtime-structured-agent-session-create-intent.test.ts", "result": "passed", "durationSeconds": 4.16, @@ -9344,7 +9344,7 @@ "pnpm exec vitest run --config config/vitest.config.ts tests/e2e/completed-worker-retirement-resume.unit.test.ts --reporter=verbose", "pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/lib/resume-sleeping-agent-session.test.ts src/main/providers/local-pty/local-pty-provider-spawn-session.test.ts src/main/daemon/terminal-host/testing/terminal-host.test.ts src/main/daemon/providers/adapter/testing/daemon-pty-adapter.test.ts src/main/ipc/pty/pty-pane-materialization-race.test.ts src/main/ipc/pty/pty-persisted-incarnation-repair.test.ts src/main/ipc/pty/pty-pane-reservation-settlement.test.ts src/main/runtime/orca-runtime.test.ts src/renderer/src/lib/pane-manager/pane-fit.test.ts src/renderer/src/components/terminal-pane/pty-connection-hidden-replay.test.ts src/renderer/src/components/terminal-pane/remote-runtime-pty-transport-host-session-launch.test.ts", "pnpm exec electron-vite build --mode e2e && SKIP_BUILD=1 pnpm exec playwright test tests/e2e/live-background-terminal-mount-authority.spec.ts --config tests/playwright.config.ts --project electron-headless --workers=1", - "pnpm exec vitest run --config config/vitest.config.ts src/main/runtime/structured-agent-cli-writers.test.ts src/main/runtime/rpc/methods/structured-agent-session-adoption-replay.test.ts src/main/providers/agent-foreground-process-git-bash.win32.test.ts" + "pnpm exec vitest run --config config/vitest.config.ts src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.test.ts src/main/runtime/rpc/methods/structured-agent-session-adoption-replay.test.ts src/main/providers/agent-foreground-process-git-bash.win32.test.ts" ], "testFiles": [ "src/renderer/src/lib/resume-sleeping-agent-session.test.ts", @@ -9360,13 +9360,13 @@ "src/renderer/src/components/terminal-pane/pty-connection-hidden-replay.test.ts", "src/renderer/src/components/terminal-pane/remote-runtime-pty-transport-host-session-launch.test.ts", "tests/e2e/live-background-terminal-mount-authority.spec.ts", - "src/main/runtime/structured-agent-cli-writers.test.ts", + "src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.test.ts", "src/main/runtime/rpc/methods/structured-agent-session-adoption-replay.test.ts", "src/main/providers/agent-foreground-process-git-bash.win32.test.ts" ], "assertionRefs": [ { - "file": "src/main/runtime/structured-agent-cli-writers.test.ts", + "file": "src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.test.ts", "assertions": [ "accepts exact exited or unchanged shell-only proof, never loss of evidence", "inspects the terminal a conversation leaves, whatever its rows now say" diff --git a/config/scripts/ci/sharding/ci-shard-timings.json b/config/scripts/ci/sharding/ci-shard-timings.json index 3c183412b91..417463b6688 100644 --- a/config/scripts/ci/sharding/ci-shard-timings.json +++ b/config/scripts/ci/sharding/ci-shard-timings.json @@ -4754,15 +4754,15 @@ "src/main/runtime/terminal/launch/claude-agent-teams-shim-env.test.ts": 84, "src/main/runtime/claude-dialog-interactive-wait.test.ts": 3975, "src/main/runtime/claude-open-dialog-hold.test.ts": 44, - "src/main/runtime/claude-structured-exit-mid-response.test.ts": 2509, - "src/main/runtime/claude-structured-failed-start-resume.test.ts": 2454, - "src/main/runtime/claude-structured-idle-releases-unknown.test.ts": 2419, - "src/main/runtime/claude-structured-resumed-start-failure.test.ts": 4153, - "src/main/runtime/claude-structured-retired-saved-model.test.ts": 3066, - "src/main/runtime/claude-structured-send-restart-dies-before-dispatch.test.ts": 24656, - "src/main/runtime/claude-structured-session-integration.test.ts": 5405, - "src/main/runtime/claude-structured-startup-fault-is-not-an-exit.test.ts": 2741, - "src/main/runtime/claude-structured-startup-unanswered-control-request.test.ts": 2665, + "src/main/runtime/agent-session/lifecycle/claude-structured-exit-mid-response.test.ts": 2509, + "src/main/runtime/agent-session/lifecycle/claude-structured-failed-start-resume.test.ts": 2454, + "src/main/runtime/agent-session/lifecycle/claude-structured-idle-releases-unknown.test.ts": 2419, + "src/main/runtime/agent-session/lifecycle/claude-structured-resumed-start-failure.test.ts": 4153, + "src/main/runtime/agent-session/lifecycle/claude-structured-retired-saved-model.test.ts": 3066, + "src/main/runtime/agent-session/lifecycle/claude-structured-send-restart-dies-before-dispatch.test.ts": 24656, + "src/main/runtime/agent-session/lifecycle/claude-structured-session-integration.test.ts": 5405, + "src/main/runtime/agent-session/lifecycle/claude-structured-startup-fault-is-not-an-exit.test.ts": 2741, + "src/main/runtime/agent-session/lifecycle/claude-structured-startup-unanswered-control-request.test.ts": 2665, "src/main/runtime/claude-trust-dialog-transcript.test.ts": 5400, "src/main/runtime/claude-worker-start-readiness.test.ts": 4076, "src/main/runtime/cli-terminal-create-host-session-binding.test.ts": 4827, @@ -4955,9 +4955,9 @@ "src/main/runtime/orca-runtime-serve-browser-restore.test.ts": 4469, "src/main/runtime/orca-runtime-session-tabs-path-alias.test.ts": 4827, "src/main/runtime/orca-runtime-skill-recovery.test.ts": 4007, - "src/main/runtime/orca-runtime-structured-agent-registration-seam.test.ts": 4596, - "src/main/runtime/orca-runtime-structured-agent-session-create-intent.test.ts": 4338, - "src/main/runtime/orca-runtime-structured-session-restore.test.ts": 4836, + "src/main/runtime/agent-session/installation/orca-runtime-structured-agent-registration-seam.test.ts": 4596, + "src/main/runtime/agent-session/launch/orca-runtime-structured-agent-session-create-intent.test.ts": 4338, + "src/main/runtime/agent-session/lifecycle/orca-runtime-structured-session-restore.test.ts": 4836, "src/main/runtime/orca-runtime-structured-status-sink-wiring.test.ts": 4286, "src/main/runtime/orca-runtime-tail-wait-memo.test.ts": 178, "src/main/runtime/terminal/surface/orca-runtime-terminal-close-continuity.test.ts": 4439, @@ -5707,53 +5707,53 @@ "src/main/runtime/sidebar-inputs/workspace-rows-producer.test.ts": 4181, "src/main/runtime/sidebar-inputs/workspace-viewers.test.ts": 65, "src/main/runtime/stale-title-display-surfaces.test.ts": 4456, - "src/main/runtime/structured-agent-availability.test.ts": 602, - "src/main/runtime/structured-agent-cli-writers.test.ts": 140, - "src/main/runtime/structured-agent-create-support-opencode-rig.test.ts": 978, - "src/main/runtime/structured-agent-install-refresh.test.ts": 733, - "src/main/runtime/structured-agent-launch-parity.test.ts": 5073, - "src/main/runtime/structured-agent-launch-support-probe-omp.test.ts": 939, - "src/main/runtime/structured-agent-launch-support-probe.test.ts": 954, - "src/main/runtime/structured-agent-launch-support.test.ts": 1103, - "src/main/runtime/structured-agent-model-catalog-discovery.test.ts": 1301, - "src/main/runtime/structured-agent-model-catalog-first-frame.test.ts": 1353, - "src/main/runtime/structured-agent-new-chat-effort-at-rest.test.ts": 1210, - "src/main/runtime/structured-agent-session-claude-kill-evidence.test.ts": 4777, - "src/main/runtime/structured-agent-session-codex-goal-stop-settings.test.ts": 25129, - "src/main/runtime/structured-agent-session-codex-stop-evidence.test.ts": 4415, - "src/main/runtime/structured-agent-session-history-close-race.test.ts": 5020, - "src/main/runtime/structured-agent-session-pi-kill-retry.test.ts": 2663, - "src/main/runtime/structured-agent-session-provider-naming-shutdown.test.ts": 1987, - "src/main/runtime/structured-agent-session-tab-authority.test.ts": 11047, - "src/main/runtime/structured-agent-shell-environment-catalog.test.ts": 720, - "src/main/runtime/structured-agent-shell-environment.test.ts": 760, - "src/main/runtime/structured-chat-coordinator-mail.test.ts": 38220, - "src/main/runtime/structured-chat-dispatch-worker-lifecycle.test.ts": 9312, - "src/main/runtime/structured-chat-dispatch-worker-mail.test.ts": 6125, - "src/main/runtime/structured-chat-dispatch-worker.test.ts": 6981, - "src/main/runtime/structured-chat-naming-contract.test.ts": 876, - "src/main/runtime/structured-chat-naming-runtime.test.ts": 1605, - "src/main/runtime/structured-chat-tab-compatibility.test.ts": 6560, - "src/main/runtime/structured-chat-worker-helpers.test.ts": 8057, - "src/main/runtime/structured-chat-worker-reuse.test.ts": 6372, - "src/main/runtime/structured-chat-worker-start-unknown.test.ts": 7813, - "src/main/runtime/structured-chat-worker-start.test.ts": 6239, + "src/main/runtime/agent-session/launch/structured-agent-availability.test.ts": 602, + "src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.test.ts": 140, + "src/main/runtime/agent-session/launch/structured-agent-create-support-opencode-rig.test.ts": 978, + "src/main/runtime/agent-session/launch/structured-agent-install-refresh.test.ts": 733, + "src/main/runtime/agent-session/launch/structured-agent-launch-parity.test.ts": 5073, + "src/main/runtime/agent-session/launch/structured-agent-launch-support-probe-omp.test.ts": 939, + "src/main/runtime/agent-session/launch/structured-agent-launch-support-probe.test.ts": 954, + "src/main/runtime/agent-session/launch/structured-agent-launch-support.test.ts": 1103, + "src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-discovery.test.ts": 1301, + "src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-first-frame.test.ts": 1353, + "src/main/runtime/agent-session/launch/structured-agent-new-chat-effort-at-rest.test.ts": 1210, + "src/main/runtime/agent-session/lifecycle/structured-agent-session-claude-kill-evidence.test.ts": 4777, + "src/main/runtime/agent-session/lifecycle/structured-agent-session-codex-goal-stop-settings.test.ts": 25129, + "src/main/runtime/agent-session/lifecycle/structured-agent-session-codex-stop-evidence.test.ts": 4415, + "src/main/runtime/agent-session/lifecycle/structured-agent-session-history-close-race.test.ts": 5020, + "src/main/runtime/agent-session/lifecycle/structured-agent-session-pi-kill-retry.test.ts": 2663, + "src/main/runtime/agent-session/naming/structured-agent-session-provider-naming-shutdown.test.ts": 1987, + "src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test.ts": 11047, + "src/main/runtime/agent-session/environment/structured-agent-shell-environment-catalog.test.ts": 720, + "src/main/runtime/agent-session/environment/structured-agent-shell-environment.test.ts": 760, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-mail.test.ts": 38220, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker-lifecycle.test.ts": 9312, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker-mail.test.ts": 6125, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker.test.ts": 6981, + "src/main/runtime/agent-session/naming/structured-chat-naming-contract.test.ts": 876, + "src/main/runtime/agent-session/naming/structured-chat-naming-runtime.test.ts": 1605, + "src/main/runtime/agent-session/lifecycle/structured-chat-tab-compatibility.test.ts": 6560, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-helpers.test.ts": 8057, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-reuse.test.ts": 6372, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-start-unknown.test.ts": 7813, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-start.test.ts": 6239, "src/main/runtime/structured-child-records-switch.test.ts": 3855, - "src/main/runtime/structured-claude-naming-lifetime.test.ts": 3991, - "src/main/runtime/structured-claude-naming-occurrences.test.ts": 3523, - "src/main/runtime/structured-claude-pending-rewind.test.ts": 2212, - "src/main/runtime/structured-claude-thinking-display-refusal.test.ts": 1295, + "src/main/runtime/agent-session/naming/structured-claude-naming-lifetime.test.ts": 3991, + "src/main/runtime/agent-session/naming/structured-claude-naming-occurrences.test.ts": 3523, + "src/main/runtime/agent-session/lifecycle/structured-claude-pending-rewind.test.ts": 2212, + "src/main/runtime/agent-session/lifecycle/structured-claude-thinking-display-refusal.test.ts": 1295, "src/main/runtime/structured-codex-child-work-runtime.test.ts": 5959, "src/main/runtime/structured-conversation-tab-title.test.ts": 35, - "src/main/runtime/structured-session-child-env.test.ts": 294, - "src/main/runtime/structured-session-cli-login-shell.test.ts": 307, + "src/main/runtime/agent-session/environment/structured-session-child-env.test.ts": 294, + "src/main/runtime/agent-session/environment/structured-session-cli-login-shell.test.ts": 307, "src/main/runtime/workspaces/removal/structured-session-worktree-teardown.test.ts": 476, - "src/main/runtime/structured-worker-agent-presence.test.ts": 172, - "src/main/runtime/structured-worker-at-rest.test.ts": 2297, - "src/main/runtime/structured-worker-authority.test.ts": 231, - "src/main/runtime/structured-worker-cleared-session.test.ts": 6104, - "src/main/runtime/structured-worker-hook-attestation.test.ts": 3455, - "src/main/runtime/structured-worker-identity.test.ts": 274, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-agent-presence.test.ts": 172, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-at-rest.test.ts": 2297, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-authority.test.ts": 231, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-cleared-session.test.ts": 6104, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-hook-attestation.test.ts": 3455, + "src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-identity.test.ts": 274, "src/main/runtime/terminal-agent-fenced-keys.test.ts": 74, "src/main/runtime/terminal-agent-interrupt.test.ts": 54, "src/main/runtime/terminal-agent-phone-push.test.ts": 172, diff --git a/config/scripts/ci/unit-selection/dependency-graph/ci-unit-files.mjs b/config/scripts/ci/unit-selection/dependency-graph/ci-unit-files.mjs index 7813aefeec8..8846487808f 100644 --- a/config/scripts/ci/unit-selection/dependency-graph/ci-unit-files.mjs +++ b/config/scripts/ci/unit-selection/dependency-graph/ci-unit-files.mjs @@ -36,7 +36,7 @@ export const UNIT_EXCLUDE = [ 'src/main/pty/history/terminal-history-fish-session.node-pty.test.ts', 'src/main/pty/shell-startup/zsh-scoped-histfile.live-shell.test.ts', 'src/main/pty/shell-startup/zsh-startup-hook-user-config-equivalence.live-shell.test.ts', - 'src/main/runtime/structured-session-cli-login-shell.live-shell.test.ts', + 'src/main/runtime/agent-session/environment/structured-session-cli-login-shell.live-shell.test.ts', 'src/renderer/src/components/terminal-pane/fish-color-scheme-child-stdin.node-pty.test.ts', 'src/shared/fish-query-reply-child-stdin.node-pty.test.ts', 'src/shared/fish-wsl-cwd-report.node-pty.test.ts', diff --git a/config/scripts/test-runtime/sqlite-admission/vitest-node-runtime-files.mjs b/config/scripts/test-runtime/sqlite-admission/vitest-node-runtime-files.mjs index 9f56b86f20d..ba72333373c 100644 --- a/config/scripts/test-runtime/sqlite-admission/vitest-node-runtime-files.mjs +++ b/config/scripts/test-runtime/sqlite-admission/vitest-node-runtime-files.mjs @@ -6,7 +6,7 @@ const NODE_RUNTIME_INCLUDE = [ 'src/main/linear/linear-request-recovery.test.ts', 'src/main/linear/linear-issue-detail-deadline.test.ts', 'tests/e2e/linear-cli-recovery.unit.test.ts', - 'src/main/runtime/structured-agent-cli-writers.test.ts', + 'src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.test.ts', 'config/scripts/test-runtime/sqlite-admission/vitest-sqlite-runtime-boundary.test.ts', 'config/scripts/ci/workflow-contracts/cloud-security-history-workflow.test.mjs', 'config/scripts/skills/recipe-contracts/skill-recipe-shell.test.mjs', diff --git a/config/scripts/typecheck/project-execution/typecheck-project-coverage.test.mjs b/config/scripts/typecheck/project-execution/typecheck-project-coverage.test.mjs index 6ccec85f254..ba23a4fd43e 100644 --- a/config/scripts/typecheck/project-execution/typecheck-project-coverage.test.mjs +++ b/config/scripts/typecheck/project-execution/typecheck-project-coverage.test.mjs @@ -30,7 +30,10 @@ function typedFiles(directory) { describe('typecheck project coverage', () => { it('checks the real CLI coordinator-mail integration in exactly one mixed project', () => { - const file = resolve(root, 'src/main/runtime/structured-chat-coordinator-mail.test.ts') + const file = resolve( + root, + 'src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-mail.test.ts' + ) expect( projects.filter((project) => project.files.has(file)).map((project) => project.config) ).toEqual(['config/tsconfig.test.pane-launch.json']) diff --git a/config/scripts/workflow/source-routing/pr-shell-contract-prefixes.mjs b/config/scripts/workflow/source-routing/pr-shell-contract-prefixes.mjs index 7ba3ccb711f..1733fbe9f51 100644 --- a/config/scripts/workflow/source-routing/pr-shell-contract-prefixes.mjs +++ b/config/scripts/workflow/source-routing/pr-shell-contract-prefixes.mjs @@ -9,9 +9,9 @@ export const SHELL_PREFIXES = [ 'src/main/daemon/pty-subprocess/testing/node-pty-fd-leak.test.ts', 'src/main/providers/local-pty/local-pty-shell-ready', 'src/main/pty/', - 'src/main/runtime/structured-session-cli-login-shell', - 'src/main/runtime/structured-session-login-shell-test-harness', - 'src/main/runtime/structured-session-child-env', + 'src/main/runtime/agent-session/environment/structured-session-cli-login-shell', + 'src/main/runtime/agent-session/environment/structured-session-login-shell-test-harness', + 'src/main/runtime/agent-session/environment/structured-session-child-env', 'src/renderer/src/components/terminal-pane/fish-color-scheme', 'src/shared/fish-', 'src/shared/terminal/pty/ingress/pty-reply-echo-shapes', diff --git a/config/tsconfig.node.json b/config/tsconfig.node.json index 93c52a161a2..cf479b7db9c 100644 --- a/config/tsconfig.node.json +++ b/config/tsconfig.node.json @@ -35,7 +35,9 @@ "../src/wsl-guest/**/*", "../src/types/**/*" ], - "exclude": ["../src/main/runtime/structured-chat-coordinator-mail.test.ts"], + "exclude": [ + "../src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-mail.test.ts" + ], "compilerOptions": { "composite": true, "types": ["electron-vite/node"] diff --git a/config/tsconfig.test.pane-launch.json b/config/tsconfig.test.pane-launch.json index 42181421eae..652ccf50c67 100644 --- a/config/tsconfig.test.pane-launch.json +++ b/config/tsconfig.test.pane-launch.json @@ -1,7 +1,7 @@ { "extends": "./tsconfig.web.json", "include": [ - "../src/main/runtime/structured-chat-coordinator-mail.test.ts", + "../src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-mail.test.ts", "../src/renderer/src/components/task-page/linear/task-page-linear-detail-query.test.tsx", "../src/renderer/src/components/terminal-pane/pty-agent-pane-launch.test.ts", "../src/renderer/src/components/github-item-dialog/load-item-details/work-item-details-target-contract.test.tsx", diff --git a/src/main/acp/acp-account-binding.ts b/src/main/acp/acp-account-binding.ts index cf7fa41e34d..064d3fb84e4 100644 --- a/src/main/acp/acp-account-binding.ts +++ b/src/main/acp/acp-account-binding.ts @@ -4,7 +4,7 @@ import { isLegacyAgentSessionAccountHome, type AgentSessionAccountHome } from '../../shared/agent-session/lifecycle/agent-session-account-home' -import { resolveStructuredEnvAccountHomePath } from '../runtime/structured-agent-account-home' +import { resolveStructuredEnvAccountHomePath } from '../runtime/agent-session/environment/structured-agent-account-home' type AccountPin = { accountHomeVariable: string } | { accountLocatorKind: 'opencode' } diff --git a/src/main/acp/acp-at-rest-commands.ts b/src/main/acp/acp-at-rest-commands.ts index 1223f62cfae..72f4acaa944 100644 --- a/src/main/acp/acp-at-rest-commands.ts +++ b/src/main/acp/acp-at-rest-commands.ts @@ -11,7 +11,7 @@ import type { AgentCliVersionReader } from '../agent-launch/preflight/agent-cli- import type { ProviderProcessLaunch } from '../provider-process/provider-process-launch' import { ORCA_AGENT_SESSION_SPAWN_TOKEN_ENV } from '../../shared/agent-session/lifecycle/agent-session-caller-env' import { ORCA_AGENT_SESSION_CALLER_ENV_KEYS } from '../ipc/pty/host-env/spawn-env-keys' -import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/structured-session-child-env' +import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/agent-session/environment/structured-session-child-env' import { LEGACY_NATIVE_CHAT_VISUALS_DIR_ENV, NATIVE_CHAT_SCRATCH_DIR_ENV diff --git a/src/main/acp/acp-scripted-child.test-fixture.ts b/src/main/acp/acp-scripted-child.test-fixture.ts index 6c324b61094..eea40f4f5fa 100644 --- a/src/main/acp/acp-scripted-child.test-fixture.ts +++ b/src/main/acp/acp-scripted-child.test-fixture.ts @@ -2,7 +2,7 @@ import { z } from 'zod' import type { ScriptedAgentChild, ScriptedAgentChildFactory -} from '../runtime/structured-agent-scripted-child.test-fixture' +} from '../runtime/agent-session/installation/structured-agent-scripted-child.test-fixture' import { FakeAcpChild, GROK_CONFIG_OPTIONS } from './acp-structured-adapter.test-support' import type { FakeFrame } from './acp-scripted-agent.test-support' import type { AcpLaunchSpec } from './acp-launch-specs' diff --git a/src/main/acp/acp-structured-host-restore-failed.test.ts b/src/main/acp/acp-structured-host-restore-failed.test.ts index 772caeb3b03..edef9b66fbe 100644 --- a/src/main/acp/acp-structured-host-restore-failed.test.ts +++ b/src/main/acp/acp-structured-host-restore-failed.test.ts @@ -11,7 +11,7 @@ import { GROK, GROK_CONFIG_OPTIONS, PROVIDER_SESSION } from './acp-structured-ad import { ACP_HANDLE_TRANSPORT } from './acp-structured-agent-definitions' import { restoreJournal } from '../native-chat/agent-session-journal/journal-open' import { AgentSessionJournal } from '../native-chat/agent-session-journal/journal-store' -import { createAcpStructuredLaunchResolver } from '../runtime/structured-agent-launch-composition.test-support' +import { createAcpStructuredLaunchResolver } from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { attachParams, openHostRig, diff --git a/src/main/acp/acp-structured-launch-resolution-opencode.test.ts b/src/main/acp/acp-structured-launch-resolution-opencode.test.ts index ac85e298e98..0dac594acc8 100644 --- a/src/main/acp/acp-structured-launch-resolution-opencode.test.ts +++ b/src/main/acp/acp-structured-launch-resolution-opencode.test.ts @@ -1,4 +1,4 @@ -import { createAcpStructuredLaunchResolver } from '../runtime/structured-agent-launch-composition.test-support' +import { createAcpStructuredLaunchResolver } from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { describe, expect, it, vi } from 'vitest' import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' import { agentSessionRecordFixture } from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' @@ -8,7 +8,7 @@ import { createProviderSpawnSpec } from '../provider-process/provider-process-su import { openCodeAcpAccountBinding } from '../opencode/opencode-structured-account-home' import { scrubOpenCodeAcpEnvironment } from '../opencode/opencode-acp-environment' import { acpLaunchSpecFor, type AcpLaunchSpec } from './acp-launch-specs' -import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/structured-session-child-env' +import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/agent-session/environment/structured-session-child-env' import { AgentCliInstallationError } from '../native-chat/agent-cli-installation-error' const PROFILE = '123e4567-e89b-42d3-a456-426614174000' diff --git a/src/main/acp/acp-structured-launch-resolution.test.ts b/src/main/acp/acp-structured-launch-resolution.test.ts index bbcea748611..31a6e66ec38 100644 --- a/src/main/acp/acp-structured-launch-resolution.test.ts +++ b/src/main/acp/acp-structured-launch-resolution.test.ts @@ -1,4 +1,4 @@ -import { createAcpStructuredLaunchResolver } from '../runtime/structured-agent-launch-composition.test-support' +import { createAcpStructuredLaunchResolver } from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { mkdtempSync, rmSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' @@ -31,7 +31,7 @@ import { } from '../native-chat/agent-session-timeline/provider-timeline-identity' import { createProviderSpawnSpec } from '../provider-process/provider-process-supervisor' import { acpLaunchSpecFor } from './acp-launch-specs' -import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/structured-session-child-env' +import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/agent-session/environment/structured-session-child-env' import { acpSessionNotRestoredItem } from './acp-session-reopen-failure' const GROK = acpLaunchSpecFor('grok')! diff --git a/src/main/acp/acp-structured-launch-resolution.ts b/src/main/acp/acp-structured-launch-resolution.ts index 3efc91df43a..97ddfbd131d 100644 --- a/src/main/acp/acp-structured-launch-resolution.ts +++ b/src/main/acp/acp-structured-launch-resolution.ts @@ -36,8 +36,8 @@ import { providerTimelineKeyPart, spelledProviderTimelineItemKey } from '../native-chat/agent-session-timeline/provider-timeline-identity' -import type { StructuredAgentLaunchPartResolver } from '../runtime/structured-agent-launch-composition' -import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/structured-session-child-env' +import type { StructuredAgentLaunchPartResolver } from '../runtime/agent-session/launch/structured-agent-launch-composition' +import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/agent-session/environment/structured-session-child-env' import { LEGACY_NATIVE_CHAT_VISUALS_DIR_ENV, NATIVE_CHAT_SCRATCH_DIR_ENV, diff --git a/src/main/acp/acp-structured-managed-runtime.test.ts b/src/main/acp/acp-structured-managed-runtime.test.ts index b70f472c8c3..02014a72465 100644 --- a/src/main/acp/acp-structured-managed-runtime.test.ts +++ b/src/main/acp/acp-structured-managed-runtime.test.ts @@ -8,7 +8,7 @@ import { RUNTIME_RELEASE_RECEIPT, writeRuntimeReleaseReceipt } from '../node-runtime/managed-runtime-release' -import { createAcpStructuredLaunchResolver } from '../runtime/structured-agent-launch-composition.test-support' +import { createAcpStructuredLaunchResolver } from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { GROK, openAcpAdapterRig } from './acp-structured-adapter.test-support' afterEach(() => closeProviderTimelineRigs()) diff --git a/src/main/acp/acp-structured-session-adapter.test.ts b/src/main/acp/acp-structured-session-adapter.test.ts index 57a30251573..d4ace0da6c4 100644 --- a/src/main/acp/acp-structured-session-adapter.test.ts +++ b/src/main/acp/acp-structured-session-adapter.test.ts @@ -24,7 +24,7 @@ import { type AcpAdapterRig } from './acp-structured-adapter.test-support' import type { AgentJournalMessageItem } from '../../shared/agent-session/journal/agent-session-journal-types' -import { createAcpStructuredLaunchResolver } from '../runtime/structured-agent-launch-composition.test-support' +import { createAcpStructuredLaunchResolver } from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { agentSessionRecordFixture } from '../native-chat/agent-session-record-test-fixture' afterEach(async () => { diff --git a/src/main/acp/acp-text-task.test.ts b/src/main/acp/acp-text-task.test.ts index a36e886db74..3a77b8b1612 100644 --- a/src/main/acp/acp-text-task.test.ts +++ b/src/main/acp/acp-text-task.test.ts @@ -9,7 +9,7 @@ import { acpStructuredAgentDefinition } from './acp-structured-agent-definitions import { StructuredAgentRegistry } from '../native-chat/agent-session-wire/structured-agent-registry' import { StructuredAgentSessionAdapterRouter } from '../native-chat/agent-session-wire/structured-agent-session-adapter-router' import type { StructuredAgentSessionAdapter } from '../native-chat/agent-session-wire/structured-agent-session-adapter' -import { structuredChatNamingDeps } from '../runtime/structured-chat-naming-runtime' +import { structuredChatNamingDeps } from '../runtime/agent-session/naming/structured-chat-naming-runtime' import { agentSessionRecordFixture } from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' import { getDefaultSettings } from '../../shared/constants' import { FakeAcpChild } from './acp-scripted-connection.test-fixture' diff --git a/src/main/acp/acp-text-task.ts b/src/main/acp/acp-text-task.ts index 2f5c10d8099..3f3a873ca55 100644 --- a/src/main/acp/acp-text-task.ts +++ b/src/main/acp/acp-text-task.ts @@ -8,7 +8,7 @@ import type { StructuredAgentSessionAdapter } from '../native-chat/agent-session import { ProviderAcquisitionStarts } from '../provider-process/provider-acquisition-starts' import { removeAntigravitySignInSessionFiles } from '../antigravity/antigravity-sign-in-session-files' import { SOURCE_CONTROL_GENERATION_TIMEOUT_MS } from '../text-generation/source-control-generation-limits' -import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/structured-session-child-env' +import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/agent-session/environment/structured-session-child-env' import { resolveAcpLaunchInvocation } from './acp-structured-launch-resolution' import { prepareAcpLaunch } from './acp-structured-launch-preparation' import { acpPrivateTempConnect } from './acp-private-temp' diff --git a/src/main/agent-launch/agent-launch-mode.ts b/src/main/agent-launch/agent-launch-mode.ts index adcd172c5ad..fe877924c25 100644 --- a/src/main/agent-launch/agent-launch-mode.ts +++ b/src/main/agent-launch/agent-launch-mode.ts @@ -6,7 +6,7 @@ import type { AgentLaunchModeReceipt } from '../../shared/agent-launch/contracts/agent-launch-intent' import { RUNTIME_CAPABILITIES } from '../../shared/protocol-version' -import { STRUCTURED_AGENT_RUNTIME_METADATA } from '../runtime/structured-agent-runtime-metadata' +import { STRUCTURED_AGENT_RUNTIME_METADATA } from '../runtime/agent-session/installation/structured-agent-runtime-metadata' import { nativeChatPreferenceFor, resolveStructuredNativeChatSupport, diff --git a/src/main/ai-vault/structured-chat-cli-fork.test.ts b/src/main/ai-vault/structured-chat-cli-fork.test.ts index 67ab1f3fb82..c8862d589ec 100644 --- a/src/main/ai-vault/structured-chat-cli-fork.test.ts +++ b/src/main/ai-vault/structured-chat-cli-fork.test.ts @@ -9,7 +9,7 @@ import type { AgentJournalSnapshot } from '../../shared/agent-session/journal/ag import { agentJournalSubmissionKey } from '../../shared/agent-session/journal/agent-session-journal-item-key' import { setStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' import { prepareStructuredChatCliFork } from './structured-chat-cli-fork' -import { structuredAgentRuntimeRegistration } from '../runtime/structured-agent-runtime-registrations' +import { structuredAgentRuntimeRegistration } from '../runtime/agent-session/installation/structured-agent-runtime-registrations' import { prepareLegacySharedCodexSessionResume } from '../codex/history/resume/codex-legacy-session-resume' import { AiVaultPrepareSessionResumeParams } from '../../shared/rpc-contract/ai-vault-params' diff --git a/src/main/ai-vault/structured-chat-cli-fork.ts b/src/main/ai-vault/structured-chat-cli-fork.ts index 2379447e32a..b170e3c24c5 100644 --- a/src/main/ai-vault/structured-chat-cli-fork.ts +++ b/src/main/ai-vault/structured-chat-cli-fork.ts @@ -17,7 +17,7 @@ import type { import { LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host' import { isWslUncPath } from '../../shared/wsl-paths' import { getStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' -import { structuredAgentRuntimeMetadata } from '../runtime/structured-agent-runtime-metadata' +import { structuredAgentRuntimeMetadata } from '../runtime/agent-session/installation/structured-agent-runtime-metadata' import { readPiSessionHeader } from '../pi/rpc-launch-resolution' import { copyStructuredChatRecordConversation } from './structured-chat-conversation-copy' import { isAiVaultAgent } from './session-list-result-validation' diff --git a/src/main/ai-vault/structured-session-ownership-acp-and-pi.test.ts b/src/main/ai-vault/structured-session-ownership-acp-and-pi.test.ts index 679a538270e..bb4b66e1505 100644 --- a/src/main/ai-vault/structured-session-ownership-acp-and-pi.test.ts +++ b/src/main/ai-vault/structured-session-ownership-acp-and-pi.test.ts @@ -11,7 +11,7 @@ import { projectStructuredAiVaultSessions } from './structured-session-ownership' import { installOwnership, listResult } from './structured-session-ownership.test-support' -import { STRUCTURED_AGENT_RUNTIME_REGISTRATIONS } from '../runtime/structured-agent-runtime-registrations' +import { STRUCTURED_AGENT_RUNTIME_REGISTRATIONS } from '../runtime/agent-session/installation/structured-agent-runtime-registrations' const OPENCODE_ID = 'ses_2f9aB3cD4eF5gH6iJ7kL8mN9oP' const GROK_ID = '019fd600-1a2b-7c3d-8e4f-5a6b7c8d9e0f' diff --git a/src/main/ai-vault/structured-session-ownership.ts b/src/main/ai-vault/structured-session-ownership.ts index 62c04e9f456..577eb9faf1b 100644 --- a/src/main/ai-vault/structured-session-ownership.ts +++ b/src/main/ai-vault/structured-session-ownership.ts @@ -33,8 +33,8 @@ import { type StructuredAgentResumeInvocation, type StructuredAgentSessionHistory } from '../native-chat/structured-agent-cli-conversations' -import { STRUCTURED_AGENT_RUNTIME_METADATA } from '../runtime/structured-agent-runtime-metadata' -import type { StructuredAgentRuntimeMetadata } from '../runtime/structured-agent-runtime-registration-types' +import { STRUCTURED_AGENT_RUNTIME_METADATA } from '../runtime/agent-session/installation/structured-agent-runtime-metadata' +import type { StructuredAgentRuntimeMetadata } from '../runtime/agent-session/installation/structured-agent-runtime-registration-types' import { commandName, commandProgramIndex, shellCommands } from './shell-command-words' /** Hide chat-owned rows from clients unable to open that agent’s chat. */ diff --git a/src/main/antigravity/antigravity-chat-sign-in.test.ts b/src/main/antigravity/antigravity-chat-sign-in.test.ts index 80905101f6f..3b93fe2d747 100644 --- a/src/main/antigravity/antigravity-chat-sign-in.test.ts +++ b/src/main/antigravity/antigravity-chat-sign-in.test.ts @@ -1,5 +1,5 @@ -import { structuredAgentHostLaunchSources } from '../runtime/structured-agent-launch-support' -import { captureHostShellEnvironment } from '../runtime/structured-agent-shell-environment' +import { structuredAgentHostLaunchSources } from '../runtime/agent-session/launch/structured-agent-launch-support' +import { captureHostShellEnvironment } from '../runtime/agent-session/environment/structured-agent-shell-environment' import * as profileStorage from '../orca-profiles/profile-storage-paths' // The chat sign-in against a scripted Antigravity server. diff --git a/src/main/antigravity/antigravity-chat-sign-in.ts b/src/main/antigravity/antigravity-chat-sign-in.ts index 38dcc7c7a8f..f1d7d7ba3a0 100644 --- a/src/main/antigravity/antigravity-chat-sign-in.ts +++ b/src/main/antigravity/antigravity-chat-sign-in.ts @@ -17,7 +17,7 @@ import { prepareAcpLaunch } from '../acp/acp-structured-launch-preparation' import { AcpAgentError, AcpConnectionClosedError } from '../acp/acp-errors' import { captureSignInModelPublisher } from './antigravity-sign-in-models' import { isAgentSessionPreSpawnError } from '../native-chat/agent-session-wire/structured-agent-session-adapter' -import type { structuredAgentHostLaunchSources } from '../runtime/structured-agent-launch-support' +import type { structuredAgentHostLaunchSources } from '../runtime/agent-session/launch/structured-agent-launch-support' import { AntigravitySignInCloseUnprovenError, AntigravitySignInSentence, diff --git a/src/main/claude-accounts/claude-launch-routing.test.ts b/src/main/claude-accounts/claude-launch-routing.test.ts index b428f3af44a..48bf3bf29c7 100644 --- a/src/main/claude-accounts/claude-launch-routing.test.ts +++ b/src/main/claude-accounts/claude-launch-routing.test.ts @@ -5,7 +5,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import type { ClaudeManagedAccount } from '../../shared/managed-account-types' import { resolveClaudeStructuredInvocation } from '../claude/structured/launch/claude-structured-launch-resolution' import { resolveClaudeStructuredLaunchHome } from '../claude/structured/launch/claude-structured-launch-home' -import { resolveStructuredClaudeAccountHomePath } from '../runtime/structured-agent-account-home' +import { resolveStructuredClaudeAccountHomePath } from '../runtime/agent-session/environment/structured-agent-account-home' import { installClaudeProfileRouter, withClaudeProfileTerminalEnv diff --git a/src/main/claude/claude-agent-sdk-contract-pins.test.ts b/src/main/claude/claude-agent-sdk-contract-pins.test.ts index 16112dc0fcf..595f86eea04 100644 --- a/src/main/claude/claude-agent-sdk-contract-pins.test.ts +++ b/src/main/claude/claude-agent-sdk-contract-pins.test.ts @@ -1,5 +1,5 @@ import { createClaudeCodeProcessSpawn } from './claude-agent-sdk-process-spawn' -import { createClaudeStructuredLaunchResolver } from '../runtime/structured-agent-launch-composition.test-support' +import { createClaudeStructuredLaunchResolver } from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' diff --git a/src/main/claude/claude-launch-account.ts b/src/main/claude/claude-launch-account.ts index 6609d40c1a5..0a991865718 100644 --- a/src/main/claude/claude-launch-account.ts +++ b/src/main/claude/claude-launch-account.ts @@ -1,7 +1,7 @@ import type { ClaudeAccountRecipe } from '../../shared/agent-session/lifecycle/agent-session-acquired-account' import type { ClaudeProfileRouter } from '../claude-accounts/claude-profile-router' import { applyClaudeEnvPatch } from '../claude-accounts/environment' -import { resolveStructuredClaudeAccountHomePath } from '../runtime/structured-agent-account-home' +import { resolveStructuredClaudeAccountHomePath } from '../runtime/agent-session/environment/structured-agent-account-home' /** The account a launch runs under is the current selection; the receipt records what it used. */ export async function prepareClaudeLaunchAccount( diff --git a/src/main/claude/claude-naming-invocation.test.ts b/src/main/claude/claude-naming-invocation.test.ts index c17bf2f7f22..ed1e8f66cb2 100644 --- a/src/main/claude/claude-naming-invocation.test.ts +++ b/src/main/claude/claude-naming-invocation.test.ts @@ -5,7 +5,7 @@ import { expect, it, vi } from 'vitest' import { ClaudeProfileRouter } from '../claude-accounts/claude-profile-router' import * as installedRouter from '../claude-accounts/claude-profile-installed-router' import { agentSessionRecordFixture } from '../native-chat/agent-session-record-test-fixture' -import type { StructuredAgentLaunchSources } from '../runtime/structured-agent-launch-composition' +import type { StructuredAgentLaunchSources } from '../runtime/agent-session/launch/structured-agent-launch-composition' import { claudeNamingInvocation } from './claude-naming-invocation' it('captures configured command, overlay and pure selected-account policy before awaited input resolution', async ({ diff --git a/src/main/claude/claude-naming-invocation.ts b/src/main/claude/claude-naming-invocation.ts index 2a8a8a246e5..c41e53f8e6d 100644 --- a/src/main/claude/claude-naming-invocation.ts +++ b/src/main/claude/claude-naming-invocation.ts @@ -3,7 +3,7 @@ import { requireLegacyAgentSessionAccountHome } from '../../shared/agent-session import { getClaudeProfileRouter } from '../claude-accounts/claude-profile-installed-router' import { applyClaudeEnvPatch } from '../claude-accounts/environment' import { agentSessionPinnedLaunchDirectory } from '../runtime/agent-session/records/agent-session-record-launch-directory' -import type { StructuredAgentLaunchSources } from '../runtime/structured-agent-launch-composition' +import type { StructuredAgentLaunchSources } from '../runtime/agent-session/launch/structured-agent-launch-composition' import { resolveStructuredAgentCommand } from '../native-chat/structured-agent-command-resolution' import { claudeChildEnv, diff --git a/src/main/claude/claude-rewind-transcript.test.ts b/src/main/claude/claude-rewind-transcript.test.ts index f83c0f6c406..e8012c8ca71 100644 --- a/src/main/claude/claude-rewind-transcript.test.ts +++ b/src/main/claude/claude-rewind-transcript.test.ts @@ -6,7 +6,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { claudeProviderHandle } from '../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' import { AgentSessionRewindRecordSchema } from '../../shared/agent-session/lifecycle/agent-session-rewind' import { agentSessionRecordFixture } from '../native-chat/agent-session-record-test-fixture' -import { createClaudeStructuredLaunchResolver } from '../runtime/structured-agent-launch-composition.test-support' +import { createClaudeStructuredLaunchResolver } from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { resolveClaudeRewindFork } from './claude-rewind-fork' import { claudeSessionIdForRewind } from './structured/claude-structured-session-id' diff --git a/src/main/claude/claude-scripted-child.test-fixture.ts b/src/main/claude/claude-scripted-child.test-fixture.ts index 7974d0c3a9c..9672c1f17ba 100644 --- a/src/main/claude/claude-scripted-child.test-fixture.ts +++ b/src/main/claude/claude-scripted-child.test-fixture.ts @@ -11,8 +11,8 @@ import type { import type { ScriptedAgentChild, ScriptedAgentChildFactory -} from '../runtime/structured-agent-scripted-child.test-fixture' -import { scriptedClaudeExitError } from '../runtime/structured-claude-scripted-runtime-test-support' +} from '../runtime/agent-session/installation/structured-agent-scripted-child.test-fixture' +import { scriptedClaudeExitError } from '../runtime/agent-session/installation/structured-claude-scripted-runtime-test-support' import { result, says } from './claude-captured-frame-builders.test-fixture' type Spawned = { diff --git a/src/main/claude/structured/claude-structured-real-cli-visuals.test.ts b/src/main/claude/structured/claude-structured-real-cli-visuals.test.ts index c9cc961fe56..92b8d52201f 100644 --- a/src/main/claude/structured/claude-structured-real-cli-visuals.test.ts +++ b/src/main/claude/structured/claude-structured-real-cli-visuals.test.ts @@ -1,4 +1,4 @@ -import { createClaudeStructuredLaunchResolver } from '../../runtime/structured-agent-launch-composition.test-support' +import { createClaudeStructuredLaunchResolver } from '../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { mkdir, mkdtemp, rm } from 'node:fs/promises' import { homedir, tmpdir } from 'node:os' import { join } from 'node:path' diff --git a/src/main/claude/structured/claude-structured-session-state.ts b/src/main/claude/structured/claude-structured-session-state.ts index 36b32556b02..c1cca9b588b 100644 --- a/src/main/claude/structured/claude-structured-session-state.ts +++ b/src/main/claude/structured/claude-structured-session-state.ts @@ -12,7 +12,7 @@ import type { openClaudeStreamJsonConnection } from '../claude-stream-json-connection' import type { ClaudeStructuredLaunch } from './launch/claude-structured-launch-resolution' -import type { StructuredLaunchRequest } from '../../runtime/structured-agent-launch-composition' +import type { StructuredLaunchRequest } from '../../runtime/agent-session/launch/structured-agent-launch-composition' import type { ClaudeJournalTranslator } from '../claude-journal-translator-contract' import type { ClaudePendingPrompt, ClaudePromptRegistry } from '../claude-prompt-registry' import { cancelProcessAcquisition } from '@orca/process-host/cancel-process-acquisition' diff --git a/src/main/claude/structured/claude-structured-turn-resume-point.test.ts b/src/main/claude/structured/claude-structured-turn-resume-point.test.ts index 44ca636447e..17eac340956 100644 --- a/src/main/claude/structured/claude-structured-turn-resume-point.test.ts +++ b/src/main/claude/structured/claude-structured-turn-resume-point.test.ts @@ -4,7 +4,7 @@ import { join } from 'node:path' import { createTrackedJournalOpener } from '../../native-chat/agent-session-journal/journal-host-database-test-support' import { createDeferredStructuredAgentSessionEventSink } from '../../native-chat/agent-session-wire/structured-agent-session-event-sink' import { testEventSinkLogging } from '../../native-chat/agent-session-wire/structured-agent-session-logger-test-support' -import { createClaudeStructuredLaunchResolver } from '../../runtime/structured-agent-launch-composition.test-support' +import { createClaudeStructuredLaunchResolver } from '../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { afterEach, describe, expect, it, vi } from 'vitest' import { agentSessionLeaseFixture, diff --git a/src/main/claude/structured/launch/claude-structured-launch-account-routing.test.ts b/src/main/claude/structured/launch/claude-structured-launch-account-routing.test.ts index 08c3d7db08a..dcd26ac6baa 100644 --- a/src/main/claude/structured/launch/claude-structured-launch-account-routing.test.ts +++ b/src/main/claude/structured/launch/claude-structured-launch-account-routing.test.ts @@ -1,4 +1,4 @@ -import { createClaudeStructuredLaunchResolver } from '../../../runtime/structured-agent-launch-composition.test-support' +import { createClaudeStructuredLaunchResolver } from '../../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { join, resolve as resolvePath } from 'node:path' @@ -15,8 +15,8 @@ import { type ClaudeProfileRouterSettings } from '../../../claude-accounts/claude-profile-router' import { installClaudeProfileRouter } from '../../../claude-accounts/claude-profile-installed-router' -import { resolveStructuredClaudeAccountHomePath } from '../../../runtime/structured-agent-account-home' -import { structuredAgentRuntimeMetadata } from '../../../runtime/structured-agent-runtime-metadata' +import { resolveStructuredClaudeAccountHomePath } from '../../../runtime/agent-session/environment/structured-agent-account-home' +import { structuredAgentRuntimeMetadata } from '../../../runtime/agent-session/installation/structured-agent-runtime-metadata' const roots: string[] = [] afterEach(() => { diff --git a/src/main/claude/structured/launch/claude-structured-launch-resolution.test.ts b/src/main/claude/structured/launch/claude-structured-launch-resolution.test.ts index db8b287cb4f..87d631d1edd 100644 --- a/src/main/claude/structured/launch/claude-structured-launch-resolution.test.ts +++ b/src/main/claude/structured/launch/claude-structured-launch-resolution.test.ts @@ -1,5 +1,5 @@ import { agentSessionRecordFixture } from '../../../native-chat/agent-session-record-test-fixture' -import { createClaudeStructuredLaunchResolver } from '../../../runtime/structured-agent-launch-composition.test-support' +import { createClaudeStructuredLaunchResolver } from '../../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { chmodSync, mkdtempSync, mkdirSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { delimiter, dirname, join } from 'node:path' diff --git a/src/main/claude/structured/launch/claude-structured-launch-resolution.ts b/src/main/claude/structured/launch/claude-structured-launch-resolution.ts index 2437475b499..f3cf0b8b74f 100644 --- a/src/main/claude/structured/launch/claude-structured-launch-resolution.ts +++ b/src/main/claude/structured/launch/claude-structured-launch-resolution.ts @@ -30,7 +30,7 @@ import type { ClaudeCliFlagCheck, ClaudeCliFlagSupport } from '../../claude-cli- import { resolveClaudeLaunchFlags } from './claude-structured-launch-flags' import { withNativeChatVisualsEnv } from '../../../native-chat/native-chat-visuals-delivery' import { claudeLaunchResumesTranscript } from './claude-structured-launch-home' -import type { StructuredAgentLaunchPartResolver } from '../../../runtime/structured-agent-launch-composition' +import type { StructuredAgentLaunchPartResolver } from '../../../runtime/agent-session/launch/structured-agent-launch-composition' import { claudeSessionIdForOrcaSession } from '../claude-structured-session-id' import { pendingAgentSessionRewindFork, diff --git a/src/main/claude/structured/launch/claude-structured-launch-visuals.test.ts b/src/main/claude/structured/launch/claude-structured-launch-visuals.test.ts index c9d98c36b95..b94903365ed 100644 --- a/src/main/claude/structured/launch/claude-structured-launch-visuals.test.ts +++ b/src/main/claude/structured/launch/claude-structured-launch-visuals.test.ts @@ -1,4 +1,4 @@ -import { createClaudeStructuredLaunchResolver } from '../../../runtime/structured-agent-launch-composition.test-support' +import { createClaudeStructuredLaunchResolver } from '../../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { describe, expect, it, vi } from 'vitest' import type { AgentSessionJournalIdentity } from '../../../../shared/agent-session/journal/agent-session-journal-identity' import { agentSessionRecordFixture } from '../../../native-chat/agent-session-record-test-fixture' diff --git a/src/main/codex-accounts/runtime-home-catalog-account-key.test.ts b/src/main/codex-accounts/runtime-home-catalog-account-key.test.ts index 8cb7cc2b8d1..ecedd2cb87b 100644 --- a/src/main/codex-accounts/runtime-home-catalog-account-key.test.ts +++ b/src/main/codex-accounts/runtime-home-catalog-account-key.test.ts @@ -50,7 +50,7 @@ async function wireCodexAccountKey(settings: ReturnType) const { mainProcessState } = await import('../startup/main-process-state') const { codexStructuredLaunchHomeResolvers } = await import('../startup/codex-launch-preparation') const { structuredAgentRuntimeRegistration } = - await import('../runtime/structured-agent-runtime-registrations') + await import('../runtime/agent-session/installation/structured-agent-runtime-registrations') const { agentModelCatalogFingerprint } = await import('../native-chat/agent-model-catalog/agent-model-catalog-fingerprint') // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the harness store implements the settings read/update surface the service uses. diff --git a/src/main/codex/structured/launch/codex-cli-installation-error.ts b/src/main/codex/structured/launch/codex-cli-installation-error.ts index d864d60e73d..f462c1454cd 100644 --- a/src/main/codex/structured/launch/codex-cli-installation-error.ts +++ b/src/main/codex/structured/launch/codex-cli-installation-error.ts @@ -8,7 +8,7 @@ import { type AgentCliVersionReader } from '../../../agent-launch/preflight/agent-cli-version-probe' import { AgentCliInstallationError } from '../../../native-chat/agent-cli-installation-error' -import type { StructuredAgentLaunchResolver } from '../../../runtime/structured-agent-launch-composition' +import type { StructuredAgentLaunchResolver } from '../../../runtime/agent-session/launch/structured-agent-launch-composition' import { resolveProviderChildEnv, type ProviderProcessLaunch diff --git a/src/main/codex/structured/launch/codex-minimum-version.test.ts b/src/main/codex/structured/launch/codex-minimum-version.test.ts index d9f8dae576b..3c6aa9837f9 100644 --- a/src/main/codex/structured/launch/codex-minimum-version.test.ts +++ b/src/main/codex/structured/launch/codex-minimum-version.test.ts @@ -16,7 +16,7 @@ import { requireSupportedCodexCli, withSupportedCodexCli } from './codex-cli-ins import { createCodexStructuredLaunchResolver, TEST_SPAWN_TOKEN -} from '../../../runtime/structured-agent-launch-composition.test-support' +} from '../../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { resolveProviderChildEnv } from '../../../provider-process/provider-process-launch' import { identityFor } from '../session-lifecycle/codex-structured-session-adapter-fixture' import { openCodexAppServerConnection } from '../../app-server/codex-app-server-connection' diff --git a/src/main/codex/structured/launch/codex-structured-child-environment.test.ts b/src/main/codex/structured/launch/codex-structured-child-environment.test.ts index 7a4a6057611..ffe13378183 100644 --- a/src/main/codex/structured/launch/codex-structured-child-environment.test.ts +++ b/src/main/codex/structured/launch/codex-structured-child-environment.test.ts @@ -4,8 +4,8 @@ import { tmpdir } from 'node:os' import { delimiter, join } from 'node:path' import { openCodexAppServerConnection } from '../../app-server/codex-app-server-connection' import { ORCA_AGENT_SESSION_SPAWN_TOKEN_ENV } from '../../../../shared/agent-session/lifecycle/agent-session-caller-env' -import { sealStructuredSessionChild } from '../../../runtime/structured-session-child-env' -import { createCodexStructuredLaunchResolver } from '../../../runtime/structured-agent-launch-composition.test-support' +import { sealStructuredSessionChild } from '../../../runtime/agent-session/environment/structured-session-child-env' +import { createCodexStructuredLaunchResolver } from '../../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { agentSessionRecordFixture } from '../../../native-chat/agent-session-record-test-fixture' import type { AgentSessionJournalIdentity } from '../../../../shared/agent-session/journal/agent-session-journal-identity' import { @@ -13,7 +13,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from '../../../runtime/structured-worker-identity' +} from '../../../runtime/orchestration/terminal-authority/structured-sessions/structured-worker-identity' const DEV_CLI_BIN_FIRST = /^[^:;]*[\\/]cli[\\/]bin[:;]/ const DEV_CLI_BIN_DIR = /^[^:;]*[\\/]cli[\\/]bin$/ diff --git a/src/main/codex/structured/launch/codex-structured-launch-resolution.test.ts b/src/main/codex/structured/launch/codex-structured-launch-resolution.test.ts index 464ef4b018b..1078c26975e 100644 --- a/src/main/codex/structured/launch/codex-structured-launch-resolution.test.ts +++ b/src/main/codex/structured/launch/codex-structured-launch-resolution.test.ts @@ -2,7 +2,7 @@ import { agentSessionRecordFixture } from '../../../native-chat/agent-session-re import { createCodexStructuredLaunchResolver, TEST_SPAWN_TOKEN -} from '../../../runtime/structured-agent-launch-composition.test-support' +} from '../../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { mkdtempSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' diff --git a/src/main/codex/structured/launch/codex-structured-launch-resolution.ts b/src/main/codex/structured/launch/codex-structured-launch-resolution.ts index 0f1c3514002..ad0943d4415 100644 --- a/src/main/codex/structured/launch/codex-structured-launch-resolution.ts +++ b/src/main/codex/structured/launch/codex-structured-launch-resolution.ts @@ -17,7 +17,7 @@ import { import { requireLegacyAgentSessionAccountHome } from '../../../../shared/agent-session/lifecycle/agent-session-account-home' import { agentSessionProviderHandleChainHead } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle' import { resolveCodexCommand } from '../../../codex-cli/command' -import type { StructuredAgentLaunchPartResolver } from '../../../runtime/structured-agent-launch-composition' +import type { StructuredAgentLaunchPartResolver } from '../../../runtime/agent-session/launch/structured-agent-launch-composition' import type { CodexStructuredLaunch } from '../session-lifecycle/codex-structured-session-state' import { codexStructuredPermissionPolicy } from '../../../../shared/codex-permission-policy' import { codexStructuredLaunchArgs } from './codex-structured-launch-args' diff --git a/src/main/codex/structured/launch/codex-structured-visuals.test.ts b/src/main/codex/structured/launch/codex-structured-visuals.test.ts index 1bb86e0325e..1a904bb9711 100644 --- a/src/main/codex/structured/launch/codex-structured-visuals.test.ts +++ b/src/main/codex/structured/launch/codex-structured-visuals.test.ts @@ -12,7 +12,7 @@ import { identityFor, THREAD_ID } from '../session-lifecycle/codex-structured-session-adapter-fixture' -import { createCodexStructuredLaunchResolver } from '../../../runtime/structured-agent-launch-composition.test-support' +import { createCodexStructuredLaunchResolver } from '../../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { agentSessionRecordFixture } from '../../../native-chat/agent-session-record-test-fixture' import { codexProviderHandle } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' import { prepareCodexThreadForVisuals } from './codex-structured-visuals' diff --git a/src/main/codex/structured/session-lifecycle/codex-scripted-child.test-fixture.ts b/src/main/codex/structured/session-lifecycle/codex-scripted-child.test-fixture.ts index f63b4d5cee8..51a17d89138 100644 --- a/src/main/codex/structured/session-lifecycle/codex-scripted-child.test-fixture.ts +++ b/src/main/codex/structured/session-lifecycle/codex-scripted-child.test-fixture.ts @@ -2,7 +2,7 @@ import { providerDiagnostic, withProviderDiagnostic } from '../../../../shared/agent-session/failures/agent-session-failure' -import type { ScriptedAgentChild } from '../../../runtime/structured-agent-scripted-child.test-fixture' +import type { ScriptedAgentChild } from '../../../runtime/agent-session/installation/structured-agent-scripted-child.test-fixture' import type { CodexAppServerConnection } from '../../app-server/codex-app-server-connection-types' import type { openCodexAppServerConnection } from '../../app-server/codex-app-server-connection' import { CodexAppServerRequestError } from '../../app-server/codex-app-server-request-error' diff --git a/src/main/codex/structured/session-lifecycle/codex-structured-session-adapter.test.ts b/src/main/codex/structured/session-lifecycle/codex-structured-session-adapter.test.ts index 42c9113680f..8d82ed74959 100644 --- a/src/main/codex/structured/session-lifecycle/codex-structured-session-adapter.test.ts +++ b/src/main/codex/structured/session-lifecycle/codex-structured-session-adapter.test.ts @@ -22,7 +22,7 @@ import type { } from './codex-structured-session-state' import { codexProviderHandle } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' import { AgentModelCatalogStore } from '../../../native-chat/agent-model-catalog/agent-model-catalog-store' -import { createCodexStructuredLaunchResolver } from '../../../runtime/structured-agent-launch-composition.test-support' +import { createCodexStructuredLaunchResolver } from '../../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { agentSessionRecordFixture } from '../../../native-chat/agent-session-record-test-fixture' describe('CodexStructuredSessionAdapter.acquire', () => { diff --git a/src/main/codex/structured/session-lifecycle/codex-structured-session-state.ts b/src/main/codex/structured/session-lifecycle/codex-structured-session-state.ts index caf3b84b404..23b7facccb1 100644 --- a/src/main/codex/structured/session-lifecycle/codex-structured-session-state.ts +++ b/src/main/codex/structured/session-lifecycle/codex-structured-session-state.ts @@ -24,7 +24,7 @@ import type { CodexSkillReport } from '../catalog/codex-structured-skill-report' import type { CodexJournalTranslator } from '../journal/codex-structured-journal-contracts' import type { StructuredAgentSessionLifecycleEvent } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter' import type { CodexStructuredPermissionPolicy } from '../../../../shared/codex-permission-policy' -import type { StructuredLaunchRequest } from '../../../runtime/structured-agent-launch-composition' +import type { StructuredLaunchRequest } from '../../../runtime/agent-session/launch/structured-agent-launch-composition' import type { AgentModelCatalogStore } from '../../../native-chat/agent-model-catalog/agent-model-catalog-store' import type { AgentModelCatalogSessionAccess } from '../../../native-chat/agent-model-catalog/agent-model-catalog-lister' import type { StructuredAgentSessionProviderOpen } from '../../../native-chat/agent-session-wire/structured-agent-session-provider-open-contract' diff --git a/src/main/ipc/preflight-agent-detection.test.ts b/src/main/ipc/preflight-agent-detection.test.ts index a10cdae4cc7..6e9b4e083b1 100644 --- a/src/main/ipc/preflight-agent-detection.test.ts +++ b/src/main/ipc/preflight-agent-detection.test.ts @@ -59,7 +59,7 @@ vi.mock('child_process', () => { } }) -vi.mock('../runtime/structured-agent-shell-environment', () => ({ +vi.mock('../runtime/agent-session/environment/structured-agent-shell-environment', () => ({ captureHostShellEnvironment: vi.fn(async (beforeCapture?: () => Promise) => beforeCapture?.() ) diff --git a/src/main/ipc/pty/pty-launch-parity.test-fixture.ts b/src/main/ipc/pty/pty-launch-parity.test-fixture.ts index 0c1ecadf5ec..57fff018529 100644 --- a/src/main/ipc/pty/pty-launch-parity.test-fixture.ts +++ b/src/main/ipc/pty/pty-launch-parity.test-fixture.ts @@ -6,7 +6,7 @@ import { registerPtyHandlers } from './register-handlers' import { existsSyncMock, statSyncMock } from './pty-ipc-mock-registry' import type { PtyIpcSuiteFixtures } from './pty-ipc-test-harness' import { OrcaRuntimeService } from '../../runtime/orca-runtime' -import type { TerminalWorkspaceLaunchScope } from '../../runtime/runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../runtime/orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import { IDENTITY_ENV_KEYS, launchWorkspaceId, diff --git a/src/main/ipc/pty/runtime/spawn-state.ts b/src/main/ipc/pty/runtime/spawn-state.ts index 965c411c756..241e62623dd 100644 --- a/src/main/ipc/pty/runtime/spawn-state.ts +++ b/src/main/ipc/pty/runtime/spawn-state.ts @@ -33,7 +33,7 @@ import type { import { localProvider } from '../provider/registry' import type { PaneResumeOutcome } from '../../../../shared/workspace-layout/workspace-layout-published' import type { StartupCwdFallback } from '../../../../shared/startup-cwd-fallback' -import type { TerminalWorkspaceLaunchScope } from '../../../runtime/runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../../runtime/orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' export type RuntimePtySpawnState = { deps: PtyRuntimeControllerDeps diff --git a/src/main/ipc/pty/spawn-startup-target.ts b/src/main/ipc/pty/spawn-startup-target.ts index 420091b39e9..c588b761b09 100644 --- a/src/main/ipc/pty/spawn-startup-target.ts +++ b/src/main/ipc/pty/spawn-startup-target.ts @@ -8,7 +8,7 @@ import { resolveTerminalStartupCwd, type TerminalStartupCwdMissingDirFallback } from '../../../shared/shell/launch/terminal-startup-cwd' -import type { TerminalWorkspaceLaunchScope } from '../../runtime/runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../runtime/orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import { isWslUncPath, toWindowsWslPath } from '../../../shared/wsl-paths' import type { CodexAccountSelectionTarget } from '../../codex-accounts/runtime-selection' import { resolveWslSessionContext } from '../../daemon/pty-subprocess/wsl-session-context' diff --git a/src/main/native-chat/agent-model-catalog/agent-model-catalog-prewarm.test.ts b/src/main/native-chat/agent-model-catalog/agent-model-catalog-prewarm.test.ts index cf1318d9bc8..0ce6c95ea8a 100644 --- a/src/main/native-chat/agent-model-catalog/agent-model-catalog-prewarm.test.ts +++ b/src/main/native-chat/agent-model-catalog/agent-model-catalog-prewarm.test.ts @@ -8,7 +8,7 @@ import { join } from 'node:path' import { describe, expect, it, vi } from 'vitest' import { ClaudeProfileRouter } from '../../claude-accounts/claude-profile-router' import { installClaudeProfileRouter } from '../../claude-accounts/claude-profile-installed-router' -import { resolveStructuredClaudeAccountHomePath } from '../../runtime/structured-agent-account-home' +import { resolveStructuredClaudeAccountHomePath } from '../../runtime/agent-session/environment/structured-agent-account-home' import type { AgentSessionRecord } from '../../../shared/agent-session/lifecycle/agent-session-record' import { agentModelCatalogFingerprintForRecord } from './agent-model-catalog-fingerprint' diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-adopted-import.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-adopted-import.test.ts index dfe92f51d3c..f0b69820139 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-adopted-import.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-adopted-import.test.ts @@ -27,7 +27,7 @@ import { NO_STRUCTURED_AGENTS, structuredAgentsDeclaringNothing } from './structured-agent-session-adapter-router-test-support' -import { structuredAgentRuntimeRegistration } from '../../runtime/structured-agent-runtime-registrations' +import { structuredAgentRuntimeRegistration } from '../../runtime/agent-session/installation/structured-agent-runtime-registrations' import { writeOpenCodeSqliteDatabase } from '../../ai-vault/scanners/opencode/sqlite/session-scanner-opencode-sqlite-fixture' vi.mock( diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-catalog-mutation.test-support.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-catalog-mutation.test-support.ts index 1f0b09666f5..34b10feb666 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-catalog-mutation.test-support.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-catalog-mutation.test-support.ts @@ -2,7 +2,7 @@ import { rm } from 'node:fs/promises' import { join } from 'node:path' import { expect, vi } from 'vitest' import { computeAgentSessionPayloadFingerprint } from '../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { modelCatalogHostDeps } from '../../runtime/structured-agent-model-catalog-wiring' +import { modelCatalogHostDeps } from '../../runtime/agent-session/model-catalog/structured-agent-model-catalog-wiring' import { agentModelCatalogFingerprint, agentModelCatalogScopeFingerprint diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-account-routing.test-support.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-account-routing.test-support.ts index ca8af048444..12196ffdd34 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-account-routing.test-support.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-account-routing.test-support.ts @@ -11,8 +11,8 @@ import { claudeProfileMarkerPath } from '../../claude-accounts/claude-profile-pa import { CLAUDE_STRUCTURED_AGENT } from '../../claude/structured/claude-structured-agent-definition' import { claudeInitializationAuthError } from '../../claude/structured/claude-structured-init-proof' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' -import { resolveStructuredClaudeAccountHomePath } from '../../runtime/structured-agent-account-home' -import { createClaudeStructuredLaunchResolver } from '../../runtime/structured-agent-launch-composition.test-support' +import { resolveStructuredClaudeAccountHomePath } from '../../runtime/agent-session/environment/structured-agent-account-home' +import { createClaudeStructuredLaunchResolver } from '../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import type { StructuredAgentSessionHostDeps } from './structured-agent-session-host-types' const savedAccount = (id: string) => ({ diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-compact-stop.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-compact-stop.test.ts index ac75ecb77a0..dfe3831b80f 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-compact-stop.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-compact-stop.test.ts @@ -13,7 +13,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { structuredAgentSessionCommandTurn } from '../../../shared/agent-session/view/structured-agent-session-command-turn-identity' import { structuredAgentSessionCommandWasStopped } from './structured-agent-session-command-turn' import type * as CommandTurnModule from './structured-agent-session-command-turn' diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-echo-working.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-echo-working.test.ts index dffc61488d4..81dd5a8debc 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-echo-working.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-echo-working.test.ts @@ -14,7 +14,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { StructuredAgentSessionHost } from './structured-agent-session-host' import { HOST_TEST_NOW as NOW, diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-hung-start-stop.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-hung-start-stop.test.ts index f8a55692e8b..05f12509a96 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-hung-start-stop.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-hung-start-stop.test.ts @@ -15,7 +15,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { closeTestJournalHostDatabases, openTestJournalHostDatabase diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-opening-send-hold.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-opening-send-hold.test.ts index 8e7591511eb..4350debdcea 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-opening-send-hold.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-opening-send-hold.test.ts @@ -19,7 +19,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { closeTestJournalHostDatabases, openTestJournalHostDatabase diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-queued-stop.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-queued-stop.test.ts index 067d53aa3a4..cb57902c094 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-queued-stop.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-queued-stop.test.ts @@ -23,7 +23,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { closeTestJournalHostDatabases, openTestJournalHostDatabase diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-resume-exit-start.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-resume-exit-start.test.ts index 517aa04d891..0ee9ac37673 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-resume-exit-start.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-resume-exit-start.test.ts @@ -4,7 +4,7 @@ import { PROVIDER_SESSION_ID, fakeClaude } from '../../claude/structured/claude-structured-session-test-support' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { withObservedProviderExit } from './structured-agent-session-failure-text' import { HOST_TEST_SESSION as SESSION } from './structured-agent-session-host-test-data' import type { StructuredAgentSessionSinkBarrier } from './structured-agent-session-event-sink' diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-contract-test-fixture.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-contract-test-fixture.ts index a2759c2c800..f9789baafeb 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-contract-test-fixture.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-contract-test-fixture.ts @@ -13,7 +13,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { closeTestJournalHostDatabases, openTestJournalHostDatabase diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-exit-ends-record.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-exit-ends-record.test.ts index 7fc428d69db..242daa7e5f3 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-exit-ends-record.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-exit-ends-record.test.ts @@ -16,7 +16,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { closeTestJournalHostDatabases, openTestJournalHostDatabase diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-note-end.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-note-end.test.ts index 59b9bf5fa33..eb34b9127b9 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-note-end.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-note-end.test.ts @@ -17,7 +17,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { closeTestJournalHostDatabases, openTestJournalHostDatabase diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-turn-end.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-turn-end.test.ts index ca70ef7dba9..c44de5ed799 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-turn-end.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-stop-turn-end.test.ts @@ -15,7 +15,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { closeTestJournalHostDatabases, openTestJournalHostDatabase diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-subagent-row.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-subagent-row.test.ts index 96d01be5c94..eb4af98ff1d 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-claude-subagent-row.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-claude-subagent-row.test.ts @@ -25,7 +25,7 @@ import { import { claudeStartupSettled } from '../../claude/structured/claude-structured-startup-settled-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { closeTestJournalHostDatabases, openTestJournalHostDatabase diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-create-adoption-budget.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-create-adoption-budget.test.ts index b2313f40c83..41708d08dca 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-create-adoption-budget.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-create-adoption-budget.test.ts @@ -24,7 +24,7 @@ import { import { claudeProviderHandle } from '../../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' import { adoptedDirectoryProbes } from '../agent-session-journal/adopted-directory-probe' import { resolveAgentSessionLaunchDirectory } from '../../runtime/agent-session/agent-session-launch-directory' -import { createClaudeStructuredLaunchResolver } from '../../runtime/structured-agent-launch-composition.test-support' +import { createClaudeStructuredLaunchResolver } from '../../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { fixture } from './structured-agent-session-create-adoption-contract-test-fixture' diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-create-adoption.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-create-adoption.test.ts index 879e82ca788..ecaeadd295e 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-create-adoption.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-create-adoption.test.ts @@ -25,7 +25,7 @@ import { codexLegacyMirrorRecords, writeCodexHistoryFixture } from '../agent-session-journal/codex-history-test-fixture' -import { structuredAgentRuntimeMetadata } from '../../runtime/structured-agent-runtime-metadata' +import { structuredAgentRuntimeMetadata } from '../../runtime/agent-session/installation/structured-agent-runtime-metadata' import { resolveStructuredAgentSessionAdoptionForCreate, structuredAgentSessionAdoptAttach diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-damaged-runtime.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-damaged-runtime.test.ts index 6bf01d551aa..43754e0ab00 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-damaged-runtime.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-damaged-runtime.test.ts @@ -1,7 +1,7 @@ import { composeStructuredLaunch, composeStructuredLaunchRead -} from '../../runtime/structured-agent-launch-composition' +} from '../../runtime/agent-session/launch/structured-agent-launch-composition' import { CODEX_STRUCTURED_AGENT } from '../../codex/structured/launch/codex-structured-agent-definition' import { afterEach, expect, it, vi } from 'vitest' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-outgrown-child.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-outgrown-child.test.ts index 913e80cbb91..89aec8621c4 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-outgrown-child.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-outgrown-child.test.ts @@ -16,7 +16,7 @@ import { import type { ClaudeProfileSetupReport } from '../../claude-accounts/claude-profile-setup' import { prepareClaudeLaunchAccount } from '../../claude/claude-launch-account' import { CLAUDE_STRUCTURED_AGENT } from '../../claude/structured/claude-structured-agent-definition' -import { resolveStructuredClaudeAccountHomePath } from '../../runtime/structured-agent-account-home' +import { resolveStructuredClaudeAccountHomePath } from '../../runtime/agent-session/environment/structured-agent-account-home' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { agentSessionFailureFact } from '../../../shared/agent-session/failures/agent-session-failure' import { agentSessionFailureWords } from '../../../shared/agent-session/failures/agent-session-failure-words' diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-owed-work-release.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-owed-work-release.test.ts index 3efc17f2b78..3f2dd9f835c 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-owed-work-release.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-owed-work-release.test.ts @@ -11,7 +11,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { StructuredAgentSessionHost } from './structured-agent-session-host' import { HOST_TEST_NOW as NOW, diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-permission-mode.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-permission-mode.test.ts index 44b48b71429..c7a00e69be4 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-permission-mode.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-permission-mode.test.ts @@ -1,4 +1,4 @@ -import type { StructuredAgentSessionRuntimeDeps } from '../../runtime/structured-agent-session-runtime-contract' +import type { StructuredAgentSessionRuntimeDeps } from '../../runtime/agent-session/installation/structured-agent-session-runtime-contract' import { admitStructuredAgentSessionInput } from './structured-agent-session-input-admission' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { computeAgentSessionPayloadFingerprint } from '../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' @@ -18,8 +18,8 @@ import { HOST_TEST_THREAD } from './structured-agent-session-host-test-data' import * as loginShell from '../../startup/login-shell-environment' -import { createStructuredAgentEnvironmentResolvers } from '../../runtime/structured-agent-shell-environment' -import { codexModelCatalogDiscovery } from '../../runtime/structured-agent-model-catalog-discovery' +import { createStructuredAgentEnvironmentResolvers } from '../../runtime/agent-session/environment/structured-agent-shell-environment' +import { codexModelCatalogDiscovery } from '../../runtime/agent-session/model-catalog/structured-agent-model-catalog-discovery' import { createAgentModelCatalogService } from '../agent-model-catalog/agent-model-catalog-service' import { AgentModelCatalogStore } from '../agent-model-catalog/agent-model-catalog-store' import { diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-receiving-callers.test-support.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-receiving-callers.test-support.ts index 6fafc38981a..cc202b436b3 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-receiving-callers.test-support.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-receiving-callers.test-support.ts @@ -21,8 +21,8 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from '../../runtime/structured-worker-identity' -import { structuredWorkerOwesWork } from '../../runtime/structured-worker-custody' +} from '../../runtime/orchestration/terminal-authority/structured-sessions/structured-worker-identity' +import { structuredWorkerOwesWork } from '../../runtime/orchestration/terminal-authority/structured-sessions/structured-worker-custody' import { createRestTestRig, REST_TEST_CALLER } from './structured-agent-session-rest-test-rig' import { hostTestAttachParams, diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-receiving-catalog.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-receiving-catalog.test.ts index 59dda1e1e33..475fe6ffda2 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-receiving-catalog.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-receiving-catalog.test.ts @@ -13,7 +13,7 @@ import { agentModelCatalogFingerprint, agentModelCatalogScopeFingerprint } from '../agent-model-catalog/agent-model-catalog-fingerprint' -import { structuredAgentModelCatalogAccountReads } from '../../runtime/structured-agent-model-catalog-wiring' +import { structuredAgentModelCatalogAccountReads } from '../../runtime/agent-session/model-catalog/structured-agent-model-catalog-wiring' import { createReceivingCallerFixture, PARENT diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-recovery-read.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-recovery-read.test.ts index 8a592ecb405..00ef8541646 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-recovery-read.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-recovery-read.test.ts @@ -10,7 +10,7 @@ import type { import { agentSessionFailureWords } from '../../../shared/agent-session/failures/agent-session-failure-words' import { agentSessionRecordFixture } from '../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' import { readStructuredSessionRecovery } from './structured-agent-session-recovery-read' -import * as recoveryOptions from '../../runtime/structured-session-recovery-options' +import * as recoveryOptions from '../../runtime/agent-session/lifecycle/structured-session-recovery-options' it('does no discovery on ordinary reads and drops preparation superseded by a send', async () => { const prepare = vi.spyOn(recoveryOptions, 'structuredSessionRecoveryOptions') diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-recovery-read.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-recovery-read.ts index b2d12bc4a90..817e14b15a5 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-recovery-read.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-recovery-read.ts @@ -2,7 +2,7 @@ import { latestNativeChatUsageLimitCut } from '../../../shared/native-chat/nativ import { structuredSessionRecoveryOptions, type RecoveryContextCache -} from '../../runtime/structured-session-recovery-options' +} from '../../runtime/agent-session/lifecycle/structured-session-recovery-options' import { withoutInheritedClaudeConfigDir } from '../../claude/claude-config-dir-pin' import type { StructuredAgentSessionHostDeps, diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-startup-provider-errors.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-startup-provider-errors.test.ts index b100e4a05ef..836d13e76a7 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-startup-provider-errors.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-startup-provider-errors.test.ts @@ -16,7 +16,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { closeTestJournalHostDatabases, openTestJournalHostDatabase diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-terminal-writer-acquire.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-terminal-writer-acquire.test.ts index e73afa62289..d5eb1e9dec1 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-terminal-writer-acquire.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-terminal-writer-acquire.test.ts @@ -27,7 +27,7 @@ import { hostTestOperationId, resetHostTestOperationIds } from './structured-agent-session-host-test-data' -import { structuredAgentRuntimeRegistration } from '../../runtime/structured-agent-runtime-registrations' +import { structuredAgentRuntimeRegistration } from '../../runtime/agent-session/installation/structured-agent-runtime-registrations' import { createStructuredAgentSessionLogger } from './structured-agent-session-logger' let root: string diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-view-start-after-failed-start.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-view-start-after-failed-start.test.ts index 00d575e2775..cb3c7076a2b 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-view-start-after-failed-start.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-view-start-after-failed-start.test.ts @@ -11,7 +11,7 @@ import { } from '../../claude/structured/claude-structured-session-test-support' import type { AgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store' import { openTestAgentSessionRecordStore } from '../../runtime/agent-session/records/agent-session-record-store-test-harness' -import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../runtime/agent-session/installation/structured-claude-runtime-adapter' import { StructuredAgentSessionHost } from './structured-agent-session-host' import { HOST_TEST_NOW as NOW, diff --git a/src/main/native-chat/agent-session-wire/structured-provider-session-ownership.ts b/src/main/native-chat/agent-session-wire/structured-provider-session-ownership.ts index 795965403e3..c7f26439a1f 100644 --- a/src/main/native-chat/agent-session-wire/structured-provider-session-ownership.ts +++ b/src/main/native-chat/agent-session-wire/structured-provider-session-ownership.ts @@ -4,7 +4,7 @@ import type { } from '../../../shared/agent-session/lifecycle/agent-session-conversation-view' import type { StructuredAgentId } from '../../../shared/agent-session/lifecycle/agent-session-provider-handle' import { agentSessionOwnerObservationVerdict } from '../../../shared/agent-session/lifecycle/agent-session-lease-adjudication' -import { structuredAgentRuntimeMetadata } from '../../runtime/structured-agent-runtime-metadata' +import { structuredAgentRuntimeMetadata } from '../../runtime/agent-session/installation/structured-agent-runtime-metadata' import { keysMayMatch, recordConversationKey, diff --git a/src/main/native-chat/chat-launcher-command.test.ts b/src/main/native-chat/chat-launcher-command.test.ts index 60b77aff77d..ba170cb45ef 100644 --- a/src/main/native-chat/chat-launcher-command.test.ts +++ b/src/main/native-chat/chat-launcher-command.test.ts @@ -6,7 +6,7 @@ import { createClaudeStructuredLaunchResolver, createCodexStructuredLaunchResolver, createPiRpcLaunchResolver -} from '../runtime/structured-agent-launch-composition.test-support' +} from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { acpLaunchSpecFor } from '../acp/acp-launch-specs' import { buildPiRpcLaunch } from '../pi/rpc-launch' diff --git a/src/main/native-chat/native-chat-inline-visuals-setting.test.ts b/src/main/native-chat/native-chat-inline-visuals-setting.test.ts index 90166996360..735680d7f1a 100644 --- a/src/main/native-chat/native-chat-inline-visuals-setting.test.ts +++ b/src/main/native-chat/native-chat-inline-visuals-setting.test.ts @@ -1,7 +1,7 @@ import { createClaudeStructuredLaunchResolver, createCodexStructuredLaunchResolver -} from '../runtime/structured-agent-launch-composition.test-support' +} from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { existsSync, mkdtempSync, rmSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' diff --git a/src/main/native-chat/native-chat-visuals-delivery.test.ts b/src/main/native-chat/native-chat-visuals-delivery.test.ts index f37d6fa95fb..5cf7e094ce6 100644 --- a/src/main/native-chat/native-chat-visuals-delivery.test.ts +++ b/src/main/native-chat/native-chat-visuals-delivery.test.ts @@ -16,7 +16,7 @@ import { } from './native-chat-visuals-delivery' import { nativeChatScratchFolderFor, nativeChatScratchRootFor } from './native-chat-scratch-folder' import { buildClaudeChildProcessEnv } from '../claude/claude-child-process-environment' -import { createCodexStructuredLaunchResolver } from '../runtime/structured-agent-launch-composition.test-support' +import { createCodexStructuredLaunchResolver } from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { agentSessionRecordFixture } from './agent-session-record-test-fixture' import type { AgentSessionJournalIdentity } from '../../shared/agent-session/journal/agent-session-journal-identity' import { resolveProviderChildEnv } from '../provider-process/provider-process-launch' diff --git a/src/main/native-chat/structured-agent-cli-conversation-adoption.test.ts b/src/main/native-chat/structured-agent-cli-conversation-adoption.test.ts index dfeb90b92b5..048d10a732c 100644 --- a/src/main/native-chat/structured-agent-cli-conversation-adoption.test.ts +++ b/src/main/native-chat/structured-agent-cli-conversation-adoption.test.ts @@ -16,7 +16,7 @@ import { import { STRUCTURED_AGENT_RUNTIME_REGISTRATIONS, structuredAgentRuntimeRegistration -} from '../runtime/structured-agent-runtime-registrations' +} from '../runtime/agent-session/installation/structured-agent-runtime-registrations' import { resolveStructuredAgentSessionAdoptionForCreate } from '../runtime/agent-session/structured-agent-session-create-adoption' import { prepareLegacyTranscriptImport } from './agent-session-journal/journal-legacy-import' import type { AgentSessionAccountHome } from '../../shared/agent-session/lifecycle/agent-session-account-home' diff --git a/src/main/native-chat/structured-chat-naming-execution.test.ts b/src/main/native-chat/structured-chat-naming-execution.test.ts index 2dcf57169ec..958c5045fbf 100644 --- a/src/main/native-chat/structured-chat-naming-execution.test.ts +++ b/src/main/native-chat/structured-chat-naming-execution.test.ts @@ -1,7 +1,7 @@ import { cancelLocalGeneration } from '../text-generation/source-control-generation-lanes' import { AgentSessionJournal } from './agent-session-journal/journal-store' import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { structuredChatNamingDeps } from '../runtime/structured-chat-naming-runtime' +import { structuredChatNamingDeps } from '../runtime/agent-session/naming/structured-chat-naming-runtime' import { getDefaultSettings } from '../../shared/constants' import { normalizeSourceControlAiSettings } from '../../shared/source-control/ai/settings/source-control-ai-settings' import { setStructuredAgentSessionHost } from './agent-session-wire/structured-agent-session-registry' diff --git a/src/main/native-chat/structured-chat-naming-publication.test.ts b/src/main/native-chat/structured-chat-naming-publication.test.ts index 6c83c99796d..1b9fee327f0 100644 --- a/src/main/native-chat/structured-chat-naming-publication.test.ts +++ b/src/main/native-chat/structured-chat-naming-publication.test.ts @@ -11,7 +11,7 @@ import { resetAiVaultSessionListCacheForTests } from '../ai-vault/cached-session import { OrcaRuntimeService } from '../runtime/orca-runtime' import { RpcDispatcher } from '../runtime/rpc/dispatcher' import { AI_VAULT_METHODS } from '../runtime/rpc/methods/ai-vault' -import { structuredChatNamingDeps } from '../runtime/structured-chat-naming-runtime' +import { structuredChatNamingDeps } from '../runtime/agent-session/naming/structured-chat-naming-runtime' import { createStructuredChatNamingHandler } from './structured-chat-naming' import { setStructuredAgentSessionHost } from './agent-session-wire/structured-agent-session-registry' import { diff --git a/src/main/native-chat/structured-chat-naming.test.ts b/src/main/native-chat/structured-chat-naming.test.ts index 2f1f70c8b86..084ca5d015e 100644 --- a/src/main/native-chat/structured-chat-naming.test.ts +++ b/src/main/native-chat/structured-chat-naming.test.ts @@ -3,12 +3,12 @@ import { OrchestrationDb } from '../runtime/orchestration/db' import { structuredWorkerOpenTaskTitle, structuredWorkerOwesWork -} from '../runtime/structured-worker-custody' +} from '../runtime/orchestration/terminal-authority/structured-sessions/structured-worker-custody' import { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey, structuredWorkerProcessIncarnation -} from '../runtime/structured-worker-identity' +} from '../runtime/orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { describe, expect, it, onTestFinished, vi } from 'vitest' import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' import { agentSessionRecordFixture } from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' diff --git a/src/main/native-chat/structured-conversation-key.ts b/src/main/native-chat/structured-conversation-key.ts index 5a8bcc254fb..c6271aa1c3f 100644 --- a/src/main/native-chat/structured-conversation-key.ts +++ b/src/main/native-chat/structured-conversation-key.ts @@ -8,7 +8,7 @@ import { } from '../../shared/agent-session/lifecycle/agent-session-account-home' import type { AgentSessionProviderHandleLink } from '../../shared/agent-session/lifecycle/agent-session-provider-handle' import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' -import { structuredAgentRuntimeMetadata } from '../runtime/structured-agent-runtime-metadata' +import { structuredAgentRuntimeMetadata } from '../runtime/agent-session/installation/structured-agent-runtime-metadata' import { sessionIdFromFileName } from '../ai-vault/session-scanner-accumulator' /** One conversation wherever it is named: the agents sharing its ids, its id (null: a targetless diff --git a/src/main/orcad/orcad-account-services.ts b/src/main/orcad/orcad-account-services.ts index 53939d0fef9..ae8767016d3 100644 --- a/src/main/orcad/orcad-account-services.ts +++ b/src/main/orcad/orcad-account-services.ts @@ -16,7 +16,7 @@ import { createCodexRuntimeHomeLaunchPreparation } from '../codex/configuration/ import { createCodexSessionResumeLaunchPreparation } from '../codex/history/resume/codex-session-resume-launch-preparation' import { prepareCodexAiVaultSessionResume } from '../codex/history/resume/codex-ai-vault-session-resume' import { resolveHostCodexSessionSourceHome } from '../codex/history/rollouts/codex-session-source-home' -import { resolveHostAgentBaseEnvironment } from '../runtime/structured-agent-shell-environment' +import { resolveHostAgentBaseEnvironment } from '../runtime/agent-session/environment/structured-agent-shell-environment' import { isWslHostOrcadProcess } from '../ipc/wsl-guest-windows-drive-path' import type { OrcadRuntimeCleanup } from './orcad-runtime-lifetime' diff --git a/src/main/orcad/orcad-cli-launcher.integration.test.ts b/src/main/orcad/orcad-cli-launcher.integration.test.ts index 6d916e13d0f..2513f878d06 100644 --- a/src/main/orcad/orcad-cli-launcher.integration.test.ts +++ b/src/main/orcad/orcad-cli-launcher.integration.test.ts @@ -4,7 +4,7 @@ import { join, resolve } from 'node:path' import { expect, it } from 'vitest' import { installFakeAppEnvironment } from '../../../config/scripts/test-runtime/environment/vitest-host-ports-setup' import { runProcess, spawnProcess } from '@orca/process-host' -import { sealedChildEnv } from '../runtime/structured-session-child-env.test-support' +import { sealedChildEnv } from '../runtime/agent-session/environment/structured-session-child-env.test-support' import { resolveBundledOrcadRuntime } from './orcad-bundled-runtime' import { ORCAD_NODE_RUNTIME_MARKER_FILENAME } from '../../shared/orcad-artifacts' import { skipForMissingInputs } from './orcad-node-slot-fixture' diff --git a/src/main/orcad/orcad-host-account-launch-env-store.test.ts b/src/main/orcad/orcad-host-account-launch-env-store.test.ts index 2a759252b48..3edda96aaee 100644 --- a/src/main/orcad/orcad-host-account-launch-env-store.test.ts +++ b/src/main/orcad/orcad-host-account-launch-env-store.test.ts @@ -6,7 +6,7 @@ import { readOrcadHostAccountLaunchEnv, restoreOrcadHostAccountLaunchEnv } from './orcad-host-account-launch-env-store' -import { RuntimeAccountController } from '../runtime/runtime-account-controller' +import { RuntimeAccountController } from '../runtime/agent-session/environment/runtime-account-controller' const dirs: string[] = [] function userData(): string { diff --git a/src/main/orcad/orcad-wsl-host-claude-profile-refresh.test.ts b/src/main/orcad/orcad-wsl-host-claude-profile-refresh.test.ts index a8a9c2efee0..2219337781e 100644 --- a/src/main/orcad/orcad-wsl-host-claude-profile-refresh.test.ts +++ b/src/main/orcad/orcad-wsl-host-claude-profile-refresh.test.ts @@ -5,7 +5,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import type { HostAccountLaunchEnv } from '../../shared/host-account-launch-env' import { wslClaudeProfile } from '../claude-accounts/claude-profile-wsl-paths' import { provisionWslClaudeAccountProfile } from '../claude-accounts/claude-profile-wsl-provision' -import { RuntimeAccountController } from '../runtime/runtime-account-controller' +import { RuntimeAccountController } from '../runtime/agent-session/environment/runtime-account-controller' import { createWslHostClaudeProfileRefresh } from './orcad-wsl-host-claude-profile-refresh' const DISTRO = 'orca-acct-test' diff --git a/src/main/pi/pi-scripted-child.test-fixture.ts b/src/main/pi/pi-scripted-child.test-fixture.ts index 7eb8c23634a..a8a760bc94c 100644 --- a/src/main/pi/pi-scripted-child.test-fixture.ts +++ b/src/main/pi/pi-scripted-child.test-fixture.ts @@ -10,7 +10,7 @@ import { } from '../jsonl-rpc/agent-connection' import { JsonlRpcResponseError, type JsonlRpcRecord } from '../jsonl-rpc/peer' import type { ProviderProcessLaunch } from '../provider-process/provider-process-launch' -import type { ScriptedAgentChild } from '../runtime/structured-agent-scripted-child.test-fixture' +import type { ScriptedAgentChild } from '../runtime/agent-session/installation/structured-agent-scripted-child.test-fixture' import type { PiRpcConnection } from './rpc-session' type PiScriptOptions = { diff --git a/src/main/pi/rpc-launch-resolution.test.ts b/src/main/pi/rpc-launch-resolution.test.ts index 09df2abd729..6334d1972a4 100644 --- a/src/main/pi/rpc-launch-resolution.test.ts +++ b/src/main/pi/rpc-launch-resolution.test.ts @@ -1,4 +1,4 @@ -import { createPiRpcLaunchResolver } from '../runtime/structured-agent-launch-composition.test-support' +import { createPiRpcLaunchResolver } from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { mkdtemp, mkdir, writeFile, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' diff --git a/src/main/pi/rpc-launch-resolution.ts b/src/main/pi/rpc-launch-resolution.ts index d9f6c8c04c8..127e99c3d6b 100644 --- a/src/main/pi/rpc-launch-resolution.ts +++ b/src/main/pi/rpc-launch-resolution.ts @@ -24,7 +24,7 @@ import { type StructuredAgentCommand, type StructuredAgentCommandSettings } from '../native-chat/structured-agent-command-resolution' -import type { StructuredAgentLaunchPartResolver } from '../runtime/structured-agent-launch-composition' +import type { StructuredAgentLaunchPartResolver } from '../runtime/agent-session/launch/structured-agent-launch-composition' import { isWindowsProcessStartTimeAvailable } from '../windows/windows-process-table' import { sessionIdFromFileName } from '../ai-vault/session-scanner-accumulator' import { diff --git a/src/main/pi/rpc-launch.test.ts b/src/main/pi/rpc-launch.test.ts index 6026bbf9784..aba66b2b77b 100644 --- a/src/main/pi/rpc-launch.test.ts +++ b/src/main/pi/rpc-launch.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' import { resolveProviderChildEnv } from '../provider-process/provider-process-launch' -import { sealStructuredSessionChild } from '../runtime/structured-session-child-env' +import { sealStructuredSessionChild } from '../runtime/agent-session/environment/structured-session-child-env' import { buildPiRpcLaunch, PI_RPC_SESSION_ENV_TO_DELETE, diff --git a/src/main/pi/rpc-launch.ts b/src/main/pi/rpc-launch.ts index e2a057be66e..360bd69186a 100644 --- a/src/main/pi/rpc-launch.ts +++ b/src/main/pi/rpc-launch.ts @@ -5,7 +5,7 @@ import { NATIVE_CHAT_SCRATCH_DIR_ENV } from '../native-chat/native-chat-visuals-delivery' import type { ProviderProcessLaunch } from '../provider-process/provider-process-launch' -import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/structured-session-child-env' +import { STRUCTURED_CHILD_ENV_TO_DELETE } from '../runtime/agent-session/environment/structured-session-child-env' import type { PiBackgroundWorkLaunch } from './rpc-background-work-bridge' import { PI_BACKGROUND_WORK_DIR_ENV } from './rpc-background-work-bridge-source' diff --git a/src/main/pi/rpc-runtime-metadata.ts b/src/main/pi/rpc-runtime-metadata.ts index a939ebcd075..8d1d6460c81 100644 --- a/src/main/pi/rpc-runtime-metadata.ts +++ b/src/main/pi/rpc-runtime-metadata.ts @@ -2,7 +2,7 @@ import { homedir } from 'node:os' import { join } from 'node:path' import { agentSessionAccountHome } from '../../shared/agent-session/lifecycle/agent-session-account-home' import { supportsSupervisedProviderChildLocation } from '../provider-process/supervised-provider-child-location' -import type { StructuredAgentRuntimeMetadata } from '../runtime/structured-agent-runtime-registration-types' +import type { StructuredAgentRuntimeMetadata } from '../runtime/agent-session/installation/structured-agent-runtime-registration-types' import { PI_RPC_AGENT } from './rpc-agent-definition' import { PI_RPC_MINIMUM_VERSIONS, resolvePiRpcCommand } from './rpc-launch-resolution' import { createPiModelCatalogProbe } from './rpc-model-catalog-probe' diff --git a/src/main/pi/rpc-runtime-registration.ts b/src/main/pi/rpc-runtime-registration.ts index 8548aae77d1..365583bbfe0 100644 --- a/src/main/pi/rpc-runtime-registration.ts +++ b/src/main/pi/rpc-runtime-registration.ts @@ -2,11 +2,11 @@ import type { StructuredAgentAdapterContext, StructuredAgentRuntimeAdapter, StructuredAgentRuntimeRegistration -} from '../runtime/structured-agent-runtime-registration-types' +} from '../runtime/agent-session/installation/structured-agent-runtime-registration-types' import { composeStructuredLaunch, structuredAgentLaunchSources -} from '../runtime/structured-agent-launch-composition' +} from '../runtime/agent-session/launch/structured-agent-launch-composition' import { PI_RPC_AGENT } from './rpc-agent-definition' import { piRpcLaunchPart } from './rpc-launch-resolution' import { PiRpcSessionAdapter } from './rpc-session-adapter' diff --git a/src/main/preflight/codex-workspace-relative-path.test.ts b/src/main/preflight/codex-workspace-relative-path.test.ts index 60bf6e54621..7999dde364d 100644 --- a/src/main/preflight/codex-workspace-relative-path.test.ts +++ b/src/main/preflight/codex-workspace-relative-path.test.ts @@ -9,14 +9,14 @@ import { runProcess } from '@orca/process-host' import { createCodexStructuredLaunchResolver, TEST_SPAWN_TOKEN -} from '../runtime/structured-agent-launch-composition.test-support' +} from '../runtime/agent-session/launch/structured-agent-launch-composition.test-support' import { readCodexCliVersion, withSupportedCodexCli } from '../codex/structured/launch/codex-cli-installation-error' import { resolveStructuredAgentCommand } from '../native-chat/structured-agent-command-resolution' import { resolveTuiAgentLaunchEnv } from '../../shared/agent-launch/choices/tui-agent-launch-defaults' -import { createStructuredAgentEnvironmentResolvers } from '../runtime/structured-agent-shell-environment' +import { createStructuredAgentEnvironmentResolvers } from '../runtime/agent-session/environment/structured-agent-shell-environment' import { identityFor } from '../codex/structured/session-lifecycle/codex-structured-session-adapter-fixture' import type * as CommandResolution from '../../shared/node-cli-command-resolution' diff --git a/src/main/preflight/workspace-agent-detection.ts b/src/main/preflight/workspace-agent-detection.ts index ceb5a6ed9e8..482a1c0ad45 100644 --- a/src/main/preflight/workspace-agent-detection.ts +++ b/src/main/preflight/workspace-agent-detection.ts @@ -3,7 +3,7 @@ import type { ProjectLaunchContext } from '../../shared/rpc-contract/preflight-p import { isTuiAgent } from '../../shared/agent-launch/catalog/tui-agent-config' import { WORKSPACE_ON_OTHER_RUNTIME } from '../../shared/protocol-version' import { refreshAtRestCommandContext } from '../native-chat/agent-session-wire/at-rest-command-context' -import { captureHostShellEnvironment } from '../runtime/structured-agent-shell-environment' +import { captureHostShellEnvironment } from '../runtime/agent-session/environment/structured-agent-shell-environment' import { getRepoExecutionHostId, getSshTargetIdForExecutionHost, diff --git a/src/main/rate-limits/antigravity-usage-fetcher.test.ts b/src/main/rate-limits/antigravity-usage-fetcher.test.ts index df7225a9ae4..fbd6fe6753c 100644 --- a/src/main/rate-limits/antigravity-usage-fetcher.test.ts +++ b/src/main/rate-limits/antigravity-usage-fetcher.test.ts @@ -10,7 +10,7 @@ const { hostShellEnvironmentMock } = vi.hoisted(() => ({ hostShellEnvironmentMock: vi.fn(async () => ({ PATH: '/usr/bin' })) })) -vi.mock('../runtime/structured-agent-shell-environment', () => ({ +vi.mock('../runtime/agent-session/environment/structured-agent-shell-environment', () => ({ hostShellEnvironment: hostShellEnvironmentMock })) diff --git a/src/main/rate-limits/antigravity-usage-fetcher.ts b/src/main/rate-limits/antigravity-usage-fetcher.ts index 405a9d2042e..3a497a49178 100644 --- a/src/main/rate-limits/antigravity-usage-fetcher.ts +++ b/src/main/rate-limits/antigravity-usage-fetcher.ts @@ -1,7 +1,7 @@ import { runProcess } from '@orca/process-host' import { hasReachedAppVersion, parseCliVersion } from '../../shared/app-version' import { resolveCommandOnLocalPath } from '../ipc/command-path/command-path-resolver' -import { hostShellEnvironment } from '../runtime/structured-agent-shell-environment' +import { hostShellEnvironment } from '../runtime/agent-session/environment/structured-agent-shell-environment' import type { ProviderRateLimits, UsageRateLimitFailureKind } from '../../shared/rate-limit-types' import { ANTIGRAVITY_MIN_USAGE_VERSION, diff --git a/src/main/runtime/agent-session-inventory-scale.test.ts b/src/main/runtime/agent-session-inventory-scale.test.ts index 2fa80418520..89d49d24256 100644 --- a/src/main/runtime/agent-session-inventory-scale.test.ts +++ b/src/main/runtime/agent-session-inventory-scale.test.ts @@ -38,7 +38,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from './structured-worker-identity' +} from './orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { openAgentSessionRecordStoreOnce, releaseAgentSessionRecordStore diff --git a/src/main/runtime/agent-session-tab-layout-queue.ts b/src/main/runtime/agent-session-tab-layout-queue.ts index 730d4a91f0e..1a5364c67ca 100644 --- a/src/main/runtime/agent-session-tab-layout-queue.ts +++ b/src/main/runtime/agent-session-tab-layout-queue.ts @@ -1,4 +1,4 @@ -import { savedSessionId } from './saved-structured-agent-session-restoration' +import { savedSessionId } from './agent-session/lifecycle/saved-structured-agent-session-restoration' import type { ExecutionHostId } from '../../shared/execution-host' import type { LayoutApplyReply } from '../../shared/workspace-layout/workspace-layout-command-types' import type { WorkspaceSessionState } from '../../shared/workspace-session/workspace-session-state-types' diff --git a/src/main/runtime/runtime-account-controller.ts b/src/main/runtime/agent-session/environment/runtime-account-controller.ts similarity index 89% rename from src/main/runtime/runtime-account-controller.ts rename to src/main/runtime/agent-session/environment/runtime-account-controller.ts index 4213b407bda..531d7a8a7af 100644 --- a/src/main/runtime/runtime-account-controller.ts +++ b/src/main/runtime/agent-session/environment/runtime-account-controller.ts @@ -1,6 +1,6 @@ -import type { ClaudeAccountService } from '../claude-accounts/service' -import { hasAppEnvironment } from '../../shared/app-environment' -import { getManagedDataAccountService } from '../managed-data-accounts/service' +import type { ClaudeAccountService } from '../../../claude-accounts/service' +import { hasAppEnvironment } from '../../../../shared/app-environment' +import { getManagedDataAccountService } from '../../../managed-data-accounts/service' import type { ClaudeAccountSignIn, ClaudeRateLimitAccountsState, @@ -8,33 +8,34 @@ import type { CodexRateLimitAccountsState, ManagedDataAccountProvider, ManagedDataAccountsState -} from '../../shared/managed-account-types' -import type { - CodexAccountService, - CodexResetCreditRejectedBeforeProviderReason -} from '../codex-accounts/service' -import type { CodexAccountSelectionTarget } from '../codex-accounts/runtime-selection' -import type { RateLimitService } from '../rate-limits/service' +} from '../../../../shared/managed-account-types' +import type { CodexAccountService } from '../../../codex-accounts/service' +import type { CodexResetCreditRejectedBeforeProviderReason } from '../../../codex-accounts/codex-account-service-types' +import type { CodexAccountSelectionTarget } from '../../../../shared/codex-selection-lane' +import type { RateLimitService } from '../../../rate-limits/service' import type { HostAccountSignInChannel, HostAccountSignInProvider, HostAccountSignInStatus -} from '../../shared/host-account-sign-in-types' -import type { CodexRateLimitResetOutcome, RateLimitState } from '../../shared/rate-limit-types' -import type { CodexResetCreditExpectedScope } from '../../shared/codex-reset-credit-scope' -import type { CommitMessageAgentEnvironmentResolvers } from '../text-generation/commit-message-agent-environment' +} from '../../../../shared/host-account-sign-in-types' +import type { + CodexRateLimitResetOutcome, + RateLimitState +} from '../../../../shared/rate-limit-types' +import type { CodexResetCreditExpectedScope } from '../../../../shared/codex-reset-credit-scope' +import type { CommitMessageAgentEnvironmentResolvers } from '../../../text-generation/commit-message-agent-environment' import { getClaudeSelectionTargetForAccount, getSelectedClaudeAccountIdForTarget, type ClaudeAccountSelectionTarget -} from '../claude-accounts/runtime-selection' +} from '../../../claude-accounts/runtime-selection' import { hostAccountsManagedByDesktopMessage, type HostAccountLaunchEnv -} from '../../shared/host-account-launch-env' -import type { HostClaudeProfileRefresh } from './host-claude-profile-refresh' -import { HostAccountLaunchEnvState } from './host-account-launch-env-state' -import type { RuntimeNotifier } from './runtime-notifier-contract' +} from '../../../../shared/host-account-launch-env' +import type { HostClaudeProfileRefresh } from '../../host-claude-profile-refresh' +import { HostAccountLaunchEnvState } from '../../host-account-launch-env-state' +import type { RuntimeNotifier } from '../../runtime-notifier-contract' export type RuntimeAccountServices = { claudeAccounts: ClaudeAccountService diff --git a/src/main/runtime/structured-agent-account-home.ts b/src/main/runtime/agent-session/environment/structured-agent-account-home.ts similarity index 83% rename from src/main/runtime/structured-agent-account-home.ts rename to src/main/runtime/agent-session/environment/structured-agent-account-home.ts index bf4cc524892..d74eaabd789 100644 --- a/src/main/runtime/structured-agent-account-home.ts +++ b/src/main/runtime/agent-session/environment/structured-agent-account-home.ts @@ -1,14 +1,14 @@ -import type { AgentSessionAccountKind } from '../../shared/agent-session/agent-session-availability' -import type { GlobalSettings } from '../../shared/global-settings-types' -import { normalizeRuntimePathForComparison } from '../../shared/cross-platform-path' -import { getClaudeProfileRouter } from '../claude-accounts/claude-profile-installed-router' -import { claudeRoutedHomeAsync } from '../claude-accounts/claude-profile-routed-home' -import { normalizeCodexRuntimeSelection } from '../codex-accounts/runtime-selection' +import type { AgentSessionAccountKind } from '../../../../shared/agent-session/agent-session-availability' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import { normalizeRuntimePathForComparison } from '../../../../shared/cross-platform-path' +import { getClaudeProfileRouter } from '../../../claude-accounts/claude-profile-installed-router' +import { claudeRoutedHomeAsync } from '../../../claude-accounts/claude-profile-routed-home' +import { normalizeCodexRuntimeSelection } from '../../../codex-accounts/runtime-selection' import { resolveOrcaManagedCodexHomePath, getSystemCodexHomePath -} from '../codex/configuration/homes/codex-home-paths' -import { resolveAbsoluteDirOverride } from '../../shared/absolute-dir-override' +} from '../../../codex/configuration/homes/codex-home-paths' +import { resolveAbsoluteDirOverride } from '../../../../shared/absolute-dir-override' import { homedir } from 'node:os' import { join } from 'node:path' diff --git a/src/main/runtime/structured-agent-shell-environment-catalog.test.ts b/src/main/runtime/agent-session/environment/structured-agent-shell-environment-catalog.test.ts similarity index 94% rename from src/main/runtime/structured-agent-shell-environment-catalog.test.ts rename to src/main/runtime/agent-session/environment/structured-agent-shell-environment-catalog.test.ts index c5fb907ef29..94d5f62601e 100644 --- a/src/main/runtime/structured-agent-shell-environment-catalog.test.ts +++ b/src/main/runtime/agent-session/environment/structured-agent-shell-environment-catalog.test.ts @@ -1,10 +1,10 @@ -import { agentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' +import { agentSessionConversationView } from '../../../../shared/agent-session/lifecycle/agent-session-conversation-view' import { afterEach, expect, it, vi } from 'vitest' -import { createAgentModelCatalogSettingsExpiry } from '../native-chat/agent-model-catalog/agent-model-catalog-account-expiry' -import { agentSessionRecordFixture } from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' -import { agentModelCatalogStore } from '../native-chat/agent-model-catalog/agent-model-catalog-store' -import { agentModelCatalogFingerprintForRecord } from '../native-chat/agent-model-catalog/agent-model-catalog-fingerprint' -import { createAgentModelCatalogService } from '../native-chat/agent-model-catalog/agent-model-catalog-service' +import { createAgentModelCatalogSettingsExpiry } from '../../../native-chat/agent-model-catalog/agent-model-catalog-account-expiry' +import { agentSessionRecordFixture } from '../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' +import { agentModelCatalogStore } from '../../../native-chat/agent-model-catalog/agent-model-catalog-store' +import { agentModelCatalogFingerprintForRecord } from '../../../native-chat/agent-model-catalog/agent-model-catalog-fingerprint' +import { createAgentModelCatalogService } from '../../../native-chat/agent-model-catalog/agent-model-catalog-service' import { captureHostShellEnvironment, createStructuredAgentEnvironmentResolvers, @@ -24,7 +24,7 @@ const shell = vi.hoisted( nextSaved: [] }) ) -vi.mock('../startup/login-shell-environment', () => ({ +vi.mock('../../../startup/login-shell-environment', () => ({ resolveLoginShellEnvironment: async (options?: { startedAfter?: number }) => { if (options?.startedAfter !== undefined) { shell.current = { ...shell.next } @@ -32,7 +32,7 @@ vi.mock('../startup/login-shell-environment', () => ({ return { ...shell.current } } })) -vi.mock('../pty/environment/windows-environment-path', () => ({ +vi.mock('../../../pty/environment/windows-environment-path', () => ({ cachedPersistedWindowsPathSegments: () => shell.saved, readPersistedWindowsPathSegmentsAsync: async () => (shell.saved = [...shell.nextSaved]), mergePersistedWindowsPathAsync: async () => {} diff --git a/src/main/runtime/structured-agent-shell-environment.test.ts b/src/main/runtime/agent-session/environment/structured-agent-shell-environment.test.ts similarity index 98% rename from src/main/runtime/structured-agent-shell-environment.test.ts rename to src/main/runtime/agent-session/environment/structured-agent-shell-environment.test.ts index 019d903e006..33b709db8dd 100644 --- a/src/main/runtime/structured-agent-shell-environment.test.ts +++ b/src/main/runtime/agent-session/environment/structured-agent-shell-environment.test.ts @@ -3,14 +3,14 @@ import { chmod, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, describe, expect, it, vi } from 'vitest' -import * as loginShell from '../startup/login-shell-environment' +import * as loginShell from '../../../startup/login-shell-environment' import type * as runProcessModule from '@orca/process-host' import { __resetPersistedWindowsPathCacheForTests, readPersistedWindowsPathSegmentsAsync -} from '../pty/environment/windows-environment-path' -import { resolveAgainAfterRefreshOnMissingProgram } from '../native-chat/structured-agent-command-resolution' -import { __setWindowsPathRegistryLoaderForTests } from '../pty/environment/windows-path-registry-reader' +} from '../../../pty/environment/windows-environment-path' +import { resolveAgainAfterRefreshOnMissingProgram } from '../../../native-chat/structured-agent-command-resolution' +import { __setWindowsPathRegistryLoaderForTests } from '../../../pty/environment/windows-path-registry-reader' import { createStructuredAgentEnvironmentResolvers, structuredAgentBaseEnvironment diff --git a/src/main/runtime/structured-agent-shell-environment.ts b/src/main/runtime/agent-session/environment/structured-agent-shell-environment.ts similarity index 94% rename from src/main/runtime/structured-agent-shell-environment.ts rename to src/main/runtime/agent-session/environment/structured-agent-shell-environment.ts index a750b247964..db0096aff2c 100644 --- a/src/main/runtime/structured-agent-shell-environment.ts +++ b/src/main/runtime/agent-session/environment/structured-agent-shell-environment.ts @@ -1,20 +1,20 @@ -import { agentModelCatalogStore } from '../native-chat/agent-model-catalog/agent-model-catalog-store' -import { resolveLoginShellEnvironment } from '../startup/login-shell-environment' -import { refreshAtRestCommandContext } from '../native-chat/agent-session-wire/at-rest-command-context' +import { agentModelCatalogStore } from '../../../native-chat/agent-model-catalog/agent-model-catalog-store' +import { resolveLoginShellEnvironment } from '../../../startup/login-shell-environment' +import { refreshAtRestCommandContext } from '../../../native-chat/agent-session-wire/at-rest-command-context' import { cachedPersistedWindowsPathSegments, mergePersistedWindowsPathAsync, readPersistedWindowsPathSegmentsAsync -} from '../pty/environment/windows-environment-path' +} from '../../../pty/environment/windows-environment-path' import { mergeWindowsPathSegments, resolvePathEnvKey -} from '../pty/environment/windows-path-segment-merge' -import type { GlobalSettings } from '../../shared/global-settings-types' +} from '../../../pty/environment/windows-path-segment-merge' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import { nativeChatShellEnvironmentPolicy, type NativeChatShellEnvironmentPolicy -} from '../../shared/native-chat/native-chat-shell-environment' +} from '../../../../shared/native-chat/native-chat-shell-environment' // Even with shell inheritance off, preserve CLI lookup, locale and agent socket. const BASELINE_SHELL_VARIABLES = ['PATH', 'LANG', 'LC_ALL', 'LC_CTYPE', 'SSH_AUTH_SOCK'] diff --git a/src/main/runtime/structured-session-child-env.test-support.ts b/src/main/runtime/agent-session/environment/structured-session-child-env.test-support.ts similarity index 100% rename from src/main/runtime/structured-session-child-env.test-support.ts rename to src/main/runtime/agent-session/environment/structured-session-child-env.test-support.ts diff --git a/src/main/runtime/structured-session-child-env.test.ts b/src/main/runtime/agent-session/environment/structured-session-child-env.test.ts similarity index 96% rename from src/main/runtime/structured-session-child-env.test.ts rename to src/main/runtime/agent-session/environment/structured-session-child-env.test.ts index 17d47fef0a2..4c85c8522f0 100644 --- a/src/main/runtime/structured-session-child-env.test.ts +++ b/src/main/runtime/agent-session/environment/structured-session-child-env.test.ts @@ -1,10 +1,10 @@ import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { installFakeAppEnvironment } from '../../../config/scripts/test-runtime/environment/vitest-host-ports-setup' -import { resolveProviderChildEnv } from '../provider-process/provider-process-launch' +import { installFakeAppEnvironment } from '../../../../../config/scripts/test-runtime/environment/vitest-host-ports-setup' +import { resolveProviderChildEnv } from '../../../provider-process/provider-process-launch' const shim = vi.hoisted(() => ({ ensureLinuxTerminalOrcaCliShimDir: vi.fn() })) -vi.mock('../cli/linux-terminal-orca-cli-shim', () => shim) +vi.mock('../../../cli/linux-terminal-orca-cli-shim', () => shim) import { SEALED_TEST_SPAWN_TOKEN, @@ -16,7 +16,7 @@ import { structuredWorkerHostScope, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from './structured-worker-identity' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' const SESSION_ID = 'f7a1c0de-1111-4222-8333-444455556666' const USER_DATA = '/data/orca' diff --git a/src/main/runtime/structured-session-child-env.ts b/src/main/runtime/agent-session/environment/structured-session-child-env.ts similarity index 85% rename from src/main/runtime/structured-session-child-env.ts rename to src/main/runtime/agent-session/environment/structured-session-child-env.ts index 1ef08c05692..477968ced55 100644 --- a/src/main/runtime/structured-session-child-env.ts +++ b/src/main/runtime/agent-session/environment/structured-session-child-env.ts @@ -4,20 +4,20 @@ * Empty remote selectors to mask the parent env; explicit flags still work, and login profiles can re-export selectors. * Omit pane identity: hooks and mobile status assume a live PTY leaf. Resolve worker identity at every spawn, including recovery and clear. */ -import { getAppEnvironment, hasAppEnvironment } from '../../shared/app-environment' +import { getAppEnvironment, hasAppEnvironment } from '../../../../shared/app-environment' import { ORCA_AGENT_SESSION_ID_ENV, ORCA_AGENT_SESSION_SPAWN_TOKEN_ENV -} from '../../shared/agent-session/lifecycle/agent-session-caller-env' +} from '../../../../shared/agent-session/lifecycle/agent-session-caller-env' import { ORCA_SCRUB_SAFE_LAUNCH_ENV, ORCA_SCRUB_SAFE_PANE_ENV -} from '../../shared/agent-hook-listener/transport/agent-hook-scrub-safe-env' -import { ORCA_STRUCTURED_SESSION_ENV } from '../../shared/structured-session-marker' -import { withCliRuntimeOnPath } from '../../shared/node-cli-command-resolution' -import { prependOrcaCliDirToChildPath } from '../cli/orca-cli-child-path' -import { AGENT_HOOK_RUNTIME_ENV_KEYS } from '../ipc/pty/host-env/spawn-env-keys' -import { resolveStructuredWorkerIdentityForSession } from './structured-worker-authority' +} from '../../../../shared/agent-hook-listener/transport/agent-hook-scrub-safe-env' +import { ORCA_STRUCTURED_SESSION_ENV } from '../../../../shared/structured-session-marker' +import { withCliRuntimeOnPath } from '../../../../shared/node-cli-command-resolution' +import { prependOrcaCliDirToChildPath } from '../../../cli/orca-cli-child-path' +import { AGENT_HOOK_RUNTIME_ENV_KEYS } from '../../../ipc/pty/host-env/spawn-env-keys' +import { resolveStructuredWorkerIdentityForSession } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' /** Remove inherited pane identity so hook status cannot compete with the structured-session producer. */ export const STRUCTURED_CHILD_ENV_TO_DELETE: readonly string[] = [ diff --git a/src/main/runtime/structured-session-cli-login-shell.live-shell.test.ts b/src/main/runtime/agent-session/environment/structured-session-cli-login-shell.live-shell.test.ts similarity index 100% rename from src/main/runtime/structured-session-cli-login-shell.live-shell.test.ts rename to src/main/runtime/agent-session/environment/structured-session-cli-login-shell.live-shell.test.ts diff --git a/src/main/runtime/structured-session-cli-login-shell.test.ts b/src/main/runtime/agent-session/environment/structured-session-cli-login-shell.test.ts similarity index 100% rename from src/main/runtime/structured-session-cli-login-shell.test.ts rename to src/main/runtime/agent-session/environment/structured-session-cli-login-shell.test.ts diff --git a/src/main/runtime/structured-session-login-shell-test-harness.ts b/src/main/runtime/agent-session/environment/structured-session-login-shell-test-harness.ts similarity index 93% rename from src/main/runtime/structured-session-login-shell-test-harness.ts rename to src/main/runtime/agent-session/environment/structured-session-login-shell-test-harness.ts index fd60da59d34..276292b5ed5 100644 --- a/src/main/runtime/structured-session-login-shell-test-harness.ts +++ b/src/main/runtime/agent-session/environment/structured-session-login-shell-test-harness.ts @@ -3,7 +3,7 @@ import { chmodSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' -import { installFakeAppEnvironment } from '../../../config/scripts/test-runtime/environment/vitest-host-ports-setup' +import { installFakeAppEnvironment } from '../../../../../config/scripts/test-runtime/environment/vitest-host-ports-setup' import { runProcess } from '@orca/process-host' import { sealedChildEnv } from './structured-session-child-env.test-support' diff --git a/src/main/runtime/claude-structured-fake-connection-test-fixture.ts b/src/main/runtime/agent-session/installation/claude-structured-fake-connection-test-fixture.ts similarity index 95% rename from src/main/runtime/claude-structured-fake-connection-test-fixture.ts rename to src/main/runtime/agent-session/installation/claude-structured-fake-connection-test-fixture.ts index dd921f74f62..dc27488c897 100644 --- a/src/main/runtime/claude-structured-fake-connection-test-fixture.ts +++ b/src/main/runtime/agent-session/installation/claude-structured-fake-connection-test-fixture.ts @@ -1,15 +1,15 @@ import { expect, vi } from 'vitest' -import { getStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' +import { getStructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-registry' import { type claudeInitialization, claudeInitializationScope -} from '../claude/structured/claude-structured-startup-settled-test-support' +} from '../../../claude/structured/claude-structured-startup-settled-test-support' import type { ClaudeStreamJsonConnection, ClaudeStreamJsonConnectionHandlers, ClaudeStreamJsonLaunch, openClaudeStreamJsonConnection -} from '../claude/claude-stream-json-connection' +} from '../../../claude/claude-stream-json-connection' export type FakeClaudeConnection = Omit & { closed: boolean diff --git a/src/main/runtime/orca-runtime-structured-agent-registration-seam.test.ts b/src/main/runtime/agent-session/installation/orca-runtime-structured-agent-registration-seam.test.ts similarity index 95% rename from src/main/runtime/orca-runtime-structured-agent-registration-seam.test.ts rename to src/main/runtime/agent-session/installation/orca-runtime-structured-agent-registration-seam.test.ts index 6a40bea299e..ea75ea5a695 100644 --- a/src/main/runtime/orca-runtime-structured-agent-registration-seam.test.ts +++ b/src/main/runtime/agent-session/installation/orca-runtime-structured-agent-registration-seam.test.ts @@ -1,10 +1,10 @@ // Support/create/account reads share registration authority before host install; unknown agents must not install one. import { afterEach, describe, expect, it, vi } from 'vitest' -import { OrcaRuntimeService } from './orca-runtime' +import { OrcaRuntimeService } from '../../orca-runtime' import { structuredAgentRuntimeRegistration } from './structured-agent-runtime-registrations' -import { acpLaunchSpecFor } from '../acp/acp-launch-specs' -import { AcpStructuredSessionAdapter } from '../acp/acp-structured-session-adapter' +import { acpLaunchSpecFor } from '../../../acp/acp-launch-specs' +import { AcpStructuredSessionAdapter } from '../../../acp/acp-structured-session-adapter' afterEach(() => vi.restoreAllMocks()) diff --git a/src/main/runtime/structured-agent-runtime-metadata.ts b/src/main/runtime/agent-session/installation/structured-agent-runtime-metadata.ts similarity index 77% rename from src/main/runtime/structured-agent-runtime-metadata.ts rename to src/main/runtime/agent-session/installation/structured-agent-runtime-metadata.ts index 33fc47799f9..c06f9dcc71d 100644 --- a/src/main/runtime/structured-agent-runtime-metadata.ts +++ b/src/main/runtime/agent-session/installation/structured-agent-runtime-metadata.ts @@ -1,28 +1,28 @@ -import { agentSessionAccountHome } from '../../shared/agent-session/lifecycle/agent-session-account-home' -import { applyStructuredCodexWorkspaceTrust } from '../agent-launch/trust/agent-workspace-trust-spawn' -import { ACP_LAUNCH_SPECS, type AcpLaunchSpec } from '../acp/acp-launch-specs' -import { acpStructuredAgentDefinition } from '../acp/acp-structured-agent-definitions' -import { resolveAcpLaunchCommand } from '../acp/acp-structured-launch-resolution' -import { CODEX_STRUCTURED_AGENT } from '../codex/structured/launch/codex-structured-agent-definition' -import { CLAUDE_STRUCTURED_AGENT } from '../claude/structured/claude-structured-agent-definition' -import { CLAUDE_CLI_CONVERSATIONS } from '../claude/claude-cli-conversations' -import { CODEX_CLI_CONVERSATIONS } from '../codex/history/journal-views/codex-cli-conversations' -import { isNativeLocalLocation as supportsCodexStructuredLocation } from '../../shared/execution-host' -import { supportsClaudeStructuredLocation } from '../claude/structured/launch/claude-structured-location-support' -import { supportsAcpStructuredLocation } from '../acp/acp-structured-location-support' -import { PI_RPC_RUNTIME_METADATA } from '../pi/rpc-runtime-metadata' -import { getClaudeProfileRouter } from '../claude-accounts/claude-profile-installed-router' +import { agentSessionAccountHome } from '../../../../shared/agent-session/lifecycle/agent-session-account-home' +import { applyStructuredCodexWorkspaceTrust } from '../../../agent-launch/trust/agent-workspace-trust-spawn' +import { ACP_LAUNCH_SPECS, type AcpLaunchSpec } from '../../../acp/acp-launch-specs' +import { acpStructuredAgentDefinition } from '../../../acp/acp-structured-agent-definitions' +import { resolveAcpLaunchCommand } from '../../../acp/acp-structured-launch-resolution' +import { CODEX_STRUCTURED_AGENT } from '../../../codex/structured/launch/codex-structured-agent-definition' +import { CLAUDE_STRUCTURED_AGENT } from '../../../claude/structured/claude-structured-agent-definition' +import { CLAUDE_CLI_CONVERSATIONS } from '../../../claude/claude-cli-conversations' +import { CODEX_CLI_CONVERSATIONS } from '../../../codex/history/journal-views/codex-cli-conversations' +import { isNativeLocalLocation as supportsCodexStructuredLocation } from '../../../../shared/execution-host' +import { supportsClaudeStructuredLocation } from '../../../claude/structured/launch/claude-structured-location-support' +import { supportsAcpStructuredLocation } from '../../../acp/acp-structured-location-support' +import { PI_RPC_RUNTIME_METADATA } from '../../../pi/rpc-runtime-metadata' +import { getClaudeProfileRouter } from '../../../claude-accounts/claude-profile-installed-router' import { resolveStructuredClaudeAccountHomePath, resolveStructuredCodexAccountHomePath -} from './structured-agent-account-home' +} from '../environment/structured-agent-account-home' import { acpModelCatalogDiscovery, claudeModelCatalogDiscovery, codexModelCatalogDiscovery -} from './structured-agent-model-catalog-discovery' -import { resolveStructuredAgentCommand } from '../native-chat/structured-agent-command-resolution' -import { getProfileUserDataPath } from '../orca-profiles/profile-storage-paths' +} from '../model-catalog/structured-agent-model-catalog-discovery' +import { resolveStructuredAgentCommand } from '../../../native-chat/structured-agent-command-resolution' +import { getProfileUserDataPath } from '../../../orca-profiles/profile-storage-paths' import type { StructuredAgentAccountHomeRequest, StructuredAgentChatProgram, diff --git a/src/main/runtime/structured-agent-runtime-registration-types.ts b/src/main/runtime/agent-session/installation/structured-agent-runtime-registration-types.ts similarity index 80% rename from src/main/runtime/structured-agent-runtime-registration-types.ts rename to src/main/runtime/agent-session/installation/structured-agent-runtime-registration-types.ts index d6dda160833..f7f5cd596fb 100644 --- a/src/main/runtime/structured-agent-runtime-registration-types.ts +++ b/src/main/runtime/agent-session/installation/structured-agent-runtime-registration-types.ts @@ -1,24 +1,24 @@ -import type { AgentSessionExecutionLocation } from '../../shared/agent-session/lifecycle/agent-session-record' -import type { AgentSessionAccountHome } from '../../shared/agent-session/lifecycle/agent-session-account-home' -import type { applyStructuredCodexWorkspaceTrust } from '../agent-launch/trust/agent-workspace-trust-spawn' -import type { StructuredAgentCliConversations } from '../native-chat/structured-agent-cli-conversations' +import type { AgentSessionExecutionLocation } from '../../../../shared/agent-session/lifecycle/agent-session-record' +import type { AgentSessionAccountHome } from '../../../../shared/agent-session/lifecycle/agent-session-account-home' +import type { applyStructuredCodexWorkspaceTrust } from '../../../agent-launch/trust/agent-workspace-trust-spawn' +import type { StructuredAgentCliConversations } from '../../../native-chat/structured-agent-cli-conversations' import type { StructuredAgentSessionAdapter, StructuredAgentSessionLifecycleEvent -} from '../native-chat/agent-session-wire/structured-agent-session-adapter' -import type { StructuredAgentCommandSettings } from '../native-chat/structured-agent-command-resolution' -import type { StructuredAgentDefinition } from '../native-chat/agent-session-wire/structured-agent-definition' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import type { JournalHostDatabase } from '../native-chat/agent-session-journal/journal-host-database' -import type { AgentModelCatalogDiscovery } from '../native-chat/agent-model-catalog/agent-model-catalog-discovery' -import type { AgentSessionRecordStore } from './agent-session/records/agent-session-record-store' -import type { createStructuredAgentSessionDispatchFollowUps } from './agent-session/structured-agent-session-dispatch-followups' +} from '../../../native-chat/agent-session-wire/structured-agent-session-adapter' +import type { StructuredAgentCommandSettings } from '../../../native-chat/structured-agent-command-resolution' +import type { StructuredAgentDefinition } from '../../../native-chat/agent-session-wire/structured-agent-definition' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' +import type { JournalHostDatabase } from '../../../native-chat/agent-session-journal/journal-host-database' +import type { AgentModelCatalogDiscovery } from '../../../native-chat/agent-model-catalog/agent-model-catalog-discovery' +import type { AgentSessionRecordStore } from '../records/agent-session-record-store' +import type { createStructuredAgentSessionDispatchFollowUps } from '../structured-agent-session-dispatch-followups' import type { StructuredAgentSessionRuntimeDeps } from './structured-agent-session-runtime-contract' -import type { createStructuredAgentEnvironmentResolvers } from './structured-agent-shell-environment' +import type { createStructuredAgentEnvironmentResolvers } from '../environment/structured-agent-shell-environment' import type { StructuredClaudeAccountHomeDeps, StructuredCodexAccountHomeDeps -} from './structured-agent-account-home' +} from '../environment/structured-agent-account-home' /** What an agent's adapter is built from: the open store and the runtime around it. */ export type StructuredAgentAdapterContext = { diff --git a/src/main/runtime/structured-agent-runtime-registrations.ts b/src/main/runtime/agent-session/installation/structured-agent-runtime-registrations.ts similarity index 79% rename from src/main/runtime/structured-agent-runtime-registrations.ts rename to src/main/runtime/agent-session/installation/structured-agent-runtime-registrations.ts index be28adad747..ae14fb31b1c 100644 --- a/src/main/runtime/structured-agent-runtime-registrations.ts +++ b/src/main/runtime/agent-session/installation/structured-agent-runtime-registrations.ts @@ -1,34 +1,34 @@ -import { AcpAtRestCommandCatalog } from '../acp/acp-at-rest-commands' -import { resolveNativeChatVisualsSkillLocation } from '../native-chat/native-chat-visuals-skill-location' -import { withSupportedCodexCli } from '../codex/structured/launch/codex-cli-installation-error' -import { codexStructuredLaunchPart } from '../codex/structured/launch/codex-structured-launch-resolution' -import { claudeStructuredLaunchPart } from '../claude/structured/launch/claude-structured-launch-resolution' -import { claudeNamingInvocation } from '../claude/claude-naming-invocation' -import { createClaudeCommandCatalogProbe } from '../claude/claude-command-catalog-probe' -import { CodexStructuredSessionAdapter } from '../codex/structured/session-lifecycle/codex-structured-session-adapter' -import { createCodexAtRestSkillCatalog } from '../codex/structured/catalog/codex-at-rest-skills-probe' -import { CODEX_STRUCTURED_AGENT } from '../codex/structured/launch/codex-structured-agent-definition' -import { CLAUDE_STRUCTURED_AGENT } from '../claude/structured/claude-structured-agent-definition' -import { agentModelCatalogStore } from '../native-chat/agent-model-catalog/agent-model-catalog-store' -import { agentSessionAttachmentStoreRoot } from '../native-chat/agent-session-attachments/agent-session-attachment-references' -import { restoreJournal } from '../native-chat/agent-session-journal/journal-open' +import { AcpAtRestCommandCatalog } from '../../../acp/acp-at-rest-commands' +import { resolveNativeChatVisualsSkillLocation } from '../../../native-chat/native-chat-visuals-skill-location' +import { withSupportedCodexCli } from '../../../codex/structured/launch/codex-cli-installation-error' +import { codexStructuredLaunchPart } from '../../../codex/structured/launch/codex-structured-launch-resolution' +import { claudeStructuredLaunchPart } from '../../../claude/structured/launch/claude-structured-launch-resolution' +import { claudeNamingInvocation } from '../../../claude/claude-naming-invocation' +import { createClaudeCommandCatalogProbe } from '../../../claude/claude-command-catalog-probe' +import { CodexStructuredSessionAdapter } from '../../../codex/structured/session-lifecycle/codex-structured-session-adapter' +import { createCodexAtRestSkillCatalog } from '../../../codex/structured/catalog/codex-at-rest-skills-probe' +import { CODEX_STRUCTURED_AGENT } from '../../../codex/structured/launch/codex-structured-agent-definition' +import { CLAUDE_STRUCTURED_AGENT } from '../../../claude/structured/claude-structured-agent-definition' +import { agentModelCatalogStore } from '../../../native-chat/agent-model-catalog/agent-model-catalog-store' +import { agentSessionAttachmentStoreRoot } from '../../../native-chat/agent-session-attachments/agent-session-attachment-references' +import { restoreJournal } from '../../../native-chat/agent-session-journal/journal-open' import { createStructuredClaudeRuntimeAdapter } from './structured-claude-runtime-adapter' -import type { AcpLaunchSpec } from '../acp/acp-launch-specs' -import { acpStructuredAgentDefinition } from '../acp/acp-structured-agent-definitions' -import { createAcpAgentConnection } from '../acp/acp-agent-connection' -import { createOpenCodeAcpConnection } from '../opencode/opencode-acp-connection' -import { acpStructuredLaunchPart } from '../acp/acp-structured-launch-resolution' -import { AcpStructuredSessionAdapter } from '../acp/acp-structured-session-adapter' -import { PI_RPC_RUNTIME_REGISTRATION } from '../pi/rpc-runtime-registration' +import type { AcpLaunchSpec } from '../../../acp/acp-launch-specs' +import { acpStructuredAgentDefinition } from '../../../acp/acp-structured-agent-definitions' +import { createAcpAgentConnection } from '../../../acp/acp-agent-connection' +import { createOpenCodeAcpConnection } from '../../../opencode/opencode-acp-connection' +import { acpStructuredLaunchPart } from '../../../acp/acp-structured-launch-resolution' +import { AcpStructuredSessionAdapter } from '../../../acp/acp-structured-session-adapter' +import { PI_RPC_RUNTIME_REGISTRATION } from '../../../pi/rpc-runtime-registration' import { claudeLaunchEnvOverlay, claudeListingDeps -} from './structured-agent-model-catalog-discovery' +} from '../model-catalog/structured-agent-model-catalog-discovery' import { composeStructuredLaunch, composeStructuredLaunchRead, structuredAgentLaunchSources -} from './structured-agent-launch-composition' +} from '../launch/structured-agent-launch-composition' import { STRUCTURED_AGENT_RUNTIME_CATALOG, type StructuredAgentRuntimeCatalogEntry @@ -39,16 +39,6 @@ import type { StructuredAgentRuntimeRegistration } from './structured-agent-runtime-registration-types' -export type { - StructuredAgentAdapterContext, - StructuredAgentRuntimeAdapter, - StructuredAgentAccountHomeRequest, - StructuredAgentAccountHomeServices, - StructuredAgentModelCatalogContext, - StructuredAgentLaunchCheck, - StructuredAgentRuntimeRegistration -} from './structured-agent-runtime-registration-types' - function createCodexAdapter(context: StructuredAgentAdapterContext): StructuredAgentRuntimeAdapter { const { deps, followUps, host } = context const renameInvocation = { diff --git a/src/main/runtime/structured-agent-scripted-child.test-fixture.ts b/src/main/runtime/agent-session/installation/structured-agent-scripted-child.test-fixture.ts similarity index 100% rename from src/main/runtime/structured-agent-scripted-child.test-fixture.ts rename to src/main/runtime/agent-session/installation/structured-agent-scripted-child.test-fixture.ts diff --git a/src/main/runtime/structured-agent-session-host-assembly.ts b/src/main/runtime/agent-session/installation/structured-agent-session-host-assembly.ts similarity index 80% rename from src/main/runtime/structured-agent-session-host-assembly.ts rename to src/main/runtime/agent-session/installation/structured-agent-session-host-assembly.ts index 669a3c3e2b6..a2337f7e241 100644 --- a/src/main/runtime/structured-agent-session-host-assembly.ts +++ b/src/main/runtime/agent-session/installation/structured-agent-session-host-assembly.ts @@ -1,30 +1,30 @@ // Loaded on first host install: the host, router and every provider adapter stay out of startup. -import { bindAtRestCommandContexts } from '../native-chat/agent-session-wire/at-rest-command-context' -import { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import { StructuredAgentSessionAdapterRouter } from '../native-chat/agent-session-wire/structured-agent-session-adapter-router' -import { StructuredAgentRegistry } from '../native-chat/agent-session-wire/structured-agent-registry' +import { bindAtRestCommandContexts } from '../../../native-chat/agent-session-wire/at-rest-command-context' +import { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' +import { StructuredAgentSessionAdapterRouter } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter-router' +import { StructuredAgentRegistry } from '../../../native-chat/agent-session-wire/structured-agent-registry' import { createStructuredAgentSessionProviderNaming, withProviderNaming -} from '../native-chat/agent-session-wire/structured-agent-session-provider-naming' -import { setStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' -import { scheduleNativeChatVisualsSweep } from '../native-chat/native-chat-visuals-sweep' -import type { InstalledRuntime } from './agent-session/structured-agent-session-runtime-teardown' -import { AgentSessionRecoveryCapsule } from './agent-session/records/agent-session-recovery-capsule' -import type { OpenedAgentSessionRecordStore } from './agent-session/records/agent-session-record-store-slot' -import { installAgentSessionAttachments } from './agent-session/structured-agent-session-attachment-wiring' +} from '../../../native-chat/agent-session-wire/structured-agent-session-provider-naming' +import { setStructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-registry' +import { scheduleNativeChatVisualsSweep } from '../../../native-chat/native-chat-visuals-sweep' +import type { InstalledRuntime } from '../structured-agent-session-runtime-teardown' +import { AgentSessionRecoveryCapsule } from '../records/agent-session-recovery-capsule' +import type { OpenedAgentSessionRecordStore } from '../records/agent-session-record-store-slot' +import { installAgentSessionAttachments } from '../structured-agent-session-attachment-wiring' import { createStructuredAgentSessionOwnerProbe, createStructuredAgentSessionOwnerProbes -} from './agent-session/structured-agent-session-owner-probe' +} from '../structured-agent-session-owner-probe' import type { StructuredAgentAdapterContext } from './structured-agent-runtime-registration-types' import { STRUCTURED_AGENT_RUNTIME_REGISTRATIONS } from './structured-agent-runtime-registrations' -import { createStructuredAgentSessionLifecycleDelivery } from './agent-session/structured-agent-session-lifecycle-delivery' -import { createStructuredAgentSessionDispatchFollowUps } from './agent-session/structured-agent-session-dispatch-followups' -import type { CatalogOwner } from './structured-agent-model-catalog-wiring' +import { createStructuredAgentSessionLifecycleDelivery } from '../structured-agent-session-lifecycle-delivery' +import { createStructuredAgentSessionDispatchFollowUps } from '../structured-agent-session-dispatch-followups' +import type { CatalogOwner } from '../model-catalog/structured-agent-model-catalog-wiring' import type { StructuredAgentSessionRuntimeDeps } from './structured-agent-session-runtime-contract' -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' +import type { AgentSessionRecord } from '../../../../shared/agent-session/lifecycle/agent-session-record' export async function installOnJournal( deps: StructuredAgentSessionRuntimeDeps, diff --git a/src/main/runtime/structured-agent-session-runtime-contract.ts b/src/main/runtime/agent-session/installation/structured-agent-session-runtime-contract.ts similarity index 77% rename from src/main/runtime/structured-agent-session-runtime-contract.ts rename to src/main/runtime/agent-session/installation/structured-agent-session-runtime-contract.ts index 9bf66a3ddc0..de54a57b6f6 100644 --- a/src/main/runtime/structured-agent-session-runtime-contract.ts +++ b/src/main/runtime/agent-session/installation/structured-agent-session-runtime-contract.ts @@ -1,19 +1,19 @@ -import type { StructuredAgentSessionHostDeps } from '../native-chat/agent-session-wire/structured-agent-session-host' -import type { AgentSessionAccountKind } from '../../shared/agent-session/agent-session-availability' -import type { StructuredAgentSessionTransportOverrides } from './agent-session/structured-agent-session-transport-overrides' -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' -import type { StructuredAttentionMobileDelivery } from './agent-session/structured-agent-session-mobile-attention' +import type { StructuredAgentSessionHostDeps } from '../../../native-chat/agent-session-wire/structured-agent-session-host-types' +import type { AgentSessionAccountKind } from '../../../../shared/agent-session/agent-session-availability' +import type { StructuredAgentSessionTransportOverrides } from '../structured-agent-session-transport-overrides' +import type { AgentSessionRecord } from '../../../../shared/agent-session/lifecycle/agent-session-record' +import type { StructuredAttentionMobileDelivery } from '../structured-agent-session-mobile-attention' import type { StructuredAgentCommand, StructuredAgentCommandSettings -} from '../native-chat/structured-agent-command-resolution' -import type { NativeChatShellEnvironmentPolicy } from '../../shared/native-chat/native-chat-shell-environment' -import type { ClaudeStructuredAuthPolicy } from '../claude-accounts/claude-structured-auth-policy' -import type { RuntimeAgentAccountHomeResolver } from './structured-agent-model-catalog-wiring' -import type { ClaudeCliFlagSupport } from '../claude/claude-cli-flag-support' -import type { StructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger' -import type { AgentSessionStatusSummary } from '../../shared/agent-session/agent-session-wire' -import type { AgentSessionTurnCompletionEvent } from '../../shared/agent-session/view/agent-session-turn-completion-wire' +} from '../../../native-chat/structured-agent-command-resolution' +import type { NativeChatShellEnvironmentPolicy } from '../../../../shared/native-chat/native-chat-shell-environment' +import type { ClaudeStructuredAuthPolicy } from '../../../claude-accounts/claude-structured-auth-policy' +import type { RuntimeAgentAccountHomeResolver } from '../model-catalog/structured-agent-model-catalog-wiring' +import type { ClaudeCliFlagSupport } from '../../../claude/claude-cli-flag-support' +import type { StructuredAgentSessionLogger } from '../../../native-chat/agent-session-wire/structured-agent-session-logger' +import type { AgentSessionStatusSummary } from '../../../../shared/agent-session/agent-session-wire' +import type { AgentSessionTurnCompletionEvent } from '../../../../shared/agent-session/view/agent-session-turn-completion-wire' export type StructuredAgentSessionRuntimeDeps = StructuredAgentSessionTransportOverrides & { /** Host state root. The record store and the journal database both hang off it. */ diff --git a/src/main/runtime/structured-claude-piped-test-support.ts b/src/main/runtime/agent-session/installation/structured-claude-piped-test-support.ts similarity index 94% rename from src/main/runtime/structured-claude-piped-test-support.ts rename to src/main/runtime/agent-session/installation/structured-claude-piped-test-support.ts index 88efe62ced4..e99ff278eba 100644 --- a/src/main/runtime/structured-claude-piped-test-support.ts +++ b/src/main/runtime/agent-session/installation/structured-claude-piped-test-support.ts @@ -2,20 +2,19 @@ import { mkdtemp, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import { expect, vi, type Mock } from 'vitest' -import { createFakePipedChild } from '../../shared/__fixtures__/fake-spawned-child' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { openClaudeStreamJsonConnection } from '../claude/claude-stream-json-connection' +import { createFakePipedChild } from '../../../../shared/__fixtures__/fake-spawned-child' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { openClaudeStreamJsonConnection } from '../../../claude/claude-stream-json-connection' import { hostTestAttachParams, hostTestMessage, HOST_TEST_SESSION as SESSION -} from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' +} from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime -} from './agent-session/structured-agent-session-runtime' +} from '../structured-agent-session-runtime' -export { SESSION } export async function claudePipedFixture() { const directory = await mkdtemp(join(tmpdir(), 'orca-claude-kill-evidence-')) const children: ReturnType[] = [] diff --git a/src/main/runtime/structured-claude-runtime-adapter.ts b/src/main/runtime/agent-session/installation/structured-claude-runtime-adapter.ts similarity index 83% rename from src/main/runtime/structured-claude-runtime-adapter.ts rename to src/main/runtime/agent-session/installation/structured-claude-runtime-adapter.ts index dd4cf9e5b18..ac10edecaf5 100644 --- a/src/main/runtime/structured-claude-runtime-adapter.ts +++ b/src/main/runtime/agent-session/installation/structured-claude-runtime-adapter.ts @@ -1,27 +1,27 @@ -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' -import { claudeProviderHandle } from '../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' -import type { ClaudeEnvDeps } from '../claude/structured/launch/claude-structured-child-env' -import { ClaudeStructuredSessionAdapter } from '../claude/structured/claude-structured-session-adapter' +import type { AgentSessionRecord } from '../../../../shared/agent-session/lifecycle/agent-session-record' +import { claudeProviderHandle } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' +import type { ClaudeEnvDeps } from '../../../claude/structured/launch/claude-structured-child-env' +import { ClaudeStructuredSessionAdapter } from '../../../claude/structured/claude-structured-session-adapter' import type { ClaudeStructuredSessionAdapterDeps, ClaudeStructuredSessionEvent -} from '../claude/structured/claude-structured-session-state' -import { claudeProviderHandleLink } from '../claude/structured/claude-structured-owner-identity' -import type { StructuredAgentSessionLifecycleEvent } from '../native-chat/agent-session-wire/structured-agent-session-adapter' +} from '../../../claude/structured/claude-structured-session-state' +import { claudeProviderHandleLink } from '../../../claude/structured/claude-structured-owner-identity' +import type { StructuredAgentSessionLifecycleEvent } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter' import { recordAgentSessionProviderHandle, reviseAgentSessionProviderResumePoint -} from './agent-session/ownership/agent-session-provider-handle-transition' -import type { AgentSessionRecordStore } from './agent-session/records/agent-session-record-store' +} from '../ownership/agent-session-provider-handle-transition' +import type { AgentSessionRecordStore } from '../records/agent-session-record-store' import { ClaudeAtRestCommandCatalog, type ClaudeAtRestCommandsDeps -} from '../claude/claude-at-rest-commands' -import type { ClaudeCommandCatalogProbe } from '../claude/claude-command-catalog-probe' -import { openClaudeStreamJsonConnection } from '../claude/claude-stream-json-connection' -import type { ClaudeCliFlagSupport } from '../claude/claude-cli-flag-support' -import { prewarmClaudeCliFlags } from '../claude/claude-cli-flag-prewarm' +} from '../../../claude/claude-at-rest-commands' +import type { ClaudeCommandCatalogProbe } from '../../../claude/claude-command-catalog-probe' +import { openClaudeStreamJsonConnection } from '../../../claude/claude-stream-json-connection' +import type { ClaudeCliFlagSupport } from '../../../claude/claude-cli-flag-support' +import { prewarmClaudeCliFlags } from '../../../claude/claude-cli-flag-prewarm' export type StructuredClaudeRuntimeAdapterDeps = { store: AgentSessionRecordStore diff --git a/src/main/runtime/structured-claude-scripted-runtime-test-support.ts b/src/main/runtime/agent-session/installation/structured-claude-scripted-runtime-test-support.ts similarity index 92% rename from src/main/runtime/structured-claude-scripted-runtime-test-support.ts rename to src/main/runtime/agent-session/installation/structured-claude-scripted-runtime-test-support.ts index 0e6eb8e6aec..c1e6665464b 100644 --- a/src/main/runtime/structured-claude-scripted-runtime-test-support.ts +++ b/src/main/runtime/agent-session/installation/structured-claude-scripted-runtime-test-support.ts @@ -3,11 +3,11 @@ import { CLAUDE_CLI_FLAG_PROBE_BUDGET_MS, createClaudeCliFlagSupport -} from '../claude/claude-cli-flag-support' +} from '../../../claude/claude-cli-flag-support' import { providerDiagnostic, withProviderDiagnostic -} from '../../shared/agent-session/failures/agent-session-failure' +} from '../../../../shared/agent-session/failures/agent-session-failure' import { mkdir, mkdtemp, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' @@ -16,17 +16,17 @@ import type { ClaudeStreamJsonConnectionHandlers, ClaudeStreamJsonLaunch, openClaudeStreamJsonConnection -} from '../claude/claude-stream-json-connection' -import { runClaudeControl } from '../claude/claude-agent-sdk-control-requests' -import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id' -import type { AgentSessionAttachParams } from '../native-chat/agent-session-wire/structured-agent-session-attach' -import { hostTestAttachParams } from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' +} from '../../../claude/claude-stream-json-connection' +import { runClaudeControl } from '../../../claude/claude-agent-sdk-control-requests' +import { claudeSessionIdForOrcaSession } from '../../../claude/structured/claude-structured-session-id' +import type { AgentSessionAttachParams } from '../../../native-chat/agent-session-wire/structured-agent-session-attach' +import { hostTestAttachParams } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime -} from './agent-session/structured-agent-session-runtime' -import { createStructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger' +} from '../structured-agent-session-runtime' +import { createStructuredAgentSessionLogger } from '../../../native-chat/agent-session-wire/structured-agent-session-logger' /** The error a real CLI's exit reaches the adapter as: Orca's message, the stderr as a log detail. */ /** A Claude Code with every version-gated flag and control Orca uses. */ diff --git a/src/main/runtime/__snapshots__/structured-agent-launch-parity.test.ts.snap b/src/main/runtime/agent-session/launch/__snapshots__/structured-agent-launch-parity.test.ts.snap similarity index 100% rename from src/main/runtime/__snapshots__/structured-agent-launch-parity.test.ts.snap rename to src/main/runtime/agent-session/launch/__snapshots__/structured-agent-launch-parity.test.ts.snap diff --git a/src/main/runtime/orca-runtime-structured-agent-session-create-intent.test.ts b/src/main/runtime/agent-session/launch/orca-runtime-structured-agent-session-create-intent.test.ts similarity index 95% rename from src/main/runtime/orca-runtime-structured-agent-session-create-intent.test.ts rename to src/main/runtime/agent-session/launch/orca-runtime-structured-agent-session-create-intent.test.ts index c98fd6ee630..5de81e1d764 100644 --- a/src/main/runtime/orca-runtime-structured-agent-session-create-intent.test.ts +++ b/src/main/runtime/agent-session/launch/orca-runtime-structured-agent-session-create-intent.test.ts @@ -1,21 +1,21 @@ -import type { AgentLaunchChoices } from '../../shared/agent-launch/choices/agent-launch-choices' -import { prepareStructuredAgentSessionCreateForWorktree } from './rpc/methods/structured-agent-session-create' -import { agentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' -import { prepareAdoptedTranscript } from '../native-chat/agent-session-wire/structured-agent-session-adopted-import' +import type { AgentLaunchChoices } from '../../../../shared/agent-launch/choices/agent-launch-choices' +import { prepareStructuredAgentSessionCreateForWorktree } from '../../rpc/methods/structured-agent-session-create' +import { agentSessionConversationView } from '../../../../shared/agent-session/lifecycle/agent-session-conversation-view' +import { prepareAdoptedTranscript } from '../../../native-chat/agent-session-wire/structured-agent-session-adopted-import' import { mkdir, mkdtemp, realpath, rm, writeFile } from 'node:fs/promises' import { tmpdir } from 'node:os' import { dirname, join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' const applyAgentWorkspaceTrust = vi.hoisted(() => vi.fn(async () => ({}))) -vi.mock('../agent-launch/trust/agent-workspace-trust', () => ({ applyAgentWorkspaceTrust })) +vi.mock('../../../agent-launch/trust/agent-workspace-trust', () => ({ applyAgentWorkspaceTrust })) -import { OrcaRuntimeService } from './orca-runtime' -import { setStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import { agentSessionRecordFixture } from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' -import { FLOATING_TERMINAL_WORKTREE_ID } from '../../shared/constants' -import { attachFingerprintFields } from '../native-chat/agent-session-wire/structured-agent-session-attach' +import { OrcaRuntimeService } from '../../orca-runtime' +import { setStructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-registry' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' +import { agentSessionRecordFixture } from '../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' +import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' +import { attachFingerprintFields } from '../../../native-chat/agent-session-wire/structured-agent-session-attach' beforeEach(() => { applyAgentWorkspaceTrust.mockClear() diff --git a/src/main/runtime/structured-agent-availability.test.ts b/src/main/runtime/agent-session/launch/structured-agent-availability.test.ts similarity index 94% rename from src/main/runtime/structured-agent-availability.test.ts rename to src/main/runtime/agent-session/launch/structured-agent-availability.test.ts index 5de255e1623..eaf604f5b72 100644 --- a/src/main/runtime/structured-agent-availability.test.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-availability.test.ts @@ -1,8 +1,8 @@ import { homedir } from 'node:os' import { delimiter } from 'node:path' import { beforeEach, expect, it, vi } from 'vitest' -import { getDefaultSettings } from '../../shared/constants' -import type { GlobalSettings } from '../../shared/global-settings-types' +import { getDefaultSettings } from '../../../../shared/constants' +import type { GlobalSettings } from '../../../../shared/global-settings-types' const mocks = vi.hoisted(() => { const programs: Record< @@ -18,21 +18,21 @@ const mocks = vi.hoisted(() => { installable: true } }) -vi.mock('../preflight/workspace-agent-detection', () => ({ +vi.mock('../../../preflight/workspace-agent-detection', () => ({ onAgentsRefreshedOnHost: (listener: () => void) => mocks.refreshed.add(listener) })) -vi.mock('../node-runtime/managed-runtime-installation', () => ({ +vi.mock('../../../node-runtime/managed-runtime-installation', () => ({ onManagedRuntimeReleasesChanged: (listener: () => void) => mocks.releasesChanged.add(listener) })) vi.mock('./structured-agent-launch-support', () => ({ observeStructuredAgentLaunch: mocks.observe, resolveHostStructuredAgentLaunchEnvironment: async () => ({ PATH: '/usr/bin' }) })) -vi.mock('./structured-agent-shell-environment', () => ({ +vi.mock('../environment/structured-agent-shell-environment', () => ({ recaptureHostShellEnvironment: mocks.recapture })) // Grok stands for an agent this host cannot supervise (Windows without process start times). -vi.mock('./structured-agent-runtime-metadata', () => ({ +vi.mock('../installation/structured-agent-runtime-metadata', () => ({ STRUCTURED_AGENT_RUNTIME_METADATA: ['claude', 'grok', 'pi', 'opencode'].map((agent) => ({ definition: { agent }, supportsLocation: () => agent !== 'grok', diff --git a/src/main/runtime/structured-agent-availability.ts b/src/main/runtime/agent-session/launch/structured-agent-availability.ts similarity index 85% rename from src/main/runtime/structured-agent-availability.ts rename to src/main/runtime/agent-session/launch/structured-agent-availability.ts index e067471b99a..57fb39f9c2a 100644 --- a/src/main/runtime/structured-agent-availability.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-availability.ts @@ -2,12 +2,12 @@ import { homedir } from 'node:os' import { delimiter, isAbsolute } from 'node:path' -import type { AgentSessionAgentAvailability } from '../../shared/agent-session/agent-session-agent-availability' -import type { AgentSessionExecutionLocation } from '../../shared/agent-session/lifecycle/agent-session-record' -import { LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host' -import type { GlobalSettings } from '../../shared/global-settings-types' -import { onManagedRuntimeReleasesChanged } from '../node-runtime/managed-runtime-installation' -import { onAgentsRefreshedOnHost } from '../preflight/workspace-agent-detection' +import type { AgentSessionAgentAvailability } from '../../../../shared/agent-session/agent-session-agent-availability' +import type { AgentSessionExecutionLocation } from '../../../../shared/agent-session/lifecycle/agent-session-record' +import { LOCAL_EXECUTION_HOST_ID } from '../../../../shared/execution-host' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import { onManagedRuntimeReleasesChanged } from '../../../node-runtime/managed-runtime-installation' +import { onAgentsRefreshedOnHost } from '../../../preflight/workspace-agent-detection' import { observeStructuredAgentLaunch, resolveHostStructuredAgentLaunchEnvironment @@ -15,10 +15,10 @@ import { import { STRUCTURED_AGENT_RUNTIME_METADATA, structuredAgentRuntimeMetadata -} from './structured-agent-runtime-metadata' -import type { StructuredAgentRuntimeMetadata } from './structured-agent-runtime-registration-types' -import { recaptureHostShellEnvironment } from './structured-agent-shell-environment' -import type { RuntimeStore } from './runtime-store-contract' +} from '../installation/structured-agent-runtime-metadata' +import type { StructuredAgentRuntimeMetadata } from '../installation/structured-agent-runtime-registration-types' +import { recaptureHostShellEnvironment } from '../environment/structured-agent-shell-environment' +import type { RuntimeStore } from '../../runtime-store-contract' export type StructuredAgentAvailabilityReader = ( agents: readonly AgentSessionAgentAvailability[] diff --git a/src/main/runtime/structured-agent-create-support-opencode-rig.test.ts b/src/main/runtime/agent-session/launch/structured-agent-create-support-opencode-rig.test.ts similarity index 94% rename from src/main/runtime/structured-agent-create-support-opencode-rig.test.ts rename to src/main/runtime/agent-session/launch/structured-agent-create-support-opencode-rig.test.ts index 3c33fe8acf7..05e0c2f8149 100644 --- a/src/main/runtime/structured-agent-create-support-opencode-rig.test.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-create-support-opencode-rig.test.ts @@ -2,8 +2,8 @@ import { chmod, mkdir, mkdtemp, 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 { restoreManagedDataAccountEnvironment } from '../../shared/managed-data-account-environment' -import { openCodeAcpAccountBinding } from '../opencode/opencode-structured-account-home' +import { restoreManagedDataAccountEnvironment } from '../../../../shared/managed-data-account-environment' +import { openCodeAcpAccountBinding } from '../../../opencode/opencode-structured-account-home' import { resolveHostStructuredAgentCreateSupport } from './structured-agent-launch-support' // Reproduce #25845 rig routing: private HOME/XDG and Command/PATH must admit stand-in OpenCode 1.18.31 through the real version check. @@ -12,7 +12,7 @@ const { loginShell } = vi.hoisted(() => { const loginShell: { env: Record } = { env: {} } return { loginShell } }) -vi.mock('../startup/login-shell-environment', () => ({ +vi.mock('../../../startup/login-shell-environment', () => ({ resolveLoginShellEnvironment: async () => loginShell.env })) diff --git a/src/main/runtime/structured-agent-install-refresh.test.ts b/src/main/runtime/agent-session/launch/structured-agent-install-refresh.test.ts similarity index 90% rename from src/main/runtime/structured-agent-install-refresh.test.ts rename to src/main/runtime/agent-session/launch/structured-agent-install-refresh.test.ts index 120744a73f9..1b870b075b7 100644 --- a/src/main/runtime/structured-agent-install-refresh.test.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-install-refresh.test.ts @@ -3,9 +3,9 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, describe, expect, it, vi } from 'vitest' -import { resolveCliCommand } from '../../shared/node-cli-command-resolution' +import { resolveCliCommand } from '../../../../shared/node-cli-command-resolution' -import { resolveClaudeChildEnvSources } from '../claude/structured/launch/claude-structured-child-env' +import { resolveClaudeChildEnvSources } from '../../../claude/structured/launch/claude-structured-child-env' const roots: string[] = [] diff --git a/src/main/runtime/structured-agent-launch-composition.test-support.ts b/src/main/runtime/agent-session/launch/structured-agent-launch-composition.test-support.ts similarity index 78% rename from src/main/runtime/structured-agent-launch-composition.test-support.ts rename to src/main/runtime/agent-session/launch/structured-agent-launch-composition.test-support.ts index bb6eef6b25c..1b621c7219e 100644 --- a/src/main/runtime/structured-agent-launch-composition.test-support.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-launch-composition.test-support.ts @@ -1,31 +1,31 @@ // Build agent launch resolvers with production composition over test doubles so tests exercise the shared path. -import type { AgentSessionRecordStore } from './agent-session/records/agent-session-record-store' -import { agentSessionRefusalError } from '../../shared/agent-session/failures/agent-session-wire-refusals' -import type { AgentSessionJournalIdentity } from '../../shared/agent-session/journal/agent-session-journal-identity' -import type { AgentChatPermissionChoice } from '../../shared/agent-launch/permissions/agent-chat-permission-mode' -import type { AcpLaunchSpec } from '../acp/acp-launch-specs' -import { acpStructuredAgentDefinition } from '../acp/acp-structured-agent-definitions' +import type { AgentSessionRecordStore } from '../records/agent-session-record-store' +import { agentSessionRefusalError } from '../../../../shared/agent-session/failures/agent-session-wire-refusals' +import type { AgentSessionJournalIdentity } from '../../../../shared/agent-session/journal/agent-session-journal-identity' +import type { AgentChatPermissionChoice } from '../../../../shared/agent-launch/permissions/agent-chat-permission-mode' +import type { AcpLaunchSpec } from '../../../acp/acp-launch-specs' +import { acpStructuredAgentDefinition } from '../../../acp/acp-structured-agent-definitions' import { acpStructuredLaunchPart, type AcpStructuredLaunchPartDeps -} from '../acp/acp-structured-launch-resolution' -import { CLAUDE_STRUCTURED_AGENT } from '../claude/structured/claude-structured-agent-definition' -import type { ClaudeEnvDeps } from '../claude/structured/launch/claude-structured-child-env' +} from '../../../acp/acp-structured-launch-resolution' +import { CLAUDE_STRUCTURED_AGENT } from '../../../claude/structured/claude-structured-agent-definition' +import type { ClaudeEnvDeps } from '../../../claude/structured/launch/claude-structured-child-env' import { claudeStructuredLaunchPart, type ClaudeStructuredLaunchPartDeps -} from '../claude/structured/launch/claude-structured-launch-resolution' -import { CODEX_STRUCTURED_AGENT } from '../codex/structured/launch/codex-structured-agent-definition' +} from '../../../claude/structured/launch/claude-structured-launch-resolution' +import { CODEX_STRUCTURED_AGENT } from '../../../codex/structured/launch/codex-structured-agent-definition' import { codexStructuredLaunchPart, type CodexStructuredLaunchPartDeps -} from '../codex/structured/launch/codex-structured-launch-resolution' -import type { PrepareNativeChatVisuals } from '../native-chat/native-chat-visuals-delivery' -import type { StructuredAgentCommandSettings } from '../native-chat/structured-agent-command-resolution' -import { PI_RPC_AGENT } from '../pi/rpc-agent-definition' -import { piRpcLaunchPart, type PiRpcLaunchPartDeps } from '../pi/rpc-launch-resolution' -import type { StructuredAgentDefinition } from '../native-chat/agent-session-wire/structured-agent-definition' +} from '../../../codex/structured/launch/codex-structured-launch-resolution' +import type { PrepareNativeChatVisuals } from '../../../native-chat/native-chat-visuals-delivery' +import type { StructuredAgentCommandSettings } from '../../../native-chat/structured-agent-command-resolution' +import { PI_RPC_AGENT } from '../../../pi/rpc-agent-definition' +import { piRpcLaunchPart, type PiRpcLaunchPartDeps } from '../../../pi/rpc-launch-resolution' +import type { StructuredAgentDefinition } from '../../../native-chat/agent-session-wire/structured-agent-definition' import { composeStructuredLaunch, composeStructuredLaunchRead, diff --git a/src/main/runtime/structured-agent-launch-composition.ts b/src/main/runtime/agent-session/launch/structured-agent-launch-composition.ts similarity index 88% rename from src/main/runtime/structured-agent-launch-composition.ts rename to src/main/runtime/agent-session/launch/structured-agent-launch-composition.ts index f955d07f9b7..02d913510a9 100644 --- a/src/main/runtime/structured-agent-launch-composition.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-launch-composition.ts @@ -1,21 +1,21 @@ // Compose shared admission, cwd, environment, visuals and child sealing; agent parts add only agent-specific inputs and never set cwd/sealed env. -import type { AgentSessionJournalIdentity } from '../../shared/agent-session/journal/agent-session-journal-identity' -import type { AgentChatPermissionChoice } from '../../shared/agent-launch/permissions/agent-chat-permission-mode' -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' -import { isNativeLocalLocation } from '../../shared/execution-host' -import type { StructuredAgentDefinition } from '../native-chat/agent-session-wire/structured-agent-definition' -import { agentDrivesSession } from '../native-chat/agent-session-wire/structured-agent-session-provider-support' -import type { StructuredAgentCommandSettings } from '../native-chat/structured-agent-command-resolution' +import type { AgentSessionJournalIdentity } from '../../../../shared/agent-session/journal/agent-session-journal-identity' +import type { AgentChatPermissionChoice } from '../../../../shared/agent-launch/permissions/agent-chat-permission-mode' +import type { AgentSessionRecord } from '../../../../shared/agent-session/lifecycle/agent-session-record' +import { isNativeLocalLocation } from '../../../../shared/execution-host' +import type { StructuredAgentDefinition } from '../../../native-chat/agent-session-wire/structured-agent-definition' +import { agentDrivesSession } from '../../../native-chat/agent-session-wire/structured-agent-session-provider-support' +import type { StructuredAgentCommandSettings } from '../../../native-chat/structured-agent-command-resolution' import { createNativeChatVisualsDelivery, type NativeChatVisualsLaunch, type PrepareNativeChatVisuals -} from '../native-chat/native-chat-visuals-delivery' -import { resolveAgentSessionLaunchDirectory } from './agent-session/agent-session-launch-directory' -import type { AgentSessionRecordStore } from './agent-session/records/agent-session-record-store' -import type { StructuredAgentAdapterContext } from './structured-agent-runtime-registrations' -import { sealStructuredSessionChild } from './structured-session-child-env' +} from '../../../native-chat/native-chat-visuals-delivery' +import { resolveAgentSessionLaunchDirectory } from '../agent-session-launch-directory' +import type { AgentSessionRecordStore } from '../records/agent-session-record-store' +import type { StructuredAgentAdapterContext } from '../installation/structured-agent-runtime-registration-types' +import { sealStructuredSessionChild } from '../environment/structured-session-child-env' /** Where a launch's shared inputs come from. */ export type StructuredAgentLaunchSources = { diff --git a/src/main/runtime/structured-agent-launch-parity.test.ts b/src/main/runtime/agent-session/launch/structured-agent-launch-parity.test.ts similarity index 87% rename from src/main/runtime/structured-agent-launch-parity.test.ts rename to src/main/runtime/agent-session/launch/structured-agent-launch-parity.test.ts index 35ff7c815b0..366847650b8 100644 --- a/src/main/runtime/structured-agent-launch-parity.test.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-launch-parity.test.ts @@ -1,21 +1,21 @@ -import { agentSessionRefusalError } from '../../shared/agent-session/failures/agent-session-wire-refusals' +import { agentSessionRefusalError } from '../../../../shared/agent-session/failures/agent-session-wire-refusals' // Capture native-chat children at the spawn boundary with production wiring; launch-path refactors must preserve these snapshots. import { chmod, mkdir, mkdtemp, realpath, rm, writeFile } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest' -import type { GlobalSettings } from '../../shared/global-settings-types' +import type { GlobalSettings } from '../../../../shared/global-settings-types' import type * as ProcessHostModule from '@orca/process-host' import type { ProcessSpec } from '@orca/process-host/process-spec' -import type * as AcpAdapterModule from '../acp/acp-structured-session-adapter' -import type * as ClaudeAdapterModule from '../claude/structured/claude-structured-session-adapter' -import type * as CodexAdapterModule from '../codex/structured/session-lifecycle/codex-structured-session-adapter' -import type * as PiAdapterModule from '../pi/rpc-session-adapter' -import type * as ManagedProviderProcessModule from '../provider-process/managed-provider-process' -import type { ProviderProcessLaunch } from '../provider-process/provider-process-launch' -import type * as StructuredAgentSessionRuntimeModule from './agent-session/structured-agent-session-runtime' -import type { StructuredAgentSessionRuntimeDeps } from './structured-agent-session-runtime-contract' +import type * as AcpAdapterModule from '../../../acp/acp-structured-session-adapter' +import type * as ClaudeAdapterModule from '../../../claude/structured/claude-structured-session-adapter' +import type * as CodexAdapterModule from '../../../codex/structured/session-lifecycle/codex-structured-session-adapter' +import type * as PiAdapterModule from '../../../pi/rpc-session-adapter' +import type * as ManagedProviderProcessModule from '../../../provider-process/managed-provider-process' +import type { ProviderProcessLaunch } from '../../../provider-process/provider-process-launch' +import type * as StructuredAgentSessionRuntimeModule from '../structured-agent-session-runtime' +import type { StructuredAgentSessionRuntimeDeps } from '../installation/structured-agent-session-runtime-contract' const capture = vi.hoisted(() => { const pendingEnvToDelete: readonly string[] = [] @@ -44,7 +44,7 @@ vi.mock('@orca/process-host', async (importOriginal) => { } } }) -vi.mock('../provider-process/managed-provider-process', async (importOriginal) => { +vi.mock('../../../provider-process/managed-provider-process', async (importOriginal) => { const actual = await importOriginal() return { ...actual, @@ -57,7 +57,7 @@ vi.mock('../provider-process/managed-provider-process', async (importOriginal) = } } }) -vi.mock('./agent-session/structured-agent-session-runtime', async (importOriginal) => { +vi.mock('../structured-agent-session-runtime', async (importOriginal) => { const actual = await importOriginal() return { ...actual, @@ -68,7 +68,7 @@ vi.mock('./agent-session/structured-agent-session-runtime', async (importOrigina }) // Each adapter as production builds it, with its resolved launch recorded on the way to the spawn. vi.mock( - '../codex/structured/session-lifecycle/codex-structured-session-adapter', + '../../../codex/structured/session-lifecycle/codex-structured-session-adapter', async (importOriginal) => { const actual = await importOriginal() class RecordingAdapter extends actual.CodexStructuredSessionAdapter { @@ -79,7 +79,7 @@ vi.mock( return { ...actual, CodexStructuredSessionAdapter: RecordingAdapter } } ) -vi.mock('../claude/structured/claude-structured-session-adapter', async (importOriginal) => { +vi.mock('../../../claude/structured/claude-structured-session-adapter', async (importOriginal) => { const actual = await importOriginal() class RecordingAdapter extends actual.ClaudeStructuredSessionAdapter { constructor(deps: ConstructorParameters[0]) { @@ -88,7 +88,7 @@ vi.mock('../claude/structured/claude-structured-session-adapter', async (importO } return { ...actual, ClaudeStructuredSessionAdapter: RecordingAdapter } }) -vi.mock('../acp/acp-structured-session-adapter', async (importOriginal) => { +vi.mock('../../../acp/acp-structured-session-adapter', async (importOriginal) => { const actual = await importOriginal() class RecordingAdapter extends actual.AcpStructuredSessionAdapter { constructor(deps: ConstructorParameters[0]) { @@ -97,7 +97,7 @@ vi.mock('../acp/acp-structured-session-adapter', async (importOriginal) => { } return { ...actual, AcpStructuredSessionAdapter: RecordingAdapter } }) -vi.mock('../pi/rpc-session-adapter', async (importOriginal) => { +vi.mock('../../../pi/rpc-session-adapter', async (importOriginal) => { const actual = await importOriginal() class RecordingAdapter extends actual.PiRpcSessionAdapter { constructor(deps: ConstructorParameters[0]) { @@ -113,52 +113,52 @@ vi.mock('electron', () => ({ app: { getPath: vi.fn(() => '/tmp') } })) -import { setAppEnvironment } from '../../shared/app-environment' +import { setAppEnvironment } from '../../../../shared/app-environment' import { AGENT_SESSION_RECORD_SCHEMA_VERSION, type AgentSessionRecord -} from '../../shared/agent-session/lifecycle/agent-session-record' -import type { AgentSessionAccountHome } from '../../shared/agent-session/lifecycle/agent-session-account-home' -import type { AgentSessionProviderHandle } from '../../shared/agent-session/lifecycle/agent-session-provider-handle' +} from '../../../../shared/agent-session/lifecycle/agent-session-record' +import type { AgentSessionAccountHome } from '../../../../shared/agent-session/lifecycle/agent-session-account-home' +import type { AgentSessionProviderHandle } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle' import { claudeProviderHandle, codexProviderHandle -} from '../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' -import { FLOATING_TERMINAL_WORKTREE_ID } from '../../shared/constants' +} from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' +import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' import { ORCA_SCRUB_SAFE_LAUNCH_ENV, ORCA_SCRUB_SAFE_PANE_ENV -} from '../../shared/agent-hook-listener/transport/agent-hook-scrub-safe-env' -import { STRUCTURED_WORKER_HANDLE_PREFIX } from '../../shared/structured-worker-handle' -import { YOLO_TUI_AGENT_ARGS } from '../../shared/agent-launch/permissions/tui-agent-permissions' -import { agentChatPermissionModes } from '../../shared/agent-launch/permissions/agent-chat-permission-support' +} from '../../../../shared/agent-hook-listener/transport/agent-hook-scrub-safe-env' +import { STRUCTURED_WORKER_HANDLE_PREFIX } from '../../../../shared/structured-worker-handle' +import { YOLO_TUI_AGENT_ARGS } from '../../../../shared/agent-launch/permissions/tui-agent-permissions' +import { agentChatPermissionModes } from '../../../../shared/agent-launch/permissions/agent-chat-permission-support' import { AGENT_HOOK_RUNTIME_ENV_KEYS, ORCA_AGENT_SESSION_CALLER_ENV_KEYS -} from '../ipc/pty/host-env/spawn-env-keys' +} from '../../../ipc/pty/host-env/spawn-env-keys' import { LEGACY_NATIVE_CHAT_VISUALS_DIR_ENV, NATIVE_CHAT_SCRATCH_DIR_ENV -} from '../native-chat/native-chat-visuals-delivery' -import type { StructuredAgentSessionAcquireInput } from '../native-chat/agent-session-wire/structured-agent-session-adapter' -import type { StructuredAgentSessionEventSink } from '../native-chat/agent-session-wire/structured-agent-session-event-sink' -import type { JournalHostDatabase } from '../native-chat/agent-session-journal/journal-host-database' -import { createClaudeCliFlagSupport } from '../claude/claude-cli-flag-support' -import type { AgentSessionRecordStore } from './agent-session/records/agent-session-record-store' -import { OrcaRuntimeService } from './orca-runtime' -import { - STRUCTURED_AGENT_RUNTIME_REGISTRATIONS, - type StructuredAgentAdapterContext, - type StructuredAgentRuntimeAdapter -} from './structured-agent-runtime-registrations' -import { createStructuredAgentEnvironmentResolvers } from './structured-agent-shell-environment' -import { createStructuredAgentSessionDispatchFollowUps } from './agent-session/structured-agent-session-dispatch-followups' +} from '../../../native-chat/native-chat-visuals-delivery' +import type { StructuredAgentSessionAcquireInput } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter' +import type { StructuredAgentSessionEventSink } from '../../../native-chat/agent-session-wire/structured-agent-session-event-sink' +import type { JournalHostDatabase } from '../../../native-chat/agent-session-journal/journal-host-database' +import { createClaudeCliFlagSupport } from '../../../claude/claude-cli-flag-support' +import type { AgentSessionRecordStore } from '../records/agent-session-record-store' +import { OrcaRuntimeService } from '../../orca-runtime' +import { STRUCTURED_AGENT_RUNTIME_REGISTRATIONS } from '../installation/structured-agent-runtime-registrations' +import type { + StructuredAgentAdapterContext, + StructuredAgentRuntimeAdapter +} from '../installation/structured-agent-runtime-registration-types' +import { createStructuredAgentEnvironmentResolvers } from '../environment/structured-agent-shell-environment' +import { createStructuredAgentSessionDispatchFollowUps } from '../structured-agent-session-dispatch-followups' import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from './structured-worker-identity' -import { partialRuntimeStore } from './orca-runtime-tests/runtime-store-partial-fixture' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' +import { partialRuntimeStore } from '../../orca-runtime-tests/runtime-store-partial-fixture' // A new agent goes last: its cases then shift only the configured ones' session ids. const AGENTS = [ diff --git a/src/main/runtime/structured-agent-launch-support-probe-omp.test.ts b/src/main/runtime/agent-session/launch/structured-agent-launch-support-probe-omp.test.ts similarity index 93% rename from src/main/runtime/structured-agent-launch-support-probe-omp.test.ts rename to src/main/runtime/agent-session/launch/structured-agent-launch-support-probe-omp.test.ts index 785b27530b9..9a3bc3c2ea1 100644 --- a/src/main/runtime/structured-agent-launch-support-probe-omp.test.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-launch-support-probe-omp.test.ts @@ -3,16 +3,16 @@ import { chmod, mkdir, mkdtemp, 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 { GlobalSettings } from '../../shared/global-settings-types' -import { agentSessionRecordFixture } from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' -import { acpLaunchSpecFor } from '../acp/acp-launch-specs' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import { agentSessionRecordFixture } from '../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' +import { acpLaunchSpecFor } from '../../../acp/acp-launch-specs' import { structuredAgentSupportsLaunch } from './structured-agent-launch-support' const { loginShell } = vi.hoisted(() => { const loginShell: { env: Record } = { env: {} } return { loginShell } }) -vi.mock('../startup/login-shell-environment', () => ({ +vi.mock('../../../startup/login-shell-environment', () => ({ resolveLoginShellEnvironment: async () => loginShell.env })) diff --git a/src/main/runtime/structured-agent-launch-support-probe.test.ts b/src/main/runtime/agent-session/launch/structured-agent-launch-support-probe.test.ts similarity index 93% rename from src/main/runtime/structured-agent-launch-support-probe.test.ts rename to src/main/runtime/agent-session/launch/structured-agent-launch-support-probe.test.ts index ef40538870f..41247bdcd78 100644 --- a/src/main/runtime/structured-agent-launch-support-probe.test.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-launch-support-probe.test.ts @@ -3,16 +3,16 @@ import { chmod, mkdir, mkdtemp, 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 { GlobalSettings } from '../../shared/global-settings-types' -import { agentSessionRecordFixture } from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' -import { acpLaunchSpecFor } from '../acp/acp-launch-specs' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import { agentSessionRecordFixture } from '../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' +import { acpLaunchSpecFor } from '../../../acp/acp-launch-specs' import { structuredAgentSupportsLaunch } from './structured-agent-launch-support' const { loginShell } = vi.hoisted(() => { const loginShell: { env: Record } = { env: {} } return { loginShell } }) -vi.mock('../startup/login-shell-environment', () => ({ +vi.mock('../../../startup/login-shell-environment', () => ({ resolveLoginShellEnvironment: async () => loginShell.env })) diff --git a/src/main/runtime/structured-agent-launch-support.test.ts b/src/main/runtime/agent-session/launch/structured-agent-launch-support.test.ts similarity index 93% rename from src/main/runtime/structured-agent-launch-support.test.ts rename to src/main/runtime/agent-session/launch/structured-agent-launch-support.test.ts index 6b5173a770a..cfe4c362879 100644 --- a/src/main/runtime/structured-agent-launch-support.test.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-launch-support.test.ts @@ -3,21 +3,21 @@ import { chmod, mkdtemp, 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 { agentSessionRecordFixture } from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' -import { acpLaunchSpecFor } from '../acp/acp-launch-specs' +import { agentSessionRecordFixture } from '../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' +import { acpLaunchSpecFor } from '../../../acp/acp-launch-specs' import { resolveHostStructuredAgentCreateSupport, structuredAgentSupportsLaunch, structuredAgentHostLaunchSources, resolveHostStructuredAgentLaunchEnvironment } from './structured-agent-launch-support' -import { createStructuredAgentEnvironmentResolvers } from './structured-agent-shell-environment' -import type * as LoginShellModule from '../startup/login-shell-environment' -import type * as VersionProbeModule from '../agent-launch/preflight/agent-cli-version-probe' +import { createStructuredAgentEnvironmentResolvers } from '../environment/structured-agent-shell-environment' +import type * as LoginShellModule from '../../../startup/login-shell-environment' +import type * as VersionProbeModule from '../../../agent-launch/preflight/agent-cli-version-probe' import { resetLoginShellEnvironmentCacheForTests, type ResolveLoginShellEnvironmentOptions as LoginShellOptions -} from '../startup/login-shell-environment' +} from '../../../startup/login-shell-environment' const { readVersion, loginShell } = vi.hoisted(() => { const loginShell: { @@ -30,7 +30,7 @@ const { readVersion, loginShell } = vi.hoisted(() => { } return { readVersion: vi.fn(), loginShell } }) -vi.mock('../agent-launch/preflight/agent-cli-version-probe', async (importOriginal) => { +vi.mock('../../../agent-launch/preflight/agent-cli-version-probe', async (importOriginal) => { const real = await importOriginal() return { ...real, @@ -38,7 +38,7 @@ vi.mock('../agent-launch/preflight/agent-cli-version-probe', async (importOrigin real.checkAgentCliVersion(input, minimums, readVersion) } }) -vi.mock('../startup/login-shell-environment', async (importOriginal) => { +vi.mock('../../../startup/login-shell-environment', async (importOriginal) => { const real = await importOriginal() return { ...real, diff --git a/src/main/runtime/structured-agent-launch-support.ts b/src/main/runtime/agent-session/launch/structured-agent-launch-support.ts similarity index 81% rename from src/main/runtime/structured-agent-launch-support.ts rename to src/main/runtime/agent-session/launch/structured-agent-launch-support.ts index f41e09af9d9..8f496af511e 100644 --- a/src/main/runtime/structured-agent-launch-support.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-launch-support.ts @@ -1,35 +1,36 @@ -import type { AgentSessionExecutionLocation } from '../../shared/agent-session/lifecycle/agent-session-record' -import type { StructuredAgentId } from '../../shared/agent-session/lifecycle/agent-session-provider-handle' -import type { GlobalSettings } from '../../shared/global-settings-types' -import { isTuiAgent } from '../../shared/agent-launch/catalog/tui-agent-config' +import type { AgentSessionExecutionLocation } from '../../../../shared/agent-session/lifecycle/agent-session-record' +import type { StructuredAgentId } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle' +import type { GlobalSettings } from '../../../../shared/global-settings-types' +import { isTuiAgent } from '../../../../shared/agent-launch/catalog/tui-agent-config' import { resolveTuiAgentLaunchEnv, type AgentLaunchProfileSettings -} from '../../shared/agent-launch/choices/tui-agent-launch-defaults' +} from '../../../../shared/agent-launch/choices/tui-agent-launch-defaults' import { checkAgentCliVersion, launchableRelease, type AgentCliVersionCheck -} from '../agent-launch/preflight/agent-cli-version-probe' +} from '../../../agent-launch/preflight/agent-cli-version-probe' import { resolveStructuredAgentSessionCreateSupport, warnStructuredAgentSessionCreateUnsupported, type StructuredAgentSessionCreateSupport -} from '../native-chat/structured-agent-session-create-support' -import { isAgentSessionPreSpawnError } from '../native-chat/agent-session-wire/structured-agent-session-adapter' +} from '../../../native-chat/structured-agent-session-create-support' +import '../../../native-chat/agent-session-wire/structured-agent-session-adapter' +import { isAgentSessionPreSpawnError } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter-errors' import { resolveAgainAfterRefreshOnMissingProgram, type StructuredAgentCommandSettings -} from '../native-chat/structured-agent-command-resolution' -import { structuredAgentRuntimeMetadata } from './structured-agent-runtime-metadata' +} from '../../../native-chat/structured-agent-command-resolution' +import { structuredAgentRuntimeMetadata } from '../installation/structured-agent-runtime-metadata' import { refreshHostAgentBaseEnvironmentAfterMiss, resolveHostAgentBaseEnvironment, createStructuredAgentEnvironmentResolvers -} from './structured-agent-shell-environment' -import type { AgentSessionAccountHome } from '../../shared/agent-session/lifecycle/agent-session-account-home' -import { nativeChatShellEnvironmentPolicy } from '../../shared/native-chat/native-chat-shell-environment' -import { getProfileUserDataPath } from '../orca-profiles/profile-storage-paths' +} from '../environment/structured-agent-shell-environment' +import type { AgentSessionAccountHome } from '../../../../shared/agent-session/lifecycle/agent-session-account-home' +import { nativeChatShellEnvironmentPolicy } from '../../../../shared/native-chat/native-chat-shell-environment' +import { getProfileUserDataPath } from '../../../orca-profiles/profile-storage-paths' type LaunchEnvironmentSettings = Pick< GlobalSettings, diff --git a/src/main/runtime/structured-agent-new-chat-effort-at-rest.test.ts b/src/main/runtime/agent-session/launch/structured-agent-new-chat-effort-at-rest.test.ts similarity index 84% rename from src/main/runtime/structured-agent-new-chat-effort-at-rest.test.ts rename to src/main/runtime/agent-session/launch/structured-agent-new-chat-effort-at-rest.test.ts index 9d80d947b1d..fe1e8475455 100644 --- a/src/main/runtime/structured-agent-new-chat-effort-at-rest.test.ts +++ b/src/main/runtime/agent-session/launch/structured-agent-new-chat-effort-at-rest.test.ts @@ -1,39 +1,39 @@ -import { agentSessionRecordFixture } from '../native-chat/agent-session-record-test-fixture' -import { agentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' +import { agentSessionRecordFixture } from '../../../native-chat/agent-session-record-test-fixture' +import { agentSessionConversationView } from '../../../../shared/agent-session/lifecycle/agent-session-conversation-view' // Before start, new-chat options must match the workspace catalog's first model/effort frame so the picker stays stable. import { existsSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it } from 'vitest' -import type { AgentSessionAccountHome } from '../../shared/agent-session/lifecycle/agent-session-account-home' -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' -import type { AgentSessionModelOption } from '../../shared/agent-session/agent-session-wire' -import { structuredAgentSessionSeedCatalog } from '../../shared/agent-session/options/structured-agent-session-seed-catalog' -import { agentChatPermissionModes } from '../../shared/agent-launch/permissions/agent-chat-permission-support' +import type { AgentSessionAccountHome } from '../../../../shared/agent-session/lifecycle/agent-session-account-home' +import type { AgentSessionRecord } from '../../../../shared/agent-session/lifecycle/agent-session-record' +import type { AgentSessionModelOption } from '../../../../shared/agent-session/agent-session-wire' +import { structuredAgentSessionSeedCatalog } from '../../../../shared/agent-session/options/structured-agent-session-seed-catalog' +import { agentChatPermissionModes } from '../../../../shared/agent-launch/permissions/agent-chat-permission-support' import { applyStructuredAgentSessionModelCatalog, applyStructuredAgentSessionOptions, createStructuredAgentSessionOptionState, type StructuredAgentSessionOptionState -} from '../../shared/agent-session/options/structured-agent-session-options' -import { structuredAgentSessionShownSnapshot } from '../../shared/agent-session/options/structured-agent-session-option-view' -import { grokModelCatalogFromState } from '../acp/acp-dialects/grok-model-catalog' -import { acpLaunchSpecFor } from '../acp/acp-launch-specs' -import { acpStructuredAgentDefinition } from '../acp/acp-structured-agent-definitions' -import { CODEX_STRUCTURED_AGENT } from '../codex/structured/launch/codex-structured-agent-definition' -import { agentModelCatalogFingerprintForRecord } from '../native-chat/agent-model-catalog/agent-model-catalog-fingerprint' -import { createAgentModelCatalogService } from '../native-chat/agent-model-catalog/agent-model-catalog-service' -import { AgentModelCatalogStore } from '../native-chat/agent-model-catalog/agent-model-catalog-store' +} from '../../../../shared/agent-session/options/structured-agent-session-options' +import { structuredAgentSessionShownSnapshot } from '../../../../shared/agent-session/options/structured-agent-session-option-view' +import { grokModelCatalogFromState } from '../../../acp/acp-dialects/grok-model-catalog' +import { acpLaunchSpecFor } from '../../../acp/acp-launch-specs' +import { acpStructuredAgentDefinition } from '../../../acp/acp-structured-agent-definitions' +import { CODEX_STRUCTURED_AGENT } from '../../../codex/structured/launch/codex-structured-agent-definition' +import { agentModelCatalogFingerprintForRecord } from '../../../native-chat/agent-model-catalog/agent-model-catalog-fingerprint' +import { createAgentModelCatalogService } from '../../../native-chat/agent-model-catalog/agent-model-catalog-service' +import { AgentModelCatalogStore } from '../../../native-chat/agent-model-catalog/agent-model-catalog-store' import { agentReadsProjectModelConfig, workspaceMayOverrideDefaultModel -} from '../native-chat/agent-model-catalog/agent-project-model-override' -import type { StructuredAgentSessionAdapter } from '../native-chat/agent-session-wire/structured-agent-session-adapter' -import type { StructuredAgentSessionMutationContext } from '../native-chat/agent-session-wire/structured-agent-session-host-mutations' -import { readStructuredAgentSessionOptions } from '../native-chat/agent-session-wire/structured-agent-session-options-read' -import { StructuredAgentRegistry } from '../native-chat/agent-session-wire/structured-agent-registry' -import { PI_RPC_AGENT } from '../pi/rpc-agent-definition' +} from '../../../native-chat/agent-model-catalog/agent-project-model-override' +import type { StructuredAgentSessionAdapter } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter' +import type { StructuredAgentSessionMutationContext } from '../../../native-chat/agent-session-wire/structured-agent-session-mutation-context' +import { readStructuredAgentSessionOptions } from '../../../native-chat/agent-session-wire/structured-agent-session-options-read' +import { StructuredAgentRegistry } from '../../../native-chat/agent-session-wire/structured-agent-registry' +import { PI_RPC_AGENT } from '../../../pi/rpc-agent-definition' // A chat whose agent offers permission modes also names its own, which a new chat leaves at Ask. const modeOf = (agent: string) => (agentChatPermissionModes(agent) ? { permissionMode: 'ask' } : {}) diff --git a/src/main/runtime/claude-structured-exit-mid-response.test.ts b/src/main/runtime/agent-session/lifecycle/claude-structured-exit-mid-response.test.ts similarity index 80% rename from src/main/runtime/claude-structured-exit-mid-response.test.ts rename to src/main/runtime/agent-session/lifecycle/claude-structured-exit-mid-response.test.ts index 9ecca7bb124..fbb31d40aa6 100644 --- a/src/main/runtime/claude-structured-exit-mid-response.test.ts +++ b/src/main/runtime/agent-session/lifecycle/claude-structured-exit-mid-response.test.ts @@ -1,14 +1,14 @@ // Script only the CLI; verify self-exit attribution through the production runtime/adapter/store/host. import { afterEach, describe, expect, it, vi } from 'vitest' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { hostTestMessage } from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import { waitForStructuredAgentSessionRecovery } from './agent-session/structured-agent-session-runtime' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { hostTestMessage } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' +import { waitForStructuredAgentSessionRecovery } from '../structured-agent-session-runtime' import { createScriptedClaudeRuntime, scriptedClaudeExitError -} from './structured-claude-scripted-runtime-test-support' +} from '../installation/structured-claude-scripted-runtime-test-support' const SESSION = 'claude-exit-mid-response' const CALLER = { callerKey: 'client-1' } diff --git a/src/main/runtime/claude-structured-failed-start-resume.test.ts b/src/main/runtime/agent-session/lifecycle/claude-structured-failed-start-resume.test.ts similarity index 90% rename from src/main/runtime/claude-structured-failed-start-resume.test.ts rename to src/main/runtime/agent-session/lifecycle/claude-structured-failed-start-resume.test.ts index 389eb50bf8f..d479a394271 100644 --- a/src/main/runtime/claude-structured-failed-start-resume.test.ts +++ b/src/main/runtime/agent-session/lifecycle/claude-structured-failed-start-resume.test.ts @@ -1,9 +1,9 @@ // Unproven first starts have no transcript: retry the same provider id fresh until a start proves its root. import { afterEach, describe, expect, it, vi } from 'vitest' -import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id' -import { waitForStructuredAgentSessionRecovery } from './agent-session/structured-agent-session-runtime' -import { createScriptedClaudeRuntime } from './structured-claude-scripted-runtime-test-support' +import { claudeSessionIdForOrcaSession } from '../../../claude/structured/claude-structured-session-id' +import { waitForStructuredAgentSessionRecovery } from '../structured-agent-session-runtime' +import { createScriptedClaudeRuntime } from '../installation/structured-claude-scripted-runtime-test-support' const SESSION = 'claude-failed-start' const CALLER = { callerKey: 'client-1' } diff --git a/src/main/runtime/claude-structured-idle-releases-unknown.test.ts b/src/main/runtime/agent-session/lifecycle/claude-structured-idle-releases-unknown.test.ts similarity index 91% rename from src/main/runtime/claude-structured-idle-releases-unknown.test.ts rename to src/main/runtime/agent-session/lifecycle/claude-structured-idle-releases-unknown.test.ts index 5134f00bfc9..5356b3966a4 100644 --- a/src/main/runtime/claude-structured-idle-releases-unknown.test.ts +++ b/src/main/runtime/agent-session/lifecycle/claude-structured-idle-releases-unknown.test.ts @@ -1,20 +1,20 @@ // Lost writes release Working as unknown; taken-but-unechoed sends release doubt; queued sends stay held. import { afterEach, describe, expect, it, vi } from 'vitest' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { claudeSessionIdForOrcaSession } from '../../../claude/structured/claude-structured-session-id' import { DISPATCH_DOUBT_PROVIDER_ENDED_UNANSWERED, DISPATCH_DOUBT_PROVIDER_IDLE, DISPATCH_DOUBT_WRITE_OUTCOME_UNKNOWN -} from '../native-chat/agent-session-journal/journal-dispatch-doubt-reasons' -import { hasUnansweredStructuredAgentSessionDispatch } from '../../shared/agent-session/requests/structured-agent-session-unanswered-dispatch' -import { hostTestMessage } from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' +} from '../../../native-chat/agent-session-journal/journal-dispatch-doubt-reasons' +import { hasUnansweredStructuredAgentSessionDispatch } from '../../../../shared/agent-session/requests/structured-agent-session-unanswered-dispatch' +import { hostTestMessage } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' import { createScriptedClaudeRuntime, scriptedClaudeExitError -} from './structured-claude-scripted-runtime-test-support' +} from '../installation/structured-claude-scripted-runtime-test-support' const SESSION = 'claude-idle-release' const PROVIDER_SESSION = claudeSessionIdForOrcaSession(SESSION) diff --git a/src/main/runtime/claude-structured-resumed-start-failure.test.ts b/src/main/runtime/agent-session/lifecycle/claude-structured-resumed-start-failure.test.ts similarity index 87% rename from src/main/runtime/claude-structured-resumed-start-failure.test.ts rename to src/main/runtime/agent-session/lifecycle/claude-structured-resumed-start-failure.test.ts index 07bb193cad6..0e1e7fbc8f5 100644 --- a/src/main/runtime/claude-structured-resumed-start-failure.test.ts +++ b/src/main/runtime/agent-session/lifecycle/claude-structured-resumed-start-failure.test.ts @@ -1,14 +1,14 @@ // Reopened chats publish before initialize; later startup failure must reach the visible transcript. import { afterEach, describe, expect, it, vi } from 'vitest' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import type { AgentSessionSubscribeEvent } from '../../shared/agent-session/agent-session-wire' -import { hostTestMessage } from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import { waitForStructuredAgentSessionRecovery } from './agent-session/structured-agent-session-runtime' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import type { AgentSessionSubscribeEvent } from '../../../../shared/agent-session/agent-session-wire' +import { hostTestMessage } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import { waitForStructuredAgentSessionRecovery } from '../structured-agent-session-runtime' import { createScriptedClaudeRuntime, scriptedClaudeExitError -} from './structured-claude-scripted-runtime-test-support' +} from '../installation/structured-claude-scripted-runtime-test-support' const SESSION = 'claude-resumed-start' const CALLER = { callerKey: 'client-1' } diff --git a/src/main/runtime/claude-structured-retired-saved-model.test.ts b/src/main/runtime/agent-session/lifecycle/claude-structured-retired-saved-model.test.ts similarity index 92% rename from src/main/runtime/claude-structured-retired-saved-model.test.ts rename to src/main/runtime/agent-session/lifecycle/claude-structured-retired-saved-model.test.ts index 6acbb6f01ce..5d2888109fb 100644 --- a/src/main/runtime/claude-structured-retired-saved-model.test.ts +++ b/src/main/runtime/agent-session/lifecycle/claude-structured-retired-saved-model.test.ts @@ -4,12 +4,12 @@ import { randomUUID } from 'node:crypto' import { readFileSync } from 'node:fs' import { z } from 'zod' import { afterEach, describe, expect, it, vi } from 'vitest' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import { hostTestMessage } from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import { createScriptedClaudeRuntime } from './structured-claude-scripted-runtime-test-support' -import { readAgentJournalTurn } from '../../shared/agent-session/lifecycle/agent-session-turn-record' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { claudeSessionIdForOrcaSession } from '../../../claude/structured/claude-structured-session-id' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' +import { hostTestMessage } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import { createScriptedClaudeRuntime } from '../installation/structured-claude-scripted-runtime-test-support' +import { readAgentJournalTurn } from '../../../../shared/agent-session/lifecycle/agent-session-turn-record' const SESSION = 'claude-retired-saved-model' const CALLER = { callerKey: 'client-1' } @@ -91,7 +91,10 @@ describe("a Claude chat whose saved model the CLI says doesn't exist", () => { return written.uuid } const capturedResult = readFileSync( - new URL('../claude/__fixtures__/claude-lifecycle-capture-auth-failed.jsonl', import.meta.url), + new URL( + '../../../claude/__fixtures__/claude-lifecycle-capture-auth-failed.jsonl', + import.meta.url + ), 'utf8' ) .trim() diff --git a/src/main/runtime/claude-structured-send-restart-dies-before-dispatch.test.ts b/src/main/runtime/agent-session/lifecycle/claude-structured-send-restart-dies-before-dispatch.test.ts similarity index 94% rename from src/main/runtime/claude-structured-send-restart-dies-before-dispatch.test.ts rename to src/main/runtime/agent-session/lifecycle/claude-structured-send-restart-dies-before-dispatch.test.ts index 51db103bbee..0acbad0ad9a 100644 --- a/src/main/runtime/claude-structured-send-restart-dies-before-dispatch.test.ts +++ b/src/main/runtime/agent-session/lifecycle/claude-structured-send-restart-dies-before-dispatch.test.ts @@ -1,15 +1,15 @@ // Restart failure before dispatch must reject the accepted send and publish its cause to existing subscribers. import { afterEach, describe, expect, it, vi } from 'vitest' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import type { AgentSessionSubscribeEvent } from '../../shared/agent-session/agent-session-wire' -import { hostTestMessage } from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import { waitForStructuredAgentSessionRecovery } from './agent-session/structured-agent-session-runtime' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import type { AgentSessionSubscribeEvent } from '../../../../shared/agent-session/agent-session-wire' +import { hostTestMessage } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' +import { waitForStructuredAgentSessionRecovery } from '../structured-agent-session-runtime' import { createScriptedClaudeRuntime, scriptedClaudeExitError -} from './structured-claude-scripted-runtime-test-support' +} from '../installation/structured-claude-scripted-runtime-test-support' const SESSION = 'claude-send-restart-dies-first' const CALLER = { callerKey: 'client-1' } diff --git a/src/main/runtime/claude-structured-session-integration.test.ts b/src/main/runtime/agent-session/lifecycle/claude-structured-session-integration.test.ts similarity index 93% rename from src/main/runtime/claude-structured-session-integration.test.ts rename to src/main/runtime/agent-session/lifecycle/claude-structured-session-integration.test.ts index 6f961827873..687be225dd5 100644 --- a/src/main/runtime/claude-structured-session-integration.test.ts +++ b/src/main/runtime/agent-session/lifecycle/claude-structured-session-integration.test.ts @@ -1,41 +1,41 @@ -import { EVERY_AGENT_CHAT } from '../../shared/native-chat/every-agent-chat.test-fixture' +import { EVERY_AGENT_CHAT } from '../../../../shared/native-chat/every-agent-chat.test-fixture' import { mkdir, mkdtemp, rm } from 'node:fs/promises' import { homedir, tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import type { AgentJournalRenderItem } from '../../shared/agent-session/journal/agent-session-journal-types' -import type { AgentSessionSubscribeEvent } from '../../shared/agent-session/agent-session-wire' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import type { AgentJournalRenderItem } from '../../../../shared/agent-session/journal/agent-session-journal-types' +import type { AgentSessionSubscribeEvent } from '../../../../shared/agent-session/agent-session-wire' import { AGENT_SESSION_TURN_ITEM_CAPABILITY, STRUCTURED_AGENT_SESSION_RUNTIME_CAPABILITY -} from '../../shared/agent-session/agent-session-runtime-capabilities' +} from '../../../../shared/agent-session/agent-session-runtime-capabilities' import { fakeClaude, leaseOf, startingConnection, failStarting -} from './claude-structured-fake-connection-test-fixture' -import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id' -import { ORCA_AGENT_SESSION_SPAWN_TOKEN_ENV } from '../../shared/agent-session/lifecycle/agent-session-caller-env' -import { attachFingerprintFields } from '../native-chat/agent-session-wire/structured-agent-session-attach' -import { getStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' -import type { StructuredAgentSessionStatusSink } from '../native-chat/agent-session-wire/structured-agent-session-status-feed' -import { AgentHookServer, _internals } from '../agent-hooks/server' -import type { OrcaRuntimeService } from './orca-runtime' -import type { RpcRequest, RpcResponse } from './rpc/core' -import type { ClaudeStructuredAuthPolicy } from '../claude-accounts/claude-structured-auth-policy' -import { RpcDispatcher } from './rpc/dispatcher' -import type { NativeChatShellEnvironmentPolicy } from '../../shared/native-chat/native-chat-shell-environment' -import { STRUCTURED_AGENT_SESSION_METHODS } from './rpc/methods/structured-agent-session' +} from '../installation/claude-structured-fake-connection-test-fixture' +import { claudeSessionIdForOrcaSession } from '../../../claude/structured/claude-structured-session-id' +import { ORCA_AGENT_SESSION_SPAWN_TOKEN_ENV } from '../../../../shared/agent-session/lifecycle/agent-session-caller-env' +import { attachFingerprintFields } from '../../../native-chat/agent-session-wire/structured-agent-session-attach' +import { getStructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-registry' +import type { StructuredAgentSessionStatusSink } from '../../../native-chat/agent-session-wire/structured-agent-session-status-ownership' +import { AgentHookServer, _internals } from '../../../agent-hooks/server' +import type { OrcaRuntimeService } from '../../orca-runtime' +import type { RpcRequest, RpcResponse } from '../../rpc/core' +import type { ClaudeStructuredAuthPolicy } from '../../../claude-accounts/claude-structured-auth-policy' +import { RpcDispatcher } from '../../rpc/dispatcher' +import type { NativeChatShellEnvironmentPolicy } from '../../../../shared/native-chat/native-chat-shell-environment' +import { STRUCTURED_AGENT_SESSION_METHODS } from '../../rpc/methods/structured-agent-session' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime, waitForStructuredAgentSessionRecovery -} from './agent-session/structured-agent-session-runtime' -import { createStructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger' -import { claudeProviderHandle } from '../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' -import './rpc/unused-default-rpc-methods.test-fixture' +} from '../structured-agent-session-runtime' +import { createStructuredAgentSessionLogger } from '../../../native-chat/agent-session-wire/structured-agent-session-logger' +import { claudeProviderHandle } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' +import '../../rpc/unused-default-rpc-methods.test-fixture' const SESSION = 'claude-integration-1' const PROVIDER_SESSION = claudeSessionIdForOrcaSession(SESSION) @@ -50,7 +50,7 @@ const { resolveSessionFilePath } = vi.hoisted(() => ({ resolveSessionFilePath: vi.fn() })) -vi.mock('../native-chat/session-file-resolver', () => ({ +vi.mock('../../../native-chat/session-file-resolver', () => ({ resolveSessionFilePath })) diff --git a/src/main/runtime/claude-structured-startup-fault-is-not-an-exit.test.ts b/src/main/runtime/agent-session/lifecycle/claude-structured-startup-fault-is-not-an-exit.test.ts similarity index 88% rename from src/main/runtime/claude-structured-startup-fault-is-not-an-exit.test.ts rename to src/main/runtime/agent-session/lifecycle/claude-structured-startup-fault-is-not-an-exit.test.ts index 59236a78b1f..d820cc6170e 100644 --- a/src/main/runtime/claude-structured-startup-fault-is-not-an-exit.test.ts +++ b/src/main/runtime/agent-session/lifecycle/claude-structured-startup-fault-is-not-an-exit.test.ts @@ -1,14 +1,14 @@ // Host-detected startup faults must not be attributed as self-exits without observed CLI exit. import { afterEach, describe, expect, it, vi } from 'vitest' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { hostTestMessage } from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import { waitForStructuredAgentSessionRecovery } from './agent-session/structured-agent-session-runtime' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { hostTestMessage } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' +import { waitForStructuredAgentSessionRecovery } from '../structured-agent-session-runtime' import { createScriptedClaudeRuntime, scriptedClaudeExitError -} from './structured-claude-scripted-runtime-test-support' +} from '../installation/structured-claude-scripted-runtime-test-support' const SESSION = 'claude-startup-fault' const CALLER = { callerKey: 'client-1' } diff --git a/src/main/runtime/claude-structured-startup-unanswered-control-request.test.ts b/src/main/runtime/agent-session/lifecycle/claude-structured-startup-unanswered-control-request.test.ts similarity index 94% rename from src/main/runtime/claude-structured-startup-unanswered-control-request.test.ts rename to src/main/runtime/agent-session/lifecycle/claude-structured-startup-unanswered-control-request.test.ts index 3389761e77e..44fb61fc76f 100644 --- a/src/main/runtime/claude-structured-startup-unanswered-control-request.test.ts +++ b/src/main/runtime/agent-session/lifecycle/claude-structured-startup-unanswered-control-request.test.ts @@ -1,11 +1,11 @@ // Settings-read timeouts must not block initialized startup or overwrite saved launch options. import { afterEach, describe, expect, it, vi } from 'vitest' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id' -import { hostTestMessage } from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import { createScriptedClaudeRuntime } from './structured-claude-scripted-runtime-test-support' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { claudeSessionIdForOrcaSession } from '../../../claude/structured/claude-structured-session-id' +import { hostTestMessage } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' +import { createScriptedClaudeRuntime } from '../installation/structured-claude-scripted-runtime-test-support' const SESSION = 'claude-startup-unanswered-control' const CALLER = { callerKey: 'client-1' } diff --git a/src/main/runtime/orca-runtime-structured-session-restore.test.ts b/src/main/runtime/agent-session/lifecycle/orca-runtime-structured-session-restore.test.ts similarity index 95% rename from src/main/runtime/orca-runtime-structured-session-restore.test.ts rename to src/main/runtime/agent-session/lifecycle/orca-runtime-structured-session-restore.test.ts index 1f8f48177f0..e7f1ff7d15e 100644 --- a/src/main/runtime/orca-runtime-structured-session-restore.test.ts +++ b/src/main/runtime/agent-session/lifecycle/orca-runtime-structured-session-restore.test.ts @@ -1,13 +1,13 @@ -import { partialRuntimeStore } from './orca-runtime-tests/runtime-store-partial-fixture' -import { getDefaultWorkspaceSession } from '../../shared/constants' -import type { WorkspaceSessionState } from '../../shared/workspace-session/workspace-session-state-types' -import { agentSessionRecordFixture } from '../native-chat/agent-session-record-test-fixture' -import { agentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' +import { partialRuntimeStore } from '../../orca-runtime-tests/runtime-store-partial-fixture' +import { getDefaultWorkspaceSession } from '../../../../shared/constants' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session/workspace-session-state-types' +import { agentSessionRecordFixture } from '../../../native-chat/agent-session-record-test-fixture' +import { agentSessionConversationView } from '../../../../shared/agent-session/lifecycle/agent-session-conversation-view' import { afterEach, describe, expect, it, vi } from 'vitest' -import { setStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' -import { OrcaRuntimeService } from './orca-runtime' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import { hostTestState } from '../native-chat/agent-session-wire/structured-agent-session-host-test-harness' +import { setStructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-registry' +import { OrcaRuntimeService } from '../../orca-runtime' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' +import { hostTestState } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-harness' afterEach(() => setStructuredAgentSessionHost(null)) diff --git a/src/main/runtime/saved-structured-agent-session-restoration.ts b/src/main/runtime/agent-session/lifecycle/saved-structured-agent-session-restoration.ts similarity index 81% rename from src/main/runtime/saved-structured-agent-session-restoration.ts rename to src/main/runtime/agent-session/lifecycle/saved-structured-agent-session-restoration.ts index e53c38ac7cf..622e3aaf499 100644 --- a/src/main/runtime/saved-structured-agent-session-restoration.ts +++ b/src/main/runtime/agent-session/lifecycle/saved-structured-agent-session-restoration.ts @@ -1,6 +1,6 @@ -import { LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host' -import type { Tab } from '../../shared/tab-types' -import type { WorkspaceSessionState } from '../../shared/workspace-session/workspace-session-state-types' +import { LOCAL_EXECUTION_HOST_ID } from '../../../../shared/execution-host' +import type { Tab } from '../../../../shared/tab-types' +import type { WorkspaceSessionState } from '../../../../shared/workspace-session/workspace-session-state-types' /** The chat a saved tab shows, when it is this host's. */ export function savedSessionId(tab: Tab): string | null { diff --git a/src/main/runtime/structured-agent-chat-stop.ts b/src/main/runtime/agent-session/lifecycle/structured-agent-chat-stop.ts similarity index 87% rename from src/main/runtime/structured-agent-chat-stop.ts rename to src/main/runtime/agent-session/lifecycle/structured-agent-chat-stop.ts index d57f460a1ed..95f40d52497 100644 --- a/src/main/runtime/structured-agent-chat-stop.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-agent-chat-stop.ts @@ -1,4 +1,4 @@ -import { getStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' +import { getStructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-registry' /** Stop every running chat child for this agent, rejecting unless all are proven gone; chats remain and next send restarts them. */ export async function stopStructuredAgentChats(agent: string, label: string): Promise { diff --git a/src/main/runtime/structured-agent-cli-writers.test.ts b/src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.test.ts similarity index 93% rename from src/main/runtime/structured-agent-cli-writers.test.ts rename to src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.test.ts index 0d14223882c..3aa36f93091 100644 --- a/src/main/runtime/structured-agent-cli-writers.test.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.test.ts @@ -1,11 +1,11 @@ import { describe, expect, it, vi } from 'vitest' -import type { AgentStatusIpcPayload } from '../../shared/agent-status/contracts/agent-status-ipc-payload' -import type { AgentProcessVerdict } from '../../shared/agent-status/process/agent-process-presence' -import { CLI_CONVERSATION_ADOPTING_AGENTS } from '../../shared/structured-agent-cli-conversation-adoption' -import type { StructuredAgentId } from '../../shared/agent-session/lifecycle/agent-session-provider-handle' +import type { AgentStatusIpcPayload } from '../../../../shared/agent-status/contracts/agent-status-ipc-payload' +import type { AgentProcessVerdict } from '../../../../shared/agent-status/process/agent-process-presence' +import { CLI_CONVERSATION_ADOPTING_AGENTS } from '../../../../shared/structured-agent-cli-conversation-adoption' +import type { StructuredAgentId } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle' import { assertCliConversationWritersExited } from './structured-agent-cli-writers' -import type { CliWriterObservation } from '../agent-hooks/server/cli-writer-observation' -import { identityFixture } from './terminal/query/terminal-identity.test-fixture' +import type { CliWriterObservation } from '../../../agent-hooks/server/cli-writer-observation' +import { identityFixture } from '../../terminal/query/terminal-identity.test-fixture' const row: AgentStatusIpcPayload = { paneKey: 'source', diff --git a/src/main/runtime/structured-agent-cli-writers.ts b/src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.ts similarity index 81% rename from src/main/runtime/structured-agent-cli-writers.ts rename to src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.ts index 4ca36ad5f6a..dfa6b1e6022 100644 --- a/src/main/runtime/structured-agent-cli-writers.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-agent-cli-writers.ts @@ -1,9 +1,9 @@ -import type { AgentStatusIpcPayload } from '../../shared/agent-status/contracts/agent-status-ipc-payload' -import type { StructuredAgentId } from '../../shared/agent-session/lifecycle/agent-session-provider-handle' -import { namesCliConversation } from '../../shared/structured-agent-cli-conversation-adoption' -import { agentSessionRefusalError } from '../../shared/agent-session/failures/agent-session-wire-refusals' -import type { CliWriterObservation } from '../agent-hooks/server/cli-writer-observation' -import { forEachWithConcurrency } from '../../shared/map-with-concurrency' +import type { AgentStatusIpcPayload } from '../../../../shared/agent-status/contracts/agent-status-ipc-payload' +import type { StructuredAgentId } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle' +import { namesCliConversation } from '../../../../shared/structured-agent-cli-conversation-adoption' +import { agentSessionRefusalError } from '../../../../shared/agent-session/failures/agent-session-wire-refusals' +import type { CliWriterObservation } from '../../../agent-hooks/server/cli-writer-observation' +import { forEachWithConcurrency } from '../../../../shared/map-with-concurrency' /** The process table's own reader takes about this many reads at once. */ const WRITER_PROBE_CONCURRENCY = 8 diff --git a/src/main/runtime/structured-agent-session-claude-kill-evidence.test.ts b/src/main/runtime/agent-session/lifecycle/structured-agent-session-claude-kill-evidence.test.ts similarity index 93% rename from src/main/runtime/structured-agent-session-claude-kill-evidence.test.ts rename to src/main/runtime/agent-session/lifecycle/structured-agent-session-claude-kill-evidence.test.ts index e927cb19252..e22fc335199 100644 --- a/src/main/runtime/structured-agent-session-claude-kill-evidence.test.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-agent-session-claude-kill-evidence.test.ts @@ -1,22 +1,24 @@ import { afterEach, beforeEach, expect, it, vi } from 'vitest' -import { claudePipedFixture, SESSION } from './structured-claude-piped-test-support' -import { CLAUDE_READER_DRAIN_AFTER_EXIT_MS } from '../claude/claude-stream-json-connection' -import { SUPERVISED_GRACEFUL_EXIT_MS } from '../claude/claude-child-exit-proof-ladder' -import { AgentSessionRecordStore } from './agent-session/records/agent-session-record-store' -import { JournalHostDatabase } from '../native-chat/agent-session-journal/journal-host-database' -import { AgentSessionAcquisitionRootExitObservedError } from '../native-chat/agent-session-wire/structured-agent-session-adapter' +import { claudePipedFixture } from '../installation/structured-claude-piped-test-support' +import { HOST_TEST_SESSION as SESSION } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import { CLAUDE_READER_DRAIN_AFTER_EXIT_MS } from '../../../claude/claude-stream-json-connection' +import { SUPERVISED_GRACEFUL_EXIT_MS } from '../../../claude/claude-child-exit-proof-ladder' +import { AgentSessionRecordStore } from '../records/agent-session-record-store' +import { JournalHostDatabase } from '../../../native-chat/agent-session-journal/journal-host-database' +import '../../../native-chat/agent-session-wire/structured-agent-session-adapter' +import { AgentSessionAcquisitionRootExitObservedError } from '../../../native-chat/agent-session-wire/structured-agent-session-acquisition-errors' const os = vi.hoisted(() => ({ capture: vi.fn(), terminate: vi.fn(async () => 'unverifiable' as const) })) -vi.mock('../pty/process-retirement/pty-descendant-termination', () => ({ +vi.mock('../../../pty/process-retirement/pty-descendant-termination', () => ({ captureDescendantSnapshot: os.capture })) -vi.mock('../pty/process-retirement/pty-descendant-exit-verification', () => ({ +vi.mock('../../../pty/process-retirement/pty-descendant-exit-verification', () => ({ terminateDescendantSnapshotWithVerdict: os.terminate })) -vi.mock('../crash-reporting/self-initiated-tree-kill-log', () => ({ +vi.mock('../../../crash-reporting/self-initiated-tree-kill-log', () => ({ recordSelfInitiatedTreeKill: vi.fn() })) diff --git a/src/main/runtime/structured-agent-session-codex-goal-stop-settings.test.ts b/src/main/runtime/agent-session/lifecycle/structured-agent-session-codex-goal-stop-settings.test.ts similarity index 96% rename from src/main/runtime/structured-agent-session-codex-goal-stop-settings.test.ts rename to src/main/runtime/agent-session/lifecycle/structured-agent-session-codex-goal-stop-settings.test.ts index aec3a977bbf..50d43017867 100644 --- a/src/main/runtime/structured-agent-session-codex-goal-stop-settings.test.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-agent-session-codex-goal-stop-settings.test.ts @@ -3,28 +3,28 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { PassThrough } from 'node:stream' import { afterEach, expect, it, vi } from 'vitest' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { AGENT_SESSION_GOAL_CONTROL_COPY as COPY } from '../../shared/agent-session/view/agent-session-goal-control-copy' -import type { AgentSessionThreadGoalChange } from '../../shared/agent-session/agent-session-thread-goal-wire' -import { CodexAppServerRequestError } from '../codex/app-server/codex-app-server-request-error' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { AGENT_SESSION_GOAL_CONTROL_COPY as COPY } from '../../../../shared/agent-session/view/agent-session-goal-control-copy' +import type { AgentSessionThreadGoalChange } from '../../../../shared/agent-session/agent-session-thread-goal-wire' +import { CodexAppServerRequestError } from '../../../codex/app-server/codex-app-server-request-error' import { CODEX_SCRIPTED_THREAD as THREAD, codexScriptedChild -} from '../codex/structured/session-lifecycle/codex-scripted-child.test-fixture' +} from '../../../codex/structured/session-lifecycle/codex-scripted-child.test-fixture' import { HOST_TEST_SESSION as SESSION, hostTestAttachParams -} from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import { createStructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger' +} from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import { createStructuredAgentSessionLogger } from '../../../native-chat/agent-session-wire/structured-agent-session-logger' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime -} from './agent-session/structured-agent-session-runtime' +} from '../structured-agent-session-runtime' import { closeProviderProcess, rootOnlyProviderClosePolicy -} from '../provider-process/provider-process-close' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' +} from '../../../provider-process/provider-process-close' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' const CALLER = { callerKey: 'goal-stop-settings' } let root: string | undefined diff --git a/src/main/runtime/structured-agent-session-codex-stop-evidence.test.ts b/src/main/runtime/agent-session/lifecycle/structured-agent-session-codex-stop-evidence.test.ts similarity index 89% rename from src/main/runtime/structured-agent-session-codex-stop-evidence.test.ts rename to src/main/runtime/agent-session/lifecycle/structured-agent-session-codex-stop-evidence.test.ts index ef13899b5fc..d5adbc4973a 100644 --- a/src/main/runtime/structured-agent-session-codex-stop-evidence.test.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-agent-session-codex-stop-evidence.test.ts @@ -2,41 +2,41 @@ import { mkdtemp, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, expect, it, vi } from 'vitest' -import { createFakePipedChild } from '../../shared/__fixtures__/fake-spawned-child' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { AGENT_SESSION_GOAL_CONTROL_COPY as COPY } from '../../shared/agent-session/view/agent-session-goal-control-copy' -import { openCodexAppServerConnection } from '../codex/app-server/codex-app-server-connection' -import { codexTurnLifecycleFake } from '../codex/structured/journal/codex-turn-lifecycle-fake' -import { CODEX_SCRIPTED_THREAD as THREAD } from '../codex/structured/session-lifecycle/codex-scripted-child.test-fixture' +import { createFakePipedChild } from '../../../../shared/__fixtures__/fake-spawned-child' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { AGENT_SESSION_GOAL_CONTROL_COPY as COPY } from '../../../../shared/agent-session/view/agent-session-goal-control-copy' +import { openCodexAppServerConnection } from '../../../codex/app-server/codex-app-server-connection' +import { codexTurnLifecycleFake } from '../../../codex/structured/journal/codex-turn-lifecycle-fake' +import { CODEX_SCRIPTED_THREAD as THREAD } from '../../../codex/structured/session-lifecycle/codex-scripted-child.test-fixture' import { HOST_TEST_SESSION as SESSION, hostTestAttachParams, hostTestMessage -} from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import { JournalHostDatabase } from '../native-chat/agent-session-journal/journal-host-database' -import { AgentSessionJournal } from '../native-chat/agent-session-journal/journal-store' -import { AgentSessionRecordStore } from './agent-session/records/agent-session-record-store' +} from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import { JournalHostDatabase } from '../../../native-chat/agent-session-journal/journal-host-database' +import { AgentSessionJournal } from '../../../native-chat/agent-session-journal/journal-store' +import { AgentSessionRecordStore } from '../records/agent-session-record-store' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime -} from './agent-session/structured-agent-session-runtime' -import type { DescendantSnapshot } from '../pty/process-retirement/pty-descendant-termination' -import type { DescendantTreeVerdict } from '../pty/process-retirement/pty-descendant-exit-verification' -import type { AgentSessionStopOutcome } from '../native-chat/agent-session-wire/structured-agent-session-adapter-stop' -import { agentVerdictDisplayMark } from '../../shared/agent-status/lifecycle/agent-main-agent-verdict' -import { activeProviderContext } from '../../shared/agent-session/agent-session-provider-context' +} from '../structured-agent-session-runtime' +import type { DescendantSnapshot } from '../../../pty/process-retirement/pty-descendant-termination' +import type { DescendantTreeVerdict } from '../../../pty/process-retirement/pty-descendant-exit-verification' +import type { AgentSessionStopOutcome } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter-stop' +import { agentVerdictDisplayMark } from '../../../../shared/agent-status/lifecycle/agent-main-agent-verdict' +import { activeProviderContext } from '../../../../shared/agent-session/agent-session-provider-context' const os = vi.hoisted(() => ({ capture: vi.fn<(pid: number) => Promise>(), terminate: vi.fn<() => Promise>() })) -vi.mock('../pty/process-retirement/pty-descendant-termination', () => ({ +vi.mock('../../../pty/process-retirement/pty-descendant-termination', () => ({ captureDescendantSnapshot: os.capture })) -vi.mock('../pty/process-retirement/pty-descendant-exit-verification', () => ({ +vi.mock('../../../pty/process-retirement/pty-descendant-exit-verification', () => ({ terminateDescendantSnapshotWithVerdict: os.terminate })) -vi.mock('../crash-reporting/self-initiated-tree-kill-log', () => ({ +vi.mock('../../../crash-reporting/self-initiated-tree-kill-log', () => ({ recordSelfInitiatedTreeKill: vi.fn() })) diff --git a/src/main/runtime/structured-agent-session-history-close-race.test.ts b/src/main/runtime/agent-session/lifecycle/structured-agent-session-history-close-race.test.ts similarity index 80% rename from src/main/runtime/structured-agent-session-history-close-race.test.ts rename to src/main/runtime/agent-session/lifecycle/structured-agent-session-history-close-race.test.ts index dcd8ec255d0..f2622771477 100644 --- a/src/main/runtime/structured-agent-session-history-close-race.test.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-agent-session-history-close-race.test.ts @@ -1,19 +1,19 @@ -import './rpc/unused-default-rpc-methods.test-fixture' +import '../../rpc/unused-default-rpc-methods.test-fixture' import { expect, it, vi } from 'vitest' -import { RpcDispatcher } from './rpc/dispatcher' -import { STRUCTURED_AGENT_SESSION_REVEAL_METHODS } from './rpc/methods/structured-agent-session-reveal' -import { STRUCTURED_AGENT_SESSION_CLOSE_METHOD } from './rpc/methods/structured-agent-session-close-method' -import { STRUCTURED_AGENT_SESSION_RUNTIME_CAPABILITY } from '../../shared/agent-session/agent-session-runtime-capabilities' +import { RpcDispatcher } from '../../rpc/dispatcher' +import { STRUCTURED_AGENT_SESSION_REVEAL_METHODS } from '../../rpc/methods/structured-agent-session-reveal' +import { STRUCTURED_AGENT_SESSION_CLOSE_METHOD } from '../../rpc/methods/structured-agent-session-close-method' +import { STRUCTURED_AGENT_SESSION_RUNTIME_CAPABILITY } from '../../../../shared/agent-session/agent-session-runtime-capabilities' import { B, authorityProfile, openAuthorityRuntime, savedIds } from './structured-agent-session-tab-authority.test-support' -import * as publication from './session-tabs/structured-session-tab-publication' -import { chatTabCommandsSettled } from './orca-runtime-tests/session-layout-apply.test-fixture' +import * as publication from '../../session-tabs/structured-session-tab-publication' +import { chatTabCommandsSettled } from '../../orca-runtime-tests/session-layout-apply.test-fixture' -vi.mock('../claude/claude-cli-flag-prewarm', () => ({ +vi.mock('../../../claude/claude-cli-flag-prewarm', () => ({ prewarmClaudeCliFlags: async () => undefined })) diff --git a/src/main/runtime/structured-agent-session-pi-kill-retry.test.ts b/src/main/runtime/agent-session/lifecycle/structured-agent-session-pi-kill-retry.test.ts similarity index 89% rename from src/main/runtime/structured-agent-session-pi-kill-retry.test.ts rename to src/main/runtime/agent-session/lifecycle/structured-agent-session-pi-kill-retry.test.ts index b5a4235f929..76eca78079e 100644 --- a/src/main/runtime/structured-agent-session-pi-kill-retry.test.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-agent-session-pi-kill-retry.test.ts @@ -2,32 +2,32 @@ import { mkdtemp, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, expect, it, vi } from 'vitest' -import { createFakePipedChild } from '../../shared/__fixtures__/fake-spawned-child' -import { observeStructuredSession } from './structured-worker-authority' -import { JsonlRpcAgentConnection } from '../jsonl-rpc/agent-connection' +import { createFakePipedChild } from '../../../../shared/__fixtures__/fake-spawned-child' +import { observeStructuredSession } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' +import { JsonlRpcAgentConnection } from '../../../jsonl-rpc/agent-connection' import { hostTestAttachParams, hostTestMessage, HOST_TEST_SESSION as SESSION -} from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { PROVIDER_SUPERVISOR_MAX_STOP_MS } from '../provider-process/provider-process-supervisor' +} from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { PROVIDER_SUPERVISOR_MAX_STOP_MS } from '../../../provider-process/provider-process-supervisor' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime -} from './agent-session/structured-agent-session-runtime' +} from '../structured-agent-session-runtime' const os = vi.hoisted(() => ({ capture: vi.fn(), terminate: vi.fn(async () => 'unverifiable' as const) })) -vi.mock('../pty/process-retirement/pty-descendant-termination', () => ({ +vi.mock('../../../pty/process-retirement/pty-descendant-termination', () => ({ captureDescendantSnapshot: os.capture })) -vi.mock('../pty/process-retirement/pty-descendant-exit-verification', () => ({ +vi.mock('../../../pty/process-retirement/pty-descendant-exit-verification', () => ({ terminateDescendantSnapshotWithVerdict: os.terminate })) -vi.mock('../crash-reporting/self-initiated-tree-kill-log', () => ({ +vi.mock('../../../crash-reporting/self-initiated-tree-kill-log', () => ({ recordSelfInitiatedTreeKill: vi.fn() })) diff --git a/src/main/runtime/structured-agent-session-tab-authority.test-support.ts b/src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test-support.ts similarity index 83% rename from src/main/runtime/structured-agent-session-tab-authority.test-support.ts rename to src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test-support.ts index 6fbfd71ff82..83adcd29297 100644 --- a/src/main/runtime/structured-agent-session-tab-authority.test-support.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test-support.ts @@ -1,32 +1,36 @@ import { randomUUID } from 'node:crypto' import type { MockInstance } from 'vitest' -import type { AgentSessionRecordStore } from './agent-session/records/agent-session-record-store' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' +import type { AgentSessionRecordStore } from '../records/agent-session-record-store' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' import { mkdtemp, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, vi } from 'vitest' -import { folderWorkspaceKey } from '../../shared/workspace-scope' -import { getDefaultWorkspaceSession } from '../../shared/constants' -import { structuredAgentSessionTabId } from '../../shared/agent-session/view/structured-agent-session-projection' +import { folderWorkspaceKey } from '../../../../shared/workspace-scope' +import { getDefaultWorkspaceSession } from '../../../../shared/constants' +import { structuredAgentSessionTabId } from '../../../../shared/agent-session/view/structured-agent-session-projection' import { agentSessionLeaseFixture, agentSessionRecordFixture -} from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' -import { createStore, closeTestStores, testState } from '../persistence/persistence-test-harness' -import { initOrcaProfilePaths } from '../orca-profiles/profile-storage-paths' -import { closeTestJournalHostDatabases } from '../native-chat/agent-session-journal/journal-host-database-test-support' -import { getStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' +} from '../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' +import { + createStore, + closeTestStores, + testState +} from '../../../persistence/persistence-test-harness' +import { initOrcaProfilePaths } from '../../../orca-profiles/profile-storage-paths' +import { closeTestJournalHostDatabases } from '../../../native-chat/agent-session-journal/journal-host-database-test-support' +import { getStructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-registry' import { createTestParams, CREATE_TEST_CALLER -} from '../native-chat/agent-session-wire/structured-agent-session-create-test-fixture' -import { seedTestAgentSessionRecordStore } from './agent-session/records/agent-session-record-store-test-harness' -import { OrcaRuntimeService } from './orca-runtime' -import { withChatTabChanges } from './agent-session/agent-session-tab-layout' +} from '../../../native-chat/agent-session-wire/structured-agent-session-create-test-fixture' +import { seedTestAgentSessionRecordStore } from '../records/agent-session-record-store-test-harness' +import { OrcaRuntimeService } from '../../orca-runtime' +import { withChatTabChanges } from '../agent-session-tab-layout' import { collectSavedStructuredAgentSessionIds } from './saved-structured-agent-session-restoration' -import { chatTabCommandsSettled } from './orca-runtime-tests/session-layout-apply.test-fixture' -import { stopStructuredAgentSessionRuntime } from './agent-session/structured-agent-session-runtime' +import { chatTabCommandsSettled } from '../../orca-runtime-tests/session-layout-apply.test-fixture' +import { stopStructuredAgentSessionRuntime } from '../structured-agent-session-runtime' export const B = 'chat-b-0002', C = 'chat-c-0003', diff --git a/src/main/runtime/structured-agent-session-tab-authority.test.ts b/src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test.ts similarity index 94% rename from src/main/runtime/structured-agent-session-tab-authority.test.ts rename to src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test.ts index f569fee7de6..9fe43fe36af 100644 --- a/src/main/runtime/structured-agent-session-tab-authority.test.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test.ts @@ -1,16 +1,16 @@ -import './rpc/unused-default-rpc-methods.test-fixture' +import '../../rpc/unused-default-rpc-methods.test-fixture' import { beforeEach, expect, it, vi } from 'vitest' -import { RpcDispatcher } from './rpc/dispatcher' -import { ORCHESTRATION_CALLER_METHODS } from './rpc/methods/orchestration/caller-show' -import { STRUCTURED_AGENT_SESSION_REVEAL_METHODS } from './rpc/methods/structured-agent-session-reveal' +import { RpcDispatcher } from '../../rpc/dispatcher' +import { ORCHESTRATION_CALLER_METHODS } from '../../rpc/methods/orchestration/caller-show' +import { STRUCTURED_AGENT_SESSION_REVEAL_METHODS } from '../../rpc/methods/structured-agent-session-reveal' import { seedTestAgentSessionStoreFromNewerBuild, editPersistedTestAgentSessionStore -} from './agent-session/records/agent-session-record-store-test-harness' -import { STRUCTURED_AGENT_SESSION_STATUS_METHODS } from './rpc/methods/structured-agent-session-status-stream' -import { STRUCTURED_AGENT_SESSION_RUNTIME_CAPABILITY } from '../../shared/agent-session/agent-session-runtime-capabilities' -import { folderWorkspaceKey } from '../../shared/workspace-scope' -import { toSshExecutionHostId } from '../../shared/execution-host' +} from '../records/agent-session-record-store-test-harness' +import { STRUCTURED_AGENT_SESSION_STATUS_METHODS } from '../../rpc/methods/structured-agent-session-status-stream' +import { STRUCTURED_AGENT_SESSION_RUNTIME_CAPABILITY } from '../../../../shared/agent-session/agent-session-runtime-capabilities' +import { folderWorkspaceKey } from '../../../../shared/workspace-scope' +import { toSshExecutionHostId } from '../../../../shared/execution-host' import { root, B, @@ -26,21 +26,21 @@ import { replaceSaved, savedIds } from './structured-agent-session-tab-authority.test-support' -import { structuredAgentSessionTabId } from '../../shared/agent-session/view/structured-agent-session-projection' -import { chatTabCommandsSettled } from './orca-runtime-tests/session-layout-apply.test-fixture' -import * as journalFactory from '../native-chat/agent-session-journal/journal-store-factory' -import { discardStructuredWorkerSession } from './rpc/methods/orchestration-structured-worker-session' -import { closeStructuredAgentSessionChild } from './agent-session/structured-agent-session-close' -import { createTrackedJournalOpener } from '../native-chat/agent-session-journal/journal-host-database-test-support' -import { getStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' +import { structuredAgentSessionTabId } from '../../../../shared/agent-session/view/structured-agent-session-projection' +import { chatTabCommandsSettled } from '../../orca-runtime-tests/session-layout-apply.test-fixture' +import * as journalFactory from '../../../native-chat/agent-session-journal/journal-store-factory' +import { discardStructuredWorkerSession } from '../../rpc/methods/orchestration-structured-worker-session' +import { closeStructuredAgentSessionChild } from '../structured-agent-session-close' +import { createTrackedJournalOpener } from '../../../native-chat/agent-session-journal/journal-host-database-test-support' +import { getStructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-registry' // CLI capability probing is outside tab authority and must not start a real CLI in this fixture. -vi.mock('../claude/claude-cli-flag-prewarm', () => ({ +vi.mock('../../../claude/claude-cli-flag-prewarm', () => ({ prewarmClaudeCliFlags: async () => undefined })) const layoutOwner = vi.hoisted(() => ({ main: false })) -vi.mock('../../shared/layout-owner-switch', () => ({ +vi.mock('../../../../shared/layout-owner-switch', () => ({ get ORCA_LAYOUT_OWNER_IS_MAIN() { return layoutOwner.main } diff --git a/src/main/runtime/structured-chat-tab-compatibility.test.ts b/src/main/runtime/agent-session/lifecycle/structured-chat-tab-compatibility.test.ts similarity index 87% rename from src/main/runtime/structured-chat-tab-compatibility.test.ts rename to src/main/runtime/agent-session/lifecycle/structured-chat-tab-compatibility.test.ts index 3f4437f3e07..be642638024 100644 --- a/src/main/runtime/structured-chat-tab-compatibility.test.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-chat-tab-compatibility.test.ts @@ -1,11 +1,11 @@ -import './rpc/unused-default-rpc-methods.test-fixture' +import '../../rpc/unused-default-rpc-methods.test-fixture' import { beforeEach, expect, it, vi } from 'vitest' -import { RpcDispatcher } from './rpc/dispatcher' -import { STRUCTURED_AGENT_SESSION_REVEAL_METHODS } from './rpc/methods/structured-agent-session-reveal' +import { RpcDispatcher } from '../../rpc/dispatcher' +import { STRUCTURED_AGENT_SESSION_REVEAL_METHODS } from '../../rpc/methods/structured-agent-session-reveal' import { CLAUDE_STRUCTURED_AGENT_SESSION_RUNTIME_CAPABILITY, STRUCTURED_AGENT_SESSION_RUNTIME_CAPABILITY -} from '../../shared/agent-session/agent-session-runtime-capabilities' +} from '../../../../shared/agent-session/agent-session-runtime-capabilities' import { B, C, @@ -15,15 +15,15 @@ import { rejectVisibility, savedIds } from './structured-agent-session-tab-authority.test-support' -import { structuredAgentSessionTabId } from '../../shared/agent-session/view/structured-agent-session-projection' -import { chatTabCommandsSettled } from './orca-runtime-tests/session-layout-apply.test-fixture' -import { discardStructuredWorkerSession } from './rpc/methods/orchestration-structured-worker-session' +import { structuredAgentSessionTabId } from '../../../../shared/agent-session/view/structured-agent-session-projection' +import { chatTabCommandsSettled } from '../../orca-runtime-tests/session-layout-apply.test-fixture' +import { discardStructuredWorkerSession } from '../../rpc/methods/orchestration-structured-worker-session' -vi.mock('../claude/claude-cli-flag-prewarm', () => ({ +vi.mock('../../../claude/claude-cli-flag-prewarm', () => ({ prewarmClaudeCliFlags: async () => undefined })) const layoutOwner = vi.hoisted(() => ({ main: false })) -vi.mock('../../shared/layout-owner-switch', () => ({ +vi.mock('../../../../shared/layout-owner-switch', () => ({ get ORCA_LAYOUT_OWNER_IS_MAIN() { return layoutOwner.main } @@ -77,7 +77,7 @@ it.each([false, true])( ) it('a valid failed hide retires captured raw presentation and stops through the production phone dispatcher', async () => { - const { SESSION_TAB_METHODS } = await import('./rpc/methods/session-tabs') + const { SESSION_TAB_METHODS } = await import('../../rpc/methods/session-tabs') const rig = await openAuthorityRuntime(await authorityProfile([B], { visible: [B] })) await rig.runtime.restoreStructuredAgentSessionTabs() const stop = vi.spyOn(rig.host, 'close') @@ -122,9 +122,9 @@ it.each(['stop', 'discard', 'sweep'] as const)( await finish.promise }) const { stopStructuredWorker } = - await import('./rpc/methods/orchestration-structured-worker-lifecycle') + await import('../../rpc/methods/orchestration-structured-worker-lifecycle') const { closeStructuredSessionsForWorktree, createStructuredSweepProgress } = - await import('./workspaces/removal/structured-session-worktree-teardown') + await import('../../workspaces/removal/structured-session-worktree-teardown') vi.spyOn(Date, 'now').mockReturnValue(1_800_000_000_000) const progress = createStructuredSweepProgress([{ sessionId: B, agent: 'claude' }]) const stopping = @@ -191,14 +191,14 @@ it('cancellation carries the actual create reservation across a held commit, nev const rig = await openAuthorityRuntime(await authorityProfile([], { records: [] })) await rig.runtime.restoreStructuredAgentSessionTabs() const { createTestParams, CREATE_TEST_CALLER } = - await import('../native-chat/agent-session-wire/structured-agent-session-create-test-fixture') + await import('../../../native-chat/agent-session-wire/structured-agent-session-create-test-fixture') const { commitStructuredAgentSessionCreate } = - await import('./rpc/methods/structured-agent-session-create') + await import('../../rpc/methods/structured-agent-session-create') const { refusingStructuredAgentSessionCreatesClosedFirst, noteStructuredAgentSessionClose, resetStructuredAgentSessionClosesBeforeCreateForTests - } = await import('./rpc/methods/structured-agent-session-close-before-create') + } = await import('../../rpc/methods/structured-agent-session-close-before-create') const base = createTestParams(undefined, { accountHome: { variable: 'CODEX_HOME', path: `${root}/codex-home` } }) @@ -281,8 +281,7 @@ it('retires the actual legacy Retry presentation after a worker stop even when a }) expect(rig.store.getSessionTabId(B)).toBeNull() expect(rig.runtime.live(B)).toBe(true) - const { closeStructuredAgentSessionChild } = - await import('./agent-session/structured-agent-session-close') + const { closeStructuredAgentSessionChild } = await import('../structured-agent-session-close') expect(await closeStructuredAgentSessionChild(B, { runtime: rig.runtime })).toEqual({ stopped: true, closeAttempted: true @@ -296,11 +295,11 @@ it('retires the actual legacy Retry presentation after a worker stop even when a it('captures an admitted but unsaved failed-SHOW open, then removes exactly that row after Stop', async () => { layoutOwner.main = true const { fixture } = - await import('../persistence/loading-store/profile-state-delayed-authority-fixture') + await import('../../../persistence/loading-store/profile-state-delayed-authority-fixture') const { store: profile, authority } = await fixture() const { installFakeAppEnvironment } = - await import('../../../config/scripts/test-runtime/environment/vitest-host-ports-setup') - const { initOrcaProfilePaths } = await import('../orca-profiles/profile-storage-paths') + await import('../../../../../config/scripts/test-runtime/environment/vitest-host-ports-setup') + const { initOrcaProfilePaths } = await import('../../../orca-profiles/profile-storage-paths') installFakeAppEnvironment({ getPath: () => root }) initOrcaProfilePaths() const group = profile.createProjectGroup({ @@ -315,14 +314,14 @@ it('captures an admitted but unsaved failed-SHOW open, then removes exactly that folderPath: root, name: 'Chat' }) - const { folderWorkspaceKey } = await import('../../shared/workspace-scope') + const { folderWorkspaceKey } = await import('../../../../shared/workspace-scope') const workspace = folderWorkspaceKey(folder.id), groupId = group.id, folderId = folder.id const { seedTestAgentSessionRecordStore } = - await import('./agent-session/records/agent-session-record-store-test-harness') + await import('../records/agent-session-record-store-test-harness') const { agentSessionRecordFixture, agentSessionLeaseFixture } = - await import('../../shared/agent-session/lifecycle/agent-session-record.test-fixture') + await import('../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture') const entry = agentSessionRecordFixture( agentSessionLeaseFixture({ sessionId: B, @@ -359,8 +358,7 @@ it('captures an admitted but unsaved failed-SHOW open, then removes exactly that tabId: structuredAgentSessionTabId(B) }) expect(savedIds(rig)).toEqual([]) - const { closeStructuredAgentSessionChild } = - await import('./agent-session/structured-agent-session-close') + const { closeStructuredAgentSessionChild } = await import('../structured-agent-session-close') expect(await closeStructuredAgentSessionChild(B, { runtime: rig.runtime })).toMatchObject({ stopped: true }) @@ -387,7 +385,7 @@ it.each([ async (main, caller) => { layoutOwner.main = main const { STRUCTURED_AGENT_SESSION_CLOSE_METHOD } = - await import('./rpc/methods/structured-agent-session-close-method') + await import('../../rpc/methods/structured-agent-session-close-method') const rig = await openAuthorityRuntime( await authorityProfile([], { records: [B], visible: [] }) ) diff --git a/src/main/runtime/structured-claude-pending-rewind.test.ts b/src/main/runtime/agent-session/lifecycle/structured-claude-pending-rewind.test.ts similarity index 81% rename from src/main/runtime/structured-claude-pending-rewind.test.ts rename to src/main/runtime/agent-session/lifecycle/structured-claude-pending-rewind.test.ts index 16ed3cec311..0ed3eca012d 100644 --- a/src/main/runtime/structured-claude-pending-rewind.test.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-claude-pending-rewind.test.ts @@ -4,31 +4,31 @@ import { mkdir, mkdtemp, 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 { agentJournalItemKey } from '../../shared/agent-session/journal/agent-session-journal-item-key' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' -import type { AgentSessionRewindFork } from '../../shared/agent-session/lifecycle/agent-session-rewind' -import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id' -import { fakeClaude } from '../claude/structured/claude-structured-session-test-support' -import { claudeAndCodexAgents } from '../native-chat/agent-session-wire/structured-agent-session-adapter-router-test-support' -import { StructuredAgentSessionAdapterRouter } from '../native-chat/agent-session-wire/structured-agent-session-adapter-router' -import { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' +import { agentJournalItemKey } from '../../../../shared/agent-session/journal/agent-session-journal-item-key' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import type { AgentSessionRecord } from '../../../../shared/agent-session/lifecycle/agent-session-record' +import type { AgentSessionRewindFork } from '../../../../shared/agent-session/lifecycle/agent-session-rewind' +import { claudeSessionIdForOrcaSession } from '../../../claude/structured/claude-structured-session-id' +import { fakeClaude } from '../../../claude/structured/claude-structured-session-test-support' +import { claudeAndCodexAgents } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter-router-test-support' +import { StructuredAgentSessionAdapterRouter } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter-router' +import { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' import { HOST_TEST_NOW, HOST_TEST_SESSION, hostTestAttachParams, hostTestOperationId, resetHostTestOperationIds -} from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import type { AgentSessionRecordStore } from './agent-session/records/agent-session-record-store' -import { openTestAgentSessionRecordStore } from './agent-session/records/agent-session-record-store-test-harness' -import { createClaudeStructuredLaunchResolver } from './structured-agent-launch-composition.test-support' -import { createStructuredClaudeRuntimeAdapter } from './structured-claude-runtime-adapter' +} from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import type { AgentSessionRecordStore } from '../records/agent-session-record-store' +import { openTestAgentSessionRecordStore } from '../records/agent-session-record-store-test-harness' +import { createClaudeStructuredLaunchResolver } from '../launch/structured-agent-launch-composition.test-support' +import { createStructuredClaudeRuntimeAdapter } from '../installation/structured-claude-runtime-adapter' import { closeTestJournalHostDatabases, openTestJournalHostDatabase -} from '../native-chat/agent-session-journal/journal-host-database-test-support' -import { recordingStructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger-test-support' +} from '../../../native-chat/agent-session-journal/journal-host-database-test-support' +import { recordingStructuredAgentSessionLogger } from '../../../native-chat/agent-session-wire/structured-agent-session-logger-test-support' const caller = { callerKey: 'desktop' } const PROVIDER_SESSION_ID = claudeSessionIdForOrcaSession(HOST_TEST_SESSION) diff --git a/src/main/runtime/structured-claude-thinking-display-refusal.test.ts b/src/main/runtime/agent-session/lifecycle/structured-claude-thinking-display-refusal.test.ts similarity index 91% rename from src/main/runtime/structured-claude-thinking-display-refusal.test.ts rename to src/main/runtime/agent-session/lifecycle/structured-claude-thinking-display-refusal.test.ts index a23a6857d41..1a7e846a50d 100644 --- a/src/main/runtime/structured-claude-thinking-display-refusal.test.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-claude-thinking-display-refusal.test.ts @@ -4,16 +4,16 @@ import { mkdtempSync, rmSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, describe, expect, it, vi } from 'vitest' -import { CLAUDE_STRUCTURED_BASE_OPTIONS } from '../claude/structured/launch/claude-structured-launch-resolution' +import { CLAUDE_STRUCTURED_BASE_OPTIONS } from '../../../claude/structured/launch/claude-structured-launch-resolution' import { CLAUDE_THINKING_DISPLAY_FLAG, createClaudeCliFlagSupport -} from '../claude/claude-cli-flag-support' -import { openClaudeConnectionOf } from './structured-claude-runtime-adapter' +} from '../../../claude/claude-cli-flag-support' +import { openClaudeConnectionOf } from '../installation/structured-claude-runtime-adapter' const FAKE_CLI = join( __dirname, - '..', + '../../..', 'claude', '__fixtures__', 'claude-agent-sdk-scripted-cli.mjs' diff --git a/src/main/runtime/structured-session-recovery-options.ts b/src/main/runtime/agent-session/lifecycle/structured-session-recovery-options.ts similarity index 85% rename from src/main/runtime/structured-session-recovery-options.ts rename to src/main/runtime/agent-session/lifecycle/structured-session-recovery-options.ts index 3b7d0d92745..7678151bba0 100644 --- a/src/main/runtime/structured-session-recovery-options.ts +++ b/src/main/runtime/agent-session/lifecycle/structured-session-recovery-options.ts @@ -1,11 +1,11 @@ import { realpath, stat } from 'node:fs/promises' import { isAbsolute, join } from 'node:path' -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' -import { agentSessionProviderHandleChainHead } from '../../shared/agent-session/lifecycle/agent-session-provider-handle' -import { getClaudeProfileRouter } from '../claude-accounts/claude-profile-installed-router' -import { agentSessionPinnedLaunchDirectory } from './agent-session/records/agent-session-record-launch-directory' -import { structuredAgentRuntimeMetadata } from './structured-agent-runtime-metadata' -import type { StructuredAgentTranscriptImport } from '../native-chat/structured-agent-cli-conversations' +import type { AgentSessionRecord } from '../../../../shared/agent-session/lifecycle/agent-session-record' +import { agentSessionProviderHandleChainHead } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle' +import { getClaudeProfileRouter } from '../../../claude-accounts/claude-profile-installed-router' +import { agentSessionPinnedLaunchDirectory } from '../records/agent-session-record-launch-directory' +import { structuredAgentRuntimeMetadata } from '../installation/structured-agent-runtime-metadata' +import type { StructuredAgentTranscriptImport } from '../../../native-chat/structured-agent-cli-conversations' export type RecoveryContextCache = { key?: string diff --git a/src/main/runtime/structured-agent-model-catalog-discovery.test.ts b/src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-discovery.test.ts similarity index 91% rename from src/main/runtime/structured-agent-model-catalog-discovery.test.ts rename to src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-discovery.test.ts index 1e8a0d43a31..c18c5b776b3 100644 --- a/src/main/runtime/structured-agent-model-catalog-discovery.test.ts +++ b/src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-discovery.test.ts @@ -1,25 +1,25 @@ -import type { StructuredAgentSessionRuntimeDeps } from './structured-agent-session-runtime-contract' +import type { StructuredAgentSessionRuntimeDeps } from '../installation/structured-agent-session-runtime-contract' import { chmodSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' import { describe, expect, it, vi } from 'vitest' -import { STRUCTURED_AGENT_RUNTIME_REGISTRATIONS } from './structured-agent-runtime-registrations' -import { resolveStructuredAgentCommand } from '../native-chat/structured-agent-command-resolution' -import { resolveCliCommand } from '../../shared/node-cli-command-resolution' +import { STRUCTURED_AGENT_RUNTIME_REGISTRATIONS } from '../installation/structured-agent-runtime-registrations' +import { resolveStructuredAgentCommand } from '../../../native-chat/structured-agent-command-resolution' +import { resolveCliCommand } from '../../../../shared/node-cli-command-resolution' import { registeredModelCatalogDiscovery } from './structured-agent-model-catalog-wiring' import { acpModelCatalogDiscovery } from './structured-agent-model-catalog-discovery' -import { acpLaunchSpecFor } from '../acp/acp-launch-specs' -import type { StructuredAgentModelCatalogContext } from './structured-agent-runtime-registrations' +import { acpLaunchSpecFor } from '../../../acp/acp-launch-specs' +import type { StructuredAgentModelCatalogContext } from '../installation/structured-agent-runtime-registration-types' // What each probe would have spawned; nothing is. const spawned = vi.hoisted((): { commands: string[] } => ({ commands: [] })) -vi.mock('../provider-process/managed-provider-process', () => ({ +vi.mock('../../../provider-process/managed-provider-process', () => ({ spawnManagedProviderProcess: (launch: { command: string }) => { spawned.commands.push(launch.command) throw new Error('no spawn in this test') } })) -vi.mock('../agent-launch/preflight/agent-cli-version-probe', async (importOriginal) => ({ +vi.mock('../../../agent-launch/preflight/agent-cli-version-probe', async (importOriginal) => ({ ...(await importOriginal()), checkAgentCliVersion: async (input: { program: string }) => { spawned.commands.push(input.program) diff --git a/src/main/runtime/structured-agent-model-catalog-discovery.ts b/src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-discovery.ts similarity index 85% rename from src/main/runtime/structured-agent-model-catalog-discovery.ts rename to src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-discovery.ts index d6e43913173..354b7939c34 100644 --- a/src/main/runtime/structured-agent-model-catalog-discovery.ts +++ b/src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-discovery.ts @@ -1,15 +1,15 @@ // Use session launch resolvers, including missing-program env refresh, for probes so catalogs match the binary/account sessions actually use. -import { createAcpModelCatalogProbe } from '../acp/acp-model-catalog-probe' -import { acpListingNeedsChatFolder, type AcpLaunchSpec } from '../acp/acp-launch-specs' +import { createAcpModelCatalogProbe } from '../../../acp/acp-model-catalog-probe' +import { acpListingNeedsChatFolder, type AcpLaunchSpec } from '../../../acp/acp-launch-specs' import { createClaudeModelCatalogProbe, type ClaudeModelCatalogProbeDeps -} from '../claude/claude-model-catalog-probe' -import { createCodexModelCatalogProbe } from '../codex/structured/catalog/codex-model-catalog-probe' -import type { AgentModelCatalogDiscovery } from '../native-chat/agent-model-catalog/agent-model-catalog-discovery' -import type { StructuredAgentModelCatalogContext } from './structured-agent-runtime-registrations' -import type { StructuredAgentSessionRuntimeDeps } from './structured-agent-session-runtime-contract' +} from '../../../claude/claude-model-catalog-probe' +import { createCodexModelCatalogProbe } from '../../../codex/structured/catalog/codex-model-catalog-probe' +import type { AgentModelCatalogDiscovery } from '../../../native-chat/agent-model-catalog/agent-model-catalog-discovery' +import type { StructuredAgentModelCatalogContext } from '../installation/structured-agent-runtime-registration-types' +import type { StructuredAgentSessionRuntimeDeps } from '../installation/structured-agent-session-runtime-contract' /** Claude's overlay, laid over its base env minus an inherited config dir; absent when none. */ export function claudeLaunchEnvOverlay( diff --git a/src/main/runtime/structured-agent-model-catalog-first-frame.test.ts b/src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-first-frame.test.ts similarity index 79% rename from src/main/runtime/structured-agent-model-catalog-first-frame.test.ts rename to src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-first-frame.test.ts index c827ee4b6d7..facf27ac423 100644 --- a/src/main/runtime/structured-agent-model-catalog-first-frame.test.ts +++ b/src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-first-frame.test.ts @@ -1,30 +1,26 @@ -import { agentSessionRecordFixture } from '../native-chat/agent-session-record-test-fixture' -import { agentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' +import { agentSessionRecordFixture } from '../../../native-chat/agent-session-record-test-fixture' +import { agentSessionConversationView } from '../../../../shared/agent-session/lifecycle/agent-session-conversation-view' import { describe, expect, it } from 'vitest' -import type { AgentSessionAccountHome } from '../../shared/agent-session/lifecycle/agent-session-account-home' -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' -import type { AgentSessionModelOption } from '../../shared/agent-session/agent-session-wire' -import { structuredAgentSessionSeedCatalog } from '../../shared/agent-session/options/structured-agent-session-seed-catalog' +import type { AgentSessionAccountHome } from '../../../../shared/agent-session/lifecycle/agent-session-account-home' +import type { AgentSessionRecord } from '../../../../shared/agent-session/lifecycle/agent-session-record' +import type { AgentSessionModelOption } from '../../../../shared/agent-session/agent-session-wire' +import { structuredAgentSessionSeedCatalog } from '../../../../shared/agent-session/options/structured-agent-session-seed-catalog' import { applyStructuredAgentSessionModelCatalog, createStructuredAgentSessionOptionState -} from '../../shared/agent-session/options/structured-agent-session-options' -import { structuredAgentSessionOptionSnapshot } from '../../shared/agent-session/options/structured-agent-session-option-snapshot' -import { AcpStructuredOptions } from '../acp/acp-structured-options' -import { GROK_ACP_DIALECT } from '../acp/acp-dialects/grok-dialect' -import { grokModelCatalogFromState } from '../acp/acp-dialects/grok-model-catalog' -import { agentModelCatalogFingerprintForRecord } from '../native-chat/agent-model-catalog/agent-model-catalog-fingerprint' -import { createAgentModelCatalogService } from '../native-chat/agent-model-catalog/agent-model-catalog-service' -import { workspaceMayOverrideDefaultModel } from '../native-chat/agent-model-catalog/agent-project-model-override' -import { - AgentModelCatalogStore, - withLiveCatalogListing, - type AgentModelCatalogProbe -} from '../native-chat/agent-model-catalog/agent-model-catalog-store' -import { - STRUCTURED_AGENT_RUNTIME_REGISTRATIONS, - type StructuredAgentModelCatalogContext -} from './structured-agent-runtime-registrations' +} from '../../../../shared/agent-session/options/structured-agent-session-options' +import { structuredAgentSessionOptionSnapshot } from '../../../../shared/agent-session/options/structured-agent-session-option-snapshot' +import { AcpStructuredOptions } from '../../../acp/acp-structured-options' +import { GROK_ACP_DIALECT } from '../../../acp/acp-dialects/grok-dialect' +import { grokModelCatalogFromState } from '../../../acp/acp-dialects/grok-model-catalog' +import { agentModelCatalogFingerprintForRecord } from '../../../native-chat/agent-model-catalog/agent-model-catalog-fingerprint' +import { createAgentModelCatalogService } from '../../../native-chat/agent-model-catalog/agent-model-catalog-service' +import { workspaceMayOverrideDefaultModel } from '../../../native-chat/agent-model-catalog/agent-project-model-override' +import { AgentModelCatalogStore } from '../../../native-chat/agent-model-catalog/agent-model-catalog-store' +import { withLiveCatalogListing } from '../../../native-chat/agent-model-catalog/agent-model-catalog-entry' +import type { AgentModelCatalogProbe } from '../../../native-chat/agent-model-catalog/agent-model-catalog-discovery' +import { STRUCTURED_AGENT_RUNTIME_REGISTRATIONS } from '../installation/structured-agent-runtime-registrations' +import type { StructuredAgentModelCatalogContext } from '../installation/structured-agent-runtime-registration-types' import { registeredModelCatalogDiscovery } from './structured-agent-model-catalog-wiring' // Exercise registration, host catalog and shared picker together; never hand-feed the names-its-default answer. diff --git a/src/main/runtime/structured-agent-model-catalog-owner.test.ts b/src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-owner.test.ts similarity index 89% rename from src/main/runtime/structured-agent-model-catalog-owner.test.ts rename to src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-owner.test.ts index 137b2e47acd..18b85b38eb4 100644 --- a/src/main/runtime/structured-agent-model-catalog-owner.test.ts +++ b/src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-owner.test.ts @@ -1,22 +1,22 @@ -import type * as ProfilePaths from '../orca-profiles/profile-storage-paths' -import './rpc/unused-default-rpc-methods.test-fixture' +import type * as ProfilePaths from '../../../orca-profiles/profile-storage-paths' +import '../../rpc/unused-default-rpc-methods.test-fixture' import { readFileSync } from 'node:fs' import { z } from 'zod' import { mkdtemp, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, expect, it, vi } from 'vitest' -import { OrcaRuntimeService } from './orca-runtime' -import { RpcDispatcher } from './rpc/dispatcher' -import { STRUCTURED_AGENT_SESSION_OPTIONS_READ_METHODS } from './rpc/methods/structured-agent-session-options-read' -import { DESKTOP_RENDERER_RUNTIME_CLIENT_CAPABILITIES } from '../ipc/desktop-renderer-runtime-capabilities' -import { STRUCTURED_AGENT_RUNTIME_REGISTRATIONS } from './structured-agent-runtime-registrations' -import * as recordStore from './agent-session/records/agent-session-record-store-slot' -import * as registry from '../native-chat/agent-session-wire/structured-agent-session-registry' -import * as catalogService from '../native-chat/agent-model-catalog/agent-model-catalog-service' -import * as environment from './structured-agent-shell-environment' -import type { ProviderProcessLaunch } from '../provider-process/provider-process-launch' -import * as pi from '../pi/rpc-model-catalog-probe' +import { OrcaRuntimeService } from '../../orca-runtime' +import { RpcDispatcher } from '../../rpc/dispatcher' +import { STRUCTURED_AGENT_SESSION_OPTIONS_READ_METHODS } from '../../rpc/methods/structured-agent-session-options-read' +import { DESKTOP_RENDERER_RUNTIME_CLIENT_CAPABILITIES } from '../../../ipc/desktop-renderer-runtime-capabilities' +import { STRUCTURED_AGENT_RUNTIME_REGISTRATIONS } from '../installation/structured-agent-runtime-registrations' +import * as recordStore from '../records/agent-session-record-store-slot' +import * as registry from '../../../native-chat/agent-session-wire/structured-agent-session-registry' +import * as catalogService from '../../../native-chat/agent-model-catalog/agent-model-catalog-service' +import * as environment from '../environment/structured-agent-shell-environment' +import type { ProviderProcessLaunch } from '../../../provider-process/provider-process-launch' +import * as pi from '../../../pi/rpc-model-catalog-probe' import { ensureStructuredAgentModelCatalogOwner, prewarmStructuredAgentModelCatalogs @@ -24,11 +24,11 @@ import { import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime -} from './agent-session/structured-agent-session-runtime' -import { createStructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger' +} from '../structured-agent-session-runtime' +import { createStructuredAgentSessionLogger } from '../../../native-chat/agent-session-wire/structured-agent-session-logger' const profile = vi.hoisted(() => ({ root: '' })) -vi.mock('../orca-profiles/profile-storage-paths', async (importOriginal) => ({ +vi.mock('../../../orca-profiles/profile-storage-paths', async (importOriginal) => ({ ...(await importOriginal()), getProfileUserDataPath: () => profile.root })) diff --git a/src/main/runtime/structured-agent-model-catalog-wiring.ts b/src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-wiring.ts similarity index 82% rename from src/main/runtime/structured-agent-model-catalog-wiring.ts rename to src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-wiring.ts index 4ca4ade1109..9577df72640 100644 --- a/src/main/runtime/structured-agent-model-catalog-wiring.ts +++ b/src/main/runtime/agent-session/model-catalog/structured-agent-model-catalog-wiring.ts @@ -1,32 +1,30 @@ -import type { AgentModelCatalogRunningAccountDeps } from '../native-chat/agent-model-catalog/agent-model-catalog-running-account' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import { agentSessionPinnedLaunchDirectory } from './agent-session/records/agent-session-record-launch-directory' -import { - agentModelCatalogStore, - type AgentModelCatalogProbe -} from '../native-chat/agent-model-catalog/agent-model-catalog-store' -import { createAgentModelCatalogFilePersistence } from '../native-chat/agent-model-catalog/agent-model-catalog-persistence' -import { - createAgentModelCatalogService, - type AgentModelCatalogService, - type AgentModelCatalogServiceDeps -} from '../native-chat/agent-model-catalog/agent-model-catalog-service' +import type { AgentModelCatalogRunningAccountDeps } from '../../../native-chat/agent-model-catalog/agent-model-catalog-running-account' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' +import { agentSessionPinnedLaunchDirectory } from '../records/agent-session-record-launch-directory' +import { agentModelCatalogStore } from '../../../native-chat/agent-model-catalog/agent-model-catalog-store' +import type { AgentModelCatalogProbe } from '../../../native-chat/agent-model-catalog/agent-model-catalog-discovery' +import { createAgentModelCatalogFilePersistence } from '../../../native-chat/agent-model-catalog/agent-model-catalog-persistence' +import { createAgentModelCatalogService } from '../../../native-chat/agent-model-catalog/agent-model-catalog-service' +import type { + AgentModelCatalogService, + AgentModelCatalogServiceDeps +} from '../../../native-chat/agent-model-catalog/agent-model-catalog-service-contract' import { agentReadsProjectModelConfig, workspaceMayOverrideDefaultModel -} from '../native-chat/agent-model-catalog/agent-project-model-override' -import type { AgentSessionRecordStore } from './agent-session/records/agent-session-record-store' +} from '../../../native-chat/agent-model-catalog/agent-project-model-override' +import type { AgentSessionRecordStore } from '../records/agent-session-record-store' import type { StructuredAgentModelCatalogContext, StructuredAgentRuntimeRegistration -} from './structured-agent-runtime-registrations' -import type { StructuredAgentRegistry } from '../native-chat/agent-session-wire/structured-agent-registry' -import { agentDrivesSession } from '../native-chat/agent-session-wire/structured-agent-session-provider-support' -import { createStructuredAgentEnvironmentResolvers } from './structured-agent-shell-environment' +} from '../installation/structured-agent-runtime-registration-types' +import type { StructuredAgentRegistry } from '../../../native-chat/agent-session-wire/structured-agent-registry' +import { agentDrivesSession } from '../../../native-chat/agent-session-wire/structured-agent-session-provider-support' +import { createStructuredAgentEnvironmentResolvers } from '../environment/structured-agent-shell-environment' import { STRUCTURED_AGENT_RUNTIME_METADATA, structuredAgentRuntimeMetadata -} from './structured-agent-runtime-metadata' +} from '../installation/structured-agent-runtime-metadata' // The store is process-global; hydrate it from disk at most once per process. let persistenceAttached: Promise | null = null diff --git a/src/main/runtime/structured-agent-session-provider-naming-shutdown.test.ts b/src/main/runtime/agent-session/naming/structured-agent-session-provider-naming-shutdown.test.ts similarity index 84% rename from src/main/runtime/structured-agent-session-provider-naming-shutdown.test.ts rename to src/main/runtime/agent-session/naming/structured-agent-session-provider-naming-shutdown.test.ts index a4eda32aba1..4beeebb7e26 100644 --- a/src/main/runtime/structured-agent-session-provider-naming-shutdown.test.ts +++ b/src/main/runtime/agent-session/naming/structured-agent-session-provider-naming-shutdown.test.ts @@ -1,23 +1,23 @@ -import type * as ModelCatalogWiring from './structured-agent-model-catalog-wiring' +import type * as ModelCatalogWiring from '../model-catalog/structured-agent-model-catalog-wiring' import { ChildProcess } from 'node:child_process' import { mkdtemp, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import { PassThrough } from 'node:stream' import { expect, it, vi } from 'vitest' -import { codexProviderHandle } from '../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' -import * as processSpawn from '../codex/app-server/codex-app-server-process-tree-kill' -import { closeTestJournalHostDatabase } from '../native-chat/agent-session-journal/journal-host-database-test-support' -import { agentSessionRecordFixture } from '../native-chat/agent-session-record-test-fixture' -import { StructuredAgentSessionAdapterRouter } from '../native-chat/agent-session-wire/structured-agent-session-adapter-router' -import { createStructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger' -import { seedTestAgentSessionRecordStore } from './agent-session/records/agent-session-record-store-test-harness' +import { codexProviderHandle } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' +import * as processSpawn from '../../../codex/app-server/codex-app-server-process-tree-kill' +import { closeTestJournalHostDatabase } from '../../../native-chat/agent-session-journal/journal-host-database-test-support' +import { agentSessionRecordFixture } from '../../../native-chat/agent-session-record-test-fixture' +import { StructuredAgentSessionAdapterRouter } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter-router' +import { createStructuredAgentSessionLogger } from '../../../native-chat/agent-session-wire/structured-agent-session-logger' +import { seedTestAgentSessionRecordStore } from '../records/agent-session-record-store-test-harness' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime -} from './agent-session/structured-agent-session-runtime' +} from '../structured-agent-session-runtime' -vi.mock('./structured-agent-model-catalog-wiring', async (importOriginal) => { +vi.mock('../model-catalog/structured-agent-model-catalog-wiring', async (importOriginal) => { const actual = await importOriginal() return { ...actual, diff --git a/src/main/runtime/structured-chat-naming-agent-launch.ts b/src/main/runtime/agent-session/naming/structured-chat-naming-agent-launch.ts similarity index 64% rename from src/main/runtime/structured-chat-naming-agent-launch.ts rename to src/main/runtime/agent-session/naming/structured-chat-naming-agent-launch.ts index abcb6fb286e..1b01587b8dd 100644 --- a/src/main/runtime/structured-chat-naming-agent-launch.ts +++ b/src/main/runtime/agent-session/naming/structured-chat-naming-agent-launch.ts @@ -1,14 +1,14 @@ -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' -import { requireLegacyAgentSessionAccountHome } from '../../shared/agent-session/lifecycle/agent-session-account-home' -import { resolveTuiAgentLaunchEnv } from '../../shared/agent-launch/choices/tui-agent-launch-defaults' -import { acpLaunchSpecFor } from '../acp/acp-launch-specs' -import { getClaudeProfileRouter } from '../claude-accounts/claude-profile-installed-router' +import type { AgentSessionRecord } from '../../../../shared/agent-session/lifecycle/agent-session-record' +import { requireLegacyAgentSessionAccountHome } from '../../../../shared/agent-session/lifecycle/agent-session-account-home' +import { resolveTuiAgentLaunchEnv } from '../../../../shared/agent-launch/choices/tui-agent-launch-defaults' +import { acpLaunchSpecFor } from '../../../acp/acp-launch-specs' +import { getClaudeProfileRouter } from '../../../claude-accounts/claude-profile-installed-router' import { claudeConfigDirEnvPatch, withoutInheritedClaudeConfigDir -} from '../claude/claude-config-dir-pin' -import { resolveClaudeStructuredLaunchHome } from '../claude/structured/launch/claude-structured-launch-home' -import type { CommitMessageGenerationTarget } from '../text-generation/source-control-text-generation-types' +} from '../../../claude/claude-config-dir-pin' +import { resolveClaudeStructuredLaunchHome } from '../../../claude/structured/launch/claude-structured-launch-home' +import type { CommitMessageGenerationTarget } from '../../../text-generation/source-control-text-generation-types' /** Default naming follows the native account binding; explicit recipes retain CLI routing. */ export async function chatNamingAgentTarget( diff --git a/src/main/runtime/structured-chat-naming-contract.test.ts b/src/main/runtime/agent-session/naming/structured-chat-naming-contract.test.ts similarity index 88% rename from src/main/runtime/structured-chat-naming-contract.test.ts rename to src/main/runtime/agent-session/naming/structured-chat-naming-contract.test.ts index b2b943adbc5..15335b880af 100644 --- a/src/main/runtime/structured-chat-naming-contract.test.ts +++ b/src/main/runtime/agent-session/naming/structured-chat-naming-contract.test.ts @@ -2,24 +2,24 @@ import { createHash } from 'node:crypto' import { existsSync, readFileSync } from 'node:fs' import { dirname } from 'node:path' import { afterEach, beforeEach, expect, it, onTestFinished, vi } from 'vitest' -import { getDefaultSettings } from '../../shared/constants' -import { agentSessionRecordFixture } from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' -import { isTuiAgent } from '../../shared/agent-launch/catalog/tui-agent-config' -import { getCommitMessageAgentSpec } from '../../shared/source-control/ai/generation/commit-message-agent-spec' -import { toSshExecutionHostId, type ExecutionHostId } from '../../shared/execution-host' +import { getDefaultSettings } from '../../../../shared/constants' +import { agentSessionRecordFixture } from '../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' +import { isTuiAgent } from '../../../../shared/agent-launch/catalog/tui-agent-config' +import { getCommitMessageAgentSpec } from '../../../../shared/source-control/ai/generation/commit-message-agent-spec' +import { toSshExecutionHostId, type ExecutionHostId } from '../../../../shared/execution-host' import { savedChatNamingCatalog, observeChatNamingCatalogWork -} from '../../shared/chat-naming-catalog-work.test-fixture' -import type { SourceControlActionRecipe } from '../../shared/source-control/ai/recipes/source-control-ai-actions' -import type { SpawnSourceControlAgent } from '../text-generation/source-control-text-generation-types' -import { createMockDiscoveryChild } from '../text-generation/commit-message-text-generation-test-harness' +} from '../../../../shared/chat-naming-catalog-work.test-fixture' +import type { SourceControlActionRecipe } from '../../../../shared/source-control/ai/recipes/source-control-ai-actions' +import type { SpawnSourceControlAgent } from '../../../text-generation/source-control-text-generation-types' +import { createMockDiscoveryChild } from '../../../text-generation/commit-message-text-generation-test-harness' import { structuredChatNamingDeps } from './structured-chat-naming-runtime' -import type { StructuredAgentSessionAdapter } from '../native-chat/agent-session-wire/structured-agent-session-adapter' -import { AcpTextTasks } from '../acp/acp-text-task' -import { acpLaunchSpecFor } from '../acp/acp-launch-specs' -import { FakeAcpChild } from '../acp/acp-scripted-connection.test-fixture' -import recordings from './__fixtures__/chat-naming-recorded-output.json' +import type { StructuredAgentSessionAdapter } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter' +import { AcpTextTasks } from '../../../acp/acp-text-task' +import { acpLaunchSpecFor } from '../../../acp/acp-launch-specs' +import { FakeAcpChild } from '../../../acp/acp-scripted-connection.test-fixture' +import recordings from '../../__fixtures__/chat-naming-recorded-output.json' const boundary = vi.hoisted(() => ({ spawn: vi.fn(), @@ -29,13 +29,13 @@ const boundary = vi.hoisted(() => ({ XDG_STATE_HOME: `/profiles/${id}/state` })) })) -vi.mock('../text-generation/source-control-agent-launch', () => ({ +vi.mock('../../../text-generation/source-control-agent-launch', () => ({ spawnSourceControlAgent: boundary.spawn })) -vi.mock('../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ +vi.mock('../../../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ getStructuredAgentSessionHost: () => ({ deps: { adapter: { generateText: boundary.native } } }) })) -vi.mock('../managed-data-accounts/service', () => ({ +vi.mock('../../../managed-data-accounts/service', () => ({ getManagedDataAccountService: () => ({ restoreOriginalEnvironment: () => {}, environmentForAccount: boundary.account diff --git a/src/main/runtime/structured-chat-naming-runtime.test.ts b/src/main/runtime/agent-session/naming/structured-chat-naming-runtime.test.ts similarity index 92% rename from src/main/runtime/structured-chat-naming-runtime.test.ts rename to src/main/runtime/agent-session/naming/structured-chat-naming-runtime.test.ts index f8705525970..b25d9c9b540 100644 --- a/src/main/runtime/structured-chat-naming-runtime.test.ts +++ b/src/main/runtime/agent-session/naming/structured-chat-naming-runtime.test.ts @@ -1,22 +1,22 @@ import { mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' -import { ClaudeProfileRouter } from '../claude-accounts/claude-profile-router' -import { installClaudeProfileRouter } from '../claude-accounts/claude-profile-installed-router' -import { submission as journalSubmission } from '../native-chat/agent-session-wire/structured-agent-session-restart-resume-test-harness' +import { ClaudeProfileRouter } from '../../../claude-accounts/claude-profile-router' +import { installClaudeProfileRouter } from '../../../claude-accounts/claude-profile-installed-router' +import { submission as journalSubmission } from '../../../native-chat/agent-session-wire/structured-agent-session-restart-resume-test-harness' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { getDefaultSettings } from '../../shared/constants' -import { agentSessionRecordFixture } from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' -import { toSshExecutionHostId } from '../../shared/execution-host' -import { normalizeSourceControlAiSettings } from '../../shared/source-control/ai/settings/source-control-ai-settings' +import { getDefaultSettings } from '../../../../shared/constants' +import { agentSessionRecordFixture } from '../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' +import { toSshExecutionHostId } from '../../../../shared/execution-host' +import { normalizeSourceControlAiSettings } from '../../../../shared/source-control/ai/settings/source-control-ai-settings' import { structuredChatNamingDeps } from './structured-chat-naming-runtime' -import { STRUCTURED_AGENT_RUNTIME_CATALOG } from './structured-agent-runtime-metadata' +import { STRUCTURED_AGENT_RUNTIME_CATALOG } from '../installation/structured-agent-runtime-metadata' import type { AgentJournalRenderItem, AgentJournalSubmission, AgentJournalSnapshot -} from '../../shared/agent-session/journal/agent-session-journal-types' -import type * as TextGeneration from '../text-generation/commit-message-text-generation' +} from '../../../../shared/agent-session/journal/agent-session-journal-types' +import type * as TextGeneration from '../../../text-generation/commit-message-text-generation' const mocks = vi.hoisted(() => ({ account: vi.fn((_provider: string, id: string) => ({ @@ -30,14 +30,14 @@ const mocks = vi.hoisted(() => ({ journalCurrentRead: vi.fn<(sessionId: string) => Promise>() })) -vi.mock('../text-generation/commit-message-text-generation', async (importOriginal) => { +vi.mock('../../../text-generation/commit-message-text-generation', async (importOriginal) => { const actual = await importOriginal() return { ...actual, generateConversationNameFromContext: mocks.generate } }) -vi.mock('../agent-hooks/first-work-generation-target', () => ({ +vi.mock('../../../agent-hooks/first-work-generation-target', () => ({ resolveGenerationTarget: mocks.target })) -vi.mock('../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ +vi.mock('../../../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ getStructuredAgentSessionHost: () => ({ deps: { adapter: { generateText: mocks.native } }, publishConversationName: mocks.publishConversationName, @@ -45,7 +45,7 @@ vi.mock('../native-chat/agent-session-wire/structured-agent-session-registry', ( }) })) -vi.mock('../managed-data-accounts/service', () => ({ +vi.mock('../../../managed-data-accounts/service', () => ({ getManagedDataAccountService: () => ({ restoreOriginalEnvironment: () => {}, environmentForAccount: mocks.account diff --git a/src/main/runtime/structured-chat-naming-runtime.ts b/src/main/runtime/agent-session/naming/structured-chat-naming-runtime.ts similarity index 77% rename from src/main/runtime/structured-chat-naming-runtime.ts rename to src/main/runtime/agent-session/naming/structured-chat-naming-runtime.ts index 0ef88440567..af80fe54f7e 100644 --- a/src/main/runtime/structured-chat-naming-runtime.ts +++ b/src/main/runtime/agent-session/naming/structured-chat-naming-runtime.ts @@ -1,27 +1,27 @@ -import { normalizeSourceControlAiSettings } from '../../shared/source-control/ai/settings/source-control-ai-settings' -import { resolveSourceControlActionRecipe } from '../../shared/source-control/ai/source-control-ai-operation-policy' -import { normalizeSourceControlActionRecipe } from '../../shared/source-control/ai/recipes/source-control-ai-actions' +import { normalizeSourceControlAiSettings } from '../../../../shared/source-control/ai/settings/source-control-ai-settings' +import { resolveSourceControlActionRecipe } from '../../../../shared/source-control/ai/source-control-ai-operation-policy' +import { normalizeSourceControlActionRecipe } from '../../../../shared/source-control/ai/recipes/source-control-ai-actions' import { renderConversationNamePrompt, sanitizeGeneratedConversationName -} from '../../shared/source-control/ai/generation/conversation-name-generation' +} from '../../../../shared/source-control/ai/generation/conversation-name-generation' import { chatNamingAgentTarget } from './structured-chat-naming-agent-launch' -import type { AgentLaunchProfileSettings } from '../../shared/agent-launch/choices/tui-agent-launch-defaults' -import { chatNamingFailure } from '../../shared/chat-naming-failure-copy' -import { agentSessionCurrentContextRows } from '../../shared/agent-session/agent-session-context-clear' -import { LOCAL_EXECUTION_HOST_ID, type ExecutionHostId } from '../../shared/execution-host' -import type { CommitMessageAgentEnvironmentResolvers } from '../text-generation/commit-message-agent-environment' -import type { StructuredChatNamingDeps } from '../native-chat/structured-chat-naming' -import type { StructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger' -import { getStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' -import { firstStructuredChatNamingPrompt } from '../../shared/structured-chat-naming-eligibility' -import { firstStructuredAgentSessionPrompt } from '../../shared/agent-session/requests/structured-agent-session-first-prompt' -import { LOCAL_COMMIT_MESSAGE_HOST_KEY } from '../../shared/source-control/ai/generation/commit-message-host-key' +import type { AgentLaunchProfileSettings } from '../../../../shared/agent-launch/choices/tui-agent-launch-defaults' +import { chatNamingFailure } from '../../../../shared/chat-naming-failure-copy' +import { agentSessionCurrentContextRows } from '../../../../shared/agent-session/agent-session-context-clear' +import { LOCAL_EXECUTION_HOST_ID, type ExecutionHostId } from '../../../../shared/execution-host' +import type { CommitMessageAgentEnvironmentResolvers } from '../../../text-generation/commit-message-agent-environment' +import type { StructuredChatNamingDeps } from '../../../native-chat/structured-chat-naming' +import type { StructuredAgentSessionLogger } from '../../../native-chat/agent-session-wire/structured-agent-session-logger' +import { getStructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-registry' +import { firstStructuredChatNamingPrompt } from '../../../../shared/structured-chat-naming-eligibility' +import { firstStructuredAgentSessionPrompt } from '../../../../shared/agent-session/requests/structured-agent-session-first-prompt' +import { LOCAL_COMMIT_MESSAGE_HOST_KEY } from '../../../../shared/source-control/ai/generation/commit-message-host-key' import { generateConversationNameFromContext, resolveTextGenerationParams -} from '../text-generation/commit-message-text-generation' -import { resolveGenerationTarget } from '../agent-hooks/first-work-generation-target' +} from '../../../text-generation/commit-message-text-generation' +import { resolveGenerationTarget } from '../../../agent-hooks/first-work-generation-target' type StructuredChatNamingRuntime = { resolveWorkspace: ( diff --git a/src/main/runtime/structured-claude-naming-lifetime.test.ts b/src/main/runtime/agent-session/naming/structured-claude-naming-lifetime.test.ts similarity index 96% rename from src/main/runtime/structured-claude-naming-lifetime.test.ts rename to src/main/runtime/agent-session/naming/structured-claude-naming-lifetime.test.ts index 33a52df023f..7e9ec51e246 100644 --- a/src/main/runtime/structured-claude-naming-lifetime.test.ts +++ b/src/main/runtime/agent-session/naming/structured-claude-naming-lifetime.test.ts @@ -1,20 +1,20 @@ -import type * as ModelCatalogWiring from './structured-agent-model-catalog-wiring' +import type * as ModelCatalogWiring from '../model-catalog/structured-agent-model-catalog-wiring' import { randomUUID } from 'node:crypto' import { readFile } from 'node:fs/promises' import { dirname, join } from 'node:path' import { expect, it, onTestFinished, vi } from 'vitest' -import * as transcriptNaming from '../claude/claude-provider-session-rename' -import { StructuredAgentSessionAdapterRouter } from '../native-chat/agent-session-wire/structured-agent-session-adapter-router' -import { stopCreatedChat } from '../native-chat/agent-session-wire/structured-agent-session-create-test-fixture' -import { HOST_TEST_SESSION } from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import { stopStructuredAgentSessionRuntime } from './agent-session/structured-agent-session-runtime' +import * as transcriptNaming from '../../../claude/claude-provider-session-rename' +import { StructuredAgentSessionAdapterRouter } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter-router' +import { stopCreatedChat } from '../../../native-chat/agent-session-wire/structured-agent-session-create-test-fixture' +import { HOST_TEST_SESSION } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import { stopStructuredAgentSessionRuntime } from '../structured-agent-session-runtime' import { createClaudeNamingRuntime, nativeNamingTitle, writeNativeNamingConversation } from './structured-claude-naming-test-support' -vi.mock('./structured-agent-model-catalog-wiring', async (importOriginal) => { +vi.mock('../model-catalog/structured-agent-model-catalog-wiring', async (importOriginal) => { const actual = await importOriginal() return { ...actual, diff --git a/src/main/runtime/structured-claude-naming-occurrences.test.ts b/src/main/runtime/agent-session/naming/structured-claude-naming-occurrences.test.ts similarity index 93% rename from src/main/runtime/structured-claude-naming-occurrences.test.ts rename to src/main/runtime/agent-session/naming/structured-claude-naming-occurrences.test.ts index b48edfd5b39..1c6dcb21167 100644 --- a/src/main/runtime/structured-claude-naming-occurrences.test.ts +++ b/src/main/runtime/agent-session/naming/structured-claude-naming-occurrences.test.ts @@ -1,22 +1,22 @@ -import type * as ModelCatalogWiring from './structured-agent-model-catalog-wiring' -import { agentJournalSubmissionKey } from '../../shared/agent-session/journal/agent-session-journal-item-key' -import { claudePromptUuidForSubmission } from '../claude/structured/claude-structured-session-id' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { CREATE_TEST_CALLER } from '../native-chat/agent-session-wire/structured-agent-session-create-test-fixture' +import type * as ModelCatalogWiring from '../model-catalog/structured-agent-model-catalog-wiring' +import { agentJournalSubmissionKey } from '../../../../shared/agent-session/journal/agent-session-journal-item-key' +import { claudePromptUuidForSubmission } from '../../../claude/structured/claude-structured-session-id' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { CREATE_TEST_CALLER } from '../../../native-chat/agent-session-wire/structured-agent-session-create-test-fixture' import { readFile } from 'node:fs/promises' import { dirname, join } from 'node:path' import { expect, it, onTestFinished, vi } from 'vitest' -import * as transcriptNaming from '../claude/claude-provider-session-rename' -import * as transcriptFs from '../native-chat/wsl-transcript-fs-access' -import { HOST_TEST_SESSION } from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import { stopStructuredAgentSessionRuntime } from './agent-session/structured-agent-session-runtime' +import * as transcriptNaming from '../../../claude/claude-provider-session-rename' +import * as transcriptFs from '../../../native-chat/wsl-transcript-fs-access' +import { HOST_TEST_SESSION } from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import { stopStructuredAgentSessionRuntime } from '../structured-agent-session-runtime' import { createClaudeNamingRuntime, nativeNamingTitle, writeNativeNamingConversation } from './structured-claude-naming-test-support' -vi.mock('./structured-agent-model-catalog-wiring', async (importOriginal) => { +vi.mock('../model-catalog/structured-agent-model-catalog-wiring', async (importOriginal) => { const actual = await importOriginal() return { ...actual, diff --git a/src/main/runtime/structured-claude-naming-test-support.ts b/src/main/runtime/agent-session/naming/structured-claude-naming-test-support.ts similarity index 87% rename from src/main/runtime/structured-claude-naming-test-support.ts rename to src/main/runtime/agent-session/naming/structured-claude-naming-test-support.ts index fd9dc5ab298..434c9af8399 100644 --- a/src/main/runtime/structured-claude-naming-test-support.ts +++ b/src/main/runtime/agent-session/naming/structured-claude-naming-test-support.ts @@ -2,29 +2,29 @@ import { randomUUID } from 'node:crypto' import { appendFile, mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises' import { tmpdir } from 'node:os' import { dirname, join } from 'node:path' -import { claudeProviderHandle } from '../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' -import { appendTranscriptEntries } from '../claude/claude-provider-session-rename' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { fakeClaude } from '../claude/structured/claude-structured-session-test-support' -import type { FakeConnection } from '../claude/structured/claude-structured-session-test-support' -import type { ClaudeStreamJsonLaunch } from '../claude/claude-stream-json-connection' -import { createStructuredChatNamingHandler } from '../native-chat/structured-chat-naming' +import { claudeProviderHandle } from '../../../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' +import { appendTranscriptEntries } from '../../../claude/claude-provider-session-rename' +import { computeAgentSessionPayloadFingerprint } from '../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { fakeClaude } from '../../../claude/structured/claude-structured-session-test-support' +import type { FakeConnection } from '../../../claude/structured/claude-structured-session-test-support' +import type { ClaudeStreamJsonLaunch } from '../../../claude/claude-stream-json-connection' +import { createStructuredChatNamingHandler } from '../../../native-chat/structured-chat-naming' import { createTestParams, CREATE_TEST_CALLER -} from '../native-chat/agent-session-wire/structured-agent-session-create-test-fixture' +} from '../../../native-chat/agent-session-wire/structured-agent-session-create-test-fixture' import { hostTestMessage, HOST_TEST_SESSION -} from '../native-chat/agent-session-wire/structured-agent-session-host-test-data' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import { createStructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger' -import { closeTestJournalHostDatabase } from '../native-chat/agent-session-journal/journal-host-database-test-support' +} from '../../../native-chat/agent-session-wire/structured-agent-session-host-test-data' +import type { StructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-host' +import { createStructuredAgentSessionLogger } from '../../../native-chat/agent-session-wire/structured-agent-session-logger' +import { closeTestJournalHostDatabase } from '../../../native-chat/agent-session-journal/journal-host-database-test-support' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime -} from './agent-session/structured-agent-session-runtime' -import type { StructuredAgentSessionRuntimeDeps } from './structured-agent-session-runtime-contract' +} from '../structured-agent-session-runtime' +import type { StructuredAgentSessionRuntimeDeps } from '../installation/structured-agent-session-runtime-contract' export async function writeNativeNamingConversation( path: string, diff --git a/src/main/runtime/agent-session/structured-agent-session-adapter-start-failure.test.ts b/src/main/runtime/agent-session/structured-agent-session-adapter-start-failure.test.ts index fe7dd1fde8a..0d216afb88b 100644 --- a/src/main/runtime/agent-session/structured-agent-session-adapter-start-failure.test.ts +++ b/src/main/runtime/agent-session/structured-agent-session-adapter-start-failure.test.ts @@ -13,7 +13,7 @@ import { import { createStructuredAgentSessionLogger } from '../../native-chat/agent-session-wire/structured-agent-session-logger' import { piScriptedChild } from '../../pi/pi-scripted-child.test-fixture' import { codexScriptedChild } from '../../codex/structured/session-lifecycle/codex-scripted-child.test-fixture' -import type { ScriptedAgentChild } from '../structured-agent-scripted-child.test-fixture' +import type { ScriptedAgentChild } from './installation/structured-agent-scripted-child.test-fixture' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime diff --git a/src/main/runtime/agent-session/structured-agent-session-close.ts b/src/main/runtime/agent-session/structured-agent-session-close.ts index 483849d57c2..90518074d3f 100644 --- a/src/main/runtime/agent-session/structured-agent-session-close.ts +++ b/src/main/runtime/agent-session/structured-agent-session-close.ts @@ -5,7 +5,7 @@ import type { StructuredAgentSessionCloseCause } from '../../native-chat/agent-s import { observeStructuredSession, structuredSessionCloseSettled -} from '../structured-worker-authority' +} from '../orchestration/terminal-authority/structured-sessions/structured-worker-authority' export type StructuredAgentSessionCloseOutcome = { stopped: boolean diff --git a/src/main/runtime/agent-session/structured-agent-session-codex-scripted-child.test.ts b/src/main/runtime/agent-session/structured-agent-session-codex-scripted-child.test.ts index ebf422441f9..299f21c32b6 100644 --- a/src/main/runtime/agent-session/structured-agent-session-codex-scripted-child.test.ts +++ b/src/main/runtime/agent-session/structured-agent-session-codex-scripted-child.test.ts @@ -10,7 +10,7 @@ import { hostTestMessage } from '../../native-chat/agent-session-wire/structured-agent-session-host-test-data' import { createStructuredAgentSessionLogger } from '../../native-chat/agent-session-wire/structured-agent-session-logger' -import type { ScriptedAgentChild } from '../structured-agent-scripted-child.test-fixture' +import type { ScriptedAgentChild } from './installation/structured-agent-scripted-child.test-fixture' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime diff --git a/src/main/runtime/agent-session/structured-agent-session-codex-start-deadline.test.ts b/src/main/runtime/agent-session/structured-agent-session-codex-start-deadline.test.ts index c761f366391..68bc6e3875c 100644 --- a/src/main/runtime/agent-session/structured-agent-session-codex-start-deadline.test.ts +++ b/src/main/runtime/agent-session/structured-agent-session-codex-start-deadline.test.ts @@ -16,7 +16,7 @@ import { createStructuredAgentSessionLogger } from '../../native-chat/agent-sess import { recordAgentSessionStartup } from '../../observability/agent-session-instrumentation' import { STRUCTURED_AGENT_SESSION_STARTUP_CEILING_MS } from '../../native-chat/agent-session-wire/structured-agent-session-startup-attempt-contract' import { readWholeAgentSessionFailureFact } from '../../../shared/agent-session/failures/agent-session-failure' -import type { ScriptedAgentChild } from '../structured-agent-scripted-child.test-fixture' +import type { ScriptedAgentChild } from './installation/structured-agent-scripted-child.test-fixture' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime diff --git a/src/main/runtime/agent-session/structured-agent-session-codex-turn-end-settlement.test.ts b/src/main/runtime/agent-session/structured-agent-session-codex-turn-end-settlement.test.ts index b97f34db1c3..4bc85301211 100644 --- a/src/main/runtime/agent-session/structured-agent-session-codex-turn-end-settlement.test.ts +++ b/src/main/runtime/agent-session/structured-agent-session-codex-turn-end-settlement.test.ts @@ -30,7 +30,7 @@ import { stopStructuredAgentSessionRuntime } from './structured-agent-session-runtime' import { createStructuredAgentSessionLogger } from '../../native-chat/agent-session-wire/structured-agent-session-logger' -import { createCoordinatorMailObservationClock } from '../structured-chat-coordinator-observation-clock.test-fixture' +import { createCoordinatorMailObservationClock } from '../orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-observation-clock.test-fixture' import { scriptedCodexTransport } from '../orca-runtime-tests/scripted-codex-transport.test-fixture' // A Codex send without an exact receipt stays in doubt after Stop; execution still ends. A send made while that turn runs, a // queued card's Send-now included, goes in as `turn/steer` naming it. A Stop made before Codex diff --git a/src/main/runtime/agent-session/structured-agent-session-create-adoption.ts b/src/main/runtime/agent-session/structured-agent-session-create-adoption.ts index 97f4281aed1..929d0d5d5de 100644 --- a/src/main/runtime/agent-session/structured-agent-session-create-adoption.ts +++ b/src/main/runtime/agent-session/structured-agent-session-create-adoption.ts @@ -28,7 +28,7 @@ import { resolveStructuredAgentSessionAdoption, structuredAdoptionConflictError } from '../../native-chat/structured-agent-session-history-adoption' -import { structuredAgentRuntimeMetadata } from '../structured-agent-runtime-metadata' +import { structuredAgentRuntimeMetadata } from './installation/structured-agent-runtime-metadata' import type { StructuredAgentTranscriptImport, StructuredAgentTranscriptImportSettings diff --git a/src/main/runtime/agent-session/structured-agent-session-install-failure.test.ts b/src/main/runtime/agent-session/structured-agent-session-install-failure.test.ts index 4b0c4845c17..30cddc78818 100644 --- a/src/main/runtime/agent-session/structured-agent-session-install-failure.test.ts +++ b/src/main/runtime/agent-session/structured-agent-session-install-failure.test.ts @@ -5,7 +5,7 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { JournalHostDatabase } from '../../native-chat/agent-session-journal/journal-host-database' -import type * as ModelCatalogWiring from '../structured-agent-model-catalog-wiring' +import type * as ModelCatalogWiring from './model-catalog/structured-agent-model-catalog-wiring' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime @@ -15,7 +15,7 @@ import { createStructuredAgentSessionLogger } from '../../native-chat/agent-sess const mocks = vi.hoisted(() => ({ failWiring: vi.fn(() => false) })) // The last step before the host is built: a throw here comes after both stores opened. -vi.mock('../structured-agent-model-catalog-wiring', async (importOriginal) => { +vi.mock('./model-catalog/structured-agent-model-catalog-wiring', async (importOriginal) => { const actual = await importOriginal() return { ...actual, diff --git a/src/main/runtime/agent-session/structured-agent-session-provider-operations-while-starting.test.ts b/src/main/runtime/agent-session/structured-agent-session-provider-operations-while-starting.test.ts index d63b99efb38..2dce12d72e9 100644 --- a/src/main/runtime/agent-session/structured-agent-session-provider-operations-while-starting.test.ts +++ b/src/main/runtime/agent-session/structured-agent-session-provider-operations-while-starting.test.ts @@ -20,7 +20,7 @@ import { hostTestMessage } from '../../native-chat/agent-session-wire/structured-agent-session-host-test-data' import { createStructuredAgentSessionLogger } from '../../native-chat/agent-session-wire/structured-agent-session-logger' -import type { ScriptedAgentChild } from '../structured-agent-scripted-child.test-fixture' +import type { ScriptedAgentChild } from './installation/structured-agent-scripted-child.test-fixture' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime diff --git a/src/main/runtime/agent-session/structured-agent-session-runtime-provider-started.test.ts b/src/main/runtime/agent-session/structured-agent-session-runtime-provider-started.test.ts index feca3430724..00366382d9d 100644 --- a/src/main/runtime/agent-session/structured-agent-session-runtime-provider-started.test.ts +++ b/src/main/runtime/agent-session/structured-agent-session-runtime-provider-started.test.ts @@ -2,7 +2,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest' import { waitForStructuredAgentSessionRecovery } from './structured-agent-session-runtime' -import { createScriptedClaudeRuntime } from '../structured-claude-scripted-runtime-test-support' +import { createScriptedClaudeRuntime } from './installation/structured-claude-scripted-runtime-test-support' const STALLED = 'claude-started-stalled' const HEALTHY = 'claude-started-healthy' diff --git a/src/main/runtime/agent-session/structured-agent-session-runtime.ts b/src/main/runtime/agent-session/structured-agent-session-runtime.ts index e47cc60696c..e68988986b1 100644 --- a/src/main/runtime/agent-session/structured-agent-session-runtime.ts +++ b/src/main/runtime/agent-session/structured-agent-session-runtime.ts @@ -21,12 +21,12 @@ import { } from '../../native-chat/agent-session-wire/structured-agent-session-logger' import { migrateLegacyNativeChatVisualsFolders } from '../../native-chat/native-chat-scratch-folder-migration' -import type { StructuredAgentSessionRuntimeDeps } from '../structured-agent-session-runtime-contract' +import type { StructuredAgentSessionRuntimeDeps } from './installation/structured-agent-session-runtime-contract' import { ensureStructuredAgentModelCatalogOwner, stopStructuredAgentModelCatalogOwner -} from '../structured-agent-model-catalog-wiring' +} from './model-catalog/structured-agent-model-catalog-wiring' let installing: Promise | null = null @@ -145,6 +145,6 @@ async function install(deps: StructuredAgentSessionRuntimeDeps): Promise ({ diff --git a/src/main/runtime/orca-runtime-tests/scripted-codex-transport.test-fixture.ts b/src/main/runtime/orca-runtime-tests/scripted-codex-transport.test-fixture.ts index 522962390e5..84a849a65ce 100644 --- a/src/main/runtime/orca-runtime-tests/scripted-codex-transport.test-fixture.ts +++ b/src/main/runtime/orca-runtime-tests/scripted-codex-transport.test-fixture.ts @@ -1,5 +1,5 @@ import { CODEX_MINIMUM_SUPPORTED_VERSION } from '../../../shared/codex-cli-installation' -import type { StructuredAgentSessionRuntimeDeps } from '../structured-agent-session-runtime-contract' +import type { StructuredAgentSessionRuntimeDeps } from '../agent-session/installation/structured-agent-session-runtime-contract' /** Runtime deps that put a scripted Codex child where the real app-server would spawn. It speaks * the supported protocol, so it reports that version; its fake pid has a fixed start time. */ diff --git a/src/main/runtime/orca-runtime.ts b/src/main/runtime/orca-runtime.ts index 4c41d145232..0651ca04cb2 100644 --- a/src/main/runtime/orca-runtime.ts +++ b/src/main/runtime/orca-runtime.ts @@ -43,7 +43,7 @@ import type { TerminalCreateOptions } from './runtime-terminal-contracts' import { installStructuredAgentAvailability as installAvailability, type StructuredAgentAvailabilityReader as AvailabilityReader -} from './structured-agent-availability' +} from './agent-session/launch/structured-agent-availability' import { PairedServerRowsProducer } from './sidebar-inputs/paired-server-rows-producer' import { RepoIconDataUrls } from './sidebar-inputs/repo-icon-data-urls' import { WorkspaceRowsProducer } from './sidebar-inputs/workspace-rows-producer' @@ -305,14 +305,12 @@ const OrcaRuntimeServiceExport: { export { OrcaRuntimeServiceExport as OrcaRuntimeService } installRuntimeLinearCommandSurface(OrcaRuntimeServiceExport.prototype) -export type { LegacyWorkerTerminalRecoveryResult } from './runtime-legacy-worker-terminal-recovery-types' export type { RuntimeAutomationCreateInput, RuntimeAutomationUpdateInput } from './runtime-automation-controller' export type { SubscriptionRegistration } from './runtime-subscription-registry' export type { MessageWaitResult } from './runtime-message-waiters' -export type { AccountsSnapshot, CodexRateLimitResetRpcResult } from './runtime-account-controller' export type { RuntimeTerminalDataMeta } from './terminal/output/runtime-terminal-stream-consumers' export type { RemoteFetchResult, diff --git a/src/main/runtime/orchestration/chat-worker-error-escalation.ts b/src/main/runtime/orchestration/chat-worker-error-escalation.ts index 69f93b6bf44..c92ae509b41 100644 --- a/src/main/runtime/orchestration/chat-worker-error-escalation.ts +++ b/src/main/runtime/orchestration/chat-worker-error-escalation.ts @@ -6,7 +6,7 @@ import { agentSessionFailureWords } from '../../../shared/agent-session/failures import { formatOrcaSessionAddress, isOrcaSessionId } from '../../../shared/orca-session-address' import type { StructuredAgentSessionRequestFailure } from '../../native-chat/agent-session-wire/structured-agent-session-request-failures' import { tuiAgentDisplayName } from '../../../shared/agent-launch/catalog/tui-agent-display-names' -import { resolveStructuredWorkerIdentityForSession } from '../structured-worker-authority' +import { resolveStructuredWorkerIdentityForSession } from './terminal-authority/structured-sessions/structured-worker-authority' import { canonicalOrcaSessionId } from './canonical-orca-session-id' import { chatRequestError, isSenderOwnRejection } from './chat-worker-error-words' import type { OrchestrationDb } from './db' diff --git a/src/main/runtime/orchestration/crew/crew-recipient-nested-authority.test.ts b/src/main/runtime/orchestration/crew/crew-recipient-nested-authority.test.ts index b5b3808679e..df5b419bab1 100644 --- a/src/main/runtime/orchestration/crew/crew-recipient-nested-authority.test.ts +++ b/src/main/runtime/orchestration/crew/crew-recipient-nested-authority.test.ts @@ -12,7 +12,7 @@ import { structuredWorkerIdentities, structuredWorkerIdentityFromRow, structuredWorkerProcessIncarnation -} from '../../structured-worker-identity' +} from '../terminal-authority/structured-sessions/structured-worker-identity' import { backfillStructuredWorkerOrcaSessionIds } from '../db/schema/structured-worker-orca-session-backfill' import * as recipientRouting from '../../rpc/methods/orchestration/messaging/recipient-routing' import '../../rpc/unused-default-rpc-methods.test-fixture' diff --git a/src/main/runtime/orchestration/crew/crew-recipient-worker-facts.ts b/src/main/runtime/orchestration/crew/crew-recipient-worker-facts.ts index 9de6dcaf3b6..fcf54816e10 100644 --- a/src/main/runtime/orchestration/crew/crew-recipient-worker-facts.ts +++ b/src/main/runtime/orchestration/crew/crew-recipient-worker-facts.ts @@ -6,7 +6,7 @@ import { structuredWorkerProcessIncarnation, structuredWorkerRecordIsCurrent, type StructuredWorkerIdentity -} from '../../structured-worker-identity' +} from '../terminal-authority/structured-sessions/structured-worker-identity' import { deriveWorkerTerminalListState } from '../worker-terminal-ownership' import type { createLineageRunningSessionResolver } from '../structured-session-lineage' import { sessionPartyFromWorkerIdentity } from '../orchestration-party' diff --git a/src/main/runtime/orchestration/db/dispatch-depth.test.ts b/src/main/runtime/orchestration/db/dispatch-depth.test.ts index 6cbb51f4886..1d3d8c775ea 100644 --- a/src/main/runtime/orchestration/db/dispatch-depth.test.ts +++ b/src/main/runtime/orchestration/db/dispatch-depth.test.ts @@ -3,7 +3,7 @@ import { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey, structuredWorkerProcessIncarnation -} from '../../structured-worker-identity' +} from '../terminal-authority/structured-sessions/structured-worker-identity' import { OrchestrationDb } from '../db' import { AmbiguousDispatchParentError } from './dispatch-depth' import { backfillStructuredWorkerOrcaSessionIds } from './schema/structured-worker-orca-session-backfill' diff --git a/src/main/runtime/orchestration/db/runs/run-coordinator-orca-session-binding.test.ts b/src/main/runtime/orchestration/db/runs/run-coordinator-orca-session-binding.test.ts index 9b52aa0729c..e1c6e9b0180 100644 --- a/src/main/runtime/orchestration/db/runs/run-coordinator-orca-session-binding.test.ts +++ b/src/main/runtime/orchestration/db/runs/run-coordinator-orca-session-binding.test.ts @@ -3,7 +3,7 @@ import { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey, structuredWorkerProcessIncarnation -} from '../../../structured-worker-identity' +} from '../../terminal-authority/structured-sessions/structured-worker-identity' import { OrchestrationDb } from '../../db' import { formatOrcaSessionAddress, diff --git a/src/main/runtime/orchestration/db/schema/structured-worker-orca-session-backfill.test.ts b/src/main/runtime/orchestration/db/schema/structured-worker-orca-session-backfill.test.ts index 03579337498..a1fecd564a0 100644 --- a/src/main/runtime/orchestration/db/schema/structured-worker-orca-session-backfill.test.ts +++ b/src/main/runtime/orchestration/db/schema/structured-worker-orca-session-backfill.test.ts @@ -3,7 +3,7 @@ import { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey, structuredWorkerProcessIncarnation -} from '../../../structured-worker-identity' +} from '../../terminal-authority/structured-sessions/structured-worker-identity' import { OrchestrationDb } from '../orchestration-db' import { backfillStructuredWorkerOrcaSessionIds } from './structured-worker-orca-session-backfill' diff --git a/src/main/runtime/orchestration/db/schema/structured-worker-orca-session-backfill.ts b/src/main/runtime/orchestration/db/schema/structured-worker-orca-session-backfill.ts index 4900aad106a..1fd401628ac 100644 --- a/src/main/runtime/orchestration/db/schema/structured-worker-orca-session-backfill.ts +++ b/src/main/runtime/orchestration/db/schema/structured-worker-orca-session-backfill.ts @@ -7,7 +7,7 @@ import { import { STRUCTURED_WORKER_INCARNATION_PREFIX, sessionIdFromStructuredWorkerIncarnation -} from '../../../structured-worker-identity' +} from '../../terminal-authority/structured-sessions/structured-worker-identity' import { currentRunCoordinatorOrcaSessionIdSql } from '../runs/run-coordinator-orca-session' const CURRENT_COORDINATOR_ORCA_SESSION_ID_SQL = currentRunCoordinatorOrcaSessionIdSql('runs') diff --git a/src/main/runtime/orchestration/db/worker-dispatch/worker-dispatch-assignee-orca-session.test.ts b/src/main/runtime/orchestration/db/worker-dispatch/worker-dispatch-assignee-orca-session.test.ts index c7b6645e63e..dd420a29a41 100644 --- a/src/main/runtime/orchestration/db/worker-dispatch/worker-dispatch-assignee-orca-session.test.ts +++ b/src/main/runtime/orchestration/db/worker-dispatch/worker-dispatch-assignee-orca-session.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect, it } from 'vitest' import { isOrcaSessionId } from '../../../../../shared/orca-session-address' -import { mintStructuredWorkerHandle } from '../../../structured-worker-identity' +import { mintStructuredWorkerHandle } from '../../terminal-authority/structured-sessions/structured-worker-identity' import { OrchestrationDb } from '../orchestration-db' const EARLIER_ORCA_SESSION_ID = '7d9f1b3e-5a2c-4e6b-8f0a-1c3e5a7b9d42' diff --git a/src/main/runtime/orchestration/dispatch-assignee-orca-session-id.ts b/src/main/runtime/orchestration/dispatch-assignee-orca-session-id.ts index 5d6e8b91187..118fc3450ad 100644 --- a/src/main/runtime/orchestration/dispatch-assignee-orca-session-id.ts +++ b/src/main/runtime/orchestration/dispatch-assignee-orca-session-id.ts @@ -1,5 +1,5 @@ import { parseOrcaSessionAddress, type OrcaSessionId } from '../../../shared/orca-session-address' -import { structuredWorkerOrcaSessionIdForIncarnation } from '../structured-worker-identity' +import { structuredWorkerOrcaSessionIdForIncarnation } from './terminal-authority/structured-sessions/structured-worker-identity' import { canonicalOrcaSessionId } from './canonical-orca-session-id' /** Resolve structured incarnations or chat addresses to bare session ids; PTYs have none. */ diff --git a/src/main/runtime/orchestration/orchestration-legacy-worker-terminal-recovery.ts b/src/main/runtime/orchestration/orchestration-legacy-worker-terminal-recovery.ts index 7e916e64e33..c8a097f6513 100644 --- a/src/main/runtime/orchestration/orchestration-legacy-worker-terminal-recovery.ts +++ b/src/main/runtime/orchestration/orchestration-legacy-worker-terminal-recovery.ts @@ -1,4 +1,4 @@ -import { sessionIdFromStructuredWorkerIncarnation } from '../structured-worker-identity' +import { sessionIdFromStructuredWorkerIncarnation } from './terminal-authority/structured-sessions/structured-worker-identity' import { isPtyIncarnationId, type PtyIncarnationId diff --git a/src/main/runtime/orchestration/orchestration-orca-session-column-migration.test.ts b/src/main/runtime/orchestration/orchestration-orca-session-column-migration.test.ts index d25744e63e6..c8427990f2e 100644 --- a/src/main/runtime/orchestration/orchestration-orca-session-column-migration.test.ts +++ b/src/main/runtime/orchestration/orchestration-orca-session-column-migration.test.ts @@ -7,7 +7,7 @@ import { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey, structuredWorkerProcessIncarnation -} from '../structured-worker-identity' +} from './terminal-authority/structured-sessions/structured-worker-identity' import { OrchestrationDb } from './db' import { SCHEMA_VERSION } from './db/contract-constants' import { formatOrcaSessionAddress } from '../../../shared/orca-session-address' diff --git a/src/main/runtime/orchestration/orchestration-party.ts b/src/main/runtime/orchestration/orchestration-party.ts index a7a9661f286..9614df21b1d 100644 --- a/src/main/runtime/orchestration/orchestration-party.ts +++ b/src/main/runtime/orchestration/orchestration-party.ts @@ -9,8 +9,8 @@ import { isRecordedStructuredWorkerSession, resolveStructuredWorkerIdentity, resolveStructuredWorkerIdentityForRoot -} from '../structured-worker-authority' -import type { StructuredWorkerIdentity } from '../structured-worker-identity' +} from './terminal-authority/structured-sessions/structured-worker-authority' +import type { StructuredWorkerIdentity } from './terminal-authority/structured-sessions/structured-worker-identity' import { canonicalOrcaSessionId } from './canonical-orca-session-id' import type { AgentSessionRecordReader } from './structured-session-lineage' import type { OrchestrationDb } from './db' diff --git a/src/main/runtime/orchestration/run-coordinator-orca-session-address.test.ts b/src/main/runtime/orchestration/run-coordinator-orca-session-address.test.ts index 76c30f9f356..f035f6ec1b5 100644 --- a/src/main/runtime/orchestration/run-coordinator-orca-session-address.test.ts +++ b/src/main/runtime/orchestration/run-coordinator-orca-session-address.test.ts @@ -12,7 +12,7 @@ import { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey, structuredWorkerProcessIncarnation -} from '../structured-worker-identity' +} from './terminal-authority/structured-sessions/structured-worker-identity' import { OrchestrationDb } from './db' import { backfillStructuredWorkerOrcaSessionIds } from './db/schema/structured-worker-orca-session-backfill' diff --git a/src/main/runtime/orchestration/structured-session-lineage.ts b/src/main/runtime/orchestration/structured-session-lineage.ts index ad9f0a4dce2..4d79207d4a5 100644 --- a/src/main/runtime/orchestration/structured-session-lineage.ts +++ b/src/main/runtime/orchestration/structured-session-lineage.ts @@ -6,7 +6,7 @@ import { structuredAgentSessionPaneKey, structuredAgentSessionTabId } from '../../../shared/agent-session/view/structured-agent-session-projection' -import { structuredWorkerHostScope } from '../structured-worker-identity' +import { structuredWorkerHostScope } from './terminal-authority/structured-sessions/structured-worker-identity' export type AgentSessionRecordReader = { getRecord: (sessionId: string) => AgentSessionConversationView | null diff --git a/src/main/runtime/orchestration/structured-session-mail-target.test.ts b/src/main/runtime/orchestration/structured-session-mail-target.test.ts index a1838e4ec20..da385278315 100644 --- a/src/main/runtime/orchestration/structured-session-mail-target.test.ts +++ b/src/main/runtime/orchestration/structured-session-mail-target.test.ts @@ -35,7 +35,7 @@ const { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} = await import('../structured-worker-identity') +} = await import('./terminal-authority/structured-sessions/structured-worker-identity') const CHAT = testOrcaSessionId('4a1f6c2e-8b3d-4e7a-9c15-0d2b6e8f1a37') const CHAT_ADDRESS = formatOrcaSessionAddress(CHAT) diff --git a/src/main/runtime/orchestration/structured-session-mail-target.ts b/src/main/runtime/orchestration/structured-session-mail-target.ts index 62af3c64c04..218f830a58b 100644 --- a/src/main/runtime/orchestration/structured-session-mail-target.ts +++ b/src/main/runtime/orchestration/structured-session-mail-target.ts @@ -19,7 +19,7 @@ import { } from './structured-session-lineage' import type { RunRow } from './types' import { chatAssigneeSessionId } from './chat-assignee' -import { structuredWorkerCustody } from '../structured-worker-authority' +import { structuredWorkerCustody } from './terminal-authority/structured-sessions/structured-worker-authority' /** A handle-less coordinator uses its generation-current session id; structured workers resolve by handle. */ export function handleLessCoordinatorSessionId( diff --git a/src/main/runtime/orchestration/structured-worker-group-addressing.test.ts b/src/main/runtime/orchestration/structured-worker-group-addressing.test.ts index 36369fd6c5a..872d3ceaa64 100644 --- a/src/main/runtime/orchestration/structured-worker-group-addressing.test.ts +++ b/src/main/runtime/orchestration/structured-worker-group-addressing.test.ts @@ -24,7 +24,7 @@ const { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} = await import('../structured-worker-identity') +} = await import('./terminal-authority/structured-sessions/structured-worker-identity') const SESSION_ID = 'a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d' const RUNNING: RunningStructuredSession = { diff --git a/src/main/runtime/orchestration/structured-worker-group-addressing.ts b/src/main/runtime/orchestration/structured-worker-group-addressing.ts index 4fc7c0a48ac..3dc4bd4e9bf 100644 --- a/src/main/runtime/orchestration/structured-worker-group-addressing.ts +++ b/src/main/runtime/orchestration/structured-worker-group-addressing.ts @@ -5,11 +5,11 @@ import { holdStructuredWorker, resolveStructuredWorkerAuthority, structuredWorkerAgent -} from '../structured-worker-authority' +} from './terminal-authority/structured-sessions/structured-worker-authority' import { STRUCTURED_WORKER_INCARNATION_PREFIX, structuredWorkerIdentityFromRow -} from '../structured-worker-identity' +} from './terminal-authority/structured-sessions/structured-worker-identity' import type { OrchestrationDb } from './db' import { readStructuredSessionGateFacts } from './structured-mailbox-pointer-host' import type { RunningStructuredSession } from './structured-session-lineage' diff --git a/src/main/runtime/runtime-legacy-worker-terminal-recovery-types.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types.ts similarity index 81% rename from src/main/runtime/runtime-legacy-worker-terminal-recovery-types.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types.ts index c52c36a9b5d..bcc1b1d12a1 100644 --- a/src/main/runtime/runtime-legacy-worker-terminal-recovery-types.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types.ts @@ -1,9 +1,9 @@ -import type { FolderWorkspace } from '../../shared/folder-workspaces/folder-workspace-types' -import type { ExecutionHostId } from '../../shared/execution-host' -import type { Repo } from '../../shared/repo-types' -import type { LegacyWorkerTerminalRecoveryPlan } from './orchestration/orchestration-legacy-worker-terminal-recovery' -import type { PtyControllerInventory } from './runtime-pty-controller-contract' -import type { ResolvedWorktree } from './workspaces/catalog/runtime-worktree-path-identity' +import type { FolderWorkspace } from '../../../../../shared/folder-workspaces/folder-workspace-types' +import type { ExecutionHostId } from '../../../../../shared/execution-host' +import type { Repo } from '../../../../../shared/repo-types' +import type { LegacyWorkerTerminalRecoveryPlan } from '../../orchestration-legacy-worker-terminal-recovery' +import type { PtyControllerInventory } from '../../../runtime-pty-controller-contract' +import type { ResolvedWorktree } from '../../../workspaces/catalog/runtime-worktree-path-identity' export type LegacyWorkerTerminalRecoveryResult = { adoptedDispatchIds: string[] @@ -40,8 +40,6 @@ export type LegacyWorkerRecoveryWorkspace = { resolved: ResolvedWorktree } -export type LegacyWorkerRecoveryInventory = PtyControllerInventory - export type LegacyWorkerRecoveryPorts = { preparePlan: (dispatchIds?: readonly string[]) => LegacyWorkerTerminalRecoveryPlan resolveWorkspace: ( @@ -50,7 +48,7 @@ export type LegacyWorkerRecoveryPorts = { refreshInventory: ( worktrees: ResolvedWorktree[], connectionId: string | null - ) => Promise + ) => Promise /** Serializes the pre-adoption liveness probe and the adoption itself against other terminal mutations. */ runMutation: (worktreeId: string, operation: () => Promise) => Promise getActivation: (worktreeId: string) => { activeTabId?: string; activeGroupId?: string } @@ -59,7 +57,7 @@ export type LegacyWorkerRecoveryPorts = { adopt: ( candidate: LegacyWorkerRecoveryCandidate, workspace: TerminalWorkspaceLaunchScope, - inventory: LegacyWorkerRecoveryInventory, + inventory: PtyControllerInventory, activation: { activeTabId?: string; activeGroupId?: string } ) => Promise getRendererEpoch: () => number diff --git a/src/main/runtime/structured-chat-coordinator-fake-codex-fixture.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-fake-codex-fixture.ts similarity index 92% rename from src/main/runtime/structured-chat-coordinator-fake-codex-fixture.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-fake-codex-fixture.ts index 2e85c8a434d..fb345bf9bb6 100644 --- a/src/main/runtime/structured-chat-coordinator-fake-codex-fixture.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-fake-codex-fixture.ts @@ -1,11 +1,11 @@ import type { CodexAppServerConnection, CodexAppServerConnectionHandlers -} from '../codex/app-server/codex-app-server-connection-types' -import type { openCodexAppServerConnection } from '../codex/app-server/codex-app-server-connection' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { attachFingerprintFields } from '../native-chat/agent-session-wire/structured-agent-session-attach' -import { isRecord } from './rpc/orchestration-session-caller-test-fixture' +} from '../../../../codex/app-server/codex-app-server-connection-types' +import type { openCodexAppServerConnection } from '../../../../codex/app-server/codex-app-server-connection' +import { computeAgentSessionPayloadFingerprint } from '../../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { attachFingerprintFields } from '../../../../native-chat/agent-session-wire/structured-agent-session-attach' +import { isRecord } from '../../../rpc/orchestration-session-caller-test-fixture' const WORKSPACE = 'workspace-1' diff --git a/src/main/runtime/structured-chat-coordinator-mail-rig.test-fixture.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-mail-rig.test-fixture.ts similarity index 89% rename from src/main/runtime/structured-chat-coordinator-mail-rig.test-fixture.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-mail-rig.test-fixture.ts index c4110b29caf..7ea8f4b0d72 100644 --- a/src/main/runtime/structured-chat-coordinator-mail-rig.test-fixture.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-mail-rig.test-fixture.ts @@ -4,26 +4,28 @@ import { mkdtemp, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, expect, vi } from 'vitest' -import type { AgentJournalRenderItem } from '../../shared/agent-session/journal/agent-session-journal-types' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { ORCHESTRATION_CONTRACT_VERSION } from '../../shared/protocol-version' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import { activeProviderContext } from '../../shared/agent-session/agent-session-provider-context' -import { OrcaRuntimeService } from './orca-runtime' +import type { AgentJournalRenderItem } from '../../../../../shared/agent-session/journal/agent-session-journal-types' +import { computeAgentSessionPayloadFingerprint } from '../../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import '../../../../../shared/protocol-version' +import { ORCHESTRATION_CONTRACT_VERSION } from '../../../../../shared/orchestration-runtime-capabilities' +import type { StructuredAgentSessionHost } from '../../../../native-chat/agent-session-wire/structured-agent-session-host' +import { activeProviderContext } from '../../../../../shared/agent-session/agent-session-provider-context' +import { OrcaRuntimeService } from '../../../orca-runtime' import { createStore, closeTestStores, makeRepo, testState -} from '../persistence/persistence-test-harness' -import { OrchestrationDb } from './orchestration/db' -import { RpcDispatcher } from './rpc/dispatcher' -import { ORCHESTRATION_METHODS } from './rpc/methods/orchestration' -import { idOf, isRecord, resultOf } from './rpc/orchestration-session-caller-test-fixture' +} from '../../../../persistence/persistence-test-harness' +import '../../db' +import { OrchestrationDb } from '../../db/orchestration-db' +import { RpcDispatcher } from '../../../rpc/dispatcher' +import { ORCHESTRATION_METHODS } from '../../../rpc/methods/orchestration' +import { idOf, isRecord, resultOf } from '../../../rpc/orchestration-session-caller-test-fixture' import { ensureStructuredAgentSessionHost, stopStructuredAgentSessionRuntime -} from './agent-session/structured-agent-session-runtime' +} from '../../../agent-session/structured-agent-session-runtime' import { createCoordinatorMailObservationClock } from './structured-chat-coordinator-observation-clock.test-fixture' import { attachParams, @@ -32,8 +34,8 @@ import { resetProviderFaults, type FakeConnection } from './structured-chat-coordinator-fake-codex-fixture' -import { createStructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger' -import { scriptedCodexTransport } from './orca-runtime-tests/scripted-codex-transport.test-fixture' +import { createStructuredAgentSessionLogger } from '../../../../native-chat/agent-session-wire/structured-agent-session-logger' +import { scriptedCodexTransport } from '../../../orca-runtime-tests/scripted-codex-transport.test-fixture' export const COORDINATOR = '4a1f6c2e-8b3d-4e7a-9c15-0d2b6e8f1a37' export const PEER_CHAT = '7e3b9d15-2c4a-4f86-a0b1-5c9e2d7f3b64' diff --git a/src/main/runtime/structured-chat-coordinator-mail.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-mail.test.ts similarity index 96% rename from src/main/runtime/structured-chat-coordinator-mail.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-mail.test.ts index 211a32cd1ce..23a827a09b7 100644 --- a/src/main/runtime/structured-chat-coordinator-mail.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-mail.test.ts @@ -1,17 +1,18 @@ -import './rpc/unused-default-rpc-methods.test-fixture' +import '../../../rpc/unused-default-rpc-methods.test-fixture' import { describe, expect, it, vi } from 'vitest' -import { dispatch as dispatchCommand } from '../../cli/dispatch' -import { orchestrationTestContext } from '../../cli/handlers/orchestration-handler-test-context' -import { agentJournalSubmissionKey } from '../../shared/agent-session/journal/agent-session-journal-item-key' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { dispatch as dispatchCommand } from '../../../../../cli/dispatch' +import { orchestrationTestContext } from '../../../../../cli/handlers/orchestration-handler-test-context' +import { agentJournalSubmissionKey } from '../../../../../shared/agent-session/journal/agent-session-journal-item-key' +import { computeAgentSessionPayloadFingerprint } from '../../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import '../../../../native-chat/agent-session-wire/structured-agent-session-adapter' import { AgentSessionAcquisitionRefusal, AgentSessionPreSpawnError -} from '../native-chat/agent-session-wire/structured-agent-session-adapter' -import type { AgentSessionJournal } from '../native-chat/agent-session-journal/journal-store' -import { currentRunCoordinatorOrcaSessionId } from './orchestration/db/runs/run-coordinator-orca-session' -import { idOf } from './rpc/orchestration-session-caller-test-fixture' +} from '../../../../native-chat/agent-session-wire/structured-agent-session-adapter-errors' +import type { AgentSessionJournal } from '../../../../native-chat/agent-session-journal/journal-store' +import { currentRunCoordinatorOrcaSessionId } from '../../db/runs/run-coordinator-orca-session' +import { idOf } from '../../../rpc/orchestration-session-caller-test-fixture' import { operationId, providerFaults } from './structured-chat-coordinator-fake-codex-fixture' import { diff --git a/src/main/runtime/structured-chat-coordinator-observation-clock.test-fixture.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-observation-clock.test-fixture.ts similarity index 87% rename from src/main/runtime/structured-chat-coordinator-observation-clock.test-fixture.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-observation-clock.test-fixture.ts index 91d9bab60c1..15b304130be 100644 --- a/src/main/runtime/structured-chat-coordinator-observation-clock.test-fixture.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-observation-clock.test-fixture.ts @@ -1,7 +1,7 @@ import { expect, vi } from 'vitest' -import type { StructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-host' -import type { OrcaRuntimeService } from './orca-runtime' -import { waitForStructuredAgentSessionRecovery } from './agent-session/structured-agent-session-runtime' +import type { StructuredAgentSessionHost } from '../../../../native-chat/agent-session-wire/structured-agent-session-host' +import type { OrcaRuntimeService } from '../../../orca-runtime' +import { waitForStructuredAgentSessionRecovery } from '../../../agent-session/structured-agent-session-runtime' export function createCoordinatorMailObservationClock( getHost: () => StructuredAgentSessionHost, diff --git a/src/main/runtime/structured-chat-dispatch-worker-lifecycle.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker-lifecycle.test.ts similarity index 94% rename from src/main/runtime/structured-chat-dispatch-worker-lifecycle.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker-lifecycle.test.ts index 53a23bc0f38..79936aa4228 100644 --- a/src/main/runtime/structured-chat-dispatch-worker-lifecycle.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker-lifecycle.test.ts @@ -1,4 +1,4 @@ -import './rpc/unused-default-rpc-methods.test-fixture' +import '../../../rpc/unused-default-rpc-methods.test-fixture' import { execFile } from 'node:child_process' import { createRequire } from 'node:module' @@ -6,13 +6,13 @@ import { join } from 'node:path' import { pathToFileURL } from 'node:url' import { promisify } from 'node:util' import { describe, expect, it, vi } from 'vitest' -import { formatOrcaSessionAddress } from '../../shared/orca-session-address' -import { testOrcaSessionId } from '../../shared/orca-session-address-test-fixture' -import { idOf } from './rpc/orchestration-session-caller-test-fixture' -import { closeStructuredAgentSessionChild } from './agent-session/structured-agent-session-close' -import { restoreJournal } from '../native-chat/agent-session-journal/journal-open' -import { OrcaRuntimeRpcServer } from './runtime-rpc' -import { ORCHESTRATION_METHODS } from './rpc/methods/orchestration' +import { formatOrcaSessionAddress } from '../../../../../shared/orca-session-address' +import { testOrcaSessionId } from '../../../../../shared/orca-session-address-test-fixture' +import { idOf } from '../../../rpc/orchestration-session-caller-test-fixture' +import { closeStructuredAgentSessionChild } from '../../../agent-session/structured-agent-session-close' +import { restoreJournal } from '../../../../native-chat/agent-session-journal/journal-open' +import { OrcaRuntimeRpcServer } from '../../../runtime-rpc' +import { ORCHESTRATION_METHODS } from '../../../rpc/methods/orchestration' import type { FakeConnection } from './structured-chat-coordinator-fake-codex-fixture' import { COORDINATOR, diff --git a/src/main/runtime/structured-chat-dispatch-worker-mail.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker-mail.test.ts similarity index 91% rename from src/main/runtime/structured-chat-dispatch-worker-mail.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker-mail.test.ts index e2358434277..d0df498c992 100644 --- a/src/main/runtime/structured-chat-dispatch-worker-mail.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker-mail.test.ts @@ -1,10 +1,10 @@ -import './rpc/unused-default-rpc-methods.test-fixture' +import '../../../rpc/unused-default-rpc-methods.test-fixture' // Worker mail belongs to its Dispatch mailbox; a message the provider may have taken before it died is never handed over again, even after a later turn, a restart or a clear: check keeps it. import { describe, expect, it, vi } from 'vitest' -import { formatOrcaSessionAddress } from '../../shared/orca-session-address' -import { testOrcaSessionId } from '../../shared/orca-session-address-test-fixture' -import { idOf } from './rpc/orchestration-session-caller-test-fixture' +import { formatOrcaSessionAddress } from '../../../../../shared/orca-session-address' +import { testOrcaSessionId } from '../../../../../shared/orca-session-address-test-fixture' +import { idOf } from '../../../rpc/orchestration-session-caller-test-fixture' import { COORDINATOR, PEER_CHAT, diff --git a/src/main/runtime/structured-chat-dispatch-worker.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker.test.ts similarity index 96% rename from src/main/runtime/structured-chat-dispatch-worker.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker.test.ts index e15aed3e8be..5c8a8668648 100644 --- a/src/main/runtime/structured-chat-dispatch-worker.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-dispatch-worker.test.ts @@ -1,10 +1,10 @@ -import './rpc/unused-default-rpc-methods.test-fixture' +import '../../../rpc/unused-default-rpc-methods.test-fixture' import { describe, expect, it, vi } from 'vitest' -import { formatOrcaSessionAddress } from '../../shared/orca-session-address' -import { testOrcaSessionId } from '../../shared/orca-session-address-test-fixture' -import { idOf } from './rpc/orchestration-session-caller-test-fixture' -import { sendChatTask } from './rpc/methods/orchestration/chat-task-delivery' +import { formatOrcaSessionAddress } from '../../../../../shared/orca-session-address' +import { testOrcaSessionId } from '../../../../../shared/orca-session-address-test-fixture' +import { idOf } from '../../../rpc/orchestration-session-caller-test-fixture' +import { sendChatTask } from '../../../rpc/methods/orchestration/chat-task-delivery' import { providerFaults, type FakeConnection diff --git a/src/main/runtime/structured-chat-mail-custody.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-mail-custody.test.ts similarity index 94% rename from src/main/runtime/structured-chat-mail-custody.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-mail-custody.test.ts index 3db77959979..8f1209c44c3 100644 --- a/src/main/runtime/structured-chat-mail-custody.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-mail-custody.test.ts @@ -1,18 +1,18 @@ -import './rpc/unused-default-rpc-methods.test-fixture' +import '../../../rpc/unused-default-rpc-methods.test-fixture' // A queued mail card is the chat's to hand over only while the chat still owes it: its message unread in // its mailbox, and that mailbox still this chat's. The queue asks at handover; cleanup is visible only. import { describe, expect, it, vi } from 'vitest' -import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session/lifecycle/agent-session-mutation-envelope' -import { structuredAgentSessionMessageSendMutation } from '../../shared/agent-session/requests/structured-agent-session-send-mutation' -import { formatOrcaSessionAddress } from '../../shared/orca-session-address' -import { testOrcaSessionId } from '../../shared/orca-session-address-test-fixture' -import type { AgentSessionJournal } from '../native-chat/agent-session-journal/journal-store' -import type { AgentMessageSource } from '../../shared/agent-session/agent-session-message-source' -import { agentSessionRefusalNotice } from '../../shared/agent-session/failures/agent-session-refusal-notice' -import { agentSessionWriteKindForMethod } from '../../shared/agent-session/failures/agent-session-write-failure' -import { nextStructuredQueuedMessage } from '../native-chat/agent-session-wire/structured-agent-session-queued-gate' -import { idOf } from './rpc/orchestration-session-caller-test-fixture' +import { computeAgentSessionPayloadFingerprint } from '../../../../../shared/agent-session/lifecycle/agent-session-mutation-envelope' +import { structuredAgentSessionMessageSendMutation } from '../../../../../shared/agent-session/requests/structured-agent-session-send-mutation' +import { formatOrcaSessionAddress } from '../../../../../shared/orca-session-address' +import { testOrcaSessionId } from '../../../../../shared/orca-session-address-test-fixture' +import type { AgentSessionJournal } from '../../../../native-chat/agent-session-journal/journal-store' +import type { AgentMessageSource } from '../../../../../shared/agent-session/agent-session-message-source' +import { agentSessionRefusalNotice } from '../../../../../shared/agent-session/failures/agent-session-refusal-notice' +import { agentSessionWriteKindForMethod } from '../../../../../shared/agent-session/failures/agent-session-write-failure' +import { nextStructuredQueuedMessage } from '../../../../native-chat/agent-session-wire/structured-agent-session-queued-gate' +import { idOf } from '../../../rpc/orchestration-session-caller-test-fixture' import { operationId } from './structured-chat-coordinator-fake-codex-fixture' import { COORDINATOR, diff --git a/src/main/runtime/structured-chat-worker-helpers.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-helpers.test.ts similarity index 96% rename from src/main/runtime/structured-chat-worker-helpers.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-helpers.test.ts index 1be69166030..b653e1319a8 100644 --- a/src/main/runtime/structured-chat-worker-helpers.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-helpers.test.ts @@ -1,11 +1,11 @@ -import './rpc/unused-default-rpc-methods.test-fixture' +import '../../../rpc/unused-default-rpc-methods.test-fixture' // Dispatched chats retain their mailbox while starting nested helpers; unhandled mail returns to the Run coordinator on settlement. import { describe, expect, it, vi } from 'vitest' -import { formatOrcaSessionAddress } from '../../shared/orca-session-address' -import { testOrcaSessionId } from '../../shared/orca-session-address-test-fixture' -import { idOf, resultOf } from './rpc/orchestration-session-caller-test-fixture' -import type { DispatchCreator } from './orchestration/db/dispatch-depth' +import { formatOrcaSessionAddress } from '../../../../../shared/orca-session-address' +import { testOrcaSessionId } from '../../../../../shared/orca-session-address-test-fixture' +import { idOf, resultOf } from '../../../rpc/orchestration-session-caller-test-fixture' +import type { DispatchCreator } from '../../db/dispatch-depth' import { COORDINATOR, PEER_CHAT, diff --git a/src/main/runtime/structured-chat-worker-reuse.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-reuse.test.ts similarity index 95% rename from src/main/runtime/structured-chat-worker-reuse.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-reuse.test.ts index ebd4a96c207..15ce9ce33b5 100644 --- a/src/main/runtime/structured-chat-worker-reuse.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-reuse.test.ts @@ -1,11 +1,12 @@ -import './rpc/unused-default-rpc-methods.test-fixture' +import '../../../rpc/unused-default-rpc-methods.test-fixture' // A finished structured worker takes follow-up work in its own chat through worker-start --terminal , or a send to its Dispatch. -import { structuredMailboxCustody } from './orchestration/structured-session-mail-target' +import { structuredMailboxCustody } from '../../structured-session-mail-target' import { beforeEach, describe, expect, it, vi } from 'vitest' -import { ORCA_SESSION_ADDRESS_PREFIX } from '../../shared/orca-session-address' -import { testOrcaSessionId } from '../../shared/orca-session-address-test-fixture' -import { idOf } from './rpc/orchestration-session-caller-test-fixture' +import '../../../../../shared/orca-session-address' +import { ORCA_SESSION_ADDRESS_PREFIX } from '../../../../../shared/orca-session-address-prefix' +import { testOrcaSessionId } from '../../../../../shared/orca-session-address-test-fixture' +import { idOf } from '../../../rpc/orchestration-session-caller-test-fixture' import { COORDINATOR, WAIT, @@ -24,13 +25,13 @@ import { settleTurn, turnText } from './structured-chat-coordinator-mail-rig.test-fixture' -import { getFollowUpDispatch } from './orchestration/db/dispatch-context/worker-follow-up-lineage' +import { getFollowUpDispatch } from '../../db/dispatch-context/worker-follow-up-lineage' import { structuredWorkerIdentities } from './structured-worker-identity' -import { createStructuredWorkerSession } from './rpc/methods/orchestration-structured-worker-session' -import type { placeWorkerAgent } from './rpc/methods/orchestration/worker/worker-start-agent-placement' +import { createStructuredWorkerSession } from '../../../rpc/methods/orchestration-structured-worker-session' +import type { placeWorkerAgent } from '../../../rpc/methods/orchestration/worker/worker-start-agent-placement' // The worker's chat is created in the rig's real session host, as the production create would. -vi.mock('./rpc/methods/structured-agent-session-create', () => ({ +vi.mock('../../../rpc/methods/structured-agent-session-create', () => ({ createStructuredAgentSessionForWorktree: async (args: { caller: { callerKey: string } envelope: { sessionId: string } diff --git a/src/main/runtime/structured-chat-worker-start-unknown.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-start-unknown.test.ts similarity index 92% rename from src/main/runtime/structured-chat-worker-start-unknown.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-start-unknown.test.ts index 8c65fc7e529..16ba54a5b3f 100644 --- a/src/main/runtime/structured-chat-worker-start-unknown.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-start-unknown.test.ts @@ -1,7 +1,7 @@ -import { EVERY_AGENT_CHAT } from '../../shared/native-chat/every-agent-chat.test-fixture' -import './rpc/unused-default-rpc-methods.test-fixture' +import { EVERY_AGENT_CHAT } from '../../../../../shared/native-chat/every-agent-chat.test-fixture' +import '../../../rpc/unused-default-rpc-methods.test-fixture' import { expect, it, vi } from 'vitest' -import * as sessionCreate from './rpc/methods/structured-agent-session-create' +import * as sessionCreate from '../../../rpc/methods/structured-agent-session-create' import { attachParams, providerFaults } from './structured-chat-coordinator-fake-codex-fixture' import { COORDINATOR, diff --git a/src/main/runtime/structured-chat-worker-start.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-start.test.ts similarity index 95% rename from src/main/runtime/structured-chat-worker-start.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-start.test.ts index ea0f384726c..2c1f53a25bb 100644 --- a/src/main/runtime/structured-chat-worker-start.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-chat-worker-start.test.ts @@ -1,9 +1,9 @@ -import './rpc/unused-default-rpc-methods.test-fixture' +import '../../../rpc/unused-default-rpc-methods.test-fixture' // worker-start adopts a chat through its queued send; Stop and failed start must leave the chat intact. import { beforeEach, describe, expect, it, vi } from 'vitest' -import { formatOrcaSessionAddress } from '../../shared/orca-session-address' -import { testOrcaSessionId } from '../../shared/orca-session-address-test-fixture' +import { formatOrcaSessionAddress } from '../../../../../shared/orca-session-address' +import { testOrcaSessionId } from '../../../../../shared/orca-session-address-test-fixture' import type { FakeConnection } from './structured-chat-coordinator-fake-codex-fixture' import { COORDINATOR, @@ -22,7 +22,7 @@ import { turnText } from './structured-chat-coordinator-mail-rig.test-fixture' -import type { placeWorkerAgent } from './rpc/methods/orchestration/worker/worker-start-agent-placement' +import type { placeWorkerAgent } from '../../../rpc/methods/orchestration/worker/worker-start-agent-placement' type WorkspaceLookup = { showManagedTerminalWorkspace: ( diff --git a/src/main/runtime/structured-worker-agent-presence.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-agent-presence.test.ts similarity index 93% rename from src/main/runtime/structured-worker-agent-presence.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-agent-presence.test.ts index 8d6cf5d5e17..846290f6f48 100644 --- a/src/main/runtime/structured-worker-agent-presence.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-agent-presence.test.ts @@ -1,7 +1,7 @@ /** Structured workers have no PTY leaf; dispatch --inject must recognize them before a stale leaf probe turns agent presence false. */ import { describe, expect, it, vi } from 'vitest' -import { RuntimeTerminalAgentPresence } from './terminal/query/runtime-terminal-agent-presence' +import { RuntimeTerminalAgentPresence } from '../../../terminal/query/runtime-terminal-agent-presence' function presence(isLiveStructuredAgent: (handle: string) => boolean) { const getLiveLeaf = vi.fn(() => { diff --git a/src/main/runtime/structured-worker-at-rest.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-at-rest.test.ts similarity index 93% rename from src/main/runtime/structured-worker-at-rest.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-at-rest.test.ts index 97c6150f7ac..e38ac089452 100644 --- a/src/main/runtime/structured-worker-at-rest.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-at-rest.test.ts @@ -1,19 +1,20 @@ -import { agentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' +import { agentSessionConversationView } from '../../../../../shared/agent-session/lifecycle/agent-session-conversation-view' import { agentSessionLeaseFixture, agentSessionRecordFixture -} from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' -import { codexProviderHandle } from '../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' +} from '../../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' +import { codexProviderHandle } from '../../../../../shared/agent-session/lifecycle/agent-session-provider-handle-encoding' // Open Dispatches retain active work; chats at rest remain mail recipients until tab retirement. Process liveness and close proof remain separate. import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' -import type { RunningStructuredSession } from './orchestration/structured-session-lineage' -import { OrchestrationDb } from './orchestration/db' +import type { AgentSessionRecord } from '../../../../../shared/agent-session/lifecycle/agent-session-record' +import type { RunningStructuredSession } from '../../structured-session-lineage' +import '../../db' +import { OrchestrationDb } from '../../db/orchestration-db' const hostRef: { current: unknown } = { current: null } -vi.mock('../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ +vi.mock('../../../../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ getStructuredAgentSessionHost: () => hostRef.current })) @@ -28,12 +29,12 @@ const { structuredWorkerProcessIncarnation } = await import('./structured-worker-identity') const { listAddressableStructuredWorkers } = - await import('./orchestration/structured-worker-group-addressing') + await import('../../structured-worker-group-addressing') const { closeStructuredAgentSessionChild } = - await import('./agent-session/structured-agent-session-close') -const { resolveGroupAddress } = await import('./orchestration/groups') + await import('../../../agent-session/structured-agent-session-close') +const { resolveGroupAddress } = await import('../../groups') const { createRestTestRig, foundRestTestChat, IDLE_MS, REST_TEST_SESSION, sweepTicks } = - await import('../native-chat/agent-session-wire/structured-agent-session-rest-test-rig') + await import('../../../../native-chat/agent-session-wire/structured-agent-session-rest-test-rig') const SESSION = 'a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d' const LOCAL = JSON.stringify({ kind: 'local', hostId: 'local' }) diff --git a/src/main/runtime/structured-worker-authority.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-authority.test.ts similarity index 95% rename from src/main/runtime/structured-worker-authority.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-authority.test.ts index 307b1441ef8..bcad14dfcca 100644 --- a/src/main/runtime/structured-worker-authority.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-authority.test.ts @@ -2,7 +2,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' const hostRef: { current: unknown } = { current: null } -vi.mock('../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ +vi.mock('../../../../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ getStructuredAgentSessionHost: () => hostRef.current })) diff --git a/src/main/runtime/structured-worker-authority.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-authority.ts similarity index 92% rename from src/main/runtime/structured-worker-authority.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-authority.ts index 3f69010cb1e..076b2e2ed6a 100644 --- a/src/main/runtime/structured-worker-authority.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-authority.ts @@ -1,14 +1,14 @@ /** Rehydrate worker identity from durable rows after restart; records, tab index and orchestration state decide custody. * Mail reaches agents at rest and starts them, so routing ignores process liveness. Resolve clear successors for every worker-level operation. */ -import type { AgentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' -import { isOrcaSessionId, type OrcaSessionId } from '../../shared/orca-session-address' -import { ORCHESTRATION_SESSION_CALLER_ERROR_CODES as CODES } from '../../shared/orchestration-session-caller-codes' -import type { RuntimeTerminalState } from '../../shared/runtime-types' -import { getStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' -import { canonicalOrcaSessionId } from './orchestration/canonical-orca-session-id' -import type { OrchestrationDb } from './orchestration/db' -import { OrchestrationError } from './orchestration/orchestration-error' +import type { AgentSessionConversationView } from '../../../../../shared/agent-session/lifecycle/agent-session-conversation-view' +import { isOrcaSessionId, type OrcaSessionId } from '../../../../../shared/orca-session-address' +import { ORCHESTRATION_SESSION_CALLER_ERROR_CODES as CODES } from '../../../../../shared/orchestration-session-caller-codes' +import type { RuntimeTerminalState } from '../../../../../shared/runtime-terminal-contracts' +import { getStructuredAgentSessionHost } from '../../../../native-chat/agent-session-wire/structured-agent-session-registry' +import { canonicalOrcaSessionId } from '../../canonical-orca-session-id' +import type { OrchestrationDb } from '../../db/orchestration-db' +import { OrchestrationError } from '../../orchestration-error' import { createLineageRunningSessionResolver, readAgentSessionRecordStore, @@ -16,15 +16,15 @@ import { type AgentSessionRecordReader, type LineageRunningSession, type RunningStructuredSession -} from './orchestration/structured-session-lineage' +} from '../../structured-session-lineage' import { captureStructuredWorkerTabVisibility, structuredSessionTabRetired, structuredWorkerAddressable } from './structured-worker-custody' -import { isTuiAgent } from '../../shared/agent-launch/catalog/tui-agent-config' -import type { TuiAgent } from '../../shared/agent-launch/catalog/tui-agent' -import { isStructuredWorkerHandle } from '../../shared/structured-worker-handle' +import { isTuiAgent } from '../../../../../shared/agent-launch/catalog/tui-agent-config' +import type { TuiAgent } from '../../../../../shared/agent-launch/catalog/tui-agent' +import { isStructuredWorkerHandle } from '../../../../../shared/structured-worker-handle' import { structuredWorkerIdentities, structuredWorkerProcessIncarnation, diff --git a/src/main/runtime/structured-worker-cleared-session.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-cleared-session.test.ts similarity index 95% rename from src/main/runtime/structured-worker-cleared-session.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-cleared-session.test.ts index e866f5ba0fc..b6b0b8dd786 100644 --- a/src/main/runtime/structured-worker-cleared-session.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-cleared-session.test.ts @@ -1,19 +1,19 @@ -import { closeTestJournalHostDatabases } from '../native-chat/agent-session-journal/journal-host-database-test-support' -import { agentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' +import { closeTestJournalHostDatabases } from '../../../../native-chat/agent-session-journal/journal-host-database-test-support' +import { agentSessionConversationView } from '../../../../../shared/agent-session/lifecycle/agent-session-conversation-view' /** Worker-level reads/operations follow clear successors and the full lineage; unresolved successors remain unverifiable. */ import { mkdtemp, rm } 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 { AgentJournalRenderItem } from '../../shared/agent-session/journal/agent-session-journal-types' -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' +import type { AgentJournalRenderItem } from '../../../../../shared/agent-session/journal/agent-session-journal-types' +import type { AgentSessionRecord } from '../../../../../shared/agent-session/lifecycle/agent-session-record' import { agentSessionLeaseFixture, agentSessionRecordFixture -} from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' +} from '../../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' const hostRef = vi.hoisted((): { current: unknown } => ({ current: null })) -vi.mock('../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ +vi.mock('../../../../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ getStructuredAgentSessionHost: () => hostRef.current })) @@ -25,32 +25,32 @@ const { resolveStructuredWorkerIdentityForSession } = await import('./structured-worker-authority') const { structuredSessionMailTarget, structuredSessionOwnedMailboxes } = - await import('./orchestration/structured-session-mail-target') -const { structuredSessionMailReach } = - await import('./orchestration/structured-session-mail-address') + await import('../../structured-session-mail-target') +const { structuredSessionMailReach } = await import('../../structured-session-mail-address') const { stopStructuredWorker, readStructuredWorkerJournal, captureStructuredWorkerArchive } = - await import('./rpc/methods/orchestration-structured-worker-lifecycle') + await import('../../../rpc/methods/orchestration-structured-worker-lifecycle') const { releaseStructuredWorkerSession } = - await import('./rpc/methods/orchestration-structured-worker-session') + await import('../../../rpc/methods/orchestration-structured-worker-session') const { inspectWorkerTerminal } = - await import('./rpc/methods/orchestration/worker/worker-observation') + await import('../../../rpc/methods/orchestration/worker/worker-observation') const { listAddressableStructuredWorkers } = - await import('./orchestration/structured-worker-group-addressing') + await import('../../structured-worker-group-addressing') const { readStructuredLineageJournalPage, STRUCTURED_JOURNAL_PAGE_LIMIT } = - await import('./orchestration/structured-worker-journal-page') -const { sealedChildEnv } = await import('./structured-session-child-env.test-support') + await import('../../structured-worker-journal-page') +const { sealedChildEnv } = + await import('../../../agent-session/environment/structured-session-child-env.test-support') const { foundAgentSessionRecord } = - await import('./agent-session/records/agent-session-record-founding') + await import('../../../agent-session/records/agent-session-record-founding') const { applyAgentSessionRestartAdjudication } = - await import('./agent-session/ownership/agent-session-restart-lease-transitions') + await import('../../../agent-session/ownership/agent-session-restart-lease-transitions') const { openTestAgentSessionRecordStore } = - await import('./agent-session/records/agent-session-record-store-test-harness') -const { OrcaRuntimeService } = await import('./orca-runtime') -const { OrchestrationDb } = await import('./orchestration/db') + await import('../../../agent-session/records/agent-session-record-store-test-harness') +const { OrcaRuntimeService } = await import('../../../orca-runtime') +const { OrchestrationDb } = await import('../../db') const { rpcRuntime } = await import('./structured-worker-rpc.test-support') const { structuredWorkerOwesWork } = await import('./structured-worker-custody') const { AGENT_SESSION_NOT_ATTACHED } = - await import('../native-chat/agent-session-wire/structured-agent-session-mutation-admission') + await import('../../../../native-chat/agent-session-wire/structured-agent-session-mutation-admission') const { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey, diff --git a/src/main/runtime/structured-worker-custody.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-custody.ts similarity index 89% rename from src/main/runtime/structured-worker-custody.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-custody.ts index eb189f4727a..73d06648407 100644 --- a/src/main/runtime/structured-worker-custody.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-custody.ts @@ -1,18 +1,18 @@ /** Custody uses worker-terminal state rather than process liveness: mail can start an agent at rest. * Only released ends addressability; pending/unknown releases still route. Reclaimable workers owe no work and may rest. */ -import type { AgentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' -import { buildOrchestrationTaskDisplayMetadata } from '../../shared/orchestration-task-display' -import { isOrcaSessionId } from '../../shared/orca-session-address' -import { canonicalOrcaSessionId } from './orchestration/canonical-orca-session-id' -import type { RunningStructuredSession } from './orchestration/structured-session-lineage' -import type { OrchestrationDb } from './orchestration/db' -import type { WorkerDispatchState } from './orchestration/types' +import type { AgentSessionConversationView } from '../../../../../shared/agent-session/lifecycle/agent-session-conversation-view' +import { buildOrchestrationTaskDisplayMetadata } from '../../../../../shared/orchestration-task-display' +import { isOrcaSessionId } from '../../../../../shared/orca-session-address' +import { canonicalOrcaSessionId } from '../../canonical-orca-session-id' +import type { RunningStructuredSession } from '../../structured-session-lineage' +import type { OrchestrationDb } from '../../db/orchestration-db' +import type { WorkerDispatchState } from '../../types' import { deriveWorkerTerminalListState, type WorkerTerminalResourceRow -} from './orchestration/worker-terminal-ownership' -import { getStructuredAgentSessionHost } from '../native-chat/agent-session-wire/structured-agent-session-registry' +} from '../../worker-terminal-ownership' +import { getStructuredAgentSessionHost } from '../../../../native-chat/agent-session-wire/structured-agent-session-registry' import { structuredWorkerHostScope, structuredWorkerProcessIncarnation, diff --git a/src/main/runtime/structured-worker-hook-attestation.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-hook-attestation.test.ts similarity index 88% rename from src/main/runtime/structured-worker-hook-attestation.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-hook-attestation.test.ts index 70ab4bd0811..147f2dca1dc 100644 --- a/src/main/runtime/structured-worker-hook-attestation.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-hook-attestation.test.ts @@ -1,20 +1,20 @@ import { agentSessionLeaseFixture, agentSessionRecordFixture -} from '../../shared/agent-session/lifecycle/agent-session-record.test-fixture' -import { agentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' +} from '../../../../../shared/agent-session/lifecycle/agent-session-record.test-fixture' +import { agentSessionConversationView } from '../../../../../shared/agent-session/lifecycle/agent-session-conversation-view' import { beforeEach, describe, expect, it, vi } from 'vitest' const hostRef: { current: unknown } = { current: null } -vi.mock('../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ +vi.mock('../../../../native-chat/agent-session-wire/structured-agent-session-registry', () => ({ getStructuredAgentSessionHost: () => hostRef.current })) const { OrcaRuntimeWithGetOrchestrationDispatchAuthority } = - await import('./terminal/output/terminal-orchestration-authority') + await import('../../../terminal/output/terminal-orchestration-authority') const { OrcaRuntimeWithVerifyOrchestrationCompatibilityCaller } = - await import('./orchestration/terminal-authority/verify-orchestration-compatibility-caller') + await import('../verify-orchestration-compatibility-caller') const { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey, diff --git a/src/main/runtime/structured-worker-identity.test.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-identity.test.ts similarity index 94% rename from src/main/runtime/structured-worker-identity.test.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-identity.test.ts index e9a3045a64e..47b1dc57163 100644 --- a/src/main/runtime/structured-worker-identity.test.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-identity.test.ts @@ -1,12 +1,15 @@ -import { agentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' +import { agentSessionConversationView } from '../../../../../shared/agent-session/lifecycle/agent-session-conversation-view' import { describe, expect, it, beforeEach } from 'vitest' -import { isTerminalLeafId, parsePaneKey } from '../../shared/workspace-layout/stable-pane-id' +import { + isTerminalLeafId, + parsePaneKey +} from '../../../../../shared/workspace-layout/stable-pane-id' import { structuredAgentSessionPaneKey, structuredAgentSessionTabId -} from '../../shared/agent-session/view/structured-agent-session-projection' -import { selectExactWorkerProviderSession } from './orchestration/worker-provider-session' -import { sealedChildEnv } from './structured-session-child-env.test-support' +} from '../../../../../shared/agent-session/view/structured-agent-session-projection' +import { selectExactWorkerProviderSession } from '../../worker-provider-session' +import { sealedChildEnv } from '../../../agent-session/environment/structured-session-child-env.test-support' import { StructuredWorkerIdentityRegistry, mintStructuredWorkerHandle, @@ -18,9 +21,9 @@ import { structuredWorkerProcessIncarnation, structuredWorkerRecordIsCurrent } from './structured-worker-identity' -import { isStructuredWorkerHandle } from '../../shared/structured-worker-handle' -import type { AgentSessionRecord } from '../../shared/agent-session/lifecycle/agent-session-record' -import type { ExecutionHostId } from '../../shared/execution-host' +import { isStructuredWorkerHandle } from '../../../../../shared/structured-worker-handle' +import type { AgentSessionRecord } from '../../../../../shared/agent-session/lifecycle/agent-session-record' +import type { ExecutionHostId } from '../../../../../shared/execution-host' const SESSION_ID = 'a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d' diff --git a/src/main/runtime/structured-worker-identity.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-identity.ts similarity index 90% rename from src/main/runtime/structured-worker-identity.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-identity.ts index 4213a2bb6b4..cbf007179d2 100644 --- a/src/main/runtime/structured-worker-identity.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-identity.ts @@ -1,31 +1,31 @@ -import type { AgentSessionConversationView } from '../../shared/agent-session/lifecycle/agent-session-conversation-view' +import type { AgentSessionConversationView } from '../../../../../shared/agent-session/lifecycle/agent-session-conversation-view' /** Structured workers have no PTY; register their bearer handle, pane key and host scope as orchestration authority. * Random handles and leaves prevent session ids exposed in tab ids from yielding caller-supplied keys that read/consume worker mail. */ import { randomUUID } from 'node:crypto' import { isDeepStrictEqual } from 'node:util' -import { sessionCrewChanges } from './orchestration/crew/crew-changes' -import type { AgentSessionExecutionLocation } from '../../shared/agent-session/lifecycle/agent-session-record' -import { LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host' +import { sessionCrewChanges } from '../../crew/crew-changes' +import type { AgentSessionExecutionLocation } from '../../../../../shared/agent-session/lifecycle/agent-session-record' +import { LOCAL_EXECUTION_HOST_ID } from '../../../../../shared/execution-host' import { structuredAgentSessionPaneKey, structuredAgentSessionTabId -} from '../../shared/agent-session/view/structured-agent-session-projection' +} from '../../../../../shared/agent-session/view/structured-agent-session-projection' import { isTerminalLeafId, makePaneKey, parsePaneKey -} from '../../shared/workspace-layout/stable-pane-id' -import { isOrcaSessionId, type OrcaSessionId } from '../../shared/orca-session-address' -import type { TuiAgent } from '../../shared/agent-launch/catalog/tui-agent' +} from '../../../../../shared/workspace-layout/stable-pane-id' +import { isOrcaSessionId, type OrcaSessionId } from '../../../../../shared/orca-session-address' +import type { TuiAgent } from '../../../../../shared/agent-launch/catalog/tui-agent' import { STRUCTURED_WORKER_HANDLE_PREFIX, isStructuredWorkerHandle -} from '../../shared/structured-worker-handle' +} from '../../../../../shared/structured-worker-handle' import { parseWorkerTerminalHostScope, type WorkerTerminalHostScope -} from '../../shared/worker-terminal-host-scope' +} from '../../../../../shared/worker-terminal-host-scope' export const STRUCTURED_WORKER_INCARNATION_PREFIX = 'structured:' diff --git a/src/main/runtime/structured-worker-rpc.test-support.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-rpc.test-support.ts similarity index 76% rename from src/main/runtime/structured-worker-rpc.test-support.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-rpc.test-support.ts index 4c70c26566d..429b680aa94 100644 --- a/src/main/runtime/structured-worker-rpc.test-support.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-rpc.test-support.ts @@ -1,8 +1,8 @@ import { vi } from 'vitest' -import { OrcaRuntimeService } from './orca-runtime' -import type { OrchestrationDb } from './orchestration/db' -import { ORCHESTRATION_METHODS } from './rpc/methods/orchestration' -import { isStreamingMethod, eraseRpcMethods } from './rpc/core' +import { OrcaRuntimeService } from '../../../orca-runtime' +import type { OrchestrationDb } from '../../db/orchestration-db' +import { ORCHESTRATION_METHODS } from '../../../rpc/methods/orchestration' +import { isStreamingMethod, eraseRpcMethods } from '../../../rpc/core' type Db = InstanceType type Runtime = InstanceType diff --git a/src/main/runtime/structured-worker-terminal-read.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-terminal-read.ts similarity index 80% rename from src/main/runtime/structured-worker-terminal-read.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-terminal-read.ts index 9255cf037c1..fb185b942f7 100644 --- a/src/main/runtime/structured-worker-terminal-read.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-terminal-read.ts @@ -3,19 +3,20 @@ * worker-read requires coordinator authority and offers the same mutable window, not a paging alternative. * Keep terminal.show non-resolving: fabricated PTY ids would expose writable terminal operations. */ -import type { RuntimeTerminalRead } from '../../shared/runtime-types' -import { formatWorkerTranscriptMessage } from '../../shared/worker-transcript-text' -import { AGENT_SESSION_NOT_ATTACHED } from '../native-chat/agent-session-wire/structured-agent-session-mutation-admission' -import type { OrchestrationDb } from './orchestration/db' -import { boundStructuredJournalTail } from './orchestration/structured-worker-journal-archive' -import { readStructuredLineageJournalPage } from './orchestration/structured-worker-journal-page' +import type { RuntimeTerminalRead } from '../../../../../shared/runtime-terminal-contracts' +import { formatWorkerTranscriptMessage } from '../../../../../shared/worker-transcript-text' +import '../../../../native-chat/agent-session-wire/structured-agent-session-mutation-admission' +import { AGENT_SESSION_NOT_ATTACHED } from '../../../../native-chat/agent-session-wire/structured-agent-session-mutation-refusals' +import type { OrchestrationDb } from '../../db/orchestration-db' +import { boundStructuredJournalTail } from '../../structured-worker-journal-archive' +import { readStructuredLineageJournalPage } from '../../structured-worker-journal-page' import { holdStructuredWorker, observeStructuredSession, resolveStructuredWorkerIdentity, structuredWorkerTerminalState } from './structured-worker-authority' -import { readTerminalTail } from './terminal/output/tail/terminal-tail-read' +import { readTerminalTail } from '../../../terminal/output/tail/terminal-tail-read' /** Return null for unowned handles so PTY routing continues; held workers with unreadable history or unverified successors must refuse rather than report silence. */ export async function readStructuredWorkerTerminal(args: { diff --git a/src/main/runtime/structured-worker-terminal-refusal.ts b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-terminal-refusal.ts similarity index 94% rename from src/main/runtime/structured-worker-terminal-refusal.ts rename to src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-terminal-refusal.ts index b791d1cdb13..82fc4b48cdb 100644 --- a/src/main/runtime/structured-worker-terminal-refusal.ts +++ b/src/main/runtime/orchestration/terminal-authority/structured-sessions/structured-worker-terminal-refusal.ts @@ -1,7 +1,7 @@ /** Redirect live structured handles to their equivalent operation rather than falsely reporting terminal_handle_stale. * terminal.show must not invent PTY/leaf/runtime ids that make read-only identity look writable. */ -import type { OrchestrationDb } from './orchestration/db' +import type { OrchestrationDb } from '../../db/orchestration-db' import { resolveStructuredWorkerAuthority } from './structured-worker-authority' const TERMINAL_HANDLE_STALE = 'terminal_handle_stale' diff --git a/src/main/runtime/orchestration/terminal-pane-mail-routing.ts b/src/main/runtime/orchestration/terminal-pane-mail-routing.ts index c75a3805e94..00436cc2df1 100644 --- a/src/main/runtime/orchestration/terminal-pane-mail-routing.ts +++ b/src/main/runtime/orchestration/terminal-pane-mail-routing.ts @@ -12,7 +12,7 @@ import { GENERIC_PROCESS_NAME_AGENTS, recognizeAgentProcess } from '../../../shared/agent-status/process/agent-process-recognition' -import { resolveStructuredWorkerAuthority } from '../structured-worker-authority' +import { resolveStructuredWorkerAuthority } from './terminal-authority/structured-sessions/structured-worker-authority' import type { StructuredPointerTarget } from './structured-mailbox-pointer-delivery' import type { OrchestrationDb } from './db' import { diff --git a/src/main/runtime/orchestration/worker-auto-release-activity.ts b/src/main/runtime/orchestration/worker-auto-release-activity.ts index 37a71e2d20c..01bf4456956 100644 --- a/src/main/runtime/orchestration/worker-auto-release-activity.ts +++ b/src/main/runtime/orchestration/worker-auto-release-activity.ts @@ -1,7 +1,7 @@ import type { AgentPaneChange } from '../../agent-hooks/agent-transition-detector' import type { AgentPhase } from '../../../shared/agent-status/lifecycle/agent-transitions' import type { AgentSessionStatusSummary } from '../../../shared/agent-session/agent-session-wire' -import { resolveStructuredWorkerIdentityForSession } from '../structured-worker-authority' +import { resolveStructuredWorkerIdentityForSession } from './terminal-authority/structured-sessions/structured-worker-authority' import type { OrchestrationDb } from './db' // A turn waiting on the user (approval or question) has not finished, so it holds the countdown like working. diff --git a/src/main/runtime/orchestration/worker-dispatch-settlement.test.ts b/src/main/runtime/orchestration/worker-dispatch-settlement.test.ts index 64b6d1a0ee7..643a1235a78 100644 --- a/src/main/runtime/orchestration/worker-dispatch-settlement.test.ts +++ b/src/main/runtime/orchestration/worker-dispatch-settlement.test.ts @@ -5,7 +5,7 @@ import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { OrchestrationDb } from './db' import { settleActiveDispatchesForTask } from './db/dispatch-context/dispatch-completion' -import { mintStructuredWorkerHandle } from '../structured-worker-identity' +import { mintStructuredWorkerHandle } from './terminal-authority/structured-sessions/structured-worker-identity' import { RuntimeLegacyWorkerTerminalRecoveryPersistence } from '../runtime-legacy-worker-terminal-recovery-persistence' describe('settled assignment worker recovery', () => { diff --git a/src/main/runtime/orchestration/worker-output-archive.ts b/src/main/runtime/orchestration/worker-output-archive.ts index 73b63eac03e..0dd75b8b343 100644 --- a/src/main/runtime/orchestration/worker-output-archive.ts +++ b/src/main/runtime/orchestration/worker-output-archive.ts @@ -14,8 +14,8 @@ import { readWorkerTranscript } from './worker-transcript-read' import { isWslHookRelayConnectionId } from '../../../shared/wsl-hook-relay-contract' import { captureStructuredWorkerArchive } from '../rpc/methods/orchestration-structured-worker-lifecycle' import type { WorkerStructuredJournalArchive } from './structured-worker-journal-archive' -import { structuredWorkerAgent } from '../structured-worker-authority' -import type { StructuredWorkerIdentity } from '../structured-worker-identity' +import { structuredWorkerAgent } from './terminal-authority/structured-sessions/structured-worker-authority' +import type { StructuredWorkerIdentity } from './terminal-authority/structured-sessions/structured-worker-identity' import { readWorkerTerminalArchive } from './worker-terminal-archive-read' // Bound the durable copy of raw terminal output; the tail end is the evidence that matters. diff --git a/src/main/runtime/rpc/methods/agent-launch-surfaces.ts b/src/main/runtime/rpc/methods/agent-launch-surfaces.ts index a8f9e99d4e4..fccee2ea860 100644 --- a/src/main/runtime/rpc/methods/agent-launch-surfaces.ts +++ b/src/main/runtime/rpc/methods/agent-launch-surfaces.ts @@ -16,7 +16,7 @@ import type { RpcContext } from '../core' import { STARTUP_CWD_FALLBACK_SENTENCE } from '../../../../shared/startup-cwd-fallback' import { structuredCallerFor } from './structured-agent-session-gate' import { createStructuredAgentSessionForWorktree } from './structured-agent-session-create' -import { structuredAgentRuntimeMetadata } from '../../structured-agent-runtime-metadata' +import { structuredAgentRuntimeMetadata } from '../../agent-session/installation/structured-agent-runtime-metadata' import { deliverTerminalAgentLaunchPrompt } from './agent-launch-terminal-prompt' import { AgentLaunchSessionAlreadyExistsError } from '../../../../shared/agent-launch/contracts/agent-launch-session-already-exists' import { AGENT_SESSION_CREATE_MESSAGE_RUNTIME_CAPABILITY } from '../../../../shared/agent-session/agent-session-create-capabilities' diff --git a/src/main/runtime/rpc/methods/agent-launch.test-fixture.ts b/src/main/runtime/rpc/methods/agent-launch.test-fixture.ts index 8d148ae8eee..9f82488592b 100644 --- a/src/main/runtime/rpc/methods/agent-launch.test-fixture.ts +++ b/src/main/runtime/rpc/methods/agent-launch.test-fixture.ts @@ -8,7 +8,7 @@ import { AgentLaunchPaneAlreadyLiveError } from '../../../../shared/agent-launch import type { RpcContext } from '../core' import { resolveRpcCallerIdentity } from '../rpc-caller-identity' import type { AgentSessionRecordStore } from '../../agent-session/records/agent-session-record-store' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { AgentLaunchTabPublished, AgentLaunchTabPublishRequest diff --git a/src/main/runtime/rpc/methods/antigravity-accounts.ts b/src/main/runtime/rpc/methods/antigravity-accounts.ts index 2d02cd9a1de..0bbb6dccfb0 100644 --- a/src/main/runtime/rpc/methods/antigravity-accounts.ts +++ b/src/main/runtime/rpc/methods/antigravity-accounts.ts @@ -16,8 +16,8 @@ import { subscribeAntigravityChatSignIn } from '../../../antigravity/antigravity-chat-sign-in' import { bindStructuredAgentSessionStream } from './structured-agent-session-status-stream' -import { structuredAgentHostLaunchSources } from '../../structured-agent-launch-support' -import { stopStructuredAgentChats } from '../../structured-agent-chat-stop' +import { structuredAgentHostLaunchSources } from '../../agent-session/launch/structured-agent-launch-support' +import { stopStructuredAgentChats } from '../../agent-session/lifecycle/structured-agent-chat-stop' const chatSignInHost = (runtime: OrcaRuntimeService) => ({ launchSources: (signal: AbortSignal) => diff --git a/src/main/runtime/rpc/methods/managed-runtime-install.test.ts b/src/main/runtime/rpc/methods/managed-runtime-install.test.ts index 8b59404b944..c4ea6b08204 100644 --- a/src/main/runtime/rpc/methods/managed-runtime-install.test.ts +++ b/src/main/runtime/rpc/methods/managed-runtime-install.test.ts @@ -13,7 +13,7 @@ const host = vi.hoisted(() => ({ dataDirectory: '' })) vi.mock('../../../orca-profiles/profile-storage-paths', () => ({ getProfileUserDataPath: () => host.dataDirectory })) -vi.mock('../../structured-agent-launch-support', () => ({ +vi.mock('../../agent-session/launch/structured-agent-launch-support', () => ({ resolveHostStructuredAgentLaunchEnvironment: async () => ({ PATH: '' }) })) // The download never answers until its cancel. diff --git a/src/main/runtime/rpc/methods/managed-runtime-install.ts b/src/main/runtime/rpc/methods/managed-runtime-install.ts index bb15f7633ad..855c7cb5c34 100644 --- a/src/main/runtime/rpc/methods/managed-runtime-install.ts +++ b/src/main/runtime/rpc/methods/managed-runtime-install.ts @@ -10,8 +10,8 @@ import { resolveAcpLaunchCommand } from '../../../acp/acp-structured-launch-reso import { ManagedRuntimeInstallation } from '../../../node-runtime/managed-runtime-installation' import { isAgentSessionPreSpawnError } from '../../../native-chat/agent-session-wire/structured-agent-session-adapter' import { getProfileUserDataPath } from '../../../orca-profiles/profile-storage-paths' -import { stopStructuredAgentChats } from '../../structured-agent-chat-stop' -import { resolveHostStructuredAgentLaunchEnvironment } from '../../structured-agent-launch-support' +import { stopStructuredAgentChats } from '../../agent-session/lifecycle/structured-agent-chat-stop' +import { resolveHostStructuredAgentLaunchEnvironment } from '../../agent-session/launch/structured-agent-launch-support' import { isPathInsideOrEqual } from '../../../../shared/cross-platform-path' import { defineMethod, defineStreamingMethod } from '../core' import { bindStructuredAgentSessionStream } from './structured-agent-session-status-stream' diff --git a/src/main/runtime/rpc/methods/orchestration-chat-assignee-journal.ts b/src/main/runtime/rpc/methods/orchestration-chat-assignee-journal.ts index 6c75c6ea7ab..84884d82ddb 100644 --- a/src/main/runtime/rpc/methods/orchestration-chat-assignee-journal.ts +++ b/src/main/runtime/rpc/methods/orchestration-chat-assignee-journal.ts @@ -3,7 +3,7 @@ import { chatAssigneeSessionId } from '../../orchestration/chat-assignee' import { OrchestrationError } from '../../orchestration/orchestration-error' import type { OrchestrationDb } from '../../orchestration/db' import { readAgentSessionRecordStore } from '../../orchestration/structured-session-lineage' -import type { StructuredWorkerIdentity } from '../../structured-worker-identity' +import type { StructuredWorkerIdentity } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' /** What a worker transcript read needs of the session it reads, and what its cursor is bound to. */ export type StructuredJournalSource = Pick< diff --git a/src/main/runtime/rpc/methods/orchestration-structured-worker-lifecycle.test.ts b/src/main/runtime/rpc/methods/orchestration-structured-worker-lifecycle.test.ts index 48144046a6b..454d29d6684 100644 --- a/src/main/runtime/rpc/methods/orchestration-structured-worker-lifecycle.test.ts +++ b/src/main/runtime/rpc/methods/orchestration-structured-worker-lifecycle.test.ts @@ -6,7 +6,7 @@ import { agentSessionConversationView } from '../../../../shared/agent-session/l import type { AgentSessionLease } from '../../../../shared/agent-session/lifecycle/agent-session-record' import { beforeEach, describe, expect, it, vi } from 'vitest' import type { AgentJournalRenderItem } from '../../../../shared/agent-session/journal/agent-session-journal-types' -import type { StructuredWorkerIdentity } from '../../structured-worker-identity' +import type { StructuredWorkerIdentity } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' const hostRef: { current: unknown } = { current: null } diff --git a/src/main/runtime/rpc/methods/orchestration-structured-worker-lifecycle.ts b/src/main/runtime/rpc/methods/orchestration-structured-worker-lifecycle.ts index f084f12cf13..c1f2e7913aa 100644 --- a/src/main/runtime/rpc/methods/orchestration-structured-worker-lifecycle.ts +++ b/src/main/runtime/rpc/methods/orchestration-structured-worker-lifecycle.ts @@ -35,9 +35,9 @@ import { structuredWorkerAgent, structuredWorkerTerminalState, type StructuredWorkerObservation -} from '../../structured-worker-authority' -import { structuredWorkerOwned } from '../../structured-worker-custody' -import type { StructuredWorkerIdentity } from '../../structured-worker-identity' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' +import { structuredWorkerOwned } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-custody' +import type { StructuredWorkerIdentity } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import type { WorkerTerminalReleaseState } from '../../orchestration/worker-terminal-ownership' import { releaseStructuredWorkerSession } from './orchestration-structured-worker-session' import { diff --git a/src/main/runtime/rpc/methods/orchestration-structured-worker-redrive.test.ts b/src/main/runtime/rpc/methods/orchestration-structured-worker-redrive.test.ts index 2fe509c0fd3..a099539e284 100644 --- a/src/main/runtime/rpc/methods/orchestration-structured-worker-redrive.test.ts +++ b/src/main/runtime/rpc/methods/orchestration-structured-worker-redrive.test.ts @@ -15,7 +15,7 @@ import { setStructuredAgentSessionHost } from '../../../native-chat/agent-sessio import { structuredWorkerIdentities, type StructuredWorkerIdentity -} from '../../structured-worker-identity' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { createOrchestrationRpcHarness } from './orchestration/rpc-test-harness' import { createStructuredWorkerSession, diff --git a/src/main/runtime/rpc/methods/orchestration-structured-worker-retry.test.ts b/src/main/runtime/rpc/methods/orchestration-structured-worker-retry.test.ts index a2fd787011e..a13a7dcba20 100644 --- a/src/main/runtime/rpc/methods/orchestration-structured-worker-retry.test.ts +++ b/src/main/runtime/rpc/methods/orchestration-structured-worker-retry.test.ts @@ -15,7 +15,7 @@ import { } from './orchestration-structured-worker-session' import { deliverWorkerDispatchPreamble } from './orchestration/worker/deliver-worker-dispatch-preamble' import { tearDownFailedWorkerStart } from './orchestration/worker/failed-worker-start-teardown' -import { structuredWorkerIdentities } from '../../structured-worker-identity' +import { structuredWorkerIdentities } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { rpcContext, runtimeStub } from './agent-launch.test-fixture' let rig: RestTestRig diff --git a/src/main/runtime/rpc/methods/orchestration-structured-worker-session.test.ts b/src/main/runtime/rpc/methods/orchestration-structured-worker-session.test.ts index 55ae026b9ff..dddbacb8022 100644 --- a/src/main/runtime/rpc/methods/orchestration-structured-worker-session.test.ts +++ b/src/main/runtime/rpc/methods/orchestration-structured-worker-session.test.ts @@ -46,8 +46,10 @@ const { sendStructuredWorkerPreamble } = await import('./orchestration-structured-worker-session') const { isUnknownWorkerStartOutcome } = await import('./orchestration/worker/worker-topology') -const { structuredWorkerIdentities } = await import('../../structured-worker-identity') -const { sealedChildEnv } = await import('../../structured-session-child-env.test-support') +const { structuredWorkerIdentities } = + await import('../../orchestration/terminal-authority/structured-sessions/structured-worker-identity') +const { sealedChildEnv } = + await import('../../agent-session/environment/structured-session-child-env.test-support') function installHost( location: Pick = { diff --git a/src/main/runtime/rpc/methods/orchestration-structured-worker-session.ts b/src/main/runtime/rpc/methods/orchestration-structured-worker-session.ts index 40425bcbf44..11711c6f3c4 100644 --- a/src/main/runtime/rpc/methods/orchestration-structured-worker-session.ts +++ b/src/main/runtime/rpc/methods/orchestration-structured-worker-session.ts @@ -28,7 +28,7 @@ import { sendAgentTurn, type StructuredAgentTurnHost } from '../../orchestration import { resolveStructuredWorkerIdentity, structuredWorkerSession -} from '../../structured-worker-authority' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' import type { OrchestrationDb } from '../../orchestration/db' import { mintStructuredWorkerHandle, @@ -37,7 +37,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerProcessIncarnation, type StructuredWorkerIdentity -} from '../../structured-worker-identity' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { createStructuredAgentSessionForWorktree } from './structured-agent-session-create' // The worker's handle, keyed by its root session: a reused worker outlives the Dispatch that created it. diff --git a/src/main/runtime/rpc/methods/orchestration-worker-mode-opacity.test.ts b/src/main/runtime/rpc/methods/orchestration-worker-mode-opacity.test.ts index a7a163aae59..dbfe4535a6c 100644 --- a/src/main/runtime/rpc/methods/orchestration-worker-mode-opacity.test.ts +++ b/src/main/runtime/rpc/methods/orchestration-worker-mode-opacity.test.ts @@ -13,7 +13,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from '../../structured-worker-identity' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { CHAT_REDISPATCH_PARAGRAPH, TERMINAL_REDISPATCH_PARAGRAPH diff --git a/src/main/runtime/rpc/methods/orchestration/messaging/settled-worker-follow-through.ts b/src/main/runtime/rpc/methods/orchestration/messaging/settled-worker-follow-through.ts index 1101dddcd37..55202290c11 100644 --- a/src/main/runtime/rpc/methods/orchestration/messaging/settled-worker-follow-through.ts +++ b/src/main/runtime/rpc/methods/orchestration/messaging/settled-worker-follow-through.ts @@ -12,7 +12,7 @@ import { } from '../../../../orchestration/db/dispatch-context/worker-follow-up-lineage' import type { OrchestrationSessionCaller } from '../../../../orchestration/orchestration-caller-identity' import { resolveOrcaSessionParty } from '../../../../orchestration/orchestration-party' -import { readStructuredAgentSessionRecord } from '../../../../structured-worker-authority' +import { readStructuredAgentSessionRecord } from '../../../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' import { createHash } from 'node:crypto' import { escalateWorkerFailure } from '../../../../orchestration/worker-failure-escalation' import { dispatchReportMailbox } from '../../../../orchestration/dispatch-report-mailbox' diff --git a/src/main/runtime/rpc/methods/orchestration/worker/helper-follow-up-cli.test-support.ts b/src/main/runtime/rpc/methods/orchestration/worker/helper-follow-up-cli.test-support.ts index 76f177d7c60..a581fb520c4 100644 --- a/src/main/runtime/rpc/methods/orchestration/worker/helper-follow-up-cli.test-support.ts +++ b/src/main/runtime/rpc/methods/orchestration/worker/helper-follow-up-cli.test-support.ts @@ -20,7 +20,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from '../../../../structured-worker-identity' +} from '../../../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { testOrcaSessionId } from '../../../../../../shared/orca-session-address-test-fixture' import * as placement from './worker-start-agent-placement' diff --git a/src/main/runtime/rpc/methods/orchestration/worker/session-worker-observation.ts b/src/main/runtime/rpc/methods/orchestration/worker/session-worker-observation.ts index 3689038536a..083fbe306af 100644 --- a/src/main/runtime/rpc/methods/orchestration/worker/session-worker-observation.ts +++ b/src/main/runtime/rpc/methods/orchestration/worker/session-worker-observation.ts @@ -9,7 +9,7 @@ import type { OrchestrationDb } from '../../../../orchestration/db' import { holdStructuredWorker, observeStructuredSession -} from '../../../../structured-worker-authority' +} from '../../../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' import { resolveStructuredWorkerForDispatch } from '../../orchestration-structured-worker-lifecycle' export type SessionWorkerObservation = { diff --git a/src/main/runtime/rpc/methods/orchestration/worker/structured-worker-release-stop.ts b/src/main/runtime/rpc/methods/orchestration/worker/structured-worker-release-stop.ts index 7a5c689b495..fb2c554c610 100644 --- a/src/main/runtime/rpc/methods/orchestration/worker/structured-worker-release-stop.ts +++ b/src/main/runtime/rpc/methods/orchestration/worker/structured-worker-release-stop.ts @@ -2,7 +2,7 @@ import type { WorkerTerminalReleaseRuntime } from '../../../../orchestration/wor import type { OrchestrationDb } from '../../../../orchestration/db' import type { WorkerTerminalResourceRow } from '../../../../orchestration/worker-terminal-ownership' import { stopStructuredWorker } from '../../orchestration-structured-worker-lifecycle' -import type { StructuredWorkerIdentity } from '../../../../structured-worker-identity' +import type { StructuredWorkerIdentity } from '../../../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { archiveSummary } from './worker-terminal-resource-presentation' import { releaseUnknownRecovery, type WorkerReleaseReceipt } from './worker-release-completion' diff --git a/src/main/runtime/rpc/methods/orchestration/worker/worker-control.ts b/src/main/runtime/rpc/methods/orchestration/worker/worker-control.ts index 33062855ef3..49f9e0106a9 100644 --- a/src/main/runtime/rpc/methods/orchestration/worker/worker-control.ts +++ b/src/main/runtime/rpc/methods/orchestration/worker/worker-control.ts @@ -13,7 +13,7 @@ import { import { readArchivedWorkerOutput } from './worker-archive-read' import { readStructuredWorkerOutput } from '../../orchestration-structured-worker-lifecycle' import { releaseStructuredWorkerSession } from '../../orchestration-structured-worker-session' -import { sessionIdFromStructuredWorkerIncarnation } from '../../../../structured-worker-identity' +import { sessionIdFromStructuredWorkerIncarnation } from '../../../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { readExactWorkerOutput } from './worker-output' import { exposeWorkerTerminalResource } from './worker-terminal-resource-presentation' import { liveWorkerTerminalAutoReleaseAt } from '../../../../orchestration/worker-terminal-ownership' diff --git a/src/main/runtime/rpc/methods/orchestration/worker/worker-follow-up-choice.ts b/src/main/runtime/rpc/methods/orchestration/worker/worker-follow-up-choice.ts index 9bc2d1c21fd..1f3112bbfc4 100644 --- a/src/main/runtime/rpc/methods/orchestration/worker/worker-follow-up-choice.ts +++ b/src/main/runtime/rpc/methods/orchestration/worker/worker-follow-up-choice.ts @@ -17,7 +17,7 @@ import { OrchestrationError } from '../../../../orchestration/orchestration-erro import type { DispatchContextRow } from '../../../../orchestration/types' import type { WorkerTerminalResourceRow } from '../../../../orchestration/worker-terminal-ownership' import { getStructuredAgentSessionHost } from '../../../../../native-chat/agent-session-wire/structured-agent-session-registry' -import { resolveStructuredWorkerIdentity } from '../../../../structured-worker-authority' +import { resolveStructuredWorkerIdentity } from '../../../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' import { earlierWork, parseStartOptions } from './worker-earlier-work' import { reopenWorkerChat, diff --git a/src/main/runtime/rpc/methods/orchestration/worker/worker-follow-up-placement.ts b/src/main/runtime/rpc/methods/orchestration/worker/worker-follow-up-placement.ts index c674519d4e8..ccd4144e34f 100644 --- a/src/main/runtime/rpc/methods/orchestration/worker/worker-follow-up-placement.ts +++ b/src/main/runtime/rpc/methods/orchestration/worker/worker-follow-up-placement.ts @@ -8,7 +8,7 @@ import { getStructuredAgentSessionHost } from '../../../../../native-chat/agent- import { resolveStructuredWorkerIdentity, structuredWorkerSession -} from '../../../../structured-worker-authority' +} from '../../../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' import type { WorkerFollowUpPlacement } from './worker-follow-up-choice' /** What a follow-up continues, and for a closed worker how it comes back once the follow-up holds its Dispatch. */ diff --git a/src/main/runtime/rpc/methods/orchestration/worker/worker-keep-open.ts b/src/main/runtime/rpc/methods/orchestration/worker/worker-keep-open.ts index faad50f1e16..50f556e9a43 100644 --- a/src/main/runtime/rpc/methods/orchestration/worker/worker-keep-open.ts +++ b/src/main/runtime/rpc/methods/orchestration/worker/worker-keep-open.ts @@ -5,7 +5,7 @@ import type { WorkerTerminalReleaseRuntime } from '../../../../orchestration/wor import type { FederatedDispatchRow } from '../../../../orchestration/types' import { keptOpenStopRefusal } from '../../../../orchestration/db/worker-terminal/worker-terminal-user-keep' import { callFederatedWorkerShow } from './worker-observation' -import { resolveStructuredWorkerIdentityForSession } from '../../../../structured-worker-authority' +import { resolveStructuredWorkerIdentityForSession } from '../../../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' import { OrchestrationWorkerKeepOpenParams, OrchestrationWorkerSubjectParams diff --git a/src/main/runtime/rpc/methods/orchestration/worker/worker-start-launch-executor-parity.test.ts b/src/main/runtime/rpc/methods/orchestration/worker/worker-start-launch-executor-parity.test.ts index fad34333b3c..eb730a7a41d 100644 --- a/src/main/runtime/rpc/methods/orchestration/worker/worker-start-launch-executor-parity.test.ts +++ b/src/main/runtime/rpc/methods/orchestration/worker/worker-start-launch-executor-parity.test.ts @@ -12,7 +12,7 @@ import { setStructuredAgentSessionHost } from '../../../../../native-chat/agent- import type { OrcaRuntimeService } from '../../../../orca-runtime' import type { OrchestrationDb } from '../../../../orchestration/db' import { WORKER_START_VOCABULARY } from '../../orchestration-worker-start-mode' -import { structuredWorkerIdentities } from '../../../../structured-worker-identity' +import { structuredWorkerIdentities } from '../../../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import type { WorkerEffect } from './worker-topology' import { WorkerStartParams } from '../../../../../../shared/rpc-contract/orchestration-worker-start-params' diff --git a/src/main/runtime/rpc/methods/orchestration/worker/worker-terminal-release-lease.ts b/src/main/runtime/rpc/methods/orchestration/worker/worker-terminal-release-lease.ts index 37924a2c47c..023133d8bd3 100644 --- a/src/main/runtime/rpc/methods/orchestration/worker/worker-terminal-release-lease.ts +++ b/src/main/runtime/rpc/methods/orchestration/worker/worker-terminal-release-lease.ts @@ -2,7 +2,7 @@ import type { WorkerTerminalReleaseRuntime } from '../../../../orchestration/wor import type { OrchestrationDb } from '../../../../orchestration/db' import type { WorkerTerminalResourceRow } from '../../../../orchestration/worker-terminal-ownership' import type { WorkerDispatchRow } from '../../../../orchestration/types' -import { resolveStructuredWorkerIdentity } from '../../../../structured-worker-authority' +import { resolveStructuredWorkerIdentity } from '../../../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' import { isStructuredWorkerHandle } from '../../../../../../shared/structured-worker-handle' export function workerTerminalLeaseIsCurrent( diff --git a/src/main/runtime/rpc/methods/structured-agent-session-agents.ts b/src/main/runtime/rpc/methods/structured-agent-session-agents.ts index 393e661d051..5fe2825fdd6 100644 --- a/src/main/runtime/rpc/methods/structured-agent-session-agents.ts +++ b/src/main/runtime/rpc/methods/structured-agent-session-agents.ts @@ -9,7 +9,7 @@ import { AGENT_SESSION_AVAILABILITY_METHOD, type AgentSessionAvailabilityFrame } from '../../../../shared/agent-session/agent-session-agent-availability' -import { STRUCTURED_AGENT_RUNTIME_METADATA } from '../../structured-agent-runtime-metadata' +import { STRUCTURED_AGENT_RUNTIME_METADATA } from '../../agent-session/installation/structured-agent-runtime-metadata' import { defineMethod, defineStreamingMethod } from '../core' import { requireStructuredCapability } from './structured-agent-session-gate' import { AgentsParams, AvailabilityParams } from './structured-agent-session-schemas' diff --git a/src/main/runtime/rpc/methods/structured-worker-read-cursor.test.ts b/src/main/runtime/rpc/methods/structured-worker-read-cursor.test.ts index a874b50bbf8..6ebefedd4fa 100644 --- a/src/main/runtime/rpc/methods/structured-worker-read-cursor.test.ts +++ b/src/main/runtime/rpc/methods/structured-worker-read-cursor.test.ts @@ -10,7 +10,7 @@ import { buildStructuredJournalArchive } from '../../orchestration/structured-wo import { projectSavedChatContextItems } from '../../../native-chat/agent-session-saved-prompt-text' import { formatWorkerTranscriptMessage } from '../../../../shared/worker-transcript-text' import type { AgentJournalRenderItem } from '../../../../shared/agent-session/journal/agent-session-journal-types' -import type { StructuredWorkerIdentity } from '../../structured-worker-identity' +import type { StructuredWorkerIdentity } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' const hostRef: { current: unknown } = { current: null } diff --git a/src/main/runtime/rpc/methods/structured-worker-stop-receipt.test.ts b/src/main/runtime/rpc/methods/structured-worker-stop-receipt.test.ts index e611921f702..f79325d4aca 100644 --- a/src/main/runtime/rpc/methods/structured-worker-stop-receipt.test.ts +++ b/src/main/runtime/rpc/methods/structured-worker-stop-receipt.test.ts @@ -14,7 +14,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from '../../structured-worker-identity' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { ORCHESTRATION_METHODS } from './orchestration' import { isStreamingMethod, eraseRpcMethods } from '../core' diff --git a/src/main/runtime/rpc/methods/structured-worker-tab-retirement.test.ts b/src/main/runtime/rpc/methods/structured-worker-tab-retirement.test.ts index b4957a85327..aa7e9e79ecc 100644 --- a/src/main/runtime/rpc/methods/structured-worker-tab-retirement.test.ts +++ b/src/main/runtime/rpc/methods/structured-worker-tab-retirement.test.ts @@ -18,7 +18,7 @@ import { structuredWorkerIdentities, structuredWorkerProcessIncarnation, type StructuredWorkerIdentity -} from '../../structured-worker-identity' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' const createSpy = vi.fn() vi.mock('./structured-agent-session-create', () => ({ diff --git a/src/main/runtime/rpc/methods/usage-credentials.test.ts b/src/main/runtime/rpc/methods/usage-credentials.test.ts index b5abf59f36d..ff601264c1d 100644 --- a/src/main/runtime/rpc/methods/usage-credentials.test.ts +++ b/src/main/runtime/rpc/methods/usage-credentials.test.ts @@ -11,7 +11,7 @@ import type { RpcRequest } from '../core' import { RpcDispatcher } from '../dispatcher' import { USAGE_CREDENTIAL_METHODS } from './usage-credentials' import { API_KEY_ENVELOPE_PREFIX } from '../../../zcode/zcode-plan-api-key-store' -import { RuntimeAccountController } from '../../runtime-account-controller' +import { RuntimeAccountController } from '../../agent-session/environment/runtime-account-controller' import { agentModelCatalogStore } from '../../../native-chat/agent-model-catalog/agent-model-catalog-store' import { createAgentModelCatalogService } from '../../../native-chat/agent-model-catalog/agent-model-catalog-service' import { agentSessionRecordFixture } from '../../../native-chat/agent-session-record-test-fixture' diff --git a/src/main/runtime/rpc/orchestration-caller-show.test.ts b/src/main/runtime/rpc/orchestration-caller-show.test.ts index 51a74a5aec6..afcbbd56435 100644 --- a/src/main/runtime/rpc/orchestration-caller-show.test.ts +++ b/src/main/runtime/rpc/orchestration-caller-show.test.ts @@ -6,7 +6,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from '../structured-worker-identity' +} from '../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { ADDRESS_X, ADDRESS_Y, diff --git a/src/main/runtime/rpc/orchestration-party-addressing.test.ts b/src/main/runtime/rpc/orchestration-party-addressing.test.ts index e071ec04fd5..1a231814205 100644 --- a/src/main/runtime/rpc/orchestration-party-addressing.test.ts +++ b/src/main/runtime/rpc/orchestration-party-addressing.test.ts @@ -8,7 +8,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from '../structured-worker-identity' +} from '../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { ADDRESS_X, ADDRESS_Y, diff --git a/src/main/runtime/rpc/orchestration-party-agreement.test.ts b/src/main/runtime/rpc/orchestration-party-agreement.test.ts index 90b5f27041b..100acbbd7be 100644 --- a/src/main/runtime/rpc/orchestration-party-agreement.test.ts +++ b/src/main/runtime/rpc/orchestration-party-agreement.test.ts @@ -8,7 +8,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from '../structured-worker-identity' +} from '../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { ADDRESS_X, createSessionCallerHarness, diff --git a/src/main/runtime/rpc/orchestration-session-caller-test-fixture.ts b/src/main/runtime/rpc/orchestration-session-caller-test-fixture.ts index 74b2ee9a179..2fd24bf6a4a 100644 --- a/src/main/runtime/rpc/orchestration-session-caller-test-fixture.ts +++ b/src/main/runtime/rpc/orchestration-session-caller-test-fixture.ts @@ -15,7 +15,7 @@ import { testOrcaSessionId } from '../../../shared/orca-session-address-test-fix import { OrcaRuntimeService } from '../orca-runtime' import type { TerminalIdentityReadContext } from '../terminal/query/terminal-identity-read-context' import { OrchestrationDb } from '../orchestration/db' -import { structuredWorkerIdentities } from '../structured-worker-identity' +import { structuredWorkerIdentities } from '../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import type { RpcRequest, RpcResponse } from './core' import { RpcDispatcher } from './dispatcher' import { ORCHESTRATION_METHODS } from './methods/orchestration' diff --git a/src/main/runtime/rpc/orchestration-session-caller.test.ts b/src/main/runtime/rpc/orchestration-session-caller.test.ts index 099e34c1654..5895d4aae76 100644 --- a/src/main/runtime/rpc/orchestration-session-caller.test.ts +++ b/src/main/runtime/rpc/orchestration-session-caller.test.ts @@ -13,7 +13,7 @@ import { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey, structuredWorkerProcessIncarnation -} from '../structured-worker-identity' +} from '../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { ADDRESS_X, createSessionCallerHarness, diff --git a/src/main/runtime/rpc/orchestration-session-caller.ts b/src/main/runtime/rpc/orchestration-session-caller.ts index 74350835960..5dec99ce26e 100644 --- a/src/main/runtime/rpc/orchestration-session-caller.ts +++ b/src/main/runtime/rpc/orchestration-session-caller.ts @@ -27,7 +27,7 @@ import { lookupOrcaAgentSession } from '../orchestration/structured-session-mail import { conversationRecordReader } from '../orchestration/structured-session-lineage' import type { AgentSessionRecordStore } from '../agent-session/records/agent-session-record-store' import { getStructuredAgentSessionHost } from '../../native-chat/agent-session-wire/structured-agent-session-registry' -import { structuredWorkerHostScope } from '../structured-worker-identity' +import { structuredWorkerHostScope } from '../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import type { RpcRequest } from './core' type CallerParam = 'from' | 'terminal' | 'callerTerminalHandle' diff --git a/src/main/runtime/rpc/orchestration-session-coordinator.test.ts b/src/main/runtime/rpc/orchestration-session-coordinator.test.ts index 39acffe964a..08cc9e22d8b 100644 --- a/src/main/runtime/rpc/orchestration-session-coordinator.test.ts +++ b/src/main/runtime/rpc/orchestration-session-coordinator.test.ts @@ -5,7 +5,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from '../structured-worker-identity' +} from '../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { ADDRESS_X, ADDRESS_Y, diff --git a/src/main/runtime/rpc/orchestration-session-recipient.test.ts b/src/main/runtime/rpc/orchestration-session-recipient.test.ts index e4b50559854..993b4850f2d 100644 --- a/src/main/runtime/rpc/orchestration-session-recipient.test.ts +++ b/src/main/runtime/rpc/orchestration-session-recipient.test.ts @@ -5,7 +5,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from '../structured-worker-identity' +} from '../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { ADDRESS_X, ADDRESS_Y, diff --git a/src/main/runtime/rpc/orchestration-session-run-binding.test.ts b/src/main/runtime/rpc/orchestration-session-run-binding.test.ts index 51f3b3fcf42..a574750d1ee 100644 --- a/src/main/runtime/rpc/orchestration-session-run-binding.test.ts +++ b/src/main/runtime/rpc/orchestration-session-run-binding.test.ts @@ -5,7 +5,7 @@ import { mintStructuredWorkerPaneKey, structuredWorkerIdentities, structuredWorkerProcessIncarnation -} from '../structured-worker-identity' +} from '../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { createSessionCallerHarness, orchestrationRequest, diff --git a/src/main/runtime/rpc/structured-worker-cli.integration.test.ts b/src/main/runtime/rpc/structured-worker-cli.integration.test.ts index c63d6df6753..758a2eb4502 100644 --- a/src/main/runtime/rpc/structured-worker-cli.integration.test.ts +++ b/src/main/runtime/rpc/structured-worker-cli.integration.test.ts @@ -20,10 +20,13 @@ import { authorityProfile, root, savedIds -} from '../structured-agent-session-tab-authority.test-support' +} from '../agent-session/lifecycle/structured-agent-session-tab-authority.test-support' import { ensureStructuredAgentSessionHost } from '../agent-session/structured-agent-session-runtime' -import { fakeCodex, resetProviderFaults } from '../structured-chat-coordinator-fake-codex-fixture' -import { structuredWorkerIdentities } from '../structured-worker-identity' +import { + fakeCodex, + resetProviderFaults +} from '../orchestration/terminal-authority/structured-sessions/structured-chat-coordinator-fake-codex-fixture' +import { structuredWorkerIdentities } from '../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { releaseStructuredWorkerSession } from './methods/orchestration-structured-worker-session' import { AGENT_LAUNCH_METHODS } from './methods/agent-launch' import { ORCHESTRATION_METHODS } from './methods/orchestration' diff --git a/src/main/runtime/runtime-agent-lineage.test-fixture.ts b/src/main/runtime/runtime-agent-lineage.test-fixture.ts index 7e41df7ec79..cc3c82fc1f9 100644 --- a/src/main/runtime/runtime-agent-lineage.test-fixture.ts +++ b/src/main/runtime/runtime-agent-lineage.test-fixture.ts @@ -13,7 +13,7 @@ import { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey, structuredWorkerProcessIncarnation -} from './structured-worker-identity' +} from './orchestration/terminal-authority/structured-sessions/structured-worker-identity' export const LINEAGE_PARENT = testOrcaSessionId('ca1f6c2e-8b3d-4e7a-9c15-0d2b6e8f1a37') export const LINEAGE_CHILD = testOrcaSessionId('ce3b9d15-2c4a-4f86-a0b1-5c9e2d7f3b64') diff --git a/src/main/runtime/runtime-agent-orchestration-projection.test.ts b/src/main/runtime/runtime-agent-orchestration-projection.test.ts index 2cbeb96bf97..386e3b454e2 100644 --- a/src/main/runtime/runtime-agent-orchestration-projection.test.ts +++ b/src/main/runtime/runtime-agent-orchestration-projection.test.ts @@ -49,7 +49,7 @@ import { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey, structuredWorkerProcessIncarnation -} from './structured-worker-identity' +} from './orchestration/terminal-authority/structured-sessions/structured-worker-identity' const COORDINATOR_CHAT = testOrcaSessionId('1b6f0c3a-7d2e-4a91-8c55-2e9d4b7a0f13') const WORKER_CHAT = testOrcaSessionId('9c3e5a17-4b2d-4f60-8e91-0d7a6c2b5e48') diff --git a/src/main/runtime/runtime-agent-sender-associations.test.ts b/src/main/runtime/runtime-agent-sender-associations.test.ts index 59b94bc243d..b1c452c648f 100644 --- a/src/main/runtime/runtime-agent-sender-associations.test.ts +++ b/src/main/runtime/runtime-agent-sender-associations.test.ts @@ -27,7 +27,7 @@ import { import { mintStructuredWorkerHandle, mintStructuredWorkerPaneKey -} from './structured-worker-identity' +} from './orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { testOrcaSessionId } from '../../shared/orca-session-address-test-fixture' import { projectSessionTabsForClient } from './rpc/methods/session-tabs-inventory' import { AGENT_SENDER_PANE_READS } from './runtime-agent-sender-worker-history' diff --git a/src/main/runtime/runtime-legacy-worker-recovery-test-fixture.ts b/src/main/runtime/runtime-legacy-worker-recovery-test-fixture.ts index 181c784b0b2..8deebee8baf 100644 --- a/src/main/runtime/runtime-legacy-worker-recovery-test-fixture.ts +++ b/src/main/runtime/runtime-legacy-worker-recovery-test-fixture.ts @@ -1,14 +1,14 @@ +import type { PtyControllerInventory } from './runtime-pty-controller-contract' import { vi, type Mock } from 'vitest' import { LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host' import { OrchestrationError } from './orchestration/orchestration-error' import { RuntimeLegacyWorkerTerminalRecoveryController } from './runtime-legacy-worker-terminal-recovery-controller' import type { LegacyWorkerRecoveryCandidate, - LegacyWorkerRecoveryInventory, LegacyWorkerRecoveryOptions, LegacyWorkerRecoveryPorts, LegacyWorkerRecoveryResolution -} from './runtime-legacy-worker-terminal-recovery-types' +} from './orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' export function missingWorkspaceWorker( overrides: Partial = {} @@ -32,7 +32,7 @@ export function missingWorkspaceWorker( export function missingWorkspaceRecoveryFixture( candidates = [missingWorkspaceWorker()], - inventory: LegacyWorkerRecoveryInventory | null = null + inventory: PtyControllerInventory | null = null ): { controller: RuntimeLegacyWorkerTerminalRecoveryController ports: LegacyWorkerRecoveryPorts @@ -89,7 +89,7 @@ export function missingWorkspaceRecoveryFixture( } } -export function emptyLocalWorkerInventory(): LegacyWorkerRecoveryInventory { +export function emptyLocalWorkerInventory(): PtyControllerInventory { return { livePtyIds: new Set(), allLivePtyIds: new Set(), diff --git a/src/main/runtime/runtime-legacy-worker-terminal-recovery-candidate.ts b/src/main/runtime/runtime-legacy-worker-terminal-recovery-candidate.ts index f9cb6aa4c9b..7a3e9e5bb11 100644 --- a/src/main/runtime/runtime-legacy-worker-terminal-recovery-candidate.ts +++ b/src/main/runtime/runtime-legacy-worker-terminal-recovery-candidate.ts @@ -1,12 +1,12 @@ +import type { PtyControllerInventory } from './runtime-pty-controller-contract' import type { RuntimeLegacyWorkerTerminalRecoveryController } from './runtime-legacy-worker-terminal-recovery-controller' import type { LegacyWorkerRecoveryCandidate, - LegacyWorkerRecoveryInventory, LegacyWorkerRecoveryOptions, LegacyWorkerRecoveryPorts, LegacyWorkerRecoveryResolution, LegacyWorkerRecoveryWorkspace -} from './runtime-legacy-worker-terminal-recovery-types' +} from './orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' export async function isAbsentLegacyWorkerTerminalProvenExited( ports: LegacyWorkerRecoveryPorts, @@ -31,7 +31,7 @@ export async function reconcileLegacyWorkerCandidate(args: { candidate: LegacyWorkerRecoveryCandidate workspace: LegacyWorkerRecoveryWorkspace resolvedWorktrees: LegacyWorkerRecoveryWorkspace['resolved'][] - inventory: LegacyWorkerRecoveryInventory + inventory: PtyControllerInventory deferredDispatchIds: Set pendingResolutions: LegacyWorkerRecoveryResolution[] }): Promise { diff --git a/src/main/runtime/runtime-legacy-worker-terminal-recovery-controller.ts b/src/main/runtime/runtime-legacy-worker-terminal-recovery-controller.ts index 1d929576eff..c3be3f6f912 100644 --- a/src/main/runtime/runtime-legacy-worker-terminal-recovery-controller.ts +++ b/src/main/runtime/runtime-legacy-worker-terminal-recovery-controller.ts @@ -6,7 +6,7 @@ import type { LegacyWorkerRecoveryOptions, LegacyWorkerRecoveryPorts, LegacyWorkerTerminalRecoveryResult -} from './runtime-legacy-worker-terminal-recovery-types' +} from './orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' type RecoveryRetry = { attempt: number diff --git a/src/main/runtime/runtime-legacy-worker-terminal-recovery-persistence.test.ts b/src/main/runtime/runtime-legacy-worker-terminal-recovery-persistence.test.ts index db6c226be87..ac66b495db6 100644 --- a/src/main/runtime/runtime-legacy-worker-terminal-recovery-persistence.test.ts +++ b/src/main/runtime/runtime-legacy-worker-terminal-recovery-persistence.test.ts @@ -4,7 +4,7 @@ import type { ExecutionHostId } from '../../shared/execution-host' import type { WorkspaceSessionState } from '../../shared/workspace-session/workspace-session-state-types' import { withDurableRuntimeStore } from './orca-runtime-tests/runtime-durable-store-fixture' import { RuntimeLegacyWorkerTerminalRecoveryPersistence } from './runtime-legacy-worker-terminal-recovery-persistence' -import type { LegacyWorkerRecoveryResolution } from './runtime-legacy-worker-terminal-recovery-types' +import type { LegacyWorkerRecoveryResolution } from './orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { RuntimeStore } from './runtime-store-contract' function makeResolution(index: number): LegacyWorkerRecoveryResolution { diff --git a/src/main/runtime/runtime-legacy-worker-terminal-recovery-persistence.ts b/src/main/runtime/runtime-legacy-worker-terminal-recovery-persistence.ts index a7ae8802d53..43c346ec78c 100644 --- a/src/main/runtime/runtime-legacy-worker-terminal-recovery-persistence.ts +++ b/src/main/runtime/runtime-legacy-worker-terminal-recovery-persistence.ts @@ -10,7 +10,7 @@ import type { RuntimeStore } from './runtime-store-contract' import type { LegacyWorkerRecoveryCandidate, LegacyWorkerRecoveryResolution -} from './runtime-legacy-worker-terminal-recovery-types' +} from './orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import { cloneWorkspaceSessionState } from '../persistence/restoring-sessions/session-owner-fields' import { rollbackWorkspaceSessionAfterFailedAsyncWrite } from '../persistence/restoring-sessions/workspace-session-write-rollback' import { worktreeIdsEqual } from '../../shared/worktree/id' diff --git a/src/main/runtime/runtime-legacy-worker-terminal-recovery-retry.test.ts b/src/main/runtime/runtime-legacy-worker-terminal-recovery-retry.test.ts index 3f757547c23..45f8d50d197 100644 --- a/src/main/runtime/runtime-legacy-worker-terminal-recovery-retry.test.ts +++ b/src/main/runtime/runtime-legacy-worker-terminal-recovery-retry.test.ts @@ -6,7 +6,7 @@ import { import type { LegacyWorkerRecoveryPorts, LegacyWorkerTerminalRecoveryResult -} from './runtime-legacy-worker-terminal-recovery-types' +} from './orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { LegacyWorkerTerminalRecoveryPlan } from './orchestration/orchestration-legacy-worker-terminal-recovery' import { missingWorkspaceRecoveryFixture, diff --git a/src/main/runtime/runtime-legacy-worker-terminal-recovery-runner.ts b/src/main/runtime/runtime-legacy-worker-terminal-recovery-runner.ts index f8af50f26e7..02e38a55840 100644 --- a/src/main/runtime/runtime-legacy-worker-terminal-recovery-runner.ts +++ b/src/main/runtime/runtime-legacy-worker-terminal-recovery-runner.ts @@ -12,7 +12,7 @@ import type { LegacyWorkerRecoveryResolution, LegacyWorkerRecoveryWorkspace, LegacyWorkerTerminalRecoveryResult -} from './runtime-legacy-worker-terminal-recovery-types' +} from './orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' export async function runLegacyWorkerTerminalRecovery( controller: RuntimeLegacyWorkerTerminalRecoveryController, diff --git a/src/main/runtime/runtime-pty-controller-contract.ts b/src/main/runtime/runtime-pty-controller-contract.ts index 7e4d0b49c85..a5be0598675 100644 --- a/src/main/runtime/runtime-pty-controller-contract.ts +++ b/src/main/runtime/runtime-pty-controller-contract.ts @@ -6,7 +6,7 @@ import type { TerminalViewAttributes } from '../../shared/terminal/protocol/quer import type { PtySpawnOutcome } from '../ipc/pty/spawn-outcome' import type { RuntimePaneCreateClaim } from '../ipc/pty/pane/spawn-reservation' import type { PaneSpawnOperation } from '../ipc/pty/pane/pane-spawn-operation' -import type { TerminalWorkspaceLaunchScope } from './runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from './orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { AgentLaunchRuntime } from '../../shared/agent-launch/startup/agent-launch-runtime' import type { AutomaticWorkResumeOutcome, diff --git a/src/main/runtime/runtime-reference-agents.test.ts b/src/main/runtime/runtime-reference-agents.test.ts index a4b978df856..deaf5be3091 100644 --- a/src/main/runtime/runtime-reference-agents.test.ts +++ b/src/main/runtime/runtime-reference-agents.test.ts @@ -20,9 +20,12 @@ const observations = vi.hoisted<{ status: 'live' | 'exited' | 'unverifiable'; re reachable: true }) ) -vi.mock('./structured-worker-authority', () => ({ - observeStructuredSession: () => ({ status: observations.status }) -})) +vi.mock( + './orchestration/terminal-authority/structured-sessions/structured-worker-authority', + () => ({ + observeStructuredSession: () => ({ status: observations.status }) + }) +) vi.mock('./orchestration/structured-session-mail-address', () => ({ structuredSessionMailReach: () => ({ kind: observations.reachable ? 'reachable' : 'ended' }) })) diff --git a/src/main/runtime/runtime-reference-agents.ts b/src/main/runtime/runtime-reference-agents.ts index 9a345577837..0dd8d97a195 100644 --- a/src/main/runtime/runtime-reference-agents.ts +++ b/src/main/runtime/runtime-reference-agents.ts @@ -23,8 +23,8 @@ import { readAgentSessionRecordStore, type AgentSessionRecordReader } from './orchestration/structured-session-lineage' -import { observeStructuredSession } from './structured-worker-authority' -import { structuredWorkerHostScope } from './structured-worker-identity' +import { observeStructuredSession } from './orchestration/terminal-authority/structured-sessions/structured-worker-authority' +import { structuredWorkerHostScope } from './orchestration/terminal-authority/structured-sessions/structured-worker-identity' import type { ReferenceAgentCandidate, ReferenceAgentIndex } from './runtime-reference-find' export type ReferenceAgentSource = { diff --git a/src/main/runtime/runtime-service-command-surface.ts b/src/main/runtime/runtime-service-command-surface.ts index c81ad89a470..b8f841dc600 100644 --- a/src/main/runtime/runtime-service-command-surface.ts +++ b/src/main/runtime/runtime-service-command-surface.ts @@ -1,4 +1,4 @@ -import type { RuntimeAccountController } from './runtime-account-controller' +import type { RuntimeAccountController } from './agent-session/environment/runtime-account-controller' import type { RuntimeAiVaultCommands } from './runtime-ai-vault-commands' import type { RuntimeBrowserDriverController } from './runtime-browser-driver-controller' import type { RuntimeClientEventBus } from './runtime-client-event-bus' diff --git a/src/main/runtime/session-construction/agent-session/get-agent-session-execution-namespace.ts b/src/main/runtime/session-construction/agent-session/get-agent-session-execution-namespace.ts index 2c2d7e793d7..cbf30467955 100644 --- a/src/main/runtime/session-construction/agent-session/get-agent-session-execution-namespace.ts +++ b/src/main/runtime/session-construction/agent-session/get-agent-session-execution-namespace.ts @@ -1,5 +1,5 @@ import { OrcaRuntimeWithResolveWorktreeRemovalTarget } from '../../workspaces/workspace-removal-target' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { TuiAgent } from '../../../../shared/agent-launch/catalog/tui-agent' import { parseWslUncPath } from '../../../../shared/wsl-paths' import type { diff --git a/src/main/runtime/orca-runtime-create-agent-session.ts b/src/main/runtime/session-construction/agent-session/orca-runtime-create-agent-session.ts similarity index 94% rename from src/main/runtime/orca-runtime-create-agent-session.ts rename to src/main/runtime/session-construction/agent-session/orca-runtime-create-agent-session.ts index 04bf8e5e886..2d63748ef73 100644 --- a/src/main/runtime/orca-runtime-create-agent-session.ts +++ b/src/main/runtime/session-construction/agent-session/orca-runtime-create-agent-session.ts @@ -1,6 +1,6 @@ import type { BrowserWindow } from 'electron' -import type { TerminalWorkspaceLaunchScope } from './runtime-legacy-worker-terminal-recovery-types' -import { OrcaRuntimeWithGetAgentSessionExecutionNamespace } from './session-construction/agent-session/get-agent-session-execution-namespace' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' +import { OrcaRuntimeWithGetAgentSessionExecutionNamespace } from './get-agent-session-execution-namespace' import { type RuntimeAgentSessionRpcCaller, type RuntimeCreateAgentSessionRequest, @@ -8,19 +8,19 @@ import { AGENT_SESSION_MAX_NEW_OPERATION_AGE_MS, AGENT_SESSION_OPERATION_FUTURE_SKEW_MS, parseAgentSessionOperationTimestamp -} from '../../shared/agent-session/agent-session-host-authority' +} from '../../../../shared/agent-session/agent-session-host-authority' import { createHash } from 'node:crypto' -import { isTuiAgentEnabled } from '../../shared/agent-launch/catalog/tui-agent-selection' -import type { RuntimeTerminalCreate } from '../../shared/runtime-types' +import { isTuiAgentEnabled } from '../../../../shared/agent-launch/catalog/tui-agent-selection' +import type { RuntimeTerminalCreate } from '../../../../shared/runtime-terminal-create-contract' import type { AgentSessionCreateOperation, AgentSessionCreateReclaimIdentity -} from './runtime-terminal-contracts' +} from '../../runtime-terminal-contracts' import { deterministicAgentSessionUuid, isAgentSessionOperationOutcomeUnknown -} from './terminal/launch/runtime-agent-launch-resolution' -import { AgentLaunchUnbuildableError } from './terminal/launch/runtime-agent-terminal-startup' +} from '../../terminal/launch/runtime-agent-launch-resolution' +import { AgentLaunchUnbuildableError } from '../../terminal/launch/runtime-agent-terminal-startup' export abstract class OrcaRuntimeWithCreateAgentSession extends OrcaRuntimeWithGetAgentSessionExecutionNamespace { abstract resolveWorkspaceTerminalStartupCwd( diff --git a/src/main/runtime/session-graph/session-graph-authority.ts b/src/main/runtime/session-graph/session-graph-authority.ts index 3294effed8d..dc6097dfa96 100644 --- a/src/main/runtime/session-graph/session-graph-authority.ts +++ b/src/main/runtime/session-graph/session-graph-authority.ts @@ -23,7 +23,7 @@ import { wslDistroForPath } from '../../wsl/filesystem/wsl-unc-access-gate' import { wslDistroHoldMessage } from '../../../shared/wsl-distro-stopped-hold' -import type { TerminalWorkspaceLaunchScope } from '../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import { folderWorkspaceKey, parseWorkspaceKey } from '../../../shared/workspace-scope' import type { ResolvedWorktree } from '../workspaces/catalog/runtime-worktree-path-identity' import type { BrowserExecutionHostKeyResolution } from '../runtime-browser-client-page-adoption' diff --git a/src/main/runtime/session-lifecycle/projection/restored-pane-materialize.ts b/src/main/runtime/session-lifecycle/projection/restored-pane-materialize.ts index 4f915a386f8..0a334a9e67b 100644 --- a/src/main/runtime/session-lifecycle/projection/restored-pane-materialize.ts +++ b/src/main/runtime/session-lifecycle/projection/restored-pane-materialize.ts @@ -10,7 +10,7 @@ import { parseAppSshPtyId } from '../../../../shared/ssh-pty-id' import { ORCA_LAYOUT_OWNER_IS_MAIN } from '../../../../shared/layout-owner-switch' import { isUnclaimedRunningSleepRecord, markResumedRecordLive } from './sleep-record-pane-claim' import { isWorktreeTerminalsSleepingError } from '../../../../shared/workspace-sleep' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { TuiAgent } from '../../../../shared/agent-launch/catalog/tui-agent' import type { AgentLaunchRuntime } from '../../../../shared/agent-launch/startup/agent-launch-runtime' import type { RuntimeMobileSessionCreateTerminalResult } from '../../../../shared/runtime-session-contracts' diff --git a/src/main/runtime/session-tabs/restored-chat-tab-changes.ts b/src/main/runtime/session-tabs/restored-chat-tab-changes.ts index dab35875df3..e6efcb61432 100644 --- a/src/main/runtime/session-tabs/restored-chat-tab-changes.ts +++ b/src/main/runtime/session-tabs/restored-chat-tab-changes.ts @@ -5,7 +5,7 @@ import { LOCAL_EXECUTION_HOST_ID } from '../../../shared/execution-host' import { retireStructuredAgentSessionTabFrom } from '../agent-session/structured-agent-session-tab-retirement' import { chatTabChangesMatchingIndex } from '../agent-session/structured-agent-session-tab-index-seed' import { chatTabId, type ChatTabChange } from '../agent-session/agent-session-tab-layout' -import { structuredSessionTabRetired } from '../structured-worker-custody' +import { structuredSessionTabRetired } from '../orchestration/terminal-authority/structured-sessions/structured-worker-custody' type ChatTabOpen = Extract['open'] diff --git a/src/main/runtime/session-tabs/structured-session-account-home.ts b/src/main/runtime/session-tabs/structured-session-account-home.ts index 7bb242202e4..1c0f07119b5 100644 --- a/src/main/runtime/session-tabs/structured-session-account-home.ts +++ b/src/main/runtime/session-tabs/structured-session-account-home.ts @@ -1,5 +1,5 @@ import type { StructuredAgentId } from '../../../shared/agent-session/lifecycle/agent-session-provider-handle' -import { structuredAgentRuntimeMetadata } from '../structured-agent-runtime-metadata' +import { structuredAgentRuntimeMetadata } from '../agent-session/installation/structured-agent-runtime-metadata' import { getProfileUserDataPath } from '../../orca-profiles/profile-storage-paths' import { OrcaRuntimeWithStructuredSessionCliWriterHost } from './structured-session-cli-writer-host' import type { AgentSessionAccountHome } from '../../../shared/agent-session/lifecycle/agent-session-account-home' diff --git a/src/main/runtime/session-tabs/structured-session-cli-writer-host.ts b/src/main/runtime/session-tabs/structured-session-cli-writer-host.ts index daf71463fc4..65d37a17105 100644 --- a/src/main/runtime/session-tabs/structured-session-cli-writer-host.ts +++ b/src/main/runtime/session-tabs/structured-session-cli-writer-host.ts @@ -4,7 +4,7 @@ import { } from '../../../shared/agent-session/lifecycle/agent-session-resume' import { LOCAL_EXECUTION_HOST_ID } from '../../../shared/execution-host' import type { StructuredAgentId } from '../../../shared/agent-session/lifecycle/agent-session-provider-handle' -import { assertCliConversationWritersExited } from '../structured-agent-cli-writers' +import { assertCliConversationWritersExited } from '../agent-session/lifecycle/structured-agent-cli-writers' import type { EnrichedAgentHookEventPayload } from '../../agent-hooks/server/server-types' import type { AgentSessionRecord } from '../../../shared/agent-session/lifecycle/agent-session-record' import { CLI_CONVERSATION_ADOPTING_AGENTS } from '../../../shared/structured-agent-cli-conversation-adoption' diff --git a/src/main/runtime/session-tabs/structured-session-create-support.ts b/src/main/runtime/session-tabs/structured-session-create-support.ts index 9b7899e82f3..2efde56f9c6 100644 --- a/src/main/runtime/session-tabs/structured-session-create-support.ts +++ b/src/main/runtime/session-tabs/structured-session-create-support.ts @@ -17,9 +17,9 @@ import type { AgentSessionAttachParams } from '../../native-chat/agent-session-w import { resolveHostStructuredAgentCreateSupport, resolveHostStructuredAgentLaunchEnvironment -} from '../structured-agent-launch-support' -import { structuredAgentRuntimeMetadata } from '../structured-agent-runtime-metadata' -import { structuredAgentChatProgramNeedsInstall } from '../structured-agent-availability' +} from '../agent-session/launch/structured-agent-launch-support' +import { structuredAgentRuntimeMetadata } from '../agent-session/installation/structured-agent-runtime-metadata' +import { structuredAgentChatProgramNeedsInstall } from '../agent-session/launch/structured-agent-availability' import { structuredLaunchSeedOptions } from '../../../shared/native-chat/input/native-chat-session-option-defaults' import { hasPersistedStructuredAgentSessionStore as hasPersistedStructuredAgentSessionStoreOnDisk } from '../agent-session/records/agent-session-record-store-slot' import { ensureStructuredAgentSessionHostUnlessRefused } from '../agent-session/structured-agent-session-host-refusal' diff --git a/src/main/runtime/session-tabs/structured-session-tab-presentation.ts b/src/main/runtime/session-tabs/structured-session-tab-presentation.ts index cdc254c577e..cacd3156640 100644 --- a/src/main/runtime/session-tabs/structured-session-tab-presentation.ts +++ b/src/main/runtime/session-tabs/structured-session-tab-presentation.ts @@ -13,7 +13,7 @@ import { getStructuredAgentSessionHost } from '../../native-chat/agent-session-w import { structuredAgentSessionTabCloseCause } from '../agent-session/structured-agent-session-tab-close-cause' import { isReopenedChatTabId } from '../../../shared/agent-session/view/structured-agent-session-host-tab-id' import type { WorkspaceSessionState } from '../../../shared/workspace-session/workspace-session-state-types' -import { savedSessionId } from '../saved-structured-agent-session-restoration' +import { savedSessionId } from '../agent-session/lifecycle/saved-structured-agent-session-restoration' import type { QueuedChatTabChange } from '../agent-session-tab-layout-queue' type Surface = { worktreeId: string; tabId: string } diff --git a/src/main/runtime/session-tabs/structured-session-tab-restoration.ts b/src/main/runtime/session-tabs/structured-session-tab-restoration.ts index ee58cacab0c..1b53949009b 100644 --- a/src/main/runtime/session-tabs/structured-session-tab-restoration.ts +++ b/src/main/runtime/session-tabs/structured-session-tab-restoration.ts @@ -26,7 +26,7 @@ import { } from '../terminal/launch/agent-launch-scope-runtime' import type { TuiAgent } from '../../../shared/agent-launch/catalog/tui-agent' import type { AgentLaunchRuntime } from '../../../shared/agent-launch/startup/agent-launch-runtime' -import type { TerminalWorkspaceLaunchScope } from '../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import { parseAppSshPtyId } from '../../../shared/ssh-pty-id' import type { TerminalProcessInspection as PtyProcessInspection } from '../../../shared/terminal/pty/lifecycle/terminal-process-inspection' diff --git a/src/main/runtime/structured-child-records-switch.test.ts b/src/main/runtime/structured-child-records-switch.test.ts index 37c93c7cf95..ee80f1bafe7 100644 --- a/src/main/runtime/structured-child-records-switch.test.ts +++ b/src/main/runtime/structured-child-records-switch.test.ts @@ -28,7 +28,7 @@ import { } from './agent-session/structured-agent-session-runtime' import { createStructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger' import { scriptedCodexTransport } from './orca-runtime-tests/scripted-codex-transport.test-fixture' -import { createScriptedClaudeRuntime } from './structured-claude-scripted-runtime-test-support' +import { createScriptedClaudeRuntime } from './agent-session/installation/structured-claude-scripted-runtime-test-support' vi.mock('../telemetry/client', () => ({ track: vi.fn() })) vi.mock('../telemetry/cohort-classifier', () => ({ getCohortAtEmit: vi.fn() })) diff --git a/src/main/runtime/terminal/adoption/adopt-terminal-orphans-from-inventory.ts b/src/main/runtime/terminal/adoption/adopt-terminal-orphans-from-inventory.ts index dbc567271da..61e9ad614a0 100644 --- a/src/main/runtime/terminal/adoption/adopt-terminal-orphans-from-inventory.ts +++ b/src/main/runtime/terminal/adoption/adopt-terminal-orphans-from-inventory.ts @@ -4,7 +4,7 @@ import { spawnSurfaceClaimSequence, SURFACE_CLAIM_WITHOUT_STANDING } from '../surface/pty-recorded-surface-topology' -import { resolveStructuredWorkerAuthority } from '../../structured-worker-authority' +import { resolveStructuredWorkerAuthority } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' import type { RuntimeLeafRecord } from '../records/runtime-terminal-state-records' import { OrcaRuntimeWithSubscribeToTerminalResize } from '../layout/terminal-resize-listeners' import type { @@ -12,7 +12,7 @@ import type { RuntimeTerminalOrphanAdoptionRequest, RuntimeTerminalOrphanAdoptionResult } from '../../../../shared/runtime-types' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { PtyControllerInventory } from '../../runtime-pty-controller-contract' import { resolveTerminalSessionWorktreeId } from '../../workspaces/catalog/runtime-worktree-path-identity' import { getLocalProjectWorktreeGitOptions } from '../../../workspaces/execution-host/project-runtime-git-options' diff --git a/src/main/runtime/terminal/adoption/runtime-terminal-orphan-adoption-plan.ts b/src/main/runtime/terminal/adoption/runtime-terminal-orphan-adoption-plan.ts index 2bb5c31f39e..394bd8cb171 100644 --- a/src/main/runtime/terminal/adoption/runtime-terminal-orphan-adoption-plan.ts +++ b/src/main/runtime/terminal/adoption/runtime-terminal-orphan-adoption-plan.ts @@ -5,7 +5,7 @@ import { makePaneKey } from '../../../../shared/workspace-layout/stable-pane-id' import { hasClosedTerminalTabRecord } from '../../../../shared/workspace-layout/closed-terminal-tab-tombstones' import type { WorkspaceSessionState } from '../../../../shared/workspace-session/workspace-session-state-types' import { terminalOrphanExecutionOwnersEqual } from './terminal-orphan-owner' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { PtyControllerInventory } from '../../runtime-pty-controller-contract' import { buildRuntimeTerminalOrphanSession } from './runtime-terminal-orphan-session-adoption' import { validateRuntimeTerminalOrphanTopology } from './runtime-terminal-orphan-topology-validation' diff --git a/src/main/runtime/terminal/driver/terminal-driver-resources.ts b/src/main/runtime/terminal/driver/terminal-driver-resources.ts index 0ca709455c2..9c420929c34 100644 --- a/src/main/runtime/terminal/driver/terminal-driver-resources.ts +++ b/src/main/runtime/terminal/driver/terminal-driver-resources.ts @@ -7,7 +7,7 @@ import { import type { ResolvedWorktree } from '../../workspaces/catalog/runtime-worktree-path-identity' import type { ExecutionHostId } from '../../../../shared/execution-host' import type { WorkspaceSessionState } from '../../../../shared/workspace-session/workspace-session-state-types' -import type { RuntimeAccountController } from '../../runtime-account-controller' +import type { RuntimeAccountController } from '../../agent-session/environment/runtime-account-controller' import type { BrowserNetworkExecutionHost } from '../../../../shared/browser/client-hosting/browser-network-execution-host' import type { BrowserWindow } from 'electron' import type { BrowserSessionTabSelectionOptions } from '../../browser-tab-create-publication' diff --git a/src/main/runtime/terminal/launch/agent-launch-scope-runtime.ts b/src/main/runtime/terminal/launch/agent-launch-scope-runtime.ts index 5415ba44a4b..0cce87b076d 100644 --- a/src/main/runtime/terminal/launch/agent-launch-scope-runtime.ts +++ b/src/main/runtime/terminal/launch/agent-launch-scope-runtime.ts @@ -25,7 +25,7 @@ import { agentLaunchRepairRefusal, PROJECT_RUNTIME_REPAIR_REQUIRED_CODE } from '../../../../shared/project-runtime-repair-message' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' type AgentLaunchRuntimeStore = Omit & Pick diff --git a/src/main/runtime/terminal/launch/mobile-terminal-chat-fork-create.ts b/src/main/runtime/terminal/launch/mobile-terminal-chat-fork-create.ts index 6e3bac0f7e9..42021f9c2cb 100644 --- a/src/main/runtime/terminal/launch/mobile-terminal-chat-fork-create.ts +++ b/src/main/runtime/terminal/launch/mobile-terminal-chat-fork-create.ts @@ -3,7 +3,7 @@ import { type MobileTerminalCreateOptions, type OwnedMobileTerminalCreateOptions } from './mobile-terminal-create' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { RuntimeMobileSessionCreateTerminalResult } from '../../../../shared/runtime-types' import { prepareStructuredChatCliFork, diff --git a/src/main/runtime/terminal/launch/mobile-terminal-renderer-create.ts b/src/main/runtime/terminal/launch/mobile-terminal-renderer-create.ts index 127d9dfed23..55fc6ae71c3 100644 --- a/src/main/runtime/terminal/launch/mobile-terminal-renderer-create.ts +++ b/src/main/runtime/terminal/launch/mobile-terminal-renderer-create.ts @@ -1,7 +1,7 @@ import { applyRemoteViewerLaunchEnv } from './remote-viewer-launch-env' import type { MobileTerminalCommandOptions, MobileTerminalCommand } from './mobile-terminal-startup' import type { RuntimePtyWorktreeRecord } from '../records/runtime-terminal-state-records' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import { OrcaRuntimeWithMobileChatForkCreate } from './mobile-terminal-chat-fork-create' import type { RuntimeMobileSessionCreateTerminalResult } from '../../../../shared/runtime-types' import { randomUUID } from 'node:crypto' diff --git a/src/main/runtime/terminal/launch/mobile-terminal-shell-refusal.ts b/src/main/runtime/terminal/launch/mobile-terminal-shell-refusal.ts index e7031a51c4d..9fa724f5fac 100644 --- a/src/main/runtime/terminal/launch/mobile-terminal-shell-refusal.ts +++ b/src/main/runtime/terminal/launch/mobile-terminal-shell-refusal.ts @@ -3,7 +3,7 @@ import { type LaunchScopeRuntimeStore } from '../../../workspaces/execution-host/local-project-runtime-resolution' import { terminalShellOverrideRefusal } from './terminal-shell-override-host-support' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' /** Throws before any surface exists when this host cannot run the requested shell. */ export function assertMobileTerminalShellSupported( diff --git a/src/main/runtime/terminal/launch/mobile-terminal-startup.ts b/src/main/runtime/terminal/launch/mobile-terminal-startup.ts index 633d6b5b9bd..c22235ecf6a 100644 --- a/src/main/runtime/terminal/launch/mobile-terminal-startup.ts +++ b/src/main/runtime/terminal/launch/mobile-terminal-startup.ts @@ -1,5 +1,5 @@ import { OrcaRuntimeWithRunCreateMobileSessionTerminal } from './mobile-terminal-renderer-create' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { WorktreeStartupLaunch } from '../../../../shared/worktree/launch-types' import type { TuiAgent } from '../../../../shared/agent-launch/catalog/tui-agent' import { diff --git a/src/main/runtime/terminal/launch/runtime-agent-terminal-startup.ts b/src/main/runtime/terminal/launch/runtime-agent-terminal-startup.ts index 8a90070c50f..de5ab366274 100644 --- a/src/main/runtime/terminal/launch/runtime-agent-terminal-startup.ts +++ b/src/main/runtime/terminal/launch/runtime-agent-terminal-startup.ts @@ -1,4 +1,4 @@ -import type { RuntimeAccountController } from '../../runtime-account-controller' +import type { RuntimeAccountController } from '../../agent-session/environment/runtime-account-controller' import { applyRemoteViewerLaunchEnv } from './remote-viewer-launch-env' import type { SessionOptionValue } from '../../../../shared/native-chat/input/native-chat-session-options' import type { TuiAgent } from '../../../../shared/agent-launch/catalog/tui-agent' @@ -9,7 +9,7 @@ import { type AgentLaunchRuntime } from '../../../../shared/agent-launch/startup/agent-launch-runtime' import type { RuntimeStore } from '../../runtime-store-contract' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { TerminalCreateOptions } from '../../runtime-terminal-contracts' import { resolveBareAgentLaunchCommand } from './runtime-agent-launch-resolution' import { diff --git a/src/main/runtime/terminal/launch/terminal-create-deduplication.ts b/src/main/runtime/terminal/launch/terminal-create-deduplication.ts index 055f05a94ba..b38d7c214de 100644 --- a/src/main/runtime/terminal/launch/terminal-create-deduplication.ts +++ b/src/main/runtime/terminal/launch/terminal-create-deduplication.ts @@ -4,7 +4,7 @@ import type { TerminalWorkspaceCreationEvidence } from './terminal-workspace-sco import type { FolderWorkspace } from '../../../../shared/folder-workspaces/folder-workspace-types' import type { Repo } from '../../../../shared/repo-types' -import { OrcaRuntimeWithCreateAgentSession } from '../../orca-runtime-create-agent-session' +import { OrcaRuntimeWithCreateAgentSession } from '../../session-construction/agent-session/orca-runtime-create-agent-session' import type { RuntimeTerminalCreate } from '../../../../shared/runtime-types' import { WORKTREE_CREATE_RESULT_TTL_MS } from '../../orca-runtime-core' import { deriveRemoteRuntimeTerminalCreateHandle } from '../identity/remote-runtime-terminal-create-identity' @@ -23,7 +23,7 @@ import { } from '../../../../shared/execution-host' import { resolveWorktreeLaunchHost } from '../../workspaces/catalog/worktree-launch-host-repo' import type { TuiAgent } from '../../../../shared/agent-launch/catalog/tui-agent' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' export abstract class OrcaRuntimeWithTerminalCreateDeduplication extends OrcaRuntimeWithCreateAgentSession { /** A create's scope: its `wslUserAct` lets the folder check start a stopped WSL distro (E9). */ diff --git a/src/main/runtime/terminal/launch/terminal-create-reveal.ts b/src/main/runtime/terminal/launch/terminal-create-reveal.ts index 4e8a669e46f..a478793aa82 100644 --- a/src/main/runtime/terminal/launch/terminal-create-reveal.ts +++ b/src/main/runtime/terminal/launch/terminal-create-reveal.ts @@ -2,7 +2,7 @@ import type { TerminalCreateOptions } from '../../runtime-terminal-contracts' import type { RuntimeTerminalCreate } from '../../../../shared/runtime-terminal-create-contract' import { createTerminalRevealWarning, ownerSurfacing } from '../../orca-runtime-core' import type { RuntimeNotifier } from '../../runtime-notifier-contract' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { RuntimeTerminalPresentation } from '../../../../shared/runtime-types' function terminalRevealViewerOptions( diff --git a/src/main/runtime/terminal/launch/terminal-workspace-scope.ts b/src/main/runtime/terminal/launch/terminal-workspace-scope.ts index 2f3c99664ac..47e9907955c 100644 --- a/src/main/runtime/terminal/launch/terminal-workspace-scope.ts +++ b/src/main/runtime/terminal/launch/terminal-workspace-scope.ts @@ -25,7 +25,7 @@ import type { FolderWorkspace } from '../../../../shared/folder-workspaces/folde import type { ResolvedWorktree } from '../../workspaces/catalog/runtime-worktree-path-identity' import type { Worktree } from '../../../../shared/worktree/types' import { folderWorkspaceToWorktree } from '../../../../shared/folder-workspaces/folder-workspace-worktree' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import { resolveTerminalStartupCwd } from '../../../../shared/shell/launch/terminal-startup-cwd' import { diff --git a/src/main/runtime/terminal/layout/terminal-resize-listeners.ts b/src/main/runtime/terminal/layout/terminal-resize-listeners.ts index 6f6678aff13..10217bfe22a 100644 --- a/src/main/runtime/terminal/layout/terminal-resize-listeners.ts +++ b/src/main/runtime/terminal/layout/terminal-resize-listeners.ts @@ -1,4 +1,4 @@ -import { sessionIdFromStructuredWorkerIncarnation } from '../../structured-worker-identity' +import { sessionIdFromStructuredWorkerIncarnation } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-identity' import { observeStructuredWorker } from '../../rpc/methods/orchestration-structured-worker-lifecycle' import { OrcaRuntimeWithApplyMobileDisplayMode } from './terminal-display-mode' import { addListenerToMap } from '../../orca-runtime-core' diff --git a/src/main/runtime/terminal/output/terminal-orchestration-authority.ts b/src/main/runtime/terminal/output/terminal-orchestration-authority.ts index 34eea3af492..4f9eabe7131 100644 --- a/src/main/runtime/terminal/output/terminal-orchestration-authority.ts +++ b/src/main/runtime/terminal/output/terminal-orchestration-authority.ts @@ -22,7 +22,7 @@ import { readAgentOrchestrationProjectionRecords, readCapturedOrchestrationFleetAgentStatusSnapshot } from '../../orchestration-fleet-agent-status-snapshot' -import { resolveStructuredWorkerAuthority } from '../../structured-worker-authority' +import { resolveStructuredWorkerAuthority } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' import { matchesProcessIncarnation } from '../../orchestration/worker-terminal-process-liveness' import { claimIdleShellPrompt } from '../input/idle-shell-prompt-claim' diff --git a/src/main/runtime/terminal/query/pty-terminal-summary.ts b/src/main/runtime/terminal/query/pty-terminal-summary.ts index 15538e04082..f004fff02a5 100644 --- a/src/main/runtime/terminal/query/pty-terminal-summary.ts +++ b/src/main/runtime/terminal/query/pty-terminal-summary.ts @@ -24,7 +24,7 @@ import { import type { PtyIncarnationHandleRecord } from '../../orca-runtime-core' import type { TerminalHandleRecord } from '../../runtime-terminal-contracts' import { readTerminalTail } from '../output/tail/terminal-tail-read' -import { structuredWorkerTerminalRefusal } from '../../structured-worker-terminal-refusal' +import { structuredWorkerTerminalRefusal } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-terminal-refusal' import { ORCA_LAYOUT_OWNER_IS_MAIN } from '../../../../shared/layout-owner-switch' export abstract class OrcaRuntimeWithBuildPtyTerminalSummary extends OrcaRuntimeWithMailboxTerminalIdentity { diff --git a/src/main/runtime/terminal/query/terminal-identity-projection-inputs.ts b/src/main/runtime/terminal/query/terminal-identity-projection-inputs.ts index 5a4788178dc..c7c1cb8ed6e 100644 --- a/src/main/runtime/terminal/query/terminal-identity-projection-inputs.ts +++ b/src/main/runtime/terminal/query/terminal-identity-projection-inputs.ts @@ -1,6 +1,6 @@ import type { DispatchCreator } from '../../orchestration/db/dispatch-depth' import type { AgentSessionRecordReader } from '../../orchestration/structured-session-lineage' -import { captureAgentSessionRecordInputs } from '../../structured-worker-authority' +import { captureAgentSessionRecordInputs } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' /** Raw projection captures share the owning identity generation, including successful nulls. */ export function createTerminalIdentityProjectionInputs() { diff --git a/src/main/runtime/terminal/query/terminal-identity-read-context.ts b/src/main/runtime/terminal/query/terminal-identity-read-context.ts index 75a52d2a5f6..c2f9f359e63 100644 --- a/src/main/runtime/terminal/query/terminal-identity-read-context.ts +++ b/src/main/runtime/terminal/query/terminal-identity-read-context.ts @@ -5,7 +5,7 @@ import { captureStructuredWorkerReadInputs, createStructuredWorkerReadContext, type StructuredWorkerReadContext -} from '../../structured-worker-authority' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' import { parsePaneKey } from '../../../../shared/workspace-layout/stable-pane-id' import type { OrchestrationCompatibilitySshTerminal, diff --git a/src/main/runtime/terminal/recovery/resolve-terminal-pane.ts b/src/main/runtime/terminal/recovery/resolve-terminal-pane.ts index 17f078cc5af..555201acdb8 100644 --- a/src/main/runtime/terminal/recovery/resolve-terminal-pane.ts +++ b/src/main/runtime/terminal/recovery/resolve-terminal-pane.ts @@ -26,7 +26,7 @@ import { readTerminalTail } from '../output/tail/terminal-tail-read' import { getTerminalState } from '../wait/terminal-wait-results' -import { readStructuredWorkerTerminal } from '../../structured-worker-terminal-read' +import { readStructuredWorkerTerminal } from '../../orchestration/terminal-authority/structured-sessions/structured-worker-terminal-read' import { ORCA_LAYOUT_OWNER_IS_MAIN } from '../../../../shared/layout-owner-switch' export abstract class OrcaRuntimeWithResolveTerminalPane extends OrcaRuntimeWithRestoredHandlePaneStart { diff --git a/src/main/runtime/workspaces/managed-workspace-operations.ts b/src/main/runtime/workspaces/managed-workspace-operations.ts index 28d324ab8f1..d6e3a4226a6 100644 --- a/src/main/runtime/workspaces/managed-workspace-operations.ts +++ b/src/main/runtime/workspaces/managed-workspace-operations.ts @@ -13,7 +13,7 @@ import { stopMissingWorktreeTerminals } from './removal/missing-worktree-termina import type { WorktreeVisibilitySourceMatcher } from '../../../shared/worktree/visibility-sources' import type { RuntimeStore } from '../runtime-store-contract' import { getWorkspaceAttachments } from '../../../shared/workspace-attachments/workspace-attachments' -import type { TerminalWorkspaceLaunchScope } from '../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { WorkspacePortHostKillRequest, WorkspacePortHostScanResult, diff --git a/src/main/runtime/workspaces/persisted-surfaces/automation-operations.ts b/src/main/runtime/workspaces/persisted-surfaces/automation-operations.ts index 357c4e30fe6..b34ce4427fb 100644 --- a/src/main/runtime/workspaces/persisted-surfaces/automation-operations.ts +++ b/src/main/runtime/workspaces/persisted-surfaces/automation-operations.ts @@ -8,7 +8,7 @@ import { } from '../../orchestration/db/messages/helper-mailbox-hand-back' import { existsSync } from 'node:fs' import type { LegacyWorkerTerminalRecoveryPlan } from '../../orchestration/orchestration-legacy-worker-terminal-recovery' -import type { LegacyWorkerTerminalRecoveryResult } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { LegacyWorkerTerminalRecoveryResult } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' export abstract class OrcaRuntimeWithAutomationOperations extends OrcaRuntimeWithAutomationApiOperations { abstract ensureOrchestrationFederationRelay(runId?: string): void diff --git a/src/main/runtime/workspaces/persisted-surfaces/has-exact-persisted-terminal-surface-identity.ts b/src/main/runtime/workspaces/persisted-surfaces/has-exact-persisted-terminal-surface-identity.ts index d6b1f5aa38e..b55c1bd8581 100644 --- a/src/main/runtime/workspaces/persisted-surfaces/has-exact-persisted-terminal-surface-identity.ts +++ b/src/main/runtime/workspaces/persisted-surfaces/has-exact-persisted-terminal-surface-identity.ts @@ -15,9 +15,8 @@ import type { LegacyWorkerTerminalRecoveryPlan } from '../../orchestration/orche import { retireTerminalSurfacesFromSnapshot } from '../../terminal/surface/mobile-session-terminal-retirement' import type { LegacyWorkerRecoveryCandidate, - LegacyWorkerRecoveryInventory, TerminalWorkspaceLaunchScope -} from '../../runtime-legacy-worker-terminal-recovery-types' +} from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import { getLatestPtyTitle } from '../process-listing/runtime-worktree-status-projection' import type { AutomationService } from '../../../automations/service' import type { ArtifactCloudService } from '../../../artifacts/artifact-cloud-service' @@ -206,7 +205,7 @@ export abstract class OrcaRuntimeWithHasExactPersistedTerminalSurfaceIdentity ex protected async adoptLegacyWorkerTerminal( candidate: LegacyWorkerRecoveryCandidate, workspace: TerminalWorkspaceLaunchScope, - inventory: LegacyWorkerRecoveryInventory, + inventory: PtyControllerInventory, activation: { activeTabId?: string; activeGroupId?: string } ): Promise { await this.adoptTerminalOrphansFromInventoryUnderMutation( diff --git a/src/main/runtime/workspaces/process-listing/workspace-process-listing.ts b/src/main/runtime/workspaces/process-listing/workspace-process-listing.ts index 3ae65eeab78..a0181bdb011 100644 --- a/src/main/runtime/workspaces/process-listing/workspace-process-listing.ts +++ b/src/main/runtime/workspaces/process-listing/workspace-process-listing.ts @@ -1,7 +1,7 @@ import { getRepoHostIdentityForParts } from '../../../../shared/repo-host-identity' import { createRepoRowExecutionHostLookup } from '../../../../shared/worktree-execution-host-resolution' import { resolveWorktreeHostRouting } from '../catalog/worktree-launch-host-repo' -import { resolveHostStructuredAgentLaunchEnvironment } from '../../structured-agent-launch-support' +import { resolveHostStructuredAgentLaunchEnvironment } from '../../agent-session/launch/structured-agent-launch-support' import { getStructuredAgentSessionHost } from '../../../native-chat/agent-session-wire/structured-agent-session-registry' import { collectRuntimeWorktreeAgentSources } from './runtime-worktree-agent-sources' import { OrcaRuntimeWithWorktreePsDependencies } from '../workspace-process-listing-dependencies' @@ -37,7 +37,7 @@ import type { AgentSessionRecordStore } from '../../agent-session/records/agent- import { maybeAutoRenameWorkspaceOnFirstStructuredTurn } from '../../../agent-hooks/first-work-structured-session-rename' import { firstWorkRenameDeps } from '../../../agent-hooks/first-work-rename-runtime' import { createStructuredChatNamingHandler } from '../../../native-chat/structured-chat-naming' -import { structuredChatNamingDeps } from '../../structured-chat-naming-runtime' +import { structuredChatNamingDeps } from '../../agent-session/naming/structured-chat-naming-runtime' import { getProfileUserDataPath } from '../../../orca-profiles/profile-storage-paths' import { LOCAL_EXECUTION_HOST_ID } from '../../../../shared/execution-host' import { chatWorkerTurnStopReporter } from '../../orchestration/chat-worker-turn-stops' @@ -45,7 +45,7 @@ import { buildWorktreeListingPage } from '../catalog/worktree-listing-host-scope import { structuredWorkerOpenTaskTitle, structuredWorkerOwesWork -} from '../../structured-worker-custody' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-custody' import { preModeChatGetsFullAccess } from '../../../../shared/agent-launch/permissions/agent-chat-permission-mode' import { isTuiAgent } from '../../../../shared/agent-launch/catalog/tui-agent-config' import { claudeCliFlagSupport } from '../../../claude/claude-cli-flag-support' diff --git a/src/main/runtime/workspaces/removal/structured-session-worktree-teardown.ts b/src/main/runtime/workspaces/removal/structured-session-worktree-teardown.ts index ed227592621..7fe81e1be82 100644 --- a/src/main/runtime/workspaces/removal/structured-session-worktree-teardown.ts +++ b/src/main/runtime/workspaces/removal/structured-session-worktree-teardown.ts @@ -12,7 +12,7 @@ import { getStructuredAgentSessionHost } from '../../../native-chat/agent-sessio import { observeStructuredSession, structuredSessionCloseSettled -} from '../../structured-worker-authority' +} from '../../orchestration/terminal-authority/structured-sessions/structured-worker-authority' import { closeStructuredAgentSessionChild, captureStructuredSessionSurface, diff --git a/src/main/runtime/workspaces/startup/workspace-activation.ts b/src/main/runtime/workspaces/startup/workspace-activation.ts index 0e986482a0f..4db883ab825 100644 --- a/src/main/runtime/workspaces/startup/workspace-activation.ts +++ b/src/main/runtime/workspaces/startup/workspace-activation.ts @@ -8,7 +8,7 @@ import { import { getRepoExecutionHostId } from '../../../../shared/execution-host' import { phoneWakeReport } from '../../../../shared/workspace-sleep' import type { Repo } from '../../../../shared/repo-types' -import type { TerminalWorkspaceLaunchScope } from '../../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { TuiAgent } from '../../../../shared/agent-launch/catalog/tui-agent' import type { RuntimeTerminalWait } from '../../../../shared/runtime-terminal-contracts' import { diff --git a/src/main/runtime/workspaces/workspace-process-listing-dependencies.ts b/src/main/runtime/workspaces/workspace-process-listing-dependencies.ts index b8d1d72a5b5..ef96e3271ae 100644 --- a/src/main/runtime/workspaces/workspace-process-listing-dependencies.ts +++ b/src/main/runtime/workspaces/workspace-process-listing-dependencies.ts @@ -1,6 +1,6 @@ -import { ensureStructuredAgentModelCatalogOwner } from '../structured-agent-model-catalog-wiring' -import type { StructuredAgentModelCatalogDeps } from '../structured-agent-runtime-registration-types' -import { resolveStructuredCodexAccountKind } from '../structured-agent-account-home' +import { ensureStructuredAgentModelCatalogOwner } from '../agent-session/model-catalog/structured-agent-model-catalog-wiring' +import type { StructuredAgentModelCatalogDeps } from '../agent-session/installation/structured-agent-runtime-registration-types' +import { resolveStructuredCodexAccountKind } from '../agent-session/environment/structured-agent-account-home' import { nativeChatShellEnvironmentPolicy } from '../../../shared/native-chat/native-chat-shell-environment' import { claudeStructuredAuthPolicyForSettings } from '../../claude-accounts/claude-structured-auth-policy' import { resolveStructuredAgentCommand } from '../../native-chat/structured-agent-command-resolution' @@ -12,7 +12,7 @@ import type { GlobalSettings } from '../../../shared/global-settings-types' import type { StructuredAgentId } from '../../../shared/agent-session/lifecycle/agent-session-provider-handle' import type { RuntimeWorkspaceCatalog } from './catalog/workspace-catalog' import type { OrcaRuntimeWithRefreshPtyWorktreeRecordsFromController } from '../terminal/lifecycle/pty-worktree-refresh' -import type { RuntimeAccountController } from '../runtime-account-controller' +import type { RuntimeAccountController } from '../agent-session/environment/runtime-account-controller' import type { OrcaRuntimeWithPruneMobileSessionTabGroupLayout } from '../session-lifecycle/projection/prune-mobile-session-tab-group-layout' import type { OrcaRuntimeWithGetStructuredAgentSessionCreateSupport } from '../session-tabs/structured-session-create-support' import type { OrcaRuntimeWithGetPtyRecordForPaneKey } from '../orchestration/terminal-pane-mail-routing' diff --git a/src/main/runtime/workspaces/workspace-removal-target.ts b/src/main/runtime/workspaces/workspace-removal-target.ts index cf7b2b3af56..69092082c89 100644 --- a/src/main/runtime/workspaces/workspace-removal-target.ts +++ b/src/main/runtime/workspaces/workspace-removal-target.ts @@ -26,7 +26,7 @@ import type { RuntimeTerminalRename, RuntimeTerminalSetPaneTitle } from '../../../shared/runtime-types' -import type { TerminalWorkspaceLaunchScope } from '../runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { TerminalCreateOptions } from '../runtime-terminal-contracts' import { LOCAL_EXECUTION_HOST_ID, diff --git a/src/main/runtime/wsl-host-agent-launch-paths.test.ts b/src/main/runtime/wsl-host-agent-launch-paths.test.ts index f91b8989ef7..022b4d0074d 100644 --- a/src/main/runtime/wsl-host-agent-launch-paths.test.ts +++ b/src/main/runtime/wsl-host-agent-launch-paths.test.ts @@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { _setGuestWindowsDriveMountsForTests } from '../ipc/wsl-guest-windows-drive-path' import { OrcaRuntimeService } from './orca-runtime' import { buildMobileTerminalChatFork } from './terminal/launch/mobile-terminal-chat-fork' -import type { TerminalWorkspaceLaunchScope } from './runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from './orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import type { MobileTerminalCommand } from './terminal/launch/mobile-terminal-startup' import type { SleepingAgentLaunchConfig } from '../../shared/agent-session/lifecycle/agent-session-resume' import { LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host' diff --git a/src/main/startup/main-process-account-services.ts b/src/main/startup/main-process-account-services.ts index 78094d3b84d..36ebdd28c16 100644 --- a/src/main/startup/main-process-account-services.ts +++ b/src/main/startup/main-process-account-services.ts @@ -14,7 +14,7 @@ import { import { agentHookServer } from '../agent-hooks/server' import { resolveHostCodexSessionSourceHome } from '../codex/history/rollouts/codex-session-source-home' import { browserManager } from '../browser/browser-manager' -import { prewarmStructuredAgentModelCatalogs } from '../runtime/structured-agent-model-catalog-wiring' +import { prewarmStructuredAgentModelCatalogs } from '../runtime/agent-session/model-catalog/structured-agent-model-catalog-wiring' import { mainProcessState as state } from './main-process-state' // Settings that change which account or binary a new chat's agent runs under. diff --git a/src/main/startup/main-process-runtime-service.ts b/src/main/startup/main-process-runtime-service.ts index 5056c7ecd66..46a1a059149 100644 --- a/src/main/startup/main-process-runtime-service.ts +++ b/src/main/startup/main-process-runtime-service.ts @@ -32,7 +32,7 @@ import { codexStructuredLaunchHomeResolvers, prepareCodexRuntimeHomeForLaunch } from './codex-launch-preparation' -import { resolveHostAgentBaseEnvironment } from '../runtime/structured-agent-shell-environment' +import { resolveHostAgentBaseEnvironment } from '../runtime/agent-session/environment/structured-agent-shell-environment' import type { RuntimeDesktopWindowStatus } from '../../shared/runtime-types' import { ArtifactCloudService } from '../artifacts/artifact-cloud-service' import { SkillCloudService } from '../skills/skill-cloud-service' diff --git a/src/main/startup/main-window-core-services.ts b/src/main/startup/main-window-core-services.ts index 9b8a81c780f..b40e396dbdb 100644 --- a/src/main/startup/main-window-core-services.ts +++ b/src/main/startup/main-window-core-services.ts @@ -15,7 +15,7 @@ import { handlePtyExit } from './main-process-pty-startup' import { prepareCodexRuntimeHomeForLaunch } from './codex-launch-preparation' -import { resolveHostAgentBaseEnvironment } from '../runtime/structured-agent-shell-environment' +import { resolveHostAgentBaseEnvironment } from '../runtime/agent-session/environment/structured-agent-shell-environment' import { prepareCodexPinnedLaunchHome, prepareCodexSessionResumeForLaunch diff --git a/src/main/workspaces/execution-host/local-project-runtime-resolution.ts b/src/main/workspaces/execution-host/local-project-runtime-resolution.ts index 3647ff35dc0..2f356d4d841 100644 --- a/src/main/workspaces/execution-host/local-project-runtime-resolution.ts +++ b/src/main/workspaces/execution-host/local-project-runtime-resolution.ts @@ -9,7 +9,7 @@ import { resolveQualifiedFolderWorkspace } from '../../../shared/folder-workspaces/folder-workspace-execution-host' import { parseWorkspaceKey } from '../../../shared/workspace-scope' -import type { TerminalWorkspaceLaunchScope } from '../../runtime/runtime-legacy-worker-terminal-recovery-types' +import type { TerminalWorkspaceLaunchScope } from '../../runtime/orchestration/terminal-authority/structured-sessions/runtime-legacy-worker-terminal-recovery-types' import { getWorkspaceRuntimePreference, resolveProjectExecutionRuntime, diff --git a/src/renderer/src/runtime/provider-account-observation.test-fixture.ts b/src/renderer/src/runtime/provider-account-observation.test-fixture.ts index 3e71f43b099..aaeeb0305cf 100644 --- a/src/renderer/src/runtime/provider-account-observation.test-fixture.ts +++ b/src/renderer/src/runtime/provider-account-observation.test-fixture.ts @@ -9,7 +9,7 @@ afterEach(() => { import { RuntimeAccountController, type RuntimeAccountServices -} from '../../../main/runtime/runtime-account-controller' +} from '../../../main/runtime/agent-session/environment/runtime-account-controller' import { createEmptyRateLimitState } from '../../../shared/rate-limit-state-factory' import type { RateLimitState } from '../../../shared/rate-limit-types' import type { ProviderAccountsSnapshot } from './runtime-provider-accounts-client' diff --git a/tests/e2e/ai-vault-account-stream-test-fixture.ts b/tests/e2e/ai-vault-account-stream-test-fixture.ts index d61631d8987..8bd5108f8fe 100644 --- a/tests/e2e/ai-vault-account-stream-test-fixture.ts +++ b/tests/e2e/ai-vault-account-stream-test-fixture.ts @@ -6,7 +6,7 @@ import { installFakeAppEnvironment } from '../../config/scripts/test-runtime/env import { RuntimeAccountController, type RuntimeAccountServices -} from '../../src/main/runtime/runtime-account-controller' +} from '../../src/main/runtime/agent-session/environment/runtime-account-controller' import { RuntimeSubscriptionRegistry } from '../../src/main/runtime/runtime-subscription-registry' import { RateLimitService } from '../../src/main/rate-limits/service' import { getManagedDataAccountService } from '../../src/main/managed-data-accounts/service' diff --git a/tests/e2e/helpers/automation-chat-reopen-test-harness.ts b/tests/e2e/helpers/automation-chat-reopen-test-harness.ts index 42734ce7eed..3e2a9cb6ae2 100644 --- a/tests/e2e/helpers/automation-chat-reopen-test-harness.ts +++ b/tests/e2e/helpers/automation-chat-reopen-test-harness.ts @@ -5,7 +5,7 @@ import { authorityProfile, openAuthorityRuntime, root -} from '../../../src/main/runtime/structured-agent-session-tab-authority.test-support' +} from '../../../src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test-support' import { editPersistedTestAgentSessionStore } from '../../../src/main/runtime/agent-session/records/agent-session-record-store-test-harness' import { codexProviderHandle, diff --git a/tests/e2e/native-chat-startup-option-pickers.unit.test.ts b/tests/e2e/native-chat-startup-option-pickers.unit.test.ts index 65ca854b080..f8433db73c0 100644 --- a/tests/e2e/native-chat-startup-option-pickers.unit.test.ts +++ b/tests/e2e/native-chat-startup-option-pickers.unit.test.ts @@ -7,7 +7,7 @@ import { computeAgentSessionPayloadFingerprint } from '../../src/shared/agent-se import { claudeSessionIdForOrcaSession } from '../../src/main/claude/structured/claude-structured-session-id' import { hostTestMessage } from '../../src/main/native-chat/agent-session-wire/structured-agent-session-host-test-data' import { StructuredAgentSessionStartupAttempts } from '../../src/main/native-chat/agent-session-wire/structured-agent-session-startup-attempt' -import { createScriptedClaudeRuntime } from '../../src/main/runtime/structured-claude-scripted-runtime-test-support' +import { createScriptedClaudeRuntime } from '../../src/main/runtime/agent-session/installation/structured-claude-scripted-runtime-test-support' import { TooltipProvider } from '../../src/renderer/src/components/ui/tooltip' import { NativeChatSessionOptionPickers } from '../../src/renderer/src/components/native-chat/NativeChatSessionOptionPickers' import { structuredAgentSessionSeedCatalog } from '../../src/shared/agent-session/options/structured-agent-session-seed-catalog' diff --git a/tests/e2e/structured-agent-session-launch-continuation.unit.test.ts b/tests/e2e/structured-agent-session-launch-continuation.unit.test.ts index 6d0210e416e..49acfe0d4bf 100644 --- a/tests/e2e/structured-agent-session-launch-continuation.unit.test.ts +++ b/tests/e2e/structured-agent-session-launch-continuation.unit.test.ts @@ -18,7 +18,7 @@ import { OrcaRuntimeService } from '../../src/main/runtime/orca-runtime' import { prepareStructuredAgentSessionCreateForWorktree } from '../../src/main/runtime/rpc/methods/structured-agent-session-create' import type { StructuredAgentSessionHost } from '../../src/main/native-chat/agent-session-wire/structured-agent-session-host' import { setStructuredAgentSessionHost } from '../../src/main/native-chat/agent-session-wire/structured-agent-session-registry' -import { structuredAgentRuntimeMetadata } from '../../src/main/runtime/structured-agent-runtime-metadata' +import { structuredAgentRuntimeMetadata } from '../../src/main/runtime/agent-session/installation/structured-agent-runtime-metadata' import { claudeStructuredSpawnOptions } from '../../src/main/claude/structured/launch/claude-structured-spawn-options' import { openCodexThread } from '../../src/main/codex/structured/threads/codex-structured-thread-open' import { resolvedCodexMessageOptions } from '../../src/main/codex/structured/turns/codex-structured-message-options' diff --git a/tests/e2e/structured-chat-tab-lifetime-cost.unit.test.ts b/tests/e2e/structured-chat-tab-lifetime-cost.unit.test.ts index 9623e6a5828..96f48958f23 100644 --- a/tests/e2e/structured-chat-tab-lifetime-cost.unit.test.ts +++ b/tests/e2e/structured-chat-tab-lifetime-cost.unit.test.ts @@ -4,7 +4,7 @@ import type { RuntimeMobileSessionTabsSnapshot } from '../../src/shared/runtime- import { authorityProfile, openAuthorityRuntime -} from '../../src/main/runtime/structured-agent-session-tab-authority.test-support' +} from '../../src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test-support' import { chatTabCommandsSettled } from '../../src/main/runtime/orca-runtime-tests/session-layout-apply.test-fixture' import type { createChatTabLayoutQueue } from '../../src/main/runtime/agent-session-tab-layout-queue' import { fixture } from '../../src/main/persistence/loading-store/profile-state-delayed-authority-fixture' @@ -309,7 +309,7 @@ it('keeps failed advisory legacy insertion and retention while the actual inner layoutOwner.main = true const { store: profile, authority } = await fixture() const { root, B, holdStartup, rejectVisibility, savedIds } = - await import('../../src/main/runtime/structured-agent-session-tab-authority.test-support') + await import('../../src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test-support') const { installFakeAppEnvironment } = await import('../../config/scripts/test-runtime/environment/vitest-host-ports-setup') installFakeAppEnvironment({ getPath: () => root }) @@ -399,7 +399,7 @@ it.each([ await rig.runtime.restoreStructuredAgentSessionTabs() await chatTabCommandsSettled() const { root } = - await import('../../src/main/runtime/structured-agent-session-tab-authority.test-support') + await import('../../src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test-support') const { folderWorkspaceKey } = await import('../../src/shared/workspace-scope') const other = folderWorkspaceKey( rig.profile.createFolderWorkspace({ @@ -612,7 +612,7 @@ it.each([10, 100])( queueProbe.visits = 0 const { store: profile, authority } = await fixture() const { root, B, rejectVisibility } = - await import('../../src/main/runtime/structured-agent-session-tab-authority.test-support') + await import('../../src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test-support') const { installFakeAppEnvironment } = await import('../../config/scripts/test-runtime/environment/vitest-host-ports-setup') installFakeAppEnvironment({ getPath: () => root }) diff --git a/tests/e2e/structured-chat-tab-unavailable-host.unit.test.ts b/tests/e2e/structured-chat-tab-unavailable-host.unit.test.ts index d3cd76ac57f..da442a3b612 100644 --- a/tests/e2e/structured-chat-tab-unavailable-host.unit.test.ts +++ b/tests/e2e/structured-chat-tab-unavailable-host.unit.test.ts @@ -8,7 +8,7 @@ import { B, C, root -} from '../../src/main/runtime/structured-agent-session-tab-authority.test-support' +} from '../../src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test-support' import { closeTestJournalHostDatabases } from '../../src/main/native-chat/agent-session-journal/journal-host-database-test-support' import { journalDatabasePath } from '../../src/main/native-chat/agent-session-journal/journal-host-database' import { getStructuredAgentSessionHost } from '../../src/main/native-chat/agent-session-wire/structured-agent-session-registry' diff --git a/tests/e2e/structured-permission-report-publication.unit.test.ts b/tests/e2e/structured-permission-report-publication.unit.test.ts index 53071b9ac79..1313da6e856 100644 --- a/tests/e2e/structured-permission-report-publication.unit.test.ts +++ b/tests/e2e/structured-permission-report-publication.unit.test.ts @@ -3,8 +3,8 @@ import { fakeCodex, THREAD_ID as CODEX_THREAD_ID } from '../../src/main/codex/structured/session-lifecycle/codex-structured-session-adapter-fixture' -import { structuredAgentRuntimeRegistration } from '../../src/main/runtime/structured-agent-runtime-registrations' -import { createStructuredAgentEnvironmentResolvers } from '../../src/main/runtime/structured-agent-shell-environment' +import { structuredAgentRuntimeRegistration } from '../../src/main/runtime/agent-session/installation/structured-agent-runtime-registrations' +import { createStructuredAgentEnvironmentResolvers } from '../../src/main/runtime/agent-session/environment/structured-agent-shell-environment' import { act, renderHook, waitFor, cleanup } from '@testing-library/react' import { afterEach, beforeEach, expect, it, vi } from 'vitest' import type { SDKStatusMessage } from '@anthropic-ai/claude-agent-sdk' @@ -27,7 +27,7 @@ import { PROVIDER_SESSION_ID } from '../../src/main/claude/structured/claude-structured-session-test-support' import type { ClaudeStructuredSessionEvent } from '../../src/main/claude/structured/claude-structured-session-state' -import { structuredClaudeLifecycleEvent } from '../../src/main/runtime/structured-claude-runtime-adapter' +import { structuredClaudeLifecycleEvent } from '../../src/main/runtime/agent-session/installation/structured-claude-runtime-adapter' import { hostTestState, attachParams, diff --git a/tests/e2e/structured-session-workspace-authority.unit.test.ts b/tests/e2e/structured-session-workspace-authority.unit.test.ts index 7ef19273d6f..e3563c08a41 100644 --- a/tests/e2e/structured-session-workspace-authority.unit.test.ts +++ b/tests/e2e/structured-session-workspace-authority.unit.test.ts @@ -28,7 +28,7 @@ import { openAuthorityRuntime, savedIds, AuthorityRuntime -} from '../../src/main/runtime/structured-agent-session-tab-authority.test-support' +} from '../../src/main/runtime/agent-session/lifecycle/structured-agent-session-tab-authority.test-support' import { removalPtyProvider } from '../../src/main/runtime/rpc/worktree-rm-pty.test-fixture' import type { DurableProfileStateMutation } from '../../src/main/persistence/loading-store/store-runtime-state' import * as publication from '../../src/main/runtime/session-tabs/structured-session-tab-publication'