/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */ /** * JSON Schema definition for the `inspect` tool. * * The inspect tool performs static analysis of a project or file and returns * structured information about its structure, APIs, database schema, components, * layout, accessibility, or a scaffold plan. */ export declare const INSPECT_TOOL_SCHEMA: { readonly type: "object"; readonly properties: { readonly mode: { readonly type: "string"; readonly enum: readonly ["project", "api", "api_spec", "api_validate", "api_sync", "database", "components", "layout", "accessibility", "scaffold", "component_state", "render_triggers", "hooks", "overflow", "sizing", "stacking", "responsive", "events", "tailwind", "client_boundary", "error_boundary"]; readonly description: string; }; readonly projectRoot: { readonly type: "string"; readonly description: "Root directory for the analysis. Defaults to the current working directory."; }; readonly file: { readonly type: "string"; readonly description: "Path to a specific file. Required for component, layout, and accessibility modes."; }; readonly framework: { readonly type: "string"; readonly enum: readonly ["auto", "nextjs", "express", "fastify", "hono"]; readonly description: "Web framework for api mode. auto detects from package.json. Default: auto."; }; readonly schemaPath: { readonly type: "string"; readonly description: string; }; readonly moduleName: { readonly type: "string"; readonly description: "Module name for scaffold mode. Used to name generated files."; }; readonly dryRun: { readonly type: "boolean"; readonly description: "scaffold mode: return file plan without writing. Default true."; }; readonly output: { readonly type: "object"; readonly description: "Output formatting options."; readonly properties: { readonly format: { readonly type: "string"; readonly enum: readonly ["summary", "detailed", "json"]; readonly description: "summary: condensed overview; detailed: full analysis; json: raw JSON. Default: detailed."; }; readonly max_tokens: { readonly type: "integer"; readonly minimum: 1; readonly description: "Hard token cap for the response."; }; }; }; }; readonly required: readonly ["mode"]; }; export type InspectMode = 'project' | 'api' | 'api_spec' | 'api_validate' | 'api_sync' | 'database' | 'components' | 'layout' | 'accessibility' | 'scaffold' | 'component_state' | 'render_triggers' | 'hooks' | 'overflow' | 'sizing' | 'stacking' | 'responsive' | 'events' | 'tailwind' | 'client_boundary' | 'error_boundary'; export type ApiFramework = 'auto' | 'nextjs' | 'express' | 'fastify' | 'hono'; export type OutputFormat = 'summary' | 'detailed' | 'json'; export interface InspectOutput { format?: OutputFormat | undefined; max_tokens?: number | undefined; } export interface InspectInput { mode: InspectMode; projectRoot?: string | undefined; file?: string | undefined; framework?: ApiFramework | undefined; schemaPath?: string | undefined; specPath?: string | undefined; moduleName?: string | undefined; dryRun?: boolean | undefined; output?: InspectOutput | undefined; } export interface ProjectInfo { type: 'nodejs' | 'rust' | 'python' | 'go' | 'make' | 'unknown'; name?: string | undefined; version?: string | undefined; packageManager: 'npm' | 'bun' | 'yarn' | 'pnpm' | 'none'; scripts: Record; dependencies: number; devDependencies: number; hasTypeScript: boolean; testFramework?: string | undefined; isMonorepo: boolean; entryPoints: string[]; } export interface ApiRoute { method: string; path: string; file: string; line: number; } export interface DbField { name: string; type: string; isRelation: boolean; isOptional: boolean; } export interface DbModel { name: string; fields: DbField[]; } export interface DbEnum { name: string; values: string[]; } export interface DatabaseInfo { models: DbModel[]; enums: DbEnum[]; } export interface ComponentInfo { name: string; kind: 'function' | 'arrow' | 'class'; line: number; props: string[]; hooks: string[]; children: string[]; } export interface LayoutInfo { file: string; displays: string[]; flex: string[]; grid: string[]; sizing: string[]; overflow: string[]; } export interface A11yIssue { line: number; code: string; message: string; wcag: string; } export interface ScaffoldFile { path: string; content: string; } export interface ScaffoldPlan { moduleName: string; dryRun: boolean; files: ScaffoldFile[]; } export interface OpenApiParameter { name: string; in: 'path' | 'query'; required: boolean; schema: { type: string; }; } export interface OpenApiOperation { operationId: string; parameters?: OpenApiParameter[] | undefined; responses: Record; } export interface OpenApiPathItem { [method: string]: OpenApiOperation; } export interface ApiSpec { openapi: '3.0.0'; info: { title: string; version: string; }; paths: Record; } export interface ApiValidateResult { valid: boolean; missing_from_spec: string[]; missing_from_code: string[]; mismatched_methods: Array<{ path: string; spec_methods: string[]; code_methods: string[]; }>; } export interface FetchCall { url: string; file: string; line: number; } export interface ApiSyncResult { fetch_calls: FetchCall[]; unmatched_fetches: FetchCall[]; unmatched_routes: ApiRoute[]; drift_detected: boolean; } export interface StateVar { name: string; kind: 'useState' | 'useReducer' | 'useContext'; line: number; } export interface ComponentStateInfo { file: string; stateVars: StateVar[]; count: number; } export interface RenderTrigger { kind: 'state_setter' | 'effect_dep' | 'memo_dep' | 'callback_dep' | 'memo_boundary'; name: string; line: number; } export interface RenderTriggersInfo { file: string; triggers: RenderTrigger[]; count: number; } export interface HookDep { hookKind: 'useEffect' | 'useMemo' | 'useCallback'; line: number; deps: string[]; missing: string[]; } export interface HooksInfo { file: string; hooks: HookDep[]; missingDepsCount: number; } export interface OverflowIssue { line: number; kind: 'hidden_clip' | 'scroll_no_height'; snippet: string; } export interface OverflowInfo { file: string; issues: OverflowIssue[]; count: number; } export interface SizingItem { line: number; kind: 'fixed_px' | 'fixed_rem' | 'percentage' | 'flex' | 'grid' | 'viewport'; value: string; flagged: boolean; } export interface SizingInfo { file: string; items: SizingItem[]; hardcodedCount: number; } export interface ZIndexItem { line: number; value: string; context: string; } export interface StackingInfo { file: string; zIndexItems: ZIndexItem[]; potentialConflicts: Array<{ values: string[]; lines: number[]; }>; } export interface BreakpointUsage { prefix: string; count: number; classes: string[]; } export interface ResponsiveInfo { file: string; breakpoints: BreakpointUsage[]; hasMobileFirst: boolean; } export interface EventHandler { line: number; event: string; hasPreventDefault: boolean; hasStopPropagation: boolean; isDelegated: boolean; } export interface EventsInfo { file: string; handlers: EventHandler[]; count: number; } export interface TailwindConflict { line: number; classes: string[]; reason: string; } export interface TailwindInfo { file: string; conflicts: TailwindConflict[]; count: number; } export interface ClientBoundaryInfo { file: string; directive: 'use client' | 'use server' | null; importsServerOnly: boolean; serverOnlyImports: string[]; } export interface ErrorBoundaryInfo { file: string; hasErrorBoundary: boolean; boundaryComponents: string[]; coveredRoutes: string[]; } //# sourceMappingURL=schema.d.ts.map