@unbrained/pm-cli 2026.5.1 → 2026.5.3-5

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.
Files changed (265) hide show
  1. package/AGENTS.md +8 -1
  2. package/CHANGELOG.md +73 -4
  3. package/CONTRIBUTING.md +11 -5
  4. package/PRD.md +17 -1
  5. package/README.md +55 -1099
  6. package/SECURITY.md +6 -11
  7. package/dist/cli/bootstrap-args.d.ts +18 -0
  8. package/dist/cli/bootstrap-args.js +242 -0
  9. package/dist/cli/bootstrap-args.js.map +1 -0
  10. package/dist/cli/commander-usage.d.ts +17 -0
  11. package/dist/cli/commander-usage.js +178 -0
  12. package/dist/cli/commander-usage.js.map +1 -0
  13. package/dist/cli/commands/activity.d.ts +10 -0
  14. package/dist/cli/commands/activity.js +14 -10
  15. package/dist/cli/commands/activity.js.map +1 -1
  16. package/dist/cli/commands/aggregate.js.map +1 -1
  17. package/dist/cli/commands/append.js.map +1 -1
  18. package/dist/cli/commands/calendar.js +19 -34
  19. package/dist/cli/commands/calendar.js.map +1 -1
  20. package/dist/cli/commands/claim.js.map +1 -1
  21. package/dist/cli/commands/close.js.map +1 -1
  22. package/dist/cli/commands/comments-audit.js.map +1 -1
  23. package/dist/cli/commands/comments.js +1 -9
  24. package/dist/cli/commands/comments.js.map +1 -1
  25. package/dist/cli/commands/completion.js.map +1 -1
  26. package/dist/cli/commands/config.d.ts +21 -3
  27. package/dist/cli/commands/config.js +118 -2
  28. package/dist/cli/commands/config.js.map +1 -1
  29. package/dist/cli/commands/context.d.ts +90 -1
  30. package/dist/cli/commands/context.js +496 -12
  31. package/dist/cli/commands/context.js.map +1 -1
  32. package/dist/cli/commands/contracts.js.map +1 -1
  33. package/dist/cli/commands/create.js +2 -2
  34. package/dist/cli/commands/create.js.map +1 -1
  35. package/dist/cli/commands/dedupe-audit.js +2 -11
  36. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  37. package/dist/cli/commands/delete.js.map +1 -1
  38. package/dist/cli/commands/deps.js.map +1 -1
  39. package/dist/cli/commands/docs.js.map +1 -1
  40. package/dist/cli/commands/extension.js.map +1 -1
  41. package/dist/cli/commands/files.js +14 -2
  42. package/dist/cli/commands/files.js.map +1 -1
  43. package/dist/cli/commands/gc.js.map +1 -1
  44. package/dist/cli/commands/get.js.map +1 -1
  45. package/dist/cli/commands/health.js +16 -12
  46. package/dist/cli/commands/health.js.map +1 -1
  47. package/dist/cli/commands/history.js +1 -9
  48. package/dist/cli/commands/history.js.map +1 -1
  49. package/dist/cli/commands/index.js.map +1 -1
  50. package/dist/cli/commands/init.js.map +1 -1
  51. package/dist/cli/commands/learnings.js +1 -9
  52. package/dist/cli/commands/learnings.js.map +1 -1
  53. package/dist/cli/commands/list.d.ts +1 -0
  54. package/dist/cli/commands/list.js +13 -31
  55. package/dist/cli/commands/list.js.map +1 -1
  56. package/dist/cli/commands/normalize.js +14 -23
  57. package/dist/cli/commands/normalize.js.map +1 -1
  58. package/dist/cli/commands/notes.js +1 -9
  59. package/dist/cli/commands/notes.js.map +1 -1
  60. package/dist/cli/commands/reindex.js +2 -7
  61. package/dist/cli/commands/reindex.js.map +1 -1
  62. package/dist/cli/commands/restore.js.map +1 -1
  63. package/dist/cli/commands/search.js +4 -35
  64. package/dist/cli/commands/search.js.map +1 -1
  65. package/dist/cli/commands/stats.js.map +1 -1
  66. package/dist/cli/commands/templates.js.map +1 -1
  67. package/dist/cli/commands/test-all.js.map +1 -1
  68. package/dist/cli/commands/test-runs.js +1 -11
  69. package/dist/cli/commands/test-runs.js.map +1 -1
  70. package/dist/cli/commands/test.js.map +1 -1
  71. package/dist/cli/commands/update-many.js +1 -6
  72. package/dist/cli/commands/update-many.js.map +1 -1
  73. package/dist/cli/commands/update.js +2 -2
  74. package/dist/cli/commands/update.js.map +1 -1
  75. package/dist/cli/commands/validate.js +23 -18
  76. package/dist/cli/commands/validate.js.map +1 -1
  77. package/dist/cli/error-guidance.d.ts +13 -0
  78. package/dist/cli/error-guidance.js +56 -6
  79. package/dist/cli/error-guidance.js.map +1 -1
  80. package/dist/cli/extension-command-help.d.ts +48 -0
  81. package/dist/cli/extension-command-help.js +389 -0
  82. package/dist/cli/extension-command-help.js.map +1 -0
  83. package/dist/cli/extension-command-options.js.map +1 -1
  84. package/dist/cli/help-content.js +9 -3
  85. package/dist/cli/help-content.js.map +1 -1
  86. package/dist/cli/help-json-payload.d.ts +25 -0
  87. package/dist/cli/help-json-payload.js +265 -0
  88. package/dist/cli/help-json-payload.js.map +1 -0
  89. package/dist/cli/main.js +1000 -4456
  90. package/dist/cli/main.js.map +1 -1
  91. package/dist/cli/migration-gates.d.ts +22 -0
  92. package/dist/cli/migration-gates.js +146 -0
  93. package/dist/cli/migration-gates.js.map +1 -0
  94. package/dist/cli/register-list-query.d.ts +2 -0
  95. package/dist/cli/register-list-query.js +317 -0
  96. package/dist/cli/register-list-query.js.map +1 -0
  97. package/dist/cli/register-mutation.d.ts +2 -0
  98. package/dist/cli/register-mutation.js +795 -0
  99. package/dist/cli/register-mutation.js.map +1 -0
  100. package/dist/cli/register-operations.d.ts +2 -0
  101. package/dist/cli/register-operations.js +610 -0
  102. package/dist/cli/register-operations.js.map +1 -0
  103. package/dist/cli/register-setup.d.ts +2 -0
  104. package/dist/cli/register-setup.js +334 -0
  105. package/dist/cli/register-setup.js.map +1 -0
  106. package/dist/cli/registration-helpers.d.ts +53 -0
  107. package/dist/cli/registration-helpers.js +669 -0
  108. package/dist/cli/registration-helpers.js.map +1 -0
  109. package/dist/cli/shared-parsers.d.ts +6 -0
  110. package/dist/cli/shared-parsers.js +40 -0
  111. package/dist/cli/shared-parsers.js.map +1 -0
  112. package/dist/cli.d.ts +1 -1
  113. package/dist/cli.js +3 -1
  114. package/dist/cli.js.map +1 -1
  115. package/dist/core/extensions/extension-types.d.ts +605 -0
  116. package/dist/core/extensions/extension-types.js +22 -0
  117. package/dist/core/extensions/extension-types.js.map +1 -0
  118. package/dist/core/extensions/index.js.map +1 -1
  119. package/dist/core/extensions/item-fields.js.map +1 -1
  120. package/dist/core/extensions/loader.d.ts +2 -586
  121. package/dist/core/extensions/loader.js +3 -21
  122. package/dist/core/extensions/loader.js.map +1 -1
  123. package/dist/core/extensions/runtime-registrations.js.map +1 -1
  124. package/dist/core/fs/fs-utils.js.map +1 -1
  125. package/dist/core/fs/index.js.map +1 -1
  126. package/dist/core/history/history-stream-policy.js.map +1 -1
  127. package/dist/core/history/history.js.map +1 -1
  128. package/dist/core/history/index.js.map +1 -1
  129. package/dist/core/item/id.js.map +1 -1
  130. package/dist/core/item/index.js.map +1 -1
  131. package/dist/core/item/item-format.js.map +1 -1
  132. package/dist/core/item/parent-reference-policy.js.map +1 -1
  133. package/dist/core/item/parse.js +6 -0
  134. package/dist/core/item/parse.js.map +1 -1
  135. package/dist/core/item/sprint-release-format.js.map +1 -1
  136. package/dist/core/item/status.js.map +1 -1
  137. package/dist/core/item/type-registry.js.map +1 -1
  138. package/dist/core/lock/index.js.map +1 -1
  139. package/dist/core/lock/lock.js +1 -6
  140. package/dist/core/lock/lock.js.map +1 -1
  141. package/dist/core/output/command-aware.js.map +1 -1
  142. package/dist/core/output/output.js.map +1 -1
  143. package/dist/core/schema/runtime-field-filters.js.map +1 -1
  144. package/dist/core/schema/runtime-field-values.js.map +1 -1
  145. package/dist/core/schema/runtime-schema.js.map +1 -1
  146. package/dist/core/search/cache.js +1 -7
  147. package/dist/core/search/cache.js.map +1 -1
  148. package/dist/core/search/embedding-batches.js +4 -0
  149. package/dist/core/search/embedding-batches.js.map +1 -1
  150. package/dist/core/search/http-client.d.ts +29 -0
  151. package/dist/core/search/http-client.js +64 -0
  152. package/dist/core/search/http-client.js.map +1 -0
  153. package/dist/core/search/providers.d.ts +3 -13
  154. package/dist/core/search/providers.js +19 -88
  155. package/dist/core/search/providers.js.map +1 -1
  156. package/dist/core/search/semantic-defaults.js +2 -7
  157. package/dist/core/search/semantic-defaults.js.map +1 -1
  158. package/dist/core/search/vector-stores.d.ts +4 -13
  159. package/dist/core/search/vector-stores.js +40 -93
  160. package/dist/core/search/vector-stores.js.map +1 -1
  161. package/dist/core/sentry/helpers.d.ts +27 -0
  162. package/dist/core/sentry/helpers.js +171 -0
  163. package/dist/core/sentry/helpers.js.map +1 -0
  164. package/dist/core/sentry/instrument.d.ts +25 -0
  165. package/dist/core/sentry/instrument.js +204 -0
  166. package/dist/core/sentry/instrument.js.map +1 -0
  167. package/dist/core/shared/command-types.js.map +1 -1
  168. package/dist/core/shared/conflict-markers.js.map +1 -1
  169. package/dist/core/shared/constants.d.ts +3 -0
  170. package/dist/core/shared/constants.js +58 -1
  171. package/dist/core/shared/constants.js.map +1 -1
  172. package/dist/core/shared/errors.js.map +1 -1
  173. package/dist/core/shared/index.d.ts +1 -0
  174. package/dist/core/shared/index.js +1 -0
  175. package/dist/core/shared/index.js.map +1 -1
  176. package/dist/core/shared/primitives.d.ts +13 -0
  177. package/dist/core/shared/primitives.js +33 -0
  178. package/dist/core/shared/primitives.js.map +1 -0
  179. package/dist/core/shared/serialization.js.map +1 -1
  180. package/dist/core/shared/text-normalization.js.map +1 -1
  181. package/dist/core/shared/time.js.map +1 -1
  182. package/dist/core/store/front-matter-cache.d.ts +6 -0
  183. package/dist/core/store/front-matter-cache.js +150 -0
  184. package/dist/core/store/front-matter-cache.js.map +1 -0
  185. package/dist/core/store/index.js.map +1 -1
  186. package/dist/core/store/item-format-migration.js.map +1 -1
  187. package/dist/core/store/item-store.js +46 -36
  188. package/dist/core/store/item-store.js.map +1 -1
  189. package/dist/core/store/paths.js.map +1 -1
  190. package/dist/core/store/settings.js +36 -0
  191. package/dist/core/store/settings.js.map +1 -1
  192. package/dist/core/telemetry/consent.js.map +1 -1
  193. package/dist/core/telemetry/observability.d.ts +24 -0
  194. package/dist/core/telemetry/observability.js +185 -0
  195. package/dist/core/telemetry/observability.js.map +1 -0
  196. package/dist/core/telemetry/runtime.d.ts +29 -3
  197. package/dist/core/telemetry/runtime.js +337 -25
  198. package/dist/core/telemetry/runtime.js.map +1 -1
  199. package/dist/core/test/background-runs.js.map +1 -1
  200. package/dist/core/test/item-test-run-tracking.js.map +1 -1
  201. package/dist/sdk/cli-contracts.js +28 -0
  202. package/dist/sdk/cli-contracts.js.map +1 -1
  203. package/dist/sdk/index.d.ts +1 -1
  204. package/dist/sdk/index.js.map +1 -1
  205. package/dist/types/index.js.map +1 -1
  206. package/dist/types.d.ts +21 -0
  207. package/dist/types.js +11 -0
  208. package/dist/types.js.map +1 -1
  209. package/docs/AGENT_GUIDE.md +125 -0
  210. package/docs/ARCHITECTURE.md +201 -478
  211. package/docs/COMMANDS.md +209 -0
  212. package/docs/CONFIGURATION.md +146 -0
  213. package/docs/EXTENSIONS.md +146 -645
  214. package/docs/QUICKSTART.md +108 -0
  215. package/docs/README.md +70 -0
  216. package/docs/RELEASING.md +92 -50
  217. package/docs/SDK.md +127 -68
  218. package/docs/TESTING.md +125 -0
  219. package/docs/examples/starter-extension/README.md +39 -25
  220. package/package.json +24 -11
  221. package/dist/command-types.d.ts +0 -1
  222. package/dist/command-types.js +0 -2
  223. package/dist/command-types.js.map +0 -1
  224. package/dist/constants.d.ts +0 -1
  225. package/dist/constants.js +0 -2
  226. package/dist/constants.js.map +0 -1
  227. package/dist/errors.d.ts +0 -1
  228. package/dist/errors.js +0 -2
  229. package/dist/errors.js.map +0 -1
  230. package/dist/fs-utils.d.ts +0 -1
  231. package/dist/fs-utils.js +0 -2
  232. package/dist/fs-utils.js.map +0 -1
  233. package/dist/history.d.ts +0 -1
  234. package/dist/history.js +0 -2
  235. package/dist/history.js.map +0 -1
  236. package/dist/id.d.ts +0 -1
  237. package/dist/id.js +0 -2
  238. package/dist/id.js.map +0 -1
  239. package/dist/item-format.d.ts +0 -1
  240. package/dist/item-format.js +0 -2
  241. package/dist/item-format.js.map +0 -1
  242. package/dist/item-store.d.ts +0 -1
  243. package/dist/item-store.js +0 -2
  244. package/dist/item-store.js.map +0 -1
  245. package/dist/lock.d.ts +0 -1
  246. package/dist/lock.js +0 -2
  247. package/dist/lock.js.map +0 -1
  248. package/dist/output.d.ts +0 -1
  249. package/dist/output.js +0 -2
  250. package/dist/output.js.map +0 -1
  251. package/dist/parse.d.ts +0 -1
  252. package/dist/parse.js +0 -2
  253. package/dist/parse.js.map +0 -1
  254. package/dist/paths.d.ts +0 -1
  255. package/dist/paths.js +0 -2
  256. package/dist/paths.js.map +0 -1
  257. package/dist/serialization.d.ts +0 -1
  258. package/dist/serialization.js +0 -2
  259. package/dist/serialization.js.map +0 -1
  260. package/dist/settings.d.ts +0 -1
  261. package/dist/settings.js +0 -2
  262. package/dist/settings.js.map +0 -1
  263. package/dist/time.d.ts +0 -1
  264. package/dist/time.js +0 -2
  265. package/dist/time.js.map +0 -1
