diff --git a/types/dom-chromium-ai/dom-chromium-ai-tests.ts b/types/dom-chromium-ai/dom-chromium-ai-tests.ts index de971628a92741..a1fb42aa468038 100644 --- a/types/dom-chromium-ai/dom-chromium-ai-tests.ts +++ b/types/dom-chromium-ai/dom-chromium-ai-tests.ts @@ -11,6 +11,22 @@ async function topLevel() { initialPrompts: [{ role: "assistant", content: "foo", prefix: true }], }); + // samplingMode is valid on its own + await LanguageModel.create({ samplingMode: "most-creative" }); + await LanguageModel.create({ samplingMode: "balanced" }); + + await LanguageModel.create({ + samplingMode: "balanced", + // @ts-expect-error - samplingMode and topK/temperature are mutually exclusive. + topK: 1, + }); + + await LanguageModel.create({ + samplingMode: "balanced", + // @ts-expect-error - samplingMode and topK/temperature are mutually exclusive. + temperature: 0.5, + }); + const languageModel = await LanguageModel.create({ topK: 1, temperature: 0, diff --git a/types/dom-chromium-ai/index.d.ts b/types/dom-chromium-ai/index.d.ts index 511cfe22f4318c..19587aba73f5ba 100644 --- a/types/dom-chromium-ai/index.d.ts +++ b/types/dom-chromium-ai/index.d.ts @@ -116,25 +116,42 @@ interface LanguageModelParams { readonly maxTemperature: number; } -interface LanguageModelCreateCoreOptions { - /** @deprecated Restricted to web extension contexts only. Use the topK option within LanguageModel.create() is now restricted to web extensions. */ - topK?: number; - /** @deprecated Restricted to web extension contexts only. Use the temperature option within LanguageModel.create() is now restricted to web extensions. */ - temperature?: number; - +type LanguageModelSamplingMode = + | "most-predictable" + | "predictable" + | "balanced" + | "creative" + | "most-creative"; + +/** + * samplingMode and the raw sampling params (topK, temperature) are mutually exclusive. + * Providing both results in a TypeError at runtime. + * Note: topK and temperature are only available in Chrome extension contexts (Chrome 151+). + */ +type LanguageModelSamplingOptions = + | { samplingMode?: LanguageModelSamplingMode; topK?: never; temperature?: never } + | { + samplingMode?: never; + /** @deprecated Restricted to web extension contexts only. */ + topK?: number; + /** @deprecated Restricted to web extension contexts only. */ + temperature?: number; + }; + +type LanguageModelCreateCoreOptions = { expectedInputs?: LanguageModelExpected[]; expectedOutputs?: LanguageModelExpected[]; tools?: LanguageModelTool[]; -} +} & LanguageModelSamplingOptions; -interface LanguageModelCreateOptions extends LanguageModelCreateCoreOptions { +type LanguageModelCreateOptions = LanguageModelCreateCoreOptions & { signal?: AbortSignal; monitor?: CreateMonitorCallback; initialPrompts?: | [LanguageModelSystemMessage, ...LanguageModelMessage[]] | LanguageModelMessage[]; -} +}; interface LanguageModelPromptOptions { responseConstraint?: Record; diff --git a/types/dom-speech-recognition/index.d.ts b/types/dom-speech-recognition/index.d.ts index bb7266c40d7dc8..617761cf1e65e9 100644 --- a/types/dom-speech-recognition/index.d.ts +++ b/types/dom-speech-recognition/index.d.ts @@ -1,4 +1,4 @@ -// https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition#events +// https://webaudio.github.io/web-speech-api/#speechreco-section interface SpeechRecognitionEventMap { audioend: Event; audiostart: Event; @@ -13,7 +13,7 @@ interface SpeechRecognitionEventMap { start: Event; } -// https://wicg.github.io/speech-api/#speechreco-section +// https://webaudio.github.io/web-speech-api/#speechreco-section interface SpeechRecognition extends EventTarget { continuous: boolean; grammars: SpeechGrammarList; @@ -57,7 +57,7 @@ interface SpeechRecognition extends EventTarget { ): void; } -// https://wicg.github.io/speech-api/#dictdef-speechrecognitionoptions +// https://webaudio.github.io/web-speech-api/#dictdef-speechrecognitionoptions interface SpeechRecognitionOptions { langs: string[]; processLocally: boolean; @@ -77,13 +77,13 @@ declare var SpeechRecognition: { install(options: SpeechRecognitionOptions): Promise; }; -// https://wicg.github.io/speech-api/#speechrecognitionevent +// https://webaudio.github.io/web-speech-api/#speechrecognitionevent interface SpeechRecognitionEventInit extends EventInit { resultIndex?: number; results: SpeechRecognitionResultList; } -// https://wicg.github.io/speech-api/#dictdef-speechrecognitioneventinit +// https://webaudio.github.io/web-speech-api/#dictdef-speechrecognitioneventinit interface SpeechRecognitionEvent extends Event { readonly resultIndex: number; readonly results: SpeechRecognitionResultList; @@ -94,7 +94,7 @@ declare var SpeechRecognitionEvent: { new(type: string, eventInitDict: SpeechRecognitionEventInit): SpeechRecognitionEvent; }; -// https://wicg.github.io/speech-api/#enumdef-speechrecognitionerrorcode +// https://webaudio.github.io/web-speech-api/#enumdef-speechrecognitionerrorcode // type SpeechRecognitionErrorCode = // | "aborted" // | "audio-capture" @@ -105,13 +105,13 @@ declare var SpeechRecognitionEvent: { // | "not-allowed" // | "service-not-allowed"; -// https://wicg.github.io/speech-api/#dictdef-speechrecognitionerroreventinit +// https://webaudio.github.io/web-speech-api/#dictdef-speechrecognitionerroreventinit interface SpeechRecognitionErrorEventInit extends EventInit { error: SpeechRecognitionErrorCode; message?: string; } -// https://wicg.github.io/speech-api/#speechrecognitionerrorevent +// https://webaudio.github.io/web-speech-api/#speechrecognitionerrorevent interface SpeechRecognitionErrorEvent extends Event { readonly error: SpeechRecognitionErrorCode; readonly message: string; @@ -122,7 +122,7 @@ declare var SpeechRecognitionErrorEvent: { new(type: string, eventInitDict: SpeechRecognitionErrorEventInit): SpeechRecognitionErrorEvent; }; -// https://wicg.github.io/speech-api/#speechgrammar +// https://webaudio.github.io/web-speech-api/#speechgrammar interface SpeechGrammar { src: string; weight: number; @@ -133,7 +133,7 @@ declare var SpeechGrammar: { new(): SpeechGrammar; }; -// https://wicg.github.io/speech-api/#speechgrammarlist +// https://webaudio.github.io/web-speech-api/#speechgrammarlist interface SpeechGrammarList { readonly length: number; addFromString(string: string, weight?: number): void; diff --git a/types/dom-speech-recognition/ts5.9/index.d.ts b/types/dom-speech-recognition/ts5.9/index.d.ts index 133e6c30aa3984..4aa66b16381b53 100644 --- a/types/dom-speech-recognition/ts5.9/index.d.ts +++ b/types/dom-speech-recognition/ts5.9/index.d.ts @@ -1,4 +1,4 @@ -// https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition#events +// https://webaudio.github.io/web-speech-api/#speechreco-section interface SpeechRecognitionEventMap { audioend: Event; audiostart: Event; @@ -13,7 +13,7 @@ interface SpeechRecognitionEventMap { start: Event; } -// https://wicg.github.io/speech-api/#speechreco-section +// https://webaudio.github.io/web-speech-api/#speechreco-section interface SpeechRecognition extends EventTarget { continuous: boolean; grammars: SpeechGrammarList; @@ -57,7 +57,7 @@ interface SpeechRecognition extends EventTarget { ): void; } -// https://wicg.github.io/speech-api/#dictdef-speechrecognitionoptions +// https://webaudio.github.io/web-speech-api/#dictdef-speechrecognitionoptions interface SpeechRecognitionOptions { langs: string[]; processLocally: boolean; @@ -77,13 +77,13 @@ declare var SpeechRecognition: { install(options: SpeechRecognitionOptions): Promise; }; -// https://wicg.github.io/speech-api/#speechrecognitionevent +// https://webaudio.github.io/web-speech-api/#speechrecognitionevent interface SpeechRecognitionEventInit extends EventInit { resultIndex?: number; results: SpeechRecognitionResultList; } -// https://wicg.github.io/speech-api/#dictdef-speechrecognitioneventinit +// https://webaudio.github.io/web-speech-api/#dictdef-speechrecognitioneventinit interface SpeechRecognitionEvent extends Event { readonly resultIndex: number; readonly results: SpeechRecognitionResultList; @@ -94,7 +94,7 @@ declare var SpeechRecognitionEvent: { new(type: string, eventInitDict: SpeechRecognitionEventInit): SpeechRecognitionEvent; }; -// https://wicg.github.io/speech-api/#enumdef-speechrecognitionerrorcode +// https://webaudio.github.io/web-speech-api/#enumdef-speechrecognitionerrorcode type SpeechRecognitionErrorCode = | "aborted" | "audio-capture" @@ -105,13 +105,13 @@ type SpeechRecognitionErrorCode = | "not-allowed" | "service-not-allowed"; -// https://wicg.github.io/speech-api/#dictdef-speechrecognitionerroreventinit +// https://webaudio.github.io/web-speech-api/#dictdef-speechrecognitionerroreventinit interface SpeechRecognitionErrorEventInit extends EventInit { error: SpeechRecognitionErrorCode; message?: string; } -// https://wicg.github.io/speech-api/#speechrecognitionerrorevent +// https://webaudio.github.io/web-speech-api/#speechrecognitionerrorevent interface SpeechRecognitionErrorEvent extends Event { readonly error: SpeechRecognitionErrorCode; readonly message: string; @@ -122,7 +122,7 @@ declare var SpeechRecognitionErrorEvent: { new(type: string, eventInitDict: SpeechRecognitionErrorEventInit): SpeechRecognitionErrorEvent; }; -// https://wicg.github.io/speech-api/#speechgrammar +// https://webaudio.github.io/web-speech-api/#speechgrammar interface SpeechGrammar { src: string; weight: number; @@ -133,7 +133,7 @@ declare var SpeechGrammar: { new(): SpeechGrammar; }; -// https://wicg.github.io/speech-api/#speechgrammarlist +// https://webaudio.github.io/web-speech-api/#speechgrammarlist interface SpeechGrammarList { readonly length: number; addFromString(string: string, weight?: number): void;