Files
openclaw/test/external-script-modules.d.ts
Peter Steinberger fe261b0f59 chore(tooling): typecheck root test/** with a dedicated tsgo lane (#104475)
* chore(types): add declaration files for scripts/lib and scripts/e2e modules

* chore(types): add declaration files for top-level script modules (a-m)

* chore(types): add declaration files for top-level script modules (n-z)

* test: use a non-secret-shaped gateway token fixture

* test: type ci workflow guard helpers for the root test lane

* chore(tooling): typecheck root test/** with a dedicated tsgo lane

- test/tsconfig/tsconfig.test.root.json: root-test program (strict unused checks,
  fixtures excluded; two Docker E2E clients that import built dist/** stay out,
  same rationale as the scripts/e2e exclusion in tsconfig.scripts.json)
- tsgo:test:root wired into tsgo:test, check:test-types, scripts/check.mjs, and
  the ci.yml test-types shard, mirroring the tsgo:scripts lane (#104348)
- changed-lane routing: test/**/*.ts (excluding fixtures) and the lane tsconfig
  now trigger 'typecheck test root' in check:changed; previously test/ paths ran
  lint only, so harness type errors surfaced first in CI (#104287 envDir case)
- burn down all 1071 latent type errors in the program: precise param/local
  types across test/scripts, test/vitest, test/e2e, and transitive scripts/e2e
  program members; 205 sibling .d.mts declaration files for imported .mjs
  modules (committed separately); zero any, zero ts-expect-error
- resolve the pre-existing testing star-export ambiguity in
  scripts/e2e/parallels/common.ts with an explicit re-export

Closes #104388

* chore(types): correct declaration fidelity per structured review

- re-derive 51 .d.mts files from implementation data flow instead of
  initializers: fix a wrong never return (runTestProjectsDelegation returns
  the child), add encoding-sensitive exec/spawn overloads (plain-gh), restore
  the full release profile union, make parsed paths string | null, add missing
  parseArgs fields via help/non-help unions, add a missing sibling declaration
  (budget-number-args), drop 15 unused lint directives
- precise install-record/tuple typing removes the type-aware oxlint
  regressions the first declarations caused in scripts/e2e implementations
- route .mts declaration edits under test/ to the testRoot lane and reference
  the test-root project from tsconfig.projects.json so tsgo:all covers it
  (closes both review findings against the lane wiring)

* chore(scripts): keep telegram runner dist typing structural for the boundary guard

* chore(types): declare runtime pack and gateway readiness exports added on main

* test: pin the importTargetPlan form of the plugin-contract plan import

The guard expectation still referenced the raw await import( form that
7ae5996bb3 (#103975) replaced with the importTargetPlan fallback helper;
the assertion fails on current main.
2026-07-11 06:15:41 -07:00

152 lines
5.1 KiB
TypeScript

declare module "*security/opengrep/check-rule-metadata.mjs" {
export function validateRuleMetadata(
rules: Array<{ id: string; metadata?: Record<string, string> }>,
): string[];
}
declare module "*scripts/ui.js" {
type SpawnCall = {
command: string;
args: string[];
options: {
cwd?: string;
env?: NodeJS.ProcessEnv;
shell: boolean;
stdio: string;
windowsVerbatimArguments?: boolean;
};
};
export function shouldUseCmdExeForCommand(cmd: string, platform?: NodeJS.Platform): boolean;
export function resolveSpawnCall(
cmd: string,
args: string[],
envOverride?: NodeJS.ProcessEnv,
params?: { comSpec?: string; cwd?: string; nodeExecPath?: string; platform?: NodeJS.Platform },
): SpawnCall;
export function resolvePnpmSpawnCall(
pnpmArgs: string[],
envOverride?: NodeJS.ProcessEnv,
params?: { comSpec?: string; cwd?: string; nodeExecPath?: string; platform?: NodeJS.Platform },
): SpawnCall;
export function isDirectScriptExecution(
entry?: string,
scriptPath?: string,
realpath?: (path: string) => string,
): boolean;
}
declare module "*openclaw-changelog-update/scripts/verify-release-notes.mjs" {
type ContributionRecord = {
externalReferences?: string[];
references: number[];
thanks: string[];
};
export function createGithubSnapshotState(params: Record<string, unknown>): {
base: string;
checkpointEvery: number;
dirty: boolean;
filePath: string;
hits: number;
misses: number;
repository: string;
responses: Record<string, unknown>;
target: string;
writesSincePersist: number;
};
export function githubApiWithSnapshot(
args: string[],
fetchApi: (args: string[]) => unknown,
snapshotState: Record<string, unknown>,
): unknown;
export function persistGithubSnapshot(snapshotState: Record<string, unknown>): void;
export function defaultGithubSnapshotPath(
base: string,
target: string,
gitCommonDir: string,
): string;
export function renderContributionRecordEntry(entry: Record<string, unknown>): string;
export function releaseNoteReferences(
sectionSource: string,
shippedBaselines: unknown[],
): number[];
export function standardRevertedHash(message: string): string | null;
export function contributionRecordFor(section: Record<string, unknown>): {
legacyIssues: Map<number, unknown>;
pullRequests: Map<number, ContributionRecord>;
};
export function cumulativeShippedPullRequests(changelog: unknown, label: string): Set<number>;
export function subtractShippedPullRequests(
source: unknown,
baselines: unknown[],
): {
baselines: unknown[];
pullRequests: Set<number>;
};
export function withoutExcludedContributionRecords(
record: {
legacyIssues: Map<number, ContributionRecord>;
pullRequests: Map<number, ContributionRecord>;
},
excluded: Set<number>,
): {
legacyIssues: Map<number, ContributionRecord>;
pullRequests: Map<number, ContributionRecord>;
};
export function contaminatingPullRequestReferences(params: Record<string, unknown>): unknown[];
export function canonicalMainCommitMatches(commit: unknown, candidates: unknown[]): unknown[];
export function canonicalPullRequests(
currentPullRequests: unknown[],
mainPullRequests: unknown[],
hasCanonicalMainCommit?: boolean,
): unknown[];
export function ledgerFor(...args: unknown[]): {
entries: unknown[];
issues: unknown[];
ledger: string;
pullRequests: unknown[];
titleReferences: unknown[];
};
export function countTopLevelSectionBullets(sectionSource: string, heading: string): number;
export function highlightCountError(sectionSource: string): string | undefined;
export function ledgerChecks(...args: unknown[]): string[];
}
declare module "*openclaw-live-updater/scripts/update-main.mjs" {
type UpdateResult = Record<string, unknown> & {
actions: Record<string, unknown>;
buildBefore: Record<string, unknown>;
changedPaths?: string[];
macTarget?: Record<string, unknown>;
release?: () => void;
};
export function originMatches(remoteUrl: string): boolean;
export function classifyActions(
changedPaths: string[],
options: Record<string, unknown>,
): Record<string, unknown>;
export function inspectBuildState(checkout: string, expectedSha: string): UpdateResult;
export function acquireMaintenanceLock(
checkout: string,
requestedPath?: string,
): {
acquired: boolean;
owner: { pid: number; checkout?: string; startedAt?: string };
release?: () => void;
};
export function parseGatewayLogAudit(output: string, sinceMs: number): Record<string, unknown>;
export function verifyGatewayReadiness(
runCommand: (command: string, args: string[], checkout: string) => unknown,
checkout: string,
expectedSha: string,
sleep?: (ms: number) => void,
): void;
export function findExactMacTarget(
processes: string,
executable: string,
): { executable: string; pid: number } | null;
export function maintainMain(
options: Record<string, unknown>,
dependencies?: Record<string, unknown>,
): UpdateResult;
}