@@ -0,0 +1,125 @@
1
+ # Testing
2
+
3
+ This page describes safe local tests, linked tests, coverage, and release-readiness checks.
4
+
5
+ ## Agent Quick Context
6
+
7
+ - Unit and integration tests must not read or write real `.agents/pm` data.
8
+ - Prefer `node scripts/run-tests.mjs ...` because it creates sandboxed `PM_PATH` and `PM_GLOBAL_PATH`.
9
+ - Linked tests added through `pm test` should use sandbox-safe commands.
10
+ - Run linked tests before closing the item that owns the work.
11
+
12
+ Tracked documentation work: [pm-1sb2](../.agents/pm/tasks/pm-1sb2.toon).
13
+
14
+ ## Standard Local Checks
15
+
16
+ ```bash
17
+ pnpm build
18
+ pnpm typecheck
19
+ node scripts/run-tests.mjs test
20
+ node scripts/run-tests.mjs coverage
21
+ ```
22
+
23
+ `node scripts/run-tests.mjs` wraps Vitest in temporary tracker roots, then cleans them up.
24
+
25
+ ## Focused Test Runs
26
+
27
+ ```bash
28
+ node scripts/run-tests.mjs test -- tests/unit/output.spec.ts
29
+ node scripts/run-tests.mjs test -- tests/integration/cli.integration.spec.ts
30
+ ```
31
+
32
+ Use focused runs while iterating, then run coverage before closure when risk or scope warrants it.
33
+
34
+ ## Linked Tests
35
+
36
+ Add tests to the item that owns the work:
37
+
38
+ ```bash
39
+ pm test <item-id> --add command="node scripts/run-tests.mjs test -- tests/unit/output.spec.ts",scope=project,timeout_seconds=240
40
+ pm test <item-id> --run --progress
41
+ ```
42
+
43
+ For broader sweeps:
44
+
45
+ ```bash
46
+ pm test-all --status in_progress --progress
47
+ ```
48
+
49
+ Do not link `pm test-all` itself as an item-level test command. It creates recursive orchestration.
50
+
51
+ ## PM Context Modes
52
+
53
+ Linked PM commands default to schema context: settings and extensions are seeded, but tracker item data stays isolated.
54
+
55
+ Use explicit modes when needed:
56
+
57
+ ```bash
58
+ pm test <item-id> --run --pm-context schema
59
+ pm test <item-id> --run --pm-context tracker
60
+ pm test <item-id> --run --pm-context auto --check-context --auto-pm-context
61
+ ```
62
+
63
+ Strict governance flags:
64
+
65
+ ```bash
66
+ pm test <item-id> --run \
67
+ --fail-on-context-mismatch \
68
+ --fail-on-skipped \
69
+ --fail-on-empty-test-run \
70
+ --require-assertions-for-pm
71
+ ```
72
+
73
+ ## Linked-Test Assertions
74
+
75
+ Linked tests can include assertion metadata:
76
+
77
+ ```bash
78
+ pm test <item-id> --add \
79
+ command="pm list-open --json",scope=project,timeout_seconds=120,assert_json_field_gte=count:0
80
+ ```
81
+
82
+ Common assertion keys include:
83
+
84
+ - `assert_stdout_contains`
85
+ - `assert_stdout_regex`
86
+ - `assert_stderr_contains`
87
+ - `assert_stderr_regex`
88
+ - `assert_stdout_min_lines`
89
+ - `assert_json_field_equals`
90
+ - `assert_json_field_gte`
91
+
92
+ ## Background Runs
93
+
94
+ ```bash
95
+ pm test <item-id> --run --background
96
+ pm test-all --status in_progress --background
97
+ pm test-runs
98
+ pm test-runs status <run-id>
99
+ pm test-runs logs <run-id> --tail 100
100
+ pm test-runs stop <run-id>
101
+ pm test-runs resume <run-id>
102
+ ```
103
+
104
+ Background run fingerprints prevent duplicate parallel runs for the same linked-test set.
105
+
106
+ ## Release-Readiness Checks
107
+
108
+ For substantial changes:
109
+
110
+ ```bash
111
+ pnpm build
112
+ pnpm typecheck
113
+ node scripts/run-tests.mjs coverage
114
+ pm validate --check-resolution --check-history-drift
115
+ pm health --check-only
116
+ ```
117
+
118
+ For documentation-only changes, at minimum run:
119
+
120
+ ```bash
121
+ pnpm build
122
+ rg -n "forbidden-private-token-or-path" README.md docs
123
+ ```
124
+
125
+ Replace the placeholder pattern with the actual sensitive term being guarded in the current task.
@@ -1,48 +1,62 @@
1
- # Starter Extension (All 9 Capabilities)
1
+ # Starter Extension
2
2
 
