16 Commits

Author SHA1 Message Date
github-actions[bot] 85ebaf271d Weekly plugin version sync 2026-09-07 09:14:35 +00:00
github-actions[bot] 6cc9e1e1fc Weekly plugin version sync 2026-08-31 09:15:51 +00:00
github-actions[bot] 2d00e600ac Weekly plugin version sync 2026-08-17 09:16:22 +00:00
github-actions[bot] c43e900fb1 Weekly plugin version sync 2026-08-10 09:33:25 +00:00
Amaury Levé d94c40450e Make BinlogMcp feed-neutral and configure eval NuGet source (#984)
* Revert "Resolve binlog MCP from the dnceng dotnet-public feed"

This reverts commit 805a42a675.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3b2899e9-48f8-4a2a-a19f-1827d08cbfc4

* ci(eval): configure NuGet source explicitly

Install a repository-owned NuGet configuration at the runner user level so temporary Vally workspaces resolve packages from nuget.org without plugin-specific source arguments.

* build: use dotnet-public for repository NuGet configs

Route evaluation and version-stamping tool restores through the locked-down dotnet-public source mapping.

* fix(msbuild): enable prerelease BinlogMcp versions

Match the Roslyn LSP dnx configuration and keep all mirrored MCP manifests consistent.

---------

Co-authored-by: Jan Krivanek <jankrivanek@microsoft.com>
Copilot-Session: 3b2899e9-48f8-4a2a-a19f-1827d08cbfc4
2026-08-05 10:51:10 +02:00
YuliiaKovalova 805a42a675 Resolve binlog MCP from the dnceng dotnet-public feed (#969)
* Resolve binlog MCP from the dnceng dotnet-public feed

The `binlog` server ran `dnx Microsoft.AITools.BinlogMcp --yes` with no feed pinned, so resolution depended on whatever ambient NuGet configuration the agent happened to run under. Pin it to the dnceng dotnet-public feed with `--source` so the server resolves deterministically.

Applied to all four manifests that embed the server definition (plugin.json, .claude-plugin/plugin.json, .codex-plugin/.mcp.json, and .claude-plugin/marketplace.json) so the mirrors stay in sync. Also corrects two stale feed names in comments/docs (dotnet-eng, dotnet-tools).

Verified: `skill-validator check` passes (exit 0, no new warnings), and `dnx --yes --source <dotnet-public> Microsoft.AITools.BinlogMcp` starts aitools-binlog-mcp 2.0.1 and completes an MCP initialize handshake.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: eef3a5cc-7c9b-41b2-88e5-fbc7e786f3f2

* Keep the package ID first in the dnx args

Addresses review feedback. Both orderings resolve and start the server correctly (verified), but keeping `Microsoft.AITools.BinlogMcp` immediately after `dnx` matches the ordering already used in this repo and turns the change into a pure insertion of `--source` with no reordering noise.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: eef3a5cc-7c9b-41b2-88e5-fbc7e786f3f2

---------

Co-authored-by: Amaury Levé <amauryleve@microsoft.com>
Copilot-Session: eef3a5cc-7c9b-41b2-88e5-fbc7e786f3f2
2026-08-04 09:19:58 +00:00
github-actions[bot] 62ff166f2b Weekly plugin version sync 2026-08-03 10:19:29 +00:00
YuliiaKovalova 5aa08ce41b Resolve Microsoft.AITools.BinlogMcp from nuget.org (#774)
The Microsoft.AITools.BinlogMcp package is now published on nuget.org as
stable 1.0.0, so the binlog MCP server no longer needs the dnceng AzDO
dotnet-tools feed or the --prerelease flag.

Drop --prerelease and --add-source <azdo> from the binlog server args in
both plugin.json and the .codex-plugin/.mcp.json mirror.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-16 19:31:42 +02:00
Jan Krivanek 0724ccf8ac Update binlog mcp name (#684) 2026-05-22 13:48:09 +00:00
Jan Krivanek e951d69ab9 dotnet-msbuild: move AITools.BinlogMcp source to dotnet-tools feed (#680)
The MCP package was relocated from the dotnet-eng public feed to the dotnet-tools public feed on dnceng. Update plugin.json --add-source URL and the SKILL.md fallback note accordingly.
2026-05-21 13:14:51 +02:00
Jan Krivanek dfc8aa786d dotnet-msbuild: register AITools.BinlogMcp and use it from binlog-failure-analysis (#673)
* dotnet-msbuild: register AITools.BinlogMcp and use it from binlog-failure-analysis

Adds the AITools.BinlogMcp MCP server (pulled via dnx from the dotnet-eng public NuGet feed, prerelease, no version pin) to the dotnet-msbuild plugin and rewrites the binlog-failure-analysis SKILL.md to lead with the MCP tools (binlog_overview, binlog_errors, binlog_search, binlog_items, binlog_properties, binlog_imports, binlog_nuget). The text-log replay workflow is kept as a fallback for environments without the MCP.

* Improve skills

* Reflect PR comments
2026-05-19 19:45:34 +02:00
Viktor Hofer a895c226b3 Fix agents field in plugin.json to use explicit file paths (#419)
* Fix agents field in plugin.json to use explicit file paths

Claude Code's manifest validator rejects directory paths in the agents
field. Replace directory references with explicit .agent.md file paths
in all affected plugins (dotnet-diag, dotnet-msbuild, dotnet-template-engine).

Fixes https://github.com/dotnet/skills/issues/416

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Validate that agents paths are explicit files, not directories

Claude Code's manifest validator rejects directory paths in the agents
field. Update PluginValidator to error when an agent path resolves to a
directory, guiding authors to use explicit .agent.md file paths instead.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 08:36:20 +00:00
Copilot 6face98ff6 Change agents and skills fields in plugin.json to array format for Claude Code CLI compatibility (#407)
* Initial plan

* Remove agents string field from plugin.json and handle array format in parser

Claude Code CLI validates `agents` as array-of-strings per its plugin manifest
schema. Our plugin.json files had `"agents": "./agents/"` (a string), which
caused "agents: Invalid input" validation errors on install.

Remove the field from the 3 affected plugin.json files — agents are still
discovered by convention from the `agents/` directory. Also make ParsePluginJson
resilient to both string and array formats for forward-compatibility.

Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>

* Remove `agents` string field from plugin.json for Claude Code CLI compatibility

Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>

* Change agents field to array format in plugin.json, update validator to read array-first with string fallback

Plugin.json files now declare agents as an array of file paths:
  "agents": ["./agents/foo.agent.md", "./agents/bar.agent.md"]

ParsePluginJson reads the array first (preferred, Claude Code schema),
falls back to a string path (legacy). PluginInfo gains an AgentPaths
field. Validator and discovery use the array when present, else fall
back to directory-based convention.

Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>

* Simplify agents to directory-path array form ["./agents/"], handle directories in array entries

Per Copilot CLI spec, agents field values are "Path(s) to agent directories"
— no need to list individual files. Use ["./agents/"] to mirror how
skills uses "./skills/". Updated validator and discovery to handle both
directory and file entries in the array.

Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>

* Delete .nuget/nuget.exe

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Convert skills field to array format in plugin.json, update validator to handle both forms

Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>

* Align AgentPaths null checks to use { Count: > 0 } pattern for consistency

Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>

* Change `agents` and `skills` fields in plugin.json to array format for Claude Code CLI compatibility

Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>

* Delete .nuget/nuget.exe

* Consolidate SkillsPath/SkillPaths and AgentsPath/AgentPaths into single array fields

Remove dual string/array fields from PluginInfo. The parser now
normalizes legacy string values into single-element arrays, so all
downstream code uses only SkillPaths and AgentPaths (IReadOnlyList<string>).
This eliminates all array-vs-string fallback branching.

Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-20 10:27:28 +01:00
Viktor Hofer 29033c459d Reset plugin verisons to 0.1.0 (#145) 2026-02-28 08:38:03 +01:00
Viktor Hofer 24fa12656b Remove .mcp.json and mcpServers from plugin.json
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-27 20:19:46 +01:00
Viktor Hofer 250b1c2bbc Rename src/ to plugins/ folder 2026-02-27 20:19:46 +01:00