@unbrained/pm-cli 2026.8.14 → 2026.8.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +25 -2
- package/dist/cli/commander-usage.js +17 -4
- package/dist/cli/error-guidance.d.ts +2 -0
- package/dist/cli/error-guidance.js +52 -25
- package/dist/cli/main.js +3 -2
- package/dist/cli/register-mutation.js +4 -2
- package/dist/cli/register-operations.js +5 -5
- package/dist/cli-bundle/bundle-manifest.json +150 -150
- package/dist/cli-bundle/chunks/{chunk-TXMEUUUY.js → chunk-24GAV7XL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TMJ7URWS.js → chunk-AIM6VT2N.js} +9 -9
- package/dist/cli-bundle/chunks/chunk-DSWDLTDR.js +197 -0
- package/dist/cli-bundle/chunks/{chunk-FIW4P64F.js → chunk-J42EGKDK.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-KIEGUBYQ.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-SBRKH6OR.js → chunk-KLKYLSDX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-G5JUB66K.js → chunk-LJHOAVGI.js} +59 -59
- package/dist/cli-bundle/chunks/{chunk-BFALV3YP.js → chunk-MEM2ZS3O.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-QHPCJWEJ.js +35 -0
- package/dist/cli-bundle/chunks/{chunk-XAVMOK6B.js → chunk-WLPDLNEZ.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-T3EHHNNV.js → register-list-query-CT3LFDDN.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-E27WCLSZ.js → register-mutation-NWEVA5YS.js} +3 -3
- package/dist/cli-bundle/chunks/register-operations-AHIAG5KM.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-3YXZ444E.js → register-setup-ZJZFVAKE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-4X57RE4U.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-XDNAW5OI.js → chunk-6XKF3PGV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-7NJ4QYQ2.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-WCVE2NIG.js → chunk-EXZA4257.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-ITAUHSO6.js +50 -0
- package/dist/cli-bundle/focused-chunks/{chunk-4DQ2YERC.js → chunk-KLVUMNXJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-K7RWWOAG.js → chunk-KT5XMYSX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-PPFGQDSI.js → chunk-KTKH4IMG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-M67F5AIN.js +8 -0
- package/dist/cli-bundle/focused-chunks/{chunk-KSEDUWVZ.js → chunk-NSPYTG6G.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-OKA6ELTL.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-PUISBOPP.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-QLNMCESQ.js +155 -0
- package/dist/cli-bundle/focused-chunks/{chunk-LZ4MV3RH.js → chunk-SLKC6QLJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-U65UC4G3.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-KFSZ3BP6.js → chunk-WTSER4WJ.js} +6 -6
- package/dist/cli-bundle/focused-chunks/{chunk-YOOI3UZX.js → chunk-ZMFXQ7VF.js} +2 -2
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +32 -35
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +32 -31
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +2 -2
- package/dist/core/diagnostics/remediation.js +7 -2
- package/dist/core/extensions/reserved-host-flags.js +3 -2
- package/dist/core/history/replay.d.ts +14 -1
- package/dist/core/history/replay.js +45 -8
- package/dist/core/output/output.d.ts +2 -0
- package/dist/core/output/output.js +3 -2
- package/dist/core/shared/command-types.d.ts +2 -0
- package/dist/core/shared/command-types.js +2 -2
- package/dist/core/shared/errors.d.ts +12 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/mcp/tool-definitions.js +9 -5
- package/dist/sdk/agent/refusal-reachability.d.ts +61 -0
- package/dist/sdk/agent/refusal-reachability.js +91 -3
- package/dist/sdk/cli-bootstrap.d.ts +2 -0
- package/dist/sdk/cli-bootstrap.js +7 -2
- package/dist/sdk/cli-contracts/completeness.js +3 -2
- package/dist/sdk/cli-contracts/flag-contracts.js +3 -2
- package/dist/sdk/cli-contracts/registration-helpers.js +3 -2
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +5 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +23 -7
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +15 -5
- package/dist/sdk/cli-contracts/tool-schema.js +10 -3
- package/dist/sdk/cli-program.js +3 -2
- package/dist/sdk/core.d.ts +2 -2
- package/dist/sdk/core.js +3 -3
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +26 -2
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +50 -26
- package/dist/sdk/governance/assurance-action.d.ts +7 -1
- package/dist/sdk/governance/assurance-action.js +7 -6
- package/dist/sdk/governance/assurance-mutation-error.d.ts +42 -1
- package/dist/sdk/governance/assurance-mutation-error.js +27 -3
- package/dist/sdk/governance/assurance-runtime.js +12 -11
- package/dist/sdk/governance/assurance.d.ts +9 -0
- package/dist/sdk/governance/assurance.js +80 -14
- package/dist/sdk/governance/extension-host-version.d.ts +25 -0
- package/dist/sdk/governance/extension-host-version.js +105 -0
- package/dist/sdk/governance/health.d.ts +32 -1
- package/dist/sdk/governance/health.js +119 -27
- package/dist/sdk/governance/provenance-health.d.ts +27 -0
- package/dist/sdk/governance/provenance-health.js +95 -3
- package/dist/sdk/governance/validate.js +7 -8
- package/dist/sdk/governance.d.ts +6 -0
- package/dist/sdk/governance.js +8 -2
- package/dist/sdk/history-repair.d.ts +13 -1
- package/dist/sdk/history-repair.js +62 -18
- package/dist/sdk/linked-artifacts.js +16 -5
- package/dist/sdk/pagination.d.ts +15 -0
- package/dist/sdk/pagination.js +9 -5
- package/dist/sdk/query/context.d.ts +5 -1
- package/dist/sdk/query/context.js +14 -5
- package/dist/sdk/read-output/continuation.d.ts +11 -0
- package/dist/sdk/read-output/continuation.js +132 -0
- package/dist/sdk/read-output-budget.d.ts +1 -1
- package/dist/sdk/read-output-budget.js +14 -10
- package/dist/sdk/read-output-contracts.d.ts +66 -2
- package/dist/sdk/read-output-contracts.js +183 -19
- package/dist/sdk/read-output-rows.d.ts +2 -0
- package/dist/sdk/read-output-rows.js +15 -2
- package/dist/sdk/runtime-input.js +4 -2
- package/docs/ASSURANCE.md +59 -2
- package/docs/COMMANDS.md +8 -2
- package/docs/READ_OUTPUT_CONTRACTS.md +49 -8
- package/docs/RELEASING.md +42 -5
- package/docs/SDK_CONTEXT_INTEGRITY.md +64 -2
- package/marketplace.json +2 -2
- package/package.json +3 -3
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +1133 -187
- package/dist/cli-bundle/chunks/chunk-BBOFSVAK.js +0 -197
- package/dist/cli-bundle/chunks/chunk-YAMTJL6Y.js +0 -34
- package/dist/cli-bundle/chunks/chunk-YSVSMJ2B.js +0 -2
- package/dist/cli-bundle/chunks/register-operations-4R6I7CPY.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-F43TT2QQ.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-KYUQGTSB.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PGXJQLCT.js +0 -155
- package/dist/cli-bundle/focused-chunks/chunk-Q4YY3XNF.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-QK753U3U.js +0 -46
- package/dist/cli-bundle/focused-chunks/chunk-QUMB2J27.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-SM7MTG27.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZM6TZVHC.js +0 -2
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.",
|
|
9
|
-
"version": "2026.8.
|
|
9
|
+
"version": "2026.8.15"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "pm-claude",
|
|
14
14
|
"source": "./plugins/pm-claude",
|
|
15
15
|
"description": "Native pm CLI integration for Claude Code — 28 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents, hybrid TUI task tracking, session context injection, and coordination subagents for git-based project management without leaving Claude Code.",
|
|
16
|
-
"version": "2026.8.
|
|
16
|
+
"version": "2026.8.15",
|
|
17
17
|
"author": {
|
|
18
18
|
"name": "unbrained",
|
|
19
19
|
"url": "https://github.com/unbraind/pm-cli"
|
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026.8.15 - 2026-08-15
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Provide an audited repair and severity-migration contract for legacy invalid provenance ([pm-76fkpp](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-76fkpp.toon))
|
|
8
|
+
- Detect extension-host pm-cli version skew before a workspace reports healthy ([pm-643e0k](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-643e0k.toon))
|
|
9
|
+
- Restore strict unknown-key parity for docs linked-artifact additions ([pm-22rzjp](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-22rzjp.toon))
|
|
10
|
+
- Surface replication gate scopes trigger activation to relevant diff content ([pm-mrhwow](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-mrhwow.toon))
|
|
11
|
+
- Make every failing health verdict self-indexing and attach gate severity to findings ([pm-larv4r](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-larv4r.toon))
|
|
12
|
+
- GH-1004: history-repair remains writer-version-specific across 2026.8.7 and 2026.8.13 ([pm-igdvfq](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-igdvfq.toon))
|
|
13
|
+
- Assurance gates preserve zero-valued counts and report actionable source failures ([pm-xmmafu](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-xmmafu.toon))
|
|
14
|
+
- A budget-truncated read is resumable on one surface and terminal on five, and the only recovery the envelope names is to abandon the budget that truncated it ([pm-8nev0o](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-8nev0o.toon))
|
|
15
|
+
- Ranking explanation is sized by the workspace rather than by the answer: explaining two returned rows emits one entry per active item and ignores the token budget entirely ([pm-okgxwa](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-okgxwa.toon))
|
|
16
|
+
- The unknown-option refusal asserts the option belongs on another command path without checking, so a spelling that exists nowhere sends the reader on an unbounded search ([pm-in23qu](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-in23qu.toon))
|
|
17
|
+
- The gate verdict withholds its evidence as a declaration-order prefix, so the assertion that produced a blocking verdict can be the row the default read drops ([pm-e5gl05](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-e5gl05.toon))
|
|
18
|
+
- GH-1008: assurance measurements accept unknown source kinds and contracts hide the valid vocabulary ([pm-atnfh4](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-atnfh4.toon))
|
|
19
|
+
- GH-1007: assurance gate declarations omit trigger and escape the typed refusal contract ([pm-88mo8m](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-88mo8m.toon))
|
|
20
|
+
- A CI-wired quality gate is red on a clean checkout of main and green in hosted CI for the same commit, because its measured output carries a telemetry warning whose presence depends on whether the local flush reached the network ([pm-t7wn04](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-t7wn04.toon))
|
|
21
|
+
- GH-1011: Windows Node 24 nightly cache fixture loses the authoritative linked-test collection ([pm-k47yqn](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-k47yqn.toon))
|
|
22
|
+
|
|
23
|
+
### Other
|
|
24
|
+
|
|
25
|
+
- The agent token-surface harness from pm-a22j is wired into nothing, so output-size regressions like the 33k-token health check land undetected ([pm-dpqa3h](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-dpqa3h.toon))
|
|
26
|
+
|
|
3
27
|
## 2026.8.14 - 2026-08-14
|
|
4
28
|
|
|
5
29
|
### Fixed
|
|
6
30
|
|
|
31
|
+
- Unsupported assurance triggers bypass the typed evaluation-refusal boundary and surface as high-severity Sentry faults ([pm-9yhl2v](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-9yhl2v.toon))
|
|
7
32
|
- A single transient per-test timeout fails the whole pipeline: 1,942 tests share one uniform 30s budget, no retry is configured, and the only diagnosis path is decoding a blob artifact ([pm-rizqb6](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-rizqb6.toon))
|
|
8
33
|
- The degradation ladder only sees top-level arrays, so the governance reads whose bulk is nested skip every intermediate rung and return nothing at all ([pm-kyjdne](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-kyjdne.toon))
|
|
9
34
|
- A budget-truncated read reports that rows are missing without a cursor, a recovery, or any sign that it overrode the caller's explicit request for all of them ([pm-jt8aa2](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-jt8aa2.toon))
|
|
@@ -12,7 +37,6 @@
|
|
|
12
37
|
- Exact command-path summaries expose intent, flags, and format-aware output ceilings ([pm-pmrae8](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-pmrae8.toon))
|
|
13
38
|
- Default output ceilings bind representative read surfaces with depth-heavy negative controls ([pm-s2h0mq](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-s2h0mq.toon))
|
|
14
39
|
- Two of the three ci-triggered assurance gates never ran on a pull request, so the append-only history assertion that carries the immutability guarantee was evaluated only after merge ([pm-fhifkc](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-fhifkc.toon))
|
|
15
|
-
- Unsupported assurance triggers bypass the typed evaluation-refusal boundary and surface as high-severity Sentry faults ([pm-9yhl2v](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-9yhl2v.toon))
|
|
16
40
|
- The ordering-cycle finding names the items in the cycle and not the contradiction that creates it, so its remediation hint cannot be executed without re-deriving the cause by hand ([pm-xvt7ps](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-xvt7ps.toon))
|
|
17
41
|
- The edge-count floor is denominated over a population that includes the edges the graph itself calls redundant, so repairing 73 witnessed implied ordering rows and silently relaxing the guard are the same privileged act ([pm-9gzr4r](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-9gzr4r.toon))
|
|
18
42
|
- The graph node floor counts materialized placeholders, so its negative control declares the fully repaired corpus a failure and the gate passes only while a dangling reference exists ([pm-mfvsng](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-mfvsng.toon))
|
|
@@ -513,7 +537,6 @@
|
|
|
513
537
|
- Evaluate Sentry 10.68.0 compatibility and retain 10.67.0 ([pm-r31390](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-r31390.toon))
|
|
514
538
|
- Derive ALL MCP tool inputSchemas from \*\_FLAG_CONTRACTS — eliminate hand-declared parallel schema tables (extend the pm_copy pattern) ([pm-xwah](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-xwah.toon))
|
|
515
539
|
- Generate shell completions, MCP tool registrations, and command reference docs from the contracts table (single source of truth) ([pm-mu8m](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-mu8m.toon))
|
|
516
|
-
- The agent token-surface harness from pm-a22j is wired into nothing, so output-size regressions like the 33k-token health check land undetected ([pm-dpqa3h](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-dpqa3h.toon))
|
|
517
540
|
- Ecosystem review and deep-graph enrichment pass 2026-07-27: all-status census, CLI simplification + token-efficiency + long-term brainstorm, dedupe-checked gap filing ([pm-89qv6b](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-89qv6b.toon))
|
|
518
541
|
- Evaluate @toon-format/toon 4 compatibility and item-format migration ([pm-5cgm2z](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-5cgm2z.toon))
|
|
519
542
|
- ADR amendment: extensible durable agent provenance dimensions and privacy boundaries ([pm-oskdmu](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/decisions/pm-oskdmu.toon))
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="48877bbb-17bf-5a78-91fa-19a2f2f4c2be")}catch(e){}}();
|
|
3
3
|
import { pathExists, resolveItemTypeRegistry, EXIT_CODE, getSettingsPath, resolvePmRoot, readSettings, getActiveExtensionRegistrations, locateItem, runActiveServiceOverride, levenshteinDistanceWithinLimit, } from "../sdk/runtime-primitives.js";
|
|
4
4
|
import { BUILTIN_ITEM_TYPE_VALUES } from "../types/index.js";
|
|
5
5
|
import { PM_CORE_COMMAND_NAMES, resolveSubcommandFlagContractsForCommand, } from "../sdk/cli-contracts.js";
|
|
@@ -587,10 +587,20 @@ function resolveUnknownOptionSuggestions(message, commandName) {
|
|
|
587
587
|
...suggestNearestLongFlags(match[1], collectKnownLongFlags(commandName)),
|
|
588
588
|
])
|
|
589
589
|
: undefined;
|
|
590
|
+
const otherCommands = match
|
|
591
|
+
? findOtherCommandsForFlag(match[1], commandName)
|
|
592
|
+
: [];
|
|
593
|
+
const declaredOnPath = match !== null &&
|
|
594
|
+
collectKnownLongFlags(commandName).includes(normalizeLongFlag(match[1]));
|
|
590
595
|
return {
|
|
591
596
|
match,
|
|
592
597
|
suggestions,
|
|
593
|
-
otherCommands
|
|
598
|
+
otherCommands,
|
|
599
|
+
scope: declaredOnPath
|
|
600
|
+
? "declared_on_path"
|
|
601
|
+
: otherCommands.length > 0
|
|
602
|
+
? "declared_elsewhere"
|
|
603
|
+
: "declared_nowhere",
|
|
594
604
|
};
|
|
595
605
|
}
|
|
596
606
|
function resolveSuggestedRetryForUnknownOption(invocationArgv, unknownOptionMatch, unknownOptionSuggestions) {
|
|
@@ -681,6 +691,7 @@ export async function resolveCommanderUsageContext(error, rootProgram, extension
|
|
|
681
691
|
? unknownOption.otherCommands.length
|
|
682
692
|
: undefined,
|
|
683
693
|
unknownOptionOtherCommandsTruncated: unknownOption.otherCommands.length > 12 || undefined,
|
|
694
|
+
unknownOptionScope: unknownOption.scope,
|
|
684
695
|
suggestedRetryCommand,
|
|
685
696
|
verifiedCollectionItemId: workspaceUsage.verifiedCollectionItemId,
|
|
686
697
|
...splitSchemaSubcommand,
|
|
@@ -691,7 +702,7 @@ export async function resolveCommanderUsageContext(error, rootProgram, extension
|
|
|
691
702
|
/** Implements format commander usage message for the public runtime surface of this module. */
|
|
692
703
|
export async function formatCommanderUsageMessage(error, rootProgram, extensionDescriptors, guidanceOverrides = {}) {
|
|
693
704
|
const usageContext = await resolveCommanderUsageContext(error, rootProgram, extensionDescriptors, guidanceOverrides);
|
|
694
|
-
const { message, commandName, allowedTypes, unknownCommandExamples, unknownCommandNextSteps, attemptedCommand, normalizedInvocationArgs, providedOptionFlags, unknownOptionSuggestions, unknownOptionOtherCommands, unknownOptionOtherCommandsTotal, unknownOptionOtherCommandsTruncated, unknownSubcommandPath, unknownSubcommandToken, unknownSubcommandAllowedValues, suggestedRetryCommand, verifiedCollectionItemId, failedExtensions, } = usageContext;
|
|
705
|
+
const { message, commandName, allowedTypes, unknownCommandExamples, unknownCommandNextSteps, attemptedCommand, normalizedInvocationArgs, providedOptionFlags, unknownOptionSuggestions, unknownOptionOtherCommands, unknownOptionOtherCommandsTotal, unknownOptionOtherCommandsTruncated, unknownOptionScope, unknownSubcommandPath, unknownSubcommandToken, unknownSubcommandAllowedValues, suggestedRetryCommand, verifiedCollectionItemId, failedExtensions, } = usageContext;
|
|
695
706
|
const formatted = formatCommanderErrorForDisplay(message, commandName, allowedTypes, {
|
|
696
707
|
unknownCommandExamples,
|
|
697
708
|
unknownCommandNextSteps,
|
|
@@ -702,6 +713,7 @@ export async function formatCommanderUsageMessage(error, rootProgram, extensionD
|
|
|
702
713
|
unknownOptionOtherCommands,
|
|
703
714
|
unknownOptionOtherCommandsTotal,
|
|
704
715
|
unknownOptionOtherCommandsTruncated,
|
|
716
|
+
unknownOptionScope,
|
|
705
717
|
unknownSubcommandPath,
|
|
706
718
|
unknownSubcommandToken,
|
|
707
719
|
unknownSubcommandAllowedValues,
|
|
@@ -732,6 +744,7 @@ export async function formatCommanderUsageJson(error, rootProgram, extensionDesc
|
|
|
732
744
|
unknownOptionOtherCommands: usageContext.unknownOptionOtherCommands,
|
|
733
745
|
unknownOptionOtherCommandsTotal: usageContext.unknownOptionOtherCommandsTotal,
|
|
734
746
|
unknownOptionOtherCommandsTruncated: usageContext.unknownOptionOtherCommandsTruncated,
|
|
747
|
+
unknownOptionScope: usageContext.unknownOptionScope,
|
|
735
748
|
unknownSubcommandPath: usageContext.unknownSubcommandPath,
|
|
736
749
|
unknownSubcommandToken: usageContext.unknownSubcommandToken,
|
|
737
750
|
unknownSubcommandAllowedValues: usageContext.unknownSubcommandAllowedValues,
|
|
@@ -750,4 +763,4 @@ export const _testOnly = {
|
|
|
750
763
|
suggestNearestLongFlags,
|
|
751
764
|
};
|
|
752
765
|
//# sourceMappingURL=commander-usage.js.map
|
|
753
|
-
//# debugId=
|
|
766
|
+
//# debugId=48877bbb-17bf-5a78-91fa-19a2f2f4c2be
|
|
@@ -81,6 +81,8 @@ export interface CommanderGuidanceContext {
|
|
|
81
81
|
unknownOptionOtherCommandsTotal?: number;
|
|
82
82
|
/** Whether the structured command candidates reached their own ceiling. */
|
|
83
83
|
unknownOptionOtherCommandsTruncated?: boolean;
|
|
84
|
+
/** Declared lexicon membership of the rejected option spelling. */
|
|
85
|
+
unknownOptionScope?: PmCliErrorRecoveryPayload["option_scope"];
|
|
84
86
|
/** Command family whose positional subcommand was split into invalid tokens. */
|
|
85
87
|
unknownSubcommandPath?: string;
|
|
86
88
|
/** Rejected positional subcommand token or token sequence. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="6f4c3f5d-9acc-5e2c-9351-12fdcfcdb56a")}catch(e){}}();
|
|
3
3
|
import { resolveRecoveryCommandName } from "../sdk/agent/command-recovery.js";
|
|
4
4
|
import { renderPmCommand } from "./argv-utils.js";
|
|
5
5
|
import { discoverNearbyPmRoot } from "../sdk/tracker-root-discovery.js";
|
|
@@ -171,6 +171,11 @@ function normalizeRecoveryPayload(payload) {
|
|
|
171
171
|
if (payload.candidate_commands_truncated === true) {
|
|
172
172
|
normalized.candidate_commands_truncated = true;
|
|
173
173
|
}
|
|
174
|
+
if (payload.option_scope === "declared_on_path" ||
|
|
175
|
+
payload.option_scope === "declared_elsewhere" ||
|
|
176
|
+
payload.option_scope === "declared_nowhere") {
|
|
177
|
+
normalized.option_scope = payload.option_scope;
|
|
178
|
+
}
|
|
174
179
|
assignRecoveryString(normalized, "suggested_retry", payload.suggested_retry);
|
|
175
180
|
if (typeof payload.retry_after_ms === "number" &&
|
|
176
181
|
Number.isSafeInteger(payload.retry_after_ms) &&
|
|
@@ -221,6 +226,9 @@ function renderRecoveryBundle(recovery) {
|
|
|
221
226
|
if (normalized.candidate_commands_truncated === true) {
|
|
222
227
|
lines.push(" candidate_commands_truncated: true");
|
|
223
228
|
}
|
|
229
|
+
if (normalized.option_scope !== undefined) {
|
|
230
|
+
lines.push(` option_scope: ${normalized.option_scope}`);
|
|
231
|
+
}
|
|
224
232
|
appendRecoveryTextLine(lines, "suggested_retry", normalized.suggested_retry);
|
|
225
233
|
if (typeof normalized.retry_after_ms === "number") {
|
|
226
234
|
lines.push(` retry_after_ms: ${normalized.retry_after_ms}`);
|
|
@@ -826,6 +834,42 @@ function buildUnsupportedUpdateOptionGuidance(optionName, context, suggestions)
|
|
|
826
834
|
}),
|
|
827
835
|
});
|
|
828
836
|
}
|
|
837
|
+
const UNKNOWN_OPTION_REQUIRED_BY_SCOPE = {
|
|
838
|
+
declared_elsewhere: "Use an option declared on this path, or move the declared option to one of its accepting command paths.",
|
|
839
|
+
declared_on_path: "Use the option with the value and syntax declared by this command path.",
|
|
840
|
+
declared_nowhere: "Use a declared option on this command path; this spelling exists nowhere in the command lexicon.",
|
|
841
|
+
};
|
|
842
|
+
function resolveUnknownOptionCandidateContext(context) {
|
|
843
|
+
const otherCommands = normalizeContextList(context.unknownOptionOtherCommands) ?? [];
|
|
844
|
+
return {
|
|
845
|
+
otherCommands,
|
|
846
|
+
optionScope: context.unknownOptionScope ??
|
|
847
|
+
(otherCommands.length > 0 ? "declared_elsewhere" : "declared_nowhere"),
|
|
848
|
+
candidateTotal: context.unknownOptionOtherCommandsTotal ?? otherCommands.length,
|
|
849
|
+
};
|
|
850
|
+
}
|
|
851
|
+
function buildUnknownOptionNextSteps(optionName, commandName, suggestions, candidateContext, retryCommand) {
|
|
852
|
+
const proseCommands = candidateContext.otherCommands.slice(0, 3);
|
|
853
|
+
const proseRemainder = candidateContext.candidateTotal - proseCommands.length;
|
|
854
|
+
const proseRemainderText = proseRemainder > 0
|
|
855
|
+
? ` and ${String(proseRemainder)} more command path(s)`
|
|
856
|
+
: "";
|
|
857
|
+
return [
|
|
858
|
+
"Run command help to confirm the exact option contracts for this command path.",
|
|
859
|
+
suggestions.length
|
|
860
|
+
? `Nearest supported options: ${suggestions.join(", ")}`
|
|
861
|
+
: undefined,
|
|
862
|
+
proseCommands.length
|
|
863
|
+
? `${optionName} is accepted by ${proseCommands.join(", ")}${proseRemainderText}. Inspect those command contracts only if you intended a different operation.`
|
|
864
|
+
: undefined,
|
|
865
|
+
candidateContext.optionScope === "declared_nowhere"
|
|
866
|
+
? `${optionName} is not declared on any command path. Use a nearest supported option on ${commandName ?? "the attempted command"}, or inspect that command's help.`
|
|
867
|
+
: undefined,
|
|
868
|
+
retryCommand
|
|
869
|
+
? `Replay with suggested correction: ${retryCommand}`
|
|
870
|
+
: undefined,
|
|
871
|
+
].filter((entry) => typeof entry === "string");
|
|
872
|
+
}
|
|
829
873
|
function buildUnknownOptionGuidance(message, commandName, context) {
|
|
830
874
|
const unknownOption = message.match(/unknown option '([^']+)'/);
|
|
831
875
|
if (!unknownOption) {
|
|
@@ -839,26 +883,8 @@ function buildUnknownOptionGuidance(message, commandName, context) {
|
|
|
839
883
|
(optionName === "--file" || optionName === "--doc")) {
|
|
840
884
|
return buildUnsupportedUpdateOptionGuidance(optionName, context, suggestions);
|
|
841
885
|
}
|
|
842
|
-
const
|
|
843
|
-
const
|
|
844
|
-
const proseCommands = otherCommands.slice(0, 3);
|
|
845
|
-
const proseRemainder = candidateTotal - proseCommands.length;
|
|
846
|
-
let proseRemainderText = "";
|
|
847
|
-
if (proseRemainder > 0) {
|
|
848
|
-
proseRemainderText = ` and ${String(proseRemainder)} more command path(s)`;
|
|
849
|
-
}
|
|
850
|
-
const nextSteps = [
|
|
851
|
-
"Run command help to confirm the exact option contracts for this command path.",
|
|
852
|
-
suggestions.length
|
|
853
|
-
? `Nearest supported options: ${suggestions.join(", ")}`
|
|
854
|
-
: undefined,
|
|
855
|
-
proseCommands.length
|
|
856
|
-
? `${optionName} is accepted by ${proseCommands.join(", ")}${proseRemainderText}. Inspect those command contracts only if you intended a different operation.`
|
|
857
|
-
: undefined,
|
|
858
|
-
retryCommand
|
|
859
|
-
? `Replay with suggested correction: ${retryCommand}`
|
|
860
|
-
: undefined,
|
|
861
|
-
].filter((entry) => typeof entry === "string");
|
|
886
|
+
const candidateContext = resolveUnknownOptionCandidateContext(guidanceContext);
|
|
887
|
+
const nextSteps = buildUnknownOptionNextSteps(optionName, commandName, suggestions, candidateContext, retryCommand);
|
|
862
888
|
const examples = [
|
|
863
889
|
retryCommand,
|
|
864
890
|
`pm ${commandName ?? "<command>"} --help`,
|
|
@@ -867,15 +893,16 @@ function buildUnknownOptionGuidance(message, commandName, context) {
|
|
|
867
893
|
code: "unknown_option",
|
|
868
894
|
title: `Unknown option ${optionName}`,
|
|
869
895
|
happened: `Commander does not recognize option ${optionName} for this command path.`,
|
|
870
|
-
required:
|
|
896
|
+
required: UNKNOWN_OPTION_REQUIRED_BY_SCOPE[candidateContext.optionScope],
|
|
871
897
|
why: "Option contracts are command-specific and intentionally validated.",
|
|
872
898
|
examples,
|
|
873
899
|
nextSteps,
|
|
874
900
|
recovery: buildCommanderRecoveryPayload(context, {
|
|
875
901
|
suggested_flags: suggestions.length > 0 ? suggestions : undefined,
|
|
876
|
-
candidate_commands: otherCommands,
|
|
877
|
-
candidate_commands_total: candidateTotal || undefined,
|
|
902
|
+
candidate_commands: candidateContext.otherCommands,
|
|
903
|
+
candidate_commands_total: candidateContext.candidateTotal || undefined,
|
|
878
904
|
candidate_commands_truncated: guidanceContext.unknownOptionOtherCommandsTruncated,
|
|
905
|
+
option_scope: candidateContext.optionScope,
|
|
879
906
|
}),
|
|
880
907
|
});
|
|
881
908
|
}
|
|
@@ -1197,4 +1224,4 @@ export const _testOnly = {
|
|
|
1197
1224
|
resolveKnownPackageCommandHint,
|
|
1198
1225
|
};
|
|
1199
1226
|
//# sourceMappingURL=error-guidance.js.map
|
|
1200
|
-
//# debugId=
|
|
1227
|
+
//# debugId=6f4c3f5d-9acc-5e2c-9351-12fdcfcdb56a
|
package/dist/cli/main.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @module cli/main
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
6
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="cf9d1c78-06f0-5330-8562-ac863c95ee86")}catch(e){}}();
|
|
7
7
|
import { Command } from "commander";
|
|
8
8
|
import { activateExtensions, clearActiveExtensionHooks, createCoreCommandHookContext, resetActiveExtensionRuntimeState, createEmptyExtensionRegistrationRegistry, discoverExtensions, getActiveCommandResult, getActiveExtensionRegistrations, loadExtensions, consumeAfterCommandAffectedItems, runActiveCommandHandler, runActiveParserOverride, runActivePreflightOverride, runAfterCommandHooks, runBeforeCommandHooks, setActiveCommandResult, setActiveCommandContext, setActiveExtensionCommands, setActiveExtensionHooks, setActiveExtensionParsers, setActiveExtensionPreflight, setActiveExtensionRegistrations, setActiveExtensionRenderers, setActiveExtensionServices, pathExists, resolvePmCliVersion, resolvePmPackageRootFromModule, resolveItemTypeRegistry, resolveRuntimeFieldRegistry, EXIT_CODE, resolveTelemetryErrorCategory, PmCliError, asRecordOrNull, printError, printResult, maybeRunFirstUseTelemetryPrompt, emitTelemetryErrorEvent, startTelemetryCommand, deriveTelemetryCommandResolution, sentryCaptureCliError, sentryFinishCommandSpan, sentryFlush, sentryLogCliUsageError, sentrySetCommandContext, sentryStartCommandSpan, ensureSentryInit, getSettingsPath, resolvePmRoot, readSettings, readSettingsWithMetadata, runWithWorkspaceHarnessSignalDescriptors, createLazyModule, } from "../sdk/runtime-primitives.js";
|
|
9
9
|
import { resolveSubcommandFlagContractsForCommand } from "../sdk/cli-contracts.js";
|
|
@@ -1598,6 +1598,7 @@ function attachProgramLifecycleHooks(rootProgram) {
|
|
|
1598
1598
|
outputBudget: rawGlobalOptions.outputBudget,
|
|
1599
1599
|
outputFormat: rawGlobalOptions.outputFormat,
|
|
1600
1600
|
outputSession: rawGlobalOptions.outputSession,
|
|
1601
|
+
outputCursor: rawGlobalOptions.outputCursor,
|
|
1601
1602
|
});
|
|
1602
1603
|
forwardReadOutputIncludeModes(actionCommand, commandPath, globalOptions, commandOptions);
|
|
1603
1604
|
await maybeRunFirstUseTelemetryPrompt(commandPath, globalOptions);
|
|
@@ -2511,4 +2512,4 @@ export const _testOnly = {
|
|
|
2511
2512
|
wrapThrownErrorForSentry,
|
|
2512
2513
|
};
|
|
2513
2514
|
//# sourceMappingURL=main.js.map
|
|
2514
|
-
//# debugId=
|
|
2515
|
+
//# debugId=cf9d1c78-06f0-5330-8562-ac863c95ee86
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="60ee1ab9-00a0-50a7-839e-4938ecc6a48f")}catch(e){}}();
|
|
3
3
|
import { resolveBodyFileContent, EXIT_CODE, splitCommaList, PmCliError, createUnknownSubcommandError, } from "../sdk/runtime-primitives.js";
|
|
4
4
|
import { CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS, PLAN_CREATE_METADATA_PARAMETER_KEYS, UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS, } from "../sdk/cli-contracts.js";
|
|
5
5
|
import { BUILTIN_ITEM_TYPE_VALUES } from "../types/index.js";
|
|
@@ -1670,6 +1670,7 @@ export function registerMutationCommands(program, registrationOptions = {}) {
|
|
|
1670
1670
|
.argument("[id]", "Item id (omit with --all)")
|
|
1671
1671
|
.option("--all", "Scan every stream for drift and repair each drifted stream in one audited pass")
|
|
1672
1672
|
.option("--dry-run", "Preview the re-anchor impact without writing the history file")
|
|
1673
|
+
.option("--normalize-provenance", "Remove invalid provenance; return aggregate-only evidence")
|
|
1673
1674
|
.option("--author <value>", "Mutation author")
|
|
1674
1675
|
.option("--message <value>", "Audit history message for the repair marker entry")
|
|
1675
1676
|
.option("--force", "Force ownership/lock override")
|
|
@@ -1684,6 +1685,7 @@ export function registerMutationCommands(program, registrationOptions = {}) {
|
|
|
1684
1685
|
author: typeof options.author === "string" ? options.author : undefined,
|
|
1685
1686
|
message: typeof options.message === "string" ? options.message : undefined,
|
|
1686
1687
|
force: Boolean(options.force),
|
|
1688
|
+
normalizeProvenance: options.normalizeProvenance === true,
|
|
1687
1689
|
};
|
|
1688
1690
|
// history-repair only re-anchors the audit stream; item content is untouched,
|
|
1689
1691
|
// so search caches do not need invalidation.
|
|
@@ -1838,4 +1840,4 @@ export function registerMutationCommands(program, registrationOptions = {}) {
|
|
|
1838
1840
|
.action(runDepsAction);
|
|
1839
1841
|
}
|
|
1840
1842
|
//# sourceMappingURL=register-mutation.js.map
|
|
1841
|
-
//# debugId=
|
|
1843
|
+
//# debugId=60ee1ab9-00a0-50a7-839e-4938ecc6a48f
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="dec5fb7d-416f-5da6-bd97-c05c25dbf769")}catch(e){}}();
|
|
3
3
|
import { resolveRuntimeStatusRegistry, setActiveCommandResult, EXIT_CODE, PmCliError, createUnknownSubcommandError, resolveAuthor, resolvePmRoot, readSettings, } from "../sdk/runtime-primitives.js";
|
|
4
4
|
import { resolveStartTaskInProgressStatus } from "../sdk/start-task-status.js";
|
|
5
5
|
import { parseStatsAnalyticsJson } from "./stats-analytics-json.js";
|
|
@@ -284,6 +284,7 @@ async function runDuplicatesAction(options, command) {
|
|
|
284
284
|
async function runHealthAction(options, command) {
|
|
285
285
|
const globalOptions = getGlobalOptions(command);
|
|
286
286
|
const startedAt = Date.now();
|
|
287
|
+
const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
|
|
287
288
|
const result = await runHealth(globalOptions, {
|
|
288
289
|
strictDirectories: Boolean(options.strictDirectories),
|
|
289
290
|
requireMergeDrivers: Boolean(options.requireMergeDrivers),
|
|
@@ -294,14 +295,13 @@ async function runHealthAction(options, command) {
|
|
|
294
295
|
verboseStaleItems: Boolean(options.verboseStaleItems),
|
|
295
296
|
verboseAuthorEvents: Boolean(options.verboseAuthorEvents),
|
|
296
297
|
brief: Boolean(options.brief),
|
|
297
|
-
summary: Boolean(options.summary),
|
|
298
|
+
summary: Boolean(options.summary) || strictExit,
|
|
298
299
|
skipVectors: Boolean(options.skipVectors),
|
|
299
300
|
skipIntegrity: Boolean(options.skipIntegrity),
|
|
300
301
|
skipDrift: Boolean(options.skipDrift),
|
|
301
302
|
full: Boolean(options.full),
|
|
302
303
|
});
|
|
303
304
|
printResult(result, globalOptions);
|
|
304
|
-
const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
|
|
305
305
|
if (strictExit && !result.ok) {
|
|
306
306
|
setActiveCommandResult({
|
|
307
307
|
...result,
|
|
@@ -649,7 +649,7 @@ export function registerOperationCommands(program) {
|
|
|
649
649
|
.option("--skip-integrity", "Skip item/history file integrity check for a faster run")
|
|
650
650
|
.option("--skip-drift", "Skip history drift hash check for a faster run")
|
|
651
651
|
.option("--full", "Run all checks including slow integrity, drift, and vectorization checks")
|
|
652
|
-
.option("--strict-exit", "Return non-zero exit when health is not ok
|
|
652
|
+
.option("--strict-exit", "Return non-zero exit when health is not ok and default to actionable summary output; use --full for complete details")
|
|
653
653
|
.option("--fail-on-warn", "Alias for --strict-exit")
|
|
654
654
|
.action(runHealthAction);
|
|
655
655
|
program
|
|
@@ -873,4 +873,4 @@ function registerSchedulingShortcutCommands(program) {
|
|
|
873
873
|
});
|
|
874
874
|
}
|
|
875
875
|
//# sourceMappingURL=register-operations.js.map
|
|
876
|
-
//# debugId=
|
|
876
|
+
//# debugId=dec5fb7d-416f-5da6-bd97-c05c25dbf769
|