signin with openai
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- react, typescript
調査の方向性
Start by reading OpenAI's SIWC token-sharing documentation and the existing @tanstack/ai-openrouter/pkce implementation. The scope also names the BYOK keyring, the ts-react-chat BYOK key dialog, the BYOK and OpenAI adapter documentation, and unit tests for the helpers. Done means the specified sign-in, callback, token refresh, UI, docs, and tests are covered, while respecting the stated token and Responses API limits.
索引モデルが issue の本文から書いたものです。
説明
Add "Sign in with ChatGPT" (SIWC) to BYOK, so a user can use their ChatGPT plan instead of pasting an OpenAI API key.
OpenAI docs: https://developers.openai.com/siwc/token-sharing-open-source
Scope
- New subpath
@tanstack/ai-openai/siwc, modelled on@tanstack/ai-openrouter/pkce.- Start: dynamic client registration (
client_id=dynamic_agent_client,agent_name_hint, persistedext_agent_host_id),state,nonce, PKCE S256, redirecthttp://127.0.0.1:<port>/auth/callback. - Callback: check
state, handleerror, keep the issuedclient_id, exchange the code athttps://auth.openai.com/api/accounts/oauth/token, check thatchatgpt.tokens.use.directwas granted. - Refresh on the client: keep the credential (client id, refresh token, expiry) in the BYOK keyring. A helper refreshes the access token before it expires and writes it into the
openaislot. The relay sees an ordinaryx-byok-openaibearer value.
- Start: dynamic client registration (
- No adapter change. Docs explain the SIWC Responses limits (
store: false,stream: true, notemperature/max_output_tokens/metadata/previous_response_id, no hosted tools). ts-react-chat: "Continue with ChatGPT" button in the BYOK key dialog.- Docs: BYOK page and OpenAI adapter page. Unit tests for the helpers.
Constraints
- OpenAI allows this only for open-source and locally hosted apps. Hosted apps need OpenAI's interest form.
- The redirect must be
127.0.0.1(notlocalhost) with the path/auth/callback. - Access tokens last 1 hour. Refresh tokens last 30 days and rotate on every refresh.
- 主要言語
- TypeScript
- スター
- 3.2k
- フォーク
- 365
- 平均マージ
- 1日 8時間
- マージ済み PR(30日)
- 261
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
TanStack/ai のほかの issue
-
withPersistence does not save activity rows when a run is stopped or fails対応中かも @tombeckenham が 1 日前に担当しました。 オープンwaiting-on: maintainer
メンテナーはふだん 1 日以内に返信
-
Activity events that a chat middleware emits are streamed but never recorded or persisted対応中かも @AlemTuzlak が 1 日前に担当しました。 オープンwaiting-on: maintainer
メンテナーはふだん 1 日以内に返信
-
withPersistence stores the durability batch hint on a stopped or failed assistant message対応中かも @tombeckenham が 1 日前に担当しました。 オープンhas-pr waiting-on: maintainer
メンテナーはふだん 1 日以内に返信
-
Activity events that a chat middleware emits are streamed but never recorded or persisted対応中かも @AlemTuzlak が 1 日前に担当しました。 オープンwaiting-on: maintainer
メンテナーはふだん 1 日以内に返信
-
withPersistence stores the durability batch hint on a stopped or failed assistant message対応中かも @tombeckenham が 1 日前に担当しました。 オープンwaiting-on: maintainer
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
jbacalso24/mimry#459 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
architecture help wanted hive/claimed-by-architect origin/architect stage/030-pr-in-progress tech-debt
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
kubestellar/console#24422 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
area: backends type: docs
難易度 1/5 1〜3時間 初心者へのやさしさ 83/100
schlessera/brain-kit#2383 ·
メンテナーはふだん 1 日以内に返信
-
agent duplicate providers tool triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信