@capagents/forgeqe 2.2.5 → 2.2.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.
package/HOW_TO_USE.md CHANGED
@@ -170,7 +170,7 @@ forgeqe start # the shell
170
170
  With GitHub Copilot licences instead of a model key, sign in rather than exporting one, and set `llm.active: copilot` in `forgeqe.yaml` (or `"default": "copilot"` in `llms.json`). The browser engine then runs on your Copilot seat; ForgeQE's agent and Scribe need another profile for now:
171
171
 
172
172
  ```bash
173
- forgeqe auth login copilot # a fine-grained token with Copilot Requests, or the GitHub CLI's sign-in
173
+ forgeqe auth login copilot # opens GitHub in your browser to sign in
174
174
  forgeqe models # the copilot profile is active
175
175
  ```
176
176
 
@@ -320,22 +320,24 @@ With GitHub Copilot licences (Pro, Pro+, Business or Enterprise), a `github_copi
320
320
  |---|---|
321
321
  | `model` | The Copilot model, as the Copilot SDK names it (`gpt-4.1`, `claude-sonnet-4.6`). It must take screenshots. The sign-in lists your seat's models and which of them take images. |
322
322
  | `engine_model` | Optional. Another Copilot model for the browser engine and the desktop agent. |
323
- | `api_key_env` | Optional. The variable holding the GitHub token; without it ForgeQE reads `COPILOT_GITHUB_TOKEN`, then the token `forgeqe auth login copilot` saved, then the GitHub CLI's sign-in. |
323
+ | `api_key_env` | Optional. A variable that must hold the GitHub token for this profile. Without it ForgeQE uses `COPILOT_GITHUB_TOKEN`, then a token `forgeqe auth login copilot` saved, then the browser sign-in. |
324
324
 
325
- Sign in once per machine:
325
+ Sign in once per machine (Windows, macOS or Linux):
326
326
 
327
327
  ```bash
328
328
  forgeqe auth login copilot
329
329
  ```
330
330
 
331
- It offers two ways:
331
+ It offers two ways, the ones GitHub's Copilot SDK recommends:
332
332
 
333
- - **A fine-grained token** (recommended). ForgeQE opens GitHub's token page: set **Resource owner** to your personal account and add the **Copilot Requests** permission, then paste the token (`github_pat_...`). The token goes to your system's credential store like ForgeQE's other secrets. Classic tokens (`ghp_`) do not work with Copilot.
334
- - **The GitHub CLI's sign-in**, when `gh` is signed in.
333
+ - **Sign in with GitHub in the browser** (recommended on your own computer). ForgeQE runs GitHub's own Copilot sign-in (`copilot login` from GitHub's Copilot CLI, downloaded once into `~/.forgeqe/tools` and checked against GitHub's checksums). Your browser opens GitHub; approve **GitHub Copilot CLI** there and you are signed in. GitHub's CLI keeps the sign-in in your system's credential store (Windows Credential Manager, the macOS Keychain); ForgeQE never sees a token. On a remote machine it shows a code to enter at github.com/login/device instead.
334
+ - **A fine-grained token**, for machines without a browser. ForgeQE opens GitHub's token page: set **Resource owner** to your personal account and add the **Copilot Requests** permission, then paste the token (`github_pat_...`). Each character shows as `*`, and ForgeQE confirms what it got (`github_pat_11AB…Wz9Q (93 characters)`). The token goes to your system's credential store like ForgeQE's other secrets. Classic tokens (`ghp_`) do not work with Copilot.
335
335
 
336
- Either way ForgeQE checks the token by asking Copilot for your seat's models and lists them; the first time, the Copilot SDK downloads Copilot's runtime from GitHub (checked against GitHub's checksums). `forgeqe auth` shows the sign-in on its `Copilot` line; `forgeqe auth logout copilot` forgets a saved token.
336
+ Either way ForgeQE checks the sign-in by asking Copilot for your seat's models and lists them; the first time, the Copilot SDK downloads Copilot's runtime from GitHub (checked against GitHub's checksums). `forgeqe auth` shows the sign-in on its `Copilot` line; `forgeqe auth logout copilot` makes ForgeQE stop using it (GitHub keeps a browser sign-in until you revoke **GitHub Copilot CLI** at github.com/settings/applications).
337
337
 
338
- The token reaches only the gateway's process. The engine gets the gateway's address and a one-time key that works nowhere else; the gateway refuses requests without that key and any request a web page sends. Model-run shell commands never see the token or the key.
338
+ If your organization uses SAML single sign-on, GitHub asks you to authorize the organization during the browser sign-in. A Copilot Business or Enterprise seat needs your organization to allow **Copilot CLI** in its Copilot policies.
339
+
340
+ A token reaches only the gateway's process. The engine gets the gateway's address and a one-time key that works nowhere else; the gateway refuses requests without that key and any request a web page sends. Model-run shell commands never see the token or the key.
339
341
 
340
342
  Which part uses what:
341
343
 
@@ -355,8 +357,9 @@ GitHub Models, which ForgeQE used for the engine before, was [retired by GitHub]
355
357
 
356
358
  | ForgeQE says | What to do |
357
359
  |---|---|
358
- | `GitHub Copilot needs a GitHub token, and there is none` | Run `forgeqe auth login copilot` (or `/auth copilot` in the shell), or set `COPILOT_GITHUB_TOKEN`. |
359
- | `GitHub Copilot does not take classic tokens (ghp_)` | Make a fine-grained token with the Copilot Requests permission, owned by your personal account. |
360
+ | `GitHub Copilot is not signed in` | Run `forgeqe auth login copilot` (or `/auth copilot` in the shell) and sign in in the browser, or set `COPILOT_GITHUB_TOKEN`. |
361
+ | `The GitHub sign-in did not finish` | The browser sign-in was cancelled or denied. Run `forgeqe auth login copilot` again; with SAML single sign-on, authorize your organization when GitHub asks. |
362
+ | `GitHub Copilot does not take classic tokens (ghp_)` | Sign in in the browser instead, or make a fine-grained token with the Copilot Requests permission, owned by your personal account. |
360
363
  | `GitHub Copilot did not accept the token` | The token has no Copilot Requests permission, has expired, or the account has no Copilot seat. |
361
364
  | `… must be a Copilot model id`, `engine_model must be a Copilot model id` | Fix that field in `llms.json`: the sign-in lists the seat's models. A GitHub Models id such as `openai/gpt-4.1` is not a Copilot id; use `gpt-4.1`. |
362
365
  | `ForgeQE's agent and Scribe cannot run on a github_copilot profile yet` | Pick another profile for them (`--profile`, or Tab in the shell), or set `code.model`. |
