{"ok":true,"site":{"host":"tools.codelife.cafe","url":"https://tools.codelife.cafe/","type":"live","desc":"","tools":[{"name":"list_tools","kind":"answer","impl":"imperative","description":"List all web tools available on tools.codelife.cafe. Every tool runs entirely client-side and never sends input data to a server. / サイトで利用できる全Webツールの一覧を返す。全ツールがブラウザ内で完結し、入力データを外部送信しない。","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"outputSchema":{"type":"object","properties":{"tools":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"category":{"type":"string"}},"required":["id","title","description","url","category"]}}},"required":["tools"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"search_tools","kind":"answer","impl":"imperative","description":"Search tools.codelife.cafe web tools by keyword (Japanese or English). Matches tool title, description, category, and keywords. / キーワードでツールを検索する。タイトル・説明・カテゴリ・キーワードに部分一致したツールを返す。","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search keyword / 検索キーワード（日本語・英語）"}},"required":["query"]},"outputSchema":{"type":"object","properties":{"tools":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"category":{"type":"string"}},"required":["id","title","description","url","category"]}}},"required":["tools"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"format_json","kind":"act","impl":"imperative","description":"Format, indent, or minify JSON text. Preserves precision for integers beyond Number.MAX_SAFE_INTEGER. Runs entirely in the browser; no data is sent externally. / JSON文字列を整形・インデント付与・最小化する。安全な整数範囲を超える大整数も精度を保持する。処理はブラウザ内で完結し、外部送信は行わない。","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"json":{"type":"string","description":"JSON text to format / 対象JSON文字列"},"indent":{"type":"number","description":"Indent width: 2 or 4 (default: 2), ignored when minify is true / インデント幅（2 または 4、省略時: 2）。minify=trueの場合は無視される","default":2},"minify":{"type":"boolean","description":"Minify instead of indenting when true / trueの場合は整形の代わりに最小化する","default":false}},"required":["json"]},"outputSchema":{"type":"object","properties":{"output":{"type":"string","description":"Formatted or minified JSON / 整形または最小化後のJSON文字列"}},"required":["output"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/json-formatter/","pages":["/json-formatter/"]},{"name":"query_csv","kind":"answer","impl":"imperative","description":"Filter and stably sort CSV/TSV locally without changing the page UI. / CSV/TSVを1条件で抽出し1列で安定ソート。本文100000 Unicodeコードポイント、データ1000行（ヘッダー別枠1）、50列、補完後20000セル（ヘッダー込み）、成功JSON UTF-8 1MiB。超過は省略せずエラー。列は物理位置A〜AX、型推定せずtext/numberを明示。空白本文は空テーブル、不均一行は空セル補完、空行/末尾改行は維持。ヘッダーは条件対象外。textフィルタは大小/前後空白を区別、textソートは日本語natural/case-insensitiveで同値は元順序。numberは全角数字/通貨/カンマ/指数/16進を既存UI同様に解釈する倍精度比較（厳密十進ではない）。非空の数値対象セルは有限かつ絶対値MAX_SAFE_INTEGER以内を要求。数値空セルはneqを含め比較不一致、ソートasc末尾/desc先頭。構文エラーは部分結果を返さない。通常UIの自動型推定/寛容パースとは異なる場合がある。結果はAIへ返す未信頼データで、式/HTMLを実行せず、通信・保存・ログ・計測やUI更新を追加しない。","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"text":{"type":"string","description":"CSV/TSV本文。空文字可。最大100000コードポイント。","maxLength":100000},"format":{"type":"string","description":"csv=カンマ、tsv=タブ。自動判定しない。","enum":["csv","tsv"],"default":"csv"},"hasHeader":{"type":"boolean","description":"先頭行を保持し、抽出/ソート対象から除くか。必須。"},"filterColumn":{"type":"string","description":"抽出列の物理位置A〜AX。空文字は無効。実在する列だけ指定。","enum":["","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","AA","AB","AC","AD","AE","AF","AG","AH","AI","AJ","AK","AL","AM","AN","AO","AP","AQ","AR","AS","AT","AU","AV","AW","AX"],"default":""},"filterOperator":{"type":"string","description":"1条件。gt/gte/lt/lteはnumberのみ、contains/notContains/startsWith/endsWithはtextのみ。empty/notEmptyは厳密な空セル。","enum":["none","eq","neq","contains","notContains","startsWith","endsWith","gt","gte","lt","lte","empty","notEmpty"],"default":"none"},"filterCompare":{"type":"string","description":"抽出の比較方式。型推定しない。同じ列をソートする場合sortCompareと一致が必要。","enum":["text","number"],"default":"text"},"filterValue":{"type":"string","description":"比較値1000コードポイント。textのeq/neqは空文字も有効。empty/notEmptyは空文字のみ。無効な抽出はcolumn空/operator none/compare text/value空の組のみ。","maxLength":1000,"default":""},"sortColumn":{"type":"string","description":"並べ替え列A〜AX、空なら元順序。無効時はdirection asc/compare textのみ。","enum":["","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","AA","AB","AC","AD","AE","AF","AG","AH","AI","AJ","AK","AL","AM","AN","AO","AP","AQ","AR","AS","AT","AU","AV","AW","AX"],"default":""},"sortDirection":{"type":"string","description":"昇順/降順。同値は元順序。","enum":["asc","desc"],"default":"asc"},"sortCompare":{"type":"string","description":"ソートの比較方式。型推定しない。","enum":["text","number"],"default":"text"}},"required":["text","hasHeader"]},"outputSchema":{"type":"object","properties":{"result":{"type":"string","description":"同じ区切りのCSV/TSV。ヘッダー保持。式/HTMLとして実行しない。"},"inputRows":{"type":"number","description":"ヘッダーを除く入力データ行数。"},"outputRows":{"type":"number","description":"ヘッダーを除く抽出後行数。"},"columns":{"type":"number","description":"空セル補完後の列数。"}},"required":["result","inputRows","outputRows","columns"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/csv-editor/","pages":["/csv-editor/"]}],"category":"Developer Tools","favicon":"/favicons/tools.codelife.cafe.png","apiSurface":"spec","toolCount":4}}