mcpField
B
bundlebox

bundlebox

ローカル
github.com開発ツール34 週間前に更新

bundlebox について

bundleboxはコーディングエージェント向けにリポジトリの情報を整理し、モデルがファイルを読む前にスキャンや索引、チェックで解決できる問いを処理します。セッションのトークン使用量も記録し、MCPクライアントに機能を公開します。

主な機能

  1. 01リポジトリのスキャンと問題検出
  2. 02予算に合わせた位置付きブリーフ
  3. 03シンボルテーブルと検索ガード
  4. 04エージェント連携とセッション記録
  5. 05ドライラン対応のワークフローコマンド

活用シーン

  1. 01コーディング前の要点ブリーフ作成
  2. 02広範なファイル検索を避けた宣言の特定
  3. 03エージェントセッションのトークン使用量追跡

MCP 対応

stdioのJSON-RPC 2.0でpinpoint、context、findings、scan、トークン推定などのツールを提供します。対応エージェント向けのMCPエントリーも設定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"blackswanalpha-bundlebox": {
"command": "npx",
"args": [
"-y",
"bundlebox"
]
}
}
}
起動コマンドnpx -y bundlebox

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmbundlebox0.8.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

bundlebox

bundlebox

AI コーディングエージェントのための、トークン消費ゼロのソフトウェアファクトリー。
Claude Code、Codex、Gemini CLI、Cursor、Copilot、OpenCode、Aider、その他あらゆるカスタムエージェントにまたがって作業をスキャン、パック、ルーティング、実行し、セッションで使用したトークンと節約できたトークンをすべて測定します。

npm ci MIT

AI コーディングエージェントは読み込んだ内容に対して課金されますが、読み込む内容の大半は判断ではなく状況把握です。シンボルがどこにあるか、2つのテーブルが一致しているか、変更を証明するコマンドは何か、先週から何が変わったか、といった情報です。bundlebox は、パース、カウント、パスの確認、差分の取得で答えられるすべての質問にエージェントがファイルを開く前に答え、その回答をエージェントのコンテキストウィンドウに収まるブリーフにまとめ、測定最小限のフラグ構成でエージェントを起動し、その後、セッションで使用したトークンと節約できたトークンを測定します。bundlebox 自体がモデルを呼び出すことはありません。

bb genesis   ->  a world     a doc becomes surfaces, rules and capabilities  0 tokens
bb scan      ->  findings    what is wrong, with evidence                    0 tokens
bb fix       ->  patches     local actuators close what they can             0 tokens
bb cookbook  ->  a board     what the RUNNING system does, run by the kernel 0 tokens
bb simulate  ->  limits      what it does at a hundred callers               0 tokens
bb compile   ->  units       what to do about the rest, packed to one window
bb pinpoint  ->  a brief     where the work is, quoted and budgeted, before a model opens
bb arc       ->  an index    every declaration in one file, read in microseconds  0 tokens
bb route     ->  lanes       who does it, where, in what wave
bb run       ->  sessions    the only verb that spends
bb finish    ->  a ledger    what proves this done, declared first and run after   0 tokens
bb git       ->  PRs         commit, push, draft PR, review, gated merge     0 tokens
bb runbook   ->  the system  is it up, is it ANSWERING, what broke since    0 tokens
bb recom     ->  an answer   what was already driven, and whether it holds   0 tokens
bb recom gate->  a decision  and therefore whether to drive at all           0 tokens
bb dotty     ->  a screen    what it showed, as rows a session can diff      0 tokens
bb sieve     ->  a window    a tool result shrunk before it is billed twice    0 tokens
bb uptake    ->  a verdict   of everything wired in, what sessions reached for 0 tokens
bb monitor   ->  the window  what the 5-hour block has left, and the guard   0 tokens
bb session   ->  the bill    what a session used and saved, measured         0 tokens
bb lathe     ->  automation  what this box did by hand more than twice, as scripts 0 tokens
bb env       ->  a checklist what a complete .bundlebox holds, and whether this has 0 tokens