@@ -440,7 +443,7 @@ In the shell, type `/auth jira` (or `/auth` alone for the status). Tokens are ty
440
443
  |--------|-----------------|
441
444
  | Azure DevOps | **Sign in with Microsoft in the browser** through the Azure CLI (`az login`); ForgeQE saves nothing, and the Azure CLI renews the sign-in. Or paste a personal access token: the token page opens with the scopes to tick. Azure DevOps Server (on-premises) uses a personal access token. |
442
445
  | GitHub | **Sign in with GitHub in the browser** through the GitHub CLI (`gh auth login`): ForgeQE shows the one-time code and opens the page. Or paste a token. Needs `gh` installed. `forgeqe auth login copilot` can use this sign-in for a `github_copilot` profile. |
443
- | GitHub Copilot | `forgeqe auth login copilot`: **Paste a fine-grained token** with the Copilot Requests permission (ForgeQE opens GitHub's token page), or use the GitHub CLI's sign-in. ForgeQE checks it with Copilot and lists the models your seat has. No other app is authorized on your GitHub account. For a `github_copilot` profile; see [GitHub Copilot seats as the model](#github-copilot-seats-as-the-model). |
446
+ | GitHub Copilot | `forgeqe auth login copilot`: **Sign in with GitHub in the browser** (GitHub's own Copilot sign-in), or paste a fine-grained token with the Copilot Requests permission. ForgeQE checks it with Copilot and lists the models your seat has. For a `github_copilot` profile; see [GitHub Copilot seats as the model](#github-copilot-seats-as-the-model). |
444
447
  | Jira, Confluence | Your Atlassian API tokens page opens (Cloud) or your personal access tokens page (Server/Data Center); create one and paste it. Confluence on the same Cloud site as Jira reuses the Jira sign-in. |
445
448
  | TestRail, Zephyr Scale, qTest, Xray Cloud | The page with your API key opens, or ForgeQE says where to find it; paste it. |
446
449
  | Anything else | `forgeqe auth login OPENAI_API_KEY` (any variable name) saves that one secret: a model key, a Teams webhook URL, an SMTP or saved-login password. |
@@ -2800,7 +2803,7 @@ the list again. For a client that ignores it, `forgeqe mcp --all-tools` lists ev
2800
2803
  | `WP_LLMS_JSON` | Path to `llms.json` |
2801
2804
  | `WP_LLM_PROFILE` | Active profile, unless `--profile` is set |
2802
2805
  | `WP_AZURE_API_KEY` / `OPENAI_API_KEY` / `WP_API_KEY` | Keys referenced by profiles |
2803
- | `COPILOT_GITHUB_TOKEN` | A `github_copilot` profile's GitHub token (fine-grained, with the Copilot Requests permission), unless the profile's `api_key_env` names another; else the saved token, then the GitHub CLI's sign-in |
2806
+ | `COPILOT_GITHUB_TOKEN` | A `github_copilot` profile's GitHub token (fine-grained, with the Copilot Requests permission), unless the profile's `api_key_env` names another; else the saved token, then the browser sign-in (`forgeqe auth login copilot`) |
2804
2807
  | `FORGEQE_COPILOT_TOKEN` | The token `forgeqe auth login copilot` saves; set by ForgeQE from the credential store, not by hand |
2805
2808
  | `FORGEQE_CONFIG_DIR` | Global config folder (default `~/.config/forgeqe`): `forgeqe.yaml`, `llms.json` and `.env` used when a project has none |
2806
2809
  | `FORGEQE_PYTHON` | A Python that already has the engine's libraries, used instead of the managed venv (skipped, with a note, when it cannot run the engine) |
package/README.md CHANGED
@@ -44,6 +44,22 @@ One-shot release (same version on both registries; assumes `npm` and `twine` are
44
44
  ./scripts/publish.sh --dry-run # pack only
45
45
  ```
46
46
 
47
+ Or let CI publish: merge a version bump (the same version in `package.json`, `pyproject.toml` and
48
+ `py/forgeqe_cli/__init__.py`) to `main`, and [`forgeqe-release.yml`](../.github/workflows/forgeqe-release.yml) runs the
49
+ release tests and publishes it to npm and PyPI. It publishes only a version newer than the one each registry has. Run it
50
+ by hand from the Actions tab for a dry run.
51
+
52
+ It needs no token: both registries trust the workflow (trusted publishing). Set that up once, as the package owner:
53
+
54
+ ```bash
55
+ npm install -g npm@^11.15.0 && npm login
56
+ npm trust github @capagents/forgeqe --file forgeqe-release.yml --repo javed0211/cli-agents --allow-publish
57
+ ```
58
+
59
+ and on pypi.org, under `forgeqe-cli` → Publishing, add a GitHub trusted publisher: owner `javed0211`, repository
60
+ `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.
62
+
47
63
  ## Privacy
48
64
 
49
65
  ForgeQE sends no telemetry and turns it off in everything it starts:
@@ -18,7 +18,7 @@ Most of these libraries are inside `dist/forgeqe.js`, the bundle ForgeQE ships;
18
18
  | strip-ansi | 7.1.2 | MIT | string-width |
19
19
  | ansi-regex | 6.4.0 | MIT | strip-ansi |
20
20
  | @opentui/core-darwin-x64 | 0.5.12 | MIT | A build of @opentui/core for another platform, installed there in its place; same licence. |
21
- | @opentui/core-darwin-arm64 | 0.5.12 | MIT | @opentui/core |
21
+ | @opentui/core-darwin-arm64 | 0.5.12 | MIT | A build of @opentui/core for another platform, installed there in its place; same licence. |
22
22
  | @opentui/core-linux-x64 | 0.5.12 | MIT | A build of @opentui/core for another platform, installed there in its place; same licence. |
23
23
  | @opentui/core-linux-arm64 | 0.5.12 | MIT | A build of @opentui/core for another platform, installed there in its place; same licence. |
24
24
  | @opentui/core-win32-x64 | 0.5.12 | MIT | A build of @opentui/core for another platform, installed there in its place; same licence. |
@@ -61,7 +61,7 @@ ForgeQE downloads these onto the machine it runs on, from their own sources, whe
61
61
  | OpenCode | the agent runtime for ForgeQE's agent and Scribe (src/code/runtime.ts) | MIT | https://opencode.ai |
62
62
  | uv and Python | the browser engine's interpreter (src/engine/setup.ts) | MIT or Apache-2.0; PSF | https://github.com/astral-sh/uv |
63
63
  | browser-use, Playwright, PyYAML, azure-identity, github-copilot-sdk, truststore | the browser engine's libraries and Chromium (src/engine/setup.ts) | MIT; Apache-2.0; MIT; MIT; MIT; MIT | https://pypi.org |
64
- | GitHub Copilot CLI runtime | downloaded by GitHub's Copilot SDK for github_copilot profiles (src/copilot.ts) | GitHub Copilot CLI license (GitHub) | https://github.com/github/copilot-cli |
64
+ | GitHub Copilot CLI and its runtime | the runtime downloaded by GitHub's Copilot SDK for github_copilot profiles (src/copilot.ts), and the CLI for the browser sign-in (src/auth/copilotLogin.ts) | GitHub Copilot CLI license (GitHub) | https://github.com/github/copilot-cli |
65
65
 
66
66
  ## Licence texts
67
67
 
@@ -258,34 +258,6 @@ The above copyright notice and this permission notice shall be included in all c
258
258
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
259
259
  ```
260
260
 
261
- ### @opentui/core-darwin-arm64 0.5.12
262
-
263
- MIT. https://github.com/anomalyco/opentui
264
-
265
- ```text
266
- MIT License
267
-
268
- Copyright (c) 2025 opentui
269
-
270
- Permission is hereby granted, free of charge, to any person obtaining a copy
271
- of this software and associated documentation files (the "Software"), to deal
272
- in the Software without restriction, including without limitation the rights
273
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
274
- copies of the Software, and to permit persons to whom the Software is
275
- furnished to do so, subject to the following conditions:
276
-
277
- The above copyright notice and this permission notice shall be included in all
278
- copies or substantial portions of the Software.
279
-
280
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
281
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
282
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
283
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
284
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
285
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
286
- SOFTWARE.
287
- ```
288
-
289
261
  ### cross-spawn 7.0.6
290
262
 
291
263
  MIT. https://github.com/moxystudio/node-cross-spawn