From bcf79a713613951a34a67f6d23d90b92fe28dab6 Mon Sep 17 00:00:00 2001 From: Mikael Hugo Date: Mon, 4 May 2026 19:02:04 +0200 Subject: [PATCH] fix(types): update .d.ts declarations with all exported symbols Update all TypeScript declaration files to include every exported function, const, and interface from their corresponding .js modules. Fixes TS2305 errors for missing exports. - preferences: add all 16 exported functions - preferences-models: add all 20 exported functions - gitignore: add all 6 exported functions - agentic-docs-scaffold: add SCAFFOLD_FILES const - doc-checker: add formatDocCheckReport - code-intelligence: add all 21 exports including backend constants - native-git-bridge: add all 50+ exported git operations - paths: add all 30+ path resolution functions - repo-identity: add all 9 exported functions - trace-collector: add Span/Trace interfaces and all 12 functions - types: add SFState interface - doctor: add both exported functions - url-utils: add all 8 exported functions - config: add RemoteConfig interface and all functions --- .../extensions/remote-questions/config.d.ts | 4 +- .../extensions/search-the-web/url-utils.d.ts | 9 ++- .../extensions/sf/agentic-docs-scaffold.d.ts | 9 +-- .../extensions/sf/code-intelligence.d.ts | 32 +++++++--- src/resources/extensions/sf/doc-checker.d.ts | 9 +-- src/resources/extensions/sf/doctor.d.ts | 10 +-- src/resources/extensions/sf/gitignore.d.ts | 8 ++- .../extensions/sf/native-git-bridge.d.ts | 61 ++++++++++++++++--- src/resources/extensions/sf/paths.d.ts | 32 +++++++++- .../extensions/sf/preferences-models.d.ts | 28 ++++++--- src/resources/extensions/sf/preferences.d.ts | 29 +++++---- .../extensions/sf/repo-identity.d.ts | 19 +++--- .../extensions/sf/trace-collector.d.ts | 14 ++++- src/resources/extensions/sf/types.d.ts | 33 ++-------- 14 files changed, 190 insertions(+), 107 deletions(-) diff --git a/src/resources/extensions/remote-questions/config.d.ts b/src/resources/extensions/remote-questions/config.d.ts index 96d2e17ee..aa3c9b16b 100644 --- a/src/resources/extensions/remote-questions/config.d.ts +++ b/src/resources/extensions/remote-questions/config.d.ts @@ -5,4 +5,6 @@ export interface RemoteConfig { } export function resolveRemoteConfig(): RemoteConfig; -export function loadRemoteConfig(path?: string): RemoteConfig; +export function resolveRemotePreferenceConfig(hydrateTokens?: boolean): RemoteConfig; +export function getRemoteConfigStatus(): string; +export function isValidChannelId(channel: string, id: string): boolean; diff --git a/src/resources/extensions/search-the-web/url-utils.d.ts b/src/resources/extensions/search-the-web/url-utils.d.ts index 9e5ed32f8..3f7542a19 100644 --- a/src/resources/extensions/search-the-web/url-utils.d.ts +++ b/src/resources/extensions/search-the-web/url-utils.d.ts @@ -1,3 +1,8 @@ -export function normalizeUrl(url: string): string; -export function isValidUrl(url: string): boolean; +export function setFetchAllowedUrls(hostnames: string[]): void; +export function getFetchAllowedUrls(): string[]; +export function isBlockedUrl(url: string): boolean; +export function normalizeQuery(query: string): string; +export function toDedupeKey(url: string): string; export function extractDomain(url: string): string; +export function detectFreshness(query: string): string | null; +export function detectDomainHints(query: string): string[]; diff --git a/src/resources/extensions/sf/agentic-docs-scaffold.d.ts b/src/resources/extensions/sf/agentic-docs-scaffold.d.ts index a6bc3db81..b188266db 100644 --- a/src/resources/extensions/sf/agentic-docs-scaffold.d.ts +++ b/src/resources/extensions/sf/agentic-docs-scaffold.d.ts @@ -1,7 +1,2 @@ -export interface ScaffoldResult { - success: boolean; - files?: string[]; - error?: string; -} - -export function scaffoldDocs(options?: { basePath?: string }): ScaffoldResult; +export const SCAFFOLD_FILES: string[]; +export function ensureAgenticDocsScaffold(basePath?: string): void; diff --git a/src/resources/extensions/sf/code-intelligence.d.ts b/src/resources/extensions/sf/code-intelligence.d.ts index 9b3e28bf2..ea97f587c 100644 --- a/src/resources/extensions/sf/code-intelligence.d.ts +++ b/src/resources/extensions/sf/code-intelligence.d.ts @@ -1,8 +1,24 @@ -export interface CodeIntelligenceResult { - symbols?: string[]; - dependencies?: string[]; - complexity?: number; -} - -export function analyzeCode(path: string): CodeIntelligenceResult; -export function getSymbolDefinitions(query: string): unknown[]; +export const PROJECT_RAG_MCP_SERVER_NAME: string; +export function detectProjectRag(projectRoot: string, prefs: Record, env?: NodeJS.ProcessEnv): unknown; +export function resolveProjectRagBinary(env?: NodeJS.ProcessEnv): string | null; +export function resolveSiftBinary(env?: NodeJS.ProcessEnv): string | null; +export function detectSift(_projectRoot: string, prefs: Record, env?: NodeJS.ProcessEnv): unknown; +export function ensureSiftIndexWarmup(projectRoot: string, prefs: Record, options?: Record): Promise; +export function resolveProjectRagBuildJobs(env?: NodeJS.ProcessEnv): number; +export function findProjectRagSourceDir(projectRoot: string, env?: NodeJS.ProcessEnv): string | null; +export function resolveProjectRagBinaryForProject(projectRoot: string, env?: NodeJS.ProcessEnv): string | null; +export function buildProjectRagMcpServerConfig(projectRoot?: string, env?: NodeJS.ProcessEnv): Record; +export function buildProjectRagBinary(projectRoot: string, env?: NodeJS.ProcessEnv): boolean; +export function ensureProjectRagMcpConfig(projectRoot: string, env?: NodeJS.ProcessEnv): void; +export function resolveCodebaseIndexerBackendName(prefs: Record): string; +export function resolveEffectiveCodebaseIndexerBackendName(projectRoot: string, prefs: Record, env?: NodeJS.ProcessEnv): string; +export function getCodebaseIndexerBackend(prefsOrName: Record | string): unknown; +export function detectCodebaseIndexer(projectRoot: string, prefs: Record, env?: NodeJS.ProcessEnv): unknown; +export function formatCodebaseIndexerStatus(projectRoot: string, prefs: Record, env?: NodeJS.ProcessEnv): string; +export function buildCodeIntelligenceContextBlock(projectRoot: string, prefs: Record, env?: NodeJS.ProcessEnv): string; +export function formatProjectRagStatus(projectRoot: string, prefs: Record, env?: NodeJS.ProcessEnv): string; +export function formatSiftStatus(projectRoot: string, prefs: Record, env?: NodeJS.ProcessEnv): string; +export const PROJECT_RAG_CODEBASE_INDEXER_BACKEND: Record; +export const SIFT_CODEBASE_INDEXER_BACKEND: Record; +export const NO_CODEBASE_INDEXER_BACKEND: Record; +export const CODEBASE_INDEXER_BACKENDS: Record; diff --git a/src/resources/extensions/sf/doc-checker.d.ts b/src/resources/extensions/sf/doc-checker.d.ts index 4200749e1..ec1a7ab0c 100644 --- a/src/resources/extensions/sf/doc-checker.d.ts +++ b/src/resources/extensions/sf/doc-checker.d.ts @@ -1,7 +1,2 @@ -export interface DocCheckResult { - summary: string; - issues?: string[]; - score?: number; -} - -export function checkDocsScaffold(path: string): DocCheckResult; +export function checkDocsScaffold(repoRoot: string): { summary: string; issues?: string[]; score?: number }; +export function formatDocCheckReport(report: { summary: string; issues?: string[]; score?: number }): string; diff --git a/src/resources/extensions/sf/doctor.d.ts b/src/resources/extensions/sf/doctor.d.ts index 6d32257ea..4194d2c22 100644 --- a/src/resources/extensions/sf/doctor.d.ts +++ b/src/resources/extensions/sf/doctor.d.ts @@ -1,8 +1,2 @@ -export interface DoctorResult { - healthy: boolean; - issues: string[]; - recommendations: string[]; -} - -export function runDoctor(): DoctorResult; -export function checkSystemHealth(): Promise; +export function validateTitle(title: string): boolean; +export function buildStateMarkdown(state: Record): string; diff --git a/src/resources/extensions/sf/gitignore.d.ts b/src/resources/extensions/sf/gitignore.d.ts index f5797e08d..55582388a 100644 --- a/src/resources/extensions/sf/gitignore.d.ts +++ b/src/resources/extensions/sf/gitignore.d.ts @@ -1,2 +1,6 @@ -export function isPathIgnored(path: string, basePath?: string): boolean; -export function loadGitignore(basePath?: string): void; +export function isSfGitignored(basePath?: string): boolean; +export function hasGitTrackedSfFiles(basePath?: string): boolean; +export function ensureGitInfoExclude(basePath?: string): void; +export function ensureGitignore(basePath?: string, options?: Record): void; +export function untrackRuntimeFiles(basePath?: string): void; +export function ensurePreferences(basePath?: string): void; diff --git a/src/resources/extensions/sf/native-git-bridge.d.ts b/src/resources/extensions/sf/native-git-bridge.d.ts index 523ea1484..2477d3cdc 100644 --- a/src/resources/extensions/sf/native-git-bridge.d.ts +++ b/src/resources/extensions/sf/native-git-bridge.d.ts @@ -1,9 +1,52 @@ -export interface GitStatus { - branch: string; - clean: boolean; - modified: string[]; - untracked: string[]; -} - -export function getGitStatus(path?: string): GitStatus; -export function execGit(args: string[], cwd?: string): { stdout: string; stderr: string; code: number }; +export function nativeGetCurrentBranch(basePath: string): string; +export function nativeDetectMainBranch(basePath: string): string; +export function nativeBranchExists(basePath: string, branch: string): boolean; +export function nativeHasMergeConflicts(basePath: string): boolean; +export function nativeWorkingTreeStatus(basePath: string): string; +export function nativeHasChanges(basePath: string): boolean; +export function _resetHasChangesCache(): void; +export function nativeCommitCountBetween(basePath: string, fromRef: string, toRef: string): number; +export function nativeIsRepo(basePath: string): boolean; +export function nativeHasStagedChanges(basePath: string): boolean; +export function nativeDiffStat(basePath: string, fromRef: string, toRef: string): string; +export function nativeDiffNameStatus(basePath: string, fromRef: string, toRef: string, pathspec?: string, useMergeBase?: boolean): string[]; +export function nativeDiffNumstat(basePath: string, fromRef: string, toRef: string): string; +export function nativeDiffContent(basePath: string, fromRef: string, toRef: string, pathspec?: string, exclude?: string[], useMergeBase?: boolean): string; +export function nativeLogOneline(basePath: string, fromRef?: string, toRef?: string): string[]; +export function nativeWorktreeList(basePath: string): string[]; +export function nativeBranchList(basePath: string, pattern?: string): string[]; +export function nativeBranchListMerged(basePath: string, target: string, pattern?: string): string[]; +export function nativeLsFiles(basePath: string, pathspec?: string): string[]; +export function nativeForEachRef(basePath: string, prefix?: string): string[]; +export function nativeConflictFiles(basePath: string): string[]; +export function nativeBatchInfo(basePath: string): Record; +export function nativeInit(basePath: string, initialBranch?: string): void; +export function nativeAddAll(basePath: string): void; +export function nativeAddTracked(basePath: string): void; +export function nativeAddAllWithExclusions(basePath: string, exclusions: string[]): void; +export function nativeAddPaths(basePath: string, paths: string[]): void; +export function nativeResetPaths(basePath: string, paths: string[]): void; +export function nativeCommit(basePath: string, message: string, options?: Record): void; +export function nativeCheckoutBranch(basePath: string, branch: string): void; +export function nativeCheckoutTheirs(basePath: string, paths: string[]): void; +export function nativeMergeSquash(basePath: string, branch: string): void; +export function nativeMergeAbort(basePath: string): void; +export function nativeRebaseAbort(basePath: string): void; +export function nativeResetHard(basePath: string): void; +export function nativeResetSoft(basePath: string, target?: string): void; +export function nativeCommitSubject(basePath: string, ref: string): string; +export function nativeBranchDelete(basePath: string, branch: string, force?: boolean): void; +export function nativeBranchForceReset(basePath: string, branch: string, target: string): void; +export function nativeRmCached(basePath: string, paths: string[], recursive?: boolean): void; +export function nativeRmForce(basePath: string, paths: string[]): void; +export function nativeWorktreeAdd(basePath: string, wtPath: string, branch: string, createBranch?: boolean, startPoint?: string): void; +export function nativeWorktreeRemove(basePath: string, wtPath: string, force?: boolean): void; +export function nativeWorktreePrune(basePath: string): void; +export function nativeRevertCommit(basePath: string, sha: string): void; +export function nativeRevertAbort(basePath: string): void; +export function nativeUpdateRef(basePath: string, refname: string, target: string): void; +export function isNativeGitAvailable(): boolean; +export function nativeIsAncestor(basePath: string, ancestor: string, descendant: string): boolean; +export function nativeLastCommitEpoch(basePath: string, ref?: string): number; +export function nativeUnpushedCount(basePath: string, branch: string): number; +export function getCommitsBehindMain(worktreePath: string, mainRef: string): number; diff --git a/src/resources/extensions/sf/paths.d.ts b/src/resources/extensions/sf/paths.d.ts index dcd55aa94..60679822a 100644 --- a/src/resources/extensions/sf/paths.d.ts +++ b/src/resources/extensions/sf/paths.d.ts @@ -1,2 +1,30 @@ -export function resolvePath(path: string): string; -export function getProjectRoot(): string; +export function clearPathCache(): void; +export function buildMilestoneFileName(milestoneId: string, suffix: string): string; +export function buildSliceFileName(sliceId: string, suffix: string): string; +export function buildTaskFileName(taskId: string, suffix: string): string; +export function resolveDir(parentDir: string, idPrefix: string): string; +export function resolveFile(dir: string, idPrefix: string, suffix: string): string; +export function resolveTaskFiles(tasksDir: string, suffix: string): string[]; +export function resolveTaskJsonFiles(tasksDir: string, suffix: string): string[]; +export const SF_ROOT_FILES: Record; +export function _clearSfRootCache(): void; +export function sfRoot(basePath?: string): string; +export const projectRoot: typeof sfRoot; +export function isRunningOnSelf(basePath?: string): boolean; +export function _resetSelfDetectionCache(): void; +export function sfRuntimeRoot(basePath?: string): string; +export function milestonesDir(basePath?: string): string; +export function resolveRuntimeFile(basePath?: string): string; +export function resolveSfRootFile(basePath: string, key: string): string; +export function relSfRootFile(key: string): string; +export function resolveMilestonePath(basePath: string, milestoneId: string): string; +export function resolveMilestoneFile(basePath: string, milestoneId: string, suffix: string): string; +export function resolveSlicePath(basePath: string, milestoneId: string, sliceId: string): string; +export function resolveSliceFile(basePath: string, milestoneId: string, sliceId: string, suffix: string): string; +export function resolveTasksDir(basePath: string, milestoneId: string, sliceId: string): string; +export function resolveTaskFile(basePath: string, milestoneId: string, sliceId: string, taskId: string, suffix: string): string; +export function relMilestonePath(basePath: string, milestoneId: string): string; +export function relMilestoneFile(basePath: string, milestoneId: string, suffix: string): string; +export function relSlicePath(basePath: string, milestoneId: string, sliceId: string): string; +export function relSliceFile(basePath: string, milestoneId: string, sliceId: string, suffix: string): string; +export function relTaskFile(basePath: string, milestoneId: string, sliceId: string, taskId: string, suffix: string): string; diff --git a/src/resources/extensions/sf/preferences-models.d.ts b/src/resources/extensions/sf/preferences-models.d.ts index 67a8c23d4..65f63658b 100644 --- a/src/resources/extensions/sf/preferences-models.d.ts +++ b/src/resources/extensions/sf/preferences-models.d.ts @@ -1,8 +1,20 @@ -export interface ModelConfig { - provider: string; - model: string; - [key: string]: unknown; -} - -export function isProviderModelAllowed(provider: string, model: string): boolean; -export function getDefaultModel(): ModelConfig; +export function filterModelsByProviderModelAllow(models: unknown[], providerModelAllow: unknown, providerModelBlock: unknown): unknown[]; +export function isProviderAllowedByLists(provider: string, allowedProviders: string[], blockedProviders: string[]): boolean; +export function isProviderAllowedForAdvisor(providerKey: string, prefs: Record): boolean; +export function resolveModelForUnit(unitType: string): string; +export function resolveModelWithFallbacksForUnit(unitType: string, options?: Record): string; +export function resolveDefaultSessionModel(sessionProvider: string): string; +export function isCustomProvider(provider: string): boolean; +export function getNextFallbackModel(currentModelId: string, modelConfig: Record): string | null; +export function isTransientNetworkError(errorMsg: string): boolean; +export function validateModelId(modelId: string): boolean; +export function updatePreferencesModels(models: unknown[]): void; +export function updateSubscriptionTokensUsed(provider: string, tokensConsumed: number): void; +export function resolveDynamicRoutingConfig(): Record; +export function resolvePersistModelChanges(): boolean; +export function resolveAutoSupervisorConfig(): Record; +export function resolveProfileDefaults(profile: string): Record; +export function resolveEffectiveProfile(): string; +export function resolveInlineLevel(): string; +export function resolveContextSelection(): string; +export function resolveSearchProviderFromPreferences(): string; diff --git a/src/resources/extensions/sf/preferences.d.ts b/src/resources/extensions/sf/preferences.d.ts index 39b85a21c..bb18e6e03 100644 --- a/src/resources/extensions/sf/preferences.d.ts +++ b/src/resources/extensions/sf/preferences.d.ts @@ -1,13 +1,16 @@ -export interface Preferences { - preferences?: { - experimental?: { - rtk?: boolean; - [key: string]: unknown; - }; - [key: string]: unknown; - }; - [key: string]: unknown; -} - -export function loadPreferences(): Preferences; -export function getPreferences(): Preferences; +export function resolveSkillDiscoveryMode(): string; +export function resolveSkillStalenessDays(): number; +export function getGlobalSFPreferencesPath(): string; +export function getLegacyGlobalSFPreferencesPath(): string; +export function getProjectSFPreferencesPath(): string; +export function loadGlobalSFPreferences(): Record; +export function loadProjectSFPreferences(): Record; +export function loadEffectiveSFPreferences(): Record; +export function _resetParseWarningFlag(): void; +export function parsePreferencesMarkdown(content: string): Record; +export function applyModeDefaults(mode: string, prefs: Record): Record; +export function renderPreferencesForSystemPrompt(preferences: Record, resolutions: Record): string; +export function resolvePostUnitHooks(): string[]; +export function resolvePreDispatchHooks(): string[]; +export function getIsolationMode(): string; +export function resolveParallelConfig(prefs: Record): Record; diff --git a/src/resources/extensions/sf/repo-identity.d.ts b/src/resources/extensions/sf/repo-identity.d.ts index aae8a4d88..6f92cd246 100644 --- a/src/resources/extensions/sf/repo-identity.d.ts +++ b/src/resources/extensions/sf/repo-identity.d.ts @@ -1,9 +1,10 @@ -export interface RepoIdentity { - name: string; - url?: string; - branch: string; - commit: string; -} - -export function getRepoIdentity(path?: string): RepoIdentity; -export function getRepoName(): string; +export function readRepoMeta(externalPath: string): Record; +export function isInheritedRepo(basePath?: string): boolean; +export function validateProjectId(id: string): boolean; +export function repoIdentity(basePath?: string): Record; +export function externalSfRoot(basePath?: string): string | null; +export function externalProjectsRoot(): string; +export function cleanNumberedSfVariants(projectPath: string): string; +export function hasExternalProjectState(externalPath: string): boolean; +export function ensureSfSymlink(projectPath: string): void; +export function isInsideWorktree(cwd: string): boolean; diff --git a/src/resources/extensions/sf/trace-collector.d.ts b/src/resources/extensions/sf/trace-collector.d.ts index b053fa4dd..832bd8be6 100644 --- a/src/resources/extensions/sf/trace-collector.d.ts +++ b/src/resources/extensions/sf/trace-collector.d.ts @@ -15,5 +15,15 @@ export interface Trace { attributes: Record; } -export function initTraceCollector(): { getActiveTrace(): Trace | null } | null; -export function getTraceCollector(): { getActiveTrace(): Trace | null } | null; +export function isTraceEnabled(): boolean; +export function initTraceCollector(projectRoot: string, sessionId: string, command: string, model: string): unknown; +export function flushTrace(projectRoot: string): void; +export function getActiveTrace(): Trace | null; +export function startUnitSpan(unitType: string, unitId: string, attributes?: Record): Span; +export function startToolSpan(parentSpan: Span, toolName: string, toolCallId: string, attributes?: Record): Span; +export function completeSpan(span: Span, status?: string): void; +export function traceEvent(span: Span, name: string, attrs: Record): void; +export function traceError(span: Span, message: string, stack?: string): void; +export function findTraceSpan(id: string): Span | null; +export function setTraceCost(inputTokens: number, outputTokens: number, cacheReadTokens: number, cacheWriteTokens: number, costUsd: number): void; +export function setTraceExitCode(code: number): void; diff --git a/src/resources/extensions/sf/types.d.ts b/src/resources/extensions/sf/types.d.ts index 68c687fb3..df19354b7 100644 --- a/src/resources/extensions/sf/types.d.ts +++ b/src/resources/extensions/sf/types.d.ts @@ -1,30 +1,5 @@ -export interface Milestone { - id: string; - title: string; - status: string; - phase?: string; - nextAction?: string; -} - -export interface Slice { - id: string; - milestoneId: string; - title: string; - status: string; -} - -export interface Task { - id: string; - sliceId: string; - milestoneId: string; - title: string; - status: string; -} - -export type UnitType = "milestone" | "slice" | "task"; - -export interface Unit { - id: string; - type: UnitType; - status: string; +export interface SFState { + milestones: unknown[]; + slices: unknown[]; + tasks: unknown[]; }