[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CS0JPEP4GKA3TX05WZ1DJC":3,"skill-same:01M6CS0JPEP4GKA3TX05WZ1DJC":59},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":41,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M6CS0JPEP4GKA3TX05WZ1DJC","azure-ai-projects-ts",null,"High-level SDK for Azure AI Foundry projects with agents, connections, deployments, and evaluations.","Sam-06060\u002Fjarvis-assistant","Sam-06060","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F208600848?v=4","01M6CRKT7C7FXD21V6HXF293S0","Samson Frank Ganta","01M6CRKTBEKYFD8YX5Z1GT99EE",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-ai-projects-ts\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29],"azure ai","azure","azure ai projects ts","azure ai projects","projects","sdk","foundry","azure ai foundry","deployments","community","connections","2026-11-10 10:12:30",false,"---\nname: azure-ai-projects-ts\ndescription: \"High-level SDK for Azure AI Foundry projects with agents, connections, deployments, and evaluations.\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Azure AI Projects SDK for TypeScript\n\nHigh-level SDK for Azure AI Foundry projects with agents, connections, deployments, and evaluations.\n\n## Installation\n\n```bash\nnpm install @azure\u002Fai-projects @azure\u002Fidentity\n```\n\nFor tracing:\n```bash\nnpm install @azure\u002Fmonitor-opentelemetry @opentelemetry\u002Fapi\n```\n\n## Environment Variables\n\n```bash\nAZURE_AI_PROJECT_ENDPOINT=https:\u002F\u002F\u003Cresource>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>\nMODEL_DEPLOYMENT_NAME=gpt-4o\n```\n\n## Authentication\n\n```typescript\nimport { AIProjectClient } from \"@azure\u002Fai-projects\";\nimport { DefaultAzureCredential } from \"@azure\u002Fidentity\";\n\nconst client = new AIProjectClient(\n  process.env.AZURE_AI_PROJECT_ENDPOINT!,\n  new DefaultAzureCredential()\n);\n```\n\n## Operation Groups\n\n| Group | Purpose |\n|-------|---------|\n| `client.agents` | Create and manage AI agents |\n| `client.connections` | List connected Azure resources |\n| `client.deployments` | List model deployments |\n| `client.datasets` | Upload and manage datasets |\n| `client.indexes` | Create and manage search indexes |\n| `client.evaluators` | Manage evaluation metrics |\n| `client.memoryStores` | Manage agent memory |\n\n## Getting OpenAI Client\n\n```typescript\nconst openAIClient = await client.getOpenAIClient();\n\n\u002F\u002F Use for responses\nconst response = await openAIClient.responses.create({\n  model: \"gpt-4o\",\n  input: \"What is the capital of France?\"\n});\n\n\u002F\u002F Use for conversations\nconst conversation = await openAIClient.conversations.create({\n  items: [{ type: \"message\", role: \"user\", content: \"Hello!\" }]\n});\n```\n\n## Agents\n\n### Create Agent\n\n```typescript\nconst agent = await client.agents.createVersion(\"my-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  instructions: \"You are a helpful assistant.\"\n});\n```\n\n### Agent with Tools\n\n```typescript\n\u002F\u002F Code Interpreter\nconst agent = await client.agents.createVersion(\"code-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  instructions: \"You can execute code.\",\n  tools: [{ type: \"code_interpreter\", container: { type: \"auto\" } }]\n});\n\n\u002F\u002F File Search\nconst agent = await client.agents.createVersion(\"search-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{ type: \"file_search\", vector_store_ids: [vectorStoreId] }]\n});\n\n\u002F\u002F Web Search\nconst agent = await client.agents.createVersion(\"web-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"web_search_preview\",\n    user_location: { type: \"approximate\", country: \"US\", city: \"Seattle\" }\n  }]\n});\n\n\u002F\u002F Azure AI Search\nconst agent = await client.agents.createVersion(\"aisearch-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"azure_ai_search\",\n    azure_ai_search: {\n      indexes: [{\n        project_connection_id: connectionId,\n        index_name: \"my-index\",\n        query_type: \"simple\"\n      }]\n    }\n  }]\n});\n\n\u002F\u002F Function Tool\nconst agent = await client.agents.createVersion(\"func-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"function\",\n    function: {\n      name: \"get_weather\",\n      description: \"Get weather for a location\",\n      strict: true,\n      parameters: {\n        type: \"object\",\n        properties: { location: { type: \"string\" } },\n        required: [\"location\"]\n      }\n    }\n  }]\n});\n\n\u002F\u002F MCP Tool\nconst agent = await client.agents.createVersion(\"mcp-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"mcp\",\n    server_label: \"my-mcp\",\n    server_url: \"https:\u002F\u002Fmcp-server.example.com\",\n    require_approval: \"always\"\n  }]\n});\n```\n\n### Run Agent\n\n```typescript\nconst openAIClient = await client.getOpenAIClient();\n\n\u002F\u002F Create conversation\nconst conversation = await openAIClient.conversations.create({\n  items: [{ type: \"message\", role: \"user\", content: \"Hello!\" }]\n});\n\n\u002F\u002F Generate response using agent\nconst response = await openAIClient.responses.create(\n  { conversation: conversation.id },\n  { body: { agent: { name: agent.name, type: \"agent_reference\" } } }\n);\n\n\u002F\u002F Cleanup\nawait openAIClient.conversations.delete(conversation.id);\nawait client.agents.deleteVersion(agent.name, agent.version);\n```\n\n## Connections\n\n```typescript\n\u002F\u002F List all connections\nfor await (const conn of client.connections.list()) {\n  console.log(conn.name, conn.type);\n}\n\n\u002F\u002F Get connection by name\nconst conn = await client.connections.get(\"my-connection\");\n\n\u002F\u002F Get connection with credentials\nconst connWithCreds = await client.connections.getWithCredentials(\"my-connection\");\n\n\u002F\u002F Get default connection by type\nconst defaultAzureOpenAI = await client.connections.getDefault(\"AzureOpenAI\", true);\n```\n\n## Deployments\n\n```typescript\n\u002F\u002F List all deployments\nfor await (const deployment of client.deployments.list()) {\n  if (deployment.type === \"ModelDeployment\") {\n    console.log(deployment.name, deployment.modelName);\n  }\n}\n\n\u002F\u002F Filter by publisher\nfor await (const d of client.deployments.list({ modelPublisher: \"OpenAI\" })) {\n  console.log(d.name);\n}\n\n\u002F\u002F Get specific deployment\nconst deployment = await client.deployments.get(\"gpt-4o\");\n```\n\n## Datasets\n\n```typescript\n\u002F\u002F Upload single file\nconst dataset = await client.datasets.uploadFile(\n  \"my-dataset\",\n  \"1.0\",\n  \".\u002Fdata\u002Ftraining.jsonl\"\n);\n\n\u002F\u002F Upload folder\nconst dataset = await client.datasets.uploadFolder(\n  \"my-dataset\",\n  \"2.0\",\n  \".\u002Fdata\u002Fdocuments\u002F\"\n);\n\n\u002F\u002F Get dataset\nconst ds = await client.datasets.get(\"my-dataset\", \"1.0\");\n\n\u002F\u002F List versions\nfor await (const version of client.datasets.listVersions(\"my-dataset\")) {\n  console.log(version);\n}\n\n\u002F\u002F Delete\nawait client.datasets.delete(\"my-dataset\", \"1.0\");\n```\n\n## Indexes\n\n```typescript\nimport { AzureAISearchIndex } from \"@azure\u002Fai-projects\";\n\nconst indexConfig: AzureAISearchIndex = {\n  name: \"my-index\",\n  type: \"AzureSearch\",\n  version: \"1\",\n  indexName: \"my-index\",\n  connectionName: \"search-connection\"\n};\n\n\u002F\u002F Create index\nconst index = await client.indexes.createOrUpdate(\"my-index\", \"1\", indexConfig);\n\n\u002F\u002F List indexes\nfor await (const idx of client.indexes.list()) {\n  console.log(idx.name);\n}\n\n\u002F\u002F Delete\nawait client.indexes.delete(\"my-index\", \"1\");\n```\n\n## Key Types\n\n```typescript\nimport {\n  AIProjectClient,\n  AIProjectClientOptionalParams,\n  Connection,\n  ModelDeployment,\n  DatasetVersionUnion,\n  AzureAISearchIndex\n} from \"@azure\u002Fai-projects\";\n```\n\n## Best Practices\n\n1. **Use getOpenAIClient()** - For responses, conversations, files, and vector stores\n2. **Version your agents** - Use `createVersion` for reproducible agent definitions\n3. **Clean up resources** - Delete agents, conversations when done\n4. **Use connections** - Get credentials from project connections, don't hardcode\n5. **Filter deployments** - Use `modelPublisher` filter to find specific models\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Azure AI Projects SDK for TypeScript\n\nHigh-level SDK for Azure AI Foundry projects with agents, connections, deployments, and evaluations.\n\n## Installation\n\n```bash\nnpm install @azure\u002Fai-projects @azure\u002Fidentity\n```\n\nFor tracing:\n```bash\nnpm install @azure\u002Fmonitor-opentelemetry @opentelemetry\u002Fapi\n```\n\n## Environment Variables\n\n```bash\nAZURE_AI_PROJECT_ENDPOINT=https:\u002F\u002F\u003Cresource>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>\nMODEL_DEPLOYMENT_NAME=gpt-4o\n```\n\n## Authentication\n\n```typescript\nimport { AIProjectClient } from \"@azure\u002Fai-projects\";\nimport { DefaultAzureCredential } from \"@azure\u002Fidentity\";\n\nconst client = new AIProjectClient(\n  process.env.AZURE_AI_PROJECT_ENDPOINT!,\n  new DefaultAzureCredential()\n);\n```\n\n## Operation Groups\n\n| Group | Purpose |\n|-------|---------|\n| `client.agents` | Create and manage AI agents |\n| `client.connections` | List connected Azure resources |\n| `client.deployments` | List model deployments |\n| `client.datasets` | Upload and manage datasets |\n| `client.indexes` | Create and manage search indexes |\n| `client.evaluators` | Manage evaluation metrics |\n| `client.memoryStores` | Manage agent memory |\n\n## Getting OpenAI Client\n\n```typescript\nconst openAIClient = await client.getOpenAIClient();\n\n\u002F\u002F Use for responses\nconst response = await openAIClient.responses.create({\n  model: \"gpt-4o\",\n  input: \"What is the capital of France?\"\n});\n\n\u002F\u002F Use for conversations\nconst conversation = await openAIClient.conversations.create({\n  items: [{ type: \"message\", role: \"user\", content: \"Hello!\" }]\n});\n```\n\n## Agents\n\n### Create Agent\n\n```typescript\nconst agent = await client.agents.createVersion(\"my-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  instructions: \"You are a helpful assistant.\"\n});\n```\n\n### Agent with Tools\n\n```typescript\n\u002F\u002F Code Interpreter\nconst agent = await client.agents.createVersion(\"code-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  instructions: \"You can execute code.\",\n  tools: [{ type: \"code_interpreter\", container: { type: \"auto\" } }]\n});\n\n\u002F\u002F File Search\nconst agent = await client.agents.createVersion(\"search-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{ type: \"file_search\", vector_store_ids: [vectorStoreId] }]\n});\n\n\u002F\u002F Web Search\nconst agent = await client.agents.createVersion(\"web-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"web_search_preview\",\n    user_location: { type: \"approximate\", country: \"US\", city: \"Seattle\" }\n  }]\n});\n\n\u002F\u002F Azure AI Search\nconst agent = await client.agents.createVersion(\"aisearch-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"azure_ai_search\",\n    azure_ai_search: {\n      indexes: [{\n        project_connection_id: connectionId,\n        index_name: \"my-index\",\n        query_type: \"simple\"\n      }]\n    }\n  }]\n});\n\n\u002F\u002F Function Tool\nconst agent = await client.agents.createVersion(\"func-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"function\",\n    function: {\n      name: \"get_weather\",\n      description: \"Get weather for a location\",\n      strict: true,\n      parameters: {\n        type: \"object\",\n        properties: { location: { type: \"string\" } },\n        required: [\"location\"]\n      }\n    }\n  }]\n});\n\n\u002F\u002F MCP Tool\nconst agent = await client.agents.createVersion(\"mcp-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"mcp\",\n    server_label: \"my-mcp\",\n    server_url: \"https:\u002F\u002Fmcp-server.example.com\",\n    require_approval: \"always\"\n  }]\n});\n```\n\n### Run Agent\n\n```typescript\nconst openAIClient = await client.getOpenAIClient();\n\n\u002F\u002F Create conversation\nconst conversation = await openAIClient.conversations.create({\n  items: [{ type: \"message\", role: \"user\", content: \"Hello!\" }]\n});\n\n\u002F\u002F Generate response using agent\nconst response = await openAIClient.responses.create(\n  { conversation: conversation.id },\n  { body: { agent: { name: agent.name, type: \"agent_reference\" } } }\n);\n\n\u002F\u002F Cleanup\nawait openAIClient.conversations.delete(conversation.id);\nawait client.agents.deleteVersion(agent.name, agent.version);\n```\n\n## Connections\n\n```typescript\n\u002F\u002F List all connections\nfor await (const conn of client.connections.list()) {\n  console.log(conn.name, conn.type);\n}\n\n\u002F\u002F Get connection by name\nconst conn = await client.connections.get(\"my-connection\");\n\n\u002F\u002F Get connection with credentials\nconst connWithCreds = await client.connections.getWithCredentials(\"my-connection\");\n\n\u002F\u002F Get default connection by type\nconst defaultAzureOpenAI = await client.connections.getDefault(\"AzureOpenAI\", true);\n```\n\n## Deployments\n\n```typescript\n\u002F\u002F List all deployments\nfor await (const deployment of client.deployments.list()) {\n  if (deployment.type === \"ModelDeployment\") {\n    console.log(deployment.name, deployment.modelName);\n  }\n}\n\n\u002F\u002F Filter by publisher\nfor await (const d of client.deployments.list({ modelPublisher: \"OpenAI\" })) {\n  console.log(d.name);\n}\n\n\u002F\u002F Get specific deployment\nconst deployment = await client.deployments.get(\"gpt-4o\");\n```\n\n## Datasets\n\n```typescript\n\u002F\u002F Upload single file\nconst dataset = await client.datasets.uploadFile(\n  \"my-dataset\",\n  \"1.0\",\n  \".\u002Fdata\u002Ftraining.jsonl\"\n);\n\n\u002F\u002F Upload folder\nconst dataset = await client.datasets.uploadFolder(\n  \"my-dataset\",\n  \"2.0\",\n  \".\u002Fdata\u002Fdocuments\u002F\"\n);\n\n\u002F\u002F Get dataset\nconst ds = await client.datasets.get(\"my-dataset\", \"1.0\");\n\n\u002F\u002F List versions\nfor await (const version of client.datasets.listVersions(\"my-dataset\")) {\n  console.log(version);\n}\n\n\u002F\u002F Delete\nawait client.datasets.delete(\"my-dataset\", \"1.0\");\n```\n\n## Indexes\n\n```typescript\nimport { AzureAISearchIndex } from \"@azure\u002Fai-projects\";\n\nconst indexConfig: AzureAISearchIndex = {\n  name: \"my-index\",\n  type: \"AzureSearch\",\n  version: \"1\",\n  indexName: \"my-index\",\n  connectionName: \"search-connection\"\n};\n\n\u002F\u002F Create index\nconst index = await client.indexes.createOrUpdate(\"my-index\", \"1\", indexConfig);\n\n\u002F\u002F List indexes\nfor await (const idx of client.indexes.list()) {\n  console.log(idx.name);\n}\n\n\u002F\u002F Delete\nawait client.indexes.delete(\"my-index\", \"1\");\n```\n\n## Key Types\n\n```typescript\nimport {\n  AIProjectClient,\n  AIProjectClientOptionalParams,\n  Connection,\n  ModelDeployment,\n  DatasetVersionUnion,\n  AzureAISearchIndex\n} from \"@azure\u002Fai-projects\";\n```\n\n## Best Practices\n\n1. **Use getOpenAIClient()** - For responses, conversations, files, and vector stores\n2. **Version your agents** - Use `createVersion` for reproducible agent definitions\n3. **Clean up resources** - Delete agents, conversations when done\n4. **Use connections** - Get credentials from project connections, don't hardcode\n5. **Filter deployments** - Use `modelPublisher` filter to find specific models\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{"name":5,"risk":35,"source":28,"date_added":36,"description":7},"unknown","2026-02-27","main","a50a3aa6b39fb0e1b7db88bef1bfc9c93606e126","modules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-ai-projects-ts",0,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant","https:\u002F\u002Fgithub.com\u002FSam-06060","Mobile Application Developer | Kotlin | Flutter, KMP, Swfit, Android,Swift UI | Building at Saar It Resources | Creator of Jarvis (AI Assistant)","2026-06-23 05:13:38",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add Sam-06060\u002Fjarvis-assistant --skill azure-ai-projects-ts",{"tool":51,"command":52},"bunx","bunx skills add Sam-06060\u002Fjarvis-assistant --skill azure-ai-projects-ts",{"tool":54,"command":55},"pnpm","pnpm dlx skills add Sam-06060\u002Fjarvis-assistant --skill azure-ai-projects-ts","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-ai-projects-ts\u002FSKILL.md",true,[],[60,73,89,116,135,162],{"skillNo":61,"name":62,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":70,"publishedAt":30},"01M6GDRVS6FXX3ESH0C9DW01C0","test_skill","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fscratch\u002Ftest_skill\u002FSKILL.md",[65],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[71,72],"Test Skill","test",{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":30},"01M6GDRQ40HX22MA6XWC31RHHK","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzustand-store-ts\u002FSKILL.md",[],[80,81,82,83,84,85,86,28,87,88],"zustand store ts","zustand","store","with","types","middleware","patterns","create","typescript",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":98,"publishedAt":30},"01M6GDRKEA0WE670SPFWX5GKCN","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoom-automation\u002FSKILL.md",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000023","Skill与智能体开发",[99,100,101,102,103,104,105,106,107,108,109,110,111,112,28,113,114,115],"automation","zoom automation","zoom","first","Tools","search","MCP","via","meeting","automate","critical","creation","webinars","composio","recordings","management","tracking",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":123,"publishedAt":30},"01M6GDRFS1452PC71JQ38S24HR","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoho-crm-automation\u002FSKILL.md",[122],{"categoryNo":96,"categoryName":97,"taxonomyType":68,"taxonomyTypeDesc":69},[124,99,125,126,127,128,129,28,104,130,112,131,109,108,103,132,87,133,105,134],"crm automation","zoho crm","crm","zoho crm automation","zoho","leads","contacts","records","update","tasks","manage",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":144,"publishedAt":30},"01M6GDRCKQBAVTGHX5XBH26KPZ","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzod-validation-expert\u002FSKILL.md",[141],{"categoryNo":142,"categoryName":143,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000009","前端开发",[145,146,147,148,149,88,150,151,152,153,154,155,83,156,157,158,159,28,160,161],"expert","zod","zod validation expert","validation","react","safe","parsing","errors","schema validation","react hook form","hook","trpc","form","type","next","schema","Next.js",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":169,"publishedAt":30},"01M6GDR658B08K4MY0RWD4A6EH","zeroize-audit","Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C\u002FC++\u002FRust code handling secrets, keys, passwords, or other sensitive data.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzeroize-audit\u002FSKILL.md",[168],{"categoryNo":96,"categoryName":97,"taxonomyType":68,"taxonomyTypeDesc":69},[170,171,172,173,174,175,176,177,28,178,179,180,181,182,183,184,185,186,187,105],"zeroize audit","audit","write","passwords","get","project","c++","activate","assembly","read","Bash","secrets","analysis","data","flow","verification","code","rust"]