@jrpool/kilotest 60.0.6 → 60.0.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/README.md CHANGED
@@ -65,3 +65,36 @@ There is additional documentation at:
65
65
  - [llms.txt](llms.txt): basic documentation for LLMs
66
66
  - [llms-full.txt](llms-full.txt): comprehensive documentation for LLMs
67
67
  - [lhm.plugin.json](lhm.plugin.json): documentation for registration with the LobeHub MCP Market
68
+
69
+ ## Maintenance
70
+
71
+ These are the routine steps for maintaining Kilotest as currently deployed.
72
+
73
+ ### No API changes
74
+
75
+ When you make a change in a feature branch **without** any API or tool contract change:
76
+
77
+ 1. Stage, commit, and optionally push all changes.
78
+ 2. Execute `npm run prePR -- <level>` (`major`, `minor`, or `patch`).
79
+ 3. Submit a pull request.
80
+ 4. When all checks succeed, squash-merge to `main` and delete the feature branch on GitHub.
81
+ 5. Execute `npm run postPR` (with interactive browser authentication).
82
+ 6. Wait until `npmjs.com` has processed the publication.
83
+ 7. Use `git pull`, `npm ci`, and `pm2 restart kilotest` (but **not** `npm audit fix`) to deploy the revised `main` branch on the public server.
84
+
85
+ ### API changes
86
+
87
+ When you **make an API or tool contract change** in a feature branch:
88
+
89
+ 1. `lhm.plugin.json`: Transform it to match `api/schemas.ts` and `mcp.ts`.
90
+ 2. `llms.txt`, `llms-full.txt`, `capability.md`, `README.md`: Update parameter and path names.
91
+ 3. Stage, commit, and optionally push all changes.
92
+ 4. Execute `npm run prePR -- <level>` (`major`, `minor`, or `patch`).
93
+ 5. Submit a pull request.
94
+ 6. When all checks succeed, squash-merge to `main`.
95
+ 7. Execute `npm run postPR` (with interactive browser authentication).
96
+ 8. Wait until `npmjs.com` has processed the publication.
97
+ 9. Use `git pull`, `npm ci`, and `pm2 restart kilotest` (but **not** `npm audit fix`) to deploy the revised `main` branch on the public server.
98
+ 10. Visit the [RapidAPI Studio](https://rapidapi.com/studio) and update the API definition at `Hub Listing` → `Definitions` → `CI/CD` → `Import OpenAPI` by uploading the regenerated `openapi-3.0.yaml`.
99
+
100
+ If any step fails, see the details in `docs/AI-TOOLS.md` for troubleshooting instructions.
package/docs/AI-TOOLS.md CHANGED
@@ -62,6 +62,8 @@ The external features that support the use of Kilotest as a collection of AI too
62
62
 
63
63
  ## Required maintenance
64
64
 
65
+ The maintenance routine is prescribed in the [README.md](../README.md) file.
66
+
65
67
  Releasing a new version is a two-script procedure:
66
68
 
67
69
  - On a feature branch, commit all substantive changes, then execute `npm run prePR -- <level>` (`major`, `minor`, or `patch`). The script bumps `package.json` and `package-lock.json`, regenerates `openapi.yaml`, `openapi-3.0.yaml`, and the versions of `server.json` and `lhm.plugin.json` by explicitly running `npm run generate`, commits and pushes the result, and records the branch name for the next step.
@@ -95,33 +97,6 @@ A change to the tool or API contract (tool names, parameter names, schemas, resp
95
97
  - The LobeHub MCP Market listing is published from `lhm.plugin.json` and is non-automated, because LobeHub requires browser-based OAuth. A normal release pushes the updated file when `npm run postPR` runs `npm run publish:lhm`; to push a contract update without a release, run `npm run publish:lhm` manually.
96
98
  - The RapidAPI Hub listing stores a copy of the API endpoints. Its importer accepts only OpenAPI 3.0 documents, so after releasing a contract change, update the definition in Studio: `My APIs` → the Kilotest API project → `Hub Listing` → `Definitions` → `CI/CD` → `Import OpenAPI`, and upload the regenerated `openapi-3.0.yaml` (not `openapi.yaml`, which is 3.1 and is rejected). The `/publish/…` pages contain only listing metadata, not the spec.
97
99
 
98
- ### Step by step
99
-
100
- When you make a change in a feature branch **without** any API or tool contract change, here are the maintenance steps:
101
-
102
- 1. Stage, commit, and optionally push all changes.
103
- 2. Execute `npm run prePR -- <level>` (`major`, `minor`, or `patch`).
104
- 3. Submit a pull request.
105
- 4. When all checks succeed, squash-merge to `main` and delete the feature branch on GitHub.
106
- 5. Execute `npm run postPR` (with interactive browser OAuth).
107
- 6. Wait until `npmjs.com` has processed the publication.
108
- 7. Use `git pull`, `npm ci`, and `pm2 restart kilotest` (but **not** `npm audit fix`) to deploy the revised `main` branch on the public server.
109
-
110
- When you **make an API or tool contract change** in a feature branch, here are the maintenance steps:
111
-
112
- 1. `lhm.plugin.json`: Transform it to match `api/schemas.ts` and `mcp.ts`.
113
- 2. `llms.txt`, `llms-full.txt`, `capability.md`, `README.md`: Update parameter and path names.
114
- 3. Stage, commit, and optionally push all changes.
115
- 4. Execute `npm run prePR -- <level>` (`major`, `minor`, or `patch`).
116
- 5. Submit a pull request.
117
- 6. When all checks succeed, squash-merge to `main`.
118
- 7. Execute `npm run postPR` (with interactive browser OAuth).
119
- 8. Wait until `npmjs.com` has processed the publication.
120
- 9. Use `git pull`, `npm ci`, and `pm2 restart kilotest` (but **not** `npm audit fix`) to deploy the revised `main` branch on the public server.
121
- 10. Visit the [RapidAPI Studio](https://rapidapi.com/studio) and update the API definition at `Hub Listing` → `Definitions` → `CI/CD` → `Import OpenAPI` by uploading the regenerated `openapi-3.0.yaml`.
122
-
123
- If any step fails, see the details above for troubleshooting instructions.
124
-
125
100
  ## Use cases
126
101
 
127
102
  The rationale for Kilotest as a collection of tools for language models is set forth in the `llms-full.txt` file and is not repeated here.
package/lhm.plugin.json CHANGED
@@ -4423,5 +4423,5 @@
4423
4423
  }
4424
4424
  }
4425
4425
  ],