参照ワークスペースでの測定値(bb session、bb tokens profile --probe、bb buckmaster episodes で再生成できます):

前後
起動したセッションごとの開始時のコンテキストウィンドウ(作業開始前)44.3k トークン29.2k トークン(−34%)
同じ調査結果を計画した場合5セッション、予測値1.3M2セッション、351k(−74%)
パイプラインの1回の実行(bb pipeline run intake)エージェントのターン数226133秒、モデルのトークン消費なし

インストール

npm i -g bundlebox
# or
curl -fsSL https://raw.githubusercontent.com/blackswanalpha/bundlebox/main/scripts/install.sh | sh

Node ≥ 20 と git が必要です。Linux、macOS、Windows に対応しています。CI では Node 20、22、24 を使用し、3つのすべての OS で全テストスイートを実行しています。Windows では既知の未対応事項が2つあります。パイプで接続した受け入れゲートは最初の失敗ではなく最後のコマンドの終了コードを報告します。cmd.exe に set -o pipefail がないためです(パイプで接続していないゲートは正確です)。また、Windows 上で Claude Code がプロジェクトディレクトリに付ける名前が確認されていないため、bb session がトランスクリプトを見つけられない場合があります。オプションの Rust および Python コンポーネントを使うと、より高速で高機能になります。これらがなくても、すべて適切に動作します。

  • Rust カーネル(bbk):ツリーの走査、フィンガープリント、トークン推定、重複ウィンドウ、シンボルインデックス、実際のタイムアウトを伴う受け入れゲート、ワークツリーを扱います。 bb kernel install はリリースバイナリを取得し、bb kernel build は cargo でコンパイルします。 これがない場合は JS 実装が実行され、セルフテストで両者が同一の回答を返すことを検証します。
  • Rust インデックスコンパイラー(arc):派生シンボルテーブルを、読み取りガードと検索ガードが参照する単一のバイナリインデックスにコンパイルします。コールドフックプロセスでテーブルを走査する場合に比べて13倍高速です。 bb arc build でビルドします。テーブルに変更があると bb snapgen build によって再コンパイルされます。インデックスが存在しない、途中で切れている、またはインデックス形式ではない場合、すべてのリーダーはテーブルの走査にフォールバックします。「インデックスがない」と「何も宣言されていない」は異なる回答だからです。
  • Python エキスパートシステム(bundlebox_expert、標準ライブラリのみ):説明可能な導出、確信度の縮小、トランスクリプトのシグナル、プロセスモデル、メモリを備えたルールエンジンです。 bb buckmaster には python3 ≥ 3.9 が必要です。トークン消費ゼロのパスには必要ありません。

npm 依存関係はありません。03:00 に実行される cron ワーカーは、ディスク上にあるものを実行するか、何も実行しません。

まずはこちら

cd your-repo
bb init            # detect languages, agents and gates; write .bundlebox/config.json
bb doctor          # what this box can run, which runtime serves each op
bb wire --apply    # hooks, skills, instruction blocks and MCP entries for every agent
bb env up --apply  # build everything a session reads, so nothing is derived by searching
bb scan            # the detectors. Seconds, 0 tokens
bb findings        # what the store holds; bb explain <id> for one
bb pinpoint gaps   # every open finding as a located, quoted, budgeted brief
bb pinpoint next   # make one of them the ACTIVE brief the guards answer from
bb compile         # findings -> units, each packed to one window (dry run)
bb route           # units -> lanes (dry run)
bb run             # writes the exact prompt and command per lane, spawns nothing
bb run --apply     # spawns the sessions
bb finish check    # run the acceptance ledger; unproven never reads as green
bb session         # what the last session used and saved

コードではなく、ドキュメントから始める場合:

bb genesis docs/PRD.md --base http://127.0.0.1:4400   # surfaces, rules, capabilities, a seeded corpus
bb genesis plan                                       # what nothing covers, ranked and tiered
bb genesis pack                                       # one small brief per surface
bb genesis send calendar --run --spend                # the only step that costs anything
bb cookbook check && bb cookbook run                  # the kernel executes what came back
bb mainboard gaps                                     # the first stage that does not hold, and its fix
bb console                                            # one page: the pipeline, the window, every session