3
- This example demonstrates a single extension that uses the public SDK only:
4
- `@unbrained/pm-cli/sdk`.
3
+ This example demonstrates all extension capability categories through the public SDK import `@unbrained/pm-cli/sdk`.
5
4
 
6
- It is intentionally small and "feature complete" as a reference scaffold.
5
+ ## Agent Quick Context
6
+
7
+ - Copy this folder when you need a complete capability reference.
8
+ - Use `pm extension init ./my-extension` when you need a smaller scaffold.
9
+ - Keep production extensions narrower than this example.
10
+
11
+ Related docs:
12
+
13
+ - [Extensions](../../EXTENSIONS.md)
14
+ - [SDK](../../SDK.md)
7
15
 
8
16
  ## Files
9
17
 
10
- - `manifest.json` declares all 9 capabilities.
11
- - `package.json` declares the SDK dependency.
12
- - `index.js` registers one or more examples for each capability.
18
+ | File | Purpose |
19
+ |------|---------|
20
+ | `manifest.json` | declares extension metadata and capabilities |
21
+ | `package.json` | declares local package metadata and SDK dependency |
22
+ | `index.js` | registers examples for each capability category |
13
23
 
14
24
  ## Capability Coverage
15
25
 
16
- 1. `commands` - `api.registerCommand(...)` + `api.registerFlags(...)`
17
- 2. `parser` - `api.registerParser(...)`
18
- 3. `preflight` - `api.registerPreflight(...)`
19
- 4. `services` - `api.registerService(...)`
20
- 5. `renderers` - `api.registerRenderer(...)`
21
- 6. `hooks` - `api.hooks.beforeCommand/afterCommand/onWrite/onRead/onIndex`
22
- 7. `schema` - `api.registerItemFields/registerItemTypes/registerMigration`
23
- 8. `importers` - `api.registerImporter/registerExporter`
24
- 9. `search` - `api.registerSearchProvider/registerVectorStoreAdapter`
26
+ | Capability | Example surface |
27
+ |------------|-----------------|
28
+ | `commands` | `api.registerCommand(...)` |
29
+ | `parser` | `api.registerParser(...)` |
30
+ | `preflight` | `api.registerPreflight(...)` |
31
+ | `services` | `api.registerService(...)` |
32
+ | `renderers` | `api.registerRenderer(...)` |
33
+ | `hooks` | command, read, write, and index hooks |
34
+ | `schema` | item fields, item types, migrations |
35
+ | `importers` | importer and exporter registration |
36
+ | `search` | search provider and vector adapter |
25
37
 
