forgeqe-cli 2.2.7__tar.gz → 2.4.1__tar.gz

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,6 +1,6 @@
1
1
  ForgeQE Software Licence
2
2
 
3
- Copyright (c) 2026 Javed Khan. All rights reserved.
3
+ Copyright (c) 2026 Capgemini. All rights reserved.
4
4
 
5
5
  ForgeQE, its documentation, prompts, skills, and accompanying files (together, "the Software") are proprietary and confidential. The Software is licensed, not sold.
6
6
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgeqe-cli
3
- Version: 2.2.7
3
+ Version: 2.4.1
4
4
  Summary: pip launcher for the ForgeQE browser agent (npm package: @capagents/forgeqe)
5
5
  Author: CLI-Agents
6
6
  License: MIT
@@ -42,6 +42,8 @@ Everything else is downloaded on first use into `~/.forgeqe/tools` (`%USERPROFIL
42
42
 
43
43
  `forgeqe setup` does all of this up front; otherwise the first command that needs a piece fetches it. Upgrading is `forgeqe update`: it updates every `forgeqe` on PATH (bun, npm and pip installs) and waits while the registries catch up with a new release. A release that pins a newer Bun, agent runtime, uv or engine library downloads it on the next run and removes the old one. Deleting `~/.forgeqe` removes everything ForgeQE downloaded. Behind a proxy, set `HTTPS_PROXY`. The npm launcher's Bun download also needs `NODE_USE_ENV_PROXY=1` (Node 24+); on older Node, use the pip launcher or install Bun yourself.
44
44
 
45
+ **Coming from WebPilot** (`@capagents/webpilot`, ForgeQE's name before the rename): remove it first with `npm uninstall -g @capagents/webpilot`. npm refuses to install ForgeQE while the old package owns the `webpilot` command (`EEXIST ... npm\webpilot`). Your settings, sign-ins, `WEBPILOT_*` variables and `webpilot.yaml` files keep working. The npm package installs only the `forgeqe` command; the pip launcher still installs `webpilot` too. Install with `-g`, not with `npm install @capagents/forgeqe` inside a folder: `npx forgeqe` runs that folder copy, and `forgeqe update` does not change it (it prints how to replace it).
46
+
45
47
  From this repo:
46
48
 
47
49
  ```bash
@@ -73,7 +75,7 @@ npm trust github @capagents/forgeqe --file forgeqe-release.yml --repo javed0211/
73
75
 
74
76
  and on pypi.org, under `forgeqe-cli` → Publishing, add a GitHub trusted publisher: owner `javed0211`, repository
75
77
  `cli-agents`, workflow `forgeqe-release.yml`, no environment. A new npm trust that has not published within 2 days
76
- expires, so do it just before the first release.
78
+ expires, so do it just before the first release. Keep the workflow's file name: the registries trust it by name, and a renamed file cannot publish until each is told.
77
79
 
78
80
  ## Privacy
79
81
 
@@ -145,6 +147,14 @@ ForgeQE's agent needs the agent runtime (downloaded automatically, see Install)
145
147
 
146
148
  `forgeqe run` exits 0 when the job is done, 1 when it failed, 2 when it was stopped, and 3 when the agent needs more information.
147
149
 
150
+ **For programs.** `forgeqe chat --jsonl` gives a program that needs a live agent (a web UI, an IDE) what the shell has: one agent for the whole conversation, follow-ups, credentials remembered for the session, questions and **Your turn** waits, and stop. It reads one JSON object per line on stdin and writes the agent's and the tools' events, the same ones the shell draws, as JSON lines on stdout; nothing else is ever written there, and remembered secrets and keys are redacted. It takes the flags of `forgeqe run`, plus `--carry-over FILE` to continue an earlier conversation. The protocol is in [HOW_TO_USE.md](HOW_TO_USE.md#a-live-agent-for-programs-forgeqe-chat---jsonl).
151
+
152
+ ```text
153
+ → {"v":1,"seq":1,"type":"ready","protocol":1,"version":"2.3.11","cwd":"/work/app","writeTests":true,"profile":{"name":"copilot","provider":"github_copilot"},"t":"…"}
154
+ ← {"type":"message","id":"m1","text":"Run SHOP-12 on staging"}
155
+ → {"v":1,"seq":9,"type":"turn_done","id":"m1","outcome":"done","reply":"SHOP-12 passed on staging.","next":[],"usage":{"input":5200,"output":310},"t":"…"}
156
+ ```
157
+
148
158
  `forgeqe --help` lists every command, among them `forgeqe db`, `forgeqe data` and `forgeqe flows` (see [Databases, test data, and data flows](#databases-test-data-and-data-flows)) and `forgeqe generated`, which says how much of the code ForgeQE wrote and how much is still there (`--json` for a pipeline).
149
159
 
150
160
  ## Page memory
@@ -413,10 +423,10 @@ ForgeQE's agent connects to each system's MCP server, configured from the same `
413
423
 
414
424
  | System | MCP server | Needs |
415
425
  |--------|------------|-------|
416
- | Azure DevOps Services | Microsoft's [Azure DevOps MCP server](https://github.com/microsoft/azure-devops-mcp) (`npx @azure-devops/mcp`), with all its tools: work items, boards, test plans, pipelines, repos, wiki pages, search, and security alerts | Node.js, and `ADO_PAT` or `az login` |
426
+ | Azure DevOps Services | Microsoft's [Azure DevOps MCP server](https://github.com/microsoft/azure-devops-mcp) (`npx @azure-devops/mcp`), with all its tools, each turn getting the groups it needs: work items, boards, test plans, pipelines, repos, wiki pages, search, and security alerts | Node.js, and `ADO_PAT` or `az login` |
417
427
  | Jira Cloud, Server/Data Center | [mcp-atlassian](https://github.com/sooperset/mcp-atlassian) (`uvx`), with issues, JQL search, comments, and transitions. `mcp: rovo` uses [Atlassian's hosted server](https://github.com/atlassian/atlassian-mcp-server) instead (Cloud, and an admin must allow API tokens) | uv; `JIRA_EMAIL` and `JIRA_API_TOKEN` (Cloud) or a personal access token (Server/DC) |
418
428
  | Confluence | mcp-atlassian, shared with Jira (or its own when Jira isn't set up); Atlassian's hosted server covers it on the same site | `confluence: true` on a Jira Cloud site, or `confluence.url` + tokens |
419
- | GitHub | GitHub's [hosted MCP server](https://github.com/github/github-mcp-server) with the repos, issues, pull requests, and Actions toolsets (`sources.github.toolsets` changes them), on in a repository with a GitHub remote or when `sources.github` is set. GitHub issues are also a test case source (`github:#12`, `github:acme/shop#12,#13`, `github:label=login`, `github:q=login in:title`): results go back as issue comments, and `sources.bugs.system: github` files bugs as issues. GitHub has no API to upload a screenshot to an issue, so a bug names the run folder instead | `GITHUB_TOKEN`, or the GitHub CLI's sign-in (`forgeqe auth login github`) |
429
+ | GitHub | GitHub's [hosted MCP server](https://github.com/github/github-mcp-server) with every toolset, each turn getting the groups of tools it needs (`sources.github.toolsets` limits them), on in a repository with a GitHub remote or when `sources.github` is set. GitHub issues are also a test case source (`github:#12`, `github:acme/shop#12,#13`, `github:label=login`, `github:q=login in:title`): results go back as issue comments, and `sources.bugs.system: github` files bugs as issues. GitHub has no API to upload a screenshot to an issue, so a bug names the run folder instead | `GITHUB_TOKEN`, or the GitHub CLI's sign-in (`forgeqe auth login github`) |
420
430
  | Xray, TestRail, Zephyr Scale, qTest | none; ForgeQE's API | `XRAY_CLIENT_ID` / `XRAY_CLIENT_SECRET`, `TESTRAIL_EMAIL` / `TESTRAIL_API_KEY`, `ZEPHYR_API_TOKEN`, `QTEST_TOKEN` |
421
431
  | Anything else | servers you add under `mcp:` | |
422
432
 
@@ -438,6 +448,8 @@ Microsoft's Azure DevOps server can't create dashboards, so "create a dashboard
438
448
 
439
449
  Its wiki tools can only write into a wiki that already exists, so wiki pages go through ForgeQE's `write_ado_wiki_page`. If the project has no wiki yet, that tool creates the project wiki first, along with any missing parent pages. The PAT needs Wiki (read and write).
440
450
 
451
+ Pull requests are opened with ForgeQE's `create_ado_pull_request` ("create a PR from feature/cart to main in the shop repository"), since the `repositories` tool group is not loaded by default. It checks that both branches exist, and returns an active pull request between the same branches instead of opening a second one. The PAT needs Code (read and write).
452
+
441
453
  Requirements work too: "write and run test cases for the checkout rules page in Confluence" makes the agent read the page, write one case per rule or acceptance criterion (with the main negative paths), show them, and run them. It saves them into a test system only when you ask.
442
454
 
443
455
  The agent creates or changes items (a bug, a comment, a status change) only when you ask it to; bugs for failed cases come from `sources.bugs`, not from the agent.
@@ -27,6 +27,8 @@ Everything else is downloaded on first use into `~/.forgeqe/tools` (`%USERPROFIL
27
27
 
28
28
  `forgeqe setup` does all of this up front; otherwise the first command that needs a piece fetches it. Upgrading is `forgeqe update`: it updates every `forgeqe` on PATH (bun, npm and pip installs) and waits while the registries catch up with a new release. A release that pins a newer Bun, agent runtime, uv or engine library downloads it on the next run and removes the old one. Deleting `~/.forgeqe` removes everything ForgeQE downloaded. Behind a proxy, set `HTTPS_PROXY`. The npm launcher's Bun download also needs `NODE_USE_ENV_PROXY=1` (Node 24+); on older Node, use the pip launcher or install Bun yourself.
29
29
 
30
+ **Coming from WebPilot** (`@capagents/webpilot`, ForgeQE's name before the rename): remove it first with `npm uninstall -g @capagents/webpilot`. npm refuses to install ForgeQE while the old package owns the `webpilot` command (`EEXIST ... npm\webpilot`). Your settings, sign-ins, `WEBPILOT_*` variables and `webpilot.yaml` files keep working. The npm package installs only the `forgeqe` command; the pip launcher still installs `webpilot` too. Install with `-g`, not with `npm install @capagents/forgeqe` inside a folder: `npx forgeqe` runs that folder copy, and `forgeqe update` does not change it (it prints how to replace it).
31
+
30
32
  From this repo:
31
33
 
32
34
  ```bash
@@ -58,7 +60,7 @@ npm trust github @capagents/forgeqe --file forgeqe-release.yml --repo javed0211/
58
60
 
59
61
  and on pypi.org, under `forgeqe-cli` → Publishing, add a GitHub trusted publisher: owner `javed0211`, repository
60
62
  `cli-agents`, workflow `forgeqe-release.yml`, no environment. A new npm trust that has not published within 2 days
61
- expires, so do it just before the first release.
63
+ expires, so do it just before the first release. Keep the workflow's file name: the registries trust it by name, and a renamed file cannot publish until each is told.
62
64
 
63
65
  ## Privacy
64
66
 
@@ -130,6 +132,14 @@ ForgeQE's agent needs the agent runtime (downloaded automatically, see Install)
130
132
 
131
133
  `forgeqe run` exits 0 when the job is done, 1 when it failed, 2 when it was stopped, and 3 when the agent needs more information.
132
134
 
135
+ **For programs.** `forgeqe chat --jsonl` gives a program that needs a live agent (a web UI, an IDE) what the shell has: one agent for the whole conversation, follow-ups, credentials remembered for the session, questions and **Your turn** waits, and stop. It reads one JSON object per line on stdin and writes the agent's and the tools' events, the same ones the shell draws, as JSON lines on stdout; nothing else is ever written there, and remembered secrets and keys are redacted. It takes the flags of `forgeqe run`, plus `--carry-over FILE` to continue an earlier conversation. The protocol is in [HOW_TO_USE.md](HOW_TO_USE.md#a-live-agent-for-programs-forgeqe-chat---jsonl).
136
+
137
+ ```text
138
+ → {"v":1,"seq":1,"type":"ready","protocol":1,"version":"2.3.11","cwd":"/work/app","writeTests":true,"profile":{"name":"copilot","provider":"github_copilot"},"t":"…"}
139
+ ← {"type":"message","id":"m1","text":"Run SHOP-12 on staging"}
140
+ → {"v":1,"seq":9,"type":"turn_done","id":"m1","outcome":"done","reply":"SHOP-12 passed on staging.","next":[],"usage":{"input":5200,"output":310},"t":"…"}
141
+ ```
142
+
133
143
  `forgeqe --help` lists every command, among them `forgeqe db`, `forgeqe data` and `forgeqe flows` (see [Databases, test data, and data flows](#databases-test-data-and-data-flows)) and `forgeqe generated`, which says how much of the code ForgeQE wrote and how much is still there (`--json` for a pipeline).
134
144
 
135
145
  ## Page memory
@@ -398,10 +408,10 @@ ForgeQE's agent connects to each system's MCP server, configured from the same `
398
408
 
399
409
  | System | MCP server | Needs |
400
410
  |--------|------------|-------|
401
- | Azure DevOps Services | Microsoft's [Azure DevOps MCP server](https://github.com/microsoft/azure-devops-mcp) (`npx @azure-devops/mcp`), with all its tools: work items, boards, test plans, pipelines, repos, wiki pages, search, and security alerts | Node.js, and `ADO_PAT` or `az login` |
411
+ | Azure DevOps Services | Microsoft's [Azure DevOps MCP server](https://github.com/microsoft/azure-devops-mcp) (`npx @azure-devops/mcp`), with all its tools, each turn getting the groups it needs: work items, boards, test plans, pipelines, repos, wiki pages, search, and security alerts | Node.js, and `ADO_PAT` or `az login` |
402
412
  | Jira Cloud, Server/Data Center | [mcp-atlassian](https://github.com/sooperset/mcp-atlassian) (`uvx`), with issues, JQL search, comments, and transitions. `mcp: rovo` uses [Atlassian's hosted server](https://github.com/atlassian/atlassian-mcp-server) instead (Cloud, and an admin must allow API tokens) | uv; `JIRA_EMAIL` and `JIRA_API_TOKEN` (Cloud) or a personal access token (Server/DC) |
403
413
  | Confluence | mcp-atlassian, shared with Jira (or its own when Jira isn't set up); Atlassian's hosted server covers it on the same site | `confluence: true` on a Jira Cloud site, or `confluence.url` + tokens |
404
- | GitHub | GitHub's [hosted MCP server](https://github.com/github/github-mcp-server) with the repos, issues, pull requests, and Actions toolsets (`sources.github.toolsets` changes them), on in a repository with a GitHub remote or when `sources.github` is set. GitHub issues are also a test case source (`github:#12`, `github:acme/shop#12,#13`, `github:label=login`, `github:q=login in:title`): results go back as issue comments, and `sources.bugs.system: github` files bugs as issues. GitHub has no API to upload a screenshot to an issue, so a bug names the run folder instead | `GITHUB_TOKEN`, or the GitHub CLI's sign-in (`forgeqe auth login github`) |
414
+ | GitHub | GitHub's [hosted MCP server](https://github.com/github/github-mcp-server) with every toolset, each turn getting the groups of tools it needs (`sources.github.toolsets` limits them), on in a repository with a GitHub remote or when `sources.github` is set. GitHub issues are also a test case source (`github:#12`, `github:acme/shop#12,#13`, `github:label=login`, `github:q=login in:title`): results go back as issue comments, and `sources.bugs.system: github` files bugs as issues. GitHub has no API to upload a screenshot to an issue, so a bug names the run folder instead | `GITHUB_TOKEN`, or the GitHub CLI's sign-in (`forgeqe auth login github`) |
405
415
  | Xray, TestRail, Zephyr Scale, qTest | none; ForgeQE's API | `XRAY_CLIENT_ID` / `XRAY_CLIENT_SECRET`, `TESTRAIL_EMAIL` / `TESTRAIL_API_KEY`, `ZEPHYR_API_TOKEN`, `QTEST_TOKEN` |
406
416
  | Anything else | servers you add under `mcp:` | |
407
417
 
@@ -423,6 +433,8 @@ Microsoft's Azure DevOps server can't create dashboards, so "create a dashboard
423
433
 
424
434
  Its wiki tools can only write into a wiki that already exists, so wiki pages go through ForgeQE's `write_ado_wiki_page`. If the project has no wiki yet, that tool creates the project wiki first, along with any missing parent pages. The PAT needs Wiki (read and write).
425
435
 
436
+ Pull requests are opened with ForgeQE's `create_ado_pull_request` ("create a PR from feature/cart to main in the shop repository"), since the `repositories` tool group is not loaded by default. It checks that both branches exist, and returns an active pull request between the same branches instead of opening a second one. The PAT needs Code (read and write).
437
+
426
438
  Requirements work too: "write and run test cases for the checkout rules page in Confluence" makes the agent read the page, write one case per rule or acceptance criterion (with the main negative paths), show them, and run them. It saves them into a test system only when you ask.
427
439
 
428
440
  The agent creates or changes items (a bug, a comment, a status change) only when you ask it to; bugs for failed cases come from `sources.bugs`, not from the agent.
@@ -4,4 +4,4 @@ The agent itself is the npm package ``@capagents/forgeqe`` (OpenTUI + Bun).
4
4
  This distribution only puts a ``forgeqe`` command on PATH.
5
5
  """
6
6
 
7
- __version__ = "2.2.7"
7
+ __version__ = "2.4.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgeqe-cli
3
- Version: 2.2.7
3
+ Version: 2.4.1
4
4
  Summary: pip launcher for the ForgeQE browser agent (npm package: @capagents/forgeqe)
5
5
  Author: CLI-Agents
6
6
  License: MIT
@@ -42,6 +42,8 @@ Everything else is downloaded on first use into `~/.forgeqe/tools` (`%USERPROFIL
42
42
 
43
43
  `forgeqe setup` does all of this up front; otherwise the first command that needs a piece fetches it. Upgrading is `forgeqe update`: it updates every `forgeqe` on PATH (bun, npm and pip installs) and waits while the registries catch up with a new release. A release that pins a newer Bun, agent runtime, uv or engine library downloads it on the next run and removes the old one. Deleting `~/.forgeqe` removes everything ForgeQE downloaded. Behind a proxy, set `HTTPS_PROXY`. The npm launcher's Bun download also needs `NODE_USE_ENV_PROXY=1` (Node 24+); on older Node, use the pip launcher or install Bun yourself.
44
44
 
45
+ **Coming from WebPilot** (`@capagents/webpilot`, ForgeQE's name before the rename): remove it first with `npm uninstall -g @capagents/webpilot`. npm refuses to install ForgeQE while the old package owns the `webpilot` command (`EEXIST ... npm\webpilot`). Your settings, sign-ins, `WEBPILOT_*` variables and `webpilot.yaml` files keep working. The npm package installs only the `forgeqe` command; the pip launcher still installs `webpilot` too. Install with `-g`, not with `npm install @capagents/forgeqe` inside a folder: `npx forgeqe` runs that folder copy, and `forgeqe update` does not change it (it prints how to replace it).
46
+
45
47
  From this repo:
46
48
 
47
49
  ```bash
@@ -73,7 +75,7 @@ npm trust github @capagents/forgeqe --file forgeqe-release.yml --repo javed0211/
73
75
 
74
76
  and on pypi.org, under `forgeqe-cli` → Publishing, add a GitHub trusted publisher: owner `javed0211`, repository
75
77
  `cli-agents`, workflow `forgeqe-release.yml`, no environment. A new npm trust that has not published within 2 days
76
- expires, so do it just before the first release.
78
+ expires, so do it just before the first release. Keep the workflow's file name: the registries trust it by name, and a renamed file cannot publish until each is told.
77
79
 
78
80
  ## Privacy
79
81
 
@@ -145,6 +147,14 @@ ForgeQE's agent needs the agent runtime (downloaded automatically, see Install)
145
147
 
146
148
  `forgeqe run` exits 0 when the job is done, 1 when it failed, 2 when it was stopped, and 3 when the agent needs more information.
147
149
 
150
+ **For programs.** `forgeqe chat --jsonl` gives a program that needs a live agent (a web UI, an IDE) what the shell has: one agent for the whole conversation, follow-ups, credentials remembered for the session, questions and **Your turn** waits, and stop. It reads one JSON object per line on stdin and writes the agent's and the tools' events, the same ones the shell draws, as JSON lines on stdout; nothing else is ever written there, and remembered secrets and keys are redacted. It takes the flags of `forgeqe run`, plus `--carry-over FILE` to continue an earlier conversation. The protocol is in [HOW_TO_USE.md](HOW_TO_USE.md#a-live-agent-for-programs-forgeqe-chat---jsonl).
151
+
152
+ ```text
153
+ → {"v":1,"seq":1,"type":"ready","protocol":1,"version":"2.3.11","cwd":"/work/app","writeTests":true,"profile":{"name":"copilot","provider":"github_copilot"},"t":"…"}
154
+ ← {"type":"message","id":"m1","text":"Run SHOP-12 on staging"}
155
+ → {"v":1,"seq":9,"type":"turn_done","id":"m1","outcome":"done","reply":"SHOP-12 passed on staging.","next":[],"usage":{"input":5200,"output":310},"t":"…"}
156
+ ```
157
+
148
158
  `forgeqe --help` lists every command, among them `forgeqe db`, `forgeqe data` and `forgeqe flows` (see [Databases, test data, and data flows](#databases-test-data-and-data-flows)) and `forgeqe generated`, which says how much of the code ForgeQE wrote and how much is still there (`--json` for a pipeline).
149
159
 
150
160
  ## Page memory
@@ -413,10 +423,10 @@ ForgeQE's agent connects to each system's MCP server, configured from the same `
413
423
 
414
424
  | System | MCP server | Needs |
415
425
  |--------|------------|-------|
416
- | Azure DevOps Services | Microsoft's [Azure DevOps MCP server](https://github.com/microsoft/azure-devops-mcp) (`npx @azure-devops/mcp`), with all its tools: work items, boards, test plans, pipelines, repos, wiki pages, search, and security alerts | Node.js, and `ADO_PAT` or `az login` |
426
+ | Azure DevOps Services | Microsoft's [Azure DevOps MCP server](https://github.com/microsoft/azure-devops-mcp) (`npx @azure-devops/mcp`), with all its tools, each turn getting the groups it needs: work items, boards, test plans, pipelines, repos, wiki pages, search, and security alerts | Node.js, and `ADO_PAT` or `az login` |
417
427
  | Jira Cloud, Server/Data Center | [mcp-atlassian](https://github.com/sooperset/mcp-atlassian) (`uvx`), with issues, JQL search, comments, and transitions. `mcp: rovo` uses [Atlassian's hosted server](https://github.com/atlassian/atlassian-mcp-server) instead (Cloud, and an admin must allow API tokens) | uv; `JIRA_EMAIL` and `JIRA_API_TOKEN` (Cloud) or a personal access token (Server/DC) |
418
428
  | Confluence | mcp-atlassian, shared with Jira (or its own when Jira isn't set up); Atlassian's hosted server covers it on the same site | `confluence: true` on a Jira Cloud site, or `confluence.url` + tokens |
419
- | GitHub | GitHub's [hosted MCP server](https://github.com/github/github-mcp-server) with the repos, issues, pull requests, and Actions toolsets (`sources.github.toolsets` changes them), on in a repository with a GitHub remote or when `sources.github` is set. GitHub issues are also a test case source (`github:#12`, `github:acme/shop#12,#13`, `github:label=login`, `github:q=login in:title`): results go back as issue comments, and `sources.bugs.system: github` files bugs as issues. GitHub has no API to upload a screenshot to an issue, so a bug names the run folder instead | `GITHUB_TOKEN`, or the GitHub CLI's sign-in (`forgeqe auth login github`) |
429
+ | GitHub | GitHub's [hosted MCP server](https://github.com/github/github-mcp-server) with every toolset, each turn getting the groups of tools it needs (`sources.github.toolsets` limits them), on in a repository with a GitHub remote or when `sources.github` is set. GitHub issues are also a test case source (`github:#12`, `github:acme/shop#12,#13`, `github:label=login`, `github:q=login in:title`): results go back as issue comments, and `sources.bugs.system: github` files bugs as issues. GitHub has no API to upload a screenshot to an issue, so a bug names the run folder instead | `GITHUB_TOKEN`, or the GitHub CLI's sign-in (`forgeqe auth login github`) |
420
430
  | Xray, TestRail, Zephyr Scale, qTest | none; ForgeQE's API | `XRAY_CLIENT_ID` / `XRAY_CLIENT_SECRET`, `TESTRAIL_EMAIL` / `TESTRAIL_API_KEY`, `ZEPHYR_API_TOKEN`, `QTEST_TOKEN` |
421
431
  | Anything else | servers you add under `mcp:` | |
422
432
 
@@ -438,6 +448,8 @@ Microsoft's Azure DevOps server can't create dashboards, so "create a dashboard
438
448
 
439
449
  Its wiki tools can only write into a wiki that already exists, so wiki pages go through ForgeQE's `write_ado_wiki_page`. If the project has no wiki yet, that tool creates the project wiki first, along with any missing parent pages. The PAT needs Wiki (read and write).
440
450
 
451
+ Pull requests are opened with ForgeQE's `create_ado_pull_request` ("create a PR from feature/cart to main in the shop repository"), since the `repositories` tool group is not loaded by default. It checks that both branches exist, and returns an active pull request between the same branches instead of opening a second one. The PAT needs Code (read and write).
452
+
441
453
  Requirements work too: "write and run test cases for the checkout rules page in Confluence" makes the agent read the page, write one case per rule or acceptance criterion (with the main negative paths), show them, and run them. It saves them into a test system only when you ask.
442
454
 
443
455
  The agent creates or changes items (a bug, a comment, a status change) only when you ask it to; bugs for failed cases come from `sources.bugs`, not from the agent.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "forgeqe-cli"
7
- version = "2.2.7"
7
+ version = "2.4.1"
8
8
  description = "pip launcher for the ForgeQE browser agent (npm package: @capagents/forgeqe)"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
File without changes