You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
- regenerate the JavaScript SDK to `5.1.1` with the updated Fern
generator output
- add the regenerated public API surface for `listen.v2.language_hint`
and voice-agent inject `behavior`, and serialize repeated `listen.v2`
array query params correctly
- restore JavaScript/TypeScript source compatibility for
`manage.v1.projects.keys.create(projectId)` and the legacy
`CreateKeyV1RequestOne` type alias, and document/freeze those manual
patches for future regens
- make Biome honor `.gitignore` and clean up the hand-maintained browser
examples so generated browser artifacts do not fail lint
- fix flaky browser example tests that logged immediate placeholder
output before the final success state was rendered
## Verification
- `pnpm build` ✅
- `pnpm lint` ✅ (`353` warnings, `3` infos, no error-level diagnostics)
- `DEEPGRAM_PROJECT_ID=3d8f1f2b-92d0-4663-8b7a-6ae230fb2a20 pnpm test` ✅
(`674/674` tests passing)
Copy file name to clipboardExpand all lines: .agents/skills/deepgram-js-maintaining-sdk/SKILL.md
+11-1Lines changed: 11 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,7 +54,16 @@ How to identify:
54
54
55
55
Current temporarily frozen entries:
56
56
57
-
-**None right now.**`AGENTS.md` explicitly says all current `.fernignore` entries are permanently frozen.
57
+
-`package.json` — Fern's generator produces a minimal `devDependencies` set; we add the following:
58
+
-`@commitlint/cli`, `@commitlint/config-conventional` — used by `.github/workflows/pr-title-check.yml`
59
+
-`tsx` — used by `make examples` / `make example-N`
60
+
-`playwright` — used by `make browser`
61
+
-`vite`, `terser` — pinned not because we use them directly, but because `.npmrc` sets `minimum-release-age=14400` (10 days) + `strict-peer-dependencies=true`. Without an explicit pin, pnpm tries to satisfy `vitest`'s and `webpack`'s wide peer ranges by picking the latest, which is often too new and the install fails. Pinning forces mature versions. Update the pins (and bump comments below) when you want to move forward.
62
+
-`@types/node` pinned forward to `^20.17.57` to match the Node features the SDK uses (relax this if Fern's default ever advances past Node 20).
63
+
64
+
`pnpm-lock.yaml` is **not** frozen — let Fern regenerate it, then run `pnpm install` after re-applying the `package.json` patch and the lockfile rebuilds correctly.
65
+
-`src/api/resources/manage/resources/v1/resources/projects/resources/keys/client/Client.ts` — keep `manage.v1.projects.keys.create(projectId, request?)` source-compatible with older callers that omit the request body, while still allowing the regenerated request form.
66
+
-`src/api/types/CreateKeyV1Request.ts` — preserve the old exported `CreateKeyV1RequestOne` alias alongside `CreateKeyV1Request` so existing type imports keep compiling.
58
67
59
68
If you patch a generated file in the future, add it to `.fernignore` with a comment explaining the patch and update this skill plus `AGENTS.md`.
3.**The repo ships both CJS and ESM.** Validate both outputs after generator changes.
110
119
4.**Browser behavior matters.** The wrapper intentionally diverges for browser WebSocket auth because browsers cannot send arbitrary socket headers.
111
120
5.**`.agents/` is permanently frozen in `.fernignore`.** Treat these skills as hand-written documentation during regeneration; Fern will not touch the folder. Keep this note aligned with `AGENTS.md` whenever the frozen-file list changes.
121
+
6.**`biome.json` should honor `.gitignore`.** Generated browser artifacts like `examples/browser/deepgram.js` are produced by `make browser-serve`; keep them gitignored and let Biome's VCS ignore integration exclude them from linting.
-`tests/esm-build.test.ts` — ESM build validation test
33
-
-`tests/unit/*` — hand-written unit tests
33
+
-`tests/manual` — hand-written manual smoke scripts (e.g. `tests/manual/compat.ts` for the legacy `CreateKeyV1RequestOne` alias). Not picked up by vitest; run with `pnpm tsx`.
34
+
-`tests/unit/*` — hand-written unit tests (includes `compat-aliases.test.ts`, the regression test that proves the legacy `CreateKeyV1RequestOne` type still resolves to `CreateKeyV1Request`)
-`tests/wire/listen/v1/transcription.test.ts` — hand-written wire test
36
37
-`vitest.config.mts` — test configuration
@@ -51,7 +52,16 @@ How to identify:
51
52
- Our version is a **modified copy** of what Fern generates (e.g., fixed types, added optional defaults, broadened a union type)
52
53
53
54
Current temporarily frozen files:
54
-
-_(none currently — all `.fernignore` entries are permanently frozen)_
55
+
-`package.json` — Fern's generator produces a minimal `devDependencies` set; we add the following:
56
+
-`@commitlint/cli`, `@commitlint/config-conventional` — used by `.github/workflows/pr-title-check.yml`
57
+
-`tsx` — used by `make examples` / `make example-N`
58
+
-`playwright` — used by `make browser`
59
+
-`vite`, `terser` — pinned not because we use them directly, but because `.npmrc` sets `minimum-release-age=14400` (10 days) + `strict-peer-dependencies=true`. Without an explicit pin, pnpm tries to satisfy `vitest`'s and `webpack`'s wide peer ranges by picking the latest, which is often too new and the install fails. Pinning forces mature versions. Update the pins (and bump comments below) when you want to move forward.
60
+
-`@types/node` pinned forward to `^20.17.57` to match the Node features the SDK uses (relax this if Fern's default ever advances past Node 20).
61
+
62
+
`pnpm-lock.yaml` is **not** frozen — let Fern regenerate it, then run `pnpm install` after re-applying the `package.json` patch and the lockfile rebuilds correctly.
63
+
-`src/api/resources/manage/resources/v1/resources/projects/resources/keys/client/Client.ts` — keep `manage.v1.projects.keys.create(projectId, request?)` source-compatible with older callers that omit the request body, while still allowing the regenerated request form.
64
+
-`src/api/types/CreateKeyV1Request.ts` — preserve the old exported `CreateKeyV1RequestOne` alias alongside `CreateKeyV1Request` so existing type imports keep compiling.
55
65
56
66
**Note:** If you need to patch a Fern-generated file, add it to `.fernignore` with a comment describing the patch, and add it to the "temporarily frozen" list above.
Copy file name to clipboardExpand all lines: examples/browser/01-authentication-api-key.html
+1-2Lines changed: 1 addition & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -65,7 +65,7 @@ <h1>Authentication with API Key</h1>
65
65
<p>This example demonstrates authentication through the proxy server. The API key is configured via the DEEPGRAM_API_KEY environment variable on the proxy server.</p>
Copy file name to clipboardExpand all lines: examples/browser/02-authentication-access-token.html
+1-2Lines changed: 1 addition & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -65,7 +65,7 @@ <h1>Authentication with Access Token</h1>
65
65
<p>Access tokens are temporary (30-second TTL) and must be obtained using an API key. The API key is configured via the DEEPGRAM_API_KEY environment variable on the proxy server. Uses Bearer scheme in Authorization header.</p>
0 commit comments