Skip to content

Commit 04d0aa6

Browse files
authored
🤖 Merge PR DefinitelyTyped#74671 [dom-chromium-ai] Reflect breaking Prompt API changes in TypeScript types by @tomayac
1 parent c879e14 commit 04d0aa6

2 files changed

Lines changed: 41 additions & 10 deletions

File tree

‎types/dom-chromium-ai/dom-chromium-ai-tests.ts‎

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -122,36 +122,47 @@ async function topLevel() {
122122
await languageModel.append("foo", { signal: (new AbortController()).signal });
123123
await languageModel.append([{ role: "assistant", content: "foo" }], { signal: (new AbortController()).signal });
124124

125-
const languageModelInputUsage1: number = await languageModel.measureInputUsage("foo", {
125+
const languageModelContextUsage1: number = await languageModel.measureContextUsage("foo", {
126126
signal: (new AbortController()).signal,
127127
});
128-
console.log(languageModelInputUsage1);
128+
console.log(languageModelContextUsage1);
129129

130-
const languageModelInputUsage2: number = await languageModel.measureInputUsage([{
130+
const languageModelContextUsage2: number = await languageModel.measureContextUsage([{
131131
role: "assistant",
132132
content: "foo",
133133
}], {
134134
signal: (new AbortController()).signal,
135135
});
136-
console.log(languageModelInputUsage2);
136+
console.log(languageModelContextUsage2);
137137

138-
const languageModelInputUsage3: number = await languageModel.measureInputUsage([
138+
const languageModelContextUsage3: number = await languageModel.measureContextUsage([
139139
{ role: "assistant", content: "foo" },
140140
{ role: "user", content: "bar" },
141141
], { signal: (new AbortController()).signal });
142-
console.log(languageModelInputUsage3);
142+
console.log(languageModelContextUsage3);
143143

144+
console.log(
145+
languageModel.contextUsage,
146+
languageModel.contextWindow,
147+
);
148+
149+
// Legacy names (Deprecated in extensions, removed in web)
144150
console.log(
145151
languageModel.inputUsage,
146152
languageModel.inputQuota,
147153
);
148154

149-
const quotaOverflowListener = (e: Event) => {
155+
const contextOverflowListener = (e: Event) => {
150156
console.log(e);
151157
};
152-
languageModel.onquotaoverflow = quotaOverflowListener;
153-
languageModel.addEventListener("quotaoverflow", quotaOverflowListener);
154-
languageModel.removeEventListener("quotaoverflow", quotaOverflowListener);
158+
languageModel.oncontextoverflow = contextOverflowListener;
159+
languageModel.addEventListener("contextoverflow", contextOverflowListener);
160+
languageModel.removeEventListener("contextoverflow", contextOverflowListener);
161+
162+
// Legacy (Deprecated in extensions, removed in web)
163+
languageModel.onquotaoverflow = contextOverflowListener;
164+
languageModel.addEventListener("quotaoverflow", contextOverflowListener);
165+
languageModel.removeEventListener("quotaoverflow", contextOverflowListener);
155166

156167
console.log(
157168
languageModel.topK,

‎types/dom-chromium-ai/index.d.ts‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ interface DestroyableModel {
4444
declare abstract class LanguageModel extends EventTarget implements DestroyableModel {
4545
static create(options?: LanguageModelCreateOptions): Promise<LanguageModel>;
4646
static availability(options?: LanguageModelCreateCoreOptions): Promise<Availability>;
47+
/** @deprecated Restricted to web extension contexts only. */
4748
static params(): Promise<LanguageModelParams>;
4849

4950
prompt(input: LanguageModelPrompt, options?: LanguageModelPromptOptions): Promise<string>;
@@ -52,11 +53,20 @@ declare abstract class LanguageModel extends EventTarget implements DestroyableM
5253

5354
append(input: LanguageModelPrompt, options?: LanguageModelAppendOptions): Promise<undefined>;
5455

56+
measureContextUsage(input: LanguageModelPrompt, options?: LanguageModelPromptOptions): Promise<number>;
57+
/** @deprecated Use measureContextUsage instead. Deprecated in extensions, removed in web. */
5558
measureInputUsage(input: LanguageModelPrompt, options?: LanguageModelPromptOptions): Promise<number>;
5659

60+
readonly contextUsage: number;
61+
/** @deprecated Use contextUsage instead. Deprecated in extensions, removed in web. */
5762
readonly inputUsage: number;
63+
64+
readonly contextWindow: number;
65+
/** @deprecated Use contextWindow instead. Deprecated in extensions, removed in web. */
5866
readonly inputQuota: number;
5967

68+
oncontextoverflow: ((this: LanguageModel, ev: Event) => any) | null;
69+
/** @deprecated Use oncontextoverflow instead. Deprecated in extensions, removed in web. */
6070
onquotaoverflow: ((this: LanguageModel, ev: Event) => any) | null;
6171

6272
addEventListener<K extends keyof LanguageModelEventMap>(
@@ -80,26 +90,36 @@ declare abstract class LanguageModel extends EventTarget implements DestroyableM
8090
options?: boolean | EventListenerOptions,
8191
): void;
8292

93+
/** @deprecated Restricted to web extension contexts only. */
8394
readonly topK: number;
95+
/** @deprecated Restricted to web extension contexts only. */
8496
readonly temperature: number;
8597

8698
clone(options?: LanguageModelCloneOptions): Promise<LanguageModel>;
8799
destroy(): undefined;
88100
}
89101

90102
interface LanguageModelEventMap {
103+
contextoverflow: Event;
104+
/** @deprecated Use contextoverflow instead. Deprecated in extensions, removed in web. */
91105
quotaoverflow: Event;
92106
}
93107

94108
interface LanguageModelParams {
109+
/** @deprecated Restricted to web extension contexts only. */
95110
readonly defaultTopK: number;
111+
/** @deprecated Restricted to web extension contexts only. */
96112
readonly maxTopK: number;
113+
/** @deprecated Restricted to web extension contexts only. */
97114
readonly defaultTemperature: number;
115+
/** @deprecated Restricted to web extension contexts only. */
98116
readonly maxTemperature: number;
99117
}
100118

101119
interface LanguageModelCreateCoreOptions {
120+
/** @deprecated Restricted to web extension contexts only. Use the topK option within LanguageModel.create() is now restricted to web extensions. */
102121
topK?: number;
122+
/** @deprecated Restricted to web extension contexts only. Use the temperature option within LanguageModel.create() is now restricted to web extensions. */
103123
temperature?: number;
104124

105125
expectedInputs?: LanguageModelExpected[];

0 commit comments

Comments
 (0)