pm-ts-starter 2026.9.18 → 2026.9.26

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/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.9.26 - 2026-09-26
4
+
5
+ ### Other
6
+
7
+ - Certify pm CLI 2026.9.23 and adopt the guarded pm-ops merge-driver launcher ([pm-ts-starter-r5s2](https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm/chores/pm-ts-starter-r5s2.toon))
8
+
9
+ ## 2026.9.22 - 2026-09-22
10
+
11
+ ### Fixed
12
+
13
+ - A publish that npm accepts late is reported as failed and the GitHub Release is skipped on bun mirror lag ([pm-ts-starter-beto](https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm/issues/pm-ts-starter-beto.toon))
14
+ - Add fail-closed docstring, duplication, lint, and authored-TypeScript gates ([pm-ts-starter-s2kh](https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm/issues/pm-ts-starter-s2kh.toon))
15
+
16
+ ### Other
17
+
18
+ - Certify pm CLI 2026.9.21 and move onto the canonical pm-ops merge-driver, lint and duplication gates ([pm-ts-starter-jwgz](https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm/tasks/pm-ts-starter-jwgz.toon))
19
+
3
20
  ## 2026.9.18 - 2026-09-18
4
21
 
5
22
  ### Other
package/README.md CHANGED
@@ -137,10 +137,7 @@ This package is release-ready for GitHub, npm, and Bun-compatible installs. CI r
137
137
  This repo tracks its project management in `.agents/pm/` and ships a committed `.gitattributes`
138
138
  that maps those tracker artifacts to pm-cli's field-aware Git merge drivers, so concurrent-branch
139
139
  tracker edits merge cleanly instead of hard-conflicting. The driver **definitions** live in
140
- per-clone Git config; `npm install` / `npm ci` wires them automatically via the `prepare` script (a portable TypeScript guard, `scripts/prepare-merge-driver.ts`: it runs
141
- `pm merge install` only when the `pm` CLI is on `PATH`, and no-ops cleanly otherwise so
142
- production / `--omit=dev` installs are not broken; being Node-based it behaves identically
143
- on POSIX shells and Windows `cmd.exe`). To (re)run manually: `npm run merge:install`.
140
+ per-clone Git config; `npm install` / `npm ci` wires them automatically via the `prepare` script, `scripts/prepare-merge-driver.ts`: the launcher template pm-ops ships, copied unchanged, which a test compares byte for byte with the pinned template. It runs pm-ops's installer, which calls `pm merge install` when the `pm` CLI is on `PATH` and skips with a notice when it is not. A production install of a clone (`npm ci --omit=dev`) has no `pm-ops`, so the launcher skips with one notice, while a stale or broken `pm-ops` fails the install. Registry installs of this package never run `prepare`. Being Node-based, it behaves identically on POSIX shells and Windows `cmd.exe`. To (re)run manually: `npm run merge:install`.
144
141
 
145
142
  After merging a branch that touched `.agents/pm/`, reconcile any residual history-hash drift with
146
143
  **`pm merge reconcile`** (pm-cli ≥ 2026.7.22): preview with `pm merge reconcile --dry-run`, apply with
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-ts-starter",
3
- "version": "2026.9.18",
3
+ "version": "2026.9.26",
4
4
  "description": "TypeScript reference extension covering all 9 SDK capability types: commands, renderers, hooks, schema, importers, search, parser, preflight, services. Aligned to the pm-cli 2026.7.6 SDK: demonstrates defineExtension plus registerCommand/registerFlags (with failure_hints + typed positional arguments), registerItemFields/registerItemTypes/registerMigration, the five api.hooks.* lifecycle hooks, registerImporter/registerExporter (with ImportExportRegistrationOptions), registerRenderer, registerSearchProvider/registerVectorStoreAdapter, registerParser, registerPreflight, registerService, PmCliExpectedError-shaped errors, demo commands for the plan/context/search/history-compact pm surfaces, and a guided `ts-starter setup --interactive` onboarding - all fully typed.",
5
5
  "author": "@unbraind",
