freecodego 0.1.7-alpha.2.1 → 0.1.7-alpha.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/freecodego/bundle-latest/README.md
5
- README.md: 0b00540c87ee0781c697d407579b7c2617190d21
6
- README.zh.md: 9be8ba5e80b702e0f0b442933b0e35a9643e073d
5
+ README.md: 8d10144b93404bd365c74acfd6ed6e37c5b482b6
6
+ README.zh.md: 59610270a1325f0808de361185235bb2ff9a8f06
package/README.md CHANGED
@@ -9,7 +9,7 @@ English | [中文](README.zh.md)
9
9
 
10
10
  ## Summary
11
11
 
12
- Installable single-package FreeCodeGo composition for DeepSeek Harness `freecodego@0.1.7-alpha.2.1`, targeting Harness baseline `0.1.7-alpha.2`. The npm artifact contains the compiled Host plugin, browser client, session-event prerequisite, native worker entrypoints, and the bundled Harness Agent Teams composition. A release publishes on npm's `next` dist-tag, and its plugin version intentionally matches the Harness version it targets exactly; for a reproducible install, name the version (`freecodego@0.1.7-alpha.2`) instead of the channel. Official Codex and Claude runtime binaries remain optional platform downloads — the package does not embed every platform's native binary.
12
+ Installable single-package FreeCodeGo composition for DeepSeek Harness `freecodego@0.1.7-alpha.2.2`, targeting Harness baseline `0.1.7-alpha.2`. The npm artifact contains the compiled Host plugin, browser client, session-event prerequisite, native worker entrypoints, and the bundled Harness Agent Teams composition. A release publishes on npm's `next` dist-tag, and its plugin version intentionally matches the Harness version it targets exactly; for a reproducible install, name the version (`freecodego@0.1.7-alpha.2`) instead of the channel. Official Codex and Claude runtime binaries remain optional platform downloads — the package does not embed every platform's native binary.
13
13
 
14
14
  ## Table of Contents
15
15
 
@@ -32,7 +32,7 @@ Install the release for the Harness baseline you run; each release carries one t
32
32
 
33
33
  ```sh
34
34
  dsh plugin --profile web add --save-exact \
35
- https://github.com/XiangSu-ce/dsh-plugin-freecodego/releases/download/freecodego-v0.1.7-alpha.2.1/freecodego-0.1.7-alpha.2.tgz
35
+ https://github.com/XiangSu-ce/dsh-plugin-freecodego/releases/download/freecodego-v0.1.7-alpha.2.2/freecodego-0.1.7-alpha.2.tgz
36
36
  ```
37
37
 
38
38
  `freecodego-0.1.7-alpha.2.tgz` is the bundle for Harness `0.1.7-alpha.2`: substitute the version you run, which the settings page shows beside the installed plugin version. The asset name is the naming contract in `packages/freecodego/AGENTS.md`.
@@ -54,15 +54,15 @@ The workflow verifies the family, builds, packs, and creates the GitHub release
54
54
  ## Free Models
55
55
 
56
56
  <!-- generated:free-models:begin by scripts/generate-free-model-tables.ts -->
57
- Every free row below comes from the provider's own directory, read when you open the picker, so this is what those directories returned on 2026-09-23 (sorted, where the picker keeps directory order) — and the picker is the count that is true when you look.
57
+ Every free row below comes from the provider's own directory, read when you open the picker, so this is what those directories returned on 2026-09-24 (sorted, where the picker keeps directory order) — and the picker is the count that is true when you look.
58
58
 
59
59
  | Provider | Free models | Directory |
60
60
  |---|---|---|
61
61
  | **OpenCode** | `big-pickle`, `deepseek-v4-flash-free`, `jev-1.13-free`, `ling-3.0-flash-fin-free`, `mimo-v2.5-free`, `mimo-v2.6-flash-free`, `muse-spark-1.2`, `muse-spark-1.2-contributor-free`, `muse-spark-1.3`, `muse-spark-1.3-contributor-free`, `nemotron-3-ultra-free`, `nemotron-3.5-lightning-free`, `space-bunny-free` | 13 of 80 rows; public, no sign-in |
