@unbrained/pm-cli 2026.5.10 → 2026.5.12

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 (172) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/AGENTS.md +3 -116
  3. package/CHANGELOG.md +14 -0
  4. package/PRD.md +11 -11
  5. package/README.md +20 -2
  6. package/dist/cli/argv-utils.d.ts +5 -0
  7. package/dist/cli/argv-utils.js +34 -0
  8. package/dist/cli/argv-utils.js.map +1 -0
  9. package/dist/cli/bootstrap-args.d.ts +15 -0
  10. package/dist/cli/bootstrap-args.js +211 -0
  11. package/dist/cli/bootstrap-args.js.map +1 -1
  12. package/dist/cli/commander-usage.js +109 -3
  13. package/dist/cli/commander-usage.js.map +1 -1
  14. package/dist/cli/commands/completion.js +7 -3
  15. package/dist/cli/commands/completion.js.map +1 -1
  16. package/dist/cli/commands/contracts.d.ts +19 -0
  17. package/dist/cli/commands/contracts.js +40 -2
  18. package/dist/cli/commands/contracts.js.map +1 -1
  19. package/dist/cli/commands/create.js +112 -51
  20. package/dist/cli/commands/create.js.map +1 -1
  21. package/dist/cli/commands/docs.js +9 -2
  22. package/dist/cli/commands/docs.js.map +1 -1
  23. package/dist/cli/commands/extension.d.ts +12 -3
  24. package/dist/cli/commands/extension.js +421 -69
  25. package/dist/cli/commands/extension.js.map +1 -1
  26. package/dist/cli/commands/files.js +9 -2
  27. package/dist/cli/commands/files.js.map +1 -1
  28. package/dist/cli/commands/index.d.ts +1 -0
  29. package/dist/cli/commands/index.js +1 -0
  30. package/dist/cli/commands/index.js.map +1 -1
  31. package/dist/cli/commands/init.d.ts +2 -0
  32. package/dist/cli/commands/init.js +21 -1
  33. package/dist/cli/commands/init.js.map +1 -1
  34. package/dist/cli/commands/metadata-normalizers.d.ts +4 -0
  35. package/dist/cli/commands/metadata-normalizers.js +37 -0
  36. package/dist/cli/commands/metadata-normalizers.js.map +1 -0
  37. package/dist/cli/commands/reindex.js +173 -135
  38. package/dist/cli/commands/reindex.js.map +1 -1
  39. package/dist/cli/commands/search.js +16 -6
  40. package/dist/cli/commands/search.js.map +1 -1
  41. package/dist/cli/commands/test.js +23 -8
  42. package/dist/cli/commands/test.js.map +1 -1
  43. package/dist/cli/commands/update.js +70 -39
  44. package/dist/cli/commands/update.js.map +1 -1
  45. package/dist/cli/commands/upgrade.d.ts +63 -0
  46. package/dist/cli/commands/upgrade.js +260 -0
  47. package/dist/cli/commands/upgrade.js.map +1 -0
  48. package/dist/cli/error-guidance.d.ts +9 -1
  49. package/dist/cli/error-guidance.js +147 -6
  50. package/dist/cli/error-guidance.js.map +1 -1
  51. package/dist/cli/guide-topics.js +18 -16
  52. package/dist/cli/guide-topics.js.map +1 -1
  53. package/dist/cli/help-content.js +42 -2
  54. package/dist/cli/help-content.js.map +1 -1
  55. package/dist/cli/help-json-payload.js +11 -1
  56. package/dist/cli/help-json-payload.js.map +1 -1
  57. package/dist/cli/main.js +69 -6
  58. package/dist/cli/main.js.map +1 -1
  59. package/dist/cli/register-setup.js +174 -82
  60. package/dist/cli/register-setup.js.map +1 -1
  61. package/dist/cli/telemetry-flush.d.ts +2 -0
  62. package/dist/cli/telemetry-flush.js +4 -0
  63. package/dist/cli/telemetry-flush.js.map +1 -0
  64. package/dist/cli.js +1 -2
  65. package/dist/cli.js.map +1 -1
  66. package/dist/core/extensions/extension-types.d.ts +72 -0
  67. package/dist/core/extensions/extension-types.js +24 -0
  68. package/dist/core/extensions/extension-types.js.map +1 -1
  69. package/dist/core/extensions/loader.d.ts +1 -0
  70. package/dist/core/extensions/loader.js +766 -7
  71. package/dist/core/extensions/loader.js.map +1 -1
  72. package/dist/core/lock/lock.js +2 -0
  73. package/dist/core/lock/lock.js.map +1 -1
  74. package/dist/core/packages/manifest.d.ts +13 -0
  75. package/dist/core/packages/manifest.js +139 -0
  76. package/dist/core/packages/manifest.js.map +1 -0
  77. package/dist/core/sentry/instrument.d.ts +15 -0
  78. package/dist/core/sentry/instrument.js +35 -3
  79. package/dist/core/sentry/instrument.js.map +1 -1
  80. package/dist/core/shared/constants.js +20 -0
  81. package/dist/core/shared/constants.js.map +1 -1
  82. package/dist/core/shared/errors.d.ts +8 -0
  83. package/dist/core/shared/errors.js.map +1 -1
  84. package/dist/core/shared/levenshtein.d.ts +1 -0
  85. package/dist/core/shared/levenshtein.js +37 -0
  86. package/dist/core/shared/levenshtein.js.map +1 -0
  87. package/dist/core/store/paths.js +34 -1
  88. package/dist/core/store/paths.js.map +1 -1
  89. package/dist/core/store/settings.js +210 -1
  90. package/dist/core/store/settings.js.map +1 -1
  91. package/dist/core/telemetry/runtime.d.ts +1 -0
  92. package/dist/core/telemetry/runtime.js +102 -3
  93. package/dist/core/telemetry/runtime.js.map +1 -1
  94. package/dist/mcp/server.js +11 -2
  95. package/dist/mcp/server.js.map +1 -1
  96. package/dist/sdk/cli-contracts.d.ts +38 -17
  97. package/dist/sdk/cli-contracts.js +387 -35
  98. package/dist/sdk/cli-contracts.js.map +1 -1
  99. package/dist/sdk/index.d.ts +13 -1
  100. package/dist/sdk/index.js +9 -1
  101. package/dist/sdk/index.js.map +1 -1
  102. package/dist/types.d.ts +41 -0
  103. package/dist/types.js.map +1 -1
  104. package/docs/ARCHITECTURE.md +1 -1
  105. package/docs/CLAUDE_CODE_PLUGIN.md +39 -0
  106. package/docs/COMMANDS.md +14 -1
  107. package/docs/EXTENSIONS.md +782 -12
  108. package/docs/MIGRATION_CLI_SIMPLIFICATION.md +64 -0
  109. package/docs/QUICKSTART.md +10 -2
  110. package/docs/README.md +4 -6
  111. package/docs/SDK.md +445 -0
  112. package/docs/examples/ci/github-actions-pm-extension-gate.yml +53 -0
  113. package/docs/examples/ci/gitlab-ci-pm-extension-gate.yml +41 -0
  114. package/docs/examples/ci/jenkins-pm-extension-gate.Jenkinsfile +45 -0
  115. package/docs/examples/policy-restricted-extension/README.md +74 -0
  116. package/docs/examples/policy-restricted-extension/index.js +21 -0
  117. package/docs/examples/policy-restricted-extension/manifest.json +21 -0
  118. package/docs/examples/policy-restricted-extension/package.json +8 -0
  119. package/docs/examples/sdk-app-embedding/README.md +39 -0
  120. package/docs/examples/sdk-app-embedding/package.json +9 -0
  121. package/docs/examples/sdk-app-embedding/run-embedded-pm.mjs +61 -0
  122. package/docs/examples/sdk-contract-consumer/README.md +57 -0
  123. package/docs/examples/sdk-contract-consumer/inspect-contracts.mjs +47 -0
  124. package/docs/examples/sdk-contract-consumer/package.json +10 -0
  125. package/docs/examples/starter-extension/README.md +57 -42
  126. package/docs/examples/starter-extension/manifest.json +15 -0
  127. package/marketplace.json +3 -3
  128. package/package.json +5 -23
  129. package/packages/pm-beads/README.md +10 -0
  130. package/{.agents/pm → packages/pm-beads}/extensions/beads/index.js +24 -9
  131. package/packages/pm-beads/extensions/beads/index.ts +131 -0
  132. package/packages/pm-beads/package.json +17 -0
  133. package/packages/pm-todos/README.md +11 -0
  134. package/{.agents/pm → packages/pm-todos}/extensions/todos/index.js +24 -9
  135. package/packages/pm-todos/extensions/todos/index.ts +149 -0
  136. package/{.agents/pm → packages/pm-todos}/extensions/todos/runtime.js +1 -1
  137. package/{.agents/pm → packages/pm-todos}/extensions/todos/runtime.ts +1 -1
  138. package/packages/pm-todos/package.json +17 -0
  139. package/plugins/pm-cli-claude/.claude-plugin/plugin.json +2 -2
  140. package/plugins/pm-cli-claude/README.md +54 -14
  141. package/plugins/pm-cli-claude/agents/pm-delivery-chain.md +88 -0
  142. package/plugins/pm-cli-claude/agents/pm-triage-agent.md +83 -0
  143. package/plugins/pm-cli-claude/agents/pm-verification-agent.md +88 -0
  144. package/plugins/pm-cli-claude/hooks/session-start.mjs +35 -21
  145. package/.agents/pm/extensions/.managed-extensions.json +0 -42
  146. package/.agents/skills/HARNESS_COMPATIBILITY.md +0 -45
  147. package/.agents/skills/README.md +0 -21
  148. package/.agents/skills/pm-developer/SKILL.md +0 -73
  149. package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +0 -48
  150. package/.agents/skills/pm-developer/references/PROMPTS.md +0 -17
  151. package/.agents/skills/pm-extensions/SKILL.md +0 -57
  152. package/.agents/skills/pm-extensions/references/LIFECYCLE.md +0 -40
  153. package/.agents/skills/pm-extensions/references/TROUBLESHOOTING.md +0 -25
  154. package/.agents/skills/pm-sdk/SKILL.md +0 -50
  155. package/.agents/skills/pm-sdk/references/INTEGRATION_CHECKLIST.md +0 -31
  156. package/.agents/skills/pm-sdk/references/PROMPTS.md +0 -13
  157. package/.agents/skills/pm-user/SKILL.md +0 -59
  158. package/.agents/skills/pm-user/references/PROMPTS.md +0 -17
  159. package/.agents/skills/pm-user/references/WORKFLOWS.md +0 -35
  160. package/.pi/README.md +0 -26
  161. package/.pi/extensions/pm-cli/index.js +0 -147
  162. package/.pi/prompts/pm-workflow.md +0 -5
  163. package/.pi/skills/pm-native/SKILL.md +0 -40
  164. package/.pi/skills/pm-release/SKILL.md +0 -35
  165. package/dist/pi/native.d.ts +0 -5
  166. package/dist/pi/native.js +0 -183
  167. package/dist/pi/native.js.map +0 -1
  168. package/docs/PI_PACKAGE.md +0 -56
  169. /package/{.agents/pm → packages/pm-beads}/extensions/beads/manifest.json +0 -0
  170. /package/{.agents/pm → packages/pm-beads}/extensions/beads/runtime.js +0 -0
  171. /package/{.agents/pm → packages/pm-beads}/extensions/beads/runtime.ts +0 -0
  172. /package/{.agents/pm → packages/pm-todos}/extensions/todos/manifest.json +0 -0
