diff --git a/types/dom-chromium-ai/dom-chromium-ai-tests.ts b/types/dom-chromium-ai/dom-chromium-ai-tests.ts index 586354b27273a4e..ebeda9e48e6feae 100644 --- a/types/dom-chromium-ai/dom-chromium-ai-tests.ts +++ b/types/dom-chromium-ai/dom-chromium-ai-tests.ts @@ -410,4 +410,45 @@ async function topLevel() { console.log(languageDetectorResult.confidence); languageDetector.destroy(); + + // Proofreader + + const proofreader = await Proofreader.create({ + includeCorrectionTypes: true, + includeCorrectionExplanations: true, + correctionExplanationLanguage: "en", + expectedInputLanguages: ["en"], + signal: (new AbortController()).signal, + monitor(m: CreateMonitor) { + m.addEventListener("downloadprogress", (e) => { + console.log(e.loaded, e.total); + }); + }, + }); + + const proofreaderAvailability1: Availability = await Proofreader.availability(); + console.log(proofreaderAvailability1); + + const proofreaderAvailability2: Availability = await Proofreader.availability({ + expectedInputLanguages: ["de"], + }); + console.log(proofreaderAvailability2); + + const proofreaderResult: ProofreadResult = await proofreader.proofread("foo"); + console.log(proofreaderResult); + + // for await ( + // const chunk of proofreader.proofreadStreaming("foo") + // ) { + // console.log(chunk); + // } + + console.log( + proofreader.expectedInputLanguages, + proofreader.correctionExplanationLanguage, + proofreader.includeCorrectionExplanations, + proofreader.includeCorrectionTypes, + ); + + proofreader.destroy(); } diff --git a/types/dom-chromium-ai/index.d.ts b/types/dom-chromium-ai/index.d.ts index 6ced35fe79fec01..b5028339c20b787 100644 --- a/types/dom-chromium-ai/index.d.ts +++ b/types/dom-chromium-ai/index.d.ts @@ -389,3 +389,48 @@ interface LanguageDetectionResult { detectedLanguage?: string; confidence?: number; } + +// Proofreader API +// https://github.com/webmachinelearning/proofreader-api?tab=readme-ov-file#full-api-surface-in-web-idl + +declare abstract class Proofreader implements DestroyableModel { + static create(options?: ProofreaderCreateOptions): Promise; + static availability(options?: ProofreaderCreateCoreOptions): Promise; + + proofread(input: string): Promise; + // proofreadStreaming(input: string): ReadableStream; + + readonly includeCorrectionTypes: boolean; + readonly includeCorrectionExplanations: boolean; + readonly correctionExplanationLanguage?: string; + readonly expectedInputLanguages: ReadonlyArray; + + destroy(): void; +} + +interface ProofreaderCreateCoreOptions { + includeCorrectionTypes?: boolean; + includeCorrectionExplanations?: boolean; + correctionExplanationLanguage?: string; + expectedInputLanguages?: string[]; +} + +interface ProofreaderCreateOptions extends ProofreaderCreateCoreOptions { + signal?: AbortSignal; + monitor?: CreateMonitorCallback; +} + +interface ProofreadResult { + correctedInput: string; + corrections: ProofreadCorrection[]; +} + +interface ProofreadCorrection { + startIndex: number; + endIndex: number; + correction: string; + type?: CorrectionType; + explanation?: string; +} + +type CorrectionType = "spelling" | "punctuation" | "capitalization" | "preposition" | "missing-words" | "grammar"; diff --git a/types/jquery.fancytree/package.json b/types/jquery.fancytree/package.json index 5f2affc2821df72..443c917e53d2ebd 100644 --- a/types/jquery.fancytree/package.json +++ b/types/jquery.fancytree/package.json @@ -18,8 +18,8 @@ "githubUsername": "alphaleonis" }, { - "name": "Mahdi Abedi", - "githubUsername": "abedio" + "name": "Mehdi Abedi", + "githubUsername": "itsmattius" }, { "name": "Nikolai Ommundsen",