62
- | **Kilo** | `cohere/north-mini-code:free`, `dots-studio/dots-3-note-preview:free`, `inclusionai/ling-3.0-flash-fin:free`, `inclusionai/ling-3.0-flash-sante:free`, `inclusionai/ling-3.0-flash-vl:free`, `kilo-auto/free`, `liquid/lfm-2.5-2.6b:free`, `nex-agi/nex-n2.5-mini:free`, `nex-agi/nex-n2.5-pro:free`, `nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free`, `nvidia/nemotron-3-super-120b-a12b:free`, `nvidia/nemotron-3-ultra-550b-a55b:free`, `nvidia/nemotron-3.5-content-safety:free`, `nvidia/nemotron-3.5-lightning:free`, `openrouter/free`, `poolside/laguna-s-2.1:free`, `poolside/laguna-xs-2.1:free`, `qwen/qwen3.8-27b:free`, `stepfun/step-3.7-flash:free`, `thinkingmachines/inkling-small:free`, `z-ai/glm-5.2:free` | 21 of 394 rows; public, 200 requests/hour per egress IP |
62
+ | **Kilo** | `cohere/north-mini-code:free`, `dots-studio/dots-3-note-preview:free`, `inclusionai/ling-3.0-flash-fin:free`, `inclusionai/ling-3.0-flash-sante:free`, `kilo-auto/free`, `liquid/lfm-2.5-2.6b:free`, `nex-agi/nex-n2.5-mini:free`, `nex-agi/nex-n2.5-pro:free`, `nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free`, `nvidia/nemotron-3-super-120b-a12b:free`, `nvidia/nemotron-3-ultra-550b-a55b:free`, `nvidia/nemotron-3.5-content-safety:free`, `nvidia/nemotron-3.5-lightning:free`, `openrouter/free`, `poolside/laguna-s-2.1:free`, `poolside/laguna-xs-2.1:free`, `qwen/qwen3.8-27b:free`, `stealth/space-bunny-alpha`, `stepfun/step-3.7-flash:free`, `thinkingmachines/inkling-small:free`, `z-ai/glm-5.2:free` | 21 of 393 rows; public, 200 requests/hour per egress IP |
63
63
  | **Logfare** | chat `claude-opus-4.6`, `deepseek-v3.2`, `deepseek-v4-pro-0813`, `gemma-4-26b`, `glm-5`, `glm-5.3`, `glm-5.3-flash`, `grok-4.6`, `kimi-k2.5`, `kimi-k2.6`, `kimi-k2.7-code`, `kimi-k3`, `logfare/auto`, `moondream3.1`, `qwen-3.8-27b`, `step-3.7-flash`; images `flux-1-schnell`, `flux-2-dev`, `flux-2-klein-4b`, `flux-2-klein-9b`, `sdxl-lightning`; audio `melotts`, `whisper-large-v3-turbo`; other routes `aura-2-en`, `lucid-origin`, `nova-3`, `phoenix-1.0` | 27 rows; 20 need a training-data opt-in, the other 7 do not |
64
64
  | **Qoder** | `Qwen 3.8 Flash` (route `qmodel_38flash`) | the free flash route, plus daily check-in campaigns |
65
- | **NVIDIA** | `google/gemma-4-31b-it`, `moonshotai/kimi-k3`, `z-ai/glm-5.3`, `z-ai/glm-5.3-flash` — the roster also names `deepseek-ai/deepseek-v4-flash-0731` and `deepseek-ai/deepseek-v4-pro-0813`, which are gone from NVIDIA's live catalogue of 82 rows | an API key is required to call them; cross-checked 2026-09-23 |
65
+ | **NVIDIA** | `google/gemma-4-31b-it`, `moonshotai/kimi-k3`, `z-ai/glm-5.3`, `z-ai/glm-5.3-flash` — the roster also names `deepseek-ai/deepseek-v4-flash-0731` and `deepseek-ai/deepseek-v4-pro-0813`, which are gone from NVIDIA's live catalogue of 82 rows | an API key is required to call them; cross-checked 2026-09-24 |
66
66
  | **SenseNova** | `deepseek-v4-flash`, `deepseek-v4-pro`, `glm-5.2`, `kimi-k3`, `sensenova-6.8-flash-lite` — 1M context and 128K output each | roster ships in the bundle; an API key is required |
67
67
  | **TRAE** | the rows its directory lists | free credits reset daily, per account |
68
68
  | **Cline** | the rows the directory marks `×0 · 官方免费模型` | an account pool |
package/README.zh.md CHANGED
@@ -9,7 +9,7 @@ kind: "package-bundle"
9
9
 
10
10
  ## 概述
11
11
 