@@ -1,4 +1,7 @@
1
- import { runConfig, runExtension, runInit, runTemplatesList, runTemplatesSave, runTemplatesShow, } from "./commands/index.js";
1
+ import fs from "node:fs/promises";
2
+ import { EXIT_CODE } from "../core/shared/constants.js";
3
+ import { PmCliError } from "../core/shared/errors.js";
4
+ import { runConfig, runExtension, runInit, runTemplatesList, runTemplatesSave, runTemplatesShow, runUpgrade, } from "./commands/index.js";
2
5
  import { collect, getGlobalOptions, normalizeCreateOptions, printError, printResult, } from "./registration-helpers.js";
3
6
  function normalizeExtensionOptions(options, forcedAction) {
4
7
  const isForcedAction = (action) => forcedAction === action;
@@ -18,6 +21,7 @@ function normalizeExtensionOptions(options, forcedAction) {
18
21
  uninstall: isForcedAction("uninstall") || readBoolean("uninstall"),
19
22
  explore: isForcedAction("explore") || readBoolean("explore"),
20
23
  manage: isForcedAction("manage") || readBoolean("manage"),
24
+ reload: isForcedAction("reload") || readBoolean("reload"),
21
25
  doctor: isForcedAction("doctor") || readBoolean("doctor"),
22
26
  adopt: isForcedAction("adopt") || readBoolean("adopt"),
23
27
  adoptAll: isForcedAction("adopt-all") || readBoolean("adoptAll", "adopt_all", "adopt-all"),
@@ -31,13 +35,36 @@ function normalizeExtensionOptions(options, forcedAction) {
31
35
  ref: readString("ref"),
32
36
  detail: readString("detail"),
33
37
  trace: readBoolean("trace"),
38
+ watch: readBoolean("watch"),
34
39
  runtimeProbe: readBoolean("runtimeProbe", "runtime_probe", "runtime-probe"),
35
40
  fixManagedState: readBoolean("fixManagedState", "fix_managed_state", "fix-managed-state"),
36
41
  strictExit: readBoolean("strictExit", "strict_exit", "strict-exit"),
37
42
  failOnWarn: readBoolean("failOnWarn", "fail_on_warn", "fail-on-warn"),
38
43
  };
39
44
  }
40
- import { EXIT_CODE } from "../core/shared/constants.js";
45
+ async function looksLikeShellExpandedWildcard(targets) {
46
+ if (targets.length <= 1) {
47
+ return false;
48
+ }
49
+ const visibleEntries = (await fs.readdir(process.cwd()))
50
+ .filter((entry) => !entry.startsWith("."))
51
+ .sort((left, right) => left.localeCompare(right));
52
+ const normalizedTargets = [...targets].sort((left, right) => left.localeCompare(right));
53
+ return (visibleEntries.length === normalizedTargets.length &&
54
+ visibleEntries.every((entry, index) => entry === normalizedTargets[index]));
55
+ }
56
+ async function normalizeInstallTargets(targets) {
57
+ const normalizedTargets = (Array.isArray(targets) ? targets : typeof targets === "string" ? [targets] : [])
58
+ .map((target) => target.trim())
59
+ .filter((target) => target.length > 0);
60
+ if (normalizedTargets.length <= 1) {
61
+ return normalizedTargets[0];
62
+ }
63
+ if (await looksLikeShellExpandedWildcard(normalizedTargets)) {
64
+ return "*";
65
+ }
66
+ throw new PmCliError(`Install accepts one package source at a time. To install bundled first-party packages, quote the wildcard: pm install '*'`, EXIT_CODE.USAGE);
67
+ }
41
68
  async function executeExtensionCommand(target, options, command, forcedAction) {
42
69
  const globalOptions = getGlobalOptions(command);
43
70
  const startedAt = Date.now();
@@ -64,17 +91,136 @@ function addExtensionScopeOptions(command) {
64
91
  .option("--local", "Alias for --project")
65
92
  .option("--global", "Use global extension scope");
66
93
  }
94
+ function addPackageScopeOptions(command) {
95
+ return command
96
+ .option("--project", "Use project package scope (default)")
97
+ .option("--local", "Alias for --project")
98
+ .option("--global", "Use global package scope");
99
+ }
100
+ function addLifecycleScopeOptions(command, vocabulary) {
101
+ return vocabulary === "package" ? addPackageScopeOptions(command) : addExtensionScopeOptions(command);
102
+ }
103
+ function registerLifecycleCommand(program, vocabulary) {
104
+ const noun = vocabulary === "package" ? "package" : "extension";
105
+ const plural = vocabulary === "package" ? "packages" : "extensions";
106
+ const commandName = vocabulary;
107
+ const lifecycleCommand = program
108
+ .command(commandName)
109
+ .argument("[target]", `${noun[0].toUpperCase()}${noun.slice(1)} source/name or scaffold target path (for --init/--scaffold)`)
110
+ .option("--init", `Generate a starter ${noun} scaffold at target path`)
111
+ .option("--scaffold", "Alias for --init")
112
+ .option("--install", `Install ${noun} from local path or GitHub source`)
113
+ .option("--uninstall", `Uninstall an installed ${noun}`)
114
+ .option("--explore", `List discovered ${plural} in selected scope`)
115
+ .option("--manage", `List managed ${plural} with update-check metadata`)
116
+ .option("--reload", `Reload ${plural} with cache-busted module imports`)
117
+ .option("--watch", "Use watch mode with --reload")
118
+ .option("--doctor", `Run consolidated ${noun} diagnostics (summary/deep modes)`)
119
+ .option("--adopt", `Adopt an existing unmanaged ${noun} into managed metadata`)
120
+ .option("--adopt-all", `Adopt all unmanaged ${plural} into managed metadata`)
121
+ .option("--activate", `Activate a ${noun} in selected scope settings`)
122
+ .option("--deactivate", `Deactivate a ${noun} in selected scope settings`)
123
+ .option("--project", `Use project ${noun} scope (default)`)
124
+ .option("--local", "Alias for --project")
125
+ .option("--global", `Use global ${noun} scope`)
126
+ .option("--gh <owner/repo[/path]>", "Install from GitHub shorthand source")
127
+ .option("--github <owner/repo[/path]>", "Alias for --gh")
128
+ .option("--ref <ref>", "Git ref/branch/tag for GitHub install sources")
129
+ .option("--detail <mode>", `${noun[0].toUpperCase()}${noun.slice(1)} diagnostics detail mode (summary|deep)`)
130
+ .option("--trace", "Include actionable registration traces in doctor deep diagnostics")
131
+ .option("--runtime-probe", "Opt-in runtime activation probe for manage output parity")
132
+ .option("--fix-managed-state", `Adopt unmanaged ${plural} before diagnostics/update checks`)
133
+ .option("--strict-exit", "Return non-zero exit when doctor warnings are present (ok=false)")
134
+ .option("--fail-on-warn", "Alias for --strict-exit (doctor)")
135
+ .description(vocabulary === "package"
136
+ ? "Manage package lifecycle operations for project or global scope. Backward-compatible with extension packages."
137
+ : "Manage extension lifecycle operations for project or global scope.")
138
+ .action(async (target, _options, command) => {
139
+ await executeExtensionCommand(target, command.opts(), command);
140
+ });
141
+ if (vocabulary === "package") {
142
+ lifecycleCommand.alias("packages");
143
+ }
144
+ addLifecycleScopeOptions(lifecycleCommand
145
+ .command("init")
146
+ .alias("scaffold")
147
+ .argument("<target>", `Scaffold target directory path`)
148
+ .description(`Generate a starter ${noun} scaffold with manifest and entrypoint.`), vocabulary).action(async (target, _options, command) => {
149
+ await executeExtensionCommand(target, command.opts(), command, "init");
150
+ });
151
+ addLifecycleScopeOptions(lifecycleCommand
152
+ .command("install")
153
+ .argument("[targets...]", `${noun[0].toUpperCase()}${noun.slice(1)} source (local path, bundled alias, wildcard, or GitHub source)`)
154
+ .option("--gh <owner/repo[/path]>", "Install from GitHub shorthand source")
155
+ .option("--github <owner/repo[/path]>", "Alias for --gh")
156
+ .option("--ref <ref>", "Git ref/branch/tag for GitHub install sources")
157
+ .description(`Install ${noun} from local path or GitHub source.`), vocabulary).action(async (targets, _options, command) => {
158
+ const target = await normalizeInstallTargets(targets);
159
+ await executeExtensionCommand(target, command.opts(), command, "install");
160
+ });
161
+ addLifecycleScopeOptions(lifecycleCommand.command("uninstall").argument("<target>", `${noun[0].toUpperCase()}${noun.slice(1)} name`).description(`Uninstall an installed ${noun}.`), vocabulary).action(async (target, _options, command) => {
162
+ await executeExtensionCommand(target, command.opts(), command, "uninstall");
163
+ });
164
+ addLifecycleScopeOptions(lifecycleCommand.command("explore").description(`List discovered ${plural} in selected scope.`), vocabulary).action(async (_options, command) => {
165
+ await executeExtensionCommand(undefined, command.opts(), command, "explore");
166
+ });
167
+ addLifecycleScopeOptions(lifecycleCommand
168
+ .command("manage")
169
+ .option("--runtime-probe", "Opt-in runtime activation probe for manage output parity")
170
+ .option("--fix-managed-state", `Adopt unmanaged ${plural} before diagnostics/update checks`)
171
+ .description(`List managed ${plural} with update-check metadata.`), vocabulary).action(async (_options, command) => {
172
+ await executeExtensionCommand(undefined, command.opts(), command, "manage");
173
+ });
174
+ addLifecycleScopeOptions(lifecycleCommand
175
+ .command("reload")
176
+ .option("--watch", "Use watch mode for repeated reload checks")
177
+ .description(`Reload ${plural} with cache-busted module imports.`), vocabulary).action(async (_options, command) => {
178
+ await executeExtensionCommand(undefined, command.opts(), command, "reload");
179
+ });
180
+ addLifecycleScopeOptions(lifecycleCommand
181
+ .command("doctor")
182
+ .option("--detail <mode>", `Detail mode for ${noun} diagnostics (summary|deep)`)
183
+ .option("--trace", "Include actionable registration traces in doctor deep diagnostics")
184
+ .option("--fix-managed-state", `Adopt unmanaged ${plural} before diagnostics/update checks`)
185
+ .option("--strict-exit", "Return non-zero exit when doctor warnings are present (ok=false)")
186
+ .option("--fail-on-warn", "Alias for --strict-exit (doctor)")
187
+ .description(`Run consolidated ${noun} diagnostics (summary/deep modes).`), vocabulary).action(async (_options, command) => {
188
+ await executeExtensionCommand(undefined, command.opts(), command, "doctor");
189
+ });
190
+ addLifecycleScopeOptions(lifecycleCommand
191
+ .command("adopt")
192
+ .argument("<target>", `${noun[0].toUpperCase()}${noun.slice(1)} name`)
193
+ .option("--gh <owner/repo[/path]>", `GitHub provenance shorthand for adopted ${noun}`)
194
+ .option("--github <owner/repo[/path]>", "Alias for --gh")
195
+ .option("--ref <ref>", "Git ref/branch/tag for GitHub shorthand source")
196
+ .description(`Adopt an existing unmanaged ${noun} into managed metadata.`), vocabulary).action(async (target, _options, command) => {
197
+ await executeExtensionCommand(target, command.opts(), command, "adopt");
198
+ });
199
+ addLifecycleScopeOptions(lifecycleCommand.command("adopt-all").description(`Adopt all unmanaged ${plural} into managed metadata.`), vocabulary).action(async (_options, command) => {
200
+ await executeExtensionCommand(undefined, command.opts(), command, "adopt-all");
201
+ });
202
+ addLifecycleScopeOptions(lifecycleCommand.command("activate").argument("<target>", `${noun[0].toUpperCase()}${noun.slice(1)} name`).description(`Activate a ${noun} in selected scope settings.`), vocabulary).action(async (target, _options, command) => {
203
+ await executeExtensionCommand(target, command.opts(), command, "activate");
204
+ });
205
+ addLifecycleScopeOptions(lifecycleCommand.command("deactivate").argument("<target>", `${noun[0].toUpperCase()}${noun.slice(1)} name`).description(`Deactivate a ${noun} in selected scope settings.`), vocabulary).action(async (target, _options, command) => {
206
+ await executeExtensionCommand(target, command.opts(), command, "deactivate");
207
+ });
208
+ }
67
209
  export function registerSetupCommands(program) {
68
210
  program
69
211
  .command("init")
70
212
  .argument("[prefix]", "Optional id prefix")
71
213
  .option("--preset <value>", "Governance preset for new setups: minimal|default|strict")
214
+ .option("--defaults", "Use non-interactive setup defaults without opening the wizard")
215
+ .option("--author <value>", "Set the default mutation author for this project")
72
216
  .description("Initialize pm storage and defaults for the current workspace.")
73
217
  .action(async (prefix, options, command) => {
74
218
  const globalOptions = getGlobalOptions(command);
75
219
  const startedAt = Date.now();
76
220
  const result = await runInit(prefix, globalOptions, {
77
221
  preset: typeof options.preset === "string" ? options.preset : undefined,
222
+ defaults: options.defaults === true,
223
+ author: typeof options.author === "string" ? options.author : undefined,
78
224
  });
79
225
  printResult(result, globalOptions);
80
226
  if (globalOptions.profile) {
@@ -128,92 +274,38 @@ export function registerSetupCommands(program) {
128
274
  printError(`profile:command=config took_ms=${Date.now() - startedAt}`);
129
275
  }
130
276
  });
131
- const extensionCommand = program
132
- .command("extension")
133
- .argument("[target]", "Extension source/name or scaffold target path (for --init/--scaffold)")
134
- .option("--init", "Generate a starter extension scaffold at target path")
135
- .option("--scaffold", "Alias for --init")
136
- .option("--install", "Install extension from local path or GitHub source")
137
- .option("--uninstall", "Uninstall an installed extension")
138
- .option("--explore", "List discovered extensions in selected scope")
139
- .option("--manage", "List managed extensions with update-check metadata")
140
- .option("--doctor", "Run consolidated extension diagnostics (summary/deep modes)")
141
- .option("--adopt", "Adopt an existing unmanaged extension into managed metadata")
142
- .option("--adopt-all", "Adopt all unmanaged extensions into managed metadata")
143
- .option("--activate", "Activate an extension in selected scope settings")
144
- .option("--deactivate", "Deactivate an extension in selected scope settings")
145
- .option("--project", "Use project extension scope (default)")
146
- .option("--local", "Alias for --project")
147
- .option("--global", "Use global extension scope")
148
- .option("--gh <owner/repo[/path]>", "Install from GitHub shorthand source")
149
- .option("--github <owner/repo[/path]>", "Alias for --gh")
150
- .option("--ref <ref>", "Git ref/branch/tag for GitHub install sources")
151
- .option("--detail <mode>", "Detail mode for extension diagnostics (summary|deep)")
152
- .option("--trace", "Include actionable registration traces in doctor deep diagnostics")
153
- .option("--runtime-probe", "Opt-in runtime activation probe for manage output parity")
154
- .option("--fix-managed-state", "Adopt unmanaged extensions before diagnostics/update checks")
155
- .option("--strict-exit", "Return non-zero exit when doctor warnings are present (ok=false)")
156
- .option("--fail-on-warn", "Alias for --strict-exit (doctor)")
157
- .description("Manage extension lifecycle operations for project or global scope.")
158
- .action(async (target, _options, command) => {
159
- await executeExtensionCommand(target, command.opts(), command);
160
- });
161
- addExtensionScopeOptions(extensionCommand
162
- .command("init")
163
- .alias("scaffold")
164
- .argument("<target>", "Scaffold target directory path")
165
- .description("Generate a starter extension scaffold with manifest and entrypoint.")).action(async (target, _options, command) => {
166
- await executeExtensionCommand(target, command.opts(), command, "init");
167
- });
168
- addExtensionScopeOptions(extensionCommand
277
+ registerLifecycleCommand(program, "extension");
278
+ registerLifecycleCommand(program, "package");
279
+ addPackageScopeOptions(program
169
280
  .command("install")
170
- .argument("[target]", "Extension source (local path or GitHub source)")
281
+ .argument("[targets...]", "Package source (local path, bundled alias, wildcard, or GitHub source)")
171
282
  .option("--gh <owner/repo[/path]>", "Install from GitHub shorthand source")
172
283
  .option("--github <owner/repo[/path]>", "Alias for --gh")
173
284
  .option("--ref <ref>", "Git ref/branch/tag for GitHub install sources")
174
- .description("Install extension from local path or GitHub source.")).action(async (target, _options, command) => {
285
+ .description("Install a pm package into the project package scope by default.")).action(async (targets, _options, command) => {
286
+ const target = await normalizeInstallTargets(targets);
175
287
  await executeExtensionCommand(target, command.opts(), command, "install");
176
288
  });
177
- addExtensionScopeOptions(extensionCommand.command("uninstall").argument("<target>", "Extension name").description("Uninstall an installed extension.")).action(async (target, _options, command) => {
178
- await executeExtensionCommand(target, command.opts(), command, "uninstall");
179
- });
180
- addExtensionScopeOptions(extensionCommand.command("explore").description("List discovered extensions in selected scope.")).action(async (_options, command) => {
181
- await executeExtensionCommand(undefined, command.opts(), command, "explore");
182
- });
183
- addExtensionScopeOptions(extensionCommand
184
- .command("manage")
185
- .option("--runtime-probe", "Opt-in runtime activation probe for manage output parity")
186
- .option("--fix-managed-state", "Adopt unmanaged extensions before diagnostics/update checks")
187
- .description("List managed extensions with update-check metadata.")).action(async (_options, command) => {
188
- await executeExtensionCommand(undefined, command.opts(), command, "manage");
189
- });
190
- addExtensionScopeOptions(extensionCommand
191
- .command("doctor")
192
- .option("--detail <mode>", "Detail mode for extension diagnostics (summary|deep)")
193
- .option("--trace", "Include actionable registration traces in doctor deep diagnostics")
194
- .option("--fix-managed-state", "Adopt unmanaged extensions before diagnostics/update checks")
195
- .option("--strict-exit", "Return non-zero exit when doctor warnings are present (ok=false)")
196
- .option("--fail-on-warn", "Alias for --strict-exit (doctor)")
197
- .description("Run consolidated extension diagnostics (summary/deep modes).")).action(async (_options, command) => {
198
- await executeExtensionCommand(undefined, command.opts(), command, "doctor");
199
- });
200
- addExtensionScopeOptions(extensionCommand
201
- .command("adopt")
202
- .argument("<target>", "Extension name")
203
- .option("--gh <owner/repo[/path]>", "GitHub provenance shorthand for adopted extension")
204
- .option("--github <owner/repo[/path]>", "Alias for --gh")
205
- .option("--ref <ref>", "Git ref/branch/tag for GitHub shorthand source")
206
- .description("Adopt an existing unmanaged extension into managed metadata.")).action(async (target, _options, command) => {
207
- await executeExtensionCommand(target, command.opts(), command, "adopt");
208
- });
209
- addExtensionScopeOptions(extensionCommand.command("adopt-all").description("Adopt all unmanaged extensions into managed metadata.")).action(async (_options, command) => {
210
- await executeExtensionCommand(undefined, command.opts(), command, "adopt-all");
211
- });
212
- addExtensionScopeOptions(extensionCommand.command("activate").argument("<target>", "Extension name").description("Activate an extension in selected scope settings.")).action(async (target, _options, command) => {
213
- await executeExtensionCommand(target, command.opts(), command, "activate");
214
- });
215
- addExtensionScopeOptions(extensionCommand.command("deactivate").argument("<target>", "Extension name").description("Deactivate an extension in selected scope settings.")).action(async (target, _options, command) => {
216
- await executeExtensionCommand(target, command.opts(), command, "deactivate");
289
+ addPackageScopeOptions(program
290
+ .command("upgrade")
291
+ .argument("[target]", "Optional managed package name/source to upgrade; omit to upgrade pm CLI and all managed packages")
292
+ .option("--dry-run", "Plan CLI/package upgrades without running npm or reinstalling packages")
293
+ .option("--cli-only", "Upgrade only the pm CLI/SDK npm package")
294
+ .option("--packages-only", "Upgrade only managed pm packages")
295
+ .option("--repair", "Force npm global reinstall when upgrading the pm CLI/SDK")
296
+ .option("--tag <value>", "npm dist-tag/version for CLI and registry package upgrades")
297
+ .option("--package-name <value>", "Override the CLI package name for self-upgrade testing")
298
+ .description("Upgrade the pm CLI/SDK and refresh managed installable pm packages.")).action(async (target, _options, command) => {
299
+ const globalOptions = getGlobalOptions(command);
300
+ const startedAt = Date.now();
301
+ const result = await runUpgrade(target, command.opts(), globalOptions);
302
+ printResult(result, globalOptions);
303
+ if (!result.ok) {
304
+ process.exitCode = EXIT_CODE.GENERIC_FAILURE;
305
+ }
306
+ if (globalOptions.profile) {
307
+ printError(`profile:command=upgrade took_ms=${Date.now() - startedAt}`);
308
+ }
217
309
  });
218
310
  const templatesCommand = program
219
311
  .command("templates")
@@ -1 +1 @@
1
- {"version":3,"file":"register-setup.js","sourceRoot":"/","sources":["cli/register-setup.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Command } from \"commander\";\nimport type { GlobalOptions } from \"../core/shared/command-types.js\";\nimport {\n runConfig,\n runExtension,\n runInit,\n runTemplatesList,\n runTemplatesSave,\n runTemplatesShow,\n} from \"./commands/index.js\";\nimport {\n collect,\n getGlobalOptions,\n normalizeCreateOptions,\n printError,\n printResult,\n} from \"./registration-helpers.js\";\n\ntype ExtensionSubcommandAction =\n | \"init\"\n | \"install\"\n | \"uninstall\"\n | \"explore\"\n | \"manage\"\n | \"doctor\"\n | \"adopt\"\n | \"adopt-all\"\n | \"activate\"\n | \"deactivate\";\n\nfunction normalizeExtensionOptions(\n options: Record<string, unknown>,\n forcedAction?: ExtensionSubcommandAction,\n): Record<string, unknown> {\n const isForcedAction = (action: ExtensionSubcommandAction): boolean => forcedAction === action;\n const readBoolean = (...keys: string[]): boolean => keys.some((key) => options[key] === true);\n const readString = (...keys: string[]): string | undefined => {\n for (const key of keys) {\n if (typeof options[key] === \"string\") {\n return options[key] as string;\n }\n }\n return undefined;\n };\n return {\n init: isForcedAction(\"init\") || readBoolean(\"init\"),\n scaffold: readBoolean(\"scaffold\"),\n install: isForcedAction(\"install\") || readBoolean(\"install\"),\n uninstall: isForcedAction(\"uninstall\") || readBoolean(\"uninstall\"),\n explore: isForcedAction(\"explore\") || readBoolean(\"explore\"),\n manage: isForcedAction(\"manage\") || readBoolean(\"manage\"),\n doctor: isForcedAction(\"doctor\") || readBoolean(\"doctor\"),\n adopt: isForcedAction(\"adopt\") || readBoolean(\"adopt\"),\n adoptAll: isForcedAction(\"adopt-all\") || readBoolean(\"adoptAll\", \"adopt_all\", \"adopt-all\"),\n activate: isForcedAction(\"activate\") || readBoolean(\"activate\"),\n deactivate: isForcedAction(\"deactivate\") || readBoolean(\"deactivate\"),\n project: readBoolean(\"project\"),\n local: readBoolean(\"local\"),\n global: readBoolean(\"global\"),\n gh: readString(\"gh\"),\n github: readString(\"github\"),\n ref: readString(\"ref\"),\n detail: readString(\"detail\"),\n trace: readBoolean(\"trace\"),\n runtimeProbe: readBoolean(\"runtimeProbe\", \"runtime_probe\", \"runtime-probe\"),\n fixManagedState: readBoolean(\"fixManagedState\", \"fix_managed_state\", \"fix-managed-state\"),\n strictExit: readBoolean(\"strictExit\", \"strict_exit\", \"strict-exit\"),\n failOnWarn: readBoolean(\"failOnWarn\", \"fail_on_warn\", \"fail-on-warn\"),\n };\n}\n\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\n\nasync function executeExtensionCommand(\n target: string | undefined,\n options: Record<string, unknown>,\n command: Command,\n forcedAction?: ExtensionSubcommandAction,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const normalizedOptions = normalizeExtensionOptions(options, forcedAction);\n const result = await runExtension(target, normalizedOptions, globalOptions);\n printResult(result, globalOptions);\n const strictExit = Boolean(normalizedOptions.strictExit) || Boolean(normalizedOptions.failOnWarn);\n if (result.action === \"doctor\" && strictExit) {\n const detailsRecord = result.details as Record<string, unknown>;\n const summary = (detailsRecord.summary ?? null) as Record<string, unknown> | null;\n const summaryStatus = summary && typeof summary.status === \"string\" ? summary.status : undefined;\n const shouldFail = summaryStatus ? summaryStatus !== \"ok\" : result.warnings.length > 0;\n if (shouldFail) {\n process.exitCode = EXIT_CODE.GENERIC_FAILURE;\n }\n }\n if (globalOptions.profile) {\n printError(`profile:command=extension took_ms=${Date.now() - startedAt}`);\n }\n}\n\nfunction addExtensionScopeOptions<T extends Command>(command: T): T {\n return command\n .option(\"--project\", \"Use project extension scope (default)\")\n .option(\"--local\", \"Alias for --project\")\n .option(\"--global\", \"Use global extension scope\");\n}\n\nexport function registerSetupCommands(program: Command): void {\n program\n .command(\"init\")\n .argument(\"[prefix]\", \"Optional id prefix\")\n .option(\"--preset <value>\", \"Governance preset for new setups: minimal|default|strict\")\n .description(\"Initialize pm storage and defaults for the current workspace.\")\n .action(async (prefix: string | undefined, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runInit(\n prefix,\n globalOptions,\n {\n preset: typeof options.preset === \"string\" ? options.preset : undefined,\n },\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=init took_ms=${Date.now() - startedAt}`);\n }\n });\n\n program\n .command(\"config\")\n .argument(\"<scope>\", \"Config scope: project|global\")\n .argument(\"<action>\", \"Config action: get|set|list|export\")\n .argument(\n \"[key]\",\n \"Config key for get|set: definition-of-done|item-format|history-missing-stream-policy|sprint-release-format-policy|parent-reference-policy|metadata-validation-profile|metadata-required-fields|lifecycle-stale-blocker-reason-patterns|lifecycle-closure-like-blocked-reason-patterns|lifecycle-closure-like-resolution-patterns|lifecycle-closure-like-actual-result-patterns|governance-preset|governance-ownership-enforcement|governance-create-mode-default|governance-close-validation-default|governance-parent-reference-policy|governance-metadata-validation-profile|governance-force-required-for-stale-lock|test-result-tracking|telemetry-tracking|context\",\n )\n .option(\n \"--criterion <text>\",\n \"Criteria value for definition-of-done, metadata-required-fields, or lifecycle pattern keys (repeatable for set)\",\n collect,\n )\n .option(\"--clear-criteria\", \"Clear criteria-list keys for config set operations\")\n .option(\"--format <value>\", \"Item format for item-format key: toon\")\n .option(\n \"--policy <value>\",\n \"Policy key values: history-missing-stream-policy=auto_create|strict_error; sprint-release-format-policy=warn|strict_error; parent-reference-policy=warn|strict_error; governance-preset=minimal|default|strict|custom; governance-ownership-enforcement=none|warn|strict; governance-create-mode-default=progressive|strict; governance-close-validation-default=off|warn|strict; governance-parent-reference-policy=warn|strict_error; governance-metadata-validation-profile=core|strict|custom; governance-force-required-for-stale-lock=enabled|disabled; test-result-tracking=enabled|disabled; telemetry-tracking=enabled|disabled\",\n )\n .option(\"--default-depth <value>\", \"Context default depth: brief|standard|deep\")\n .option(\"--activity-limit <n>\", \"Context default activity limit\")\n .option(\"--stale-threshold-days <n>\", \"Context staleness cutoff in days\")\n .option(\"--section-hierarchy <value>\", \"Enable/disable context hierarchy section (true|false)\")\n .option(\"--section-activity <value>\", \"Enable/disable context activity section (true|false)\")\n .option(\"--section-progress <value>\", \"Enable/disable context progress section (true|false)\")\n .option(\"--section-blockers <value>\", \"Enable/disable context blockers section (true|false)\")\n .option(\"--section-files <value>\", \"Enable/disable context files section (true|false)\")\n .option(\"--section-workload <value>\", \"Enable/disable context workload section (true|false)\")\n .option(\"--section-staleness <value>\", \"Enable/disable context staleness section (true|false)\")\n .option(\"--section-tests <value>\", \"Enable/disable context tests section (true|false)\")\n .description(\"Read or update pm settings for the current workspace or global profile.\")\n .action(async (scope: string, action: string, key: string | undefined, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const criteria = Array.isArray(options.criterion) ? (options.criterion as string[]) : [];\n const result = await runConfig(\n scope,\n action,\n key,\n {\n criterion: criteria,\n format: typeof options.format === \"string\" ? options.format : undefined,\n policy: typeof options.policy === \"string\" ? options.policy : undefined,\n clearCriteria: options.clearCriteria === true,\n defaultDepth: typeof options.defaultDepth === \"string\" ? options.defaultDepth : undefined,\n activityLimit: typeof options.activityLimit === \"string\" ? options.activityLimit : undefined,\n staleThresholdDays: typeof options.staleThresholdDays === \"string\" ? options.staleThresholdDays : undefined,\n sectionHierarchy: typeof options.sectionHierarchy === \"string\" ? options.sectionHierarchy : undefined,\n sectionActivity: typeof options.sectionActivity === \"string\" ? options.sectionActivity : undefined,\n sectionProgress: typeof options.sectionProgress === \"string\" ? options.sectionProgress : undefined,\n sectionBlockers: typeof options.sectionBlockers === \"string\" ? options.sectionBlockers : undefined,\n sectionFiles: typeof options.sectionFiles === \"string\" ? options.sectionFiles : undefined,\n sectionWorkload: typeof options.sectionWorkload === \"string\" ? options.sectionWorkload : undefined,\n sectionStaleness: typeof options.sectionStaleness === \"string\" ? options.sectionStaleness : undefined,\n sectionTests: typeof options.sectionTests === \"string\" ? options.sectionTests : undefined,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=config took_ms=${Date.now() - startedAt}`);\n }\n });\n\n const extensionCommand = program\n .command(\"extension\")\n .argument(\"[target]\", \"Extension source/name or scaffold target path (for --init/--scaffold)\")\n .option(\"--init\", \"Generate a starter extension scaffold at target path\")\n .option(\"--scaffold\", \"Alias for --init\")\n .option(\"--install\", \"Install extension from local path or GitHub source\")\n .option(\"--uninstall\", \"Uninstall an installed extension\")\n .option(\"--explore\", \"List discovered extensions in selected scope\")\n .option(\"--manage\", \"List managed extensions with update-check metadata\")\n .option(\"--doctor\", \"Run consolidated extension diagnostics (summary/deep modes)\")\n .option(\"--adopt\", \"Adopt an existing unmanaged extension into managed metadata\")\n .option(\"--adopt-all\", \"Adopt all unmanaged extensions into managed metadata\")\n .option(\"--activate\", \"Activate an extension in selected scope settings\")\n .option(\"--deactivate\", \"Deactivate an extension in selected scope settings\")\n .option(\"--project\", \"Use project extension scope (default)\")\n .option(\"--local\", \"Alias for --project\")\n .option(\"--global\", \"Use global extension scope\")\n .option(\"--gh <owner/repo[/path]>\", \"Install from GitHub shorthand source\")\n .option(\"--github <owner/repo[/path]>\", \"Alias for --gh\")\n .option(\"--ref <ref>\", \"Git ref/branch/tag for GitHub install sources\")\n .option(\"--detail <mode>\", \"Detail mode for extension diagnostics (summary|deep)\")\n .option(\"--trace\", \"Include actionable registration traces in doctor deep diagnostics\")\n .option(\"--runtime-probe\", \"Opt-in runtime activation probe for manage output parity\")\n .option(\"--fix-managed-state\", \"Adopt unmanaged extensions before diagnostics/update checks\")\n .option(\"--strict-exit\", \"Return non-zero exit when doctor warnings are present (ok=false)\")\n .option(\"--fail-on-warn\", \"Alias for --strict-exit (doctor)\")\n .description(\"Manage extension lifecycle operations for project or global scope.\")\n .action(async (target: string | undefined, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command);\n });\n\n addExtensionScopeOptions(\n extensionCommand\n .command(\"init\")\n .alias(\"scaffold\")\n .argument(\"<target>\", \"Scaffold target directory path\")\n .description(\"Generate a starter extension scaffold with manifest and entrypoint.\"),\n ).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"init\");\n });\n\n addExtensionScopeOptions(\n extensionCommand\n .command(\"install\")\n .argument(\"[target]\", \"Extension source (local path or GitHub source)\")\n .option(\"--gh <owner/repo[/path]>\", \"Install from GitHub shorthand source\")\n .option(\"--github <owner/repo[/path]>\", \"Alias for --gh\")\n .option(\"--ref <ref>\", \"Git ref/branch/tag for GitHub install sources\")\n .description(\"Install extension from local path or GitHub source.\"),\n ).action(async (target: string | undefined, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"install\");\n });\n\n addExtensionScopeOptions(\n extensionCommand.command(\"uninstall\").argument(\"<target>\", \"Extension name\").description(\"Uninstall an installed extension.\"),\n ).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"uninstall\");\n });\n\n addExtensionScopeOptions(extensionCommand.command(\"explore\").description(\"List discovered extensions in selected scope.\")).action(\n async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"explore\");\n },\n );\n\n addExtensionScopeOptions(\n extensionCommand\n .command(\"manage\")\n .option(\"--runtime-probe\", \"Opt-in runtime activation probe for manage output parity\")\n .option(\"--fix-managed-state\", \"Adopt unmanaged extensions before diagnostics/update checks\")\n .description(\"List managed extensions with update-check metadata.\"),\n ).action(async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"manage\");\n });\n\n addExtensionScopeOptions(\n extensionCommand\n .command(\"doctor\")\n .option(\"--detail <mode>\", \"Detail mode for extension diagnostics (summary|deep)\")\n .option(\"--trace\", \"Include actionable registration traces in doctor deep diagnostics\")\n .option(\"--fix-managed-state\", \"Adopt unmanaged extensions before diagnostics/update checks\")\n .option(\"--strict-exit\", \"Return non-zero exit when doctor warnings are present (ok=false)\")\n .option(\"--fail-on-warn\", \"Alias for --strict-exit (doctor)\")\n .description(\"Run consolidated extension diagnostics (summary/deep modes).\"),\n ).action(async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"doctor\");\n });\n\n addExtensionScopeOptions(\n extensionCommand\n .command(\"adopt\")\n .argument(\"<target>\", \"Extension name\")\n .option(\"--gh <owner/repo[/path]>\", \"GitHub provenance shorthand for adopted extension\")\n .option(\"--github <owner/repo[/path]>\", \"Alias for --gh\")\n .option(\"--ref <ref>\", \"Git ref/branch/tag for GitHub shorthand source\")\n .description(\"Adopt an existing unmanaged extension into managed metadata.\"),\n ).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"adopt\");\n });\n\n addExtensionScopeOptions(\n extensionCommand.command(\"adopt-all\").description(\"Adopt all unmanaged extensions into managed metadata.\"),\n ).action(async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"adopt-all\");\n });\n\n addExtensionScopeOptions(\n extensionCommand.command(\"activate\").argument(\"<target>\", \"Extension name\").description(\"Activate an extension in selected scope settings.\"),\n ).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"activate\");\n });\n\n addExtensionScopeOptions(\n extensionCommand.command(\"deactivate\").argument(\"<target>\", \"Extension name\").description(\"Deactivate an extension in selected scope settings.\"),\n ).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"deactivate\");\n });\n\n const templatesCommand = program\n .command(\"templates\")\n .description(\"Manage reusable create templates.\")\n .action(async () => {\n const globalOptions = program.opts<GlobalOptions>();\n const result = await runTemplatesList(globalOptions);\n printResult(result, globalOptions);\n });\n\n templatesCommand\n .command(\"save\")\n .argument(\"<name>\", \"Template name\")\n .option(\"--title, -t <value>\", \"Template default item title\")\n .option(\"--description, -d <value>\", \"Template default item description\")\n .option(\"--type <value>\", \"Template default item type\")\n .option(\"--status, -s <value>\", \"Template default item status\")\n .option(\"--priority, -p <value>\", \"Template default priority 0..4\")\n .option(\"--tags <value>\", \"Template default comma-separated tags\")\n .option(\"--body, -b <value>\", \"Template default item markdown body\")\n .option(\"--deadline <value>\", \"Template default deadline\")\n .option(\"--estimate, --estimated-minutes <value>\", \"Template default estimated minutes\")\n .option(\"--estimated_minutes <value>\", \"Alias for --estimated-minutes\")\n .option(\"--acceptance-criteria <value>\", \"Template default acceptance criteria\")\n .option(\"--acceptance_criteria <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--ac <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--definition-of-ready <value>\", \"Template default definition of ready\")\n .option(\"--definition_of_ready <value>\", \"Alias for --definition-of-ready\")\n .option(\"--order <value>\", \"Template default planning order/rank integer\")\n .option(\"--rank <value>\", \"Alias for --order\")\n .option(\"--goal <value>\", \"Template default goal identifier\")\n .option(\"--objective <value>\", \"Template default objective identifier\")\n .option(\"--value <value>\", \"Template default business value summary\")\n .option(\"--impact <value>\", \"Template default business impact summary\")\n .option(\"--outcome <value>\", \"Template default expected outcome summary\")\n .option(\"--why-now <value>\", \"Template default why-now rationale\")\n .option(\"--why_now <value>\", \"Alias for --why-now\")\n .option(\"--author <value>\", \"Template default mutation author\")\n .option(\"--message <value>\", \"Template default history message\")\n .option(\"--assignee <value>\", \"Template default assignee\")\n .option(\"--parent <value>\", \"Template default parent item ID\")\n .option(\"--reviewer <value>\", \"Template default reviewer\")\n .option(\"--risk <value>\", \"Template default risk level\")\n .option(\"--confidence <value>\", \"Template default confidence\")\n .option(\"--sprint <value>\", \"Template default sprint identifier\")\n .option(\"--release <value>\", \"Template default release identifier\")\n .option(\"--blocked-by <value>\", \"Template default blocked-by item ID or reason\")\n .option(\"--blocked_by <value>\", \"Alias for --blocked-by\")\n .option(\"--blocked-reason <value>\", \"Template default blocked reason\")\n .option(\"--blocked_reason <value>\", \"Alias for --blocked-reason\")\n .option(\"--unblock-note <value>\", \"Template default unblock rationale note\")\n .option(\"--unblock_note <value>\", \"Alias for --unblock-note\")\n .option(\"--reporter <value>\", \"Template default issue reporter\")\n .option(\"--severity <value>\", \"Template default issue severity\")\n .option(\"--environment <value>\", \"Template default issue environment context\")\n .option(\"--repro-steps <value>\", \"Template default issue reproduction steps\")\n .option(\"--repro_steps <value>\", \"Alias for --repro-steps\")\n .option(\"--resolution <value>\", \"Template default issue resolution summary\")\n .option(\"--expected-result <value>\", \"Template default issue expected behavior\")\n .option(\"--expected_result <value>\", \"Alias for --expected-result\")\n .option(\"--actual-result <value>\", \"Template default issue observed behavior\")\n .option(\"--actual_result <value>\", \"Alias for --actual-result\")\n .option(\"--affected-version <value>\", \"Template default affected version identifier\")\n .option(\"--affected_version <value>\", \"Alias for --affected-version\")\n .option(\"--fixed-version <value>\", \"Template default fixed version identifier\")\n .option(\"--fixed_version <value>\", \"Alias for --fixed-version\")\n .option(\"--component <value>\", \"Template default issue component ownership\")\n .option(\"--regression <value>\", \"Template default regression marker\")\n .option(\"--customer-impact <value>\", \"Template default customer impact summary\")\n .option(\"--customer_impact <value>\", \"Alias for --customer-impact\")\n .option(\n \"--dep <value>\",\n \"Template default dependency entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--type-option <value>\",\n \"Template default type option entry (repeatable; key=value or markdown pairs; use - for stdin)\",\n collect,\n )\n .option(\"--type_option <value>\", \"Alias for --type-option\", collect)\n .option(\n \"--reminder <value>\",\n \"Template default reminder entry (repeatable; at=<iso|relative>,text=<text>)\",\n collect,\n )\n .option(\n \"--event <value>\",\n \"Template default event entry (repeatable; start/end/title/recur_* fields)\",\n collect,\n )\n .option(\n \"--comment <value>\",\n \"Template default comment seed entry (repeatable; text=<value> CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--note <value>\",\n \"Template default note seed entry (repeatable; text=<value> CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--learning <value>\",\n \"Template default learning seed entry (repeatable; text=<value> CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--file <value>\",\n \"Template default linked file entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--test <value>\",\n \"Template default linked test entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--doc <value>\",\n \"Template default linked doc entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .description(\"Save or update a named create template.\")\n .action(async (name: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const normalized = normalizeCreateOptions(options, { requireType: false }) as unknown as Record<string, unknown>;\n const result = await runTemplatesSave(name, normalized, globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=templates save took_ms=${Date.now() - startedAt}`);\n }\n });\n\n templatesCommand\n .command(\"list\")\n .description(\"List saved create templates.\")\n .action(async (_options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTemplatesList(globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=templates list took_ms=${Date.now() - startedAt}`);\n }\n });\n\n templatesCommand\n .command(\"show\")\n .argument(\"<name>\", \"Template name\")\n .description(\"Show saved create template details.\")\n .action(async (name: string, _options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTemplatesShow(name, globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=templates show took_ms=${Date.now() - startedAt}`);\n }\n });\n}\n"]}
1
+ {"version":3,"file":"register-setup.js","sourceRoot":"/","sources":["cli/register-setup.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Command } from \"commander\";\nimport fs from \"node:fs/promises\";\nimport type { GlobalOptions } from \"../core/shared/command-types.js\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport {\n runConfig,\n runExtension,\n runInit,\n runTemplatesList,\n runTemplatesSave,\n runTemplatesShow,\n runUpgrade,\n} from \"./commands/index.js\";\nimport {\n collect,\n getGlobalOptions,\n normalizeCreateOptions,\n printError,\n printResult,\n} from \"./registration-helpers.js\";\n\ntype ExtensionSubcommandAction =\n | \"init\"\n | \"install\"\n | \"uninstall\"\n | \"explore\"\n | \"manage\"\n | \"reload\"\n | \"doctor\"\n | \"adopt\"\n | \"adopt-all\"\n | \"activate\"\n | \"deactivate\";\n\ntype LifecycleCommandVocabulary = \"extension\" | \"package\";\n\nfunction normalizeExtensionOptions(\n options: Record<string, unknown>,\n forcedAction?: ExtensionSubcommandAction,\n): Record<string, unknown> {\n const isForcedAction = (action: ExtensionSubcommandAction): boolean => forcedAction === action;\n const readBoolean = (...keys: string[]): boolean => keys.some((key) => options[key] === true);\n const readString = (...keys: string[]): string | undefined => {\n for (const key of keys) {\n if (typeof options[key] === \"string\") {\n return options[key] as string;\n }\n }\n return undefined;\n };\n return {\n init: isForcedAction(\"init\") || readBoolean(\"init\"),\n scaffold: readBoolean(\"scaffold\"),\n install: isForcedAction(\"install\") || readBoolean(\"install\"),\n uninstall: isForcedAction(\"uninstall\") || readBoolean(\"uninstall\"),\n explore: isForcedAction(\"explore\") || readBoolean(\"explore\"),\n manage: isForcedAction(\"manage\") || readBoolean(\"manage\"),\n reload: isForcedAction(\"reload\") || readBoolean(\"reload\"),\n doctor: isForcedAction(\"doctor\") || readBoolean(\"doctor\"),\n adopt: isForcedAction(\"adopt\") || readBoolean(\"adopt\"),\n adoptAll: isForcedAction(\"adopt-all\") || readBoolean(\"adoptAll\", \"adopt_all\", \"adopt-all\"),\n activate: isForcedAction(\"activate\") || readBoolean(\"activate\"),\n deactivate: isForcedAction(\"deactivate\") || readBoolean(\"deactivate\"),\n project: readBoolean(\"project\"),\n local: readBoolean(\"local\"),\n global: readBoolean(\"global\"),\n gh: readString(\"gh\"),\n github: readString(\"github\"),\n ref: readString(\"ref\"),\n detail: readString(\"detail\"),\n trace: readBoolean(\"trace\"),\n watch: readBoolean(\"watch\"),\n runtimeProbe: readBoolean(\"runtimeProbe\", \"runtime_probe\", \"runtime-probe\"),\n fixManagedState: readBoolean(\"fixManagedState\", \"fix_managed_state\", \"fix-managed-state\"),\n strictExit: readBoolean(\"strictExit\", \"strict_exit\", \"strict-exit\"),\n failOnWarn: readBoolean(\"failOnWarn\", \"fail_on_warn\", \"fail-on-warn\"),\n };\n}\n\nasync function looksLikeShellExpandedWildcard(targets: string[]): Promise<boolean> {\n if (targets.length <= 1) {\n return false;\n }\n const visibleEntries = (await fs.readdir(process.cwd()))\n .filter((entry) => !entry.startsWith(\".\"))\n .sort((left, right) => left.localeCompare(right));\n const normalizedTargets = [...targets].sort((left, right) => left.localeCompare(right));\n return (\n visibleEntries.length === normalizedTargets.length &&\n visibleEntries.every((entry, index) => entry === normalizedTargets[index])\n );\n}\n\nasync function normalizeInstallTargets(targets: string[] | string | undefined): Promise<string | undefined> {\n const normalizedTargets = (Array.isArray(targets) ? targets : typeof targets === \"string\" ? [targets] : [])\n .map((target) => target.trim())\n .filter((target) => target.length > 0);\n if (normalizedTargets.length <= 1) {\n return normalizedTargets[0];\n }\n if (await looksLikeShellExpandedWildcard(normalizedTargets)) {\n return \"*\";\n }\n throw new PmCliError(\n `Install accepts one package source at a time. To install bundled first-party packages, quote the wildcard: pm install '*'`,\n EXIT_CODE.USAGE,\n );\n}\n\nasync function executeExtensionCommand(\n target: string | undefined,\n options: Record<string, unknown>,\n command: Command,\n forcedAction?: ExtensionSubcommandAction,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const normalizedOptions = normalizeExtensionOptions(options, forcedAction);\n const result = await runExtension(target, normalizedOptions, globalOptions);\n printResult(result, globalOptions);\n const strictExit = Boolean(normalizedOptions.strictExit) || Boolean(normalizedOptions.failOnWarn);\n if (result.action === \"doctor\" && strictExit) {\n const detailsRecord = result.details as Record<string, unknown>;\n const summary = (detailsRecord.summary ?? null) as Record<string, unknown> | null;\n const summaryStatus = summary && typeof summary.status === \"string\" ? summary.status : undefined;\n const shouldFail = summaryStatus ? summaryStatus !== \"ok\" : result.warnings.length > 0;\n if (shouldFail) {\n process.exitCode = EXIT_CODE.GENERIC_FAILURE;\n }\n }\n if (globalOptions.profile) {\n printError(`profile:command=extension took_ms=${Date.now() - startedAt}`);\n }\n}\n\nfunction addExtensionScopeOptions<T extends Command>(command: T): T {\n return command\n .option(\"--project\", \"Use project extension scope (default)\")\n .option(\"--local\", \"Alias for --project\")\n .option(\"--global\", \"Use global extension scope\");\n}\n\nfunction addPackageScopeOptions<T extends Command>(command: T): T {\n return command\n .option(\"--project\", \"Use project package scope (default)\")\n .option(\"--local\", \"Alias for --project\")\n .option(\"--global\", \"Use global package scope\");\n}\n\nfunction addLifecycleScopeOptions<T extends Command>(command: T, vocabulary: LifecycleCommandVocabulary): T {\n return vocabulary === \"package\" ? addPackageScopeOptions(command) : addExtensionScopeOptions(command);\n}\n\nfunction registerLifecycleCommand(\n program: Command,\n vocabulary: LifecycleCommandVocabulary,\n): void {\n const noun = vocabulary === \"package\" ? \"package\" : \"extension\";\n const plural = vocabulary === \"package\" ? \"packages\" : \"extensions\";\n const commandName = vocabulary;\n const lifecycleCommand = program\n .command(commandName)\n .argument(\"[target]\", `${noun[0]!.toUpperCase()}${noun.slice(1)} source/name or scaffold target path (for --init/--scaffold)`)\n .option(\"--init\", `Generate a starter ${noun} scaffold at target path`)\n .option(\"--scaffold\", \"Alias for --init\")\n .option(\"--install\", `Install ${noun} from local path or GitHub source`)\n .option(\"--uninstall\", `Uninstall an installed ${noun}`)\n .option(\"--explore\", `List discovered ${plural} in selected scope`)\n .option(\"--manage\", `List managed ${plural} with update-check metadata`)\n .option(\"--reload\", `Reload ${plural} with cache-busted module imports`)\n .option(\"--watch\", \"Use watch mode with --reload\")\n .option(\"--doctor\", `Run consolidated ${noun} diagnostics (summary/deep modes)`)\n .option(\"--adopt\", `Adopt an existing unmanaged ${noun} into managed metadata`)\n .option(\"--adopt-all\", `Adopt all unmanaged ${plural} into managed metadata`)\n .option(\"--activate\", `Activate a ${noun} in selected scope settings`)\n .option(\"--deactivate\", `Deactivate a ${noun} in selected scope settings`)\n .option(\"--project\", `Use project ${noun} scope (default)`)\n .option(\"--local\", \"Alias for --project\")\n .option(\"--global\", `Use global ${noun} scope`)\n .option(\"--gh <owner/repo[/path]>\", \"Install from GitHub shorthand source\")\n .option(\"--github <owner/repo[/path]>\", \"Alias for --gh\")\n .option(\"--ref <ref>\", \"Git ref/branch/tag for GitHub install sources\")\n .option(\"--detail <mode>\", `${noun[0]!.toUpperCase()}${noun.slice(1)} diagnostics detail mode (summary|deep)`)\n .option(\"--trace\", \"Include actionable registration traces in doctor deep diagnostics\")\n .option(\"--runtime-probe\", \"Opt-in runtime activation probe for manage output parity\")\n .option(\"--fix-managed-state\", `Adopt unmanaged ${plural} before diagnostics/update checks`)\n .option(\"--strict-exit\", \"Return non-zero exit when doctor warnings are present (ok=false)\")\n .option(\"--fail-on-warn\", \"Alias for --strict-exit (doctor)\")\n .description(\n vocabulary === \"package\"\n ? \"Manage package lifecycle operations for project or global scope. Backward-compatible with extension packages.\"\n : \"Manage extension lifecycle operations for project or global scope.\",\n )\n .action(async (target: string | undefined, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command);\n });\n\n if (vocabulary === \"package\") {\n lifecycleCommand.alias(\"packages\");\n }\n\n addLifecycleScopeOptions(\n lifecycleCommand\n .command(\"init\")\n .alias(\"scaffold\")\n .argument(\"<target>\", `Scaffold target directory path`)\n .description(`Generate a starter ${noun} scaffold with manifest and entrypoint.`),\n vocabulary,\n ).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"init\");\n });\n\n addLifecycleScopeOptions(\n lifecycleCommand\n .command(\"install\")\n .argument(\"[targets...]\", `${noun[0]!.toUpperCase()}${noun.slice(1)} source (local path, bundled alias, wildcard, or GitHub source)`)\n .option(\"--gh <owner/repo[/path]>\", \"Install from GitHub shorthand source\")\n .option(\"--github <owner/repo[/path]>\", \"Alias for --gh\")\n .option(\"--ref <ref>\", \"Git ref/branch/tag for GitHub install sources\")\n .description(`Install ${noun} from local path or GitHub source.`),\n vocabulary,\n ).action(async (targets: string[] | undefined, _options: Record<string, unknown>, command) => {\n const target = await normalizeInstallTargets(targets);\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"install\");\n });\n\n addLifecycleScopeOptions(\n lifecycleCommand.command(\"uninstall\").argument(\"<target>\", `${noun[0]!.toUpperCase()}${noun.slice(1)} name`).description(`Uninstall an installed ${noun}.`),\n vocabulary,\n ).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"uninstall\");\n });\n\n addLifecycleScopeOptions(lifecycleCommand.command(\"explore\").description(`List discovered ${plural} in selected scope.`), vocabulary).action(\n async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"explore\");\n },\n );\n\n addLifecycleScopeOptions(\n lifecycleCommand\n .command(\"manage\")\n .option(\"--runtime-probe\", \"Opt-in runtime activation probe for manage output parity\")\n .option(\"--fix-managed-state\", `Adopt unmanaged ${plural} before diagnostics/update checks`)\n .description(`List managed ${plural} with update-check metadata.`),\n vocabulary,\n ).action(async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"manage\");\n });\n\n addLifecycleScopeOptions(\n lifecycleCommand\n .command(\"reload\")\n .option(\"--watch\", \"Use watch mode for repeated reload checks\")\n .description(`Reload ${plural} with cache-busted module imports.`),\n vocabulary,\n ).action(async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"reload\");\n });\n\n addLifecycleScopeOptions(\n lifecycleCommand\n .command(\"doctor\")\n .option(\"--detail <mode>\", `Detail mode for ${noun} diagnostics (summary|deep)`)\n .option(\"--trace\", \"Include actionable registration traces in doctor deep diagnostics\")\n .option(\"--fix-managed-state\", `Adopt unmanaged ${plural} before diagnostics/update checks`)\n .option(\"--strict-exit\", \"Return non-zero exit when doctor warnings are present (ok=false)\")\n .option(\"--fail-on-warn\", \"Alias for --strict-exit (doctor)\")\n .description(`Run consolidated ${noun} diagnostics (summary/deep modes).`),\n vocabulary,\n ).action(async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"doctor\");\n });\n\n addLifecycleScopeOptions(\n lifecycleCommand\n .command(\"adopt\")\n .argument(\"<target>\", `${noun[0]!.toUpperCase()}${noun.slice(1)} name`)\n .option(\"--gh <owner/repo[/path]>\", `GitHub provenance shorthand for adopted ${noun}`)\n .option(\"--github <owner/repo[/path]>\", \"Alias for --gh\")\n .option(\"--ref <ref>\", \"Git ref/branch/tag for GitHub shorthand source\")\n .description(`Adopt an existing unmanaged ${noun} into managed metadata.`),\n vocabulary,\n ).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"adopt\");\n });\n\n addLifecycleScopeOptions(\n lifecycleCommand.command(\"adopt-all\").description(`Adopt all unmanaged ${plural} into managed metadata.`),\n vocabulary,\n ).action(async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"adopt-all\");\n });\n\n addLifecycleScopeOptions(\n lifecycleCommand.command(\"activate\").argument(\"<target>\", `${noun[0]!.toUpperCase()}${noun.slice(1)} name`).description(`Activate a ${noun} in selected scope settings.`),\n vocabulary,\n ).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"activate\");\n });\n\n addLifecycleScopeOptions(\n lifecycleCommand.command(\"deactivate\").argument(\"<target>\", `${noun[0]!.toUpperCase()}${noun.slice(1)} name`).description(`Deactivate a ${noun} in selected scope settings.`),\n vocabulary,\n ).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"deactivate\");\n });\n}\n\nexport function registerSetupCommands(program: Command): void {\n program\n .command(\"init\")\n .argument(\"[prefix]\", \"Optional id prefix\")\n .option(\"--preset <value>\", \"Governance preset for new setups: minimal|default|strict\")\n .option(\"--defaults\", \"Use non-interactive setup defaults without opening the wizard\")\n .option(\"--author <value>\", \"Set the default mutation author for this project\")\n .description(\"Initialize pm storage and defaults for the current workspace.\")\n .action(async (prefix: string | undefined, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runInit(\n prefix,\n globalOptions,\n {\n preset: typeof options.preset === \"string\" ? options.preset : undefined,\n defaults: options.defaults === true,\n author: typeof options.author === \"string\" ? options.author : undefined,\n },\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=init took_ms=${Date.now() - startedAt}`);\n }\n });\n\n program\n .command(\"config\")\n .argument(\"<scope>\", \"Config scope: project|global\")\n .argument(\"<action>\", \"Config action: get|set|list|export\")\n .argument(\n \"[key]\",\n \"Config key for get|set: definition-of-done|item-format|history-missing-stream-policy|sprint-release-format-policy|parent-reference-policy|metadata-validation-profile|metadata-required-fields|lifecycle-stale-blocker-reason-patterns|lifecycle-closure-like-blocked-reason-patterns|lifecycle-closure-like-resolution-patterns|lifecycle-closure-like-actual-result-patterns|governance-preset|governance-ownership-enforcement|governance-create-mode-default|governance-close-validation-default|governance-parent-reference-policy|governance-metadata-validation-profile|governance-force-required-for-stale-lock|test-result-tracking|telemetry-tracking|context\",\n )\n .option(\n \"--criterion <text>\",\n \"Criteria value for definition-of-done, metadata-required-fields, or lifecycle pattern keys (repeatable for set)\",\n collect,\n )\n .option(\"--clear-criteria\", \"Clear criteria-list keys for config set operations\")\n .option(\"--format <value>\", \"Item format for item-format key: toon\")\n .option(\n \"--policy <value>\",\n \"Policy key values: history-missing-stream-policy=auto_create|strict_error; sprint-release-format-policy=warn|strict_error; parent-reference-policy=warn|strict_error; governance-preset=minimal|default|strict|custom; governance-ownership-enforcement=none|warn|strict; governance-create-mode-default=progressive|strict; governance-close-validation-default=off|warn|strict; governance-parent-reference-policy=warn|strict_error; governance-metadata-validation-profile=core|strict|custom; governance-force-required-for-stale-lock=enabled|disabled; test-result-tracking=enabled|disabled; telemetry-tracking=enabled|disabled\",\n )\n .option(\"--default-depth <value>\", \"Context default depth: brief|standard|deep\")\n .option(\"--activity-limit <n>\", \"Context default activity limit\")\n .option(\"--stale-threshold-days <n>\", \"Context staleness cutoff in days\")\n .option(\"--section-hierarchy <value>\", \"Enable/disable context hierarchy section (true|false)\")\n .option(\"--section-activity <value>\", \"Enable/disable context activity section (true|false)\")\n .option(\"--section-progress <value>\", \"Enable/disable context progress section (true|false)\")\n .option(\"--section-blockers <value>\", \"Enable/disable context blockers section (true|false)\")\n .option(\"--section-files <value>\", \"Enable/disable context files section (true|false)\")\n .option(\"--section-workload <value>\", \"Enable/disable context workload section (true|false)\")\n .option(\"--section-staleness <value>\", \"Enable/disable context staleness section (true|false)\")\n .option(\"--section-tests <value>\", \"Enable/disable context tests section (true|false)\")\n .description(\"Read or update pm settings for the current workspace or global profile.\")\n .action(async (scope: string, action: string, key: string | undefined, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const criteria = Array.isArray(options.criterion) ? (options.criterion as string[]) : [];\n const result = await runConfig(\n scope,\n action,\n key,\n {\n criterion: criteria,\n format: typeof options.format === \"string\" ? options.format : undefined,\n policy: typeof options.policy === \"string\" ? options.policy : undefined,\n clearCriteria: options.clearCriteria === true,\n defaultDepth: typeof options.defaultDepth === \"string\" ? options.defaultDepth : undefined,\n activityLimit: typeof options.activityLimit === \"string\" ? options.activityLimit : undefined,\n staleThresholdDays: typeof options.staleThresholdDays === \"string\" ? options.staleThresholdDays : undefined,\n sectionHierarchy: typeof options.sectionHierarchy === \"string\" ? options.sectionHierarchy : undefined,\n sectionActivity: typeof options.sectionActivity === \"string\" ? options.sectionActivity : undefined,\n sectionProgress: typeof options.sectionProgress === \"string\" ? options.sectionProgress : undefined,\n sectionBlockers: typeof options.sectionBlockers === \"string\" ? options.sectionBlockers : undefined,\n sectionFiles: typeof options.sectionFiles === \"string\" ? options.sectionFiles : undefined,\n sectionWorkload: typeof options.sectionWorkload === \"string\" ? options.sectionWorkload : undefined,\n sectionStaleness: typeof options.sectionStaleness === \"string\" ? options.sectionStaleness : undefined,\n sectionTests: typeof options.sectionTests === \"string\" ? options.sectionTests : undefined,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=config took_ms=${Date.now() - startedAt}`);\n }\n });\n\n registerLifecycleCommand(program, \"extension\");\n registerLifecycleCommand(program, \"package\");\n\n addPackageScopeOptions(\n program\n .command(\"install\")\n .argument(\"[targets...]\", \"Package source (local path, bundled alias, wildcard, or GitHub source)\")\n .option(\"--gh <owner/repo[/path]>\", \"Install from GitHub shorthand source\")\n .option(\"--github <owner/repo[/path]>\", \"Alias for --gh\")\n .option(\"--ref <ref>\", \"Git ref/branch/tag for GitHub install sources\")\n .description(\"Install a pm package into the project package scope by default.\"),\n ).action(async (targets: string[] | undefined, _options: Record<string, unknown>, command) => {\n const target = await normalizeInstallTargets(targets);\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"install\");\n });\n\n addPackageScopeOptions(\n program\n .command(\"upgrade\")\n .argument(\"[target]\", \"Optional managed package name/source to upgrade; omit to upgrade pm CLI and all managed packages\")\n .option(\"--dry-run\", \"Plan CLI/package upgrades without running npm or reinstalling packages\")\n .option(\"--cli-only\", \"Upgrade only the pm CLI/SDK npm package\")\n .option(\"--packages-only\", \"Upgrade only managed pm packages\")\n .option(\"--repair\", \"Force npm global reinstall when upgrading the pm CLI/SDK\")\n .option(\"--tag <value>\", \"npm dist-tag/version for CLI and registry package upgrades\")\n .option(\"--package-name <value>\", \"Override the CLI package name for self-upgrade testing\")\n .description(\"Upgrade the pm CLI/SDK and refresh managed installable pm packages.\"),\n ).action(async (target: string | undefined, _options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runUpgrade(target, command.opts() as Record<string, unknown>, globalOptions);\n printResult(result, globalOptions);\n if (!result.ok) {\n process.exitCode = EXIT_CODE.GENERIC_FAILURE;\n }\n if (globalOptions.profile) {\n printError(`profile:command=upgrade took_ms=${Date.now() - startedAt}`);\n }\n });\n\n const templatesCommand = program\n .command(\"templates\")\n .description(\"Manage reusable create templates.\")\n .action(async () => {\n const globalOptions = program.opts<GlobalOptions>();\n const result = await runTemplatesList(globalOptions);\n printResult(result, globalOptions);\n });\n\n templatesCommand\n .command(\"save\")\n .argument(\"<name>\", \"Template name\")\n .option(\"--title, -t <value>\", \"Template default item title\")\n .option(\"--description, -d <value>\", \"Template default item description\")\n .option(\"--type <value>\", \"Template default item type\")\n .option(\"--status, -s <value>\", \"Template default item status\")\n .option(\"--priority, -p <value>\", \"Template default priority 0..4\")\n .option(\"--tags <value>\", \"Template default comma-separated tags\")\n .option(\"--body, -b <value>\", \"Template default item markdown body\")\n .option(\"--deadline <value>\", \"Template default deadline\")\n .option(\"--estimate, --estimated-minutes <value>\", \"Template default estimated minutes\")\n .option(\"--estimated_minutes <value>\", \"Alias for --estimated-minutes\")\n .option(\"--acceptance-criteria <value>\", \"Template default acceptance criteria\")\n .option(\"--acceptance_criteria <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--ac <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--definition-of-ready <value>\", \"Template default definition of ready\")\n .option(\"--definition_of_ready <value>\", \"Alias for --definition-of-ready\")\n .option(\"--order <value>\", \"Template default planning order/rank integer\")\n .option(\"--rank <value>\", \"Alias for --order\")\n .option(\"--goal <value>\", \"Template default goal identifier\")\n .option(\"--objective <value>\", \"Template default objective identifier\")\n .option(\"--value <value>\", \"Template default business value summary\")\n .option(\"--impact <value>\", \"Template default business impact summary\")\n .option(\"--outcome <value>\", \"Template default expected outcome summary\")\n .option(\"--why-now <value>\", \"Template default why-now rationale\")\n .option(\"--why_now <value>\", \"Alias for --why-now\")\n .option(\"--author <value>\", \"Template default mutation author\")\n .option(\"--message <value>\", \"Template default history message\")\n .option(\"--assignee <value>\", \"Template default assignee\")\n .option(\"--parent <value>\", \"Template default parent item ID\")\n .option(\"--reviewer <value>\", \"Template default reviewer\")\n .option(\"--risk <value>\", \"Template default risk level\")\n .option(\"--confidence <value>\", \"Template default confidence\")\n .option(\"--sprint <value>\", \"Template default sprint identifier\")\n .option(\"--release <value>\", \"Template default release identifier\")\n .option(\"--blocked-by <value>\", \"Template default blocked-by item ID or reason\")\n .option(\"--blocked_by <value>\", \"Alias for --blocked-by\")\n .option(\"--blocked-reason <value>\", \"Template default blocked reason\")\n .option(\"--blocked_reason <value>\", \"Alias for --blocked-reason\")\n .option(\"--unblock-note <value>\", \"Template default unblock rationale note\")\n .option(\"--unblock_note <value>\", \"Alias for --unblock-note\")\n .option(\"--reporter <value>\", \"Template default issue reporter\")\n .option(\"--severity <value>\", \"Template default issue severity\")\n .option(\"--environment <value>\", \"Template default issue environment context\")\n .option(\"--repro-steps <value>\", \"Template default issue reproduction steps\")\n .option(\"--repro_steps <value>\", \"Alias for --repro-steps\")\n .option(\"--resolution <value>\", \"Template default issue resolution summary\")\n .option(\"--expected-result <value>\", \"Template default issue expected behavior\")\n .option(\"--expected_result <value>\", \"Alias for --expected-result\")\n .option(\"--actual-result <value>\", \"Template default issue observed behavior\")\n .option(\"--actual_result <value>\", \"Alias for --actual-result\")\n .option(\"--affected-version <value>\", \"Template default affected version identifier\")\n .option(\"--affected_version <value>\", \"Alias for --affected-version\")\n .option(\"--fixed-version <value>\", \"Template default fixed version identifier\")\n .option(\"--fixed_version <value>\", \"Alias for --fixed-version\")\n .option(\"--component <value>\", \"Template default issue component ownership\")\n .option(\"--regression <value>\", \"Template default regression marker\")\n .option(\"--customer-impact <value>\", \"Template default customer impact summary\")\n .option(\"--customer_impact <value>\", \"Alias for --customer-impact\")\n .option(\n \"--dep <value>\",\n \"Template default dependency entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--type-option <value>\",\n \"Template default type option entry (repeatable; key=value or markdown pairs; use - for stdin)\",\n collect,\n )\n .option(\"--type_option <value>\", \"Alias for --type-option\", collect)\n .option(\n \"--reminder <value>\",\n \"Template default reminder entry (repeatable; at=<iso|relative>,text=<text>)\",\n collect,\n )\n .option(\n \"--event <value>\",\n \"Template default event entry (repeatable; start/end/title/recur_* fields)\",\n collect,\n )\n .option(\n \"--comment <value>\",\n \"Template default comment seed entry (repeatable; text=<value> CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--note <value>\",\n \"Template default note seed entry (repeatable; text=<value> CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--learning <value>\",\n \"Template default learning seed entry (repeatable; text=<value> CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--file <value>\",\n \"Template default linked file entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--test <value>\",\n \"Template default linked test entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--doc <value>\",\n \"Template default linked doc entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .description(\"Save or update a named create template.\")\n .action(async (name: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const normalized = normalizeCreateOptions(options, { requireType: false }) as unknown as Record<string, unknown>;\n const result = await runTemplatesSave(name, normalized, globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=templates save took_ms=${Date.now() - startedAt}`);\n }\n });\n\n templatesCommand\n .command(\"list\")\n .description(\"List saved create templates.\")\n .action(async (_options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTemplatesList(globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=templates list took_ms=${Date.now() - startedAt}`);\n }\n });\n\n templatesCommand\n .command(\"show\")\n .argument(\"<name>\", \"Template name\")\n .description(\"Show saved create template details.\")\n .action(async (name: string, _options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTemplatesShow(name, globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=templates show took_ms=${Date.now() - startedAt}`);\n }\n });\n}\n"]}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { flushTelemetryQueueNow } from "../core/telemetry/runtime.js";
3
+ await flushTelemetryQueueNow();
4
+ //# sourceMappingURL=telemetry-flush.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-flush.js","sourceRoot":"/","sources":["cli/telemetry-flush.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,sBAAsB,EAAE,CAAC","sourcesContent":["#!/usr/bin/env node\nimport { flushTelemetryQueueNow } from \"../core/telemetry/runtime.js\";\n\nawait flushTelemetryQueueNow();\n"]}
package/dist/cli.js CHANGED
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import { ensureSentryInit } from "./core/sentry/instrument.js";
3
- await ensureSentryInit();
4
2
  await import("./cli/main.js");
3
+ export {};
5
4
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"/","sources":["cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,gBAAgB,EAAE,CAAC;AACzB,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\nimport { ensureSentryInit } from \"./core/sentry/instrument.js\";\n\nawait ensureSentryInit();\nawait import(\"./cli/main.js\");\n"]}
1
+ {"version":3,"file":"cli.js","sourceRoot":"/","sources":["cli.ts"],"names":[],"mappings":";AACA,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\nawait import(\"./cli/main.js\");\n"]}