@unbrained/pm-cli 2026.5.24 → 2026.5.27

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 (238) hide show
  1. package/CHANGELOG.md +946 -525
  2. package/README.md +2 -10
  3. package/dist/cli/bootstrap-args.d.ts +18 -1
  4. package/dist/cli/bootstrap-args.js +143 -3
  5. package/dist/cli/bootstrap-args.js.map +1 -1
  6. package/dist/cli/commander-usage.js +134 -11
  7. package/dist/cli/commander-usage.js.map +1 -1
  8. package/dist/cli/commands/append.js +4 -3
  9. package/dist/cli/commands/append.js.map +1 -1
  10. package/dist/cli/commands/claim.js +5 -4
  11. package/dist/cli/commands/claim.js.map +1 -1
  12. package/dist/cli/commands/close.js +4 -3
  13. package/dist/cli/commands/close.js.map +1 -1
  14. package/dist/cli/commands/completion.d.ts +2 -2
  15. package/dist/cli/commands/completion.js +109 -56
  16. package/dist/cli/commands/completion.js.map +1 -1
  17. package/dist/cli/commands/config.d.ts +1 -1
  18. package/dist/cli/commands/config.js +82 -4
  19. package/dist/cli/commands/config.js.map +1 -1
  20. package/dist/cli/commands/create.js +7 -272
  21. package/dist/cli/commands/create.js.map +1 -1
  22. package/dist/cli/commands/delete.js +4 -3
  23. package/dist/cli/commands/delete.js.map +1 -1
  24. package/dist/cli/commands/docs.d.ts +1 -12
  25. package/dist/cli/commands/docs.js +8 -312
  26. package/dist/cli/commands/docs.js.map +1 -1
  27. package/dist/cli/commands/extension/bundled-catalog.d.ts +14 -0
  28. package/dist/cli/commands/extension/bundled-catalog.js +268 -0
  29. package/dist/cli/commands/extension/bundled-catalog.js.map +1 -0
  30. package/dist/cli/commands/extension/doctor.d.ts +31 -0
  31. package/dist/cli/commands/extension/doctor.js +345 -0
  32. package/dist/cli/commands/extension/doctor.js.map +1 -0
  33. package/dist/cli/commands/extension/install-sources.d.ts +37 -0
  34. package/dist/cli/commands/extension/install-sources.js +384 -0
  35. package/dist/cli/commands/extension/install-sources.js.map +1 -0
  36. package/dist/cli/commands/extension/managed-state.d.ts +48 -0
  37. package/dist/cli/commands/extension/managed-state.js +172 -0
  38. package/dist/cli/commands/extension/managed-state.js.map +1 -0
  39. package/dist/cli/commands/extension/scaffold.d.ts +14 -0
  40. package/dist/cli/commands/extension/scaffold.js +169 -0
  41. package/dist/cli/commands/extension/scaffold.js.map +1 -0
  42. package/dist/cli/commands/extension/shared.d.ts +14 -0
  43. package/dist/cli/commands/extension/shared.js +106 -0
  44. package/dist/cli/commands/extension/shared.js.map +1 -0
  45. package/dist/cli/commands/extension.d.ts +36 -68
  46. package/dist/cli/commands/extension.js +143 -1422
  47. package/dist/cli/commands/extension.js.map +1 -1
  48. package/dist/cli/commands/files.d.ts +1 -12
  49. package/dist/cli/commands/files.js +11 -308
  50. package/dist/cli/commands/files.js.map +1 -1
  51. package/dist/cli/commands/get.js +4 -3
  52. package/dist/cli/commands/get.js.map +1 -1
  53. package/dist/cli/commands/health.js +17 -3
  54. package/dist/cli/commands/health.js.map +1 -1
  55. package/dist/cli/commands/history-redact.js +23 -18
  56. package/dist/cli/commands/history-redact.js.map +1 -1
  57. package/dist/cli/commands/history-repair.js +24 -18
  58. package/dist/cli/commands/history-repair.js.map +1 -1
  59. package/dist/cli/commands/legacy-none-tokens.d.ts +3 -0
  60. package/dist/cli/commands/legacy-none-tokens.js +39 -0
  61. package/dist/cli/commands/legacy-none-tokens.js.map +1 -0
  62. package/dist/cli/commands/linked-artifacts.d.ts +96 -0
  63. package/dist/cli/commands/linked-artifacts.js +335 -0
  64. package/dist/cli/commands/linked-artifacts.js.map +1 -0
  65. package/dist/cli/commands/linked-test-parsers.d.ts +28 -0
  66. package/dist/cli/commands/linked-test-parsers.js +192 -0
  67. package/dist/cli/commands/linked-test-parsers.js.map +1 -0
  68. package/dist/cli/commands/list.js +19 -4
  69. package/dist/cli/commands/list.js.map +1 -1
  70. package/dist/cli/commands/normalize.js +4 -3
  71. package/dist/cli/commands/normalize.js.map +1 -1
  72. package/dist/cli/commands/recurrence-parsers.d.ts +26 -0
  73. package/dist/cli/commands/recurrence-parsers.js +98 -0
  74. package/dist/cli/commands/recurrence-parsers.js.map +1 -0
  75. package/dist/cli/commands/restore.js +19 -8
  76. package/dist/cli/commands/restore.js.map +1 -1
  77. package/dist/cli/commands/search.js +5 -4
  78. package/dist/cli/commands/search.js.map +1 -1
  79. package/dist/cli/commands/test/linked-command-detection.d.ts +37 -0
  80. package/dist/cli/commands/test/linked-command-detection.js +200 -0
  81. package/dist/cli/commands/test/linked-command-detection.js.map +1 -0
  82. package/dist/cli/commands/test.d.ts +1 -2
  83. package/dist/cli/commands/test.js +7 -349
  84. package/dist/cli/commands/test.js.map +1 -1
  85. package/dist/cli/commands/update-many.js +4 -3
  86. package/dist/cli/commands/update-many.js.map +1 -1
  87. package/dist/cli/commands/update.js +62 -354
  88. package/dist/cli/commands/update.js.map +1 -1
  89. package/dist/cli/error-guidance.d.ts +1 -0
  90. package/dist/cli/error-guidance.js +6 -2
  91. package/dist/cli/error-guidance.js.map +1 -1
  92. package/dist/cli/main.d.ts +11 -0
  93. package/dist/cli/main.js +76 -28
  94. package/dist/cli/main.js.map +1 -1
  95. package/dist/cli/register-list-query.d.ts +4 -1
  96. package/dist/cli/register-list-query.js +242 -203
  97. package/dist/cli/register-list-query.js.map +1 -1
  98. package/dist/cli/register-mutation.js +24 -9
  99. package/dist/cli/register-mutation.js.map +1 -1
  100. package/dist/cli/register-operations.js +3 -3
  101. package/dist/cli/register-operations.js.map +1 -1
  102. package/dist/cli/register-setup.js +12 -7
  103. package/dist/cli/register-setup.js.map +1 -1
  104. package/dist/cli/registration-helpers.js +3 -2
  105. package/dist/cli/registration-helpers.js.map +1 -1
  106. package/dist/cli.js +4 -3
  107. package/dist/cli.js.map +1 -1
  108. package/dist/core/config/positional-value.d.ts +44 -0
  109. package/dist/core/config/positional-value.js +109 -0
  110. package/dist/core/config/positional-value.js.map +1 -0
  111. package/dist/core/extensions/extension-capability-aliases.d.ts +14 -0
  112. package/dist/core/extensions/extension-capability-aliases.js +159 -0
  113. package/dist/core/extensions/extension-capability-aliases.js.map +1 -0
  114. package/dist/core/extensions/extension-hook-runtime.d.ts +13 -0
  115. package/dist/core/extensions/extension-hook-runtime.js +414 -0
  116. package/dist/core/extensions/extension-hook-runtime.js.map +1 -0
  117. package/dist/core/extensions/extension-policy.d.ts +69 -0
  118. package/dist/core/extensions/extension-policy.js +481 -0
  119. package/dist/core/extensions/extension-policy.js.map +1 -0
  120. package/dist/core/extensions/extension-registries.d.ts +8 -0
  121. package/dist/core/extensions/extension-registries.js +52 -0
  122. package/dist/core/extensions/extension-registries.js.map +1 -0
  123. package/dist/core/extensions/extension-runtime-helpers.d.ts +6 -0
  124. package/dist/core/extensions/extension-runtime-helpers.js +29 -0
  125. package/dist/core/extensions/extension-runtime-helpers.js.map +1 -0
  126. package/dist/core/extensions/extension-types.d.ts +13 -39
  127. package/dist/core/extensions/extension-types.js +34 -2
  128. package/dist/core/extensions/extension-types.js.map +1 -1
  129. package/dist/core/extensions/index.d.ts +7 -0
  130. package/dist/core/extensions/index.js +11 -2
  131. package/dist/core/extensions/index.js.map +1 -1
  132. package/dist/core/extensions/loader.d.ts +4 -22
  133. package/dist/core/extensions/loader.js +22 -1139
  134. package/dist/core/extensions/loader.js.map +1 -1
  135. package/dist/core/history/drift-scan.d.ts +11 -0
  136. package/dist/core/history/drift-scan.js +114 -32
  137. package/dist/core/history/drift-scan.js.map +1 -1
  138. package/dist/core/history/history-rewrite.d.ts +43 -0
  139. package/dist/core/history/history-rewrite.js +48 -0
  140. package/dist/core/history/history-rewrite.js.map +1 -0
  141. package/dist/core/history/history.js +5 -4
  142. package/dist/core/history/history.js.map +1 -1
  143. package/dist/core/history/replay.js +4 -3
  144. package/dist/core/history/replay.js.map +1 -1
  145. package/dist/core/item/item-record.d.ts +19 -0
  146. package/dist/core/item/item-record.js +24 -0
  147. package/dist/core/item/item-record.js.map +1 -0
  148. package/dist/core/output/mutation-projection.d.ts +31 -0
  149. package/dist/core/output/mutation-projection.js +103 -0
  150. package/dist/core/output/mutation-projection.js.map +1 -0
  151. package/dist/core/output/output.d.ts +2 -0
  152. package/dist/core/output/output.js +5 -3
  153. package/dist/core/output/output.js.map +1 -1
  154. package/dist/core/schema/runtime-schema.js +8 -38
  155. package/dist/core/schema/runtime-schema.js.map +1 -1
  156. package/dist/core/search/vector-stores.js +46 -9
  157. package/dist/core/search/vector-stores.js.map +1 -1
  158. package/dist/core/sentry/helpers.d.ts +1 -1
  159. package/dist/core/sentry/helpers.js +20 -3
  160. package/dist/core/sentry/helpers.js.map +1 -1
  161. package/dist/core/shared/command-types.d.ts +1 -0
  162. package/dist/core/shared/command-types.js +2 -2
  163. package/dist/core/shared/command-types.js.map +1 -1
  164. package/dist/core/shared/constants.d.ts +10 -1
  165. package/dist/core/shared/constants.js +56 -58
  166. package/dist/core/shared/constants.js.map +1 -1
  167. package/dist/core/shared/primitives.d.ts +23 -0
  168. package/dist/core/shared/primitives.js +39 -2
  169. package/dist/core/shared/primitives.js.map +1 -1
  170. package/dist/core/store/front-matter-cache.d.ts +16 -2
  171. package/dist/core/store/front-matter-cache.js +99 -33
  172. package/dist/core/store/front-matter-cache.js.map +1 -1
  173. package/dist/core/store/item-store.js +8 -73
  174. package/dist/core/store/item-store.js.map +1 -1
  175. package/dist/mcp/server.js +76 -28
  176. package/dist/mcp/server.js.map +1 -1
  177. package/dist/sdk/cli-contracts/enum-contracts.d.ts +20 -0
  178. package/dist/sdk/cli-contracts/enum-contracts.js +156 -0
  179. package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -0
  180. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +14 -0
  181. package/dist/sdk/cli-contracts/tool-option-contracts.js +243 -0
  182. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -0
  183. package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +11 -0
  184. package/dist/sdk/cli-contracts/tool-parameter-tables.js +901 -0
  185. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -0
  186. package/dist/sdk/cli-contracts.d.ts +11 -33
  187. package/dist/sdk/cli-contracts.js +23 -1356
  188. package/dist/sdk/cli-contracts.js.map +1 -1
  189. package/dist/sdk/package-import-adapters.d.ts +74 -0
  190. package/dist/sdk/package-import-adapters.js +186 -0
  191. package/dist/sdk/package-import-adapters.js.map +1 -0
  192. package/dist/sdk/package-runtime-options.d.ts +26 -0
  193. package/dist/sdk/package-runtime-options.js +71 -0
  194. package/dist/sdk/package-runtime-options.js.map +1 -0
  195. package/dist/sdk/runtime.d.ts +2 -0
  196. package/dist/sdk/runtime.js +4 -2
  197. package/dist/sdk/runtime.js.map +1 -1
  198. package/docs/AGENT_GUIDE.md +6 -10
  199. package/docs/CLAUDE_CODE_PLUGIN.md +5 -28
  200. package/docs/CODEX_PLUGIN.md +5 -5
  201. package/docs/COMMANDS.md +19 -3
  202. package/docs/CONFIGURATION.md +15 -0
  203. package/docs/EXTENSIONS.md +4 -63
  204. package/docs/RELEASING.md +4 -4
  205. package/marketplace.json +7 -3
  206. package/package.json +9 -6
  207. package/packages/pm-beads/extensions/beads/index.js +2 -49
  208. package/packages/pm-beads/extensions/beads/index.ts +2 -54
  209. package/packages/pm-beads/extensions/beads/runtime-loader.js +86 -0
  210. package/packages/pm-beads/extensions/beads/runtime-loader.ts +88 -0
  211. package/packages/pm-beads/extensions/beads/runtime.js +26 -115
  212. package/packages/pm-beads/extensions/beads/runtime.ts +33 -132
  213. package/packages/pm-calendar/extensions/calendar/index.js +47 -2
  214. package/packages/pm-calendar/extensions/calendar/index.ts +52 -2
  215. package/packages/pm-calendar/extensions/calendar/runtime.js +1 -0
  216. package/packages/pm-calendar/extensions/calendar/runtime.ts +1 -0
  217. package/packages/pm-governance-audit/extensions/governance-audit/runtime.js +14 -41
  218. package/packages/pm-governance-audit/extensions/governance-audit/runtime.ts +25 -41
  219. package/packages/pm-guide-shell/extensions/guide-shell/runtime.js +10 -50
  220. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +17 -50
  221. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.js +8 -40
  222. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.ts +10 -40
  223. package/packages/pm-search-advanced/extensions/search-advanced/index.js +1 -1
  224. package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +4 -37
  225. package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +6 -37
  226. package/packages/pm-todos/extensions/todos/index.js +3 -50
  227. package/packages/pm-todos/extensions/todos/index.ts +3 -55
  228. package/packages/pm-todos/extensions/todos/runtime-loader.js +86 -0
  229. package/packages/pm-todos/extensions/todos/runtime-loader.ts +88 -0
  230. package/packages/pm-todos/extensions/todos/runtime.js +24 -117
  231. package/packages/pm-todos/extensions/todos/runtime.ts +32 -129
  232. package/plugins/pm-claude/README.md +2 -2
  233. package/plugins/pm-claude/commands/pm-planner.md +1 -15
  234. package/plugins/pm-claude/scripts/pm-mcp-server.mjs +5 -2
  235. package/plugins/pm-claude/skills/pm-planner/SKILL.md +3 -21
  236. package/plugins/pm-codex/scripts/pm-mcp-server.mjs +15 -6
  237. package/plugins/pm-codex/skills/pm-native/SKILL.md +1 -13
  238. package/PRD.md +0 -1734