12
- 面向 DeepSeek Harness `freecodego@0.1.7-alpha.2.1` 的可安装单包 FreeCodeGo 组合,目标 Harness 基线为 `0.1.7-alpha.2`。npm 产物包含编译后的 Host 插件、浏览器端 client、会话事件前置包、原生 worker 入口,以及随包交付的 Harness Agent Teams 组合。发布产物使用 npm 的 `next` dist-tag,且其插件版本刻意与所面向的 Harness 版本完全一致;需要可复现安装时请指定版本(`freecodego@0.1.7-alpha.2`),而不是渠道名。官方 Codex 与 Claude 运行时二进制仍按平台可选下载——本包不内嵌每个平台的原生二进制。
12
+ 面向 DeepSeek Harness `freecodego@0.1.7-alpha.2.2` 的可安装单包 FreeCodeGo 组合,目标 Harness 基线为 `0.1.7-alpha.2`。npm 产物包含编译后的 Host 插件、浏览器端 client、会话事件前置包、原生 worker 入口,以及随包交付的 Harness Agent Teams 组合。发布产物使用 npm 的 `next` dist-tag,且其插件版本刻意与所面向的 Harness 版本完全一致;需要可复现安装时请指定版本(`freecodego@0.1.7-alpha.2`),而不是渠道名。官方 Codex 与 Claude 运行时二进制仍按平台可选下载——本包不内嵌每个平台的原生二进制。
13
13
 
14
14
  ## 目录
15
15
 
@@ -32,7 +32,7 @@ kind: "package-bundle"
32
32
 
33
33
  ```sh
34
34
  dsh plugin --profile web add --save-exact \
35
- https://github.com/XiangSu-ce/dsh-plugin-freecodego/releases/download/freecodego-v0.1.7-alpha.2.1/freecodego-0.1.7-alpha.2.tgz
35
+ https://github.com/XiangSu-ce/dsh-plugin-freecodego/releases/download/freecodego-v0.1.7-alpha.2.2/freecodego-0.1.7-alpha.2.tgz
36
36
  ```
37
37
 
38
38
  `freecodego-0.1.7-alpha.2.tgz` 就是面向 Harness `0.1.7-alpha.2` 的 bundle:请替换为你实际运行的版本,设置页会把它显示在已装插件版本旁边。资产名即 `packages/freecodego/AGENTS.md` 里的命名约定。
@@ -54,15 +54,15 @@ gh workflow run release-freecodego.yml --ref freecodego-v<version>
54
54
  ## 免费模型
55
55
 
56
56
  <!-- generated:free-models:begin by scripts/generate-free-model-tables.ts -->
57
- 下面每一行都来自各提供商自己的目录,在你打开选择器时读取;也就是说,这是那些目录在 2026-09-23 返回的结果(按名称排序,选择器里保持目录顺序),而选择器里的数量才是你查看时真正成立的数量。
57
+ 下面每一行都来自各提供商自己的目录,在你打开选择器时读取;也就是说,这是那些目录在 2026-09-24 返回的结果(按名称排序,选择器里保持目录顺序),而选择器里的数量才是你查看时真正成立的数量。
58
58
 
59
59
  | 提供商 | 免费模型 | 目录 |
60
60
  |---|---|---|
61
61
  | **OpenCode** | `big-pickle`、`deepseek-v4-flash-free`、`jev-1.13-free`、`ling-3.0-flash-fin-free`、`mimo-v2.5-free`、`mimo-v2.6-flash-free`、`muse-spark-1.2`、`muse-spark-1.2-contributor-free`、`muse-spark-1.3`、`muse-spark-1.3-contributor-free`、`nemotron-3-ultra-free`、`nemotron-3.5-lightning-free`、`space-bunny-free` | 80 行中的 13 行;公开,无需登录 |