26
38
  ## Quick Start
27
39
 
28
- 1. Copy this folder into an extension root:
29
- - project: `.agents/pm/extensions/starter-extension`
30
- - global: `~/.pm-cli/extensions/starter-extension`
31
- 2. Install dependencies in that copied folder:
40
+ Copy into an extension root:
32
41
 
33
42
  ```bash
43
+ mkdir -p .agents/pm/extensions
44
+ cp -R docs/examples/starter-extension .agents/pm/extensions/starter-extension
45
+ cd .agents/pm/extensions/starter-extension
34
46
  npm install
35
47
  ```
36
48
 
37
- 3. Activate and test:
49
+ Activate and test from the repository root:
38
50
 
39
51
  ```bash
40
- pm extension --activate --project starter-extension
52
+ pm extension activate starter-extension --project
41
53
  pm starter ping --name "agent"
54
+ pm extension doctor --detail summary
42
55
  ```
43
56
 
44
57
  ## Notes
45
58
 
46
- - This starter is for learning and scaffolding, not production behavior.
47
- - Keep service/renderer overrides narrowly scoped in real extensions.
48
- - Prefer returning deterministic JSON-like objects from handlers.
59
+ - This starter is for learning and scaffold reference.
60
+ - Real extensions should declare only the capabilities they need.
61
+ - Keep service, parser, and preflight overrides narrow and well tested.
62
+ - Return deterministic JSON-like objects from command handlers.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-cli",
3
- "version": "2026.5.1",
3
+ "version": "2026.5.3-5",
4
4
  "description": "Git-native project management CLI for humans and agents.",