すべての動詞は --apply を指定するまでドライランです。実際に処理を実行できるのは run と bridge send だけです。

エージェントへの接続

bb wire --apply は、マシン上で検出したエージェントごとに、4 つの項目をインストールします。マーカーで囲まれた指示ブロック、エージェントが対応している場合のフック、読み込みに対応している場合のスキル、そして MCP サーバーのエントリーです。bb unwire は、自身が追加したブロック、エントリー、フックの行、スキルのみを削除します。

エージェント指示フックスキルMCP
Claude CodeCLAUDE.mdUserPromptSubmit(ブリーフを作成)、PreToolUse Read/Grep/Bash(ブリーフを提供)、SessionStart(テーブルの索引)、PostToolUse(ふるい。sieve.enabled が有効になるまでオフ)、PreCompact、SessionEnd(請求額).claude/skills.mcp.json
Codex CLIAGENTS.md—.codex/skills.codex/config.toml
Gemini CLIGEMINI.md——.gemini/settings.json
Cursor.cursor/rules/bundlebox.mdc——.cursor/mcp.json
GitHub Copilot.github/copilot-instructions.md——.vscode/mcp.json
OpenCodeAGENTS.md——opencode.json
Cline / Roo.clinerules/bundlebox.md———
Windsurf.windsurf/rules/bundlebox.md———
AiderAGENTS.md を読み込む .aider.conf.yml———
任意のコマンド{prompt_file} {cwd} {model} を指定した lanes.custom_command———

2 つのスキルが付属しており、起動するまではコストがかかりません。これは指示ブロックにはない特性です。指示ブロックはすべてのシステムプロンプトに含まれ、セッションの内容に関係なく料金が発生します。bb-finish は実行可能なゲートで裏付けられた完了の規律であり、antislop は各ルールのコストと、代わりに何を書くべきかを示す文章ルール集です。

bb mcp は、依存関係なしで、stdio 経由の JSON-RPC 2.0 として bb_pinpoint、bb_context、bb_snapgen、bb_findings、bb_scan、bb_oversight_brief、bb_explain、bb_tokens_estimate、bb_session を提供します。

bb wire --apply は、上の表にあるすべてのエージェントのエントリーを書き込みます。管理対象外のエージェントの場合は、次のようにします。

{ "mcpServers": { "bundlebox": { "command": "npx", "args": ["-y", "bundlebox", "mcp"] } } }

Claude Code では、1 行として指定するか、2 つのスキルとフックをまとめて提供するプラグインとして指定できます。

claude mcp add bundlebox -- npx -y bundlebox mcp
# or
/plugin marketplace add blackswanalpha/bundlebox
/plugin install bundlebox@bundlebox

この表にないエージェント、bundlebox が把握していないものを接続する方法、エージェントをレーンとして実行する方法を含む完全なガイドは、docs/agents.md を参照してください。その後、bb uptake で、インストールした各項目にセッションがアクセスしたかを確認できます。

アドバイスは見落とされる。解決策は強制適用です

bb uptake でその差を測定しました。このワークスペースで 15 回のセッションを調べたところ、MCP ツールが起動したのは 0 回、5 つ以上の異なるファイルを開いた 13 回のセッションのうち pinpoint が起動したのは 3 回、検索を実行した 15 回のセッションのうちリファレンステーブルが使われたのは 5 回でした。この 13 回のセッションでは、それぞれ 30~598 個のファイルが開かれていました。エージェントに対して事前に設定されていたものは、すべて推奨にすぎず、推奨は 4 回のうち約 3 回、モデル自身の習慣に負けていました。

そこで、接続の方法を変えました。

推奨するのではなく、実行します。 UserPromptSubmit は、タスクの内容に沿ったプロンプトに対してブリーフ自体を作成します。所要時間は 15 秒の予算に対して 0.47 秒です。これは、pinpoint が読み取る入力はすべて保存済みのアーティファクトであり、計算処理がないためです。コンテキストに入るのはマップで、約 300 トークンです。

