@tech-leads-club/harness-toolkit 0.3.0 → 0.3.2
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 +46 -11
- package/bin/tlc-build.mjs +35 -6
- package/config.example.json +1 -1
- package/dist/chunks/compact-before-1e4qg1qt.mjs +1185 -0
- package/dist/chunks/compact-before-2hpbfxm5.mjs +5782 -0
- package/dist/chunks/compact-before-49j320yp.mjs +1283 -0
- package/dist/chunks/compact-before-4jrq0sqs.mjs +61 -0
- package/dist/chunks/compact-before-6w8n1vh1.mjs +186 -0
- package/dist/chunks/compact-before-7sdmwswh.mjs +52 -0
- package/dist/chunks/compact-before-beqpmqrm.mjs +187 -0
- package/dist/chunks/compact-before-j9y4jgn4.mjs +845 -0
- package/dist/chunks/compact-before-pk86tqx2.mjs +118 -0
- package/dist/chunks/compact-before-pkqk5v29.mjs +137 -0
- package/dist/chunks/compact-before-w1293m4n.mjs +315 -0
- package/dist/chunks/compact-before-wnnds45y.mjs +26 -0
- package/dist/chunks/compact-before-wt2c3nh4.mjs +551 -0
- package/dist/compact-before.mjs +13 -7961
- package/dist/doctor.mjs +33 -8480
- package/dist/help-topic.mjs +6 -14
- package/dist/init-project.mjs +36 -793
- package/dist/install-runtime.mjs +18 -1039
- package/dist/lessons-cli.mjs +25 -7043
- package/dist/obs-cli.mjs +27 -7037
- package/dist/price-lookup.mjs +11 -201
- package/dist/prompt-submit.mjs +14 -7974
- package/dist/refresh-model-prices.mjs +26 -7061
- package/dist/response-after.mjs +11 -7961
- package/dist/run.mjs +10 -7960
- package/dist/session-end.mjs +14 -8029
- package/dist/session-start.mjs +20 -8075
- package/dist/shim.mjs +18 -7024
- package/dist/stop.mjs +29 -8042
- package/dist/subagent-start.mjs +13 -7983
- package/dist/subagent-stop.mjs +11 -7961
- package/dist/support.mjs +21 -7168
- package/dist/tlc-cli.mjs +65 -8200
- package/dist/tool-after.mjs +20 -8176
- package/dist/tool-before.mjs +15 -7990
- package/dist/tool-failure.mjs +14 -7961
- package/dist/uninstall-runtime.mjs +61 -1008
- package/docs/log.md +4 -0
- package/package.json +2 -2
- package/src/core/release/release.version.ts +10 -4
- package/tools/install-runtime.ts +21 -1
package/docs/log.md
CHANGED
|
@@ -13,6 +13,10 @@ Generated from `docs/decisions/` — do not edit by hand. Run `node tools/render
|
|
|
13
13
|
A reserved file of the [OKF v0.1](/decisions/ad-013.md) bundle: entries grouped under ISO 8601 headings,
|
|
14
14
|
newest first. For what landed in which npm release, see `CHANGELOG.md` at the repository root.
|
|
15
15
|
|
|
16
|
+
## 2026-08-20
|
|
17
|
+
|
|
18
|
+
- **AD-098** — One copy of the core, not twenty-four ([/decisions/ad-098.md](/decisions/ad-098.md))
|
|
19
|
+
|
|
16
20
|
## 2026-08-19
|
|
17
21
|
|
|
18
22
|
- **AD-081** — The manifest npm publishes is checked here, because the release runner was the only thing reading it ([/decisions/ad-081.md](/decisions/ad-081.md))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tech-leads-club/harness-toolkit",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Multi-provider agent steering: gates, follow-up, handoff, policy",
|
|
6
6
|
"keywords": [
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
},
|
|
52
52
|
"homepage": "https://github.com/tech-leads-club/harness-toolkit#readme",
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@biomejs/biome": "^2.5.
|
|
54
|
+
"@biomejs/biome": "^2.5.9",
|
|
55
55
|
"@types/node": "^24.13.3",
|
|
56
56
|
"typescript": "^7.0.2"
|
|
57
57
|
}
|
|
@@ -54,12 +54,18 @@ const SUBJECT = /^(?<type>[a-z]+)(?:\((?<scope>[^)]*)\))?(?<breaking>!)?:\s*(?<r
|
|
|
54
54
|
const BREAKING_FOOTER = /^BREAKING[ -]CHANGE:/m;
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
-
* invariant: `feat` and `
|
|
58
|
-
* `
|
|
59
|
-
* commit from earning the next version and looping,
|
|
57
|
+
* invariant: `feat`, `fix` and `perf` release. Everything else — `docs`, `chore`, `refactor`, `test`, `ci`,
|
|
58
|
+
* `build`, `style` — lands without moving the version, which together with the inert scopes is what stops the
|
|
59
|
+
* release's own `chore(release):` commit from earning the next version and looping, as this pipeline did six times
|
|
60
|
+
* in nine minutes ([/decisions/ad-087.md](/decisions/ad-087.md)).
|
|
61
|
+
*
|
|
62
|
+
* hazard: `perf` was excluded with the loop as the stated reason, and the loop had nothing to do with it — `chore`
|
|
63
|
+
* and the inert scopes cover that on their own. The cost was measured: a change that cut the published package
|
|
64
|
+
* from 1.6 MB to 426 kB and about 4 ms from every hook sat on `main` unreleased, waiting for an unrelated `fix` to
|
|
65
|
+
* carry it to anybody ([/decisions/ad-098.md](/decisions/ad-098.md)).
|
|
60
66
|
*/
|
|
61
67
|
export const MINOR_TYPES: ReadonlySet<string> = new Set(["feat"]);
|
|
62
|
-
export const PATCH_TYPES: ReadonlySet<string> = new Set(["fix"]);
|
|
68
|
+
export const PATCH_TYPES: ReadonlySet<string> = new Set(["fix", "perf"]);
|
|
63
69
|
|
|
64
70
|
/**
|
|
65
71
|
* invariant: a scope on this list never releases, whatever the type. `fix(ci)` and `fix(gate)` are repository
|
package/tools/install-runtime.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
2
|
import { cpSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { join, relative, resolve, sep } from "node:path";
|
|
4
|
-
import { NPM_MARKER, NPM_PACKAGE } from "../bin/tlc-cli.ts";
|
|
4
|
+
import { NPM_MARKER, NPM_PACKAGE, wireRuntime } from "../bin/tlc-cli.ts";
|
|
5
5
|
import { linkDir } from "../src/platform/links.ts";
|
|
6
6
|
import { conventionalRuntimeHome, runtimeHome, runtimeHomeWasChosen } from "../src/platform/paths.ts";
|
|
7
7
|
import { type Row, render, type Screen } from "../src/platform/screen.ts";
|
|
@@ -242,6 +242,26 @@ if (import.meta.main) {
|
|
|
242
242
|
if (report.kind === "refused") {
|
|
243
243
|
process.exit(1);
|
|
244
244
|
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* hazard: this command put the code in place and wired nothing. The provider hooks and the skill links came
|
|
248
|
+
* from the tail of `install.sh`, so deleting that script left a fresh `npm i -g` followed by
|
|
249
|
+
* `tlc harness install` with two empty provider directories and a harness that does nothing at all until
|
|
250
|
+
* `update` happens to run. Found by installing the published package on a clean machine and reading the output
|
|
251
|
+
* ([/decisions/ad-034.md](/decisions/ad-034.md), [/decisions/ad-097.md](/decisions/ad-097.md)).
|
|
252
|
+
*
|
|
253
|
+
* invariant: install and update wire through the same function. There is no third copy of this.
|
|
254
|
+
*/
|
|
255
|
+
const wired = wireRuntime(dest, dest);
|
|
256
|
+
for (const line of wired.lines) {
|
|
257
|
+
console.log(`install: ${line}`);
|
|
258
|
+
}
|
|
259
|
+
if (wired.missingSkill) {
|
|
260
|
+
console.error(`install: missing skill at ${join(dest, "skills", "harness-init")}`);
|
|
261
|
+
process.exit(1);
|
|
262
|
+
}
|
|
263
|
+
|
|
245
264
|
fetchPrices(dest);
|
|
265
|
+
console.log("install: ok — restart Cursor or Claude Code, then run `tlc harness doctor`");
|
|
246
266
|
process.exit(report.missing.length > 0 ? 1 : 0);
|
|
247
267
|
}
|