5
5
  "type": "module",
6
6
  "author": "unbrained",
@@ -54,13 +54,21 @@
54
54
  "typecheck": "tsc --noEmit -p tsconfig.json",
55
55
  "start": "node dist/cli.js",
56
56
  "dev": "tsx src/cli.ts",
57
- "test": "pnpm build && vitest run",
58
- "test:coverage": "pnpm build && vitest run --coverage",
57
+ "test": "node scripts/run-tests.mjs test",
58
+ "test:coverage": "node scripts/run-tests.mjs coverage",
59
+ "quality:static": "node scripts/release/static-quality-gate.mjs",
59
60
  "version:check": "node scripts/release-version.mjs check",
60
61
  "version:next": "node scripts/release-version.mjs next",
61
62
  "release:notes": "node scripts/generate-release-notes.mjs",
63
+ "release:changelog": "node scripts/release/changelog-promote.mjs",
64
+ "release:gates": "node scripts/release/run-gates.mjs --telemetry-mode best-effort",
65
+ "release:pipeline": "node scripts/release/run-release-pipeline.mjs",
66
+ "release:pipeline:dry-run": "node scripts/release/run-release-pipeline.mjs --dry-run",
62
67
  "security:scan": "node scripts/check-secrets.mjs",
63
68
  "smoke:npx": "node scripts/smoke-npx-from-pack.mjs",