62
- | **Kilo** | `cohere/north-mini-code:free`、`dots-studio/dots-3-note-preview:free`、`inclusionai/ling-3.0-flash-fin:free`、`inclusionai/ling-3.0-flash-sante:free`、`inclusionai/ling-3.0-flash-vl:free`、`kilo-auto/free`、`liquid/lfm-2.5-2.6b:free`、`nex-agi/nex-n2.5-mini:free`、`nex-agi/nex-n2.5-pro:free`、`nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free`、`nvidia/nemotron-3-super-120b-a12b:free`、`nvidia/nemotron-3-ultra-550b-a55b:free`、`nvidia/nemotron-3.5-content-safety:free`、`nvidia/nemotron-3.5-lightning:free`、`openrouter/free`、`poolside/laguna-s-2.1:free`、`poolside/laguna-xs-2.1:free`、`qwen/qwen3.8-27b:free`、`stepfun/step-3.7-flash:free`、`thinkingmachines/inkling-small:free`、`z-ai/glm-5.2:free` | 394 行中的 21 行;公开,每个出口 IP 每小时 200 次 |
62
+ | **Kilo** | `cohere/north-mini-code:free`、`dots-studio/dots-3-note-preview:free`、`inclusionai/ling-3.0-flash-fin:free`、`inclusionai/ling-3.0-flash-sante:free`、`kilo-auto/free`、`liquid/lfm-2.5-2.6b:free`、`nex-agi/nex-n2.5-mini:free`、`nex-agi/nex-n2.5-pro:free`、`nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free`、`nvidia/nemotron-3-super-120b-a12b:free`、`nvidia/nemotron-3-ultra-550b-a55b:free`、`nvidia/nemotron-3.5-content-safety:free`、`nvidia/nemotron-3.5-lightning:free`、`openrouter/free`、`poolside/laguna-s-2.1:free`、`poolside/laguna-xs-2.1:free`、`qwen/qwen3.8-27b:free`、`stealth/space-bunny-alpha`、`stepfun/step-3.7-flash:free`、`thinkingmachines/inkling-small:free`、`z-ai/glm-5.2:free` | 393 行中的 21 行;公开,每个出口 IP 每小时 200 次 |
63
63
  | **Logfare** | 对话 `claude-opus-4.6`、`deepseek-v3.2`、`deepseek-v4-pro-0813`、`gemma-4-26b`、`glm-5`、`glm-5.3`、`glm-5.3-flash`、`grok-4.6`、`kimi-k2.5`、`kimi-k2.6`、`kimi-k2.7-code`、`kimi-k3`、`logfare/auto`、`moondream3.1`、`qwen-3.8-27b`、`step-3.7-flash`;图片 `flux-1-schnell`、`flux-2-dev`、`flux-2-klein-4b`、`flux-2-klein-9b`、`sdxl-lightning`;音频 `melotts`、`whisper-large-v3-turbo`;其他路由 `aura-2-en`、`lucid-origin`、`nova-3`、`phoenix-1.0` | 27 行;20 行需要训练数据授权,其余 7 行不需要 |
64
64
  | **Qoder** | `Qwen 3.8 Flash`(路由 `qmodel_38flash`) | 免费 flash 路由,另有每日签到活动 |
65
- | **NVIDIA** | `google/gemma-4-31b-it`、`moonshotai/kimi-k3`、`z-ai/glm-5.3`、`z-ai/glm-5.3-flash` —— 名单里另有 `deepseek-ai/deepseek-v4-flash-0731` 与 `deepseek-ai/deepseek-v4-pro-0813`,这两个名字已不在 NVIDIA 实时目录(82 行)中 | 调用需要 API key;核对于 2026-09-23 |
65
+ | **NVIDIA** | `google/gemma-4-31b-it`、`moonshotai/kimi-k3`、`z-ai/glm-5.3`、`z-ai/glm-5.3-flash` —— 名单里另有 `deepseek-ai/deepseek-v4-flash-0731` 与 `deepseek-ai/deepseek-v4-pro-0813`,这两个名字已不在 NVIDIA 实时目录(82 行)中 | 调用需要 API key;核对于 2026-09-24 |
66
66
  | **SenseNova** | `deepseek-v4-flash`、`deepseek-v4-pro`、`glm-5.2`、`kimi-k3`、`sensenova-6.8-flash-lite` —— 均为 1M 上下文 / 128K 输出 | 名单随 bundle 内置;需要 API key |
67
67
  | **TRAE** | 其目录列出的那些行 | 免费额度每日重置,按账号 |
68
68
  | **Cline** | 目录标记 `×0 · 官方免费模型` 的那些行 | 账号池 |