4426
- "version": "60.0.6"
4426
+ "version": "60.0.7"
4427
4427
  }
package/openapi-3.0.yaml CHANGED
@@ -2,7 +2,7 @@ openapi: 3.0.3
2
2
  info:
3
3
  title: Kilotest API
4
4
  description: 'Kilotest is an ensemble testing and reporting service for front-end web quality. It uses an ensemble of 12 rule engines to test web pages for front-end quality (accessibility, usability, and web standards, including HTML, CSS, ARIA, and WCAG). Kilotest acts as a web server for human users, an MCP server for AI platforms, and an API for programmatic access. With this API you can request that a page be tested or retested, discover available reports, incrementally retrieve facts from a report: from what reports are available, to what issues were reported in one report, to what elements violated one issue, to what diagnoses rule engines gave for one violation.'
5
- version: 60.0.6
5
+ version: 60.0.7
6
6
  license:
7
7
  name: MIT
8
8
  url: https://github.com/jrpool/kilotest/blob/main/LICENSE
package/openapi.yaml CHANGED
@@ -2,7 +2,7 @@ openapi: 3.1.0
2
2
  info:
3
3
  title: Kilotest API
4
4
  description: 'Kilotest is an ensemble testing and reporting service for front-end web quality. It uses an ensemble of 12 rule engines to test web pages for front-end quality (accessibility, usability, and web standards, including HTML, CSS, ARIA, and WCAG). Kilotest acts as a web server for human users, an MCP server for AI platforms, and an API for programmatic access. With this API you can request that a page be tested or retested, discover available reports, incrementally retrieve facts from a report: from what reports are available, to what issues were reported in one report, to what elements violated one issue, to what diagnoses rule engines gave for one violation.'
5
- version: 60.0.6
5
+ version: 60.0.7
6
6
  license:
7
7
  name: MIT
8
8
  identifier: MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jrpool/kilotest",
3
- "version": "60.0.6",
3
+ "version": "60.0.7",
4
4
  "description": "Ensemble testing for front-end web quality",
5
5
  "type": "module",
6
6
  "main": "index.ts",
package/scripts/postPR.ts CHANGED
@@ -76,12 +76,13 @@ if (branchVersion !== mainVersion) {
76
76
  console.error(`main is at version ${mainVersion} but ${branch} is at ${branchVersion}; merge the pull request first`);
77
77
  process.exit(1);
78
78
  }
79
+ run('npm', ['login']);
79
80
  run('npm', ['publish']);
80
81
  run('npm', ['run', 'publish:lhm']);
81
82
  // Branch cleanup is best-effort: deletion must precede pruning, because "git branch -d" checks mergedness against the upstream ref, which pruning would remove.
82
83
  const deleted = spawnSync('git', ['branch', '-d', branch], {stdio: 'inherit'});
83
84
  if (deleted.status !== 0) {
84
- console.warn(`Could not delete ${branch}; delete it manually after confirming the merge`);
85
+ console.warn(`Could not delete ${branch}; delete it after confirming the merge`);
85
86
  }
86
87
  if (spawnSync('git', ['remote', 'prune', 'origin'], {stdio: 'inherit'}).status !== 0) {
87
88
  console.warn('git remote prune origin failed');
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/jrpool/kilotest",
7
7
  "source": "github"
8
8
  },
9
- "version": "60.0.6",
9
+ "version": "60.0.7",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",