69
+ "sentry:inject": "sentry-cli sourcemaps inject dist/",
70
+ "sentry:upload": "sentry-cli sourcemaps upload --org unbrained --project pm-cli --release \"pm-cli@$npm_package_version\" --validate dist/",
71
+ "build:sentry": "pnpm build && pnpm sentry:inject && pnpm sentry:upload",
64
72
  "prepublishOnly": "pnpm build"
65
73
  },
66
74
  "keywords": [
@@ -81,22 +89,27 @@
81
89
  "node": ">=20"
82
90
  },
83
91
  "dependencies": {
84
- "@toon-format/toon": "latest",
85
- "commander": "latest",
92
+ "@sentry/node": "^10.51.0",
93
+ "@toon-format/toon": "^2.1.0",
94
+ "commander": "^14.0.3",
86
95
  "fast-glob": "^3.3.3",
87
- "fast-json-patch": "latest",
88
- "undici": "latest",
89
- "zod": "latest"
96
+ "fast-json-patch": "^3.1.1",
97
+ "undici": "^8.1.0",
98
+ "zod": "^4.3.6"
90
99
  },
91
100
  "devDependencies": {
92
- "@types/node": "latest",
101
+ "@sentry/cli": "^3.4.1",
102
+ "@types/node": "^25.6.0",
93
103
  "@vitest/coverage-v8": "^4.1.5",
94
104
  "c8": "^11.0.0",
95
- "tsx": "latest",
96
- "typescript": "latest",
105
+ "tsx": "^4.21.0",
106
+ "typescript": "^6.0.3",
97
107
  "vitest": "^4.1.5"
98
108
  },