6
6
  "entry": "./dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-ts-starter",
3
- "version": "2026.9.18",
3
+ "version": "2026.9.26",
4
4
  "description": "TypeScript reference extension for pm-cli covering all capability types",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,12 +27,14 @@
27
27
  "typecheck": "tsc --noEmit",
28
28
  "check": "npm run typecheck",
29
29
  "docstring": "node scripts/docstring-gate.ts",
30
+ "lint": "node scripts/lint.ts",
31
+ "duplication": "node scripts/duplication-gate.ts",
30
32
  "audit:prod": "node --input-type=module -e \"import { spawnSync } from 'node:child_process'; import { devNull } from 'node:os'; const env = { ...process.env, npm_config_userconfig: devNull, NPM_CONFIG_USERCONFIG: devNull }; for (const key of Object.keys(env)) if (key.toLowerCase() === 'npm_config_allow_scripts') delete env[key]; const win = process.platform === 'win32'; const r = spawnSync(win ? 'npm.cmd' : 'npm', ['audit', '--omit=dev', '--ignore-scripts'], { stdio: 'inherit', env, shell: win }); process.exit(r.status ?? 1);\"",
31
33
  "pack:dry-run": "npm pack --dry-run",
32
34
  "changelog": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --date-from-version --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm --pm-arg=--output-budget --pm-arg=unbounded --pm-arg=--output-limit --pm-arg=unbounded",
33
35
  "changelog:full": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --date-from-version --item-url-base https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm --pm-arg=--output-budget --pm-arg=unbounded --pm-arg=--output-limit --pm-arg=unbounded",
34
36
  "changelog:check": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --date-from-version --item-url-base https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm --respect-item-release --check --pm-bin ./node_modules/.bin/pm --pm-arg=--output-budget --pm-arg=unbounded --pm-arg=--output-limit --pm-arg=unbounded",
35
- "release:check": "npm run typecheck && npm run build && npm run docstring && npm run coverage && npm run audit:prod && npm run pack:dry-run && npm run changelog:check && npm run verify:release-publish-attestation && npm run verify:release-changelog-date",
37
+ "release:check": "npm run typecheck && npm run lint && npm run duplication && npm run build && npm run docstring && npm run coverage && npm run audit:prod && npm run pack:dry-run && npm run changelog:check && npm run verify:release-publish-attestation && npm run verify:release-changelog-date",
36
38
  "prepublishOnly": "npm run release:check",
37
39
  "release:notes": "pm-changelog --pm-root .agents/pm --stdout --since-previous-tag --until-release-tag --release-version-from-package --date-from-version --item-url-base https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm --github-step-summary --pm-arg=--output-budget --pm-arg=unbounded --pm-arg=--output-limit --pm-arg=unbounded",
38
40
  "prepare": "node scripts/prepare-merge-driver.ts",
@@ -45,10 +47,15 @@
45
47
  "@unbrained/pm-cli": ">=2026.8.7"
46
48
  },
47
49
  "devDependencies": {
50
+ "@babel/eslint-parser": "^8.0.5",
51
+ "@babel/plugin-syntax-typescript": "^8.0.3",
48
52
  "@types/node": "^26.2.0",
49
- "@unbrained/pm-cli": "2026.9.17",
50
- "pm-changelog": "2026.9.16",
51
- "pm-ops": "2026.9.13",
53
+ "@unbrained/pm-cli": "2026.9.23",
54
+ "eslint": "^10.10.0",
55
+ "fast-glob": "^3.3.3",
56
+ "jscpd": "^4.3.0",
57
+ "pm-changelog": "2026.9.23",
58
+ "pm-ops": "2026.9.23",
52
59
  "typescript": "^7.0.2"
53
60
  },
54
61
  "keywords": [
@@ -116,5 +123,9 @@
116
123
  "functions": 100
117
124
  },
118
125
  "ignore": []
126
+ },
127
+ "duplicationGate": {
128
+ "threshold": 0,
129
+ "minTokens": 50
119
130
  }
120
131
  }