refactor: group Claude structured session lifecycle owners (#34449)

* refactor: group Claude structured session lifecycle owners

* refactor: consolidate retargeted Claude state type imports
This commit is contained in:
Neil
2026-10-27 09:17:40 -07:00
committed by GitHub
parent 7140e7fccd
commit 2a08315494
100 changed files with 254 additions and 253 deletions
@@ -14,13 +14,13 @@ import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adap
import type {
ClaudeLateDispatchOutcome,
ClaudeStructuredSessionAdapterDeps
} from './claude-structured-session-state'
} from './structured/claude-structured-session-state'
import {
fakeClaude,
identityFor,
PROVIDER_SESSION_ID,
claudeStartupSettled
PROVIDER_SESSION_ID
} from './claude-structured-session-test-support'
import { claudeStartupSettled } from './claude-structured-startup-settled-test-support'
type CapturedEvent =
| { at: number; kind: 'meta'; providerSessionId: string }
@@ -4,7 +4,10 @@ import type {
AgentChildWorkLiveObservation
} from '../../shared/agent-status-child-work-evidence'
import { taskText, taskUsageTotalTokens } from './claude-background-task-frames'
import type { ClaudeSession, ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type {
ClaudeSession,
ClaudeStructuredSessionEvent
} from './structured/claude-structured-session-state'
import { deriveToolInputPreview } from '../../shared/agent-hook-listener/tool-input-preview'
import {
claudeRecord,
@@ -7,7 +7,7 @@ import type {
} from '../../shared/agent-session-journal-types'
import { readAgentJournalTurn } from '../../shared/agent-session-turn-record'
import type { StructuredAgentSessionEventSink } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
PROVIDER_SESSION_ID,
adapterFor,
@@ -14,14 +14,14 @@ import { agentSessionFailureFact } from '../../shared/agent-session-failure'
import { ClaudeControlRequestError } from './claude-agent-sdk-control-requests'
import { claudeDispatchRejection } from './claude-structured-dispatch-content'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type { ClaudeLateDispatchOutcome } from './claude-structured-session-state'
import type { ClaudeLateDispatchOutcome } from './structured/claude-structured-session-state'
import {
fakeClaude,
identityFor,
PROVIDER_SESSION_ID,
type FakeConnection,
claudeStartupSettled
type FakeConnection
} from './claude-structured-session-test-support'
import { claudeStartupSettled } from './claude-structured-startup-settled-test-support'
type CapturedEvent =
| { kind: 'meta'; providerSessionId: string }
+2 -2
View File
@@ -12,9 +12,9 @@ import {
rejectClaudeDispatchWaiters,
releaseClaudeDispatchWaitersInDoubt
} from './claude-structured-dispatch'
import { readClaudeFrameString } from './claude-structured-init-proof'
import { readClaudeFrameString } from './structured/claude-structured-init-proof'
import type { ClaudeLateDispatchSettlement } from './claude-replay-turn-resolution'
import type { ClaudeSession, ClaudeStartedSend } from './claude-structured-session-state'
import type { ClaudeSession, ClaudeStartedSend } from './structured/claude-structured-session-state'
const UNSTARTED_VERDICT = {
cancelled: 'cancelled',
@@ -12,14 +12,14 @@ import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adap
import type {
ClaudeStructuredSessionAdapterDeps,
ClaudeStructuredSessionEvent
} from './claude-structured-session-state'
} from './structured/claude-structured-session-state'
import type { ClaudeStructuredLaunch } from './claude-structured-launch-resolution'
import {
fakeClaude,
identityFor,
PROVIDER_SESSION_ID,
claudeStartupSettled
PROVIDER_SESSION_ID
} from './claude-structured-session-test-support'
import { claudeStartupSettled } from './claude-structured-startup-settled-test-support'
import {
assistantText,
initFrame,
@@ -7,7 +7,7 @@ import type {
import type { ClaudeChildToolQueries } from './claude-child-tool-queries'
import type { ClaudeContextReportPart, ClaudeContextReportTarget } from './claude-context-facts'
import type { ClaudeJournalPrompts } from './claude-structured-journal-prompts'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import type { ClaudeCommandStart } from './claude-command-turn'
import type { AgentSessionDeltaCoalescerDeps } from '../native-chat/agent-session-wire/agent-session-delta-coalescer'
+1 -1
View File
@@ -17,7 +17,7 @@ import type { ClaudeCommandTurn } from './claude-command-turn'
import { createClaudeTurnOpener, type ClaudeTurnSource } from './claude-turn-opening'
import { refineClaudeQuotaTurnEnd } from './claude-terminal-failure'
import type { ClaudeUsageLimitEvidence } from './claude-usage-limits'
import type { ClaudeStartedSend } from './claude-structured-session-state'
import type { ClaudeStartedSend } from './structured/claude-structured-session-state'
export type ClaudeOpenTurnDeps = {
sink: StructuredAgentSessionEventSink
@@ -12,8 +12,8 @@ import type {
ClaudeDispatchWaiter,
ClaudeLateDispatchOutcome,
ClaudeSession
} from './claude-structured-session-state'
import { readClaudeFrameString } from './claude-structured-init-proof'
} from './structured/claude-structured-session-state'
import { readClaudeFrameString } from './structured/claude-structured-init-proof'
import { claudeDispatchContentKey } from './claude-structured-dispatch-content'
/** Settle provider-proven delivery independently of replay-row acceptance reconciliation. */
@@ -5,7 +5,7 @@ import {
claudeStoppedRequestEndWait,
settleClaudeTurnEndWaiters
} from './claude-request-end-wait'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
type InFlight = { translator: { currentTurnId: string | null }; dispatchWaiters: unknown[] }
+1 -1
View File
@@ -1,6 +1,6 @@
// Stop grace follows the provider request, including sends whose echo has not opened a turn yet.
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
/** Interrupt acknowledgement and request wind-down share this budget. */
export const CLAUDE_STOP_GRACE_MS = 3_000
+1 -1
View File
@@ -10,7 +10,7 @@ import { getClaudeProfileRouter } from '../claude-accounts/claude-profile-instal
import type { StructuredAgentSessionAdapter } from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import { resolveSessionFilePath } from '../native-chat/session-file-resolver'
import { splitTranscriptStreamLines } from '../native-chat/transcript-stream-lines'
import { claudeSessionIdForRewind } from './claude-structured-session-id'
import { claudeSessionIdForRewind } from './structured/claude-structured-session-id'
import { materializeClaudeRewindTranscript } from './claude-rewind-transcript'
type TranscriptPromptRow = { type: 'user'; uuid: string; parentUuid?: unknown }
+1 -1
View File
@@ -17,7 +17,7 @@ import {
} from './claude-stream-json-connection'
import { stopClaudeBackgroundTasks } from './claude-structured-control-actions'
import { CLAUDE_STRUCTURED_BASE_OPTIONS } from './claude-structured-launch-resolution'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
const FAKE_CLI = join(__dirname, '__fixtures__', 'claude-agent-sdk-scripted-cli.mjs')
const SESSION_ID = '5348c19f-6a54-4c2e-9c68-9c2b1a3d4e5f'
@@ -15,7 +15,7 @@ import {
} from './claude-stream-json-connection'
import { openAgentSessionJournal } from '../native-chat/agent-session-journal/journal-store-factory'
import { createDeferredStructuredAgentSessionEventSink } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import { claudeAuthDiagnostic } from './claude-structured-init-proof'
import { claudeAuthDiagnostic } from './structured/claude-structured-init-proof'
import { createClaudeJournalTranslator } from './claude-structured-journal-translation'
import { CLAUDE_STRUCTURED_BASE_OPTIONS } from './claude-structured-launch-resolution'
import { openTestJournalHostDatabase } from '../native-chat/agent-session-journal/journal-host-database-test-support'
@@ -19,7 +19,7 @@ import {
type ClaudeSession,
type ClaudeSessionExit,
type ClaudeStructuredSessionAdapterDeps
} from './claude-structured-session-state'
} from './structured/claude-structured-session-state'
import {
claudeAcquisitionCleanupError,
closeClaudePublishedSessionForDeps
@@ -1,13 +1,13 @@
import { describe, expect, it } from 'vitest'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
PROVIDER_SESSION_ID,
acquired,
adapterFor,
fakeClaude,
identityFor,
claudeOpened
identityFor
} from './claude-structured-session-test-support'
import { claudeOpened } from './claude-structured-startup-settled-test-support'
/** Claude Code 2.1.280 list_models fixture; default and opus[1m] resolve to the same model. */
const CATALOG = [
@@ -4,7 +4,7 @@ import type {
StructuredAgentSessionCommandRun
} from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import { dispatchClaudeTurn } from './claude-structured-dispatch'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
/** Open the command turn before sending; its result settles the waiter and closes that turn. */
export async function dispatchClaudeCommand(
@@ -11,7 +11,10 @@ import {
runClaudeControl
} from './claude-agent-sdk-control-requests'
import { buildClaudePromptReply, ClaudePromptRegistry } from './claude-structured-prompt-replies'
import type { ClaudeDispatchWaiter, ClaudeSession } from './claude-structured-session-state'
import type {
ClaudeDispatchWaiter,
ClaudeSession
} from './structured/claude-structured-session-state'
import { ClaudeChildWorkDecoder } from './claude-child-work-decoder'
import { sessionFor, userMessage } from './claude-structured-dispatch-test-support'
@@ -5,7 +5,7 @@ import { ClaudeControlRequestError } from './claude-stream-json-connection'
import { ClaudeControlRequestTimeoutError } from './claude-agent-sdk-control-requests'
import { settleCancelledClaudeDispatchWaiters } from './claude-structured-dispatch'
import type { ClaudeLateDispatchSettlement } from './claude-replay-turn-resolution'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
import { CLAUDE_STOP_GRACE_MS } from './claude-request-end-wait'
const INTERRUPT_CANCEL_QUEUED_CAPABILITY = 'interrupt_cancel_queued_v1'
@@ -1,12 +1,12 @@
import { vi, type Mock } from 'vitest'
import type { AgentJournalMessageItem } from '../../shared/agent-session-journal-types'
import { retireClaudeDispatchWaiters } from './claude-structured-dispatch'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
import { ClaudeBackgroundTaskTracker } from './claude-background-task-tracker'
import { ClaudeChildWorkDecoder } from './claude-child-work-decoder'
import { ClaudeSlashCommandCatalog } from './claude-slash-command-catalog'
import { createClaudeInitProof } from './claude-structured-init-proof'
import { claudeProviderHandleLink } from './claude-structured-owner-identity'
import { createClaudeInitProof } from './structured/claude-structured-init-proof'
import { claudeProviderHandleLink } from './structured/claude-structured-owner-identity'
export function sessionFor(send: Mock = vi.fn().mockResolvedValue(undefined)): ClaudeSession {
return {
@@ -1,4 +1,7 @@
import type { ClaudeDispatchWaiter, ClaudeSession } from './claude-structured-session-state'
import type {
ClaudeDispatchWaiter,
ClaudeSession
} from './structured/claude-structured-session-state'
const MAX_RETIRED_DISPATCH_WAITERS = 64
@@ -6,7 +6,7 @@ import { dispatchClaudeTurn } from './claude-structured-dispatch'
import { resolveClaudeReplayTurn } from './claude-replay-turn-resolution'
import { ClaudeDispatchContentError, readClaudeImage } from './claude-structured-dispatch-content'
import { claudeUnwrittenUserMessageError } from './claude-agent-sdk-user-message-queue'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
import {
childExited,
sessionFor,
@@ -8,7 +8,10 @@ import {
} from './claude-structured-dispatch-waiters'
import type { AgentJournalMessageItem } from '../../shared/agent-session-journal-types'
import type { AgentSessionDispatchOutcome } from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import type { ClaudeDispatchWaiter, ClaudeSession } from './claude-structured-session-state'
import type {
ClaudeDispatchWaiter,
ClaudeSession
} from './structured/claude-structured-session-state'
import type { ClaudeLateDispatchSettlement } from './claude-replay-turn-resolution'
import {
claudeDispatchContentKey,
@@ -21,18 +21,18 @@ import { structuredAgentSessionSendSelection } from '../../shared/structured-age
import { claudeAndCodexAgents } from '../native-chat/agent-session-wire/structured-agent-session-adapter-router-test-support'
import { composeCodexSessionOptionCatalog } from '../codex/codex-structured-model-catalog'
import { listedModels } from './claude-structured-model-catalog'
import {
ClaudeStructuredSessionAdapter,
type ClaudeStructuredSessionEvent
} from './claude-structured-session-adapter'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
PROVIDER_SESSION_ID,
fakeClaude,
identityFor,
recordingJournalSink,
recordingJournalSink
} from './claude-structured-session-test-support'
import {
claudeStartupSettled,
claudeOpened
} from './claude-structured-session-test-support'
} from './claude-structured-startup-settled-test-support'
const SESSION = 'session-1'
const ACCOUNT_HOME = '/accounts/claude'
@@ -1,8 +1,11 @@
import { describe, expect, it } from 'vitest'
import { setClaudeStructuredOption } from './claude-structured-options'
import { readClaudeSettingsEffort } from './claude-structured-session-options'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-adapter'
import type {
ClaudeSession,
ClaudeStructuredSessionEvent
} from './structured/claude-structured-session-state'
import { USER_MESSAGE, acquired, fakeClaude } from './claude-structured-session-test-support'
/** Verbatim from Claude Code 2.1.258's get_settings response. */
@@ -7,7 +7,7 @@ import type {
ClaudeSession,
ClaudeStructuredSessionAdapterDeps,
ClaudeStructuredSessionEvent
} from './claude-structured-session-state'
} from './structured/claude-structured-session-state'
type ClaudeEventDelivery = {
session: ClaudeSession | null
@@ -1,4 +1,4 @@
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
/** Provider observations only; requested choices and picker defaults cannot vouch for a run. */
export function claudeExecutionObservations(session: ClaudeSession): Record<string, string> {
@@ -1,6 +1,6 @@
import type { CanUseTool, OnUserDialog, PermissionResult } from '@anthropic-ai/claude-agent-sdk'
import type { ClaudePromptRegistry } from './claude-structured-prompt-replies'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
claudePermissionPresentation,
claudePermissionSubject
@@ -2,7 +2,7 @@ import { describe, expect, it, vi } from 'vitest'
import { AGENT_JOURNAL_THREAD_SCOPE } from '../../shared/agent-session-journal-types'
import type { StructuredAgentSessionSinkBarrier } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import { ClaudeJournalPrompts } from './claude-structured-journal-prompts'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
const PROMPT: Extract<ClaudeStructuredSessionEvent, { type: 'prompt' }> = {
type: 'prompt',
@@ -17,7 +17,7 @@ import {
claudeQuestionItems,
type ClaudeQuestionItem
} from './claude-structured-prompt-items'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
const ADMITTED = { accepted: true } as const
@@ -9,7 +9,7 @@ import type {
} from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import { readAgentJournalTurn } from '../../shared/agent-session-turn-record'
import { createClaudeJournalTranslator } from './claude-structured-journal-translation'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import { acquired, fakeClaude } from './claude-structured-session-test-support'
type Append = {
@@ -10,9 +10,9 @@ import { FLOATING_TERMINAL_WORKTREE_ID } from '../../shared/constants'
import {
CLAUDE_DEFAULT_SETTING_SOURCES,
CLAUDE_SESSION_STATE_EVENTS_ENV,
CLAUDE_STRUCTURED_BASE_OPTIONS,
claudeSessionIdForOrcaSession
CLAUDE_STRUCTURED_BASE_OPTIONS
} from './claude-structured-launch-resolution'
import { claudeSessionIdForOrcaSession } from './structured/claude-structured-session-id'
import { CLAUDE_THINKING_DISPLAY_FLAG, type ClaudeCliFlag } from './claude-cli-flag-support'
import { claudeProviderHandle } from '../../shared/agent-session-provider-handle-encoding'
@@ -31,14 +31,12 @@ import {
resolveClaudeStructuredLaunchHome
} from './claude-structured-launch-home'
import type { StructuredAgentLaunchPartResolver } from '../runtime/structured-agent-launch-composition'
import { claudeSessionIdForOrcaSession } from './claude-structured-session-id'
import { claudeSessionIdForOrcaSession } from './structured/claude-structured-session-id'
import {
pendingAgentSessionRewindFork,
type AgentSessionRewindFork
} from '../../shared/agent-session-rewind'
export { claudeSessionIdForOrcaSession }
export const CLAUDE_DEFAULT_SETTING_SOURCES = ['user', 'project', 'local'] as const
export const CLAUDE_SESSION_STATE_EVENTS_ENV = 'CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS'
@@ -10,7 +10,7 @@ import {
} from './claude-structured-session-test-support'
import { captureStructuredExecutionOptions } from '../native-chat/agent-session-wire/structured-agent-session-execution-options'
import { claudeAndCodexAgents } from '../native-chat/agent-session-wire/structured-agent-session-adapter-router-test-support'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import * as dispatchContent from './claude-structured-dispatch-content'
import { ClaudeControlRequestError } from './claude-stream-json-connection'
@@ -11,7 +11,7 @@ import {
} from '../native-chat/agent-session-wire/structured-agent-session-logger'
import { listedModels } from './claude-structured-model-catalog'
import { setClaudeStructuredOption } from './claude-structured-options'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
import {
isAbortSignalReason,
throwIfSignalAborted,
@@ -1,6 +1,6 @@
import { describe, expect, it } from 'vitest'
import { setClaudeStructuredOption } from './claude-structured-options'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
import {
PROVIDER_SESSION_ID,
USER_MESSAGE,
@@ -1,6 +1,6 @@
import { describe, expect, it } from 'vitest'
import { setClaudeStructuredOption } from './claude-structured-options'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
/** Verbatim row shapes from Claude Code 2.1.260's list_models response. */
const DEFAULT_ROW = { value: 'default', resolvedModel: 'claude-opus-5', displayName: 'Default' }
@@ -8,7 +8,7 @@ import { CLAUDE_SESSION_OPTION_CATALOG } from '../../shared/agent-session-option
import type { AgentSessionOptionsResult } from '../../shared/agent-session-wire'
import type { SessionOptionDescriptor } from '../../shared/native-chat/input/native-chat-session-options'
import { setClaudeStructuredOption } from './claude-structured-options'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
import { PROVIDER_SESSION_ID, acquired, fakeClaude } from './claude-structured-session-test-support'
/** Claude Code 2.1.260 list_models fixture; Haiku omits both effort keys. */
@@ -6,7 +6,7 @@ import { sessionFor } from './claude-structured-dispatch-test-support'
import { createClaudeJournalTranslator } from './claude-structured-journal-translation'
import { setClaudeStructuredOption } from './claude-structured-options'
import { adoptClaudeStructuredSpawnOptions } from './claude-structured-spawn-options'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
function ringSession(catalog: unknown[] = []) {
const session = sessionFor()
@@ -1,12 +1,12 @@
import { describe, expect, it, vi } from 'vitest'
import { setClaudeStructuredOption } from './claude-structured-options'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
import { ClaudeControlRequestTimeoutError } from './claude-agent-sdk-control-requests'
import { ClaudeBackgroundTaskTracker } from './claude-background-task-tracker'
import { ClaudeChildWorkDecoder } from './claude-child-work-decoder'
import { ClaudeSlashCommandCatalog } from './claude-slash-command-catalog'
import { createClaudeInitProof } from './claude-structured-init-proof'
import { claudeProviderHandleLink } from './claude-structured-owner-identity'
import { createClaudeInitProof } from './structured/claude-structured-init-proof'
import { claudeProviderHandleLink } from './structured/claude-structured-owner-identity'
import {
observeClaudeFastModeFacts,
readClaudeStructuredSessionOptions
+1 -1
View File
@@ -6,7 +6,7 @@ import {
readClaudeSettingsEffort,
readClaudeSettingsFastMode
} from './claude-structured-session-options'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
import type { StructuredAgentSessionAdapter } from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import { decodeStructuredAgentSessionOptionValue } from '../../shared/structured-agent-session-option-codec'
@@ -9,7 +9,7 @@ import type {
import { ClaudeJournalPrompts } from './claude-structured-journal-prompts'
import { claudeQuestionItems } from './claude-structured-prompt-items'
import type { ClaudePendingPrompt } from './claude-structured-prompt-replies'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
USER_MESSAGE,
acquired,
@@ -7,7 +7,7 @@ import type { StructuredAgentSessionAdapterStop } from '../native-chat/agent-ses
import { answerClaudePrompt, cancelClaudeTurn } from './claude-structured-control-actions'
import type { ClaudeLateDispatchSettlement } from './claude-replay-turn-resolution'
import { buildClaudePromptReply, claudePromptDismissal } from './claude-structured-prompt-replies'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
import type { ClaudePendingPrompt } from './claude-prompt-registry'
import { CLAUDE_STOP_GRACE_MS } from './claude-request-end-wait'
import type { PermissionResult } from '@anthropic-ai/claude-agent-sdk'
@@ -9,7 +9,7 @@ import type {
import { openAgentSessionJournal } from '../native-chat/agent-session-journal/journal-store-factory'
import { createDeferredStructuredAgentSessionEventSink } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import { createClaudeJournalTranslator } from './claude-structured-journal-translation'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import { openTestJournalHostDatabase } from '../native-chat/agent-session-journal/journal-host-database-test-support'
import { testEventSinkLogging } from '../native-chat/agent-session-wire/structured-agent-session-logger-test-support'
import { claudeProviderHandle } from '../../shared/agent-session-provider-handle-encoding'
@@ -3,7 +3,7 @@ import type { AgentJournalItemBody } from '../../shared/agent-session-journal-ty
import { agentJournalItemKey } from '../../shared/agent-session-journal-item-key'
import { readAgentJournalTurn } from '../../shared/agent-session-turn-record'
import { DISPATCH_REJECTED_CANCELLED } from '../../shared/structured-agent-session-dispatch-rejection'
import type { ClaudeStructuredSessionAdapterDeps } from './claude-structured-session-state'
import type { ClaudeStructuredSessionAdapterDeps } from './structured/claude-structured-session-state'
import {
PROVIDER_SESSION_ID,
USER_MESSAGE,
@@ -10,17 +10,15 @@ import type {
import { readAgentJournalTurn } from '../../shared/agent-session-turn-record'
import type { StructuredAgentSessionEventSink } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import { CLAUDE_STRUCTURED_BASE_OPTIONS } from './claude-structured-launch-resolution'
import {
ClaudeStructuredSessionAdapter,
type ClaudeStructuredSessionEvent
} from './claude-structured-session-adapter'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
realClaudeAuthenticated,
realClaudeAvailable,
realClaudeCommand,
realClaudeLaunchHome
} from './claude-real-cli-availability-test-support'
import { claudeStartupSettled } from './claude-structured-session-test-support'
import { claudeStartupSettled } from './claude-structured-startup-settled-test-support'
import { claudeProviderHandle } from '../../shared/agent-session-provider-handle-encoding'
const SESSION_ID = 'real-cli-fold'
@@ -15,17 +15,15 @@ import {
claudeStructuredPermissionOptions
} from './claude-structured-launch-resolution'
import { listedModels } from './claude-structured-model-catalog'
import {
ClaudeStructuredSessionAdapter,
type ClaudeStructuredSessionEvent
} from './claude-structured-session-adapter'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
realClaudeAuthenticated,
realClaudeAvailable,
realClaudeCommand,
realClaudeLaunchHome
} from './claude-real-cli-availability-test-support'
import { claudeStartupSettled } from './claude-structured-session-test-support'
import { claudeStartupSettled } from './claude-structured-startup-settled-test-support'
import { journal } from './claude-context-usage-test-support'
const SESSION_ID = 'real-cli-options'
@@ -17,11 +17,9 @@ import {
CLAUDE_STRUCTURED_BASE_OPTIONS,
type ClaudeStructuredSdkOptions
} from './claude-structured-launch-resolution'
import {
ClaudeStructuredSessionAdapter,
type ClaudeStructuredSessionEvent
} from './claude-structured-session-adapter'
import { claudeStartupSettled } from './claude-structured-session-test-support'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import { claudeStartupSettled } from './claude-structured-startup-settled-test-support'
const SESSION_ID = 'real-cli-rewind'
@@ -6,17 +6,15 @@ import { describe, expect, it } from 'vitest'
import type { AgentSessionJournalIdentity } from '../../shared/agent-session-journal-types'
import type { StructuredAgentSessionEventSink } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import { CLAUDE_STRUCTURED_BASE_OPTIONS } from './claude-structured-launch-resolution'
import {
ClaudeStructuredSessionAdapter,
type ClaudeStructuredSessionEvent
} from './claude-structured-session-adapter'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
realClaudeAuthenticated,
realClaudeAvailable,
realClaudeCommand,
realClaudeLaunchHome
} from './claude-real-cli-availability-test-support'
import { claudeStartupSettled } from './claude-structured-session-test-support'
import { claudeStartupSettled } from './claude-structured-startup-settled-test-support'
import { claudeProviderHandle } from '../../shared/agent-session-provider-handle-encoding'
const SESSION_ID = 'real-cli-stop-task'
@@ -10,7 +10,7 @@ import { createNativeChatVisualsDelivery } from '../native-chat/native-chat-visu
import { nativeChatScratchFolderFor } from '../native-chat/native-chat-scratch-folder'
import { NATIVE_CHAT_VISUALS_SKILL_NAME } from '../native-chat/native-chat-visuals-skill-location'
import { createClaudeCliFlagSupport } from './claude-cli-flag-support'
import { readClaudeInit } from './claude-structured-init-proof'
import { readClaudeInit } from './structured/claude-structured-init-proof'
import {
realClaudeAuthenticated,
realClaudeAvailable,
@@ -18,10 +18,8 @@ import {
realClaudeCommand,
realClaudeLaunchHome
} from './claude-real-cli-availability-test-support'
import {
ClaudeStructuredSessionAdapter,
type ClaudeStructuredSessionEvent
} from './claude-structured-session-adapter'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
const SESSION_ID = 'real-cli-visuals'
const listed = (value: unknown): unknown[] => (Array.isArray(value) ? value : [])
@@ -11,7 +11,7 @@ import {
CLAUDE_STRUCTURED_BASE_OPTIONS,
claudeStructuredPermissionOptions
} from './claude-structured-launch-resolution'
import { readClaudeInit } from './claude-structured-init-proof'
import { readClaudeInit } from './structured/claude-structured-init-proof'
import {
realClaudeAuthenticated,
realClaudeAuthStatus,
@@ -20,12 +20,16 @@ import {
realClaudeCommand,
realClaudeLaunchHome
} from './claude-real-cli-availability-test-support'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type {
ClaudeStructuredSessionEvent,
ClaudeStructuredSessionAdapterDeps
} from './structured/claude-structured-session-state'
import {
ClaudeStructuredSessionAdapter,
type ClaudeStructuredSessionEvent
} from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionAdapterDeps } from './claude-structured-session-state'
import { claudeOpened, claudeStartupSettled } from './claude-structured-session-test-support'
claudeOpened,
claudeStartupSettled
} from './claude-structured-startup-settled-test-support'
import { claudeProviderHandle } from '../../shared/agent-session-provider-handle-encoding'
const command = realClaudeCommand
@@ -3,7 +3,7 @@ import { agentJournalItemKey } from '../../shared/agent-session-journal-item-key
import type { AgentJournalItemBody } from '../../shared/agent-session-journal-types'
import type { StructuredAgentSessionAppendOptions } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import { createClaudeJournalTranslator } from './claude-structured-journal-translation'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
type Write = {
key: string
@@ -5,7 +5,7 @@ import type {
} from '../../shared/agent-session-journal-types'
import { readAgentJournalTurn } from '../../shared/agent-session-turn-record'
import type { StructuredAgentSessionEventSink } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
PROVIDER_SESSION_ID,
USER_MESSAGE,
@@ -5,16 +5,16 @@ import { afterEach, describe, expect, it, vi } from 'vitest'
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 type { ClaudeStructuredSessionEvent } from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
adapterFor,
fakeClaude,
identityFor,
PROVIDER_SESSION_ID,
recordingJournalSink,
tick,
claudeOpened
tick
} from './claude-structured-session-test-support'
import { claudeOpened } from './claude-structured-startup-settled-test-support'
const journals = createTrackedJournalOpener()
const cleanups: (() => Promise<void>)[] = []
@@ -1,7 +1,7 @@
import type {
ClaudeSession,
ClaudeStructuredSessionAdapterDeps
} from './claude-structured-session-state'
} from './structured/claude-structured-session-state'
import { settleClaudeTurnEndWaiters } from './claude-request-end-wait'
import { isRootClaudeFrame } from './claude-turn-opening'
@@ -3,7 +3,6 @@ import { retireClaudeLaunchedModel } from './claude-structured-retired-model'
import {
adapterFor,
claudeFrame,
claudeStartupSettled,
fakeClaude,
tick,
identityFor,
@@ -11,6 +10,7 @@ import {
recordingJournalSink,
USER_MESSAGE
} from './claude-structured-session-test-support'
import { claudeStartupSettled } from './claude-structured-startup-settled-test-support'
const RETIRED = 'claude-retired-1'
/** Claude Code 2.1.280 lists native rows plus the custom model passed at launch. */
@@ -2,7 +2,7 @@ import { beginClaudeOptionMutation } from './claude-structured-execution-observa
import type {
ClaudeSession,
ClaudeStructuredSessionAdapterDeps
} from './claude-structured-session-state'
} from './structured/claude-structured-session-state'
/** Retire only a still-selected launch model after a root model_not_found reply; preserve saved picks. */
export function retireClaudeLaunchedModel(
@@ -7,10 +7,8 @@ import {
} from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import type { ClaudeStreamJsonConnection } from './claude-stream-json-connection'
import { ORCA_AGENT_SESSION_SPAWN_TOKEN_ENV as SPAWN_TOKEN_ENV } from '../../shared/agent-session-caller-env'
import type {
ClaudeStructuredSessionAdapter,
ClaudeStructuredSessionEvent
} from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
acquired,
adapterFor,
@@ -20,9 +18,9 @@ import {
PROVIDER_SESSION_ID,
tick,
USER_MESSAGE,
type FakeConnection,
claudeOpened
type FakeConnection
} from './claude-structured-session-test-support'
import { claudeOpened } from './claude-structured-startup-settled-test-support'
import { invokeCanUseTool } from './claude-can-use-tool-test-support'
import { claudeProviderHandle } from '../../shared/agent-session-provider-handle-encoding'
import { providerRequestTimeoutOf } from '../provider-process/provider-request-timeout'
@@ -7,8 +7,8 @@ import type {
} from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import { stopCurrentClaudeBackgroundTasks } from './claude-structured-control-actions'
import { claudeHeldSends, claudeHoldsDispatch } from './claude-command-lifecycle'
import { releaseClaudeAcquisition } from './claude-structured-acquisition-release'
import { acquireClaudeSession } from './claude-structured-session-acquisition'
import { releaseClaudeAcquisition } from './structured/claude-structured-acquisition-release'
import { acquireClaudeSession } from './structured/claude-structured-session-acquisition'
import { supportsClaudeStructuredLocation } from './claude-structured-location-support'
import * as claudeOptions from './claude-structured-options'
import { dispatchClaudeMessage } from './claude-structured-message-options'
@@ -20,7 +20,7 @@ import {
type ClaudeSessionExit,
type ClaudeStructuredSessionAdapterDeps,
type ClaudeStructuredSessionEvent
} from './claude-structured-session-state'
} from './structured/claude-structured-session-state'
import {
closeAllClaudeSessions,
closeClaudeSession,
@@ -44,14 +44,9 @@ import {
} from './claude-structured-prompt-ownership'
import { claudePromptCancelRoute } from './claude-structured-prompt-replies'
import { claudeForkForRewind } from './claude-rewind-fork'
import { openClaudeStructuredSession } from './claude-structured-session-open'
import { openClaudeStructuredSession } from './structured/claude-structured-session-open'
export type { ClaudeStructuredLaunch } from './claude-structured-launch-resolution'
export type {
ClaudeAuthDiagnostic,
ClaudeStructuredSessionAdapterDeps,
ClaudeStructuredSessionEvent
} from './claude-structured-session-state'
export class ClaudeStructuredSessionAdapter implements StructuredAgentSessionAdapter {
private readonly sessions = new Map<string, ClaudeSession>()
@@ -3,7 +3,7 @@ import type { StructuredAgentSessionEventSink } from '../native-chat/agent-sessi
import type {
ClaudeStructuredSessionAdapterDeps,
ClaudeStructuredSessionEvent
} from './claude-structured-session-adapter'
} from './structured/claude-structured-session-state'
import {
PROVIDER_SESSION_ID,
adapterFor,
@@ -14,7 +14,7 @@ import type { AgentChildWorkEvidence } from '../../shared/agent-status-child-wor
import { AgentSessionAcquisitionRootExitObservedError } from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import { ClaudePromptRegistry } from './claude-structured-prompt-replies'
import { claudeRootExitObserved, closeClaudeSession } from './claude-structured-session-close'
import { ClaudeAcquisitionRegistry } from './claude-structured-session-state'
import { ClaudeAcquisitionRegistry } from './structured/claude-structured-session-state'
describe('Claude published session close lifecycle', () => {
it('never reads a failed spawn as an observed root exit, whatever checks it first', async () => {
@@ -4,8 +4,8 @@ import type {
ClaudeSession,
ClaudeSessionExit,
ClaudeStructuredSessionEvent
} from './claude-structured-session-state'
import { cancelClaudeAcquisitionAttempt } from './claude-structured-session-state'
} from './structured/claude-structured-session-state'
import { cancelClaudeAcquisitionAttempt } from './structured/claude-structured-session-state'
import {
AgentSessionAcquisitionExitProvenError,
AgentSessionAcquisitionExitUnprovenError,
@@ -1,6 +1,6 @@
import { describe, expect, it, vi } from 'vitest'
import type { StructuredAgentSessionEventSink } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
adapterFor,
fakeClaude,
@@ -16,7 +16,7 @@ import type {
ClaudeSessionExit,
ClaudeStructuredSessionAdapterDeps,
ClaudeStructuredSessionEvent
} from './claude-structured-session-state'
} from './structured/claude-structured-session-state'
export type ClaudeExitLifecycle = {
sessions: Map<string, ClaudeSession>
@@ -10,11 +10,11 @@ import type { ClaudeStreamJsonConnection } from './claude-stream-json-connection
import type { ClaudeJournalTranslator } from './claude-journal-translator-contract'
import { createClaudeJournalTranslator } from './claude-structured-journal-translation'
import type { ClaudeGoalBackgroundWork } from './claude-background-task-tracker'
import type { ClaudeInitProof } from './claude-structured-init-proof'
import type { ClaudeInitProof } from './structured/claude-structured-init-proof'
import type {
ClaudeAcquisitionAttempt,
ClaudeAcquireCallbacks
} from './claude-structured-session-state'
} from './structured/claude-structured-session-state'
export function createClaudeSessionJournalTranslator(
sink: StructuredAgentSessionEventSink | undefined,
@@ -6,7 +6,7 @@ import {
seedModels,
text
} from './claude-structured-model-catalog'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
import { structuredAgentSessionOptionModels } from '../native-chat/agent-session-wire/structured-agent-session-option-models'
import {
claudeFastModeSupport,
@@ -1,20 +1,22 @@
import { describe, expect, it, vi } from 'vitest'
import type { StructuredAgentSessionEventSink } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import {
ClaudeStructuredSessionAdapter,
type ClaudeStructuredSessionAdapterDeps,
type ClaudeStructuredSessionEvent
} from './claude-structured-session-adapter'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type {
ClaudeStructuredSessionAdapterDeps,
ClaudeStructuredSessionEvent
} from './structured/claude-structured-session-state'
import {
adapterFor,
fakeClaude,
identityFor,
PROVIDER_SESSION_ID,
tick,
recordingJournalSink,
recordingJournalSink
} from './claude-structured-session-test-support'
import {
claudeStartupSettled,
claudeOpened
} from './claude-structured-session-test-support'
} from './claude-structured-startup-settled-test-support'
import { invokeCanUseTool } from './claude-can-use-tool-test-support'
import {
claudeProviderHandle,
@@ -11,17 +11,15 @@ import type {
} from './claude-stream-json-connection'
import {
ClaudeStructuredSessionAdapter,
type ClaudeStructuredSessionAdapterDeps,
type ClaudeStructuredLaunch,
type ClaudeStructuredSessionEvent
type ClaudeStructuredLaunch
} from './claude-structured-session-adapter'
import type {
ClaudeStructuredSessionAdapterDeps,
ClaudeStructuredSessionEvent
} from './structured/claude-structured-session-state'
import type { StructuredAgentSessionEventSink } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import { claudeProviderHandle } from '../../shared/agent-session-provider-handle-encoding'
import { claudeStartupSettled } from './claude-structured-startup-settled-test-support'
export {
claudeStartupSettled,
claudeOpened
} from './claude-structured-startup-settled-test-support'
export const PROVIDER_SESSION_ID = '819cf9f8-e43c-4ad7-b50f-54aa158a726a'
@@ -4,7 +4,7 @@ import type {
ClaudeStructuredLaunch,
ClaudeStructuredSdkOptions
} from './claude-structured-launch-resolution'
import type { ClaudeSession } from './claude-structured-session-state'
import type { ClaudeSession } from './structured/claude-structured-session-state'
import { restoredClaudeStructuredSessionOptions } from './claude-structured-options'
const EFFORT_LEVELS: ReadonlySet<string> = new Set<EffortLevel>([
@@ -3,9 +3,9 @@ import {
adapterFor,
fakeClaude,
identityFor,
claudeOpened,
USER_MESSAGE
} from './claude-structured-session-test-support'
import { claudeOpened } from './claude-structured-startup-settled-test-support'
it("applies a resumed conversation's saved Fast off before message input beside the Arguments' settings", async () => {
let fastMode = true
@@ -14,18 +14,18 @@ import type { AgentSessionRecord } from '../../shared/agent-session-record'
import { LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host'
import type { AgentSessionRecordStore } from '../runtime/agent-session-record-store'
import { reviseAgentSessionProviderResumePoint } from '../runtime/agent-session/ownership/agent-session-provider-handle-transition'
import {
ClaudeStructuredSessionAdapter,
type ClaudeStructuredSessionAdapterDeps,
type ClaudeStructuredSessionEvent
} from './claude-structured-session-adapter'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type {
ClaudeStructuredSessionAdapterDeps,
ClaudeStructuredSessionEvent
} from './structured/claude-structured-session-state'
import {
fakeClaude,
identityFor,
PROVIDER_SESSION_ID,
claudeStartupSettled,
tick
} from './claude-structured-session-test-support'
import { claudeStartupSettled } from './claude-structured-startup-settled-test-support'
import { claudeProviderHandle } from '../../shared/agent-session-provider-handle-encoding'
const FENCE = 7
@@ -27,13 +27,13 @@ import { indexedStatusFeedSession } from '../native-chat/agent-session-wire/stru
import { invokeCanUseTool } from './claude-can-use-tool-test-support'
import { system, toolUse } from './claude-child-work-producer-harness.test-fixture'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from './structured/claude-structured-session-state'
import {
fakeClaude,
identityFor,
PROVIDER_SESSION_ID,
claudeStartupSettled
PROVIDER_SESSION_ID
} from './claude-structured-session-test-support'
import { claudeStartupSettled } from './claude-structured-startup-settled-test-support'
const SESSION = 'session-1'
const FENCE = 7
+1 -1
View File
@@ -5,7 +5,7 @@ import {
type ClaudeMessageEnvelope
} from './claude-structured-item-translation'
import { agentJournalSubmissionKey } from '../../shared/agent-session-journal-item-key'
import type { ClaudeStartedSend } from './claude-structured-session-state'
import type { ClaudeStartedSend } from './structured/claude-structured-session-state'
import {
claudeProviderResumedTurnTimingAnchor,
type ClaudeCurrentTurn
@@ -1,7 +1,7 @@
import {
closeClaudeSession,
claudeAcquisitionCleanupError
} from './claude-structured-session-close'
} from '../claude-structured-session-close'
import type {
ClaudeAcquisitionRegistry,
ClaudeSession,
@@ -1,7 +1,7 @@
import type { AgentSessionAccountKind } from '../../shared/agent-session-availability'
import { CLAUDE_DEFAULT_SETTING_SOURCES } from './claude-structured-launch-resolution'
import type { AgentSessionAccountKind } from '../../../shared/agent-session-availability'
import { CLAUDE_DEFAULT_SETTING_SOURCES } from '../claude-structured-launch-resolution'
import type { ClaudeAuthDiagnostic, ClaudeSession } from './claude-structured-session-state'
import { AgentSessionAcquisitionRefusal } from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import { AgentSessionAcquisitionRefusal } from '../../native-chat/agent-session-wire/structured-agent-session-adapter-errors'
export type ClaudeInitObservation = {
providerSessionId: string
@@ -1,7 +1,7 @@
import { describe, expect, it, vi } from 'vitest'
import { claudeProcessIdentity } from './claude-structured-owner-identity'
import { ORCA_AGENT_SESSION_SPAWN_TOKEN_ENV } from '../../shared/agent-session-caller-env'
import { claudeProviderHandle } from '../../shared/agent-session-provider-handle-encoding'
import { ORCA_AGENT_SESSION_SPAWN_TOKEN_ENV } from '../../../shared/agent-session-caller-env'
import { claudeProviderHandle } from '../../../shared/agent-session-provider-handle-encoding'
const IDENTITY = {
sessionId: 'session-identity',
@@ -1,8 +1,8 @@
import type { AgentSessionJournalIdentity } from '../../shared/agent-session-journal-types'
import type { AgentSessionProviderHandleLink } from '../../shared/agent-session-provider-handle'
import { claudeProviderHandle } from '../../shared/agent-session-provider-handle-encoding'
import type { AgentSessionProcessIdentity } from '../../shared/agent-session-record'
import { readProcessStartTimeMs } from '../runtime/agent-session/ownership/agent-session-process-identity-probe'
import type { AgentSessionJournalIdentity } from '../../../shared/agent-session-journal-types'
import type { AgentSessionProviderHandleLink } from '../../../shared/agent-session-provider-handle'
import { claudeProviderHandle } from '../../../shared/agent-session-provider-handle-encoding'
import type { AgentSessionProcessIdentity } from '../../../shared/agent-session-record'
import { readProcessStartTimeMs } from '../../runtime/agent-session/ownership/agent-session-process-identity-probe'
export function claudeProviderHandleLink(input: {
sessionId: string
@@ -1,11 +1,11 @@
import { describe, expect, it, vi } from 'vitest'
import type { AgentSessionJournalIdentity } from '../../shared/agent-session-journal-types'
import { AgentSessionPreSpawnError } from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import type { AgentSessionJournalIdentity } from '../../../shared/agent-session-journal-types'
import { AgentSessionPreSpawnError } from '../../native-chat/agent-session-wire/structured-agent-session-adapter-errors'
import type {
ClaudeStreamJsonConnection,
openClaudeStreamJsonConnection
} from './claude-stream-json-connection'
import { ClaudeStructuredSessionAdapter } from './claude-structured-session-adapter'
} from '../claude-stream-json-connection'
import { ClaudeStructuredSessionAdapter } from '../claude-structured-session-adapter'
const PROVIDER_SESSION_ID = '819cf9f8-e43c-4ad7-b50f-54aa158a726a'
const IDENTITY: AgentSessionJournalIdentity = {
@@ -1,10 +1,10 @@
import type { AgentSessionAcquisition } from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import { openClaudeStreamJsonConnection } from './claude-stream-json-connection'
import { buildClaudePermissionCallbacks } from './claude-structured-inbound-control'
import { resolveClaudeReplayTurn } from './claude-replay-turn-resolution'
import { claudeStartedUnechoedSend } from './claude-command-lifecycle'
import { claudeSessionStateEndsTurn } from './claude-session-state-turn-over'
import { settleClaudeTurnEndWaiters } from './claude-request-end-wait'
import type { AgentSessionAcquisition } from '../../native-chat/agent-session-wire/structured-agent-session-adapter'
import { openClaudeStreamJsonConnection } from '../claude-stream-json-connection'
import { buildClaudePermissionCallbacks } from '../claude-structured-inbound-control'
import { resolveClaudeReplayTurn } from '../claude-replay-turn-resolution'
import { claudeStartedUnechoedSend } from '../claude-command-lifecycle'
import { claudeSessionStateEndsTurn } from '../claude-session-state-turn-over'
import { settleClaudeTurnEndWaiters } from '../claude-request-end-wait'
import {
createClaudeInitProof,
readClaudeCapabilities,
@@ -12,25 +12,25 @@ import {
readClaudeFrameString,
readClaudeInit
} from './claude-structured-init-proof'
import { claudeConfigDirEnvPatch } from './claude-config-dir-pin'
import { claudeConfigDirEnvPatch } from '../claude-config-dir-pin'
import { claudeProcessIdentity } from './claude-structured-owner-identity'
import { ClaudePromptRegistry } from './claude-structured-prompt-replies'
import { adoptClaudeStructuredSpawnOptions } from './claude-structured-spawn-options'
import { observeClaudeExecutionModel } from './claude-structured-execution-observations'
import { observeClaudeFastModeFacts } from './claude-structured-session-options'
import { ClaudePromptRegistry } from '../claude-prompt-registry'
import { adoptClaudeStructuredSpawnOptions } from '../claude-structured-spawn-options'
import { observeClaudeExecutionModel } from '../claude-structured-execution-observations'
import { observeClaudeFastModeFacts } from '../claude-structured-session-options'
import { createClaudeSessionPublication } from './claude-structured-session-publication'
import * as sessionState from './claude-structured-session-state'
import { resolveClaudeAcquisitionError } from './claude-structured-session-close'
import { withObservedProviderExit } from '../native-chat/agent-session-wire/structured-agent-session-failure-text'
import { readClaudeTranscriptEntryUuid } from './claude-transcript-entry-uuid'
import { claudeTurnResumePointWriter } from './claude-structured-resume-point'
import { withAgentSessionCreatePhase } from '../observability/agent-session-instrumentation'
import { resolveClaudeAcquisitionLaunch } from './claude-structured-acquisition-launch'
import { resolveClaudeAcquisitionError } from '../claude-structured-session-close'
import { withObservedProviderExit } from '../../native-chat/agent-session-wire/structured-agent-session-failure-text'
import { readClaudeTranscriptEntryUuid } from '../claude-transcript-entry-uuid'
import { claudeTurnResumePointWriter } from '../claude-structured-resume-point'
import { withAgentSessionCreatePhase } from '../../observability/agent-session-instrumentation'
import { resolveClaudeAcquisitionLaunch } from '../claude-structured-acquisition-launch'
import {
bindClaudeConnectionJournalControls,
createClaudeSessionJournalTranslator
} from './claude-structured-session-journal-control'
import { isRootClaudeFrame } from './claude-turn-opening'
} from '../claude-structured-session-journal-control'
import { isRootClaudeFrame } from '../claude-turn-opening'
export async function acquireClaudeSession({
input,
@@ -1,11 +1,11 @@
import type {
StructuredAgentSessionProviderOpenInput,
StructuredAgentSessionProviderOpenResult
} from '../native-chat/agent-session-wire/structured-agent-session-provider-open-contract'
import { waitForPromiseWithSignal } from '../../shared/abort-signal-reason'
import { readClaudeStructuredSessionSettings } from './claude-structured-session-acquisition-options'
} from '../../native-chat/agent-session-wire/structured-agent-session-provider-open-contract'
import { waitForPromiseWithSignal } from '../../../shared/abort-signal-reason'
import { readClaudeStructuredSessionSettings } from '../claude-structured-session-acquisition-options'
import { openClaudeSession, readClaudeStartupFacts } from './claude-structured-session-startup'
import { catchUpClaudeTranscript } from './claude-transcript-catch-up'
import { catchUpClaudeTranscript } from '../claude-transcript-catch-up'
import type {
ClaudeSession,
ClaudeStructuredSessionAdapterDeps,
@@ -1,11 +1,11 @@
import type { AgentSessionAcquisition } from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import type { AgentSessionAcquisition } from '../../native-chat/agent-session-wire/structured-agent-session-adapter'
import { claudeProviderHandleLink } from './claude-structured-owner-identity'
import type { ClaudePromptRegistry } from './claude-structured-prompt-replies'
import type { ClaudeJournalTranslator } from './claude-journal-translator-contract'
import type { ClaudePromptRegistry } from '../claude-prompt-registry'
import type { ClaudeJournalTranslator } from '../claude-journal-translator-contract'
import type { ClaudeSession } from './claude-structured-session-state'
import { ClaudeBackgroundTaskTracker } from './claude-background-task-tracker'
import { ClaudeChildWorkDecoder } from './claude-child-work-decoder'
import { ClaudeSlashCommandCatalog } from './claude-slash-command-catalog'
import { ClaudeBackgroundTaskTracker } from '../claude-background-task-tracker'
import { ClaudeChildWorkDecoder } from '../claude-child-work-decoder'
import { ClaudeSlashCommandCatalog } from '../claude-slash-command-catalog'
export function createClaudeSessionPublication(input: {
connection: ClaudeSession['connection']
@@ -4,12 +4,12 @@ import {
fakeClaude,
claudeFrame,
identityFor,
claudeOpened,
USER_MESSAGE
} from './claude-structured-session-test-support'
} from '../claude-structured-session-test-support'
import { claudeOpened } from '../claude-structured-startup-settled-test-support'
import type { ClaudeStructuredSessionEvent } from './claude-structured-session-state'
import { CLAUDE_INITIALIZE_TIMEOUT_MS } from './claude-structured-session-startup'
import { providerRequestTimeoutOf } from '../provider-process/provider-request-timeout'
import { providerRequestTimeoutOf } from '../../provider-process/provider-request-timeout'
const ACQUIRE = { identity: identityFor(), fence: 7, spawnToken: 'spawn-9' }
@@ -1,10 +1,10 @@
// Initialize gates host open after process publication; settings enrichment runs independently.
import type { AgentSessionAccountKind } from '../../shared/agent-session-availability'
import type { StructuredAgentSessionProviderOpenResult } from '../native-chat/agent-session-wire/structured-agent-session-provider-open-contract'
import { withProviderRequestTimeout } from '../provider-process/provider-request-timeout'
import type { ClaudeStreamJsonConnection } from './claude-stream-json-connection'
import { ClaudeSlashCommandCatalog } from './claude-slash-command-catalog'
import type { AgentSessionAccountKind } from '../../../shared/agent-session-availability'
import type { StructuredAgentSessionProviderOpenResult } from '../../native-chat/agent-session-wire/structured-agent-session-provider-open-contract'
import { withProviderRequestTimeout } from '../../provider-process/provider-request-timeout'
import type { ClaudeStreamJsonConnection } from '../claude-stream-json-connection'
import { ClaudeSlashCommandCatalog } from '../claude-slash-command-catalog'
import {
claudeAuthDiagnostic,
claudeInitializationAuthError,
@@ -17,15 +17,15 @@ import {
import {
claudeStructuredSessionPublicationOptions,
prepareClaudeStructuredSessionAcquisitionOptions
} from './claude-structured-session-acquisition-options'
} from '../claude-structured-session-acquisition-options'
import {
claudeStructuredSessionOptionsFrom,
observeClaudeSettingsApplied,
readClaudeSettingsApplied,
readClaudeFastModeFacts,
readClaudeSettingsEffort
} from './claude-structured-session-options'
import { claudeExecutionObservations } from './claude-structured-execution-observations'
} from '../claude-structured-session-options'
import { claudeExecutionObservations } from '../claude-structured-execution-observations'
import type {
ClaudeAuthDiagnostic,
ClaudeSession,
@@ -1,28 +1,28 @@
import type { StructuredAgentSessionChildWorkProducer } from '../native-chat/agent-session-wire/structured-agent-session-subagent-rows'
import type { StructuredAgentSessionLogger } from '../native-chat/agent-session-wire/structured-agent-session-logger'
import type { AgentJournalDispatchRejection } from '../../shared/agent-session-failure-words'
import type { SubmissionRejectionFact } from '../../shared/agent-session-failure'
import type { AgentJournalItemIdentity } from '../../shared/agent-session-journal-types'
import type { StructuredAgentSessionEventSink } from '../native-chat/agent-session-wire/structured-agent-session-event-sink'
import type * as SessionAdapter from '../native-chat/agent-session-wire/structured-agent-session-adapter'
import type { StructuredAgentSessionChildWorkProducer } from '../../native-chat/agent-session-wire/structured-agent-session-subagent-rows'
import type { StructuredAgentSessionLogger } from '../../native-chat/agent-session-wire/structured-agent-session-logger'
import type { AgentJournalDispatchRejection } from '../../../shared/agent-session-failure-words'
import type { SubmissionRejectionFact } from '../../../shared/agent-session-failure'
import type { AgentJournalItemIdentity } from '../../../shared/agent-session-journal-types'
import type { StructuredAgentSessionEventSink } from '../../native-chat/agent-session-wire/structured-agent-session-event-sink'
import type * as SessionAdapter from '../../native-chat/agent-session-wire/structured-agent-session-adapter'
import type {
ClaudeStreamJsonConnection,
openClaudeStreamJsonConnection
} from './claude-stream-json-connection'
import type { ClaudeStructuredLaunch } from './claude-structured-launch-resolution'
import type { StructuredLaunchRequest } from '../runtime/structured-agent-launch-composition'
import type { ClaudeJournalTranslator } from './claude-journal-translator-contract'
import type { ClaudePendingPrompt, ClaudePromptRegistry } from './claude-structured-prompt-replies'
} from '../claude-stream-json-connection'
import type { ClaudeStructuredLaunch } from '../claude-structured-launch-resolution'
import type { StructuredLaunchRequest } from '../../runtime/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'
import { randomUUID } from 'node:crypto'
import type { AgentSessionFastModeState } from '../../shared/agent-session-wire'
import type { AgentChildWorkEvidence } from '../../shared/agent-status-child-work-evidence'
import type { ClaudeBackgroundTaskTracker } from './claude-background-task-tracker'
import type { ClaudeChildWorkDecoder } from './claude-child-work-decoder'
import type { ClaudeSlashCommandCatalog } from './claude-slash-command-catalog'
import type { ClaudeAtRestCommandCatalog } from './claude-at-rest-commands'
import type { AgentSessionFastModeState } from '../../../shared/agent-session-wire'
import type { AgentChildWorkEvidence } from '../../../shared/agent-status-child-work-evidence'
import type { ClaudeBackgroundTaskTracker } from '../claude-background-task-tracker'
import type { ClaudeChildWorkDecoder } from '../claude-child-work-decoder'
import type { ClaudeSlashCommandCatalog } from '../claude-slash-command-catalog'
import type { ClaudeAtRestCommandCatalog } from '../claude-at-rest-commands'
import type { ClaudeInitProof } from './claude-structured-init-proof'
import type { AgentSessionProviderHandleLink } from '../../shared/agent-session-provider-handle'
import type { AgentSessionProviderHandleLink } from '../../../shared/agent-session-provider-handle'
export type ClaudeAuthDiagnostic = {
apiKeySourceConfigured: boolean
@@ -18,7 +18,7 @@ import {
} from '../../claude/claude-agent-sdk-control-requests'
import { CLAUDE_STOP_GRACE_MS } from '../../claude/claude-request-end-wait'
import { ClaudeStructuredSessionAdapter } from '../../claude/claude-structured-session-adapter'
import type { ClaudeStructuredSessionEvent } from '../../claude/claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from '../../claude/structured/claude-structured-session-state'
import {
claudeFrame as frame,
claudeWasSent as wrote,
@@ -13,11 +13,11 @@ import { RESUMED_BY_MESSAGE } from '../../claude/claude-captured-task-frames.tes
import { WAKES_AFTER_ITS_SHELL } from '../../claude/claude-captured-wake-frames.test-fixture'
import { ClaudeStructuredSessionAdapter } from '../../claude/claude-structured-session-adapter'
import {
claudeStartupSettled,
fakeClaude,
PROVIDER_SESSION_ID,
type FakeConnection
} from '../../claude/claude-structured-session-test-support'
import { claudeStartupSettled } from '../../claude/claude-structured-startup-settled-test-support'
import type { AgentSessionRecordStore } from '../../runtime/agent-session-record-store'
import { openTestAgentSessionRecordStore } from '../../runtime/agent-session-record-store-test-harness'
import { structuredClaudeLifecycleEvent } from '../../runtime/structured-claude-runtime-adapter'
@@ -34,7 +34,7 @@ import {
subscribeRemoteRuntimeRequest,
type RemoteRuntimeSubscription
} from '../../shared/remote-runtime/remote-runtime-client'
import { claudeSessionIdForOrcaSession } from '../claude/claude-structured-session-id'
import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id'
import { quotePosixShell } from '../../shared/shell-argument-quoting'
import { materializeOrcadArtifact } from './orcad-artifact-materializer'
import {
@@ -1,7 +1,7 @@
// 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/claude-structured-launch-resolution'
import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id'
import { waitForStructuredAgentSessionRecovery } from './structured-agent-session-runtime'
import { createScriptedClaudeRuntime } from './structured-claude-scripted-runtime-test-support'
@@ -2,7 +2,7 @@
import { afterEach, describe, expect, it, vi } from 'vitest'
import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session-mutation-envelope'
import { claudeSessionIdForOrcaSession } from '../claude/claude-structured-launch-resolution'
import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id'
import {
DISPATCH_DOUBT_PROVIDER_ENDED_UNANSWERED,
DISPATCH_DOUBT_PROVIDER_IDLE,
@@ -2,7 +2,7 @@
import { afterEach, describe, expect, it, vi } from 'vitest'
import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session-mutation-envelope'
import { claudeSessionIdForOrcaSession } from '../claude/claude-structured-launch-resolution'
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'
@@ -11,7 +11,7 @@ import {
STRUCTURED_AGENT_SESSION_RUNTIME_CAPABILITY
} from '../../shared/protocol-version'
import { fakeClaude } from './claude-structured-fake-connection-test-fixture'
import { claudeSessionIdForOrcaSession } from '../claude/claude-structured-launch-resolution'
import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id'
import { ORCA_AGENT_SESSION_SPAWN_TOKEN_ENV } from '../../shared/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'
@@ -2,7 +2,7 @@
import { afterEach, describe, expect, it, vi } from 'vitest'
import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session-mutation-envelope'
import { claudeSessionIdForOrcaSession } from '../claude/claude-structured-launch-resolution'
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'
@@ -1,7 +1,7 @@
import type { CodexModelCatalogProbeDeps } from '../codex/codex-model-catalog-probe'
import type { AcpStructuredSessionAdapterDeps } from '../acp/acp-structured-session-adapter-deps'
import type { AcpStructuredLaunchPartDeps } from '../acp/acp-structured-launch-resolution'
import type { ClaudeStructuredSessionAdapterDeps } from '../claude/claude-structured-session-adapter'
import type { ClaudeStructuredSessionAdapterDeps } from '../claude/structured/claude-structured-session-state'
import type { CodexStructuredSessionAdapterDeps } from '../codex/codex-structured-session-adapter'
import type { AgentCliVersionReader } from '../agent-cli-version-probe'
import type { StructuredAgentSessionStartupLimits } from '../native-chat/agent-session-wire/structured-agent-session-startup-attempt-contract'
@@ -8,7 +8,7 @@ import { agentJournalItemKey } from '../../shared/agent-session-journal-item-key
import { computeAgentSessionPayloadFingerprint } from '../../shared/agent-session-mutation-envelope'
import type { AgentSessionRecord } from '../../shared/agent-session-record'
import type { AgentSessionRewindFork } from '../../shared/agent-session-rewind'
import { claudeSessionIdForOrcaSession } from '../claude/claude-structured-launch-resolution'
import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id'
import { fakeClaude } from '../claude/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'
@@ -1,13 +1,14 @@
import type { AgentSessionRecord } from '../../shared/agent-session-record'
import { claudeProviderHandle } from '../../shared/agent-session-provider-handle-encoding'
import { resolveClaudeCommand } from '../codex-cli/command'
import {
ClaudeStructuredSessionAdapter,
type ClaudeStructuredSessionAdapterDeps
} from '../claude/claude-structured-session-adapter'
import { claudeProviderHandleLink } from '../claude/claude-structured-owner-identity'
import { ClaudeStructuredSessionAdapter } from '../claude/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'
import type { ClaudeStructuredSessionEvent } from '../claude/claude-structured-session-state'
import {
recordAgentSessionProviderHandle,
reviseAgentSessionProviderResumePoint
@@ -11,7 +11,7 @@ import type {
openClaudeStreamJsonConnection
} from '../claude/claude-stream-json-connection'
import { runClaudeControl } from '../claude/claude-agent-sdk-control-requests'
import { claudeSessionIdForOrcaSession } from '../claude/claude-structured-launch-resolution'
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'
@@ -13,7 +13,7 @@ import {
subscribeRemoteRuntimeRequest,
type RemoteRuntimeSubscription
} from '../../shared/remote-runtime/remote-runtime-client'
import { claudeSessionIdForOrcaSession } from '../claude/claude-structured-session-id'
import { claudeSessionIdForOrcaSession } from '../claude/structured/claude-structured-session-id'
import { packagedClaudeChatScenario } from '../orcad/orcad-structured-chat-scenario'
import { quotePosixShell } from '../../shared/shell-argument-quoting'
import { wslClaudeChatScenario } from './wsl-orcad-chat-scenario'
@@ -4,7 +4,7 @@ import { cleanup, fireEvent, render, screen } from '@testing-library/react'
import { createElement } from 'react'
import { afterEach, expect, it, vi } from 'vitest'
import { computeAgentSessionPayloadFingerprint } from '../../src/shared/agent-session-mutation-envelope'
import { claudeSessionIdForOrcaSession } from '../../src/main/claude/claude-structured-launch-resolution'
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'
@@ -5,7 +5,7 @@ import { waitForActiveWorktree, waitForSessionReady } from './helpers/store'
import { buildFakeAgentCommandOverride } from './helpers/fake-agent-command-override'
import { SUPPORTED, createChatOnHost, test } from './helpers/structured-claude-stub'
import { resolveCliCommand } from '../../src/shared/node-cli-command-resolution'
import { claudeSessionIdForOrcaSession } from '../../src/main/claude/claude-structured-session-id'
import { claudeSessionIdForOrcaSession } from '../../src/main/claude/structured/claude-structured-session-id'
type ChatTab = { id: string; entityId: string }
@@ -24,7 +24,7 @@ import {
USER_MESSAGE,
PROVIDER_SESSION_ID
} from '../../src/main/claude/claude-structured-session-test-support'
import type { ClaudeStructuredSessionEvent } from '../../src/main/claude/claude-structured-session-state'
import type { ClaudeStructuredSessionEvent } from '../../src/main/claude/structured/claude-structured-session-state'
import { structuredClaudeLifecycleEvent } from '../../src/main/runtime/structured-claude-runtime-adapter'
import {
hostTestState,