[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-frumu-ai-frumu-tandem-client-zh-CN":3,"guides-for-frumu-ai-frumu-tandem-client":232,"similar-k177fpj38ebtn9tkr8x4kx39xd864dvz":233},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":21,"identity":189,"isFallback":193,"parentExtension":194,"providers":195,"relations":200,"repo":202,"workflow":228},1777995614337.9856,"k177fpj38ebtn9tkr8x4kx39xd864dvz",[],{"reviewCount":8},0,{"description":10,"name":11,"sourceUrl":12,"tags":13},"TypeScript client for the Tandem autonomous agent engine HTTP + SSE API","Tandem TypeScript Client","https://github.com/frumu-ai/tandem/tree/HEAD/packages/tandem-client-ts",[14,15,16,17,18,19,20],"typescript","client","api","tandem","agent","sdk","node-js",{"_creationTime":22,"_id":23,"extensionId":5,"locale":24,"result":25,"trustSignals":173,"workflow":187},1777995897177.4375,"kn76wvhhebjt8xgavjyf91qh49864jj6","en",{"checks":26,"evaluatedAt":163,"extensionSummary":164,"promptVersionExtension":165,"promptVersionScoring":166,"rationale":167,"score":168,"summary":169,"tags":170,"targetMarket":171,"tier":172},[27,32,35,38,42,45,50,54,57,60,64,68,71,75,78,81,84,87,90,93,96,100,104,108,112,115,118,121,125,128,131,134,137,140,144,147,150,153,156,160],{"category":28,"check":29,"severity":30,"summary":31},"Practical Utility","Problem relevance","pass","The description clearly states the extension addresses a specific problem: providing a TypeScript client for the Tandem agent engine's API.",{"category":28,"check":33,"severity":30,"summary":34},"Unique selling proposition","The extension is a dedicated TypeScript client for the Tandem engine's API, offering a specific integration point beyond basic API interaction.",{"category":28,"check":36,"severity":30,"summary":37},"Production readiness","The extension appears production-ready, providing a complete client library with clear documentation and examples for interacting with the Tandem engine.",{"category":39,"check":40,"severity":30,"summary":41},"Scope","Single responsibility principle","The extension focuses solely on providing a TypeScript client for the Tandem engine's API, adhering to a single responsibility.",{"category":39,"check":43,"severity":30,"summary":44},"Description quality","The displayed description accurately and concisely reflects the extension's functionality as a TypeScript client for the Tandem agent engine's API.",{"category":46,"check":47,"severity":48,"summary":49},"Invocation","Scoped tools","not_applicable","This extension is a client library and does not expose specific tools in the traditional sense.",{"category":51,"check":52,"severity":30,"summary":53},"Documentation","Configuration & parameter reference","The README and source code provide clear documentation for client initialization and usage, including parameters like baseUrl and token.",{"category":39,"check":55,"severity":48,"summary":56},"Tool naming","As a client library, this extension does not have user-facing tools with specific names.",{"category":39,"check":58,"severity":30,"summary":59},"Minimal I/O surface","The client library's methods are well-defined with specific input and output types, ensuring a minimal I/O surface.",{"category":61,"check":62,"severity":30,"summary":63},"License","License usability","The extension is licensed under MIT, a permissive open-source license.",{"category":65,"check":66,"severity":30,"summary":67},"Maintenance","Commit recency","The last commit was 0 days ago, indicating active maintenance.",{"category":65,"check":69,"severity":30,"summary":70},"Dependency Management","The package.json lists only development dependencies (typescript, tsup, vitest), indicating no third-party runtime dependencies to manage.",{"category":72,"check":73,"severity":48,"summary":74},"Security","Secret Management","This client library does not handle secrets directly; it expects a token to be provided by the user.",{"category":72,"check":76,"severity":30,"summary":77},"Injection","The library interacts with a remote API, but the client itself does not load or execute external data as instructions.",{"category":72,"check":79,"severity":30,"summary":80},"Transitive Supply-Chain Grenades","The client library only bundles its own source code and does not fetch or execute external code at runtime.",{"category":72,"check":82,"severity":30,"summary":83},"Sandbox Isolation","As a client library, it operates within the Node.js environment and does not have filesystem access outside of its own operational scope.",{"category":72,"check":85,"severity":30,"summary":86},"Sandbox escape primitives","The library code does not contain any primitives that would allow it to escape the Node.js sandbox.",{"category":72,"check":88,"severity":30,"summary":89},"Data Exfiltration","The client library's sole purpose is to send requests to the Tandem engine API and return responses; it does not exfiltrate data.",{"category":72,"check":91,"severity":30,"summary":92},"Hidden Text Tricks","The bundled source code is clean and does not contain any hidden steering tricks or obfuscated content.",{"category":72,"check":94,"severity":30,"summary":95},"Opaque code execution","The code is standard TypeScript and does not involve obfuscation, base64 payloads, or runtime script fetching.",{"category":97,"check":98,"severity":30,"summary":99},"Portability","Structural Assumption","The library makes no assumptions about the user's project structure, only requiring Node.js 18+.",{"category":101,"check":102,"severity":30,"summary":103},"Trust","Issues Attention","57 issues opened, 828 closed in the last 90 days. Maintainers are actively managing issues, with a high closure rate.",{"category":105,"check":106,"severity":30,"summary":107},"Versioning","Release Management","The package.json declares version '0.5.4', indicating a meaningful versioning scheme.",{"category":109,"check":110,"severity":30,"summary":111},"Code Execution","Validation","The client uses Zod for schema validation, ensuring all input and output is properly constrained.",{"category":72,"check":113,"severity":30,"summary":114},"Unguarded Destructive Operations","This client library is purely for API interaction and does not perform destructive operations.",{"category":109,"check":116,"severity":30,"summary":117},"Error Handling","The client utilizes Zod for validation and throws `TandemValidationError` for API errors, providing structured feedback.",{"category":109,"check":119,"severity":48,"summary":120},"Logging","The client library does not perform destructive actions or outbound calls that would require local logging.",{"category":122,"check":123,"severity":48,"summary":124},"Compliance","GDPR","The client library itself does not handle personal data; it acts as a transport for requests to the Tandem engine.",{"category":122,"check":126,"severity":30,"summary":127},"Target market","The extension is a general-purpose TypeScript client and has no regional or jurisdictional limitations; targetMarket is 'global'.",{"category":97,"check":129,"severity":30,"summary":130},"Runtime stability","The library requires Node.js 18+ and uses standard Node.js APIs, ensuring good runtime stability.",{"category":46,"check":132,"severity":30,"summary":133},"Precise Purpose","The description clearly states it is a TypeScript client for the Tandem engine's HTTP + SSE API, with examples of its use.",{"category":46,"check":135,"severity":30,"summary":136},"Concise Frontmatter","The README frontmatter is concise, providing a clear summary and installation instructions.",{"category":51,"check":138,"severity":30,"summary":139},"Concise Body","The README body is well-structured and concise, with detailed API documentation provided in the source code and README.",{"category":141,"check":142,"severity":48,"summary":143},"Context","Progressive Disclosure","This is a client library, not a skill with complex procedures requiring progressive disclosure.",{"category":141,"check":145,"severity":48,"summary":146},"Forked exploration","This is a client library and does not involve exploration requiring a forked context.",{"category":28,"check":148,"severity":30,"summary":149},"Usage examples","The README provides comprehensive, ready-to-use TypeScript and Python examples demonstrating session creation, prompt execution, and event streaming.",{"category":28,"check":151,"severity":30,"summary":152},"Edge cases","The use of Zod for validation and clear error handling in the client library implicitly covers edge cases related to API interactions.",{"category":109,"check":154,"severity":48,"summary":155},"Tool Fallback","This is a client library and does not rely on external tools like an MCP server.",{"category":157,"check":158,"severity":30,"summary":159},"Safety","Halt on unexpected state","The library uses Zod validation and throws errors for unexpected states, halting abnormal execution paths.",{"category":97,"check":161,"severity":48,"summary":162},"Cross-skill coupling","This is a standalone client library and does not have dependencies on other skills.",1777995816997,"This library provides programmatic access to the Tandem engine's HTTP and SSE APIs, enabling developers to build custom integrations and automations. It supports session management, asynchronous runs, event streaming, and routine/automation control, with comprehensive examples provided for both TypeScript and Python.","2.0.0","3.4.0","The extension is a well-maintained, production-ready TypeScript client library with excellent documentation and usage examples. It adheres to best practices in validation, error handling, and security, making it a highly trustworthy tool. The only minor deductions are for 'not_applicable' checks that do not detract from its core quality.",98,"A high-quality TypeScript client library for interacting with the Tandem autonomous agent engine API.",[14,15,16,17,18,19,20],"global","verified",{"codeQuality":174,"collectedAt":175,"documentation":176,"maintenance":178,"popularity":182,"security":183,"testCoverage":186},{},1777995799765,{"descriptionLength":177,"readmeSize":8},71,{"closedIssues90d":179,"openIssues90d":180,"pushedAt":181},828,57,1777993909000,{"smitheryUniqueUsers":8,"smitheryUseCount":8},{"hasNpmPackage":184,"license":185,"smitheryVerified":184},false,"MIT",{"hasCi":184,"hasTests":184},{"updatedAt":188},1777995897177,{"githubOwner":190,"githubRepo":17,"locale":24,"slug":191,"type":192},"frumu-ai","frumu-tandem-client","skill",true,null,{"extract":196,"llm":198,"smithery":199},{"commitSha":197,"license":185},"25c8ae7c2f8b20d576a2b8d44946ac2e0ff9408d",{"promptVersionExtension":165,"promptVersionScoring":166,"score":168,"targetMarket":171,"tier":172},{"qualityScore":8,"totalActivations":8,"uniqueUsers":8,"useCount":8,"verified":184},{"repoId":201},"kd72pd305er4m7vecv9p6mnd4s865kea",{"_creationTime":203,"_id":201,"identity":204,"providers":206,"workflow":225},1777995551258.0457,{"githubOwner":190,"githubRepo":17,"sourceUrl":205},"https://github.com/frumu-ai/tandem",{"discover":207,"github":210},{"sources":208},[209],"mcp-registry",{"closedIssues90d":179,"forks":211,"homepage":212,"license":185,"openIssues90d":180,"pushedAt":181,"readmeSize":213,"stars":214,"topics":215},13,"https://tandem.ac/",20181,96,[216,217,218,219,220,221,222,223,224],"anthropic","human-in-the-loop","local-first","ollama","openai","openrouter","help-wanted","governed-execution","agentic-workflow",{"discoverAt":226,"extractAt":227,"githubAt":227,"updatedAt":227},1777995551258,1777995647021,{"anyEnrichmentAt":229,"extractAt":230,"githubAt":231,"llmAt":188,"smitheryAt":229,"updatedAt":188},1777995723550,1777995614338,1777995614791,[],[234,263,291,319,345,371],{"_creationTime":235,"_id":236,"community":237,"display":238,"identity":249,"providers":252,"relations":257,"workflow":259},1778053689272.9238,"k17a5hw81fhwybk1wxavs6mvjs8676ca",{"reviewCount":8},{"description":239,"installMethods":240,"name":241,"sourceUrl":242,"tags":243},"Set up a new Prisma Postgres database and connect it to a local project using the Management API. Use when asked to \"set up a database\", \"create a Prisma Postgres project\", \"get a connection string\", \"connect my app to Prisma Postgres\", or \"provision a database\".",{},"Prisma Postgres Setup","https://github.com/prisma/skills/tree/HEAD/prisma-postgres-setup",[244,245,246,247,248,16,14,20],"prisma","postgres","database","setup","connection",{"githubOwner":244,"githubRepo":250,"locale":24,"slug":251,"type":192},"skills","prisma-postgres-setup",{"extract":253,"llm":255},{"commitSha":254,"license":185},"741a74fdafc1bf61fa208c2f73878be688cba263",{"promptVersionExtension":165,"promptVersionScoring":166,"score":256,"targetMarket":171,"tier":172},99,{"repoId":258},"kd76h7swxyhk8405svecsqq7gh864y5s",{"anyEnrichmentAt":260,"extractAt":261,"githubAt":260,"llmAt":262,"updatedAt":262},1778053689723,1778053689272,1778053716548,{"_creationTime":264,"_id":265,"community":266,"display":267,"identity":278,"providers":281,"relations":285,"workflow":287},1778054711476.0596,"k17ed9jy1nygmcqva51bkzyyyd866r6h",{"reviewCount":8},{"description":268,"installMethods":269,"name":270,"sourceUrl":271,"tags":272},"Guides development of Fastify Node.js backend servers and REST APIs using TypeScript or JavaScript. Use when building, configuring, or debugging a Fastify application — including defining routes, implementing plugins, setting up JSON Schema validation, handling errors, optimising performance, managing authentication, configuring CORS and security headers, integrating databases, working with WebSockets, and deploying to production. Covers the full Fastify request lifecycle (hooks, serialization, logging with Pino) and TypeScript integration via strip types. Trigger terms: Fastify, Node.js server, REST API, API routes, backend framework, fastify.config, server.ts, app.ts.",{},"Fastify Best Practices","https://github.com/mcollina/skills/tree/HEAD/skills/fastify",[273,274,14,275,16,276,277],"fastify","nodejs","backend","server","http",{"githubOwner":279,"githubRepo":250,"locale":24,"slug":280,"type":192},"mcollina","fastify-best-practices",{"extract":282,"llm":284},{"commitSha":283,"license":185},"5b2a81354b6d10325da0db9decc9ce5ecc714138",{"promptVersionExtension":165,"promptVersionScoring":166,"score":168,"targetMarket":171,"tier":172},{"repoId":286},"kd7a9jywzfe3c5g5r1a62htmrn865rt1",{"anyEnrichmentAt":288,"extractAt":289,"githubAt":288,"llmAt":290,"updatedAt":290},1778054711844,1778054711476,1778054745098,{"_creationTime":292,"_id":293,"community":294,"display":295,"identity":305,"providers":309,"relations":313,"workflow":315},1778054432207.5422,"k178t7t7ek2kr53kqyz2tn8m4x867gmh",{"reviewCount":8},{"description":296,"installMethods":297,"name":298,"sourceUrl":299,"tags":300},"Manage OpenClaw bot configuration - channels, agents, security, and autopilot settings",{},"OpenClaw Config","https://github.com/adisinghstudent/easyclaw/tree/HEAD/skills/openclaw-config",[301,18,302,303,14,304],"openclaw","configuration","troubleshooting","devops",{"githubOwner":306,"githubRepo":307,"locale":24,"slug":308,"type":192},"adisinghstudent","easyclaw","openclaw-config",{"extract":310,"llm":312},{"commitSha":311,"license":185},"2a938af22323bcc822625828f6303cb75690e7c7",{"promptVersionExtension":165,"promptVersionScoring":166,"score":168,"targetMarket":171,"tier":172},{"repoId":314},"kd7fy171w716bjdays4yawdj91865292",{"anyEnrichmentAt":316,"extractAt":317,"githubAt":316,"llmAt":318,"updatedAt":318},1778054432549,1778054432207,1778054457102,{"_creationTime":320,"_id":321,"community":322,"display":323,"identity":332,"providers":335,"relations":339,"workflow":341},1778054052548.222,"k17fard3a1kf7n7ybxjexq5k2h866rf5",{"reviewCount":8},{"description":324,"installMethods":325,"name":326,"sourceUrl":327,"tags":328},"Discord adapter for chat",{},"Discord Adapter","https://github.com/vercel/chat/tree/HEAD/packages/adapter-discord",[329,330,331,19,14,274],"discord","adapter","chat",{"githubOwner":333,"githubRepo":331,"locale":24,"slug":334,"type":192},"vercel","chat-adapter-discord",{"extract":336,"llm":338},{"commitSha":337,"license":185},"3e4764db4d5c826cd0938cdcd0130d14eb8ed992",{"promptVersionExtension":165,"promptVersionScoring":166,"score":168,"targetMarket":171,"tier":172},{"repoId":340},"kd7ds766kaxjjf3s3hr8y7z2t9865yn3",{"anyEnrichmentAt":342,"extractAt":343,"githubAt":342,"llmAt":344,"updatedAt":344},1778054054404,1778054052548,1778054107364,{"_creationTime":346,"_id":347,"community":348,"display":349,"identity":358,"providers":361,"relations":365,"workflow":367},1778053871632.601,"k17f3masm4h6yh4ncxnmjt5a6s8668na",{"reviewCount":8},{"description":350,"installMethods":351,"name":352,"sourceUrl":353,"tags":354},"RivetKit Swift client guidance. Use for Swift clients that connect to Rivet Actors with RivetKitClient, create actor handles, call actions, or manage connections.",{},"RivetKit Swift Client","https://github.com/rivet-dev/skills/tree/HEAD/rivetkit-client-swift",[355,15,356,19,16,357],"swift","rivet","guidance",{"githubOwner":359,"githubRepo":250,"locale":24,"slug":360,"type":192},"rivet-dev","rivetkit-client-swift",{"extract":362,"llm":364},{"commitSha":363,"license":48},"c626b57a1c4d4e6aeaf5a847eacc7f7c935f7400",{"promptVersionExtension":165,"promptVersionScoring":166,"score":214,"targetMarket":171,"tier":172},{"repoId":366},"kd7ep76bhx2vtmzfmawky8y1qn864yta",{"anyEnrichmentAt":368,"extractAt":369,"githubAt":368,"llmAt":370,"updatedAt":370},1778053874346,1778053871632,1778053906431,{"_creationTime":372,"_id":373,"community":374,"display":375,"identity":385,"providers":387,"relations":391,"workflow":392},1778053871632.6,"k172tftm6a0qyg98pv5x3qj1yx866q2s",{"reviewCount":8},{"description":376,"installMethods":377,"name":378,"sourceUrl":379,"tags":380},"RivetKit JavaScript client guidance. Use for browser, Node.js, or Bun clients that connect to Rivet Actors with rivetkit/client, create clients, call actions, or manage connections.",{},"RivetKit JavaScript Client","https://github.com/rivet-dev/skills/tree/HEAD/rivetkit-client-javascript",[381,14,382,15,357,20,383,384],"javascript","rivetkit","bun","browser",{"githubOwner":359,"githubRepo":250,"locale":24,"slug":386,"type":192},"rivetkit-client-javascript",{"extract":388,"llm":389},{"commitSha":363,"license":48},{"promptVersionExtension":165,"promptVersionScoring":166,"score":390,"targetMarket":171,"tier":172},95,{"repoId":366},{"anyEnrichmentAt":368,"extractAt":369,"githubAt":368,"llmAt":370,"updatedAt":370}]