@@ -1,4 +1,11 @@
1
+ import fs from "node:fs/promises";
1
2
  import type { GlobalOptions } from "../../core/shared/command-types.js";
3
+ import { parseExtensionManifest, validateExtensionDirectory } from "./extension/shared.js";
4
+ import { readManagedExtensionState, writeManagedExtensionState, resolveManagedExtensionStatePath, type ManagedExtensionSource, type ManagedExtensionRecord, type ManagedExtensionState } from "./extension/managed-state.js";
5
+ import { parseExtensionInstallSource } from "./extension/install-sources.js";
6
+ export { parseExtensionManifest, validateExtensionDirectory, readManagedExtensionState, writeManagedExtensionState, resolveManagedExtensionStatePath, parseExtensionInstallSource, };
7
+ export type { ManagedExtensionSource, ManagedExtensionRecord, ManagedExtensionState, };
8
+ export type { ManagedExtensionStateReadResult } from "./extension/managed-state.js";
2
9
  export type ExtensionCommandAction = "install" | "uninstall" | "explore" | "manage" | "reload" | "doctor" | "catalog" | "adopt" | "adopt-all" | "activate" | "deactivate" | "init";
3
10
  export type ExtensionScope = "project" | "global";
4
11
  export type ExtensionActivationStatus = "ok" | "failed" | "not_loaded" | "unknown";
