refactor(extensions): remove dead QA and utility exports (#105914)

* refactor(extensions): remove dead QA and utility exports

* refactor(extensions): trim Matrix QA internal exports

* chore(deadcode): refresh extension export baseline

* chore(ci): reconcile deadcode and LOC baselines

* chore(deadcode): refresh baseline after main advance

* chore(deadcode): refresh baseline after main advance

* refactor(plugins): keep channel snapshot type private

* fix(ci): align Linux deadcode baseline
This commit is contained in:
Peter Steinberger
2026-07-13 00:34:46 -07:00
committed by GitHub
parent afe907f8f5
commit 2237196871
71 changed files with 109 additions and 309 deletions
+1 -1
View File
@@ -19,7 +19,7 @@ export const OPENCLAW_ACPX_LEASE_ID_ARG = "--openclaw-acpx-lease-id";
export const OPENCLAW_GATEWAY_INSTANCE_ID_ARG = "--openclaw-gateway-instance-id";
/** Lifecycle state for a tracked ACPX wrapper process. */
export type AcpxProcessLeaseState = "open" | "closing" | "closed" | "lost";
type AcpxProcessLeaseState = "open" | "closing" | "closed" | "lost";
/** Persisted identity and command metadata for one ACPX wrapper process. */
export type AcpxProcessLease = {
+1 -2
View File
@@ -35,8 +35,7 @@ export function normalizeCompatibilityConfig({ cfg }: { cfg: OpenClawConfig }):
* Session-state ownership claim for the copilot agent runtime.
*
* - id / label: Identify the extension in doctor output.
* - providerIds: The subscription Copilot providers (kept in sync
* with `SUPPORTED_PROVIDERS` in attempt.ts).
* - providerIds: The subscription Copilot providers.
* - runtimeIds: Our harness id (matches harness.ts `id` field).
* - cliSessionKeys: Session keys this harness writes; doctor uses
* this when pruning stale CLI session state.
+2 -5
View File
@@ -65,7 +65,6 @@ import { createCopilotToolBridge } from "./tool-bridge.js";
import { createCopilotUserInputBridge } from "./user-input-bridge.js";
import { resolveCopilotWorkspaceBootstrapContext } from "./workspace-bootstrap.js";
const SUPPORTED_PROVIDERS = new Set(["github-copilot"]);
const BACKGROUND_COMPACTION_CANCEL_TIMEOUT_MS = 5_000;
const COPILOT_ASK_USER_AVAILABLE_TOOLS = ["builtin:ask_user"] as const;
@@ -157,8 +156,6 @@ type ModelRefInputObject = {
maxTokens?: number;
};
export { SUPPORTED_PROVIDERS };
type ResolveSandboxContextFn = typeof defaultResolveSandboxContext;
interface CopilotAttemptDeps {
@@ -1633,7 +1630,7 @@ function readSessionId(session: SessionLike | undefined): string | undefined {
return readString(session.sessionId) ?? readString(session.id);
}
export function readString(value: unknown): string | undefined {
function readString(value: unknown): string | undefined {
return typeof value === "string" && value.length > 0 ? value : undefined;
}
@@ -1761,7 +1758,7 @@ export function resolvePoolAcquire(params: AttemptParamsLike): {
};
}
export function toError(error: unknown): Error {
function toError(error: unknown): Error {
return error instanceof Error ? error : new Error(String(error));
}
+1 -1
View File
@@ -39,7 +39,7 @@ type AgentToolResultLike = {
* execute before the SDK session is up, so reading `current === undefined`
* inside `onYield` is a no-op by design.
*/
export interface CopilotSessionHolder {
interface CopilotSessionHolder {
current: { abort?: () => unknown } | undefined;
}
@@ -12,7 +12,7 @@ import {
import { runCommandWithTimeout, type SpawnResult } from "openclaw/plugin-sdk/process-runtime";
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
export const CRABBOX_WORKER_PROVIDER_ID = "crabbox";
const CRABBOX_WORKER_PROVIDER_ID = "crabbox";
const CRABBOX_KEY_REF_PROVIDER = "crabbox";
const WARMUP_TIMEOUT_MS = 240_000;
@@ -99,7 +99,7 @@ type InspectCommandResult = { status: "found"; inspect: ParsedInspect } | { stat
type IsExecutable = (candidate: string) => boolean;
export type CrabboxWorkerProviderDependencies = {
type CrabboxWorkerProviderDependencies = {
isExecutable?: IsExecutable;
openclawRoot?: string;
pathEnv?: string;
+1 -1
View File
@@ -29,7 +29,7 @@ const loadMemoryCliRuntime = createLazyRuntimeModule(() => import("./cli.runtime
const DECIMAL_NUMBER_RE = /^[+-]?(?:\d+(?:\.\d+)?|\.\d+)$/;
export async function runMemoryStatus(
async function runMemoryStatus(
opts: MemoryCommandOptions,
hostOptions?: MemoryCoreLocalServiceHost,
) {
@@ -2092,4 +2092,3 @@ export const testing = {
REM_SLEEP_EVENT_TEXT,
},
};
export { testing as __testing };
-1
View File
@@ -1008,4 +1008,3 @@ export const testing = {
STARTUP_CRON_RETRY_MAX_ATTEMPTS,
},
};
export { testing as __testing };
@@ -5,10 +5,10 @@ export const LOCAL_EMBEDDING_WORKER_ERROR_CODES = {
ipcError: "LOCAL_EMBEDDING_WORKER_IPC_ERROR",
} as const;
export type LocalEmbeddingWorkerFailureCode =
type LocalEmbeddingWorkerFailureCode =
(typeof LOCAL_EMBEDDING_WORKER_ERROR_CODES)[keyof typeof LOCAL_EMBEDDING_WORKER_ERROR_CODES];
export type LocalEmbeddingWorkerFailureError = Error & {
type LocalEmbeddingWorkerFailureError = Error & {
code: LocalEmbeddingWorkerFailureCode;
};
@@ -120,7 +120,7 @@ type MemorySyncProgressState = {
report: (update: MemorySyncProgressUpdate) => void;
};
export type MemoryIndexEntry = {
type MemoryIndexEntry = {
path: string;
absPath: string;
mtimeMs: number;
@@ -2926,4 +2926,3 @@ export const testing = {
SHORT_TERM_RECALL_MAX_ENTRIES,
SHORT_TERM_RECALL_MAX_SNIPPET_CHARS,
};
export { testing as __testing };
+1 -1
View File
@@ -169,7 +169,7 @@ type WikiCommandOptions = {
agent?: string;
};
export type MemoryWikiCliRegistration = {
type MemoryWikiCliRegistration = {
config: ResolvedMemoryWikiConfig;
resolveConfig?: MemoryWikiConfigResolver;
getAppConfig?: () => OpenClawConfig | undefined;
+1 -1
View File
@@ -13,7 +13,7 @@ export const WIKI_SEARCH_BACKENDS = ["shared", "local"] as const;
export const WIKI_SEARCH_CORPORA = ["wiki", "memory", "all"] as const;
type WikiVaultMode = (typeof WIKI_VAULT_MODES)[number];
export type WikiVaultScope = (typeof WIKI_VAULT_SCOPES)[number];
type WikiVaultScope = (typeof WIKI_VAULT_SCOPES)[number];
type WikiRenderMode = (typeof WIKI_RENDER_MODES)[number];
export type WikiSearchBackend = (typeof WIKI_SEARCH_BACKENDS)[number];
export type WikiSearchCorpus = (typeof WIKI_SEARCH_CORPORA)[number];
+1 -2
View File
@@ -22,7 +22,7 @@
* @module @openclaw/oc-path/emit
*/
import type { FrontmatterEntry, MdAst } from "./ast.js";
import type { MdAst } from "./ast.js";
import { guardSentinel } from "./sentinel.js";
/**
@@ -127,4 +127,3 @@ function formatFrontmatterValue(value: string): string {
// Re-export the frontmatter type for convenience so tests don't need
// to import from ast.ts.
export type { FrontmatterEntry };
@@ -185,5 +185,3 @@ function createLineMap(raw: string): LineMap {
},
};
}
export type { Diagnostic };
+1 -1
View File
@@ -14,7 +14,7 @@ import type { AstBlock, AstItem, FrontmatterEntry, MdAst } from "./ast.js";
import type { OcPath } from "./oc-path.js";
import { isOrdinalSeg, isPositionalSeg, parseOrdinalSeg, resolvePositionalSeg } from "./oc-path.js";
export type OcPathMatch =
type OcPathMatch =
| { readonly kind: "root"; readonly node: MdAst }
| { readonly kind: "frontmatter"; readonly node: FrontmatterEntry }
| { readonly kind: "block"; readonly node: AstBlock }
@@ -348,4 +348,3 @@ export const testing = {
readOllamaWebSearchResponse,
warnOllamaWebSearchPrereqs,
};
export { testing as __testing };
+1 -1
View File
@@ -207,7 +207,7 @@ export function buildOpenShellSshExecEnv(): NodeJS.ProcessEnv {
return sanitizeEnvVars(process.env).allowed;
}
export type { OpenShellFsBridgeContext, OpenShellSandboxBackend } from "./backend.types.js";
export type { OpenShellSandboxBackend } from "./backend.types.js";
export function createOpenShellSandboxBackendFactory(
params: CreateOpenShellSandboxBackendFactoryParams,
-4
View File
@@ -55,14 +55,10 @@ import {
export {
POLICY_CHECK_IDS,
POLICY_RULE_METADATA,
SANDBOX_CONTAINER_POLICY_RULES,
type PolicyEmptyListSemantics,
type PolicyRuleMetadata,
type PolicyScopeSelectorKind,
type PolicyStrictnessKind,
} from "./metadata.js";
export { isPolicyValueAtLeastAsStrict } from "./strictness.js";
export type { PolicyEvaluation } from "./types.js";
const POLICY_RULES: readonly PolicyRuleMetadata[] = POLICY_RULE_METADATA;
+1 -1
View File
@@ -21,7 +21,7 @@ export const qaChannelRuntimeMeta = {
docsPath: "/channels/qa-channel",
blurb: "Synthetic QA channel for OpenClaw QA runs.",
};
export const qaChannelSetupMeta = qaChannelRuntimeMeta;
const qaChannelSetupMeta = qaChannelRuntimeMeta;
type QaChannelPluginBase = Pick<
ChannelPlugin<ResolvedQaChannelAccount>,
@@ -77,7 +77,7 @@ type QaRuntimeParityScenarioReport = {
codexToolCalls: number;
};
export type QaRuntimeParityReport = {
type QaRuntimeParityReport = {
runtimePair: [RuntimeId, RuntimeId];
comparedAt: string;
providerMode?: string;
@@ -20,15 +20,6 @@ import {
type QaEvidenceSummaryEntry,
} from "./evidence-summary.js";
export type {
QaEvidenceArtifactView,
QaEvidenceGalleryEntryView,
QaEvidenceGalleryModel,
QaEvidenceMatrixCellView,
QaEvidenceProducerContext,
QaEvidenceProducerContextFile,
} from "../shared/evidence-gallery-types.js";
const TEXT_PREVIEW_BYTES = 12 * 1024;
const ARTIFACT_VIEW_CONCURRENCY = 8;
const REPO_ROOT_ARTIFACT_PATH_PREFIX = "<repo-root>/";
-1
View File
@@ -1603,4 +1603,3 @@ export async function startQaGatewayChild(params: {
throw new Error(message, { cause: error });
}
}
export { testing as __testing };
@@ -4,7 +4,7 @@ import {
normalizeOptionalString as readNonEmptyString,
} from "openclaw/plugin-sdk/string-coerce-runtime";
export type GatewayLogSentinelKind =
type GatewayLogSentinelKind =
| "plugin-hook-failure"
| "plugin-contract-error"
| "direct-reply-self-message"
@@ -13,13 +13,13 @@ export type GatewayLogSentinelKind =
| "cron-model-allowlist"
| "live-quota-or-subscription";
export type GatewayLogSentinelVerdict =
type GatewayLogSentinelVerdict =
| "product-bug"
| "qa-harness-bug"
| "fixture-bug"
| "environment-blocked";
export type GatewayLogSentinelOwner =
type GatewayLogSentinelOwner =
| "plugin"
| "openclaw-routing"
| "codex-runtime"
@@ -36,13 +36,13 @@ export type GatewayLogSentinelFinding = {
text: string;
};
export type GatewayLogSentinelScanOptions = {
type GatewayLogSentinelScanOptions = {
since?: number;
kinds?: readonly GatewayLogSentinelKind[];
ignoreKinds?: readonly GatewayLogSentinelKind[];
};
export type GatewayLogSentinelAssertOptions = GatewayLogSentinelScanOptions & {
type GatewayLogSentinelAssertOptions = GatewayLogSentinelScanOptions & {
allowEnvironmentBlocked?: boolean;
};
@@ -13,7 +13,7 @@ const PROCESS_BOUNDARY_TERMINATE_RETRY_INTERVAL_MS = 1_000;
export const QA_GATEWAY_PROCESS_BOUNDARY_MIN_QUARANTINE_TTL_MS = 2 * 60 * 60 * 1_000;
export const QA_GATEWAY_PROCESS_BOUNDARY_RETAIN_LEASE_PREFIX = "retain-credential-lease-";
export type QaGatewayLinuxProcessBoundary = {
type QaGatewayLinuxProcessBoundary = {
kind: "linux-proc-v1";
evidenceDir: string;
expectedGid: number;
@@ -85,7 +85,7 @@ export type QaGatewayVerifiedProcessIdentity = {
preEntryCmdlineSha256: string;
};
export type QaGatewayProcessBoundaryPreparedSpawn = {
type QaGatewayProcessBoundaryPreparedSpawn = {
command: QaGatewayProcessCommand;
commandBytes: Buffer;
commandFilePath: string;
+3 -3
View File
@@ -25,7 +25,7 @@ export type HarnessParityDrift =
| "tool-description"
| "tool-schema";
export type HarnessParityPromptStats = {
type HarnessParityPromptStats = {
systemPromptChars: number;
projectContextChars: number;
nonProjectContextChars: number;
@@ -70,7 +70,7 @@ export type HarnessRuntimeParityCell = RuntimeParityCell & {
systemPromptReport?: RuntimeParitySystemPromptReport;
};
export type HarnessParityCell = HarnessRuntimeParityCell & {
type HarnessParityCell = HarnessRuntimeParityCell & {
variant: HarnessVariant;
promptStats: HarnessParityPromptStats;
systemPromptHash: string;
@@ -80,7 +80,7 @@ export type HarnessParityCell = HarnessRuntimeParityCell & {
tokenUsageSource: "live-usage" | "mock-estimate";
};
export type HarnessParityResult = {
type HarnessParityResult = {
scenarioId: string;
left: HarnessParityCell;
right: HarnessParityCell;
+4 -4
View File
@@ -16,7 +16,7 @@ export type JsonlReplayInput = {
providerMode: "mock-openai" | "live-frontier";
};
export type JsonlReplayTurn = {
type JsonlReplayTurn = {
turn: number;
lineNumber: number;
userText: string;
@@ -31,7 +31,7 @@ export type JsonlReplayCellRunner = (params: {
providerMode: JsonlReplayInput["providerMode"];
}) => Promise<RuntimeParityScenarioExecution>;
export type JsonlReplayResult = {
type JsonlReplayResult = {
transcripts: Array<{
transcriptPath: string;
userTurnCount: number;
@@ -41,11 +41,11 @@ export type JsonlReplayResult = {
}>;
};
export type JsonlReplayOptions = {
type JsonlReplayOptions = {
runCell?: JsonlReplayCellRunner;
};
export type JsonlReplayMarkdownReport = {
type JsonlReplayMarkdownReport = {
generatedAt: string;
providerMode: JsonlReplayInput["providerMode"];
runtimePair: JsonlReplayInput["runtimePair"];
@@ -70,7 +70,7 @@ export function whatsappDefaultCanonicalScenarioIds(providerMode: string) {
: [...WHATSAPP_LIVE_DEFAULT_CANONICAL_SCENARIO_IDS];
}
export type CanonicalScenarioPartition = {
type CanonicalScenarioPartition = {
canonical: string[];
legacy: string[];
};
@@ -8,7 +8,7 @@ export function formatApprovalResultValue(value: unknown) {
return JSON.stringify(value) ?? "<unserializable>";
}
export function readAcceptedApprovalRequest(result: unknown) {
function readAcceptedApprovalRequest(result: unknown) {
const accepted =
typeof result === "object" && result !== null
? (result as { id?: unknown; status?: unknown })
@@ -1,4 +1,4 @@
export type QaInferredCredentialSource = "convex" | "env";
type QaInferredCredentialSource = "convex" | "env";
export function inferQaCredentialSource(
value: string | undefined,
@@ -1,7 +1,7 @@
// Qa Lab plugin module implements shared live-transport result shapes.
import type { QaEvidenceTiming } from "../../evidence-summary.js";
export type LiveTransportRttMeasurement = {
type LiveTransportRttMeasurement = {
finalMatchedReplyRttMs: number;
requestStartedAt: string;
responseObservedAt: string;
@@ -58,7 +58,7 @@ export function normalizeLiveTransportRttOptions<CheckId extends string>(params:
};
}
export function percentile(sortedValues: readonly number[], percentileValue: number) {
function percentile(sortedValues: readonly number[], percentileValue: number) {
if (sortedValues.length === 0) {
return undefined;
}
@@ -13,15 +13,14 @@ export {
findMissingLiveTransportStandardScenarios,
selectLiveTransportScenarios,
type LiveTransportScenarioDefinition,
type LiveTransportStandardScenarioId,
} from "openclaw/plugin-sdk/qa-live-transport-scenarios";
export type LiveTransportCoverageMember = {
type LiveTransportCoverageMember = {
scenarioId?: string;
standardId: LiveTransportStandardScenarioId;
};
export type LiveTransportCoverageLane = {
type LiveTransportCoverageLane = {
commandName: string;
members: readonly LiveTransportCoverageMember[];
transportId: string;
@@ -36,7 +35,7 @@ export type LiveTransportCoverageLaneSummary = {
transportId: string;
};
export const LIVE_TRANSPORT_COVERAGE_LANES: readonly LiveTransportCoverageLane[] = [
const LIVE_TRANSPORT_COVERAGE_LANES: readonly LiveTransportCoverageLane[] = [
{
transportId: "discord",
commandName: "discord",
@@ -374,7 +374,7 @@ type SlackQaScenarioResult = {
title: string;
};
export type SlackQaRunResult = {
type SlackQaRunResult = {
gatewayDebugDirPath?: string;
observedMessagesPath: string;
outputDir: string;
@@ -387,7 +387,7 @@ function toWhatsAppLiveTransportEvidenceChecks(
}));
}
export type WhatsAppQaRunResult = {
type WhatsAppQaRunResult = {
gatewayDebugDirPath?: string;
observedMessagesPath: string;
outputDir: string;
@@ -1965,7 +1965,7 @@ const WHATSAPP_QA_SCENARIOS: WhatsAppQaScenarioDefinition[] = [
},
];
export const WHATSAPP_QA_STANDARD_SCENARIO_IDS = collectLiveTransportStandardScenarioCoverage({
const WHATSAPP_QA_STANDARD_SCENARIO_IDS = collectLiveTransportStandardScenarioCoverage({
scenarios: WHATSAPP_QA_SCENARIOS,
});
@@ -2487,7 +2487,7 @@ function assertSafeArchiveEntries(entries: string[]) {
}
}
export async function unpackWhatsAppAuthArchive(params: {
async function unpackWhatsAppAuthArchive(params: {
archiveBase64: string;
clearSignalSessions?: boolean;
label: string;
@@ -1,5 +1,5 @@
// Qa Lab plugin module implements shared Mantis phase timing behavior.
export type MantisPhaseTiming = {
type MantisPhaseTiming = {
durationMs: number;
finishedAt: string;
name: string;
@@ -4,7 +4,7 @@ import path from "node:path";
import { pathExists } from "openclaw/plugin-sdk/security-runtime";
import { trimToValue } from "../mantis-options.runtime.js";
export type CommandResult = {
type CommandResult = {
stderr: string;
stdout: string;
};
@@ -82,7 +82,7 @@ export async function resolveCrabboxBin(params: {
return "crabbox";
}
export function extractLeaseId(output: string) {
function extractLeaseId(output: string) {
return output.match(/\b(?:cbx_[a-f0-9]+|tbx_[A-Za-z0-9_-]+)\b/u)?.[0];
}
@@ -39,7 +39,7 @@ export type MantisDesktopBrowserSmokeOptions = {
videoDurationSeconds?: number;
};
export type MantisDesktopBrowserSmokeResult = {
type MantisDesktopBrowserSmokeResult = {
outputDir: string;
reportPath: string;
screenshotPath?: string;
@@ -24,7 +24,7 @@ export type MantisDiscordSmokeOptions = {
tokenFileEnv?: string;
};
export type MantisDiscordSmokeResult = {
type MantisDiscordSmokeResult = {
outputDir: string;
reportPath: string;
summaryPath: string;
+1 -1
View File
@@ -25,7 +25,7 @@ export type MantisBeforeAfterOptions = {
transport?: string;
};
export type MantisBeforeAfterResult = {
type MantisBeforeAfterResult = {
comparisonPath: string;
manifestPath: string;
outputDir: string;
@@ -55,7 +55,7 @@ export type MantisSlackDesktopSmokeOptions = {
export type MantisSlackDesktopHydrateMode = "prehydrated" | "source";
export type MantisSlackDesktopSmokeResult = {
type MantisSlackDesktopSmokeResult = {
approvalCheckpointScreenshotPaths?: string[];
outputDir: string;
reportPath: string;
@@ -46,7 +46,7 @@ export type MantisTelegramDesktopBuilderOptions = {
export type MantisTelegramDesktopHydrateMode = "prehydrated" | "source";
export type MantisTelegramDesktopBuilderResult = {
type MantisTelegramDesktopBuilderResult = {
outputDir: string;
reportPath: string;
screenshotPath?: string;
@@ -58,7 +58,7 @@ export type MantisVisualDriverOptions = {
visionTimeoutMs?: number;
};
export type MantisVisualTaskResult = {
type MantisVisualTaskResult = {
outputDir: string;
reportPath: string;
screenshotPath?: string;
@@ -67,7 +67,7 @@ type StreamEvent =
* classified as `"openai"`. That matches the parity program's convention
* where the provider label is the source of truth, not the HTTP route.
*/
export type MockOpenAiProviderVariant = "openai" | "anthropic" | "unknown";
type MockOpenAiProviderVariant = "openai" | "anthropic" | "unknown";
export function resolveProviderVariant(model: string | undefined): MockOpenAiProviderVariant {
if (typeof model !== "string") {
+3 -3
View File
@@ -64,7 +64,7 @@ type QaTransportFailureAssertionOptions = {
cursorSpace?: QaTransportFailureCursorSpace;
};
export type QaTransportOutboundMatch = {
type QaTransportOutboundMatch = {
conversation?: QaBusInboundMessageInput["conversation"];
senderId?: string;
sinceIndex?: number;
@@ -73,7 +73,7 @@ export type QaTransportOutboundMatch = {
timeoutMs?: number;
};
export type QaTransportWaitForNoOutboundInput = {
type QaTransportWaitForNoOutboundInput = {
quietMs?: number;
sinceIndex?: number;
};
@@ -94,7 +94,7 @@ export type QaTransportOutboundSequenceMatch = {
timeoutMs?: number;
};
export type QaTransportOutboundSequence = {
type QaTransportOutboundSequence = {
events: QaTransportOutboundEvent[];
final: QaBusMessage;
};
+1 -1
View File
@@ -1156,7 +1156,7 @@ export async function runRuntimeParityScenario(params: {
};
}
export const testing = {
const testing = {
classifyRuntimeParityCells,
filterMockRequestsForParentPrompt,
hasProvenTerminalImageResult,
@@ -37,19 +37,19 @@ export type QaRuntimeToolCoverageMetadata = {
action?: string;
};
export const QA_RUNTIME_TOOL_BUCKETS: readonly QaRuntimeToolBucket[] = [
const QA_RUNTIME_TOOL_BUCKETS: readonly QaRuntimeToolBucket[] = [
"codex-native-workspace",
"openclaw-dynamic-integration",
"optional-profile-or-plugin",
] as const;
export const QA_RUNTIME_TOOL_EXPECTED_LAYERS: readonly QaRuntimeToolExpectedLayer[] = [
const QA_RUNTIME_TOOL_EXPECTED_LAYERS: readonly QaRuntimeToolExpectedLayer[] = [
"codex-native-workspace",
"openclaw-dynamic",
"profile-or-plugin",
] as const;
export const QA_RUNTIME_CAPABILITY_LAYERS: readonly QaRuntimeCapabilityLayer[] = [
const QA_RUNTIME_CAPABILITY_LAYERS: readonly QaRuntimeCapabilityLayer[] = [
"codex-native-workspace",
"openclaw-dynamic-direct",
"openclaw-dynamic-searchable",
@@ -366,7 +366,6 @@ export {
QA_PERSONAL_AGENT_SCENARIO_IDS,
QA_SCENARIO_PACKS,
resolveQaScenarioPackScenarioIds,
type QaScenarioPackDefinition,
} from "./scenario-packs.js";
const QA_SCENARIO_PACK_INDEX_PATH = "qa/scenarios/index.yaml";
+15 -21
View File
@@ -6,16 +6,10 @@ import { z } from "zod";
import { resolveQaRepoPath, type QaRepoPathKind } from "./repo-path.js";
import type { QaSeedScenarioWithSource } from "./scenario-catalog.js";
export const QA_MATURITY_TAXONOMY_PATH = "taxonomy.yaml";
export const QA_MATURITY_SCORES_PATH = "qa/maturity-scores.yaml";
export const QA_MATURITY_SCORE_KEYS = ["quality", "completeness"] as const;
export const QA_MATURITY_SCORE_LABELS = [
"Clawesome",
"Stable",
"Beta",
"Alpha",
"Experimental",
] as const;
const QA_MATURITY_TAXONOMY_PATH = "taxonomy.yaml";
const QA_MATURITY_SCORES_PATH = "qa/maturity-scores.yaml";
const QA_MATURITY_SCORE_KEYS = ["quality", "completeness"] as const;
const QA_MATURITY_SCORE_LABELS = ["Clawesome", "Stable", "Beta", "Alpha", "Experimental"] as const;
export const QA_MATURITY_SCORE_LABEL_BANDS = [
[QA_MATURITY_SCORE_LABELS[0], 95, 100],
[QA_MATURITY_SCORE_LABELS[1], 80, 95],
@@ -161,7 +155,7 @@ const qaMaturityScoreSurfaceSchema = z
})
.strict();
export const qaMaturityScoresSchema = z
const qaMaturityScoresSchema = z
.object({
version: z.literal(1),
process_version: z.number().int().positive(),
@@ -218,7 +212,7 @@ const qaMaturityLevelSchema = z.object({
promotion_bar: z.string().trim().min(1).optional(),
});
export const qaMaturityTaxonomySchema = z
const qaMaturityTaxonomySchema = z
.object({
version: z.literal(1),
process_version: z.number().int().positive().optional(),
@@ -321,8 +315,8 @@ export const qaMaturityTaxonomySchema = z
}
});
export type QaNativeCoverageEvidenceKind = "script" | "vitest" | "playwright";
export type QaScorecardEvidenceKind = QaNativeCoverageEvidenceKind | "qa-scenario";
type QaNativeCoverageEvidenceKind = "script" | "vitest" | "playwright";
type QaScorecardEvidenceKind = QaNativeCoverageEvidenceKind | "qa-scenario";
export type QaScorecardEvidenceMode = z.infer<typeof qaScorecardEvidenceModeSchema>;
export type QaScorecardChannelDriver = z.infer<typeof qaScorecardChannelDriverSchema>;
type QaMaturityScoreKey = (typeof QA_MATURITY_SCORE_KEYS)[number];
@@ -332,7 +326,7 @@ type QaMaturityScoreCategory = z.infer<typeof qaMaturityScoreCategorySchema>;
export type QaMaturityScoreSurface = z.infer<typeof qaMaturityScoreSurfaceSchema>;
export type QaMaturityScores = z.infer<typeof qaMaturityScoresSchema>;
export type QaMaturityTaxonomyLevel = z.infer<typeof qaMaturityLevelSchema>;
export type QaMaturityTaxonomyCategory = z.infer<typeof qaMaturityCategorySchema>;
type QaMaturityTaxonomyCategory = z.infer<typeof qaMaturityCategorySchema>;
export type QaMaturityTaxonomySurface = z.infer<typeof qaMaturitySurfaceSchema>;
export type QaMaturityTaxonomy = z.infer<typeof qaMaturityTaxonomySchema>;
type QaCoverageEvidenceRole = z.infer<typeof qaCoverageEvidenceRoleSchema>;
@@ -341,7 +335,7 @@ export type QaMaturityCoverageScores = {
categories: Map<string, QaMaturityScoreObject>;
};
export type QaScorecardValidationIssueCode =
type QaScorecardValidationIssueCode =
| "coverage-id-missing-primary-evidence"
| "coverage-id-not-found"
| "evidence-ref-not-found"
@@ -350,7 +344,7 @@ export type QaScorecardValidationIssueCode =
| "profile-category-ref-not-found"
| "profile-category-missing-evidence";
export type QaScorecardValidationIssue = {
type QaScorecardValidationIssue = {
code: QaScorecardValidationIssueCode;
severity: "warning";
categoryId?: string;
@@ -358,7 +352,7 @@ export type QaScorecardValidationIssue = {
message: string;
};
export type QaScorecardEvidenceReport = {
type QaScorecardEvidenceReport = {
coverageId: string;
kind: QaScorecardEvidenceKind;
path: string | null;
@@ -381,12 +375,12 @@ export type QaScorecardCategoryCoverageReport = {
missingEvidenceRefs: string[];
};
export type QaScorecardCategoryFeatureCoverageReport = {
type QaScorecardCategoryFeatureCoverageReport = {
name: string;
coverageIds: string[];
};
export type QaScorecardProfileReport = {
type QaScorecardProfileReport = {
id: string;
evidenceMode: QaScorecardEvidenceMode;
channelDriver: QaScorecardChannelDriver;
@@ -417,7 +411,7 @@ export type QaScorecardTaxonomyReport = {
categories: QaScorecardCategoryCoverageReport[];
};
export type QaMaturityTaxonomyCategoryIndex = {
type QaMaturityTaxonomyCategoryIndex = {
active: QaMaturityTaxonomySurface[];
surfaces: Map<
string,
@@ -2,14 +2,14 @@
import type { RuntimeId, RuntimeParityCell, RuntimeParityResult } from "./runtime-parity.js";
import { resolveRuntimeParityUsagePolicy } from "./runtime-parity.js";
export type TokenEfficiencyRuntimeUsage = {
type TokenEfficiencyRuntimeUsage = {
inputTokens: number;
outputTokens: number;
totalTokens: number;
toolCallCount: number;
};
export type TokenEfficiencyRow = {
type TokenEfficiencyRow = {
scenarioId: string;
usageSource: "live-usage" | "mock-estimate";
openclaw: TokenEfficiencyRuntimeUsage;
@@ -20,7 +20,7 @@ export type TokenEfficiencyRow = {
toolsUsed: string[];
};
export type TokenEfficiencyReport = {
type TokenEfficiencyReport = {
status: "evaluated" | "estimated" | "skipped";
runtimePair: [RuntimeId, RuntimeId];
generatedAt: string;
@@ -53,7 +53,7 @@ export type TokenEfficiencySuiteSummary = {
};
};
export type BuildTokenEfficiencyReportParams = {
type BuildTokenEfficiencyReportParams = {
summary: TokenEfficiencySuiteSummary;
generatedAt?: string;
thresholdPercent?: number;
@@ -33,11 +33,11 @@ export type QaToolCoverageSuiteSummary = {
};
};
export type QaToolCoverageStatus = "pass" | "fail" | "missing" | "not-run";
export type QaToolCoverageDrift = RuntimeParityDrift | "not-run";
export type QaToolCoverageBucket = QaRuntimeToolBucket;
type QaToolCoverageStatus = "pass" | "fail" | "missing" | "not-run";
type QaToolCoverageDrift = RuntimeParityDrift | "not-run";
type QaToolCoverageBucket = QaRuntimeToolBucket;
export type QaToolCoverageRow = {
type QaToolCoverageRow = {
tool: string;
runtimeToolName?: string;
bucket: QaToolCoverageBucket;
@@ -59,7 +59,7 @@ export type QaToolCoverageRow = {
details?: string;
};
export type QaToolCoverageReport = {
type QaToolCoverageReport = {
runtimePair: [RuntimeId, RuntimeId];
generatedAt: string;
evaluated: boolean;
-5
View File
@@ -1,5 +1,4 @@
// Qa Matrix plugin module implements cli behavior.
import type { Command } from "commander";
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
import {
createLazyCliRuntimeLoader,
@@ -95,7 +94,3 @@ export const matrixQaCliRegistration: LiveTransportQaCliRegistration =
});
export const qaRunnerCliRegistrations = [matrixQaCliRegistration] as const;
export function registerMatrixQaCli(qa: Command) {
matrixQaCliRegistration.register(qa);
}
@@ -1348,4 +1348,3 @@ export const testing = {
waitForMatrixChannelReady,
withMatrixQaRunDeadline,
};
export { testing as __testing };
@@ -246,11 +246,11 @@ export function assertThreadReplyArtifact(
}
}
export function readMatrixQaSyncCursor(syncState: MatrixQaSyncState, actorId: MatrixQaActorId) {
function readMatrixQaSyncCursor(syncState: MatrixQaSyncState, actorId: MatrixQaActorId) {
return syncState[actorId];
}
export function writeMatrixQaSyncCursor(
function writeMatrixQaSyncCursor(
syncState: MatrixQaSyncState,
actorId: MatrixQaActorId,
since?: string,
@@ -105,22 +105,13 @@ import {
buildMatrixReplyArtifact,
buildMatrixReplyDetails,
buildMentionPrompt,
readMatrixQaSyncCursor,
runNoReplyExpectedScenario,
runTopologyScopedTopLevelScenario,
writeMatrixQaSyncCursor,
type MatrixQaScenarioContext,
} from "./scenario-runtime-shared.js";
import type { MatrixQaScenarioExecution } from "./scenario-types.js";
export {
buildMatrixReplyArtifact,
buildMatrixReplyDetails,
buildMentionPrompt,
readMatrixQaSyncCursor,
runMatrixQaCanary,
writeMatrixQaSyncCursor,
};
export { buildMatrixReplyArtifact, buildMatrixReplyDetails, buildMentionPrompt, runMatrixQaCanary };
export type { MatrixQaScenarioContext };
async function runDriverTopologyScopedScenario(params: {
@@ -50,4 +50,3 @@ export const testing = {
normalizeMatrixQaProfile: matrixQaProfileTesting.normalizeMatrixQaProfile,
resolveMatrixQaScenarioRoomId,
};
export { testing as __testing };
@@ -5,5 +5,4 @@ export {
findMissingLiveTransportStandardScenarios,
selectLiveTransportScenarios,
type LiveTransportScenarioDefinition,
type LiveTransportStandardScenarioId,
} from "openclaw/plugin-sdk/qa-live-transport-scenarios";
@@ -926,4 +926,3 @@ export const testing = {
createMatrixQaRoomObserver,
resolveNextRegistrationAuth,
};
export { testing as __testing };
@@ -585,4 +585,3 @@ export const testing = {
findMatrixQaObservedEventMatch,
shouldRecordMatrixQaObservedEventUpdate,
};
export { testing as __testing };
@@ -367,4 +367,3 @@ export const testing = {
resolveMatrixQaHarnessImage,
waitForReachableMatrixBaseUrl,
};
export { testing as __testing };
@@ -724,9 +724,3 @@ export async function startMatrixQaRecordingProxy(params: {
stop: () => proxy.stop(),
};
}
export const testing = {
buildExpectation,
normalizeMatrixQaRoute,
};
export { testing as __testing };
+1 -1
View File
@@ -184,7 +184,7 @@ export type WorkboardWorkerProtocol = {
detail?: string;
};
export type WorkboardStaleState = {
type WorkboardStaleState = {
detectedAt: number;
lastSessionUpdatedAt?: number;
reason: string;
+1 -1
View File
@@ -58,7 +58,7 @@ function parseOptionalBoolean(value: string): boolean {
throw new Error(`invalid boolean: ${value}`);
}
export function parseWorkspaceGrid(value: string): WorkspaceGrid {
function parseWorkspaceGrid(value: string): WorkspaceGrid {
const parts = value.split(",").map((entry) => Number(entry.trim()));
if (parts.length !== 4 || parts.some((entry) => !Number.isInteger(entry))) {
throw new Error("grid must be x,y,w,h");
+1 -6
View File
@@ -7,12 +7,7 @@ import {
} from "./binding-contract.js";
import type { WorkspaceBinding, JsonValue } from "./schema.js";
export {
DATA_READ_RPC_ALLOWLIST,
WorkspaceBindingResolutionError,
normalizeWorkspaceDataLogicalPath,
type WorkspaceBindingErrorCode,
} from "./binding-contract.js";
export { DATA_READ_RPC_ALLOWLIST, WorkspaceBindingResolutionError } from "./binding-contract.js";
export type ResolveBindingOptions = {
stateDir?: string;
+1 -1
View File
@@ -11,7 +11,7 @@ import type { WorkspaceStore } from "./store.js";
export { WIDGETS_ROUTE_PREFIX };
export type WidgetHttpRouteHandler = {
type WidgetHttpRouteHandler = {
handleHttpRequest: (req: IncomingMessage, res: ServerResponse) => Promise<boolean>;
};
+5 -5
View File
@@ -52,7 +52,7 @@ function hashBytes(bytes: Buffer): string {
return createHash("sha256").update(bytes).digest("hex");
}
export type ApprovedWidgetSnapshot = {
type ApprovedWidgetSnapshot = {
/** sha256 of every servable file, keyed by the logical path the route serves. */
files: Record<string, string>;
/** Parsed from the exact `widget.json` bytes that were hashed. */
@@ -200,13 +200,13 @@ export function matchesApprovedFile(
return expected !== undefined && expected === hashBytes(bytes);
}
const BINDING_ID_PATTERN = /^(?!__proto__$)[A-Za-z0-9._-]{1,64}$/;
export const WIDGET_CAPABILITIES = ["data:read", "prompt:send"] as const;
const WIDGET_CAPABILITIES = ["data:read", "prompt:send"] as const;
export type WidgetCapability = (typeof WIDGET_CAPABILITIES)[number];
type WidgetCapability = (typeof WIDGET_CAPABILITIES)[number];
export type WidgetManifestBinding = { id: string; source: "static"; value: unknown };
type WidgetManifestBinding = { id: string; source: "static"; value: unknown };
export type WidgetManifest = {
type WidgetManifest = {
schemaVersion: 1;
name: string;
title: string;
+2 -2
View File
@@ -9,7 +9,7 @@ import { resolveStateDir } from "openclaw/plugin-sdk/state-paths";
import { escapeHtml } from "openclaw/plugin-sdk/text-utility-runtime";
import { validateWidgetManifest } from "./manifest.js";
export type WorkspaceScaffoldOptions = {
type WorkspaceScaffoldOptions = {
name: string;
title?: string;
stateDir?: string;
@@ -17,7 +17,7 @@ export type WorkspaceScaffoldOptions = {
createdBy?: string;
};
export type WorkspaceScaffoldResult = {
type WorkspaceScaffoldResult = {
name: string;
title: string;
dir: string;
+4 -4
View File
@@ -10,13 +10,13 @@ export type JsonValue =
export type WorkspaceActor = "user" | "system" | `agent:${string}`;
export type WorkspaceGrid = { x: number; y: number; w: number; h: number };
export type WorkspaceRpcBinding = {
type WorkspaceRpcBinding = {
source: "rpc";
method: string;
params?: Record<string, JsonValue>;
};
export type WorkspaceFileBinding = { source: "file"; path: string; pointer?: string };
export type WorkspaceStaticBinding = { source: "static"; value: JsonValue };
type WorkspaceFileBinding = { source: "file"; path: string; pointer?: string };
type WorkspaceStaticBinding = { source: "static"; value: JsonValue };
export type WorkspaceBinding = WorkspaceRpcBinding | WorkspaceFileBinding | WorkspaceStaticBinding;
export type WorkspaceWidget = {
id: string;
@@ -54,7 +54,7 @@ export type WorkspaceDoc = {
prefs: { tabOrder: string[] };
};
export const CURRENT_WORKSPACE_SCHEMA_VERSION = 1;
const CURRENT_WORKSPACE_SCHEMA_VERSION = 1;
const TAB_SLUG_PATTERN = /^[a-z0-9-]{1,40}$/;
const ACTOR_PATTERN = /^(user|system|agent:[A-Za-z0-9._-]{1,64})$/;
+3 -3
View File
@@ -33,12 +33,12 @@ export const WIDGET_CSP =
"style-src 'self' 'unsafe-inline'; " +
"img-src 'self' data:; font-src 'self' data:; connect-src 'none'; frame-ancestors 'self'";
export type WidgetServeDeps = {
type WidgetServeDeps = {
store: WorkspaceStore;
stateDir?: string;
};
export type WidgetServeRequest = {
type WidgetServeRequest = {
method: string | undefined;
/** URL pathname (no query/hash), already URL-decoded per segment by the caller. */
pathname: string;
@@ -87,7 +87,7 @@ function hasControlCharacter(value: string): boolean {
}
/** True when the pathname is under this route's prefix (so the route owns it). */
export function isWidgetRoutePath(pathname: string): boolean {
function isWidgetRoutePath(pathname: string): boolean {
return pathname === WIDGETS_ROUTE_PREFIX || pathname.startsWith(`${WIDGETS_ROUTE_PREFIX}/`);
}
+3 -3
View File
@@ -33,8 +33,8 @@ import {
type WorkspaceDoc,
} from "./schema.js";
export type WorkspaceMutationOptions = { actor: WorkspaceActor };
export type WorkspaceMutationResult = { doc: WorkspaceDoc; changed: boolean };
type WorkspaceMutationOptions = { actor: WorkspaceActor };
type WorkspaceMutationResult = { doc: WorkspaceDoc; changed: boolean };
const MAX_WORKSPACE_BYTES = 256 * 1024;
const UNDO_RING_SIZE = 20;
@@ -81,7 +81,7 @@ function assertWorkspaceSize(serialized: string): void {
* widgets `user`, or an operator could stamp `agent:<id>`, and the AI-provenance
* chip would be a lie. Existing entities keep their stamp; new ones get `actor`.
*/
export function reconcileReplace(
function reconcileReplace(
incoming: WorkspaceDoc,
current: WorkspaceDoc,
actor: WorkspaceActor,
-136
View File
@@ -2,7 +2,6 @@
// New entries fail CI. After deleting dead code, run `pnpm deadcode:exports:update`.
// Do not add entries to avoid fixing new findings.
export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/acpx/src/process-lease.ts: AcpxProcessLeaseState",
"extensions/acpx/src/process-lease.ts: OPENCLAW_GATEWAY_INSTANCE_ID_ENV",
"extensions/acpx/src/process-reaper.ts: AcpxProcessInfo",
"extensions/acpx/src/process-reaper.ts: isOpenClawOwnedAcpxProcessCommand",
@@ -12,9 +11,6 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/canvas/src/host/a2ui.ts: isA2uiPath",
"extensions/canvas/src/host/server.ts: CANVAS_LIVE_RELOAD_MAX_INBOUND_MESSAGE_BYTES",
"extensions/clickclack/src/activity.ts: ClickClackActivityClient",
"extensions/copilot/src/attempt.ts: readString",
"extensions/copilot/src/attempt.ts: SUPPORTED_PROVIDERS",
"extensions/copilot/src/attempt.ts: toError",
"extensions/copilot/src/auth-bridge.ts: COPILOT_DEFAULT_AGENT_ID",
"extensions/copilot/src/auth-bridge.ts: COPILOT_TOKEN_PROFILE_ERROR",
"extensions/copilot/src/auth-bridge.ts: sanitizeAgentId",
@@ -29,15 +25,12 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/copilot/src/sdk-loader.ts: resetCopilotSdkCacheForTests",
"extensions/copilot/src/sdk-loader.ts: resolveCopilotSdkFallbackDir",
"extensions/copilot/src/tool-bridge.ts: convertOpenClawToolToSdkTool",
"extensions/copilot/src/tool-bridge.ts: CopilotSessionHolder",
"extensions/copilot/src/tool-bridge.ts: CopilotToolBridgeInput",
"extensions/copilot/src/tool-bridge.ts: supportsModelTools",
"extensions/copilot/src/workspace-bootstrap.ts: remapCopilotBootstrapContextFiles",
"extensions/copilot/src/workspace-bootstrap.ts: renderCopilotWorkspaceBootstrapInstructions",
"extensions/copilot/src/workspace-bootstrap.ts: TESTING_EXPORTS",
"extensions/crabbox/src/crabbox-worker-provider.ts: CRABBOX_WORKER_PROVIDER_ID",
"extensions/crabbox/src/crabbox-worker-provider.ts: CrabboxCommandRunner",
"extensions/crabbox/src/crabbox-worker-provider.ts: CrabboxWorkerProviderDependencies",
"extensions/crabbox/src/crabbox-worker-provider.ts: resolveCrabboxBinary",
"extensions/diagnostics-prometheus/src/service.ts: __test__",
"extensions/diagnostics-prometheus/src/service.ts: testApi",
@@ -334,7 +327,6 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/mattermost/src/mattermost/target-resolution.ts: parseMattermostApiStatus",
"extensions/mattermost/src/mattermost/target-resolution.ts: resetMattermostOpaqueTargetCacheForTests",
"extensions/mattermost/src/mattermost/thread-participation.ts: clearMattermostThreadParticipationCache",
"extensions/memory-core/src/cli.ts: runMemoryStatus",
"extensions/memory-core/src/concept-vocabulary.ts: classifyConceptTagScript",
"extensions/memory-core/src/dreaming-narrative.ts: appendNarrativeEntry",
"extensions/memory-core/src/dreaming-narrative.ts: buildBackfillDiaryEntry",
@@ -343,11 +335,9 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/memory-core/src/dreaming-narrative.ts: extractNarrativeText",
"extensions/memory-core/src/dreaming-narrative.ts: formatBackfillDiaryDate",
"extensions/memory-core/src/dreaming-narrative.ts: formatNarrativeDate",
"extensions/memory-core/src/dreaming-phases.ts: __testing",
"extensions/memory-core/src/dreaming-phases.ts: testing",
"extensions/memory-core/src/dreaming-state.ts: configureMemoryCoreDreamingStateForTests",
"extensions/memory-core/src/dreaming-state.ts: resetMemoryCoreDreamingStateForTests",
"extensions/memory-core/src/dreaming.ts: __testing",
"extensions/memory-core/src/dreaming.ts: reconcileShortTermDreamingCronJob",
"extensions/memory-core/src/dreaming.ts: runShortTermDreamingPromotionIfTriggered",
"extensions/memory-core/src/dreaming.ts: testing",
@@ -366,13 +356,10 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/memory-core/src/memory/manager-embedding-ops.ts: splitSourceWideEmbeddingChunks",
"extensions/memory-core/src/memory/manager-embedding-policy.ts: isRetryableMemoryEmbeddingTransportError",
"extensions/memory-core/src/memory/manager-local-worker-errors.ts: LOCAL_EMBEDDING_WORKER_ERROR_CODES",
"extensions/memory-core/src/memory/manager-local-worker-errors.ts: LocalEmbeddingWorkerFailureCode",
"extensions/memory-core/src/memory/manager-local-worker-errors.ts: LocalEmbeddingWorkerFailureError",
"extensions/memory-core/src/memory/manager-reindex-state.ts: isMemoryIndexIdentityDirty",
"extensions/memory-core/src/memory/manager-source-state.ts: MEMORY_SOURCE_FILE_HASH_SQL",
"extensions/memory-core/src/memory/manager-source-state.ts: MEMORY_SOURCE_FILE_STATE_SQL",
"extensions/memory-core/src/memory/manager-status-state.ts: MEMORY_STATUS_AGGREGATE_SQL",
"extensions/memory-core/src/memory/manager-sync-ops.ts: MemoryIndexEntry",
"extensions/memory-core/src/memory/manager-sync-ops.ts: runDetachedMemorySync",
"extensions/memory-core/src/memory/manager-targeted-sync.ts: clearMemorySyncedArchiveFiles",
"extensions/memory-core/src/memory/manager.ts: EMBEDDING_PROBE_CACHE_TTL_MS",
@@ -392,11 +379,9 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/memory-core/src/memory/search-manager.ts: MemorySearchManagerResult",
"extensions/memory-core/src/memory/temporal-decay.ts: applyTemporalDecayToScore",
"extensions/memory-core/src/memory/temporal-decay.ts: calculateTemporalDecayMultiplier",
"extensions/memory-core/src/short-term-promotion.ts: __testing",
"extensions/memory-core/src/short-term-promotion.ts: isShortTermMemoryPath",
"extensions/memory-core/src/short-term-promotion.ts: testing",
"extensions/memory-wiki/src/apply.ts: ApplyMemoryWikiMutation",
"extensions/memory-wiki/src/cli.ts: MemoryWikiCliRegistration",
"extensions/memory-wiki/src/cli.ts: runWikiBridgeImport",
"extensions/memory-wiki/src/cli.ts: runWikiChatGptImport",
"extensions/memory-wiki/src/cli.ts: runWikiChatGptRollback",
@@ -410,7 +395,6 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/memory-wiki/src/config.ts: DEFAULT_WIKI_VAULT_SCOPE",
"extensions/memory-wiki/src/config.ts: resolveDefaultMemoryWikiVaultPath",
"extensions/memory-wiki/src/config.ts: resolveDefaultMemoryWikiVaultRoot",
"extensions/memory-wiki/src/config.ts: WikiVaultScope",
"extensions/memory-wiki/src/markdown.ts: extractWikiLinks",
"extensions/memory-wiki/src/query.ts: isSessionMemoryPath",
"extensions/memory-wiki/src/vault.ts: WIKI_VAULT_DIRECTORIES",
@@ -473,7 +457,6 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/oc-path/src/cli.ts: pathValidateCommand",
"extensions/oc-path/src/oc-path/dispatch.ts: OcKind",
"extensions/oc-path/src/oc-path/emit.ts: EmitOptions",
"extensions/oc-path/src/oc-path/emit.ts: FrontmatterEntry",
"extensions/oc-path/src/oc-path/find.ts: OcPathMatch",
"extensions/oc-path/src/oc-path/index.ts: AstBlock",
"extensions/oc-path/src/oc-path/index.ts: AstItem",
@@ -523,7 +506,6 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/oc-path/src/oc-path/index.ts: YamlEmitOptions",
"extensions/oc-path/src/oc-path/index.ts: YamlParseResult",
"extensions/oc-path/src/oc-path/jsonc/emit.ts: JsoncEmitOptions",
"extensions/oc-path/src/oc-path/jsonc/parse.ts: Diagnostic",
"extensions/oc-path/src/oc-path/jsonc/parse.ts: JsoncParseResult",
"extensions/oc-path/src/oc-path/jsonc/parse.ts: MAX_JSONC_INPUT_BYTES",
"extensions/oc-path/src/oc-path/jsonl/emit.ts: JsonlEmitOptions",
@@ -535,7 +517,6 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/oc-path/src/oc-path/oc-path.ts: MAX_SUB_SEGMENTS_PER_SLOT",
"extensions/oc-path/src/oc-path/oc-path.ts: PathSegmentLayout",
"extensions/oc-path/src/oc-path/oc-path.ts: PositionalContainer",
"extensions/oc-path/src/oc-path/resolve.ts: OcPathMatch",
"extensions/oc-path/src/oc-path/universal.ts: ContainerKind",
"extensions/oc-path/src/oc-path/universal.ts: detectInsertion",
"extensions/oc-path/src/oc-path/universal.ts: InsertionInfo",
@@ -549,7 +530,6 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/ollama/src/node-inference.ts: OLLAMA_MODELS_COMMAND",
"extensions/ollama/src/provider-models.ts: parseOllamaNumCtxParameter",
"extensions/ollama/src/provider-models.ts: resetOllamaModelShowInfoCacheForTest",
"extensions/ollama/src/web-search-provider.ts: __testing",
"extensions/ollama/src/web-search-provider.ts: runOllamaWebSearch",
"extensions/ollama/src/web-search-provider.ts: testing",
"extensions/ollama/src/wsl2-crash-loop-check.ts: hasWslCuda",
@@ -559,7 +539,6 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/openshell/src/backend.ts: buildOpenShellSandboxName",
"extensions/openshell/src/backend.ts: buildOpenShellSshExecEnv",
"extensions/openshell/src/backend.ts: ENSURE_OPEN_SHELL_REMOTE_REAL_DIRECTORY_SCRIPT",
"extensions/openshell/src/backend.ts: OpenShellFsBridgeContext",
"extensions/openshell/src/backend.ts: OpenShellSandboxBackend",
"extensions/openshell/src/backend.ts: PINNED_REMOTE_PATH_MUTATION_SCRIPT",
"extensions/openshell/src/cli.ts: applyGatewayEndpointToSshConfig",
@@ -579,11 +558,7 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/policy/src/doctor/fix-metadata.ts: PolicyFixMetadata",
"extensions/policy/src/doctor/metadata.ts: PolicyEmptyListSemantics",
"extensions/policy/src/doctor/metadata.ts: PolicyStrictnessKind",
"extensions/policy/src/doctor/register.ts: PolicyEmptyListSemantics",
"extensions/policy/src/doctor/register.ts: PolicyEvaluation",
"extensions/policy/src/doctor/register.ts: PolicyStrictnessKind",
"extensions/policy/src/doctor/register.ts: resetPolicyDoctorChecksForTest",
"extensions/policy/src/doctor/register.ts: SANDBOX_CONTAINER_POLICY_RULES",
"extensions/policy/src/policy-state.ts: policyAttestationHash",
"extensions/policy/src/policy-state.ts: policyFindingsHash",
"extensions/policy/src/policy-state.ts: policyWorkspaceHash",
@@ -592,102 +567,48 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/policy/src/policy-state.ts: scanPolicyIngress",
"extensions/policy/src/policy-state.ts: scanPolicyMcpServers",
"extensions/policy/src/policy-state.ts: scanPolicyTools",
"extensions/qa-channel/src/channel-base.ts: qaChannelSetupMeta",
"extensions/qa-channel/src/inbound.ts: isHttpMediaUrl",
"extensions/qa-lab/src/agentic-parity-report.ts: computeQaAgenticParityMetrics",
"extensions/qa-lab/src/agentic-parity-report.ts: QaParityLabelMismatchError",
"extensions/qa-lab/src/agentic-parity-report.ts: QaParityReportScenario",
"extensions/qa-lab/src/agentic-parity-report.ts: QaRuntimeParityReport",
"extensions/qa-lab/src/agentic-parity.ts: QA_AGENTIC_PARITY_SCENARIO_IDS",
"extensions/qa-lab/src/character-eval.ts: QaCharacterEvalJudgment",
"extensions/qa-lab/src/character-eval.ts: QaCharacterEvalParams",
"extensions/qa-lab/src/child-output.ts: QA_CHILD_STDERR_TAIL_BYTES",
"extensions/qa-lab/src/confidence-report.ts: buildQaConfidenceSelfTestSummary",
"extensions/qa-lab/src/confidence-report.ts: QaConfidenceManifest",
"extensions/qa-lab/src/evidence-gallery.ts: QaEvidenceArtifactView",
"extensions/qa-lab/src/evidence-gallery.ts: QaEvidenceGalleryEntryView",
"extensions/qa-lab/src/evidence-gallery.ts: QaEvidenceGalleryModel",
"extensions/qa-lab/src/evidence-gallery.ts: QaEvidenceMatrixCellView",
"extensions/qa-lab/src/evidence-gallery.ts: QaEvidenceProducerContext",
"extensions/qa-lab/src/evidence-gallery.ts: QaEvidenceProducerContextFile",
"extensions/qa-lab/src/evidence-summary.ts: resolveQaEvidenceEnvironment",
"extensions/qa-lab/src/gateway-child.ts: __testing",
"extensions/qa-lab/src/gateway-child.ts: buildQaForcedRuntimeEnvPatch",
"extensions/qa-lab/src/gateway-log-sentinel.ts: GatewayLogSentinelAssertOptions",
"extensions/qa-lab/src/gateway-log-sentinel.ts: GatewayLogSentinelKind",
"extensions/qa-lab/src/gateway-log-sentinel.ts: GatewayLogSentinelOwner",
"extensions/qa-lab/src/gateway-log-sentinel.ts: GatewayLogSentinelScanOptions",
"extensions/qa-lab/src/gateway-log-sentinel.ts: GatewayLogSentinelVerdict",
"extensions/qa-lab/src/gateway-process-boundary.ts: __testing",
"extensions/qa-lab/src/gateway-process-boundary.ts: parseQaGatewayProcStat",
"extensions/qa-lab/src/gateway-process-boundary.ts: QA_GATEWAY_PROCESS_BOUNDARY_MIN_QUARANTINE_TTL_MS",
"extensions/qa-lab/src/gateway-process-boundary.ts: QA_GATEWAY_PROCESS_BOUNDARY_RETAIN_LEASE_PREFIX",
"extensions/qa-lab/src/gateway-process-boundary.ts: QaGatewayLinuxProcessBoundary",
"extensions/qa-lab/src/gateway-process-boundary.ts: QaGatewayProcessBoundaryPreparedSpawn",
"extensions/qa-lab/src/harness-parity.ts: HarnessParityCell",
"extensions/qa-lab/src/harness-parity.ts: HarnessParityPromptStats",
"extensions/qa-lab/src/harness-parity.ts: HarnessParityResult",
"extensions/qa-lab/src/harness-parity.ts: HarnessVariant",
"extensions/qa-lab/src/jsonl-replay.ts: JsonlReplayCellRunner",
"extensions/qa-lab/src/jsonl-replay.ts: JsonlReplayMarkdownReport",
"extensions/qa-lab/src/jsonl-replay.ts: JsonlReplayOptions",
"extensions/qa-lab/src/jsonl-replay.ts: JsonlReplayResult",
"extensions/qa-lab/src/jsonl-replay.ts: JsonlReplayTurn",
"extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts: __testing",
"extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts: listDiscordQaScenarioCatalog",
"extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts: testing",
"extensions/qa-lab/src/live-transports/shared/canonical-scenarios.ts: CanonicalScenarioPartition",
"extensions/qa-lab/src/live-transports/shared/canonical-scenarios.ts: WHATSAPP_MOCK_DEFAULT_CANONICAL_SCENARIO_IDS",
"extensions/qa-lab/src/live-transports/shared/live-approval-result.ts: readAcceptedApprovalRequest",
"extensions/qa-lab/src/live-transports/shared/live-credential-source.ts: QaInferredCredentialSource",
"extensions/qa-lab/src/live-transports/shared/live-transport-result.ts: LiveTransportRttMeasurement",
"extensions/qa-lab/src/live-transports/shared/live-transport-rtt.ts: percentile",
"extensions/qa-lab/src/live-transports/shared/live-transport-scenarios.ts: findMissingLiveTransportStandardScenarios",
"extensions/qa-lab/src/live-transports/shared/live-transport-scenarios.ts: LIVE_TRANSPORT_BASELINE_STANDARD_SCENARIO_IDS",
"extensions/qa-lab/src/live-transports/shared/live-transport-scenarios.ts: LIVE_TRANSPORT_COVERAGE_LANES",
"extensions/qa-lab/src/live-transports/shared/live-transport-scenarios.ts: LiveTransportCoverageLane",
"extensions/qa-lab/src/live-transports/shared/live-transport-scenarios.ts: LiveTransportCoverageMember",
"extensions/qa-lab/src/live-transports/shared/live-transport-scenarios.ts: LiveTransportStandardScenarioId",
"extensions/qa-lab/src/live-transports/slack/cli.ts: slackQaAdapterFactory",
"extensions/qa-lab/src/live-transports/slack/slack-live.runtime.ts: SlackQaRunResult",
"extensions/qa-lab/src/live-transports/slack/slack-live.runtime.ts: testing",
"extensions/qa-lab/src/live-transports/telegram/cli.ts: telegramQaAdapterFactory",
"extensions/qa-lab/src/live-transports/telegram/telegram-live.runtime.ts: testing",
"extensions/qa-lab/src/live-transports/whatsapp/cli.ts: whatsappQaAdapterFactory",
"extensions/qa-lab/src/live-transports/whatsapp/whatsapp-live.runtime.ts: testing",
"extensions/qa-lab/src/live-transports/whatsapp/whatsapp-live.runtime.ts: unpackWhatsAppAuthArchive",
"extensions/qa-lab/src/live-transports/whatsapp/whatsapp-live.runtime.ts: WHATSAPP_QA_STANDARD_SCENARIO_IDS",
"extensions/qa-lab/src/live-transports/whatsapp/whatsapp-live.runtime.ts: WhatsAppQaRunResult",
"extensions/qa-lab/src/mantis-phase-timer.runtime.ts: MantisPhaseTiming",
"extensions/qa-lab/src/mantis/crabbox-runtime.ts: CommandResult",
"extensions/qa-lab/src/mantis/crabbox-runtime.ts: extractLeaseId",
"extensions/qa-lab/src/mantis/desktop-browser-smoke.runtime.ts: MantisDesktopBrowserSmokeResult",
"extensions/qa-lab/src/mantis/discord-smoke.runtime.ts: MantisDiscordSmokeResult",
"extensions/qa-lab/src/mantis/run.runtime.ts: MantisBeforeAfterResult",
"extensions/qa-lab/src/mantis/slack-desktop-smoke.runtime.ts: MantisSlackDesktopSmokeResult",
"extensions/qa-lab/src/mantis/telegram-desktop-builder.runtime.ts: MantisTelegramDesktopBuilderResult",
"extensions/qa-lab/src/mantis/visual-task.runtime.ts: MantisVisualTaskResult",
"extensions/qa-lab/src/model-selection.runtime.ts: resolveQaPreferredLiveModel",
"extensions/qa-lab/src/multipass.runtime.ts: createQaMultipassPlan",
"extensions/qa-lab/src/multipass.runtime.ts: renderQaMultipassGuestScript",
"extensions/qa-lab/src/providers/mock-openai/server.ts: MockOpenAiProviderVariant",
"extensions/qa-lab/src/providers/mock-openai/server.ts: resolveProviderVariant",
"extensions/qa-lab/src/qa-agent-workspace.ts: __testing",
"extensions/qa-lab/src/qa-transport-registry.ts: createQaTransportAdapterFactoryRegistry",
"extensions/qa-lab/src/qa-transport.ts: QaTransportOutboundMatch",
"extensions/qa-lab/src/qa-transport.ts: QaTransportOutboundSequence",
"extensions/qa-lab/src/qa-transport.ts: QaTransportWaitForNoOutboundInput",
"extensions/qa-lab/src/qa-web-search-provider.shared.ts: QA_LAB_WEB_SEARCH_PROVIDER_ID",
"extensions/qa-lab/src/qa-web-search-provider.ts: QA_LAB_WEB_SEARCH_PROVIDER_ID",
"extensions/qa-lab/src/run-config.ts: createDefaultQaRunSelection",
"extensions/qa-lab/src/runtime-parity.ts: __testing",
"extensions/qa-lab/src/runtime-parity.ts: testing",
"extensions/qa-lab/src/runtime-tool-metadata.ts: QA_RUNTIME_CAPABILITY_LAYERS",
"extensions/qa-lab/src/runtime-tool-metadata.ts: QA_RUNTIME_TOOL_BUCKETS",
"extensions/qa-lab/src/runtime-tool-metadata.ts: QA_RUNTIME_TOOL_EXPECTED_LAYERS",
"extensions/qa-lab/src/scenario-catalog.ts: QA_OBSERVABILITY_SCENARIO_IDS",
"extensions/qa-lab/src/scenario-catalog.ts: QA_PERSONAL_AGENT_SCENARIO_IDS",
"extensions/qa-lab/src/scenario-catalog.ts: QaScenarioPackDefinition",
"extensions/qa-lab/src/scenario-catalog.ts: resolveQaScenarioPackScenarioIds",
"extensions/qa-lab/src/scenario-packs.ts: QA_OBSERVABILITY_SCENARIO_IDS",
"extensions/qa-lab/src/scenario-packs.ts: QA_PERSONAL_AGENT_SCENARIO_IDS",
@@ -697,34 +618,19 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/qa-lab/src/scorecard-evidence.ts: buildQaProfileScorecardEvidence",
"extensions/qa-lab/src/scorecard-taxonomy.ts: activeQaMaturityTaxonomySurfaces",
"extensions/qa-lab/src/scorecard-taxonomy.ts: buildQaScorecardTaxonomyReport",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QA_MATURITY_SCORE_KEYS",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QA_MATURITY_SCORE_LABEL_BANDS",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QA_MATURITY_SCORE_LABELS",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QA_MATURITY_SCORES_PATH",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QA_MATURITY_TAXONOMY_PATH",
"extensions/qa-lab/src/scorecard-taxonomy.ts: qaMaturityCoverageCategoryKey",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaMaturityCoverageScores",
"extensions/qa-lab/src/scorecard-taxonomy.ts: qaMaturityFamilyOrder",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaMaturityScoreObject",
"extensions/qa-lab/src/scorecard-taxonomy.ts: qaMaturityScoreObjectForScore",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaMaturityScores",
"extensions/qa-lab/src/scorecard-taxonomy.ts: qaMaturityScoresSchema",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaMaturityScoreSurface",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaMaturityScoreSurfaceLts",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaMaturityTaxonomy",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaMaturityTaxonomyCategory",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaMaturityTaxonomyCategoryIndex",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaMaturityTaxonomyLevel",
"extensions/qa-lab/src/scorecard-taxonomy.ts: qaMaturityTaxonomyLevelMap",
"extensions/qa-lab/src/scorecard-taxonomy.ts: qaMaturityTaxonomySchema",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaMaturityTaxonomySurface",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaNativeCoverageEvidenceKind",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaScorecardCategoryFeatureCoverageReport",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaScorecardEvidenceKind",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaScorecardEvidenceReport",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaScorecardProfileReport",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaScorecardValidationIssue",
"extensions/qa-lab/src/scorecard-taxonomy.ts: QaScorecardValidationIssueCode",
"extensions/qa-lab/src/scorecard-taxonomy.ts: readQaMaturityTaxonomySource",
"extensions/qa-lab/src/scorecard-taxonomy.ts: readValidatedQaMaturityScoreSources",
"extensions/qa-lab/src/static-ssh-worker-provider.ts: STATIC_SSH_WORKER_PROVIDER_ID",
@@ -742,42 +648,22 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/qa-lab/src/suite-summary.ts: readQaSuiteFailedOrSkippedScenarioCountFromSummary",
"extensions/qa-lab/src/suite-summary.ts: readQaSuiteFailedScenarioCountFromSummary",
"extensions/qa-lab/src/suite.ts: runQaScenarioWithFlakeRetry",
"extensions/qa-lab/src/token-efficiency-report.ts: BuildTokenEfficiencyReportParams",
"extensions/qa-lab/src/token-efficiency-report.ts: TokenEfficiencyReport",
"extensions/qa-lab/src/token-efficiency-report.ts: TokenEfficiencyRow",
"extensions/qa-lab/src/token-efficiency-report.ts: TokenEfficiencyRuntimeUsage",
"extensions/qa-lab/src/tool-coverage-report.ts: QaToolCoverageBucket",
"extensions/qa-lab/src/tool-coverage-report.ts: QaToolCoverageDrift",
"extensions/qa-lab/src/tool-coverage-report.ts: QaToolCoverageReport",
"extensions/qa-lab/src/tool-coverage-report.ts: QaToolCoverageRow",
"extensions/qa-lab/src/tool-coverage-report.ts: QaToolCoverageStatus",
"extensions/qa-lab/src/windows-system-tools.ts: resolveQaWindowsSystemRoot",
"extensions/qa-matrix/src/cli.ts: matrixQaAdapterFactory",
"extensions/qa-matrix/src/cli.ts: matrixQaCliRegistration",
"extensions/qa-matrix/src/cli.ts: registerMatrixQaCli",
"extensions/qa-matrix/src/runners/contract/runtime.ts: __testing",
"extensions/qa-matrix/src/runners/contract/runtime.ts: testing",
"extensions/qa-matrix/src/runners/contract/scenario-runtime-cli.ts: resolveMatrixQaOpenClawCliEntryPath",
"extensions/qa-matrix/src/runners/contract/scenario-runtime-cli.ts: testing",
"extensions/qa-matrix/src/runners/contract/scenario-runtime-e2ee-destructive.ts: testing",
"extensions/qa-matrix/src/runners/contract/scenario-runtime.ts: readMatrixQaSyncCursor",
"extensions/qa-matrix/src/runners/contract/scenario-runtime.ts: writeMatrixQaSyncCursor",
"extensions/qa-matrix/src/runners/contract/scenarios.ts: __testing",
"extensions/qa-matrix/src/runners/contract/scenarios.ts: MatrixQaScenarioContext",
"extensions/qa-matrix/src/runners/contract/scenarios.ts: testing",
"extensions/qa-matrix/src/shared/live-transport-scenarios.ts: findMissingLiveTransportStandardScenarios",
"extensions/qa-matrix/src/shared/live-transport-scenarios.ts: LIVE_TRANSPORT_BASELINE_STANDARD_SCENARIO_IDS",
"extensions/qa-matrix/src/shared/live-transport-scenarios.ts: LiveTransportStandardScenarioId",
"extensions/qa-matrix/src/substrate/client.ts: __testing",
"extensions/qa-matrix/src/substrate/client.ts: testing",
"extensions/qa-matrix/src/substrate/e2ee-client.ts: __testing",
"extensions/qa-matrix/src/substrate/e2ee-client.ts: testing",
"extensions/qa-matrix/src/substrate/fault-proxy.ts: MatrixQaFaultProxy",
"extensions/qa-matrix/src/substrate/harness.runtime.ts: __testing",
"extensions/qa-matrix/src/substrate/harness.runtime.ts: testing",
"extensions/qa-matrix/src/substrate/harness.runtime.ts: writeMatrixQaHarnessFiles",
"extensions/qa-matrix/src/substrate/recording-proxy.ts: __testing",
"extensions/qa-matrix/src/substrate/recording-proxy.ts: testing",
"extensions/qa-matrix/src/windows-system-tools.ts: resolveMatrixQaWindowsSystemRoot",
"extensions/qqbot/src/bridge/plugin-version.ts: QQBOT_PLUGIN_VERSION_UNKNOWN",
"extensions/qqbot/src/bridge/runtime.ts: resetQQBotRuntimeForTest",
@@ -1097,34 +983,12 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [
"extensions/workboard/src/store.ts: PersistedWorkboardCard",
"extensions/workboard/src/store.ts: PersistedWorkboardNotificationSubscription",
"extensions/workboard/src/store.ts: WorkboardKeyedStore",
"extensions/workboard/src/types.ts: WorkboardStaleState",
"extensions/workspaces/src/binding-contract.ts: WorkspaceBindingErrorCode",
"extensions/workspaces/src/broadcast.ts: resetWorkspaceBroadcastForTest",
"extensions/workspaces/src/cli.ts: parseWorkspaceBindingShorthand",
"extensions/workspaces/src/cli.ts: parseWorkspaceGrid",
"extensions/workspaces/src/data-read.ts: normalizeWorkspaceDataLogicalPath",
"extensions/workspaces/src/data-read.ts: WorkspaceBindingErrorCode",
"extensions/workspaces/src/http-route.ts: WidgetHttpRouteHandler",
"extensions/workspaces/src/manifest.ts: ApprovedWidgetSnapshot",
"extensions/workspaces/src/manifest.ts: loadWidgetManifest",
"extensions/workspaces/src/manifest.ts: WIDGET_CAPABILITIES",
"extensions/workspaces/src/manifest.ts: WidgetCapability",
"extensions/workspaces/src/manifest.ts: WidgetManifest",
"extensions/workspaces/src/manifest.ts: WidgetManifestBinding",
"extensions/workspaces/src/scaffold.ts: WorkspaceScaffoldOptions",
"extensions/workspaces/src/scaffold.ts: WorkspaceScaffoldResult",
"extensions/workspaces/src/schema.ts: CURRENT_WORKSPACE_SCHEMA_VERSION",
"extensions/workspaces/src/schema.ts: WorkspaceFileBinding",
"extensions/workspaces/src/schema.ts: WorkspaceRpcBinding",
"extensions/workspaces/src/schema.ts: WorkspaceStaticBinding",
"extensions/workspaces/src/serve.ts: isWidgetRoutePath",
"extensions/workspaces/src/serve.ts: parseWidgetRequestPath",
"extensions/workspaces/src/serve.ts: WIDGET_CSP",
"extensions/workspaces/src/serve.ts: WidgetServeDeps",
"extensions/workspaces/src/serve.ts: WidgetServeRequest",
"extensions/workspaces/src/store.ts: reconcileReplace",
"extensions/workspaces/src/store.ts: WorkspaceMutationOptions",
"extensions/workspaces/src/store.ts: WorkspaceMutationResult",
"extensions/xai/src/responses-tool-shared.ts: __testing",
"extensions/xai/src/responses-tool-shared.ts: resolveXaiResponseTextAndCitations",
"extensions/xai/src/responses-tool-shared.ts: resolveXaiResponseTextCitationsAndInline",