IC3 MonitoringAsCodeVS Code authoring assistant for Microsoft.IC3.MonitoringAsCode C# definitions. Current features:
More MonitoringAsCode authoring helpers will be added here over time. InstallFrom the Extensions view in VS Code, search for IC3 MonitoringAsCode and install. Or from the command line:
Marketplace listing: https://marketplace.visualstudio.com/items?itemName=IC3PlatformMonitoringAsCode.ic3-monitoringascode ActivationNo configuration is needed. The extension activates automatically when you
open a C# file inside a properly-configured MaC project — i.e. one produced
by How the Geneva source path is resolvedThe extension walks up from the active C# file looking for a
FeaturesDashboard link checkerValidates You'll see:
Toggle via
|
| Tool | What it does |
|---|---|
mac_describeCapabilities |
Self-describing surface: which diagnostic categories, fix kinds, and tool versions are available. Agents should call this first to avoid stale assumptions. |
mac_listDiagnostics |
Lists current MaC warnings/errors (optionally scoped to a file or category). Returns a stable id per diagnostic. |
mac_getSuggestedFixes |
Returns ranked fix candidates for the given diagnostic ids, plus a safety signal (auto / review / ask) so the agent knows whether to apply directly or ask you. |
mac_applyFix |
Applies the chosen {diagnosticId, fixId} pairs. Saves the modified files to disk by default so git diff reflects the changes immediately (pass save: false to keep buffers dirty). Always prompts for confirmation before editing. |
mac_verifyDiagnostics |
Re-runs analysis on the affected files and reports which ids are resolved, still present, or newly appeared. |
Using them from chat
In most cases you don't need to do anything special — ask in natural language and the agent will pick the right tools:
Fix the broken dashboard links in this project.
The agent will typically chain mac_listDiagnostics → mac_getSuggestedFixes → mac_applyFix → mac_verifyDiagnostics, asking you to disambiguate when a fix is safety: "review" or "ask".
You can also reference a tool explicitly with # to force the agent to use it:
#macDiagnostics what's broken under
Monitors/?#macFixes for the diagnostics above, then #macApply the top suggestion for each.
The reference names (macCapabilities, macDiagnostics, macFixes, macApply, macVerify) are listed in the chat tool picker.
Using them from a custom agent
If you're building your own agent / chat extension, invoke the tools via vscode.lm.invokeTool('mac_listDiagnostics', { input: { /* see schema */ } }, token). Every tool returns a single JSON LanguageModelTextPart with shape { ok: true, data: ... } on success or { ok: false, error: { code, message, details? } } on failure — use the diagnostic / fix ids as opaque handles across calls.
Configuration
Settings contributed under ic3Mac.*:
| Setting | Default | Description |
|---|---|---|
ic3Mac.dashboardLinkChecker.enabled |
true |
Enable dashboard link validation, hover info, autocomplete, and quick fixes. |
ic3Mac.autoUpdateLastModified |
false |
Automatically update .LastModified() timestamp and author on save. |
ic3Mac.author |
"" |
Author name for .LastModified() updates. Falls back to git config user.name. |
The Geneva source path itself is not a setting — see Activation.
Reporting issues
File a bug or feature request against the
ic3_monitoring repository.
Contributing
See CONTRIBUTING.md for build, debug, packaging, and publish instructions.