見つかった情報を提供します。 PreToolUse は、ブリーフですでに引用されている範囲の読み取りを拒否し、拒否理由でその引用を返します。また、完全に同一の読み取りを拒否し、シンボルテーブルですでに回答できる宣言検索を拒否して該当行を返し、予算の都合で除外されたファイルを開く前に確認を求めます。対象範囲内のファイルが完全にブロックされることはありません。Claude Code が編集前に少なくとも 1 回、読み取りに成功する必要があるため、拒否時には範囲を示し、その読み取りは許可します。宣言されたツールは Grep で、実測したトランスクリプトでは Bash 内でも検索が行われているため、両方をガードします。

具体性とパスに基づいて順位付けします。 ブリーフの強制適用により、誤った場所を特定した場合のコストが上がります。候補セットに対する逆文書頻度を使うことで、ツリー内のあらゆる場所にある名前との完全一致が、珍しい名前との緩い一致よりも高い順位になるのを防ぎます。また、wire というディレクトリも、ファイルの用途を示す根拠として数えるようになりました。明示的に指定されたファイルは、スコア付けせず最初に固定されます。

動詞

動詞回答内容コスト
scan, findings, explain, fix証拠と期待値に基づくトリアージを備えた16種類の汎用検出器。ファイルを書き換える前にパッチを作成するローカルアクチュエーター0
compile, route, context, gates引用範囲と先頭に繰り上げた証拠を含む、ウィンドウに詰め込まれたユニット。競合を親和性とウェーブで表したレーン。このスコープに収まるか0
run選択したエージェント上のレーン。環境変数の許可リスト。ハードタイムアウト。判定としての受け入れ結果。unproven は --pr をブロックします消費します
gitコミット、プッシュ、ドラフト PR、レビュー → 指摘事項、ゲート付きマージ、ガード付き0
tokens, session推定、較正、オーバーヘッドの測定、価格。セッションごとの使用量と節約量、MEASURED / ESTIMATE0(測定では1ターン消費します)
snapgen, oversightフィンガープリント付きテーブル。巨大なファイル、肥大化、重複、雰囲気コーディングのマークと、それぞれが示すガイドライン0
pinpoint1つの問題 → 位置を特定し、引用を添え、予算を設定した1つのブリーフ。gaps は、未解決の指摘事項、すべての監督測定、失敗した、または証拠のない宣言済み標準をすべて1つにまとめます。next はそのうち1つをセッションの ACTIVE ブリーフに設定します。これは PreToolUse ガードが参照する記録です。unproven が failed にまとめられることはありません。また、失敗した標準のスコープは、その標準に失敗した指摘事項のファイルであり、領域ではありません。ディレクトリを渡しても、位置を特定したことにはなりません0
arc宣言インデックスです。ガードはすべてのツール呼び出しで、「この名前は宣言されているか、どこにあるか」という1つの質問をします。これまでは、20,000行の Markdown を行ごとに正規表現でスキャンして回答していました。arc はこれらのテーブルを1つのバイナリファイルにコンパイルします。名前順と名前の逆順に並べた2つのソート済み ID 配列により、完全一致、前方一致、後方一致をそれぞれ1回の二分探索で行えます。92.4KBに2,322件の宣言を格納します。テーブルからは呼び出しごとに1.80ms、インデックスからはコールド時に0.14ms、ウォーム時に0.073msです0
finishアクティブなブリーフと検出されたゲートから導出され、作業前に作成して作業後に実行する受け入れ記録です。CHECK: 行はシェルコードなので、status と lint は実行せず、境界を越える動詞は approve だけです。コマンド、期待値、解決済みの作業ディレクトリ、シェル、タイムアウト、継承された PATH を固定し、どれかが変わると再確認を求めます。lint は作成時に失敗し得ないオラクルを検出します。reverify は、戻ってきた作業の実行可能なゲートを再実行します0
latheこのワークスペースで2回を超えて手作業で行われたことを、スクリプト、スニペット、ボイラープレート、補完として出力します。すでにディスク上にある成果物を対象とした4つの件数ベースのモデルです。セッションで実行された動詞とコマンドの連続した閉区間、エキスパートのロジスティック結果モデル、ジャニターの減衰する記憶、コンパイル済みインデックス上のプレフィックスエントロピーです。各行に根拠を示し、1回の発生だけから提案することはありません0
env完全な .bundlebox に含まれるものと、この環境に含まれているかどうかを示します。各行は、セッションがなければツリーを検索して導出する成果物であり、各行はコストを消費できない動詞によって生成されるため、行が欠けている場合は誰かがターンを費やすことになります。bb env up --apply はブートストラップギアを実行します0
genesisドキュメントやプロンプトを、世界モデル、シード済みコーパス、それを満たすブリーフに変換します。カバレッジは集合の差分です0
cookbook, simulate実行中のシステムを対象に、カーネルで実行されるペルソナの1週間。同じリクエストを同時実行数を増やしながら、基準値相対の予算に照らして実行します0
mainboard, failsafe1つの台帳を6つの視点で表示し、どのパイプライン段階が機能していないかを示します。何が失敗しているか、その理由、そしてオペレーションを示します0
runbook宣言済みサービスとグループです。up はケージの合計が空きメモリを超えるセットを拒否し、--wait はサービスが応答した時点で戻ります。40,000行のログを20個のシグネチャにまとめ、このワークスペースが学習のためにすでに支払った失敗を名前付きで提示します0
recomこのオートメーションはすでに実行済みか、その結果はまだ正しいかを示します。記録では依拠する事実を宣言し、読み取るたびに再検証します。結果は fresh、変わったものを示す stale、または unknown です。bb recom gate <id> -- <cmd> はその判定を意思決定に直接つなぎ、答えがもはや成り立たない場合にのみ、コストのかかる処理を実行します0
dotty依存関係なしで Chrome DevTools Protocol を使い、画面に表示された内容を示します。人向けの PNG とセッション向けのアクセシビリティ概要、コマンド前後のフレーム、そして何も映っていないフレームに対する BLANK 判定です0
slopブリーフ、コミットメッセージ、PR 本文をレーンのコスト計上前に取り除くための文章ルールセットと、同じ15のルールをそれぞれのコストや代わりに書くべき内容とともに示す antislop スキルです0
sieve入力軸です。ツールの結果をウィンドウに入る前にスクラブ、重複排除、または省略するため、4,000行のログが後続のターンごとに再送されることはありません。Read/Edit/Write には一切触れず、エラー行は切り取りから除外し、削除した中間部分はディスクに保存するため、grep で復元できます。bb sieve replay は、何かを接続する前に、このワークスペース自身のトランスクリプトを使って測定します0
uptakeインストール済みでも使われているとは限りません。接続されたサーフェス(MCP ツール、bb 自体、pinpoint、リファレンステーブル)のうち、セッションが利用したものと、それぞれが役立つ場面を照らし合わせ、利用されなかったケースとセッションが代わりに行ったことをすべて示します。システムプロンプトに含まれるサーフェスは、0% ではなく「観測不可」として報告されます0
framesファクトリー独自のデータを対象とするデータフレームで、評価結果は人が検討できる JSON ファイルとして出力されます0
auditor作業前に宣言する基準(スコープ、標準、ガバナンス、保証)を、ツリー独自のシグナルから導出します。その後、gate が作業後に確認し、unproven が合格扱いになることはありません。領域ごとの日付付きレビューは指摘事項として取り込まれ、逸脱がないか確認されます0
monitor, console5時間のブロック、消費率、すべての支出の前に置かれるガード。ワークスペース用の読み取り専用ページです0
pipeline, buckmaster, bridge, scriptsゲートとフィンガープリント付きスキップを備えたギア。エピソード、シグナル、ルール、モデル、メモリ、結果。エージェントへの唯一のパック済み入口。タグ付きスクリプト0(bridge は --run --spend でコストを消費します)
snapgen skeleton, blast, callersファイル内の宣言を本体なしで表示します(このツリーでは読む量を13分の1に削減)。インポートエッジを通じて diff が到達する範囲と、その読み取りコスト。あるシンボルをインポートするものと、単に名前を記載しているものを分けて報告します0
bench swebench公開されている SWE-bench Verified インスタンスで同じ2つのアームを比較します。パック済みウィンドウにメンテナー自身のパッチが触れたファイルが含まれているか、そしてそのコストを示します。特定とコンテキストを評価し、解決率は評価しません0
wire, mcp, hookエージェントにインストールします。MCP 経由で提供します。フックハンドラーです0
init, doctor, selftest, update, kernel, cronセットアップ。このマシンで実行できるもの。サイレント失敗のチェック。アップデーター。カーネル。無人ワーカー0

