[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FZBZWTWAV2WDBHGXTS3MJ5":3,"skill-same:01M6FZBZWTWAV2WDBHGXTS3MJ5":80},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M6FZBZWTWAV2WDBHGXTS3MJ5","tools-ui",null,"Tool lifecycle UI components for React\u002FNext.js from ui.inference.sh.\nDisplay tool calls: pending, progress, approval required, results.\nCapabilities: tool status, progress indicators, approval flows, results display.\nUse for: showing agent tool calls, human-in-the-loop approvals, tool output.\nTriggers: tool ui, tool calls, tool status, tool approval, tool results,\nagent tools, mcp tools ui, function calling ui, tool lifecycle, tool pending","kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fokaris\u002Ftools-ui\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"tools ui","ui","Tools","tool","calls","flows","output","ui components","triggers","calling","use","function calling","MCP","loop","human-in-the-loop","Next.js","lifecycle","capabilities","react","components","2026-11-10 10:12:30",false,"---\nname: tools-ui\ndescription: |\n  Tool lifecycle UI components for React\u002FNext.js from ui.inference.sh.\n  Display tool calls: pending, progress, approval required, results.\n  Capabilities: tool status, progress indicators, approval flows, results display.\n  Use for: showing agent tool calls, human-in-the-loop approvals, tool output.\n  Triggers: tool ui, tool calls, tool status, tool approval, tool results,\n  agent tools, mcp tools ui, function calling ui, tool lifecycle, tool pending\n---\n\n# Tool UI Components\n\nTool lifecycle components from [ui.inference.sh](https:\u002F\u002Fui.inference.sh).\n\n## Quick Start\n\n```bash\nnpx shadcn@latest add https:\u002F\u002Fui.inference.sh\u002Fr\u002Ftools.json\n```\n\n## Tool States\n\n| State | Description |\n|-------|-------------|\n| `pending` | Tool call requested, waiting to execute |\n| `running` | Tool is currently executing |\n| `approval` | Requires human approval before execution |\n| `success` | Tool completed successfully |\n| `error` | Tool execution failed |\n\n## Components\n\n### Tool Call Display\n\n```tsx\nimport { ToolCall } from \"@\u002Fregistry\u002Fblocks\u002Ftools\u002Ftool-call\"\n\n\u003CToolCall\n  name=\"search_web\"\n  args={{ query: \"latest AI news\" }}\n  status=\"running\"\n\u002F>\n```\n\n### Tool Result\n\n```tsx\nimport { ToolResult } from \"@\u002Fregistry\u002Fblocks\u002Ftools\u002Ftool-result\"\n\n\u003CToolResult\n  name=\"search_web\"\n  result={{ results: [...] }}\n  status=\"success\"\n\u002F>\n```\n\n### Tool Approval\n\n```tsx\nimport { ToolApproval } from \"@\u002Fregistry\u002Fblocks\u002Ftools\u002Ftool-approval\"\n\n\u003CToolApproval\n  name=\"send_email\"\n  args={{ to: \"user@example.com\", subject: \"Hello\" }}\n  onApprove={() => executeTool()}\n  onDeny={() => cancelTool()}\n\u002F>\n```\n\n## Full Example\n\n```tsx\nimport { ToolCall, ToolResult, ToolApproval } from \"@\u002Fregistry\u002Fblocks\u002Ftools\"\n\nfunction ToolDisplay({ tool }) {\n  if (tool.status === 'approval') {\n    return (\n      \u003CToolApproval\n        name={tool.name}\n        args={tool.args}\n        onApprove={tool.approve}\n        onDeny={tool.deny}\n      \u002F>\n    )\n  }\n\n  if (tool.result) {\n    return (\n      \u003CToolResult\n        name={tool.name}\n        result={tool.result}\n        status={tool.status}\n      \u002F>\n    )\n  }\n\n  return (\n    \u003CToolCall\n      name={tool.name}\n      args={tool.args}\n      status={tool.status}\n    \u002F>\n  )\n}\n```\n\n## Styling Tool Cards\n\n```tsx\n\u003CToolCall\n  name=\"read_file\"\n  args={{ path: \"\u002Fsrc\u002Findex.ts\" }}\n  status=\"running\"\n  className=\"border-blue-500\"\n\u002F>\n```\n\n## Tool Icons\n\nTools automatically get icons based on their name:\n\n| Pattern | Icon |\n|---------|------|\n| `search*`, `find*` | Search |\n| `read*`, `get*` | File |\n| `write*`, `create*` | Pencil |\n| `delete*`, `remove*` | Trash |\n| `send*`, `email*` | Mail |\n| Default | Wrench |\n\n## With Agent Component\n\nThe Agent component handles tool lifecycle automatically:\n\n```tsx\nimport { Agent } from \"@\u002Fregistry\u002Fblocks\u002Fagent\u002Fagent\"\n\n\u003CAgent\n  proxyUrl=\"\u002Fapi\u002Finference\u002Fproxy\"\n  config={{\n    core_app: { ref: 'openrouter\u002Fclaude-sonnet-45@0fkg6xwb' },\n    tools: [\n      {\n        name: 'search_web',\n        description: 'Search the web',\n        parameters: { query: { type: 'string' } },\n        requiresApproval: true, \u002F\u002F Enable approval flow\n      },\n    ],\n  }}\n\u002F>\n```\n\n## Related Skills\n\n```bash\n# Full agent component (recommended)\nnpx skills add inference-sh\u002Fagent-skills@agent-ui\n\n# Chat UI blocks\nnpx skills add inference-sh\u002Fagent-skills@chat-ui\n\n# Widgets for tool results\nnpx skills add inference-sh\u002Fagent-skills@widgets-ui\n```\n\n## Documentation\n\n- [Adding Tools to Agents](https:\u002F\u002Finference.sh\u002Fdocs\u002Fagents\u002Fadding-tools) - Equip agents with tools\n- [Human-in-the-Loop](https:\u002F\u002Finference.sh\u002Fdocs\u002Fruntime\u002Fhuman-in-the-loop) - Approval flows\n- [Tool Approval Gates](https:\u002F\u002Finference.sh\u002Fblog\u002Ftools\u002Fapproval-gates) - Implementing approvals\n\nComponent docs: [ui.inference.sh\u002Fblocks\u002Ftools](https:\u002F\u002Fui.inference.sh\u002Fblocks\u002Ftools)\n","# Tool UI Components\n\nTool lifecycle components from [ui.inference.sh](https:\u002F\u002Fui.inference.sh).\n\n## Quick Start\n\n```bash\nnpx shadcn@latest add https:\u002F\u002Fui.inference.sh\u002Fr\u002Ftools.json\n```\n\n## Tool States\n\n| State | Description |\n|-------|-------------|\n| `pending` | Tool call requested, waiting to execute |\n| `running` | Tool is currently executing |\n| `approval` | Requires human approval before execution |\n| `success` | Tool completed successfully |\n| `error` | Tool execution failed |\n\n## Components\n\n### Tool Call Display\n\n```tsx\nimport { ToolCall } from \"@\u002Fregistry\u002Fblocks\u002Ftools\u002Ftool-call\"\n\n\u003CToolCall\n  name=\"search_web\"\n  args={{ query: \"latest AI news\" }}\n  status=\"running\"\n\u002F>\n```\n\n### Tool Result\n\n```tsx\nimport { ToolResult } from \"@\u002Fregistry\u002Fblocks\u002Ftools\u002Ftool-result\"\n\n\u003CToolResult\n  name=\"search_web\"\n  result={{ results: [...] }}\n  status=\"success\"\n\u002F>\n```\n\n### Tool Approval\n\n```tsx\nimport { ToolApproval } from \"@\u002Fregistry\u002Fblocks\u002Ftools\u002Ftool-approval\"\n\n\u003CToolApproval\n  name=\"send_email\"\n  args={{ to: \"user@example.com\", subject: \"Hello\" }}\n  onApprove={() => executeTool()}\n  onDeny={() => cancelTool()}\n\u002F>\n```\n\n## Full Example\n\n```tsx\nimport { ToolCall, ToolResult, ToolApproval } from \"@\u002Fregistry\u002Fblocks\u002Ftools\"\n\nfunction ToolDisplay({ tool }) {\n  if (tool.status === 'approval') {\n    return (\n      \u003CToolApproval\n        name={tool.name}\n        args={tool.args}\n        onApprove={tool.approve}\n        onDeny={tool.deny}\n      \u002F>\n    )\n  }\n\n  if (tool.result) {\n    return (\n      \u003CToolResult\n        name={tool.name}\n        result={tool.result}\n        status={tool.status}\n      \u002F>\n    )\n  }\n\n  return (\n    \u003CToolCall\n      name={tool.name}\n      args={tool.args}\n      status={tool.status}\n    \u002F>\n  )\n}\n```\n\n## Styling Tool Cards\n\n```tsx\n\u003CToolCall\n  name=\"read_file\"\n  args={{ path: \"\u002Fsrc\u002Findex.ts\" }}\n  status=\"running\"\n  className=\"border-blue-500\"\n\u002F>\n```\n\n## Tool Icons\n\nTools automatically get icons based on their name:\n\n| Pattern | Icon |\n|---------|------|\n| `search*`, `find*` | Search |\n| `read*`, `get*` | File |\n| `write*`, `create*` | Pencil |\n| `delete*`, `remove*` | Trash |\n| `send*`, `email*` | Mail |\n| Default | Wrench |\n\n## With Agent Component\n\nThe Agent component handles tool lifecycle automatically:\n\n```tsx\nimport { Agent } from \"@\u002Fregistry\u002Fblocks\u002Fagent\u002Fagent\"\n\n\u003CAgent\n  proxyUrl=\"\u002Fapi\u002Finference\u002Fproxy\"\n  config={{\n    core_app: { ref: 'openrouter\u002Fclaude-sonnet-45@0fkg6xwb' },\n    tools: [\n      {\n        name: 'search_web',\n        description: 'Search the web',\n        parameters: { query: { type: 'string' } },\n        requiresApproval: true, \u002F\u002F Enable approval flow\n      },\n    ],\n  }}\n\u002F>\n```\n\n## Related Skills\n\n```bash\n# Full agent component (recommended)\nnpx skills add inference-sh\u002Fagent-skills@agent-ui\n\n# Chat UI blocks\nnpx skills add inference-sh\u002Fagent-skills@chat-ui\n\n# Widgets for tool results\nnpx skills add inference-sh\u002Fagent-skills@widgets-ui\n```\n\n## Documentation\n\n- [Adding Tools to Agents](https:\u002F\u002Finference.sh\u002Fdocs\u002Fagents\u002Fadding-tools) - Equip agents with tools\n- [Human-in-the-Loop](https:\u002F\u002Finference.sh\u002Fdocs\u002Fruntime\u002Fhuman-in-the-loop) - Approval flows\n- [Tool Approval Gates](https:\u002F\u002Finference.sh\u002Fblog\u002Ftools\u002Fapproval-gates) - Implementing approvals\n\nComponent docs: [ui.inference.sh\u002Fblocks\u002Ftools](https:\u002F\u002Fui.inference.sh\u002Fblocks\u002Ftools)\n",{"name":5,"description":7},"main","e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Fokaris\u002Ftools-ui",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add kbarbel640-del\u002Fskills --skill tools-ui",{"tool":66,"command":67},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill tools-ui",{"tool":69,"command":70},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill tools-ui","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fokaris\u002Ftools-ui\u002FSKILL.md",true,[74],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"_meta.json","REFERENCE","参考文档",268,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fokaris\u002Ftools-ui\u002F_meta.json",[81,109,133,154,160,180],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":90,"publishedAt":48},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[87],{"categoryNo":88,"categoryName":89,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000036","内容创作者",[91,92,93,94,95,96,97,98,99,100,101,31,102,103,104,105,106,107,108],"crowd prompting","prompting","api","with","tokens","domain","world","prompts","operations","instructions","text","system","improve","productivity","marketplace","https","content","ai agents",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":116,"publishedAt":48},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[115],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[117,93,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,98,38],"dilemm ai","arena","analyze","browser","openclaw agent","create","automation","browser automation","bot","openclaw","design","strategy","headless","compete","submit","matchmaking",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":142,"publishedAt":48},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[139],{"categoryNo":140,"categoryName":141,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究",[143,144,145,146,147,148,149,94,150,131,38,151,93,152,153],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","comments","fetch","read","http","via",{"skillNo":155,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":159,"publishedAt":48},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[158],{"categoryNo":140,"categoryName":141,"taxonomyType":20,"taxonomyTypeDesc":21},[146,145,144,143,153,148,149,94,147,131,38,150,151,93,152],{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":166,"publishedAt":48},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[167,168,169,170,171,172,173,174,175,176,177,178,179],"git","summary","git summary","commits","repository","win32","status","linux","contributors","true","quick","get","branches",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":190,"publishedAt":48},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[186,187],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":188,"categoryName":189,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000037","律师与法务",[191,192,193,194,94,195,196,53,197,151,198,199,200,201,202,106,203,204,205],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance","github"]