[bot] Mistral Batch API (`client.batch.jobs`) is not instrumented
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- javascript, typescript
- 領域
- observability, tooling
調査の方向性
Start by reading js/src/instrumentation/plugins/mistral-interceptors.ts to see how existing Mistral channels are declared, then mistral-plugin.ts to see how they are subscribed. Compare js/src/wrappers/mistral.ts and js/src/vendor-sdk-types/mistral.ts to understand how the batch namespace is currently unwrapped and typed. Done means client.batch.jobs.create/get/list and result download produce spans consistent with the existing chat and embeddings instrumentation, with tests covering the batch lifecycle.
索引モデルが issue の本文から書いたものです。
説明
Summary
Mistral's official TypeScript SDK exposes a documented Batch API (client.batch.jobs.create()/.get()/.list(), plus client.files.download() for results) for submitting large-scale async chat, embeddings, FIM, moderation, classification, OCR, and conversation jobs. This repo instruments every one of Mistral's synchronous execution surfaces but has zero coverage of the batch lifecycle — no channel, no plugin logic, no vendor type.
What's missing
js/src/instrumentation/plugins/mistral-plugin.ts—MistralPlugin.onEnable()/subscribeToMistralChannels()(lines 24-277) subscribes to exactly ten channels:chatComplete,chatStream,embeddingsCreate,classifiersModerate,classifiersModerateChat,classifiersClassify,classifiersClassifyChat,fimComplete,fimStream,agentsComplete,agentsStream. There is nobatch-related channel anywhere in the file.js/src/instrumentation/plugins/mistral-interceptors.ts— grepped forbatch/Batch(case-insensitive): zero matches. NomistralChannels.batch*exists for the plugin to subscribe to in the first place.js/src/vendor-sdk-types/mistral.ts—MistralClient(lines 222-229) is typed as{ chat?, fim?, agents?, embeddings?, classifiers?, [key: string]: unknown }. There is nobatchnamespace type at all (noMistralBatch,MistralBatchJob, etc.), so even an untyped passthrough isn't modeled.js/src/wrappers/mistral.ts—wrapMistral()/mistralProxy()(lines 85-108) proxies onlychat,fim,agents,embeddings,classifiers. A client'sbatchproperty is returned as-is via the proxy'sdefaultbranch (Reflect.get, line 104) — fully unwrapped, soclient.batch.jobs.create(...)produces no span of any kind: no submission span, no status/polling span, no per-request result spans.
This means a customer submitting client.batch.jobs.create({ endpoint: "/v1/chat/completions", inputFiles: [...] }) — a fully supported, documented Mistral API call — gets no trace in Braintrust whatsoever, while the same customer's synchronous chat.complete/embeddings.create calls are fully traced with input, output, and token metrics.
Braintrust docs status
not_found. https://www.braintrust.dev/docs/providers/mistral documents only synchronous spans: "Chat completion spans (mistral.chat.complete...)", "Embedding spans (mistral.embeddings.create)", "Fill-in-the-middle completion spans", "Audio transcription spans." The page's "All call types support sync and async variants" line refers to Python's asyncio client variants, not batch jobs. No batch/async-job tracing is mentioned anywhere on the page.
Upstream sources
- https://docs.mistral.ai/capabilities/batch/ — Batch API guide:
client.batch.jobs.create()acceptsinput_files(file-based, up to 1,000,000 requests) or inlinerequests(up to 10,000); supportsendpointvalues/v1/embeddings,/v1/chat/completions,/v1/fim/completions,/v1/moderations,/v1/chat/moderations,/v1/ocr,/v1/classifications,/v1/conversations,/v1/audio/transcriptions; status viaclient.batch.jobs.get()/.list(); results retrieved viaclient.files.download().
Braintrust docs sources checked
- https://www.braintrust.dev/docs/providers/mistral
- https://www.braintrust.dev/docs/guides/tracing/integrations
Local repo files inspected
js/src/instrumentation/plugins/mistral-plugin.ts—subscribeToMistralChannels()(lines 24-277), full enumerated channel listjs/src/instrumentation/plugins/mistral-interceptors.ts— grepped forbatch/Batch, zero matchesjs/src/vendor-sdk-types/mistral.ts—MistralClienttype (lines 222-229)js/src/wrappers/mistral.ts—mistralProxy()(lines 85-108), proxy coverage limited tochat/fim/agents/embeddings/classifiers
- 主要言語
- TypeScript
- スター
- 29
- フォーク
- 21
- 平均マージ
- 1日 15時間
- マージ済み PR(30日)
- 76
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
braintrustdata/braintrust-sdk-javascript のほかの issue
-
typescript
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
braintrustdata/braintrust-sdk-javascript#2686 ·
メンテナーはふだん 1 日以内に返信
-
[bot] Cloudflare Workers AI `queueRequest` (batch) inference is explicitly excluded from tracingオープンcloudflare typescript
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
braintrustdata/braintrust-sdk-javascript#2684 ·
メンテナーはふだん 1 日以内に返信
-
High TypeScript checking cost from generated Zod 3 schemas対応中かも @lforst が 14 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 22/100
braintrustdata/braintrust-sdk-javascript#2624 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
[bot] Instrument Luma AI (17,324 weekly downloads)再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープンtypescript
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
braintrustdata/braintrust-sdk-javascript#2578 ·
メンテナーはふだん 1 日以内に返信
-
[bot] Instrument Letta Agent SDK (87,205 weekly downloads)再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープンtypescript
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
braintrustdata/braintrust-sdk-javascript#2577 ·
メンテナーはふだん 1 日以内に返信
braintrustdata/braintrust-sdk-javascript の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Graphify-Labs/graphify#4860 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
sveltejs/eslint-plugin-svelte#1615 ·
メンテナーはふだん 7 日以内に返信
-
Parallel reticle_verify opens per-flow leases without the source lease's ignoreHTTPSErrors対応中かも @as992949791 が今日担当しました。 オープンgood first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
reticlehq/reticle#2033 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信