予算モデル

projected = overhead + brief + payload × churn + reserve

オーバーヘッドは推定ではなく、プローブで測定します。ペイロードは、ファイルではなく特定された範囲と、シンボル名が指定された場合に加える拡張分です。誰もが忘れがちな項目が変更量で、その値は約2.4です。予約分は単位の種類ごとに設定します。判定結果は FITS、TIGHT、SPLIT、HEAVY のいずれかで、分割する場合はディレクトリの局所性を保ちます。これらの項目には、測定された順に5つの調整手段があります。簡潔なフラグスタック、ファイルではなく範囲を指定すること、一度だけ伝えること、キャッシュが安定するプレフィックス、そして任意で、ワイヤー上のローカル圧縮プロキシです。これは独立した行に報告されます。EXPLANATION.md をご覧ください。

測定値と推定値

すべてのレポートには2種類の数値が記載されますが、決して合算しません。使用量とキャッシュによる節約量はトランスクリプトから測定し、自動化による節約量は範囲として出力される推定値です。価格が設定されていないモデルは、コストなしでトークン数を報告します。調査できなかった動詞の値は「不明」とします。合格判定のない単位は、合格ではなく unproven とします。

3つ目の数値もあり、こちらは両方の条件で測定します。bb bench は同じタスクを2回実行します。1回はファクトリーを介し、もう1回は介さずに実行して、その差を報告します。