99
109
  "pnpm": {
110
+ "onlyBuiltDependencies": [
111
+ "@sentry/cli"
112
+ ],
100
113
  "overrides": {
101
114
  "rollup": ">=4.59.0",
102
115
  "brace-expansion": ">=5.0.5",
@@ -1 +0,0 @@
1
- export * from "./core/shared/command-types.js";
@@ -1,2 +0,0 @@
1
- export * from "./core/shared/command-types.js";
2
- //# sourceMappingURL=command-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-types.js","sourceRoot":"","sources":["../src/command-types.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
@@ -1 +0,0 @@
1
- export * from "./core/shared/constants.js";
package/dist/constants.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./core/shared/constants.js";
2
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
package/dist/errors.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./core/shared/errors.js";
package/dist/errors.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./core/shared/errors.js";
2
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -1 +0,0 @@
1
- export * from "./core/fs/fs-utils.js";
package/dist/fs-utils.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./core/fs/fs-utils.js";
2
- //# sourceMappingURL=fs-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs-utils.js","sourceRoot":"","sources":["../src/fs-utils.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
package/dist/history.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./core/history/history.js";
package/dist/history.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./core/history/history.js";
2
- //# sourceMappingURL=history.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
package/dist/id.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./core/item/id.js";
package/dist/id.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./core/item/id.js";
2
- //# sourceMappingURL=id.js.map
package/dist/id.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- export * from "./core/item/item-format.js";
@@ -1,2 +0,0 @@
1
- export * from "./core/item/item-format.js";
2
- //# sourceMappingURL=item-format.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"item-format.js","sourceRoot":"","sources":["../src/item-format.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
@@ -1 +0,0 @@
1
- export * from "./core/store/item-store.js";
@@ -1,2 +0,0 @@
1
- export * from "./core/store/item-store.js";
2
- //# sourceMappingURL=item-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"item-store.js","sourceRoot":"","sources":["../src/item-store.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
package/dist/lock.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./core/lock/lock.js";
package/dist/lock.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./core/lock/lock.js";
2
- //# sourceMappingURL=lock.js.map
package/dist/lock.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
package/dist/output.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./core/output/output.js";
package/dist/output.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./core/output/output.js";
2
- //# sourceMappingURL=output.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
package/dist/parse.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./core/item/parse.js";
package/dist/parse.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./core/item/parse.js";
2
- //# sourceMappingURL=parse.js.map
package/dist/parse.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
package/dist/paths.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./core/store/paths.js";
package/dist/paths.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./core/store/paths.js";
2
- //# sourceMappingURL=paths.js.map
package/dist/paths.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -1 +0,0 @@
1
- export * from "./core/shared/serialization.js";
@@ -1,2 +0,0 @@
1
- export * from "./core/shared/serialization.js";
2
- //# sourceMappingURL=serialization.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
@@ -1 +0,0 @@
1
- export * from "./core/store/settings.js";
package/dist/settings.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./core/store/settings.js";
2
- //# sourceMappingURL=settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
package/dist/time.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./core/shared/time.js";
package/dist/time.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./core/shared/time.js";
2
- //# sourceMappingURL=time.js.map
package/dist/time.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}