UNPKG

buroventures-harald-code-core

Version:

Harald Code Core - Core functionality for AI-powered coding assistant

280 lines (279 loc) 8.93 kB
/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { z } from 'zod'; /** * Zod schema for validating a file context from the IDE. */ export declare const FileSchema: z.ZodObject<{ path: z.ZodString; timestamp: z.ZodNumber; isActive: z.ZodOptional<z.ZodBoolean>; selectedText: z.ZodOptional<z.ZodString>; cursor: z.ZodOptional<z.ZodObject<{ line: z.ZodNumber; character: z.ZodNumber; }, "strip", z.ZodTypeAny, { line: number; character: number; }, { line: number; character: number; }>>; }, "strip", z.ZodTypeAny, { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }, { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }>; export type File = z.infer<typeof FileSchema>; export declare const IdeContextSchema: z.ZodObject<{ workspaceState: z.ZodOptional<z.ZodObject<{ openFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{ path: z.ZodString; timestamp: z.ZodNumber; isActive: z.ZodOptional<z.ZodBoolean>; selectedText: z.ZodOptional<z.ZodString>; cursor: z.ZodOptional<z.ZodObject<{ line: z.ZodNumber; character: z.ZodNumber; }, "strip", z.ZodTypeAny, { line: number; character: number; }, { line: number; character: number; }>>; }, "strip", z.ZodTypeAny, { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }, { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { openFiles?: { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; }, { openFiles?: { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { workspaceState?: { openFiles?: { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }, { workspaceState?: { openFiles?: { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }>; export type IdeContext = z.infer<typeof IdeContextSchema>; /** * Zod schema for validating the 'ide/contextUpdate' notification from the IDE. */ export declare const IdeContextNotificationSchema: z.ZodObject<{ method: z.ZodLiteral<"ide/contextUpdate">; params: z.ZodObject<{ workspaceState: z.ZodOptional<z.ZodObject<{ openFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{ path: z.ZodString; timestamp: z.ZodNumber; isActive: z.ZodOptional<z.ZodBoolean>; selectedText: z.ZodOptional<z.ZodString>; cursor: z.ZodOptional<z.ZodObject<{ line: z.ZodNumber; character: z.ZodNumber; }, "strip", z.ZodTypeAny, { line: number; character: number; }, { line: number; character: number; }>>; }, "strip", z.ZodTypeAny, { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }, { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { openFiles?: { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; }, { openFiles?: { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { workspaceState?: { openFiles?: { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }, { workspaceState?: { openFiles?: { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }>; }, "strip", z.ZodTypeAny, { method: "ide/contextUpdate"; params: { workspaceState?: { openFiles?: { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }; }, { method: "ide/contextUpdate"; params: { workspaceState?: { openFiles?: { path: string; timestamp: number; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }; }>; type IdeContextSubscriber = (ideContext: IdeContext | undefined) => void; /** * Creates a new store for managing the IDE's context. * This factory function encapsulates the state and logic, allowing for the creation * of isolated instances, which is particularly useful for testing. * * @returns An object with methods to interact with the IDE context. */ export declare function createIdeContextStore(): { setIdeContext: (newIdeContext: IdeContext) => void; getIdeContext: () => IdeContext | undefined; subscribeToIdeContext: (subscriber: IdeContextSubscriber) => () => void; clearIdeContext: () => void; }; /** * The default, shared instance of the IDE context store for the application. */ export declare const ideContext: { setIdeContext: (newIdeContext: IdeContext) => void; getIdeContext: () => IdeContext | undefined; subscribeToIdeContext: (subscriber: IdeContextSubscriber) => () => void; clearIdeContext: () => void; }; export {};