@@ -32,65 +39,6 @@ export interface ExtensionCommandOptions {
32
39
  fields?: string;
33
40
  vocabulary?: "extension" | "package";
34
41
  }
35
- export interface ManagedExtensionSource {
36
- kind: "local" | "github" | "npm" | "builtin";
37
- input: string;
38
- location: string;
39
- name?: string;
40
- package?: string;
41
- version?: string;
42
- repository?: string;
43
- owner?: string;
44
- repo?: string;
45
- ref?: string;
46
- subpath?: string;
47
- commit?: string;
48
- }
49
- export interface ManagedExtensionRecord {
50
- name: string;
51
- directory: string;
52
- scope: ExtensionScope;
53
- manifest_version: string;
54
- manifest_entry: string;
55
- capabilities: string[];
56
- installed_at: string;
57
- updated_at: string;
58
- source: ManagedExtensionSource;
59
- last_update_check_at?: string;
60
- last_update_remote_commit?: string;
61
- update_available?: boolean | null;
62
- update_error?: string;
63
- }
64
- export interface ManagedExtensionState {
65
- version: number;
66
- updated_at: string;
67
- entries: ManagedExtensionRecord[];
68
- }
69
- export interface ManagedExtensionStateReadResult {
70
- path: string;
71
- state: ManagedExtensionState;
72
- warnings: string[];
73
- }
74
- interface LocalInstallSource {
75
- kind: "local";
76
- input: string;
77
- absolute_path: string;
78
- }
79
- interface GithubInstallSource {
80
- kind: "github";
81
- input: string;
82
- owner: string;
83
- repo: string;
84
- repository: string;
85
- ref?: string;
86
- subpath?: string;
87
- }
88
- interface NpmInstallSource {
89
- kind: "npm";
90
- input: string;
91
- spec: string;
92
- }
93
- type InstallSource = LocalInstallSource | GithubInstallSource | NpmInstallSource;
94
42
  export interface ManagedExtensionSummary {
95
43
  name: string;
96
44
  directory: string;
@@ -125,13 +73,33 @@ export interface ExtensionCommandResult {
125
73
  warnings: string[];
126
74
  details: Record<string, unknown>;
127
75
  }
128
- type ExtensionUpdateCheckStatus = "checked" | "skipped_unmanaged" | "skipped_non_github" | "failed" | "not_checked";
129
- export declare function resolveManagedExtensionStatePath(extensionsRoot: string): string;
130
- export declare function readManagedExtensionState(extensionsRoot: string): Promise<ManagedExtensionStateReadResult>;
131
- export declare function writeManagedExtensionState(extensionsRoot: string, state: ManagedExtensionState): Promise<void>;
132
- export declare function parseExtensionInstallSource(input: string, options?: {
133
- forceGithub?: boolean;
134
- ref?: string;
135
- }): InstallSource;
76
+ export interface ExtensionTriageSummary {
77
+ status: "ok" | "warn";
78
+ warning_count: number;
79
+ warning_codes: string[];
80
+ warnings: string[];
81
+ policy_warning_count: number;
82
+ policy_violation_count: number;
83
+ policy_blocked_count: number;
84
+ total_extensions: number;
85
+ managed_total: number;
86
+ enabled_total: number;
87
+ active_total: number;
88
+ update_available_total: number;
89
+ update_health_coverage: "full" | "partial";
90
+ update_health_partial: boolean;
91
+ unmanaged_loaded_extension_count: number;
92
+ unmanaged_loaded_extensions: string[];
93
+ unmanaged_expected_extension_count: number;
94
+ unmanaged_expected_extensions: string[];
95
+ unmanaged_action_required_extension_count: number;
96
+ unmanaged_action_required_extensions: string[];
97
+ update_check_status_totals: Record<ExtensionUpdateCheckStatus, number>;
98
+ update_check_failed_total: number;
99
+ top_warnings: string[];
100
+ remediation: string[];
101
+ }
102
+ export type ExtensionUpdateCheckStatus = "checked" | "skipped_unmanaged" | "skipped_non_github" | "failed" | "not_checked";
103
+ export type ExtensionDoctorDetailMode = "summary" | "deep";
104
+ export declare function copyExtensionDirectoryForInstall(sourceDirectory: string, destinationDirectory: string, copyDirectory?: typeof fs.cp): Promise<void>;
136
105
  export declare function runExtension(target: string | undefined, options: ExtensionCommandOptions, global: GlobalOptions): Promise<ExtensionCommandResult>;
137
- export {};