@mcp-consultant-tools/azure-devops 30.0.0-beta.6 → 30.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualize-tools.d.ts","sourceRoot":"","sources":["../../src/tools/visualize-tools.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"visualize-tools.d.ts","sourceRoot":"","sources":["../../src/tools/visualize-tools.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAyJ7E"}
|
|
@@ -14,9 +14,12 @@ import { sanitizeGenUiHtml } from '../genui/sanitize-html.js';
|
|
|
14
14
|
export function registerVisualizeTools(server, ctx) {
|
|
15
15
|
const workItemsResourceUri = "ui://ado/work-items";
|
|
16
16
|
// Tool 1: Fetch data and instruct host LLM to generate HTML
|
|
17
|
-
server.tool("visualize-data", "Fetch work item data and prepare it for
|
|
18
|
-
"
|
|
19
|
-
"
|
|
17
|
+
server.tool("visualize-data", "Fetch work item data and prepare it for a rich visual dashboard. ONLY use this tool when the user explicitly asks for a " +
|
|
18
|
+
"visual, chart, dashboard, or graphic representation of their data (e.g. 'visualize', 'show me a chart', 'create a dashboard'). " +
|
|
19
|
+
"Do NOT use for regular queries — use query-work-items or run-saved-query instead, which are faster. " +
|
|
20
|
+
"Accepts either a WIQL query or a saved query ID (GUID). " +
|
|
21
|
+
"After receiving the response, generate a complete HTML snippet following the design system rules, " +
|
|
22
|
+
"then call render-visualization with the HTML.", {
|
|
20
23
|
project: z.string().describe("The ADO project name"),
|
|
21
24
|
wiql: z.string().optional().describe("WIQL query to fetch work items. Provide either wiql OR queryId, not both. " +
|
|
22
25
|
"Example: SELECT [System.Id], [System.Title], [System.State], " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualize-tools.js","sourceRoot":"","sources":["../../src/tools/visualize-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,MAAM,UAAU,sBAAsB,CAAC,MAAW,EAAE,GAAmB;IACrE,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;IAEnD,4DAA4D;IAC5D,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"visualize-tools.js","sourceRoot":"","sources":["../../src/tools/visualize-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -226,7 +226,7 @@ container holding the app. Specify either width or maxWidth, and either height o
|
|
|
226
226
|
</table>
|
|
227
227
|
</div>
|
|
228
228
|
</div>
|
|
229
|
-
`,e.querySelectorAll(".wi-row").forEach(l=>{l.addEventListener("click",()=>{const d=Number(l.getAttribute("data-id")),m=l.getAttribute("data-project")||n;d&&r(m,d)})});let s="",u=!0;e.querySelectorAll(".wi-table th").forEach(l=>{l.addEventListener("click",()=>{const d=l.dataset.col;s===d?u=!u:(s=d,u=!0);const m=Ew([...t],d,u);sa(e,m,n,r)})})}function Ew(e,t,n){const i={id:"System.Id",type:"System.WorkItemType",title:"System.Title",state:"System.State",assignedTo:"System.AssignedTo",points:"Microsoft.VSTS.Scheduling.StoryPoints",priority:"Microsoft.VSTS.Common.Priority"}[t];return i?e.sort((o,a)=>{let s,u;if(t==="id")s=o?.id??0,u=a?.id??0;else{if(s=o?.fields?.[i],s==null){const l=An[i];s=l?o?.[l]??"":""}if(u=a?.fields?.[i],u==null){const l=An[i];u=l?a?.[l]??"":""}typeof s=="object"&&s.displayName&&(s=s.displayName),typeof u=="object"&&u.displayName&&(u=u.displayName)}return typeof s=="number"&&typeof u=="number"?n?s-u:u-s:n?String(s).localeCompare(String(u)):String(u).localeCompare(String(s))}):e}function Ga(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}function Dw(e,t){if(navigator.clipboard?.writeText){navigator.clipboard.writeText(e).then(()=>ni(t),()=>Ka(e,t));return}Ka(e,t)}function Ka(e,t){const n=document.createElement("textarea");n.value=e,n.style.cssText="position:fixed;left:-9999px;top:-9999px;opacity:0",document.body.appendChild(n),n.focus(),n.select();try{document.execCommand("copy")?ni(t):Xa(e,t)}catch{Xa(e)}finally{document.body.removeChild(n)}}function Xa(e,t){window.prompt("Copy this (Ctrl+C / Cmd+C):",e)}function ni(e){if(!e)return;e.dataset.origText||(e.dataset.origText=e.textContent||"");const t=e.style.background;e.textContent="Copied!",e.style.background="#009900",setTimeout(()=>{e.textContent=e.dataset.origText||"Copy",e.style.background=t},1500)}const Rw="https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js";function Cw(){const e=window;return e.html2canvas?Promise.resolve(e.html2canvas):new Promise((t,n)=>{if(document.querySelector('script[src*="html2canvas"]')){const o=()=>{e.html2canvas?t(e.html2canvas):setTimeout(o,50)};o();return}const i=document.createElement("script");i.src=Rw,i.onload=()=>{const o=()=>{e.html2canvas?t(e.html2canvas):setTimeout(o,50)};o()},i.onerror=()=>n(new Error("Failed to load html2canvas")),document.head.appendChild(i)})}function Rf(e){const t=document.getElementById("genui-root");if(!t)return;const n=e||document.getElementById("imgBtn")||void 0;n&&(n.dataset.origText||(n.dataset.origText=n.textContent||""),n.textContent="Capturing...");const r=getComputedStyle(document.documentElement).getPropertyValue("--bg").trim()||"#1E1E1E";Cw().then(
|
|
229
|
+
`,e.querySelectorAll(".wi-row").forEach(l=>{l.addEventListener("click",()=>{const d=Number(l.getAttribute("data-id")),m=l.getAttribute("data-project")||n;d&&r(m,d)})});let s="",u=!0;e.querySelectorAll(".wi-table th").forEach(l=>{l.addEventListener("click",()=>{const d=l.dataset.col;s===d?u=!u:(s=d,u=!0);const m=Ew([...t],d,u);sa(e,m,n,r)})})}function Ew(e,t,n){const i={id:"System.Id",type:"System.WorkItemType",title:"System.Title",state:"System.State",assignedTo:"System.AssignedTo",points:"Microsoft.VSTS.Scheduling.StoryPoints",priority:"Microsoft.VSTS.Common.Priority"}[t];return i?e.sort((o,a)=>{let s,u;if(t==="id")s=o?.id??0,u=a?.id??0;else{if(s=o?.fields?.[i],s==null){const l=An[i];s=l?o?.[l]??"":""}if(u=a?.fields?.[i],u==null){const l=An[i];u=l?a?.[l]??"":""}typeof s=="object"&&s.displayName&&(s=s.displayName),typeof u=="object"&&u.displayName&&(u=u.displayName)}return typeof s=="number"&&typeof u=="number"?n?s-u:u-s:n?String(s).localeCompare(String(u)):String(u).localeCompare(String(s))}):e}function Ga(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}function Dw(e,t){if(navigator.clipboard?.writeText){navigator.clipboard.writeText(e).then(()=>ni(t),()=>Ka(e,t));return}Ka(e,t)}function Ka(e,t){const n=document.createElement("textarea");n.value=e,n.style.cssText="position:fixed;left:-9999px;top:-9999px;opacity:0",document.body.appendChild(n),n.focus(),n.select();try{document.execCommand("copy")?ni(t):Xa(e,t)}catch{Xa(e)}finally{document.body.removeChild(n)}}function Xa(e,t){window.prompt("Copy this (Ctrl+C / Cmd+C):",e)}function ni(e){if(!e)return;e.dataset.origText||(e.dataset.origText=e.textContent||"");const t=e.style.background;e.textContent="Copied!",e.style.background="#009900",setTimeout(()=>{e.textContent=e.dataset.origText||"Copy",e.style.background=t},1500)}const Rw="https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js";function Cw(){const e=window;return e.html2canvas?Promise.resolve(e.html2canvas):new Promise((t,n)=>{if(document.querySelector('script[src*="html2canvas"]')){const o=()=>{e.html2canvas?t(e.html2canvas):setTimeout(o,50)};o();return}const i=document.createElement("script");i.src=Rw,i.onload=()=>{const o=()=>{e.html2canvas?t(e.html2canvas):setTimeout(o,50)};o()},i.onerror=()=>n(new Error("Failed to load html2canvas")),document.head.appendChild(i)})}function Rf(e){const t=document.getElementById("genui-root");if(!t)return;const n=e||document.getElementById("imgBtn")||void 0;n&&(n.dataset.origText||(n.dataset.origText=n.textContent||""),n.textContent="Capturing...");const r=getComputedStyle(document.documentElement).getPropertyValue("--bg").trim()||"#1E1E1E",i=t.querySelectorAll("button");i.forEach(o=>{o.dataset.preCapture=o.style.display,o.style.display="none"}),Cw().then(o=>o(t,{backgroundColor:r,scale:2})).then(o=>{i.forEach(a=>{a.style.display=a.dataset.preCapture||"",delete a.dataset.preCapture}),navigator.clipboard&&typeof ClipboardItem<"u"?o.toBlob(a=>{if(!a){Tn(o,n);return}navigator.clipboard.write([new ClipboardItem({"image/png":a})]).then(()=>ni(n??void 0),()=>Tn(o,n??void 0))},"image/png"):Tn(o,n)}).catch(()=>{n&&(n.textContent=n.dataset.origText||"Copy as Image",n.style.background="#CC0000",setTimeout(()=>{n.style.background=""},2e3))})}function Tn(e,t){const n=e.toDataURL("image/png"),r=document.createElement("div");r.style.cssText="position:fixed;left:0;top:0;opacity:0;pointer-events:none";const i=document.createElement("img");i.src=n,r.appendChild(i),document.body.appendChild(r),i.onload=()=>{try{const o=document.createRange();o.selectNode(i);const a=window.getSelection();if(a){a.removeAllRanges(),a.addRange(o);const s=document.execCommand("copy");if(a.removeAllRanges(),s){ni(t??void 0),document.body.removeChild(r);return}}}catch{}document.body.removeChild(r),Aw(n,t)}}function Aw(e,t){t&&(t.textContent=t.dataset.origText||"Copy as Image");const n=document.getElementById("genui-root");if(!n)return;const r=document.getElementById("genui-fallback-img");r&&r.remove();const i=document.createElement("div");i.id="genui-fallback-img",i.style.cssText="margin-top:16px;padding:12px;border:2px dashed var(--border);border-radius:8px;background:var(--surface)";const o=document.createElement("div");o.style.cssText="font-size:13px;color:var(--text-secondary);margin-bottom:8px;font-weight:600",o.textContent="Image captured — drag to desktop or right-click → Save Image As:";const a=document.createElement("img");a.src=e,a.style.cssText="max-width:100%;border-radius:4px;cursor:grab",a.draggable=!0,i.appendChild(o),i.appendChild(a),n.appendChild(i)}window.copyText=Dw;window.showCopied=ni;window.captureAsImage=Rf;window.copyImage=Rf;function Lw(e,t){e.innerHTML=t,e.querySelectorAll("script").forEach(n=>{const r=document.createElement("script");for(const i of n.attributes)r.setAttribute(i.name,i.value);n.src?r.src=n.src:r.textContent=n.textContent,n.replaceWith(r)})}const Ze=document.getElementById("app"),ct=new Tw({name:"ADO Work Items",version:"1.0.0"});let gt=null;ct.ontoolinput=e=>{};ct.ontoolresult=e=>{const t=e.structuredContent;if(!t){const n=e.content?.find(r=>r.type==="text")?.text;Ze.innerHTML=`<pre style="white-space:pre-wrap">${n??"No data"}</pre>`;return}t.type==="work-item-detail"?Ef(Ze,t.item,gt?Af:void 0):t.type==="work-item-list"?(gt=t,sa(Ze,t.items,t.project,Cf)):t.type==="genui"&&Lw(Ze,t.html)};ct.onhostcontextchanged=e=>{Uw(e)};ct.onteardown=async()=>({});async function Cf(e,t){Ze.innerHTML='<div class="loading">Loading work item...</div>';try{const n=await ct.callServerTool({name:"get-work-item",arguments:{project:e,workItemId:t}}),r=n.structuredContent;if(r?.type==="work-item-detail")Ef(Ze,r.item,Af);else{const i=n.content?.find(o=>o.type==="text")?.text;Ze.innerHTML=`<pre style="white-space:pre-wrap">${i??"No data"}</pre>`}}catch(n){Ze.innerHTML=`<div class="error">Failed to load work item: ${n.message}</div>`}}function Af(){gt&&sa(Ze,gt.items,gt.project,Cf)}await ct.connect(new Vs);</script>
|
|
230
230
|
</head>
|
|
231
231
|
<body>
|
|
232
232
|
<div id="app">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-consultant-tools/azure-devops",
|
|
3
|
-
"version": "30.0.0-beta.
|
|
3
|
+
"version": "30.0.0-beta.7",
|
|
4
4
|
"description": "MCP server for Azure DevOps integration - wikis, work items, pull requests, and variable group read access",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/index.js",
|