bb bench init                 # a suite from the open findings that name a file
bb bench run                  # both arms, per task, with the losses printed
bb bench show --json

BARE はタスクに関連する語句でツリーを grep し、検索結果を読み、上位ファイルそれぞれで最初にヒットした箇所の周辺範囲を開きます。これは、何もインストールされていない環境でセッションが行う操作です。PACKED は、同じタスクに対する1つの bb pinpoint プロンプトです。どちらの条件も、ディスク上のテキストを同じ推定器で数えるため、モデルは呼び出さず、同じツリーで再実行しても同じ数値が返ります。PACKED のほうが BARE よりコストがかかるタスクも、表から除外せず記載します。

すべての bb pinpoint ブリーフにはもう1つセクションがあります。まず読む価値があるのは、このブリーフでは判断できないことです。検出されたゲートがない、シンボルテーブルに一致する項目がない、範囲を特定できない、ファイルに証拠がない、収めるためにスコープを切り詰める必要があった——こうした内容は推測で埋めず、それぞれ理由とともに明記し、2つのブリーフを比較できるようスコアを付けます。質問には1ターンかかります。誤った前提は、それを見つけるレビューの手間を招きます。

コンソール

bb console は、127.0.0.1:7788 でワークスペース用の読み取り専用ページを1つ提供します。また、bb console build は状態を埋め込んだ同じページを単一ファイルとして書き出します。バインド先はループバックで、書き込み用ルートはなく、モデルを呼び出す処理もありません。

ポーリングではなく、プッシュ方式です。ストアはファイルで構成されているため、変更があればファイルシステムが検知できます。/api/stream は変更を監視し、開いているタブの数にかかわらず変更ごとに状態を1回再計算して送信します。10秒タイマーは、どちらの方向にも問題がありました。実行が完了しても9秒間表示されず、アイドル状態のワークスペースでは、タブを開くたびに毎分6回もすべてが再計算されていました。ヘッダーには接続の状態(live、polling、reconnecting、static)が常に表示されます。サーバーとの接続が切れたことを伝えられないダッシュボードは、明らかにオフラインだと分かるものより厄介です。古い数値でも、数値としては表示され続けるからです。