package/dist/bootstrap.js CHANGED
@@ -1356,6 +1356,38 @@ var FreeCodeGoMobileAuthClient = class {
1356
1356
  async sendVerifyCode(email, signal) {
1357
1357
  return { countdown: finiteNumber$1((await this.request("/send-verify-code", { email }, signal)).countdown, "countdown") };
1358
1358
  }
1359
+ /**
1360
+ * Ask the gateway to mail a password-reset code to one address.
1361
+ *
1362
+ * `method: 'code'` is what makes this the desktop flow: without it the gateway
1363
+ * mails a browser link built from its own frontend URL instead, which a
1364
+ * webview has nowhere to land. The gateway answers the same way whether or not
1365
+ * the address is registered — that is deliberate anti-enumeration behaviour on
1366
+ * its side, not an answer about this account.
1367
+ * @param email - the address to send the reset code to.
1368
+ * @param signal - aborts the request when the caller cancels.
1369
+ */
1370
+ async requestPasswordResetCode(email, signal) {
1371
+ await this.request("/forgot-password", {
1372
+ email,
1373
+ method: "code"
1374
+ }, signal);
1375
+ }
1376
+ /**
1377
+ * Replace the account's password using the emailed reset code.
1378
+ *
1379
+ * Deliberately returns no tokens: the gateway does not issue a session here, so
1380
+ * signing in stays a separate, explicit step with the new password.
1381
+ * @param input - the address, the code, and the new password.
1382
+ * @param signal - aborts the request when the caller cancels.
1383
+ */
1384
+ async resetPassword(input, signal) {
1385
+ await this.request("/reset-password", {
1386
+ email: input.email,
1387
+ verify_code: input.verifyCode,
1388
+ new_password: input.newPassword
1389
+ }, signal);
1390
+ }
1359
1391
  /** Register and return an authenticated token pair to the host caller.
1360
1392
  * @param signal - aborts the request when the caller cancels.
1361
1393
  * @param input - the address, password, and remember-me intent.
@@ -1463,12 +1495,18 @@ function tokens(payload) {
1463
1495
  tokenType: "Bearer"
1464
1496
  };
1465
1497
  }
1498
+ var addressLocalPart = (email) => {
1499
+ const at2 = email.indexOf("@");
1500
+ return (at2 <= 0 ? email : email.slice(0, at2)).trim();
1501
+ };
1466
1502
  function user(payload) {
1467
1503
  const avatarUrl = typeof payload.avatar_url === "string" && payload.avatar_url.trim() !== "" ? payload.avatar_url.trim() : typeof payload.avatarUrl === "string" && payload.avatarUrl.trim() !== "" ? payload.avatarUrl.trim() : void 0;
1504
+ const email = requiredString(payload.email, "user.email");
1505
+ const username = typeof payload.username === "string" && payload.username.trim() !== "" ? payload.username.trim() : addressLocalPart(email);
1468
1506
  return {
1469
1507
  id: finiteNumber$1(payload.id, "user.id"),
1470
- username: requiredString(payload.username, "user.username"),
1471
- email: requiredString(payload.email, "user.email"),
1508
+ username,
1509
+ email,
1472
1510
  ...avatarUrl === void 0 ? {} : { avatarUrl },
1473
1511
  role: requiredString(payload.role, "user.role"),
1474
1512
  balance: finiteNumber$1(payload.balance, "user.balance"),
@@ -1810,6 +1848,31 @@ var FreeCodeGoAccountCoordinator = class {
1810
1848
  return this.auth.sendVerifyCode(email, signal);
1811
1849
  }
1812
1850
  /**
1851
+ * Mail a password-reset code for one address.
1852
+ *
1853
+ * Straight through to the gateway: recovery is the one account operation that
1854
+ * needs no session, no vault write and no identity, so there is nothing here
1855
+ * for the coordinator to keep.
1856
+ * @param email - the address the reset code is sent to.
1857
+ * @param signal - aborts the request when the caller cancels.
1858
+ */
1859
+ async requestPasswordResetCode(email, signal) {
1860
+ return this.auth.requestPasswordResetCode(email, signal);
1861
+ }
1862
+ /**
1863
+ * Replace the password using the emailed reset code.
1864
+ *
1865
+ * It deliberately does not sign in afterwards — the gateway issues no session
1866
+ * here — so the caller keeps the login form as the next step. A reset also
1867
+ * invalidates nothing locally: this machine's stored password, if the user
1868
+ * asked for one to be kept, is the caller's business to rewrite.
1869
+ * @param input - the address, the code, and the new password.
1870
+ * @param signal - aborts the request when the caller cancels.
1871
+ */
1872
+ async resetPassword(input, signal) {
1873
+ return this.auth.resetPassword(input, signal);
1874
+ }
1875
+ /**
1813
1876
  * Authenticate and store a successful token pair in the host vault.
1814
1877
  *
1815
1878
  * The intent of this attempt is recorded here and committed in
@@ -58685,6 +58748,16 @@ async function sendVerifyCode(host, email) {
58685
58748
  if (host.account === void 0) throw backendNotConfigured();
58686
58749
  return host.account.sendVerifyCode(email);
58687
58750
  }
58751
+ async function forgotPassword(host, email) {
58752
+ if (host.account === void 0) throw backendNotConfigured();
58753
+ await host.account.requestPasswordResetCode(email);
58754
+ return { sent: true };
58755
+ }
58756
+ async function resetPassword(host, input) {
58757
+ if (host.account === void 0) throw backendNotConfigured();
58758
+ await host.account.resetPassword(input);
58759
+ return { reset: true };
58760
+ }
58688
58761
  async function login(host, input) {
58689
58762
  if (host.account === void 0) throw backendNotConfigured();
58690
58763
  const result = await host.account.login({
@@ -68011,6 +68084,8 @@ var FreeCodeGoHarnessPlugin = (() => {
68011
68084
  let _accountDetail_decorators;
68012
68085
  let _register_decorators;
68013
68086
  let _sendVerifyCode_decorators;
68087
+ let _forgotPassword_decorators;
68088
+ let _resetPassword_decorators;
68014
68089
  let _login_decorators;
68015
68090
  let _rememberedPassword_decorators;
68016
68091
  let _oauthLogin_decorators;
@@ -68237,6 +68312,8 @@ var FreeCodeGoHarnessPlugin = (() => {
68237
68312
  _accountDetail_decorators = [Remote("accountDetail")];
68238
68313
  _register_decorators = [Remote("accountRegister")];
68239
68314
  _sendVerifyCode_decorators = [Remote("accountSendVerifyCode")];
68315
+ _forgotPassword_decorators = [Remote("accountForgotPassword")];
68316
+ _resetPassword_decorators = [Remote("accountResetPassword")];
68240
68317
  _login_decorators = [Remote("accountLogin")];
68241
68318
  _rememberedPassword_decorators = [Remote("accountRememberedPassword")];
68242
68319
  _oauthLogin_decorators = [Remote("accountOAuthLogin")];
@@ -69800,6 +69877,28 @@ var FreeCodeGoHarnessPlugin = (() => {
69800
69877
  },
69801
69878
  metadata: _metadata
69802
69879
  }, null, _instanceExtraInitializers);
69880
+ __esDecorate(this, null, _forgotPassword_decorators, {
69881
+ kind: "method",
69882
+ name: "forgotPassword",
69883
+ static: false,
69884
+ private: false,
69885
+ access: {
69886
+ has: (obj) => "forgotPassword" in obj,
69887
+ get: (obj) => obj.forgotPassword
69888
+ },
69889
+ metadata: _metadata
69890
+ }, null, _instanceExtraInitializers);
69891
+ __esDecorate(this, null, _resetPassword_decorators, {
69892
+ kind: "method",
69893
+ name: "resetPassword",
69894
+ static: false,
69895
+ private: false,
69896
+ access: {
69897
+ has: (obj) => "resetPassword" in obj,
69898
+ get: (obj) => obj.resetPassword
69899
+ },
69900
+ metadata: _metadata
69901
+ }, null, _instanceExtraInitializers);
69803
69902
  __esDecorate(this, null, _login_decorators, {
69804
69903
  kind: "method",
69805
69904
  name: "login",
@@ -75474,6 +75573,22 @@ ${plan.text}
75474
75573
  return sendVerifyCode(this.accountRemotesHost, email);
75475
75574
  }
75476
75575
  /**
75576
+ * Mail the password-reset code for an existing account.
75577
+ * @param email - the address the reset code is sent to.
75578
+ * @returns whether the gateway accepted the request.
75579
+ */
75580
+ async forgotPassword(email) {
75581
+ return forgotPassword(this.accountRemotesHost, email);
75582
+ }
75583
+ /**
75584
+ * Replace a password using the emailed reset code.
75585
+ * @param input - the address, the emailed code, and the new password.
75586
+ * @returns whether the gateway accepted the new password.
75587
+ */
75588
+ async resetPassword(input) {
75589
+ return resetPassword(this.accountRemotesHost, input);
75590
+ }
75591
+ /**
75477
75592
  * Sign in with a password, keeping the issued tokens in the Host vault.
75478
75593
  * @param input - credentials and the remember-me intent of this attempt.
75479
75594
  * @returns the account snapshot after the sign-in.