mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-21 10:16:44 +00:00
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:
@@ -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 = {
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 };
|
||||
|
||||
@@ -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 };
|
||||
|
||||
@@ -169,7 +169,7 @@ type WikiCommandOptions = {
|
||||
agent?: string;
|
||||
};
|
||||
|
||||
export type MemoryWikiCliRegistration = {
|
||||
type MemoryWikiCliRegistration = {
|
||||
config: ResolvedMemoryWikiConfig;
|
||||
resolveConfig?: MemoryWikiConfigResolver;
|
||||
getAppConfig?: () => OpenClawConfig | undefined;
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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 };
|
||||
|
||||
@@ -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 };
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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>/";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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") {
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 };
|
||||
|
||||
@@ -184,7 +184,7 @@ export type WorkboardWorkerProtocol = {
|
||||
detail?: string;
|
||||
};
|
||||
|
||||
export type WorkboardStaleState = {
|
||||
type WorkboardStaleState = {
|
||||
detectedAt: number;
|
||||
lastSessionUpdatedAt?: number;
|
||||
reason: string;
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>;
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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})$/;
|
||||
|
||||
@@ -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}/`);
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user