ルート回答する内容
GET /ページ:ファクトリーが節約した内容、期間、パイプライン、すべてのセッション
GET /health{ok, service, version} — ストアを読み取らずに応答する唯一のルート
GET /api/stateページに表示されるすべての内容を JSON で返します
GET /api/bench直近の bb bench 実行結果:タスクごとの bare、packed、saved
GET /api/streamサーバー送信イベント:ストアの変更時にプッシュされる状態

アーキテクチャ

bin/bb.js            the entrypoint
src/                 Node, ESM, zero dependencies — every verb, the adapters, the store, the console
skills/              the skills bb wire installs: bb-finish, antislop
kernel/              Rust — bbk: walk, fingerprint, estimate, dupes, symbols, anchor, gate, worktree,
                     and the scenario runner, the load simulator and the health probe
arc/                 Rust — the declaration index compiler. src/arc/read.js is the in-process reader,
                     which is where the speed-up lands; the binary is the reference implementation
expert/              Python (stdlib) — rule engine, triage, confidence, signals, rules, graph, model, memory,
                     the world derivation, coverage planning, scenario selection and board verdicts
.bundlebox/          per-repo: config.json, cookbook/ (corpora), genesis/ (world models),
                     var/ (store, boards, simulations, calibration), out/ (tables, briefs, packs, the page)

カーネルは、ワーカーごとに1つの接続と共有ペーサーを使い、スレッド上でコーパスを実行します。実際のリミッターに合わせてペーシングすると2分かかる130ステップのコーパスも、ローカルミラーでは1秒未満で完了します。カーネルが話すのは http のみです。TLSは、依存関係なしに構築しなければならないためです。ベースが https の場合、カーネルがない場合、またはコーパスがカーネルで文書化されたサブセット外のパターンを使う場合は、JavaScriptエンジンが実行されます。ボードには、どのエンジンが実行されたか、その理由が表示されます。test/scenario.test.js は、両者が同一の回答を返すことを固定します。

3つのランタイムが一致することは、テストで確認しています。test/kernel.test.js と test/expert.test.js は、カーネルとエキスパートシステムがJSの回答と一致することを固定します。1つのランタイムにしかない機能は、実装も1つにします。2つにある機能は、同等性を保ちます。

設定

.bundlebox/config.json の1ファイルに、変更したキーだけを記述します。各デフォルト値とその理由は src/core/config.js にあります。計測値は .bundlebox/var/calibration.json に保存され、読み込み時のマージによって書き込まれます。

{
  "lanes": { "agent": "claude", "max_parallel": 4, "model": "sonnet", "daily_budget_usd": 20 },
  "budget": { "max_tokens": 160000, "churn_factor": 2.4, "anchor_widen": 0.45 },
  "kernel": { "gates": { ".": { "quick": "npm test", "full": "npm run lint && npm test" } } },
  "detectors": { "promote_at": "medium" }
}

ドキュメント

リリース

main のタグ vX.Y.Z によって、5つのターゲット向けにカーネルをビルドし、来歴情報を付けてnpmに公開し、バイナリと変更履歴を含むGitHubリリースを作成します。 bb update は1日に1回までレジストリを確認します。bb update --apply はインストールを実行します。

ライセンス

MIT。src/finish/vendor/ は Leonxlnx/unlazy 2.1.0(MIT、コミット 1667149)からベンダー提供されたもので、名前を変更した以外は手を加えていません。 src/finish/vendor/PROVENANCE.md に、すべての名前変更と、それ以外を変更していない理由を記録しています。bundleboxは、1つのワークスペースに接続された標準ライブラリのみを使うPython製ファクトリーとして始まりました。このパッケージは、その移植可能なコアを再構築し、修正したものです。オプションのワイヤー統合はプロセス境界を越えてheadroomと通信し、これをインポートすることはありません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。