Skip to content

Add GitHub Copilot tools for Azure Quantum #2349

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 32 commits into from
Apr 30, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
dc05914
add copilot instructions command
minestarks Apr 28, 2025
0f645a9
Improve ui
minestarks Apr 28, 2025
1fa93a3
refactor some
minestarks Apr 28, 2025
608c7af
add to create q# project flow
minestarks Apr 29, 2025
ecede51
tweaks
minestarks Apr 29, 2025
a58fa98
test tweaks
minestarks Apr 29, 2025
2babdbe
revert integration test changes for now
minestarks Apr 29, 2025
dea1875
Merge branch 'main' of https://github.com/microsoft/qsharp into mines…
minestarks Apr 29, 2025
944d04d
fix indentation
minestarks Apr 29, 2025
2288f8c
exists check
minestarks Apr 29, 2025
5a1833d
flip logic
minestarks Apr 29, 2025
ee0af50
pr cleanup
minestarks Apr 29, 2025
b521498
get workspace root from currently active Q# file
minestarks Apr 29, 2025
4e67fc6
simplify single workspace case
minestarks Apr 29, 2025
0fb547f
some basic tools
minestarks Apr 11, 2025
4805786
add all the azq tools
minestarks Apr 11, 2025
a30d032
submit confirmation
minestarks Apr 12, 2025
2100bd6
Simple latex rendering copilot tool
billti Apr 16, 2025
d709d83
clean up
minestarks Apr 29, 2025
c7b2816
remove renderLatex
minestarks Apr 29, 2025
a35ef3d
revert webview changes
minestarks Apr 29, 2025
203fdc6
Merge branch 'main' of https://github.com/microsoft/qsharp into mines…
minestarks Apr 29, 2025
29b9c7a
Merge branch 'minestarks/gh-copilot-instructions' of https://github.c…
minestarks Apr 29, 2025
2af5723
update coding instructions
minestarks Apr 29, 2025
c96a71b
update instructions
minestarks Apr 29, 2025
edbf113
don't break existing code
minestarks Apr 29, 2025
082e68c
Merge branch 'main' into minestarks/gh-copilot-tools
billti Apr 30, 2025
b38f1b3
Instruction tweaks
billti Apr 30, 2025
3c0c9c0
Open the histogram panel after downloading results
billti Apr 30, 2025
1298425
Update vscode/src/gh-copilot/instructions.ts
minestarks Apr 30, 2025
c04ec0c
cleanup
minestarks Apr 30, 2025
e54cd0e
Merge branch 'minestarks/gh-copilot-tools' of https://github.com/micr…
minestarks Apr 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
"@types/markdown-it": "^14.1.1",
"@types/mocha": "^10.0.2",
"@types/node": "^20.17",
"@types/vscode": "^1.83.0",
"@types/vscode-webview": "^1.57.3",
"@types/vscode": "^1.99.1",
"@types/vscode-webview": "^1.57.5",
"@vscode/codicons": "^0.0.36",
"@vscode/debugadapter": "^1.63.0",
"@vscode/debugprotocol": "^1.63.0",
Expand Down
237 changes: 237 additions & 0 deletions vscode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -570,6 +570,243 @@
],
"priority": "default"
}
],
"languageModelTools": [
{
"name": "azure-quantum-get-jobs",
"tags": [
"azure-quantum",
"qsharp",
"qdk"
],
"toolReferenceName": "azureQuantumGetJobs",
"displayName": "Get Azure Quantum Jobs",
"modelDescription": "Get a list of recent jobs that have been run by the customer, along with their statuses, in the currently active workspace. Call this when you need to know what jobs have been run recently or need a history of jobs run, for example when a customer asks 'What are my recent jobs?'",
"canBeReferencedInPrompt": true,
"icon": "./resources/file-icon-light.svg",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
},
{
"name": "azure-quantum-get-job",
"tags": [
"azure-quantum",
"qsharp",
"qdk"
],
"toolReferenceName": "azureQuantumGetJob",
"displayName": "Get Azure Quantum Job Details",
"modelDescription": "Get the job information for a customer's job given its id. Call this whenever you need to know information about a specific job, for example when a customer asks 'What is the status of my job?'",
"canBeReferencedInPrompt": true,
"icon": "./resources/file-icon-light.svg",
"inputSchema": {
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "Job's unique identifier."
}
},
"required": [
"job_id"
],
"additionalProperties": false
}
},
{
"name": "azure-quantum-connect-to-workspace",
"tags": [
"azure-quantum",
"qsharp",
"qdk"
],
"toolReferenceName": "azureQuantumConnectToWorkspace",
"displayName": "Connect to Azure Quantum Workspace",
"modelDescription": "Starts the UI flow to connect to an existing Azure Quantum Workspace. Call this when the customer does not have an active workspace, and agrees to connect to a workspace.",
"canBeReferencedInPrompt": true,
"icon": "./resources/file-icon-light.svg",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
},
{
"name": "azure-quantum-download-job-results",
"tags": [
"azure-quantum",
"qsharp",
"qdk"
],
"toolReferenceName": "azureQuantumDownloadJobResults",
"displayName": "Download Azure Quantum Job Results",
"modelDescription": "Download and display the results from a customer's job given its id. Call this when you need to download or display as a histogram the results for a job, for example when a customer asks 'What are the results of my last job?' or 'Can you show me the histogram for this job?'",
"canBeReferencedInPrompt": true,
"icon": "./resources/file-icon-light.svg",
"inputSchema": {
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "Job's unique identifier."
}
},
"required": [
"job_id"
],
"additionalProperties": false
}
},
{
"name": "azure-quantum-get-workspaces",
"tags": [
"azure-quantum",
"qsharp",
"qdk"
],
"toolReferenceName": "azureQuantumGetWorkspaces",
"displayName": "Get Azure Quantum Workspaces",
"modelDescription": "Get a list of workspaces the customer has access to, in the form of workspace ids. Call this when you need to know what workspaces the customer has access to, for example when a customer asks 'What are my workspaces?'",
"canBeReferencedInPrompt": true,
"icon": "./resources/file-icon-light.svg",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
},
{
"name": "azure-quantum-submit-to-target",
"tags": [
"azure-quantum",
"qsharp",
"qdk"
],
"toolReferenceName": "azureQuantumSubmitToTarget",
"displayName": "Submit to Azure Quantum Target",
"modelDescription": "Submit the current Q# program to Azure Quantum with the provided information. Call this when you need to submit or run a Q# program with Azure Quantum, for example when a customer asks 'Can you submit this program to Azure?'",
"canBeReferencedInPrompt": true,
"icon": "./resources/file-icon-light.svg",
"inputSchema": {
"type": "object",
"properties": {
"job_name": {
"type": "string",
"description": "The string to name the created job."
},
"target_id": {
"type": "string",
"description": "The ID or name of the target to submit the job to."
},
"number_of_shots": {
"type": "number",
"description": "The number of shots to use for the job."
}
},
"required": [
"job_name",
"target_id",
"number_of_shots"
],
"additionalProperties": false
}
},
{
"name": "azure-quantum-get-active-workspace",
"tags": [
"azure-quantum",
"qsharp",
"qdk"
],
"toolReferenceName": "azureQuantumGetActiveWorkspace",
"displayName": "Get Active Azure Quantum Workspace",
"modelDescription": "Get the id of the active workspace for this conversation. Call this when you need to know what workspace is the active workspace being used in the context of the current conversation, for example when a customer asks 'What is the workspace that's being used?'",
"canBeReferencedInPrompt": true,
"icon": "./resources/file-icon-light.svg",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
},
{
"name": "azure-quantum-set-active-workspace",
"tags": [
"azure-quantum",
"qsharp",
"qdk"
],
"toolReferenceName": "azureQuantumSetActiveWorkspace",
"displayName": "Set Active Azure Quantum Workspace",
"modelDescription": "Set the active workspace for this conversation by id. Call this when you need to set what workspace is the active workspace being used in the context of the current conversation, for example when a customer says 'Please use this workspace for my requests.'",
"canBeReferencedInPrompt": true,
"icon": "./resources/file-icon-light.svg",
"inputSchema": {
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"description": "The id of the workspace to set as active."
}
},
"required": [
"workspace_id"
],
"additionalProperties": false
}
},
{
"name": "azure-quantum-get-providers",
"tags": [
"azure-quantum",
"qsharp",
"qdk"
],
"toolReferenceName": "azureQuantumGetProviders",
"displayName": "Get Azure Quantum Providers",
"modelDescription": "Get a list of hardware providers available to the customer, along with their provided targets. Call this when you need to know what providers or targets are available, for example when a customer asks 'What are the available providers?' or 'What targets do I have available?'",
"canBeReferencedInPrompt": true,
"icon": "./resources/file-icon-light.svg",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
},
{
"name": "azure-quantum-get-target",
"tags": [
"azure-quantum",
"qsharp",
"qdk"
],
"toolReferenceName": "azureQuantumGetTarget",
"displayName": "Get Azure Quantum Target",
"modelDescription": "Get the target information for a specified target given its id. Call this whenever you need to know information about a specific target, for example when a customer asks 'What is the status of this target?'",
"canBeReferencedInPrompt": true,
"icon": "./resources/file-icon-light.svg",
"inputSchema": {
"type": "object",
"properties": {
"target_id": {
"type": "string",
"description": "The ID of the target to get."
}
},
"required": [
"target_id"
],
"additionalProperties": false
}
}
]
},
"scripts": {
Expand Down
Loading