[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699EBDBCYHCPVFREJ8M64WE":3,"skill-same:01M699EBDBCYHCPVFREJ8M64WE":58},{"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":23,"publishedAt":27,"linkOnly":28,"markdownContent":29,"markdownBody":30,"frontMatter":31,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":6,"ownerHtmlUrl":40,"ownerBlogUrl":41,"ownerDescription":42,"updatedAt":43,"install":44,"resources":57},"01M699EBDBCYHCPVFREJ8M64WE","chat-directline",null,"Send a message to a Copilot Studio agent via DirectLine v3. Use for agents with no auth or manual auth. Requires a token endpoint URL or DirectLine secret.","microsoft\u002Fskills-for-copilot-studio","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M699DXBD563FYBGWKPJJRAVM",490,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-copilot-studio\u002Fblob\u002Fmain\u002Fskills\u002Fchat-directline\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26],"chat directline","test","auth","2026-11-10 10:12:30",false,"---\nuser-invocable: false\ndescription: Send a message to a Copilot Studio agent via DirectLine v3. Use for agents with no auth or manual auth. Requires a token endpoint URL or DirectLine secret.\nargument-hint: \u003Cutterance>\nallowed-tools: Bash(node *chat-with-agent.bundle.js *), Read, Glob\nagent: copilot-studio-test\n---\n\n# Chat via DirectLine\n\nSend a single utterance to a published agent via the DirectLine v3 REST API. Use this for agents with **no authentication** (authenticationmode 1) or **manual authentication** (authenticationmode 3).\n\n## Instructions\n\n1. Run the script with `--token-endpoint` (from detect-mode output) and the utterance from `$ARGUMENTS`:\n\n   ```bash\n   node ${CLAUDE_SKILL_DIR}\u002F..\u002F..\u002Fscripts\u002Fchat-with-agent.bundle.js \\\n     --token-endpoint \"\u003CtokenEndpoint>\" \"\u003Cutterance>\"\n   ```\n\n   If the user provided a DirectLine secret instead:\n\n   ```bash\n   node ${CLAUDE_SKILL_DIR}\u002F..\u002F..\u002Fscripts\u002Fchat-with-agent.bundle.js \\\n     --directline-secret \"\u003Csecret>\" \"\u003Cutterance>\"\n   ```\n\n2. Parse the JSON output from stdout.\n\n### Normal response (`status: \"ok\"`)\n\n```json\n{\n  \"status\": \"ok\",\n  \"protocol\": \"directline\",\n  \"utterance\": \"hello\",\n  \"conversation_id\": \"abc123-XYZ\",\n  \"directline_token\": \"eyJ...\",\n  \"watermark\": \"3\",\n  \"start_activities\": [ ... ],\n  \"activities\": [ ... ]\n}\n```\n\nDisplay the agent's response from the `activities` array:\n- **Text**: activities where `type === \"message\"` — show `text`\n- **Suggested actions**: `suggestedActions.actions` array\n- **Adaptive cards**: `attachments` with `contentType === \"application\u002Fvnd.microsoft.card.adaptive\"`\n\n**Save `conversation_id`, `directline_token`, and `watermark`** — needed for follow-ups.\n\n### Sign-in required (`status: \"signin_required\"`)\n\nThe agent requires the user to authenticate (manual auth agents):\n\n```json\n{\n  \"status\": \"signin_required\",\n  \"protocol\": \"directline\",\n  \"signin_url\": \"https:\u002F\u002F...\",\n  \"resume_command\": \"...\",\n  \"followup_command\": \"...\"\n}\n```\n\n1. Show the `signin_url` to the user, ask for the validation code\n2. Send the code: `node ${CLAUDE_SKILL_DIR}\u002F..\u002F..\u002Fscripts\u002Fchat-with-agent.bundle.js \u003Cresume_command with code substituted>`\n3. Re-send the utterance: `node ${CLAUDE_SKILL_DIR}\u002F..\u002F..\u002Fscripts\u002Fchat-with-agent.bundle.js \u003Cfollowup_command>`\n\nUse `resume_command` and `followup_command` exactly as given.\n\n## Multi-turn\n\nPass all three values from the previous response:\n\n```bash\nnode ${CLAUDE_SKILL_DIR}\u002F..\u002F..\u002Fscripts\u002Fchat-with-agent.bundle.js \\\n  --token-endpoint \"\u003Curl>\" \"\u003Cfollow-up>\" \\\n  --conversation-id \"\u003Cid>\" --directline-token \"\u003Ctoken>\" --watermark \"\u003Cwatermark>\"\n```\n\n- **`directline_token`** is bound to the conversation — do NOT fetch a new token. Always reuse from the previous response.\n- **`watermark`** tracks seen activities — pass it to avoid duplicates.\n- Tokens expire after **~30 minutes**. If expired, start a new conversation (omit `--conversation-id`).\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| `Token endpoint rejected` | Agent not published or wrong URL | Verify agent is published |\n| `Conversation not found` | Token expired (>30 min) | Start a new conversation |\n","# Chat via DirectLine\n\nSend a single utterance to a published agent via the DirectLine v3 REST API. Use this for agents with **no authentication** (authenticationmode 1) or **manual authentication** (authenticationmode 3).\n\n## Instructions\n\n1. Run the script with `--token-endpoint` (from detect-mode output) and the utterance from `$ARGUMENTS`:\n\n   ```bash\n   node ${CLAUDE_SKILL_DIR}\u002F..\u002F..\u002Fscripts\u002Fchat-with-agent.bundle.js \\\n     --token-endpoint \"\u003CtokenEndpoint>\" \"\u003Cutterance>\"\n   ```\n\n   If the user provided a DirectLine secret instead:\n\n   ```bash\n   node ${CLAUDE_SKILL_DIR}\u002F..\u002F..\u002Fscripts\u002Fchat-with-agent.bundle.js \\\n     --directline-secret \"\u003Csecret>\" \"\u003Cutterance>\"\n   ```\n\n2. Parse the JSON output from stdout.\n\n### Normal response (`status: \"ok\"`)\n\n```json\n{\n  \"status\": \"ok\",\n  \"protocol\": \"directline\",\n  \"utterance\": \"hello\",\n  \"conversation_id\": \"abc123-XYZ\",\n  \"directline_token\": \"eyJ...\",\n  \"watermark\": \"3\",\n  \"start_activities\": [ ... ],\n  \"activities\": [ ... ]\n}\n```\n\nDisplay the agent's response from the `activities` array:\n- **Text**: activities where `type === \"message\"` — show `text`\n- **Suggested actions**: `suggestedActions.actions` array\n- **Adaptive cards**: `attachments` with `contentType === \"application\u002Fvnd.microsoft.card.adaptive\"`\n\n**Save `conversation_id`, `directline_token`, and `watermark`** — needed for follow-ups.\n\n### Sign-in required (`status: \"signin_required\"`)\n\nThe agent requires the user to authenticate (manual auth agents):\n\n```json\n{\n  \"status\": \"signin_required\",\n  \"protocol\": \"directline\",\n  \"signin_url\": \"https:\u002F\u002F...\",\n  \"resume_command\": \"...\",\n  \"followup_command\": \"...\"\n}\n```\n\n1. Show the `signin_url` to the user, ask for the validation code\n2. Send the code: `node ${CLAUDE_SKILL_DIR}\u002F..\u002F..\u002Fscripts\u002Fchat-with-agent.bundle.js \u003Cresume_command with code substituted>`\n3. Re-send the utterance: `node ${CLAUDE_SKILL_DIR}\u002F..\u002F..\u002Fscripts\u002Fchat-with-agent.bundle.js \u003Cfollowup_command>`\n\nUse `resume_command` and `followup_command` exactly as given.\n\n## Multi-turn\n\nPass all three values from the previous response:\n\n```bash\nnode ${CLAUDE_SKILL_DIR}\u002F..\u002F..\u002Fscripts\u002Fchat-with-agent.bundle.js \\\n  --token-endpoint \"\u003Curl>\" \"\u003Cfollow-up>\" \\\n  --conversation-id \"\u003Cid>\" --directline-token \"\u003Ctoken>\" --watermark \"\u003Cwatermark>\"\n```\n\n- **`directline_token`** is bound to the conversation — do NOT fetch a new token. Always reuse from the previous response.\n- **`watermark`** tracks seen activities — pass it to avoid duplicates.\n- Tokens expire after **~30 minutes**. If expired, start a new conversation (omit `--conversation-id`).\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| `Token endpoint rejected` | Agent not published or wrong URL | Verify agent is published |\n| `Conversation not found` | Token expired (>30 min) | Start a new conversation |\n",{"agent":32,"description":7,"allowed-tools":33,"argument-hint":34,"user-invocable":28},"copilot-studio-test","Bash(node *chat-with-agent.bundle.js *), Read, Glob","\u003Cutterance>","main","9c42d3a612c6e06389b6e5b4eed579aaed1a8b63","skills\u002Fchat-directline",102,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-copilot-studio","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-05 17:03:41",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add microsoft\u002Fskills-for-copilot-studio --skill chat-directline",{"tool":50,"command":51},"bunx","bunx skills add microsoft\u002Fskills-for-copilot-studio --skill chat-directline",{"tool":53,"command":54},"pnpm","pnpm dlx skills add microsoft\u002Fskills-for-copilot-studio --skill chat-directline","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-copilot-studio\u002Fblob\u002Fmain\u002Fskills\u002Fchat-directline\u002FSKILL.md",true,[],[59,67,83,92,103,112],{"skillNo":60,"name":61,"nameZh":6,"description":62,"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":66,"publishedAt":27},"01M699FD973RBVBTQYE48GBFPG","validate","Validate Copilot Studio agent YAML files using the LSP binary's full diagnostics (YAML structure, Power Fx, schema, cross-file references). Use when the user asks to check, validate, or verify YAML files.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-copilot-studio\u002Fblob\u002Fmain\u002Fskills\u002Fvalidate\u002FSKILL.md",[65],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[61],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":79,"publishedAt":27},"01M699FBJC22B4HCFH9MA844C3","test-auth","Authenticate for Copilot Studio evaluation API and SDK chat. Caches a token that is shared across run-eval and chat-sdk skills. Run this before any eval or SDK chat workflow. Requires an App Registration with MakerOperations and Copilots.Invoke permissions.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-copilot-studio\u002Fblob\u002Fmain\u002Fskills\u002Ftest-auth\u002FSKILL.md",[73,76],{"categoryNo":74,"categoryName":75,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":77,"categoryName":78,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[25,26,80,81,82],"test auth","sdk","workflow",{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":90,"publishedAt":27},"01M699FA38G1TAVA0JWD9DG783","run-tests-kit","Run a batch test suite via the Copilot Studio Kit (Dataverse API). Uses the Power CAT Copilot Studio Kit to execute test cases against a published agent and produces pass\u002Ffail results with latencies. Requires the Kit installed in the environment, an App Registration with Dataverse permissions, and a published agent.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-copilot-studio\u002Fblob\u002Fmain\u002Fskills\u002Frun-tests-kit\u002FSKILL.md",[89],{"categoryNo":74,"categoryName":75,"taxonomyType":21,"taxonomyTypeDesc":22},[91,25],"run tests kit",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":101,"publishedAt":27},"01M699F8EP4BZT1EA3R4Y40X98","run-eval","Run evaluations against a Copilot Studio agent via the Power Platform Evaluation API. Works on DRAFT agents — no publish step required. Lists test sets, starts a run, polls until complete, fetches results, and proposes YAML fixes for failures. Use when the user wants to test agent changes without publishing.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-copilot-studio\u002Fblob\u002Fmain\u002Fskills\u002Frun-eval\u002FSKILL.md",[98,99,100],{"categoryNo":74,"categoryName":75,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":77,"categoryName":78,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[102,25],"run eval",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":110,"publishedAt":27},"01M699F6NR5Z4RTN5MWH5WYV9H","new-topic","Create a new Copilot Studio topic YAML file. Use when the user asks to create a new topic, conversation flow, or dialog for their agent.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-copilot-studio\u002Fblob\u002Fmain\u002Fskills\u002Fnew-topic\u002FSKILL.md",[109],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[111],"new topic",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":119,"publishedAt":27},"01M699F4QN5BMQA3X9F7WC1NS0","manage-agent","Push\u002Fpull Copilot Studio agent content via the VS Code extension's LanguageServerHost LSP binary. Handles authentication (interactive browser login for push\u002Fpull, device code flow for chat token), sync push, sync pull, clone, and diff operations.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-copilot-studio\u002Fblob\u002Fmain\u002Fskills\u002Fmanage-agent\u002FSKILL.md",[118],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[120,26,121],"manage agent","sync"]