From 46e389fc11257fa9077499d0cf71b0b65e0fa920 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 29 Jul 2026 19:30:47 +0000 Subject: [PATCH] refactor(kernel): relocate non-foundational stragglers before packaging W-pre of #1490: kernel's file set becomes its public API before it moves to packages/. Three files drifted into the sink because R1 pushes shared code down, not because they are foundational: - audio-probe-support -> src/contracts/ (capability policy consumed by platform plugins and interactor registration) - input-validation -> src/contracts/ (lowest-rank consumer is contracts/gesture-input) - observability-redaction -> src/commands/observability/runtime/ (colocated with its only consumer, diagnostics-format) Pure moves; no behavior change. Kernel retains errors, device, snapshot, contracts, collections, rect, redaction, daemon-error. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01FUv7bvbWNryuXgSBuqTtep --- src/commands/command-input.ts | 2 +- src/commands/observability/runtime/diagnostics-format.ts | 5 +---- .../observability/runtime}/observability-redaction.ts | 0 .../__tests__/apple-os-capability-table-parity.test.ts | 2 +- src/{kernel => contracts}/audio-probe-support.ts | 4 ++-- src/contracts/gesture-input.ts | 2 +- src/{kernel => contracts}/input-validation.ts | 2 +- src/core/interactors/register-builtins.ts | 2 +- src/daemon/handlers/interaction-gesture.ts | 2 +- src/platforms/apple/plugin.ts | 2 +- src/platforms/audio-probe-backend.ts | 2 +- 11 files changed, 11 insertions(+), 14 deletions(-) rename src/{kernel => commands/observability/runtime}/observability-redaction.ts (100%) rename src/{kernel => contracts}/audio-probe-support.ts (79%) rename src/{kernel => contracts}/input-validation.ts (93%) diff --git a/src/commands/command-input.ts b/src/commands/command-input.ts index 89bb05fd5c..037fad0195 100644 --- a/src/commands/command-input.ts +++ b/src/commands/command-input.ts @@ -11,7 +11,7 @@ import { } from '../kernel/device.ts'; import type { JsonSchema } from './command-contract.ts'; import { AppError } from '../kernel/errors.ts'; -import { readOptionalInteger as optionalInteger } from '../kernel/input-validation.ts'; +import { readOptionalInteger as optionalInteger } from '../contracts/input-validation.ts'; const INTERACTION_TARGET_KINDS = ['ref', 'selector', 'point'] as const; diff --git a/src/commands/observability/runtime/diagnostics-format.ts b/src/commands/observability/runtime/diagnostics-format.ts index f6febc8349..9d752ffa84 100644 --- a/src/commands/observability/runtime/diagnostics-format.ts +++ b/src/commands/observability/runtime/diagnostics-format.ts @@ -9,10 +9,7 @@ import type { DiagnosticsNetworkCommandResult, DiagnosticsPerfCommandResult, } from './diagnostics-types.ts'; -import { - redactNetworkLogText as redactText, - redactNetworkUrl, -} from '../../../kernel/observability-redaction.ts'; +import { redactNetworkLogText as redactText, redactNetworkUrl } from './observability-redaction.ts'; const PAYLOAD_MAX_CHARS = 2048; const MESSAGE_MAX_CHARS = 4096; diff --git a/src/kernel/observability-redaction.ts b/src/commands/observability/runtime/observability-redaction.ts similarity index 100% rename from src/kernel/observability-redaction.ts rename to src/commands/observability/runtime/observability-redaction.ts diff --git a/src/contracts/__tests__/apple-os-capability-table-parity.test.ts b/src/contracts/__tests__/apple-os-capability-table-parity.test.ts index 82ae00deb4..406e8deec7 100644 --- a/src/contracts/__tests__/apple-os-capability-table-parity.test.ts +++ b/src/contracts/__tests__/apple-os-capability-table-parity.test.ts @@ -1,6 +1,6 @@ import assert from 'node:assert/strict'; import { test } from 'vitest'; -import { isAudioProbeSupportedDevice } from '../../kernel/audio-probe-support.ts'; +import { isAudioProbeSupportedDevice } from '../audio-probe-support.ts'; import { isIosFamily, isMacOs, diff --git a/src/kernel/audio-probe-support.ts b/src/contracts/audio-probe-support.ts similarity index 79% rename from src/kernel/audio-probe-support.ts rename to src/contracts/audio-probe-support.ts index e5b72dc947..07fe80175c 100644 --- a/src/kernel/audio-probe-support.ts +++ b/src/contracts/audio-probe-support.ts @@ -1,5 +1,5 @@ -import { isIosFamily, isMacOs } from './device.ts'; -import type { DeviceInfo } from './device.ts'; +import { isIosFamily, isMacOs } from '../kernel/device.ts'; +import type { DeviceInfo } from '../kernel/device.ts'; export function isHostSystemAudioProbeDevice(device: DeviceInfo): boolean { return ( diff --git a/src/contracts/gesture-input.ts b/src/contracts/gesture-input.ts index 57879fcebf..e7a144ccba 100644 --- a/src/contracts/gesture-input.ts +++ b/src/contracts/gesture-input.ts @@ -1,6 +1,6 @@ import { AppError } from '../kernel/errors.ts'; import type { Point } from '../kernel/snapshot.ts'; -import { readOptionalInteger } from '../kernel/input-validation.ts'; +import { readOptionalInteger } from './input-validation.ts'; import { SCROLL_DIRECTIONS, SWIPE_PRESETS, diff --git a/src/kernel/input-validation.ts b/src/contracts/input-validation.ts similarity index 93% rename from src/kernel/input-validation.ts rename to src/contracts/input-validation.ts index 5ded6f1279..86d64259f5 100644 --- a/src/kernel/input-validation.ts +++ b/src/contracts/input-validation.ts @@ -1,4 +1,4 @@ -import { AppError } from './errors.ts'; +import { AppError } from '../kernel/errors.ts'; export function readOptionalInteger( record: Record, diff --git a/src/core/interactors/register-builtins.ts b/src/core/interactors/register-builtins.ts index da407f15a1..c4bff9c464 100644 --- a/src/core/interactors/register-builtins.ts +++ b/src/core/interactors/register-builtins.ts @@ -2,7 +2,7 @@ import { registerPlatformPlugin, type PlatformPlugin } from '../../contracts/pla import { applePlugin } from '../../platforms/apple/plugin.ts'; import { vegaPlugin } from '../../platforms/vega/plugin.ts'; import { PUBLIC_COMMANDS } from '../../command-catalog.ts'; -import { isAudioProbeSupportedDevice } from '../../kernel/audio-probe-support.ts'; +import { isAudioProbeSupportedDevice } from '../../contracts/audio-probe-support.ts'; import { WEB_DESKTOP_DEVICE, type DeviceInventoryRequest, diff --git a/src/daemon/handlers/interaction-gesture.ts b/src/daemon/handlers/interaction-gesture.ts index af51bd8f41..cb163161a7 100644 --- a/src/daemon/handlers/interaction-gesture.ts +++ b/src/daemon/handlers/interaction-gesture.ts @@ -14,7 +14,7 @@ import { SWIPE_SERIES_MAX_SCHEDULED_DURATION_MS, } from '../../contracts/scroll-gesture.ts'; import { AppError, normalizeError } from '../../kernel/errors.ts'; -import { readOptionalInteger } from '../../kernel/input-validation.ts'; +import { readOptionalInteger } from '../../contracts/input-validation.ts'; import type { Point } from '../../kernel/snapshot.ts'; import type { GestureSemanticInput } from '../../contracts/gesture-plan-types.ts'; import { isActiveProviderDevice } from '../../provider-device-runtime.ts'; diff --git a/src/platforms/apple/plugin.ts b/src/platforms/apple/plugin.ts index 7c1de49cde..cfd291d337 100644 --- a/src/platforms/apple/plugin.ts +++ b/src/platforms/apple/plugin.ts @@ -1,7 +1,7 @@ import { appleOsCapabilities } from './capabilities.ts'; import type { PlatformPlugin } from '../../contracts/platform-plugin.ts'; import { PUBLIC_COMMANDS } from '../../command-catalog.ts'; -import { isAudioProbeSupportedDevice } from '../../kernel/audio-probe-support.ts'; +import { isAudioProbeSupportedDevice } from '../../contracts/audio-probe-support.ts'; import { shouldUseHostMacFastPath, type DeviceInventoryRequest, diff --git a/src/platforms/audio-probe-backend.ts b/src/platforms/audio-probe-backend.ts index cc85912de5..d52436e0f6 100644 --- a/src/platforms/audio-probe-backend.ts +++ b/src/platforms/audio-probe-backend.ts @@ -1,5 +1,5 @@ import type { AudioProbeSource } from '../contracts/audio-probe-result.ts'; -import { isHostSystemAudioProbeDevice } from '../kernel/audio-probe-support.ts'; +import { isHostSystemAudioProbeDevice } from '../contracts/audio-probe-support.ts'; import type { DeviceInfo } from '../kernel/device.ts'; import type { ExecBackgroundResult } from '../utils/exec.ts';