@unbrained/pm-cli 2026.3.12 → 2026.5.1
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/.agents/pm/extensions/.managed-extensions.json +42 -0
- package/.agents/pm/extensions/beads/index.js +109 -0
- package/.agents/pm/extensions/beads/manifest.json +7 -0
- package/{dist/cli/commands/beads.js → .agents/pm/extensions/beads/runtime.js} +31 -21
- package/.agents/pm/extensions/beads/runtime.ts +702 -0
- package/.agents/pm/extensions/todos/index.js +126 -0
- package/.agents/pm/extensions/todos/manifest.json +7 -0
- package/{dist/extensions/builtins/todos/import-export.js → .agents/pm/extensions/todos/runtime.js} +39 -29
- package/.agents/pm/extensions/todos/runtime.ts +568 -0
- package/AGENTS.md +196 -92
- package/CHANGELOG.md +399 -0
- package/CODE_OF_CONDUCT.md +42 -0
- package/CONTRIBUTING.md +144 -0
- package/PRD.md +512 -164
- package/README.md +1053 -2
- package/SECURITY.md +51 -0
- package/dist/cli/commands/activity.d.ts +5 -0
- package/dist/cli/commands/activity.js +66 -3
- package/dist/cli/commands/activity.js.map +1 -1
- package/dist/cli/commands/aggregate.d.ts +54 -0
- package/dist/cli/commands/aggregate.js +181 -0
- package/dist/cli/commands/aggregate.js.map +1 -0
- package/dist/cli/commands/append.js +4 -1
- package/dist/cli/commands/append.js.map +1 -1
- package/dist/cli/commands/calendar.d.ts +109 -0
- package/dist/cli/commands/calendar.js +797 -0
- package/dist/cli/commands/calendar.js.map +1 -0
- package/dist/cli/commands/claim.d.ts +5 -1
- package/dist/cli/commands/claim.js +42 -21
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/close.d.ts +1 -0
- package/dist/cli/commands/close.js +54 -5
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/comments-audit.d.ts +91 -0
- package/dist/cli/commands/comments-audit.js +195 -0
- package/dist/cli/commands/comments-audit.js.map +1 -0
- package/dist/cli/commands/comments.d.ts +1 -0
- package/dist/cli/commands/comments.js +70 -21
- package/dist/cli/commands/comments.js.map +1 -1
- package/dist/cli/commands/completion.d.ts +10 -4
- package/dist/cli/commands/completion.js +1184 -137
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.d.ts +35 -3
- package/dist/cli/commands/config.js +968 -13
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/context.d.ts +86 -0
- package/dist/cli/commands/context.js +299 -0
- package/dist/cli/commands/context.js.map +1 -0
- package/dist/cli/commands/contracts.d.ts +78 -0
- package/dist/cli/commands/contracts.js +920 -0
- package/dist/cli/commands/contracts.js.map +1 -0
- package/dist/cli/commands/create.d.ts +48 -14
- package/dist/cli/commands/create.js +1331 -160
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/dedupe-audit.d.ts +81 -0
- package/dist/cli/commands/dedupe-audit.js +330 -0
- package/dist/cli/commands/dedupe-audit.js.map +1 -0
- package/dist/cli/commands/deps.d.ts +52 -0
- package/dist/cli/commands/deps.js +204 -0
- package/dist/cli/commands/deps.js.map +1 -0
- package/dist/cli/commands/docs.d.ts +19 -0
- package/dist/cli/commands/docs.js +212 -13
- package/dist/cli/commands/docs.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +122 -0
- package/dist/cli/commands/extension.js +1850 -0
- package/dist/cli/commands/extension.js.map +1 -0
- package/dist/cli/commands/files.d.ts +52 -1
- package/dist/cli/commands/files.js +443 -13
- package/dist/cli/commands/files.js.map +1 -1
- package/dist/cli/commands/gc.d.ts +11 -1
- package/dist/cli/commands/gc.js +89 -11
- package/dist/cli/commands/gc.js.map +1 -1
- package/dist/cli/commands/get.d.ts +13 -0
- package/dist/cli/commands/get.js +35 -3
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/health.d.ts +10 -2
- package/dist/cli/commands/health.js +774 -23
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history.d.ts +20 -0
- package/dist/cli/commands/history.js +152 -6
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/index.d.ts +16 -3
- package/dist/cli/commands/index.js +16 -3
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +7 -2
- package/dist/cli/commands/init.js +137 -5
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/learnings.d.ts +17 -0
- package/dist/cli/commands/learnings.js +129 -0
- package/dist/cli/commands/learnings.js.map +1 -0
- package/dist/cli/commands/list.d.ts +29 -1
- package/dist/cli/commands/list.js +289 -53
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/normalize.d.ts +51 -0
- package/dist/cli/commands/normalize.js +298 -0
- package/dist/cli/commands/normalize.js.map +1 -0
- package/dist/cli/commands/notes.d.ts +17 -0
- package/dist/cli/commands/notes.js +129 -0
- package/dist/cli/commands/notes.js.map +1 -0
- package/dist/cli/commands/reindex.d.ts +1 -0
- package/dist/cli/commands/reindex.js +208 -32
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/restore.js +164 -30
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/search.d.ts +14 -1
- package/dist/cli/commands/search.js +475 -81
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/stats.js +26 -10
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/templates.d.ts +26 -0
- package/dist/cli/commands/templates.js +179 -0
- package/dist/cli/commands/templates.js.map +1 -0
- package/dist/cli/commands/test-all.d.ts +19 -1
- package/dist/cli/commands/test-all.js +161 -13
- package/dist/cli/commands/test-all.js.map +1 -1
- package/dist/cli/commands/test-runs.d.ts +63 -0
- package/dist/cli/commands/test-runs.js +179 -0
- package/dist/cli/commands/test-runs.js.map +1 -0
- package/dist/cli/commands/test.d.ts +75 -1
- package/dist/cli/commands/test.js +1360 -41
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update-many.d.ts +57 -0
- package/dist/cli/commands/update-many.js +631 -0
- package/dist/cli/commands/update-many.js.map +1 -0
- package/dist/cli/commands/update.d.ts +30 -0
- package/dist/cli/commands/update.js +1393 -84
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +30 -0
- package/dist/cli/commands/validate.js +1140 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/error-guidance.d.ts +33 -0
- package/dist/cli/error-guidance.js +337 -0
- package/dist/cli/error-guidance.js.map +1 -0
- package/dist/cli/extension-command-options.d.ts +1 -0
- package/dist/cli/extension-command-options.js +92 -0
- package/dist/cli/extension-command-options.js.map +1 -1
- package/dist/cli/help-content.d.ts +20 -0
- package/dist/cli/help-content.js +543 -0
- package/dist/cli/help-content.js.map +1 -0
- package/dist/cli/main.js +3625 -445
- package/dist/cli/main.js.map +1 -1
- package/dist/core/extensions/index.d.ts +13 -1
- package/dist/core/extensions/index.js +108 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/item-fields.d.ts +2 -0
- package/dist/core/extensions/item-fields.js +79 -0
- package/dist/core/extensions/item-fields.js.map +1 -0
- package/dist/core/extensions/loader.d.ts +322 -9
- package/dist/core/extensions/loader.js +911 -20
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runtime-registrations.d.ts +5 -0
- package/dist/core/extensions/runtime-registrations.js +51 -0
- package/dist/core/extensions/runtime-registrations.js.map +1 -0
- package/dist/core/history/history-stream-policy.d.ts +20 -0
- package/dist/core/history/history-stream-policy.js +53 -0
- package/dist/core/history/history-stream-policy.js.map +1 -0
- package/dist/core/history/history.js +90 -1
- package/dist/core/history/history.js.map +1 -1
- package/dist/core/item/id.js +4 -1
- package/dist/core/item/id.js.map +1 -1
- package/dist/core/item/index.d.ts +1 -0
- package/dist/core/item/index.js +1 -0
- package/dist/core/item/index.js.map +1 -1
- package/dist/core/item/item-format.d.ts +11 -5
- package/dist/core/item/item-format.js +507 -24
- package/dist/core/item/item-format.js.map +1 -1
- package/dist/core/item/parent-reference-policy.d.ts +6 -0
- package/dist/core/item/parent-reference-policy.js +32 -0
- package/dist/core/item/parent-reference-policy.js.map +1 -0
- package/dist/core/item/parse.d.ts +5 -0
- package/dist/core/item/parse.js +216 -19
- package/dist/core/item/parse.js.map +1 -1
- package/dist/core/item/sprint-release-format.d.ts +6 -0
- package/dist/core/item/sprint-release-format.js +33 -0
- package/dist/core/item/sprint-release-format.js.map +1 -0
- package/dist/core/item/status.d.ts +3 -0
- package/dist/core/item/status.js +24 -0
- package/dist/core/item/status.js.map +1 -0
- package/dist/core/item/type-registry.d.ts +37 -0
- package/dist/core/item/type-registry.js +706 -0
- package/dist/core/item/type-registry.js.map +1 -0
- package/dist/core/lock/lock.d.ts +1 -1
- package/dist/core/lock/lock.js +101 -12
- package/dist/core/lock/lock.js.map +1 -1
- package/dist/core/output/command-aware.d.ts +1 -0
- package/dist/core/output/command-aware.js +394 -0
- package/dist/core/output/command-aware.js.map +1 -0
- package/dist/core/output/output.d.ts +3 -0
- package/dist/core/output/output.js +124 -6
- package/dist/core/output/output.js.map +1 -1
- package/dist/core/schema/runtime-field-filters.d.ts +3 -0
- package/dist/core/schema/runtime-field-filters.js +39 -0
- package/dist/core/schema/runtime-field-filters.js.map +1 -0
- package/dist/core/schema/runtime-field-values.d.ts +8 -0
- package/dist/core/schema/runtime-field-values.js +154 -0
- package/dist/core/schema/runtime-field-values.js.map +1 -0
- package/dist/core/schema/runtime-schema.d.ts +68 -0
- package/dist/core/schema/runtime-schema.js +554 -0
- package/dist/core/schema/runtime-schema.js.map +1 -0
- package/dist/core/search/cache.d.ts +13 -1
- package/dist/core/search/cache.js +123 -14
- package/dist/core/search/cache.js.map +1 -1
- package/dist/core/search/semantic-defaults.d.ts +6 -0
- package/dist/core/search/semantic-defaults.js +120 -0
- package/dist/core/search/semantic-defaults.js.map +1 -0
- package/dist/core/search/vector-stores.js +3 -1
- package/dist/core/search/vector-stores.js.map +1 -1
- package/dist/core/shared/command-types.d.ts +2 -0
- package/dist/core/shared/conflict-markers.d.ts +7 -0
- package/dist/core/shared/conflict-markers.js +27 -0
- package/dist/core/shared/conflict-markers.js.map +1 -0
- package/dist/core/shared/constants.d.ts +15 -4
- package/dist/core/shared/constants.js +141 -1
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/shared/errors.d.ts +10 -1
- package/dist/core/shared/errors.js +3 -1
- package/dist/core/shared/errors.js.map +1 -1
- package/dist/core/shared/text-normalization.d.ts +4 -0
- package/dist/core/shared/text-normalization.js +33 -0
- package/dist/core/shared/text-normalization.js.map +1 -0
- package/dist/core/shared/time.d.ts +1 -2
- package/dist/core/shared/time.js +98 -11
- package/dist/core/shared/time.js.map +1 -1
- package/dist/core/store/index.d.ts +1 -0
- package/dist/core/store/index.js +1 -0
- package/dist/core/store/index.js.map +1 -1
- package/dist/core/store/item-format-migration.d.ts +9 -0
- package/dist/core/store/item-format-migration.js +87 -0
- package/dist/core/store/item-format-migration.js.map +1 -0
- package/dist/core/store/item-store.d.ts +13 -4
- package/dist/core/store/item-store.js +238 -51
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/paths.d.ts +21 -3
- package/dist/core/store/paths.js +59 -4
- package/dist/core/store/paths.js.map +1 -1
- package/dist/core/store/settings.d.ts +14 -1
- package/dist/core/store/settings.js +463 -7
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/consent.d.ts +2 -0
- package/dist/core/telemetry/consent.js +79 -0
- package/dist/core/telemetry/consent.js.map +1 -0
- package/dist/core/telemetry/runtime.d.ts +38 -0
- package/dist/core/telemetry/runtime.js +733 -0
- package/dist/core/telemetry/runtime.js.map +1 -0
- package/dist/core/test/background-runs.d.ts +117 -0
- package/dist/core/test/background-runs.js +760 -0
- package/dist/core/test/background-runs.js.map +1 -0
- package/dist/core/test/item-test-run-tracking.d.ts +9 -0
- package/dist/core/test/item-test-run-tracking.js +50 -0
- package/dist/core/test/item-test-run-tracking.js.map +1 -0
- package/dist/sdk/cli-contracts.d.ts +92 -0
- package/dist/sdk/cli-contracts.js +2357 -0
- package/dist/sdk/cli-contracts.js.map +1 -0
- package/dist/sdk/index.d.ts +34 -0
- package/dist/sdk/index.js +23 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/types.d.ts +197 -3
- package/dist/types.js +48 -1
- package/dist/types.js.map +1 -1
- package/docs/ARCHITECTURE.md +368 -39
- package/docs/EXTENSIONS.md +454 -49
- package/docs/RELEASING.md +68 -19
- package/docs/SDK.md +123 -0
- package/docs/examples/starter-extension/README.md +48 -0
- package/docs/examples/starter-extension/index.js +191 -0
- package/docs/examples/starter-extension/manifest.json +17 -0
- package/docs/examples/starter-extension/package.json +10 -0
- package/package.json +33 -6
- package/.pi/extensions/pm-cli/index.ts +0 -778
- package/dist/cli/commands/beads.d.ts +0 -16
- package/dist/cli/commands/beads.js.map +0 -1
- package/dist/cli/commands/install.d.ts +0 -18
- package/dist/cli/commands/install.js +0 -87
- package/dist/cli/commands/install.js.map +0 -1
- package/dist/core/extensions/builtins.d.ts +0 -3
- package/dist/core/extensions/builtins.js +0 -47
- package/dist/core/extensions/builtins.js.map +0 -1
- package/dist/extensions/builtins/beads/index.d.ts +0 -8
- package/dist/extensions/builtins/beads/index.js +0 -33
- package/dist/extensions/builtins/beads/index.js.map +0 -1
- package/dist/extensions/builtins/todos/import-export.d.ts +0 -26
- package/dist/extensions/builtins/todos/import-export.js.map +0 -1
- package/dist/extensions/builtins/todos/index.d.ts +0 -8
- package/dist/extensions/builtins/todos/index.js +0 -38
- package/dist/extensions/builtins/todos/index.js.map +0 -1
|
@@ -0,0 +1,2357 @@
|
|
|
1
|
+
export const PM_EXTENSION_CAPABILITY_CONTRACTS = [
|
|
2
|
+
"commands",
|
|
3
|
+
"renderers",
|
|
4
|
+
"hooks",
|
|
5
|
+
"schema",
|
|
6
|
+
"importers",
|
|
7
|
+
"search",
|
|
8
|
+
"parser",
|
|
9
|
+
"preflight",
|
|
10
|
+
"services",
|
|
11
|
+
];
|
|
12
|
+
export const PM_EXTENSION_SERVICE_NAME_CONTRACTS = [
|
|
13
|
+
"output_format",
|
|
14
|
+
"error_format",
|
|
15
|
+
"help_format",
|
|
16
|
+
"lock_acquire",
|
|
17
|
+
"lock_release",
|
|
18
|
+
"history_append",
|
|
19
|
+
"item_store_write",
|
|
20
|
+
"item_store_delete",
|
|
21
|
+
];
|
|
22
|
+
function normalizeUniqueStringList(values) {
|
|
23
|
+
return [...new Set(Array.from(values).filter((value) => value.trim().length > 0))];
|
|
24
|
+
}
|
|
25
|
+
function normalizeFlagAliasKey(flag) {
|
|
26
|
+
if (!flag.startsWith("--")) {
|
|
27
|
+
return flag;
|
|
28
|
+
}
|
|
29
|
+
return `--${flag.slice(2).replaceAll("_", "-")}`;
|
|
30
|
+
}
|
|
31
|
+
export function withFlagAliasMetadata(flagContracts) {
|
|
32
|
+
const aliasesByCanonical = new Map();
|
|
33
|
+
for (const contract of flagContracts) {
|
|
34
|
+
const canonical = normalizeFlagAliasKey(contract.flag);
|
|
35
|
+
const bucket = aliasesByCanonical.get(canonical) ?? new Set();
|
|
36
|
+
if (contract.flag !== canonical) {
|
|
37
|
+
bucket.add(contract.flag);
|
|
38
|
+
}
|
|
39
|
+
for (const alias of contract.aliases ?? []) {
|
|
40
|
+
if (alias !== canonical) {
|
|
41
|
+
bucket.add(alias);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
aliasesByCanonical.set(canonical, bucket);
|
|
45
|
+
}
|
|
46
|
+
return flagContracts.map((contract) => {
|
|
47
|
+
const canonical = normalizeFlagAliasKey(contract.flag);
|
|
48
|
+
if (contract.flag !== canonical) {
|
|
49
|
+
return contract;
|
|
50
|
+
}
|
|
51
|
+
const aliases = normalizeUniqueStringList([...(contract.aliases ?? []), ...(aliasesByCanonical.get(canonical) ?? [])]).filter((alias) => alias !== canonical);
|
|
52
|
+
if (aliases.length === 0) {
|
|
53
|
+
return contract;
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
...contract,
|
|
57
|
+
aliases,
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export const PM_CORE_COMMAND_NAMES = [
|
|
62
|
+
"init",
|
|
63
|
+
"config",
|
|
64
|
+
"extension",
|
|
65
|
+
"create",
|
|
66
|
+
"list",
|
|
67
|
+
"list-all",
|
|
68
|
+
"list-draft",
|
|
69
|
+
"list-open",
|
|
70
|
+
"list-in-progress",
|
|
71
|
+
"list-blocked",
|
|
72
|
+
"list-closed",
|
|
73
|
+
"list-canceled",
|
|
74
|
+
"aggregate",
|
|
75
|
+
"dedupe-audit",
|
|
76
|
+
"calendar",
|
|
77
|
+
"cal",
|
|
78
|
+
"context",
|
|
79
|
+
"ctx",
|
|
80
|
+
"get",
|
|
81
|
+
"search",
|
|
82
|
+
"reindex",
|
|
83
|
+
"history",
|
|
84
|
+
"activity",
|
|
85
|
+
"restore",
|
|
86
|
+
"update",
|
|
87
|
+
"update-many",
|
|
88
|
+
"normalize",
|
|
89
|
+
"close",
|
|
90
|
+
"delete",
|
|
91
|
+
"append",
|
|
92
|
+
"comments",
|
|
93
|
+
"comments-audit",
|
|
94
|
+
"notes",
|
|
95
|
+
"learnings",
|
|
96
|
+
"files",
|
|
97
|
+
"docs",
|
|
98
|
+
"deps",
|
|
99
|
+
"test",
|
|
100
|
+
"test-all",
|
|
101
|
+
"test-runs",
|
|
102
|
+
"stats",
|
|
103
|
+
"health",
|
|
104
|
+
"validate",
|
|
105
|
+
"gc",
|
|
106
|
+
"contracts",
|
|
107
|
+
"claim",
|
|
108
|
+
"release",
|
|
109
|
+
"start-task",
|
|
110
|
+
"pause-task",
|
|
111
|
+
"close-task",
|
|
112
|
+
"templates",
|
|
113
|
+
"completion",
|
|
114
|
+
"help",
|
|
115
|
+
];
|
|
116
|
+
export const PM_TOOL_ACTIONS = [
|
|
117
|
+
"init",
|
|
118
|
+
"config",
|
|
119
|
+
"extension-init",
|
|
120
|
+
"extension-install",
|
|
121
|
+
"extension-uninstall",
|
|
122
|
+
"extension-explore",
|
|
123
|
+
"extension-manage",
|
|
124
|
+
"extension-doctor",
|
|
125
|
+
"extension-adopt",
|
|
126
|
+
"extension-adopt-all",
|
|
127
|
+
"extension-activate",
|
|
128
|
+
"extension-deactivate",
|
|
129
|
+
"create",
|
|
130
|
+
"list",
|
|
131
|
+
"list-all",
|
|
132
|
+
"list-draft",
|
|
133
|
+
"list-open",
|
|
134
|
+
"list-in-progress",
|
|
135
|
+
"list-blocked",
|
|
136
|
+
"list-closed",
|
|
137
|
+
"list-canceled",
|
|
138
|
+
"aggregate",
|
|
139
|
+
"dedupe-audit",
|
|
140
|
+
"calendar",
|
|
141
|
+
"context",
|
|
142
|
+
"get",
|
|
143
|
+
"search",
|
|
144
|
+
"reindex",
|
|
145
|
+
"history",
|
|
146
|
+
"activity",
|
|
147
|
+
"restore",
|
|
148
|
+
"update",
|
|
149
|
+
"update-many",
|
|
150
|
+
"normalize",
|
|
151
|
+
"close",
|
|
152
|
+
"delete",
|
|
153
|
+
"append",
|
|
154
|
+
"comments",
|
|
155
|
+
"comments-audit",
|
|
156
|
+
"notes",
|
|
157
|
+
"learnings",
|
|
158
|
+
"files",
|
|
159
|
+
"docs",
|
|
160
|
+
"deps",
|
|
161
|
+
"test",
|
|
162
|
+
"test-all",
|
|
163
|
+
"test-runs-list",
|
|
164
|
+
"test-runs-status",
|
|
165
|
+
"test-runs-logs",
|
|
166
|
+
"test-runs-stop",
|
|
167
|
+
"test-runs-resume",
|
|
168
|
+
"stats",
|
|
169
|
+
"health",
|
|
170
|
+
"validate",
|
|
171
|
+
"gc",
|
|
172
|
+
"contracts",
|
|
173
|
+
"completion",
|
|
174
|
+
"templates-save",
|
|
175
|
+
"templates-list",
|
|
176
|
+
"templates-show",
|
|
177
|
+
"claim",
|
|
178
|
+
"release",
|
|
179
|
+
"beads-import",
|
|
180
|
+
"todos-import",
|
|
181
|
+
"todos-export",
|
|
182
|
+
"start-task",
|
|
183
|
+
"pause-task",
|
|
184
|
+
"close-task",
|
|
185
|
+
];
|
|
186
|
+
export const PI_LIST_FILTER_OPTION_CONTRACTS = [
|
|
187
|
+
{ param: "type", flag: "--type" },
|
|
188
|
+
{ param: "tag", flag: "--tag" },
|
|
189
|
+
{ param: "priority", flag: "--priority" },
|
|
190
|
+
{ param: "deadlineBefore", flag: "--deadline-before" },
|
|
191
|
+
{ param: "deadlineAfter", flag: "--deadline-after" },
|
|
192
|
+
{ param: "assignee", flag: "--assignee" },
|
|
193
|
+
{ param: "assigneeFilter", flag: "--assignee-filter" },
|
|
194
|
+
{ param: "parent", flag: "--parent" },
|
|
195
|
+
{ param: "sprint", flag: "--sprint" },
|
|
196
|
+
{ param: "release", flag: "--release" },
|
|
197
|
+
{ param: "limit", flag: "--limit" },
|
|
198
|
+
{ param: "offset", flag: "--offset" },
|
|
199
|
+
{ param: "fields", flag: "--fields" },
|
|
200
|
+
{ param: "sort", flag: "--sort" },
|
|
201
|
+
{ param: "order", flag: "--order" },
|
|
202
|
+
];
|
|
203
|
+
export const PI_AGGREGATE_OPTION_CONTRACTS = [
|
|
204
|
+
{ param: "groupBy", flag: "--group-by" },
|
|
205
|
+
{ param: "status", flag: "--status" },
|
|
206
|
+
{ param: "type", flag: "--type" },
|
|
207
|
+
{ param: "tag", flag: "--tag" },
|
|
208
|
+
{ param: "priority", flag: "--priority" },
|
|
209
|
+
{ param: "deadlineBefore", flag: "--deadline-before" },
|
|
210
|
+
{ param: "deadlineAfter", flag: "--deadline-after" },
|
|
211
|
+
{ param: "assignee", flag: "--assignee" },
|
|
212
|
+
{ param: "assigneeFilter", flag: "--assignee-filter" },
|
|
213
|
+
{ param: "parent", flag: "--parent" },
|
|
214
|
+
{ param: "sprint", flag: "--sprint" },
|
|
215
|
+
{ param: "release", flag: "--release" },
|
|
216
|
+
];
|
|
217
|
+
export const PI_DEDUPE_AUDIT_OPTION_CONTRACTS = [
|
|
218
|
+
{ param: "mode", flag: "--mode" },
|
|
219
|
+
{ param: "limit", flag: "--limit" },
|
|
220
|
+
{ param: "threshold", flag: "--threshold" },
|
|
221
|
+
{ param: "status", flag: "--status" },
|
|
222
|
+
{ param: "type", flag: "--type" },
|
|
223
|
+
{ param: "tag", flag: "--tag" },
|
|
224
|
+
{ param: "priority", flag: "--priority" },
|
|
225
|
+
{ param: "deadlineBefore", flag: "--deadline-before" },
|
|
226
|
+
{ param: "deadlineAfter", flag: "--deadline-after" },
|
|
227
|
+
{ param: "assignee", flag: "--assignee" },
|
|
228
|
+
{ param: "assigneeFilter", flag: "--assignee-filter" },
|
|
229
|
+
{ param: "parent", flag: "--parent" },
|
|
230
|
+
{ param: "sprint", flag: "--sprint" },
|
|
231
|
+
{ param: "release", flag: "--release" },
|
|
232
|
+
];
|
|
233
|
+
export const PI_SEARCH_FILTER_OPTION_CONTRACTS = [
|
|
234
|
+
{ param: "type", flag: "--type" },
|
|
235
|
+
{ param: "tag", flag: "--tag" },
|
|
236
|
+
{ param: "priority", flag: "--priority" },
|
|
237
|
+
{ param: "deadlineBefore", flag: "--deadline-before" },
|
|
238
|
+
{ param: "deadlineAfter", flag: "--deadline-after" },
|
|
239
|
+
{ param: "fields", flag: "--fields" },
|
|
240
|
+
{ param: "limit", flag: "--limit" },
|
|
241
|
+
];
|
|
242
|
+
export const PI_SHARED_CREATE_UPDATE_OPTION_CONTRACTS = [
|
|
243
|
+
{ param: "parent", flag: "--parent" },
|
|
244
|
+
{ param: "reviewer", flag: "--reviewer" },
|
|
245
|
+
{ param: "risk", flag: "--risk" },
|
|
246
|
+
{ param: "confidence", flag: "--confidence" },
|
|
247
|
+
{ param: "sprint", flag: "--sprint" },
|
|
248
|
+
{ param: "release", flag: "--release" },
|
|
249
|
+
{ param: "blockedBy", flag: "--blocked-by" },
|
|
250
|
+
{ param: "blockedReason", flag: "--blocked-reason" },
|
|
251
|
+
{ param: "unblockNote", flag: "--unblock-note" },
|
|
252
|
+
{ param: "reporter", flag: "--reporter" },
|
|
253
|
+
{ param: "severity", flag: "--severity" },
|
|
254
|
+
{ param: "environment", flag: "--environment" },
|
|
255
|
+
{ param: "reproSteps", flag: "--repro-steps" },
|
|
256
|
+
{ param: "resolution", flag: "--resolution" },
|
|
257
|
+
{ param: "expectedResult", flag: "--expected-result" },
|
|
258
|
+
{ param: "actualResult", flag: "--actual-result" },
|
|
259
|
+
{ param: "affectedVersion", flag: "--affected-version" },
|
|
260
|
+
{ param: "fixedVersion", flag: "--fixed-version" },
|
|
261
|
+
{ param: "component", flag: "--component" },
|
|
262
|
+
{ param: "regression", flag: "--regression", booleanish: true },
|
|
263
|
+
{ param: "customerImpact", flag: "--customer-impact" },
|
|
264
|
+
{ param: "definitionOfReady", flag: "--definition-of-ready", allowEmpty: true },
|
|
265
|
+
{ param: "order", flag: "--order" },
|
|
266
|
+
{ param: "goal", flag: "--goal" },
|
|
267
|
+
{ param: "objective", flag: "--objective" },
|
|
268
|
+
{ param: "value", flag: "--value" },
|
|
269
|
+
{ param: "impact", flag: "--impact" },
|
|
270
|
+
{ param: "outcome", flag: "--outcome" },
|
|
271
|
+
{ param: "whyNow", flag: "--why-now" },
|
|
272
|
+
];
|
|
273
|
+
export const PI_CREATE_OPTION_CONTRACTS = [
|
|
274
|
+
{ param: "title", flag: "--title" },
|
|
275
|
+
{ param: "description", flag: "--description", allowEmpty: true },
|
|
276
|
+
{ param: "type", flag: "--type" },
|
|
277
|
+
{ param: "template", flag: "--template" },
|
|
278
|
+
{ param: "createMode", flag: "--create-mode" },
|
|
279
|
+
{ param: "schedulePreset", flag: "--schedule-preset" },
|
|
280
|
+
{ param: "status", flag: "--status" },
|
|
281
|
+
{ param: "priority", flag: "--priority" },
|
|
282
|
+
{ param: "tags", flag: "--tags", allowEmpty: true },
|
|
283
|
+
{ param: "body", flag: "--body", allowEmpty: true },
|
|
284
|
+
{ param: "deadline", flag: "--deadline" },
|
|
285
|
+
{ param: "estimate", flag: "--estimate" },
|
|
286
|
+
{ param: "acceptanceCriteria", flag: "--acceptance-criteria", allowEmpty: true },
|
|
287
|
+
{ param: "author", flag: "--author" },
|
|
288
|
+
{ param: "message", flag: "--message", allowEmpty: true },
|
|
289
|
+
{ param: "assignee", flag: "--assignee" },
|
|
290
|
+
{ param: "reminder", flag: "--reminder", repeatable: true },
|
|
291
|
+
{ param: "event", flag: "--event", repeatable: true },
|
|
292
|
+
{ param: "typeOption", flag: "--type-option", repeatable: true },
|
|
293
|
+
{ param: "dep", flag: "--dep", repeatable: true },
|
|
294
|
+
{ param: "comment", flag: "--comment", repeatable: true },
|
|
295
|
+
{ param: "note", flag: "--note", repeatable: true },
|
|
296
|
+
{ param: "learning", flag: "--learning", repeatable: true },
|
|
297
|
+
{ param: "linkedFile", flag: "--file", repeatable: true },
|
|
298
|
+
{ param: "linkedTest", flag: "--test", repeatable: true },
|
|
299
|
+
{ param: "doc", flag: "--doc", repeatable: true },
|
|
300
|
+
{ param: "unset", flag: "--unset", repeatable: true },
|
|
301
|
+
{ param: "clearDeps", flag: "--clear-deps" },
|
|
302
|
+
{ param: "clearComments", flag: "--clear-comments" },
|
|
303
|
+
{ param: "clearNotes", flag: "--clear-notes" },
|
|
304
|
+
{ param: "clearLearnings", flag: "--clear-learnings" },
|
|
305
|
+
{ param: "clearFiles", flag: "--clear-files" },
|
|
306
|
+
{ param: "clearTests", flag: "--clear-tests" },
|
|
307
|
+
{ param: "clearDocs", flag: "--clear-docs" },
|
|
308
|
+
{ param: "clearReminders", flag: "--clear-reminders" },
|
|
309
|
+
{ param: "clearEvents", flag: "--clear-events" },
|
|
310
|
+
{ param: "clearTypeOptions", flag: "--clear-type-options" },
|
|
311
|
+
{ param: "allowAuditUpdate", flag: "--allow-audit-update" },
|
|
312
|
+
];
|
|
313
|
+
export const PI_UPDATE_OPTION_CONTRACTS = [
|
|
314
|
+
{ param: "title", flag: "--title" },
|
|
315
|
+
{ param: "description", flag: "--description", allowEmpty: true },
|
|
316
|
+
{ param: "body", flag: "--body", allowEmpty: true },
|
|
317
|
+
{ param: "status", flag: "--status" },
|
|
318
|
+
{ param: "closeReason", flag: "--close-reason" },
|
|
319
|
+
{ param: "priority", flag: "--priority" },
|
|
320
|
+
{ param: "type", flag: "--type" },
|
|
321
|
+
{ param: "tags", flag: "--tags", allowEmpty: true },
|
|
322
|
+
{ param: "deadline", flag: "--deadline" },
|
|
323
|
+
{ param: "estimate", flag: "--estimate" },
|
|
324
|
+
{ param: "acceptanceCriteria", flag: "--acceptance-criteria", allowEmpty: true },
|
|
325
|
+
{ param: "author", flag: "--author" },
|
|
326
|
+
{ param: "message", flag: "--message", allowEmpty: true },
|
|
327
|
+
{ param: "assignee", flag: "--assignee" },
|
|
328
|
+
{ param: "dep", flag: "--dep", repeatable: true },
|
|
329
|
+
{ param: "depRemove", flag: "--dep-remove", repeatable: true },
|
|
330
|
+
{ param: "replaceDeps", flag: "--replace-deps" },
|
|
331
|
+
{ param: "replaceTests", flag: "--replace-tests" },
|
|
332
|
+
{ param: "comment", flag: "--comment", repeatable: true },
|
|
333
|
+
{ param: "note", flag: "--note", repeatable: true },
|
|
334
|
+
{ param: "learning", flag: "--learning", repeatable: true },
|
|
335
|
+
{ param: "linkedFile", flag: "--file", repeatable: true },
|
|
336
|
+
{ param: "linkedTest", flag: "--test", repeatable: true },
|
|
337
|
+
{ param: "doc", flag: "--doc", repeatable: true },
|
|
338
|
+
{ param: "reminder", flag: "--reminder", repeatable: true },
|
|
339
|
+
{ param: "event", flag: "--event", repeatable: true },
|
|
340
|
+
{ param: "typeOption", flag: "--type-option", repeatable: true },
|
|
341
|
+
{ param: "unset", flag: "--unset", repeatable: true },
|
|
342
|
+
{ param: "clearDeps", flag: "--clear-deps" },
|
|
343
|
+
{ param: "clearComments", flag: "--clear-comments" },
|
|
344
|
+
{ param: "clearNotes", flag: "--clear-notes" },
|
|
345
|
+
{ param: "clearLearnings", flag: "--clear-learnings" },
|
|
346
|
+
{ param: "clearFiles", flag: "--clear-files" },
|
|
347
|
+
{ param: "clearTests", flag: "--clear-tests" },
|
|
348
|
+
{ param: "clearDocs", flag: "--clear-docs" },
|
|
349
|
+
{ param: "clearReminders", flag: "--clear-reminders" },
|
|
350
|
+
{ param: "clearEvents", flag: "--clear-events" },
|
|
351
|
+
{ param: "clearTypeOptions", flag: "--clear-type-options" },
|
|
352
|
+
{ param: "allowAuditDepUpdate", flag: "--allow-audit-dep-update" },
|
|
353
|
+
];
|
|
354
|
+
export const PI_UPDATE_MANY_FILTER_OPTION_CONTRACTS = [
|
|
355
|
+
{ param: "filterStatus", flag: "--filter-status" },
|
|
356
|
+
{ param: "filterType", flag: "--filter-type" },
|
|
357
|
+
{ param: "filterTag", flag: "--filter-tag" },
|
|
358
|
+
{ param: "filterPriority", flag: "--filter-priority" },
|
|
359
|
+
{ param: "filterDeadlineBefore", flag: "--filter-deadline-before" },
|
|
360
|
+
{ param: "filterDeadlineAfter", flag: "--filter-deadline-after" },
|
|
361
|
+
{ param: "filterAssignee", flag: "--filter-assignee" },
|
|
362
|
+
{ param: "filterAssigneeFilter", flag: "--filter-assignee-filter" },
|
|
363
|
+
{ param: "filterParent", flag: "--filter-parent" },
|
|
364
|
+
{ param: "filterSprint", flag: "--filter-sprint" },
|
|
365
|
+
{ param: "filterRelease", flag: "--filter-release" },
|
|
366
|
+
{ param: "limit", flag: "--limit" },
|
|
367
|
+
{ param: "offset", flag: "--offset" },
|
|
368
|
+
];
|
|
369
|
+
export const PI_NORMALIZE_FILTER_OPTION_CONTRACTS = [...PI_UPDATE_MANY_FILTER_OPTION_CONTRACTS];
|
|
370
|
+
export const PI_CALENDAR_OPTION_CONTRACTS = [
|
|
371
|
+
{ param: "view", flag: "--view" },
|
|
372
|
+
{ param: "date", flag: "--date" },
|
|
373
|
+
{ param: "from", flag: "--from" },
|
|
374
|
+
{ param: "to", flag: "--to" },
|
|
375
|
+
{ param: "type", flag: "--type" },
|
|
376
|
+
{ param: "tag", flag: "--tag" },
|
|
377
|
+
{ param: "priority", flag: "--priority" },
|
|
378
|
+
{ param: "status", flag: "--status" },
|
|
379
|
+
{ param: "assignee", flag: "--assignee" },
|
|
380
|
+
{ param: "assigneeFilter", flag: "--assignee-filter" },
|
|
381
|
+
{ param: "sprint", flag: "--sprint" },
|
|
382
|
+
{ param: "release", flag: "--release" },
|
|
383
|
+
{ param: "include", flag: "--include" },
|
|
384
|
+
{ param: "recurrenceLookaheadDays", flag: "--recurrence-lookahead-days" },
|
|
385
|
+
{ param: "recurrenceLookbackDays", flag: "--recurrence-lookback-days" },
|
|
386
|
+
{ param: "occurrenceLimit", flag: "--occurrence-limit" },
|
|
387
|
+
{ param: "limit", flag: "--limit" },
|
|
388
|
+
{ param: "format", flag: "--format" },
|
|
389
|
+
];
|
|
390
|
+
export const PI_ACTIVITY_OPTION_CONTRACTS = [
|
|
391
|
+
{ param: "id", flag: "--id" },
|
|
392
|
+
{ param: "op", flag: "--op" },
|
|
393
|
+
{ param: "author", flag: "--author" },
|
|
394
|
+
{ param: "from", flag: "--from" },
|
|
395
|
+
{ param: "to", flag: "--to" },
|
|
396
|
+
{ param: "limit", flag: "--limit" },
|
|
397
|
+
];
|
|
398
|
+
export const PI_CONTEXT_OPTION_CONTRACTS = [
|
|
399
|
+
{ param: "date", flag: "--date" },
|
|
400
|
+
{ param: "from", flag: "--from" },
|
|
401
|
+
{ param: "to", flag: "--to" },
|
|
402
|
+
{ param: "type", flag: "--type" },
|
|
403
|
+
{ param: "tag", flag: "--tag" },
|
|
404
|
+
{ param: "priority", flag: "--priority" },
|
|
405
|
+
{ param: "assignee", flag: "--assignee" },
|
|
406
|
+
{ param: "assigneeFilter", flag: "--assignee-filter" },
|
|
407
|
+
{ param: "sprint", flag: "--sprint" },
|
|
408
|
+
{ param: "release", flag: "--release" },
|
|
409
|
+
{ param: "limit", flag: "--limit" },
|
|
410
|
+
{ param: "format", flag: "--format" },
|
|
411
|
+
];
|
|
412
|
+
export const PI_DEPS_OPTION_CONTRACTS = [
|
|
413
|
+
{ param: "format", flag: "--format" },
|
|
414
|
+
{ param: "maxDepth", flag: "--max-depth" },
|
|
415
|
+
{ param: "collapse", flag: "--collapse" },
|
|
416
|
+
{ param: "summary", flag: "--summary" },
|
|
417
|
+
];
|
|
418
|
+
export const SUBCOMMAND_GLOBAL_FLAG_CONTRACTS = [
|
|
419
|
+
{ flag: "--json" },
|
|
420
|
+
{ flag: "--quiet" },
|
|
421
|
+
{ flag: "--path" },
|
|
422
|
+
{ flag: "--no-extensions" },
|
|
423
|
+
{ flag: "--no-pager" },
|
|
424
|
+
{ flag: "--profile" },
|
|
425
|
+
{ flag: "--help" },
|
|
426
|
+
];
|
|
427
|
+
export const GLOBAL_FLAG_CONTRACTS = [
|
|
428
|
+
...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS,
|
|
429
|
+
{ flag: "--version" },
|
|
430
|
+
];
|
|
431
|
+
export const LIST_FILTER_FLAG_CONTRACTS = [
|
|
432
|
+
{ flag: "--type" },
|
|
433
|
+
{ flag: "--tag" },
|
|
434
|
+
{ flag: "--priority" },
|
|
435
|
+
{ flag: "--deadline-before" },
|
|
436
|
+
{ flag: "--deadline-after" },
|
|
437
|
+
{ flag: "--assignee" },
|
|
438
|
+
{ flag: "--assignee-filter" },
|
|
439
|
+
{ flag: "--assignee_filter" },
|
|
440
|
+
{ flag: "--parent" },
|
|
441
|
+
{ flag: "--sprint" },
|
|
442
|
+
{ flag: "--release" },
|
|
443
|
+
{ flag: "--limit" },
|
|
444
|
+
{ flag: "--offset" },
|
|
445
|
+
{ flag: "--compact" },
|
|
446
|
+
{ flag: "--fields" },
|
|
447
|
+
{ flag: "--sort" },
|
|
448
|
+
{ flag: "--order" },
|
|
449
|
+
{ flag: "--include-body" },
|
|
450
|
+
{ flag: "--stream" },
|
|
451
|
+
];
|
|
452
|
+
export const AGGREGATE_FLAG_CONTRACTS = [
|
|
453
|
+
{ flag: "--group-by" },
|
|
454
|
+
{ flag: "--count" },
|
|
455
|
+
{ flag: "--include-unparented" },
|
|
456
|
+
{ flag: "--include_unparented" },
|
|
457
|
+
{ flag: "--status" },
|
|
458
|
+
{ flag: "--type" },
|
|
459
|
+
{ flag: "--tag" },
|
|
460
|
+
{ flag: "--priority" },
|
|
461
|
+
{ flag: "--deadline-before" },
|
|
462
|
+
{ flag: "--deadline-after" },
|
|
463
|
+
{ flag: "--assignee" },
|
|
464
|
+
{ flag: "--assignee-filter" },
|
|
465
|
+
{ flag: "--assignee_filter" },
|
|
466
|
+
{ flag: "--parent" },
|
|
467
|
+
{ flag: "--sprint" },
|
|
468
|
+
{ flag: "--release" },
|
|
469
|
+
];
|
|
470
|
+
export const DEDUPE_AUDIT_FLAG_CONTRACTS = [
|
|
471
|
+
{ flag: "--mode" },
|
|
472
|
+
{ flag: "--limit" },
|
|
473
|
+
{ flag: "--threshold" },
|
|
474
|
+
{ flag: "--status" },
|
|
475
|
+
{ flag: "--type" },
|
|
476
|
+
{ flag: "--tag" },
|
|
477
|
+
{ flag: "--priority" },
|
|
478
|
+
{ flag: "--deadline-before" },
|
|
479
|
+
{ flag: "--deadline-after" },
|
|
480
|
+
{ flag: "--assignee" },
|
|
481
|
+
{ flag: "--assignee-filter" },
|
|
482
|
+
{ flag: "--assignee_filter" },
|
|
483
|
+
{ flag: "--parent" },
|
|
484
|
+
{ flag: "--sprint" },
|
|
485
|
+
{ flag: "--release" },
|
|
486
|
+
];
|
|
487
|
+
export const COMMENTS_AUDIT_FLAG_CONTRACTS = [
|
|
488
|
+
{ flag: "--status" },
|
|
489
|
+
{ flag: "--type" },
|
|
490
|
+
{ flag: "--assignee" },
|
|
491
|
+
{ flag: "--assignee-filter" },
|
|
492
|
+
{ flag: "--assignee_filter" },
|
|
493
|
+
{ flag: "--parent" },
|
|
494
|
+
{ flag: "--tag" },
|
|
495
|
+
{ flag: "--sprint" },
|
|
496
|
+
{ flag: "--release" },
|
|
497
|
+
{ flag: "--priority" },
|
|
498
|
+
{ flag: "--limit-items" },
|
|
499
|
+
{ flag: "--limit" },
|
|
500
|
+
{ flag: "--full-history" },
|
|
501
|
+
{ flag: "--latest" },
|
|
502
|
+
];
|
|
503
|
+
export const COMMENTS_FLAG_CONTRACTS = [
|
|
504
|
+
{ flag: "--add" },
|
|
505
|
+
{ flag: "--limit" },
|
|
506
|
+
{ flag: "--author" },
|
|
507
|
+
{ flag: "--message" },
|
|
508
|
+
{ flag: "--allow-audit-comment" },
|
|
509
|
+
{ flag: "--force" },
|
|
510
|
+
];
|
|
511
|
+
export const NOTES_FLAG_CONTRACTS = [
|
|
512
|
+
{ flag: "--add" },
|
|
513
|
+
{ flag: "--limit" },
|
|
514
|
+
{ flag: "--author" },
|
|
515
|
+
{ flag: "--message" },
|
|
516
|
+
{ flag: "--allow-audit-note" },
|
|
517
|
+
{ flag: "--allow-audit-comment" },
|
|
518
|
+
{ flag: "--force" },
|
|
519
|
+
];
|
|
520
|
+
export const LEARNINGS_FLAG_CONTRACTS = [
|
|
521
|
+
{ flag: "--add" },
|
|
522
|
+
{ flag: "--limit" },
|
|
523
|
+
{ flag: "--author" },
|
|
524
|
+
{ flag: "--message" },
|
|
525
|
+
{ flag: "--allow-audit-learning" },
|
|
526
|
+
{ flag: "--allow-audit-comment" },
|
|
527
|
+
{ flag: "--force" },
|
|
528
|
+
];
|
|
529
|
+
export const FILES_FLAG_CONTRACTS = [
|
|
530
|
+
{ flag: "--add" },
|
|
531
|
+
{ flag: "--add-glob" },
|
|
532
|
+
{ flag: "--remove" },
|
|
533
|
+
{ flag: "--migrate" },
|
|
534
|
+
{ flag: "--list" },
|
|
535
|
+
{ flag: "--apply" },
|
|
536
|
+
{ flag: "--note" },
|
|
537
|
+
{ flag: "--append-stable" },
|
|
538
|
+
{ flag: "--validate-paths" },
|
|
539
|
+
{ flag: "--audit" },
|
|
540
|
+
{ flag: "--author" },
|
|
541
|
+
{ flag: "--message" },
|
|
542
|
+
{ flag: "--force" },
|
|
543
|
+
];
|
|
544
|
+
export const DOCS_FLAG_CONTRACTS = [
|
|
545
|
+
{ flag: "--add" },
|
|
546
|
+
{ flag: "--add-glob" },
|
|
547
|
+
{ flag: "--remove" },
|
|
548
|
+
{ flag: "--migrate" },
|
|
549
|
+
{ flag: "--validate-paths" },
|
|
550
|
+
{ flag: "--audit" },
|
|
551
|
+
{ flag: "--author" },
|
|
552
|
+
{ flag: "--message" },
|
|
553
|
+
{ flag: "--force" },
|
|
554
|
+
];
|
|
555
|
+
export const HISTORY_FLAG_CONTRACTS = [
|
|
556
|
+
{ flag: "--limit" },
|
|
557
|
+
{ flag: "--diff" },
|
|
558
|
+
{ flag: "--verify" },
|
|
559
|
+
];
|
|
560
|
+
export const INIT_FLAG_CONTRACTS = [
|
|
561
|
+
{ flag: "--preset" },
|
|
562
|
+
];
|
|
563
|
+
export const CONFIG_FLAG_CONTRACTS = [
|
|
564
|
+
{ flag: "--criterion" },
|
|
565
|
+
{ flag: "--clear-criteria" },
|
|
566
|
+
{ flag: "--format" },
|
|
567
|
+
{ flag: "--policy" },
|
|
568
|
+
];
|
|
569
|
+
export const EXTENSION_FLAG_CONTRACTS = [
|
|
570
|
+
{ flag: "--init" },
|
|
571
|
+
{ flag: "--scaffold" },
|
|
572
|
+
{ flag: "--install" },
|
|
573
|
+
{ flag: "--uninstall" },
|
|
574
|
+
{ flag: "--explore" },
|
|
575
|
+
{ flag: "--manage" },
|
|
576
|
+
{ flag: "--doctor" },
|
|
577
|
+
{ flag: "--adopt" },
|
|
578
|
+
{ flag: "--adopt-all" },
|
|
579
|
+
{ flag: "--activate" },
|
|
580
|
+
{ flag: "--deactivate" },
|
|
581
|
+
{ flag: "--project" },
|
|
582
|
+
{ flag: "--local" },
|
|
583
|
+
{ flag: "--global" },
|
|
584
|
+
{ flag: "--gh" },
|
|
585
|
+
{ flag: "--github" },
|
|
586
|
+
{ flag: "--ref" },
|
|
587
|
+
{ flag: "--detail" },
|
|
588
|
+
{ flag: "--trace" },
|
|
589
|
+
{ flag: "--runtime-probe" },
|
|
590
|
+
{ flag: "--fix-managed-state" },
|
|
591
|
+
{ flag: "--strict-exit" },
|
|
592
|
+
{ flag: "--fail-on-warn" },
|
|
593
|
+
];
|
|
594
|
+
export const REINDEX_FLAG_CONTRACTS = [
|
|
595
|
+
{ flag: "--mode" },
|
|
596
|
+
{ flag: "--progress" },
|
|
597
|
+
];
|
|
598
|
+
export const CLOSE_FLAG_CONTRACTS = [
|
|
599
|
+
{ flag: "--author" },
|
|
600
|
+
{ flag: "--message" },
|
|
601
|
+
{ flag: "--validate-close" },
|
|
602
|
+
{ flag: "--force" },
|
|
603
|
+
];
|
|
604
|
+
export const APPEND_FLAG_CONTRACTS = [
|
|
605
|
+
{ flag: "--body", short: "-b" },
|
|
606
|
+
{ flag: "--author" },
|
|
607
|
+
{ flag: "--message" },
|
|
608
|
+
{ flag: "--force" },
|
|
609
|
+
];
|
|
610
|
+
export const CLAIM_FLAG_CONTRACTS = [
|
|
611
|
+
{ flag: "--author" },
|
|
612
|
+
{ flag: "--message" },
|
|
613
|
+
{ flag: "--force" },
|
|
614
|
+
];
|
|
615
|
+
export const RESTORE_FLAG_CONTRACTS = [
|
|
616
|
+
{ flag: "--author" },
|
|
617
|
+
{ flag: "--message" },
|
|
618
|
+
{ flag: "--force" },
|
|
619
|
+
];
|
|
620
|
+
export const DELETE_FLAG_CONTRACTS = [
|
|
621
|
+
{ flag: "--author" },
|
|
622
|
+
{ flag: "--message" },
|
|
623
|
+
{ flag: "--force" },
|
|
624
|
+
];
|
|
625
|
+
export const RELEASE_FLAG_CONTRACTS = [
|
|
626
|
+
{ flag: "--author" },
|
|
627
|
+
{ flag: "--message" },
|
|
628
|
+
{ flag: "--allow-audit-release" },
|
|
629
|
+
{ flag: "--force" },
|
|
630
|
+
];
|
|
631
|
+
export const START_TASK_FLAG_CONTRACTS = [
|
|
632
|
+
{ flag: "--author" },
|
|
633
|
+
{ flag: "--message" },
|
|
634
|
+
{ flag: "--force" },
|
|
635
|
+
];
|
|
636
|
+
export const PAUSE_TASK_FLAG_CONTRACTS = [
|
|
637
|
+
{ flag: "--author" },
|
|
638
|
+
{ flag: "--message" },
|
|
639
|
+
{ flag: "--force" },
|
|
640
|
+
];
|
|
641
|
+
export const CLOSE_TASK_FLAG_CONTRACTS = [
|
|
642
|
+
{ flag: "--author" },
|
|
643
|
+
{ flag: "--message" },
|
|
644
|
+
{ flag: "--validate-close" },
|
|
645
|
+
{ flag: "--force" },
|
|
646
|
+
];
|
|
647
|
+
export const TEST_FLAG_CONTRACTS = [
|
|
648
|
+
{ flag: "--add" },
|
|
649
|
+
{ flag: "--remove" },
|
|
650
|
+
{ flag: "--run" },
|
|
651
|
+
{ flag: "--background" },
|
|
652
|
+
{ flag: "--timeout" },
|
|
653
|
+
{ flag: "--progress" },
|
|
654
|
+
{ flag: "--env-set" },
|
|
655
|
+
{ flag: "--env-clear" },
|
|
656
|
+
{ flag: "--shared-host-safe" },
|
|
657
|
+
{ flag: "--pm-context" },
|
|
658
|
+
{ flag: "--override-linked-pm-context" },
|
|
659
|
+
{ flag: "--fail-on-context-mismatch" },
|
|
660
|
+
{ flag: "--fail-on-skipped" },
|
|
661
|
+
{ flag: "--fail-on-empty-test-run" },
|
|
662
|
+
{ flag: "--require-assertions-for-pm" },
|
|
663
|
+
{ flag: "--check-context" },
|
|
664
|
+
{ flag: "--auto-pm-context" },
|
|
665
|
+
{ flag: "--author" },
|
|
666
|
+
{ flag: "--message" },
|
|
667
|
+
{ flag: "--force" },
|
|
668
|
+
];
|
|
669
|
+
export const TEST_ALL_FLAG_CONTRACTS = [
|
|
670
|
+
{ flag: "--status" },
|
|
671
|
+
{ flag: "--limit" },
|
|
672
|
+
{ flag: "--offset" },
|
|
673
|
+
{ flag: "--background" },
|
|
674
|
+
{ flag: "--timeout" },
|
|
675
|
+
{ flag: "--progress" },
|
|
676
|
+
{ flag: "--env-set" },
|
|
677
|
+
{ flag: "--env-clear" },
|
|
678
|
+
{ flag: "--shared-host-safe" },
|
|
679
|
+
{ flag: "--pm-context" },
|
|
680
|
+
{ flag: "--override-linked-pm-context" },
|
|
681
|
+
{ flag: "--fail-on-context-mismatch" },
|
|
682
|
+
{ flag: "--fail-on-skipped" },
|
|
683
|
+
{ flag: "--fail-on-empty-test-run" },
|
|
684
|
+
{ flag: "--require-assertions-for-pm" },
|
|
685
|
+
{ flag: "--check-context" },
|
|
686
|
+
{ flag: "--auto-pm-context" },
|
|
687
|
+
];
|
|
688
|
+
export const TEST_RUNS_FLAG_CONTRACTS = [
|
|
689
|
+
{ flag: "--status" },
|
|
690
|
+
{ flag: "--limit" },
|
|
691
|
+
{ flag: "--stream" },
|
|
692
|
+
{ flag: "--tail" },
|
|
693
|
+
{ flag: "--force" },
|
|
694
|
+
{ flag: "--author" },
|
|
695
|
+
];
|
|
696
|
+
export const GC_FLAG_CONTRACTS = [
|
|
697
|
+
{ flag: "--dry-run" },
|
|
698
|
+
{ flag: "--scope" },
|
|
699
|
+
];
|
|
700
|
+
export const HEALTH_FLAG_CONTRACTS = [
|
|
701
|
+
{ flag: "--strict-directories" },
|
|
702
|
+
{ flag: "--strict-exit" },
|
|
703
|
+
{ flag: "--fail-on-warn" },
|
|
704
|
+
{ flag: "--check-only" },
|
|
705
|
+
{ flag: "--check-telemetry" },
|
|
706
|
+
{ flag: "--no-refresh" },
|
|
707
|
+
{ flag: "--refresh-vectors" },
|
|
708
|
+
{ flag: "--verbose-stale-items" },
|
|
709
|
+
];
|
|
710
|
+
export const VALIDATE_FLAG_CONTRACTS = [
|
|
711
|
+
{ flag: "--check-metadata" },
|
|
712
|
+
{ flag: "--metadata-profile" },
|
|
713
|
+
{ flag: "--check-resolution" },
|
|
714
|
+
{ flag: "--check-lifecycle" },
|
|
715
|
+
{ flag: "--check-stale-blockers" },
|
|
716
|
+
{ flag: "--dependency-cycle-severity" },
|
|
717
|
+
{ flag: "--check-files" },
|
|
718
|
+
{ flag: "--scan-mode" },
|
|
719
|
+
{ flag: "--include-pm-internals" },
|
|
720
|
+
{ flag: "--verbose-file-lists" },
|
|
721
|
+
{ flag: "--strict-exit" },
|
|
722
|
+
{ flag: "--fail-on-warn" },
|
|
723
|
+
{ flag: "--check-history-drift" },
|
|
724
|
+
{ flag: "--check-command-references" },
|
|
725
|
+
];
|
|
726
|
+
export const CREATE_FLAG_CONTRACTS = [
|
|
727
|
+
{ short: "-t", flag: "--title" },
|
|
728
|
+
{ short: "-d", flag: "--description" },
|
|
729
|
+
{ flag: "--type" },
|
|
730
|
+
{ flag: "--template" },
|
|
731
|
+
{ flag: "--create-mode" },
|
|
732
|
+
{ flag: "--create_mode" },
|
|
733
|
+
{ flag: "--schedule-preset" },
|
|
734
|
+
{ flag: "--schedule_preset" },
|
|
735
|
+
{ short: "-s", flag: "--status" },
|
|
736
|
+
{ short: "-p", flag: "--priority" },
|
|
737
|
+
{ flag: "--tags" },
|
|
738
|
+
{ short: "-b", flag: "--body" },
|
|
739
|
+
{ flag: "--deadline" },
|
|
740
|
+
{ flag: "--estimate" },
|
|
741
|
+
{ flag: "--estimated-minutes" },
|
|
742
|
+
{ flag: "--estimated_minutes" },
|
|
743
|
+
{ flag: "--acceptance-criteria" },
|
|
744
|
+
{ flag: "--acceptance_criteria" },
|
|
745
|
+
{ flag: "--ac" },
|
|
746
|
+
{ flag: "--author" },
|
|
747
|
+
{ flag: "--message" },
|
|
748
|
+
{ flag: "--assignee" },
|
|
749
|
+
{ flag: "--parent" },
|
|
750
|
+
{ flag: "--reviewer" },
|
|
751
|
+
{ flag: "--risk" },
|
|
752
|
+
{ flag: "--confidence" },
|
|
753
|
+
{ flag: "--sprint" },
|
|
754
|
+
{ flag: "--release" },
|
|
755
|
+
{ flag: "--blocked-by" },
|
|
756
|
+
{ flag: "--blocked-reason" },
|
|
757
|
+
{ flag: "--unblock-note" },
|
|
758
|
+
{ flag: "--reporter" },
|
|
759
|
+
{ flag: "--severity" },
|
|
760
|
+
{ flag: "--environment" },
|
|
761
|
+
{ flag: "--repro-steps" },
|
|
762
|
+
{ flag: "--resolution" },
|
|
763
|
+
{ flag: "--expected-result" },
|
|
764
|
+
{ flag: "--actual-result" },
|
|
765
|
+
{ flag: "--affected-version" },
|
|
766
|
+
{ flag: "--fixed-version" },
|
|
767
|
+
{ flag: "--component" },
|
|
768
|
+
{ flag: "--regression" },
|
|
769
|
+
{ flag: "--customer-impact" },
|
|
770
|
+
{ flag: "--customer_impact" },
|
|
771
|
+
{ flag: "--definition-of-ready" },
|
|
772
|
+
{ flag: "--definition_of_ready" },
|
|
773
|
+
{ flag: "--order" },
|
|
774
|
+
{ flag: "--rank" },
|
|
775
|
+
{ flag: "--goal" },
|
|
776
|
+
{ flag: "--objective" },
|
|
777
|
+
{ flag: "--value" },
|
|
778
|
+
{ flag: "--impact" },
|
|
779
|
+
{ flag: "--outcome" },
|
|
780
|
+
{ flag: "--why-now" },
|
|
781
|
+
{ flag: "--why_now" },
|
|
782
|
+
{ flag: "--blocked_by" },
|
|
783
|
+
{ flag: "--blocked_reason" },
|
|
784
|
+
{ flag: "--unblock_note" },
|
|
785
|
+
{ flag: "--repro_steps" },
|
|
786
|
+
{ flag: "--expected_result" },
|
|
787
|
+
{ flag: "--actual_result" },
|
|
788
|
+
{ flag: "--affected_version" },
|
|
789
|
+
{ flag: "--fixed_version" },
|
|
790
|
+
{ flag: "--dep" },
|
|
791
|
+
{ flag: "--type-option" },
|
|
792
|
+
{ flag: "--type_option" },
|
|
793
|
+
{ flag: "--reminder" },
|
|
794
|
+
{ flag: "--event" },
|
|
795
|
+
{ flag: "--comment" },
|
|
796
|
+
{ flag: "--note" },
|
|
797
|
+
{ flag: "--learning" },
|
|
798
|
+
{ flag: "--file" },
|
|
799
|
+
{ flag: "--test" },
|
|
800
|
+
{ flag: "--doc" },
|
|
801
|
+
{ flag: "--unset" },
|
|
802
|
+
{ flag: "--clear-deps" },
|
|
803
|
+
{ flag: "--clear-comments" },
|
|
804
|
+
{ flag: "--clear-notes" },
|
|
805
|
+
{ flag: "--clear-learnings" },
|
|
806
|
+
{ flag: "--clear-files" },
|
|
807
|
+
{ flag: "--clear-tests" },
|
|
808
|
+
{ flag: "--clear-docs" },
|
|
809
|
+
{ flag: "--clear-reminders" },
|
|
810
|
+
{ flag: "--clear-events" },
|
|
811
|
+
{ flag: "--clear-type-options" },
|
|
812
|
+
];
|
|
813
|
+
export const UPDATE_FLAG_CONTRACTS = [
|
|
814
|
+
{ short: "-t", flag: "--title" },
|
|
815
|
+
{ short: "-d", flag: "--description" },
|
|
816
|
+
{ short: "-b", flag: "--body" },
|
|
817
|
+
{ short: "-s", flag: "--status" },
|
|
818
|
+
{ flag: "--close-reason" },
|
|
819
|
+
{ flag: "--close_reason" },
|
|
820
|
+
{ short: "-p", flag: "--priority" },
|
|
821
|
+
{ flag: "--type" },
|
|
822
|
+
{ flag: "--tags" },
|
|
823
|
+
{ flag: "--deadline" },
|
|
824
|
+
{ flag: "--estimate" },
|
|
825
|
+
{ flag: "--estimated-minutes" },
|
|
826
|
+
{ flag: "--estimated_minutes" },
|
|
827
|
+
{ flag: "--acceptance-criteria" },
|
|
828
|
+
{ flag: "--acceptance_criteria" },
|
|
829
|
+
{ flag: "--ac" },
|
|
830
|
+
{ flag: "--assignee" },
|
|
831
|
+
{ flag: "--parent" },
|
|
832
|
+
{ flag: "--reviewer" },
|
|
833
|
+
{ flag: "--risk" },
|
|
834
|
+
{ flag: "--confidence" },
|
|
835
|
+
{ flag: "--sprint" },
|
|
836
|
+
{ flag: "--release" },
|
|
837
|
+
{ flag: "--blocked-by" },
|
|
838
|
+
{ flag: "--blocked-reason" },
|
|
839
|
+
{ flag: "--unblock-note" },
|
|
840
|
+
{ flag: "--reporter" },
|
|
841
|
+
{ flag: "--severity" },
|
|
842
|
+
{ flag: "--environment" },
|
|
843
|
+
{ flag: "--repro-steps" },
|
|
844
|
+
{ flag: "--resolution" },
|
|
845
|
+
{ flag: "--expected-result" },
|
|
846
|
+
{ flag: "--actual-result" },
|
|
847
|
+
{ flag: "--affected-version" },
|
|
848
|
+
{ flag: "--fixed-version" },
|
|
849
|
+
{ flag: "--fixed_version" },
|
|
850
|
+
{ flag: "--component" },
|
|
851
|
+
{ flag: "--regression" },
|
|
852
|
+
{ flag: "--customer-impact" },
|
|
853
|
+
{ flag: "--customer_impact" },
|
|
854
|
+
{ flag: "--definition-of-ready" },
|
|
855
|
+
{ flag: "--definition_of_ready" },
|
|
856
|
+
{ flag: "--order" },
|
|
857
|
+
{ flag: "--rank" },
|
|
858
|
+
{ flag: "--goal" },
|
|
859
|
+
{ flag: "--objective" },
|
|
860
|
+
{ flag: "--value" },
|
|
861
|
+
{ flag: "--impact" },
|
|
862
|
+
{ flag: "--outcome" },
|
|
863
|
+
{ flag: "--why-now" },
|
|
864
|
+
{ flag: "--why_now" },
|
|
865
|
+
{ flag: "--author" },
|
|
866
|
+
{ flag: "--message" },
|
|
867
|
+
{ flag: "--blocked_by" },
|
|
868
|
+
{ flag: "--blocked_reason" },
|
|
869
|
+
{ flag: "--unblock_note" },
|
|
870
|
+
{ flag: "--repro_steps" },
|
|
871
|
+
{ flag: "--expected_result" },
|
|
872
|
+
{ flag: "--actual_result" },
|
|
873
|
+
{ flag: "--affected_version" },
|
|
874
|
+
{ flag: "--dep" },
|
|
875
|
+
{ flag: "--dep-remove" },
|
|
876
|
+
{ flag: "--dep_remove" },
|
|
877
|
+
{ flag: "--replace-deps" },
|
|
878
|
+
{ flag: "--replace-tests" },
|
|
879
|
+
{ flag: "--comment" },
|
|
880
|
+
{ flag: "--note" },
|
|
881
|
+
{ flag: "--learning" },
|
|
882
|
+
{ flag: "--file" },
|
|
883
|
+
{ flag: "--test" },
|
|
884
|
+
{ flag: "--doc" },
|
|
885
|
+
{ flag: "--reminder" },
|
|
886
|
+
{ flag: "--event" },
|
|
887
|
+
{ flag: "--type-option" },
|
|
888
|
+
{ flag: "--type_option" },
|
|
889
|
+
{ flag: "--unset" },
|
|
890
|
+
{ flag: "--clear-deps" },
|
|
891
|
+
{ flag: "--clear-comments" },
|
|
892
|
+
{ flag: "--clear-notes" },
|
|
893
|
+
{ flag: "--clear-learnings" },
|
|
894
|
+
{ flag: "--clear-files" },
|
|
895
|
+
{ flag: "--clear-tests" },
|
|
896
|
+
{ flag: "--clear-docs" },
|
|
897
|
+
{ flag: "--clear-reminders" },
|
|
898
|
+
{ flag: "--clear-events" },
|
|
899
|
+
{ flag: "--clear-type-options" },
|
|
900
|
+
{ flag: "--allow-audit-update" },
|
|
901
|
+
{ flag: "--allow_audit_update" },
|
|
902
|
+
{ flag: "--allow-audit-dep-update" },
|
|
903
|
+
{ flag: "--allow_audit_dep_update" },
|
|
904
|
+
{ flag: "--force" },
|
|
905
|
+
];
|
|
906
|
+
export const UPDATE_MANY_FLAG_CONTRACTS = [
|
|
907
|
+
{ flag: "--filter-status" },
|
|
908
|
+
{ flag: "--filter-type" },
|
|
909
|
+
{ flag: "--filter-tag" },
|
|
910
|
+
{ flag: "--filter-priority" },
|
|
911
|
+
{ flag: "--filter-deadline-before" },
|
|
912
|
+
{ flag: "--filter-deadline-after" },
|
|
913
|
+
{ flag: "--filter-assignee" },
|
|
914
|
+
{ flag: "--filter-assignee-filter" },
|
|
915
|
+
{ flag: "--filter-assignee_filter" },
|
|
916
|
+
{ flag: "--filter-parent" },
|
|
917
|
+
{ flag: "--filter-sprint" },
|
|
918
|
+
{ flag: "--filter-release" },
|
|
919
|
+
{ flag: "--limit" },
|
|
920
|
+
{ flag: "--offset" },
|
|
921
|
+
{ flag: "--dry-run" },
|
|
922
|
+
{ flag: "--rollback" },
|
|
923
|
+
{ flag: "--no-checkpoint" },
|
|
924
|
+
{ short: "-t", flag: "--title" },
|
|
925
|
+
{ short: "-d", flag: "--description" },
|
|
926
|
+
{ short: "-b", flag: "--body" },
|
|
927
|
+
{ short: "-p", flag: "--priority" },
|
|
928
|
+
{ flag: "--type" },
|
|
929
|
+
{ flag: "--tags" },
|
|
930
|
+
{ flag: "--deadline" },
|
|
931
|
+
{ flag: "--estimate" },
|
|
932
|
+
{ flag: "--estimated-minutes" },
|
|
933
|
+
{ flag: "--estimated_minutes" },
|
|
934
|
+
{ flag: "--acceptance-criteria" },
|
|
935
|
+
{ flag: "--acceptance_criteria" },
|
|
936
|
+
{ flag: "--ac" },
|
|
937
|
+
{ flag: "--definition-of-ready" },
|
|
938
|
+
{ flag: "--definition_of_ready" },
|
|
939
|
+
{ flag: "--order" },
|
|
940
|
+
{ flag: "--rank" },
|
|
941
|
+
{ flag: "--goal" },
|
|
942
|
+
{ flag: "--objective" },
|
|
943
|
+
{ flag: "--value" },
|
|
944
|
+
{ flag: "--impact" },
|
|
945
|
+
{ flag: "--outcome" },
|
|
946
|
+
{ flag: "--why-now" },
|
|
947
|
+
{ flag: "--why_now" },
|
|
948
|
+
{ flag: "--reviewer" },
|
|
949
|
+
{ flag: "--risk" },
|
|
950
|
+
{ flag: "--confidence" },
|
|
951
|
+
{ flag: "--sprint" },
|
|
952
|
+
{ flag: "--release" },
|
|
953
|
+
{ flag: "--reporter" },
|
|
954
|
+
{ flag: "--severity" },
|
|
955
|
+
{ flag: "--environment" },
|
|
956
|
+
{ flag: "--repro-steps" },
|
|
957
|
+
{ flag: "--repro_steps" },
|
|
958
|
+
{ flag: "--resolution" },
|
|
959
|
+
{ flag: "--expected-result" },
|
|
960
|
+
{ flag: "--expected_result" },
|
|
961
|
+
{ flag: "--actual-result" },
|
|
962
|
+
{ flag: "--actual_result" },
|
|
963
|
+
{ flag: "--affected-version" },
|
|
964
|
+
{ flag: "--affected_version" },
|
|
965
|
+
{ flag: "--fixed-version" },
|
|
966
|
+
{ flag: "--fixed_version" },
|
|
967
|
+
{ flag: "--component" },
|
|
968
|
+
{ flag: "--regression" },
|
|
969
|
+
{ flag: "--customer-impact" },
|
|
970
|
+
{ flag: "--customer_impact" },
|
|
971
|
+
{ flag: "--dep" },
|
|
972
|
+
{ flag: "--dep-remove" },
|
|
973
|
+
{ flag: "--dep_remove" },
|
|
974
|
+
{ flag: "--replace-deps" },
|
|
975
|
+
{ flag: "--replace-tests" },
|
|
976
|
+
{ flag: "--comment" },
|
|
977
|
+
{ flag: "--note" },
|
|
978
|
+
{ flag: "--learning" },
|
|
979
|
+
{ flag: "--file" },
|
|
980
|
+
{ flag: "--test" },
|
|
981
|
+
{ flag: "--doc" },
|
|
982
|
+
{ flag: "--reminder" },
|
|
983
|
+
{ flag: "--event" },
|
|
984
|
+
{ flag: "--type-option" },
|
|
985
|
+
{ flag: "--type_option" },
|
|
986
|
+
{ flag: "--unset" },
|
|
987
|
+
{ flag: "--clear-deps" },
|
|
988
|
+
{ flag: "--clear-comments" },
|
|
989
|
+
{ flag: "--clear-notes" },
|
|
990
|
+
{ flag: "--clear-learnings" },
|
|
991
|
+
{ flag: "--clear-files" },
|
|
992
|
+
{ flag: "--clear-tests" },
|
|
993
|
+
{ flag: "--clear-docs" },
|
|
994
|
+
{ flag: "--clear-reminders" },
|
|
995
|
+
{ flag: "--clear-events" },
|
|
996
|
+
{ flag: "--clear-type-options" },
|
|
997
|
+
{ flag: "--allow-audit-update" },
|
|
998
|
+
{ flag: "--allow_audit_update" },
|
|
999
|
+
{ flag: "--allow-audit-dep-update" },
|
|
1000
|
+
{ flag: "--allow_audit_dep_update" },
|
|
1001
|
+
{ flag: "--author" },
|
|
1002
|
+
{ flag: "--message" },
|
|
1003
|
+
{ flag: "--force" },
|
|
1004
|
+
];
|
|
1005
|
+
export const NORMALIZE_FLAG_CONTRACTS = [
|
|
1006
|
+
{ flag: "--filter-status" },
|
|
1007
|
+
{ flag: "--filter-type" },
|
|
1008
|
+
{ flag: "--filter-tag" },
|
|
1009
|
+
{ flag: "--filter-priority" },
|
|
1010
|
+
{ flag: "--filter-deadline-before" },
|
|
1011
|
+
{ flag: "--filter-deadline-after" },
|
|
1012
|
+
{ flag: "--filter-assignee" },
|
|
1013
|
+
{ flag: "--filter-assignee-filter" },
|
|
1014
|
+
{ flag: "--filter-assignee_filter" },
|
|
1015
|
+
{ flag: "--filter-parent" },
|
|
1016
|
+
{ flag: "--filter-sprint" },
|
|
1017
|
+
{ flag: "--filter-release" },
|
|
1018
|
+
{ flag: "--limit" },
|
|
1019
|
+
{ flag: "--offset" },
|
|
1020
|
+
{ flag: "--dry-run" },
|
|
1021
|
+
{ flag: "--apply" },
|
|
1022
|
+
{ flag: "--author" },
|
|
1023
|
+
{ flag: "--message" },
|
|
1024
|
+
{ flag: "--allow-audit-update" },
|
|
1025
|
+
{ flag: "--allow_audit_update" },
|
|
1026
|
+
{ flag: "--force" },
|
|
1027
|
+
];
|
|
1028
|
+
export const CALENDAR_FLAG_CONTRACTS = [
|
|
1029
|
+
{ flag: "--view" },
|
|
1030
|
+
{ flag: "--date" },
|
|
1031
|
+
{ flag: "--from" },
|
|
1032
|
+
{ flag: "--to" },
|
|
1033
|
+
{ flag: "--past" },
|
|
1034
|
+
{ flag: "--full-period" },
|
|
1035
|
+
{ flag: "--full_period" },
|
|
1036
|
+
{ flag: "--type" },
|
|
1037
|
+
{ flag: "--tag" },
|
|
1038
|
+
{ flag: "--priority" },
|
|
1039
|
+
{ flag: "--status" },
|
|
1040
|
+
{ flag: "--assignee" },
|
|
1041
|
+
{ flag: "--assignee-filter" },
|
|
1042
|
+
{ flag: "--assignee_filter" },
|
|
1043
|
+
{ flag: "--sprint" },
|
|
1044
|
+
{ flag: "--release" },
|
|
1045
|
+
{ flag: "--include" },
|
|
1046
|
+
{ flag: "--recurrence-lookahead-days" },
|
|
1047
|
+
{ flag: "--recurrence-lookback-days" },
|
|
1048
|
+
{ flag: "--occurrence-limit" },
|
|
1049
|
+
{ flag: "--limit" },
|
|
1050
|
+
{ flag: "--format" },
|
|
1051
|
+
];
|
|
1052
|
+
export const ACTIVITY_FLAG_CONTRACTS = [
|
|
1053
|
+
{ flag: "--id" },
|
|
1054
|
+
{ flag: "--op" },
|
|
1055
|
+
{ flag: "--author" },
|
|
1056
|
+
{ flag: "--from" },
|
|
1057
|
+
{ flag: "--to" },
|
|
1058
|
+
{ flag: "--limit" },
|
|
1059
|
+
{ flag: "--stream" },
|
|
1060
|
+
];
|
|
1061
|
+
export const CONTEXT_FLAG_CONTRACTS = [
|
|
1062
|
+
{ flag: "--date" },
|
|
1063
|
+
{ flag: "--from" },
|
|
1064
|
+
{ flag: "--to" },
|
|
1065
|
+
{ flag: "--past" },
|
|
1066
|
+
{ flag: "--type" },
|
|
1067
|
+
{ flag: "--tag" },
|
|
1068
|
+
{ flag: "--priority" },
|
|
1069
|
+
{ flag: "--assignee" },
|
|
1070
|
+
{ flag: "--assignee-filter" },
|
|
1071
|
+
{ flag: "--assignee_filter" },
|
|
1072
|
+
{ flag: "--sprint" },
|
|
1073
|
+
{ flag: "--release" },
|
|
1074
|
+
{ flag: "--limit" },
|
|
1075
|
+
{ flag: "--format" },
|
|
1076
|
+
];
|
|
1077
|
+
export const DEPS_FLAG_CONTRACTS = [
|
|
1078
|
+
{ flag: "--format" },
|
|
1079
|
+
{ flag: "--max-depth" },
|
|
1080
|
+
{ flag: "--collapse" },
|
|
1081
|
+
{ flag: "--summary" },
|
|
1082
|
+
];
|
|
1083
|
+
export const SEARCH_FLAG_CONTRACTS = [
|
|
1084
|
+
{ flag: "--mode" },
|
|
1085
|
+
{ flag: "--include-linked" },
|
|
1086
|
+
{ flag: "--title-exact" },
|
|
1087
|
+
{ flag: "--phrase-exact" },
|
|
1088
|
+
{ flag: "--compact" },
|
|
1089
|
+
{ flag: "--full" },
|
|
1090
|
+
{ flag: "--fields" },
|
|
1091
|
+
{ flag: "--limit" },
|
|
1092
|
+
{ flag: "--type" },
|
|
1093
|
+
{ flag: "--tag" },
|
|
1094
|
+
{ flag: "--priority" },
|
|
1095
|
+
{ flag: "--deadline-before" },
|
|
1096
|
+
{ flag: "--deadline-after" },
|
|
1097
|
+
];
|
|
1098
|
+
export const CONTRACTS_FLAG_CONTRACTS = [
|
|
1099
|
+
{ flag: "--action" },
|
|
1100
|
+
{ flag: "--command" },
|
|
1101
|
+
{ flag: "--schema-only" },
|
|
1102
|
+
{ flag: "--flags-only" },
|
|
1103
|
+
{ flag: "--availability-only" },
|
|
1104
|
+
{ flag: "--runtime-only" },
|
|
1105
|
+
{ flag: "--active-only" },
|
|
1106
|
+
];
|
|
1107
|
+
export const COMPLETION_FLAG_CONTRACTS = [
|
|
1108
|
+
{ flag: "--eager-tags" },
|
|
1109
|
+
];
|
|
1110
|
+
export function toCompletionFlagString(flagContracts, includeGlobal = true) {
|
|
1111
|
+
const aliasAwareContracts = withFlagAliasMetadata(flagContracts);
|
|
1112
|
+
const scoped = aliasAwareContracts
|
|
1113
|
+
.flatMap((entry) => [entry.short, entry.flag, ...(entry.aliases ?? [])])
|
|
1114
|
+
.filter((value) => Boolean(value));
|
|
1115
|
+
const all = includeGlobal
|
|
1116
|
+
? [
|
|
1117
|
+
...scoped,
|
|
1118
|
+
...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS.flatMap((entry) => [entry.short, entry.flag]).filter((value) => Boolean(value)),
|
|
1119
|
+
]
|
|
1120
|
+
: scoped;
|
|
1121
|
+
return normalizeUniqueStringList(all).join(" ");
|
|
1122
|
+
}
|
|
1123
|
+
export const CREATE_COMMANDER_STRING_OPTION_CONTRACTS = [
|
|
1124
|
+
{ target: "title", keys: ["title"] },
|
|
1125
|
+
{ target: "description", keys: ["description"] },
|
|
1126
|
+
{ target: "type", keys: ["type"] },
|
|
1127
|
+
{ target: "template", keys: ["template"] },
|
|
1128
|
+
{ target: "createMode", keys: ["createMode", "create_mode"] },
|
|
1129
|
+
{ target: "schedulePreset", keys: ["schedulePreset", "schedule_preset"] },
|
|
1130
|
+
{ target: "status", keys: ["status"] },
|
|
1131
|
+
{ target: "priority", keys: ["priority"] },
|
|
1132
|
+
{ target: "tags", keys: ["tags"] },
|
|
1133
|
+
{ target: "body", keys: ["body"] },
|
|
1134
|
+
{ target: "deadline", keys: ["deadline"] },
|
|
1135
|
+
{ target: "estimatedMinutes", keys: ["estimate", "estimatedMinutes", "estimated_minutes"] },
|
|
1136
|
+
{ target: "acceptanceCriteria", keys: ["acceptanceCriteria", "acceptance_criteria", "ac"] },
|
|
1137
|
+
{ target: "definitionOfReady", keys: ["definitionOfReady", "definition_of_ready"] },
|
|
1138
|
+
{ target: "order", keys: ["order"] },
|
|
1139
|
+
{ target: "rank", keys: ["rank"] },
|
|
1140
|
+
{ target: "goal", keys: ["goal"] },
|
|
1141
|
+
{ target: "objective", keys: ["objective"] },
|
|
1142
|
+
{ target: "value", keys: ["value"] },
|
|
1143
|
+
{ target: "impact", keys: ["impact"] },
|
|
1144
|
+
{ target: "outcome", keys: ["outcome"] },
|
|
1145
|
+
{ target: "whyNow", keys: ["whyNow", "why_now"] },
|
|
1146
|
+
{ target: "author", keys: ["author"] },
|
|
1147
|
+
{ target: "message", keys: ["message"] },
|
|
1148
|
+
{ target: "assignee", keys: ["assignee"] },
|
|
1149
|
+
{ target: "parent", keys: ["parent"] },
|
|
1150
|
+
{ target: "reviewer", keys: ["reviewer"] },
|
|
1151
|
+
{ target: "risk", keys: ["risk"] },
|
|
1152
|
+
{ target: "confidence", keys: ["confidence"] },
|
|
1153
|
+
{ target: "sprint", keys: ["sprint"] },
|
|
1154
|
+
{ target: "release", keys: ["release"] },
|
|
1155
|
+
{ target: "blockedBy", keys: ["blockedBy", "blocked_by"] },
|
|
1156
|
+
{ target: "blockedReason", keys: ["blockedReason", "blocked_reason"] },
|
|
1157
|
+
{ target: "unblockNote", keys: ["unblockNote", "unblock_note"] },
|
|
1158
|
+
{ target: "reporter", keys: ["reporter"] },
|
|
1159
|
+
{ target: "severity", keys: ["severity"] },
|
|
1160
|
+
{ target: "environment", keys: ["environment"] },
|
|
1161
|
+
{ target: "reproSteps", keys: ["reproSteps", "repro_steps"] },
|
|
1162
|
+
{ target: "resolution", keys: ["resolution"] },
|
|
1163
|
+
{ target: "expectedResult", keys: ["expectedResult", "expected_result"] },
|
|
1164
|
+
{ target: "actualResult", keys: ["actualResult", "actual_result"] },
|
|
1165
|
+
{ target: "affectedVersion", keys: ["affectedVersion", "affected_version"] },
|
|
1166
|
+
{ target: "fixedVersion", keys: ["fixedVersion", "fixed_version"] },
|
|
1167
|
+
{ target: "component", keys: ["component"] },
|
|
1168
|
+
{ target: "regression", keys: ["regression"] },
|
|
1169
|
+
{ target: "customerImpact", keys: ["customerImpact", "customer_impact"] },
|
|
1170
|
+
];
|
|
1171
|
+
export const CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS = [
|
|
1172
|
+
{ target: "dep", keys: ["dep"] },
|
|
1173
|
+
{ target: "comment", keys: ["comment"] },
|
|
1174
|
+
{ target: "note", keys: ["note"] },
|
|
1175
|
+
{ target: "learning", keys: ["learning"] },
|
|
1176
|
+
{ target: "file", keys: ["file"] },
|
|
1177
|
+
{ target: "test", keys: ["test"] },
|
|
1178
|
+
{ target: "doc", keys: ["doc"] },
|
|
1179
|
+
{ target: "reminder", keys: ["reminder"] },
|
|
1180
|
+
{ target: "event", keys: ["event"] },
|
|
1181
|
+
{ target: "typeOption", keys: ["typeOption", "type_option"] },
|
|
1182
|
+
{ target: "unset", keys: ["unset"] },
|
|
1183
|
+
];
|
|
1184
|
+
export const UPDATE_COMMANDER_STRING_OPTION_CONTRACTS = [
|
|
1185
|
+
{ target: "title", keys: ["title"] },
|
|
1186
|
+
{ target: "description", keys: ["description"] },
|
|
1187
|
+
{ target: "body", keys: ["body"] },
|
|
1188
|
+
{ target: "status", keys: ["status"] },
|
|
1189
|
+
{ target: "closeReason", keys: ["closeReason", "close_reason"] },
|
|
1190
|
+
{ target: "priority", keys: ["priority"] },
|
|
1191
|
+
{ target: "type", keys: ["type"] },
|
|
1192
|
+
{ target: "tags", keys: ["tags"] },
|
|
1193
|
+
{ target: "deadline", keys: ["deadline"] },
|
|
1194
|
+
{ target: "estimatedMinutes", keys: ["estimate", "estimatedMinutes", "estimated_minutes"] },
|
|
1195
|
+
{ target: "acceptanceCriteria", keys: ["acceptanceCriteria", "acceptance_criteria", "ac"] },
|
|
1196
|
+
{ target: "definitionOfReady", keys: ["definitionOfReady", "definition_of_ready"] },
|
|
1197
|
+
{ target: "order", keys: ["order"] },
|
|
1198
|
+
{ target: "rank", keys: ["rank"] },
|
|
1199
|
+
{ target: "goal", keys: ["goal"] },
|
|
1200
|
+
{ target: "objective", keys: ["objective"] },
|
|
1201
|
+
{ target: "value", keys: ["value"] },
|
|
1202
|
+
{ target: "impact", keys: ["impact"] },
|
|
1203
|
+
{ target: "outcome", keys: ["outcome"] },
|
|
1204
|
+
{ target: "whyNow", keys: ["whyNow", "why_now"] },
|
|
1205
|
+
{ target: "author", keys: ["author"] },
|
|
1206
|
+
{ target: "message", keys: ["message"] },
|
|
1207
|
+
{ target: "assignee", keys: ["assignee"] },
|
|
1208
|
+
{ target: "parent", keys: ["parent"] },
|
|
1209
|
+
{ target: "reviewer", keys: ["reviewer"] },
|
|
1210
|
+
{ target: "risk", keys: ["risk"] },
|
|
1211
|
+
{ target: "confidence", keys: ["confidence"] },
|
|
1212
|
+
{ target: "sprint", keys: ["sprint"] },
|
|
1213
|
+
{ target: "release", keys: ["release"] },
|
|
1214
|
+
{ target: "blockedBy", keys: ["blockedBy", "blocked_by"] },
|
|
1215
|
+
{ target: "blockedReason", keys: ["blockedReason", "blocked_reason"] },
|
|
1216
|
+
{ target: "unblockNote", keys: ["unblockNote", "unblock_note"] },
|
|
1217
|
+
{ target: "reporter", keys: ["reporter"] },
|
|
1218
|
+
{ target: "severity", keys: ["severity"] },
|
|
1219
|
+
{ target: "environment", keys: ["environment"] },
|
|
1220
|
+
{ target: "reproSteps", keys: ["reproSteps", "repro_steps"] },
|
|
1221
|
+
{ target: "resolution", keys: ["resolution"] },
|
|
1222
|
+
{ target: "expectedResult", keys: ["expectedResult", "expected_result"] },
|
|
1223
|
+
{ target: "actualResult", keys: ["actualResult", "actual_result"] },
|
|
1224
|
+
{ target: "affectedVersion", keys: ["affectedVersion", "affected_version"] },
|
|
1225
|
+
{ target: "fixedVersion", keys: ["fixedVersion", "fixed_version"] },
|
|
1226
|
+
{ target: "component", keys: ["component"] },
|
|
1227
|
+
{ target: "regression", keys: ["regression"] },
|
|
1228
|
+
{ target: "customerImpact", keys: ["customerImpact", "customer_impact"] },
|
|
1229
|
+
];
|
|
1230
|
+
export const UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS = [
|
|
1231
|
+
{ target: "dep", keys: ["dep"] },
|
|
1232
|
+
{ target: "depRemove", keys: ["depRemove", "dep_remove"] },
|
|
1233
|
+
{ target: "comment", keys: ["comment"] },
|
|
1234
|
+
{ target: "note", keys: ["note"] },
|
|
1235
|
+
{ target: "learning", keys: ["learning"] },
|
|
1236
|
+
{ target: "file", keys: ["file"] },
|
|
1237
|
+
{ target: "test", keys: ["test"] },
|
|
1238
|
+
{ target: "doc", keys: ["doc"] },
|
|
1239
|
+
{ target: "reminder", keys: ["reminder"] },
|
|
1240
|
+
{ target: "event", keys: ["event"] },
|
|
1241
|
+
{ target: "typeOption", keys: ["typeOption", "type_option"] },
|
|
1242
|
+
{ target: "unset", keys: ["unset"] },
|
|
1243
|
+
];
|
|
1244
|
+
export const LIST_COMMANDER_STRING_OPTION_CONTRACTS = [
|
|
1245
|
+
{ target: "status", keys: ["status"] },
|
|
1246
|
+
{ target: "type", keys: ["type"] },
|
|
1247
|
+
{ target: "tag", keys: ["tag"] },
|
|
1248
|
+
{ target: "priority", keys: ["priority"] },
|
|
1249
|
+
{ target: "deadlineBefore", keys: ["deadlineBefore"] },
|
|
1250
|
+
{ target: "deadlineAfter", keys: ["deadlineAfter"] },
|
|
1251
|
+
{ target: "assignee", keys: ["assignee"] },
|
|
1252
|
+
{ target: "assigneeFilter", keys: ["assigneeFilter", "assignee_filter"] },
|
|
1253
|
+
{ target: "parent", keys: ["parent"] },
|
|
1254
|
+
{ target: "sprint", keys: ["sprint"] },
|
|
1255
|
+
{ target: "release", keys: ["release"] },
|
|
1256
|
+
{ target: "limit", keys: ["limit"] },
|
|
1257
|
+
{ target: "offset", keys: ["offset"] },
|
|
1258
|
+
{ target: "fields", keys: ["fields"] },
|
|
1259
|
+
{ target: "sort", keys: ["sort"] },
|
|
1260
|
+
{ target: "order", keys: ["order"] },
|
|
1261
|
+
];
|
|
1262
|
+
export const SEARCH_COMMANDER_STRING_OPTION_CONTRACTS = [
|
|
1263
|
+
{ target: "mode", keys: ["mode"] },
|
|
1264
|
+
{ target: "type", keys: ["type"] },
|
|
1265
|
+
{ target: "tag", keys: ["tag"] },
|
|
1266
|
+
{ target: "priority", keys: ["priority"] },
|
|
1267
|
+
{ target: "deadlineBefore", keys: ["deadlineBefore"] },
|
|
1268
|
+
{ target: "deadlineAfter", keys: ["deadlineAfter"] },
|
|
1269
|
+
{ target: "fields", keys: ["fields"] },
|
|
1270
|
+
{ target: "limit", keys: ["limit"] },
|
|
1271
|
+
];
|
|
1272
|
+
export const CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS = [
|
|
1273
|
+
{ target: "view", keys: ["view"] },
|
|
1274
|
+
{ target: "date", keys: ["date"] },
|
|
1275
|
+
{ target: "from", keys: ["from"] },
|
|
1276
|
+
{ target: "to", keys: ["to"] },
|
|
1277
|
+
{ target: "limit", keys: ["limit"] },
|
|
1278
|
+
{ target: "type", keys: ["type"] },
|
|
1279
|
+
{ target: "tag", keys: ["tag"] },
|
|
1280
|
+
{ target: "priority", keys: ["priority"] },
|
|
1281
|
+
{ target: "status", keys: ["status"] },
|
|
1282
|
+
{ target: "assignee", keys: ["assignee"] },
|
|
1283
|
+
{ target: "assigneeFilter", keys: ["assigneeFilter", "assignee_filter"] },
|
|
1284
|
+
{ target: "sprint", keys: ["sprint"] },
|
|
1285
|
+
{ target: "release", keys: ["release"] },
|
|
1286
|
+
{ target: "include", keys: ["include"] },
|
|
1287
|
+
{ target: "recurrenceLookaheadDays", keys: ["recurrenceLookaheadDays", "recurrence_lookahead_days"] },
|
|
1288
|
+
{ target: "recurrenceLookbackDays", keys: ["recurrenceLookbackDays", "recurrence_lookback_days"] },
|
|
1289
|
+
{ target: "occurrenceLimit", keys: ["occurrenceLimit", "occurrence_limit"] },
|
|
1290
|
+
{ target: "format", keys: ["format"] },
|
|
1291
|
+
];
|
|
1292
|
+
export const CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS = [
|
|
1293
|
+
{ target: "date", keys: ["date"] },
|
|
1294
|
+
{ target: "from", keys: ["from"] },
|
|
1295
|
+
{ target: "to", keys: ["to"] },
|
|
1296
|
+
{ target: "type", keys: ["type"] },
|
|
1297
|
+
{ target: "tag", keys: ["tag"] },
|
|
1298
|
+
{ target: "priority", keys: ["priority"] },
|
|
1299
|
+
{ target: "assignee", keys: ["assignee"] },
|
|
1300
|
+
{ target: "assigneeFilter", keys: ["assigneeFilter", "assignee_filter"] },
|
|
1301
|
+
{ target: "sprint", keys: ["sprint"] },
|
|
1302
|
+
{ target: "release", keys: ["release"] },
|
|
1303
|
+
{ target: "limit", keys: ["limit"] },
|
|
1304
|
+
{ target: "format", keys: ["format"] },
|
|
1305
|
+
];
|
|
1306
|
+
export const ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS = [
|
|
1307
|
+
{ target: "id", keys: ["id"] },
|
|
1308
|
+
{ target: "op", keys: ["op"] },
|
|
1309
|
+
{ target: "author", keys: ["author"] },
|
|
1310
|
+
{ target: "from", keys: ["from"] },
|
|
1311
|
+
{ target: "to", keys: ["to"] },
|
|
1312
|
+
{ target: "limit", keys: ["limit"] },
|
|
1313
|
+
];
|
|
1314
|
+
export function readFirstStringFromCommanderOptions(options, contract) {
|
|
1315
|
+
for (const key of contract.keys) {
|
|
1316
|
+
const candidate = options[key];
|
|
1317
|
+
if (typeof candidate === "string") {
|
|
1318
|
+
return candidate;
|
|
1319
|
+
}
|
|
1320
|
+
}
|
|
1321
|
+
return undefined;
|
|
1322
|
+
}
|
|
1323
|
+
export function readStringArrayFromCommanderOptions(options, contract) {
|
|
1324
|
+
for (const key of contract.keys) {
|
|
1325
|
+
const candidate = options[key];
|
|
1326
|
+
if (Array.isArray(candidate)) {
|
|
1327
|
+
return candidate;
|
|
1328
|
+
}
|
|
1329
|
+
}
|
|
1330
|
+
return undefined;
|
|
1331
|
+
}
|
|
1332
|
+
const PM_TOOL_PARAMETER_PROPERTIES = {
|
|
1333
|
+
json: { type: "boolean", default: true },
|
|
1334
|
+
quiet: { type: "boolean" },
|
|
1335
|
+
profile: { type: "boolean" },
|
|
1336
|
+
noExtensions: { type: "boolean" },
|
|
1337
|
+
noPager: { type: "boolean" },
|
|
1338
|
+
path: { type: "string" },
|
|
1339
|
+
pmExecutable: { type: "string" },
|
|
1340
|
+
timeoutMs: { type: "number" },
|
|
1341
|
+
id: { type: "string" },
|
|
1342
|
+
target: { type: "string" },
|
|
1343
|
+
github: { type: "string" },
|
|
1344
|
+
ref: { type: "string" },
|
|
1345
|
+
query: { type: "string" },
|
|
1346
|
+
keywords: { type: "string" },
|
|
1347
|
+
fields: { type: "string" },
|
|
1348
|
+
sort: { type: "string", enum: ["priority", "deadline", "updated_at", "created_at", "title", "parent"] },
|
|
1349
|
+
prefix: { type: "string" },
|
|
1350
|
+
preset: { type: "string", enum: ["minimal", "default", "strict", "custom"] },
|
|
1351
|
+
scope: { type: "string", enum: ["project", "global"] },
|
|
1352
|
+
contractAction: { type: "string" },
|
|
1353
|
+
command: { type: "string" },
|
|
1354
|
+
schemaOnly: { type: "boolean" },
|
|
1355
|
+
flagsOnly: { type: "boolean" },
|
|
1356
|
+
availabilityOnly: { type: "boolean" },
|
|
1357
|
+
runtimeOnly: { type: "boolean" },
|
|
1358
|
+
activeOnly: { type: "boolean" },
|
|
1359
|
+
eagerTags: { type: "boolean" },
|
|
1360
|
+
configAction: { type: "string", enum: ["get", "set", "list", "export"] },
|
|
1361
|
+
key: { type: "string" },
|
|
1362
|
+
title: { type: "string" },
|
|
1363
|
+
description: { type: "string" },
|
|
1364
|
+
type: { type: "string" },
|
|
1365
|
+
template: { type: "string" },
|
|
1366
|
+
createMode: { type: "string", enum: ["strict", "progressive"] },
|
|
1367
|
+
schedulePreset: { type: "string", enum: ["lightweight"] },
|
|
1368
|
+
status: { type: "string", enum: ["draft", "open", "in_progress", "blocked", "closed", "canceled", "in-progress"] },
|
|
1369
|
+
filterStatus: { type: "string" },
|
|
1370
|
+
filterType: { type: "string" },
|
|
1371
|
+
filterTag: { type: "string" },
|
|
1372
|
+
filterPriority: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1373
|
+
filterDeadlineBefore: { type: "string" },
|
|
1374
|
+
filterDeadlineAfter: { type: "string" },
|
|
1375
|
+
filterAssignee: { type: "string" },
|
|
1376
|
+
filterAssigneeFilter: { type: "string", enum: ["assigned", "unassigned"] },
|
|
1377
|
+
filterParent: { type: "string" },
|
|
1378
|
+
filterSprint: { type: "string" },
|
|
1379
|
+
filterRelease: { type: "string" },
|
|
1380
|
+
closeReason: { type: "string" },
|
|
1381
|
+
priority: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1382
|
+
tags: { type: "string" },
|
|
1383
|
+
body: { type: "string" },
|
|
1384
|
+
deadline: { type: "string" },
|
|
1385
|
+
estimate: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1386
|
+
acceptanceCriteria: { type: "string" },
|
|
1387
|
+
author: { type: "string" },
|
|
1388
|
+
message: { type: "string" },
|
|
1389
|
+
assignee: { type: "string" },
|
|
1390
|
+
assigneeFilter: { type: "string", enum: ["assigned", "unassigned"] },
|
|
1391
|
+
parent: { type: "string" },
|
|
1392
|
+
reviewer: { type: "string" },
|
|
1393
|
+
risk: { type: "string" },
|
|
1394
|
+
confidence: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1395
|
+
sprint: { type: "string" },
|
|
1396
|
+
release: { type: "string" },
|
|
1397
|
+
blockedBy: { type: "string" },
|
|
1398
|
+
blockedReason: { type: "string" },
|
|
1399
|
+
unblockNote: { type: "string" },
|
|
1400
|
+
reporter: { type: "string" },
|
|
1401
|
+
severity: { type: "string" },
|
|
1402
|
+
environment: { type: "string" },
|
|
1403
|
+
reproSteps: { type: "string" },
|
|
1404
|
+
resolution: { type: "string" },
|
|
1405
|
+
expectedResult: { type: "string" },
|
|
1406
|
+
actualResult: { type: "string" },
|
|
1407
|
+
affectedVersion: { type: "string" },
|
|
1408
|
+
fixedVersion: { type: "string" },
|
|
1409
|
+
component: { type: "string" },
|
|
1410
|
+
regression: { anyOf: [{ type: "boolean" }, { type: "string" }, { type: "number" }] },
|
|
1411
|
+
customerImpact: { type: "string" },
|
|
1412
|
+
definitionOfReady: { type: "string" },
|
|
1413
|
+
order: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1414
|
+
goal: { type: "string" },
|
|
1415
|
+
objective: { type: "string" },
|
|
1416
|
+
value: { type: "string" },
|
|
1417
|
+
impact: { type: "string" },
|
|
1418
|
+
outcome: { type: "string" },
|
|
1419
|
+
whyNow: { type: "string" },
|
|
1420
|
+
mode: {
|
|
1421
|
+
type: "string",
|
|
1422
|
+
enum: ["keyword", "semantic", "hybrid", "title_exact", "title_fuzzy", "parent_scope"],
|
|
1423
|
+
},
|
|
1424
|
+
op: { type: "string" },
|
|
1425
|
+
compact: { type: "boolean" },
|
|
1426
|
+
full: { type: "boolean" },
|
|
1427
|
+
view: { type: "string", enum: ["agenda", "day", "week", "month"] },
|
|
1428
|
+
date: { type: "string" },
|
|
1429
|
+
from: { type: "string" },
|
|
1430
|
+
to: { type: "string" },
|
|
1431
|
+
past: { type: "boolean" },
|
|
1432
|
+
fullPeriod: { type: "boolean" },
|
|
1433
|
+
include: { type: "string" },
|
|
1434
|
+
recurrenceLookaheadDays: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1435
|
+
recurrenceLookbackDays: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1436
|
+
occurrenceLimit: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1437
|
+
includeLinked: { type: "boolean" },
|
|
1438
|
+
titleExact: { type: "boolean" },
|
|
1439
|
+
phraseExact: { type: "boolean" },
|
|
1440
|
+
includeBody: { type: "boolean" },
|
|
1441
|
+
tag: { type: "string" },
|
|
1442
|
+
deadlineBefore: { type: "string" },
|
|
1443
|
+
deadlineAfter: { type: "string" },
|
|
1444
|
+
limit: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1445
|
+
limitItems: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1446
|
+
fullHistory: { type: "boolean" },
|
|
1447
|
+
latest: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1448
|
+
offset: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1449
|
+
progress: { type: "boolean" },
|
|
1450
|
+
background: { type: "boolean" },
|
|
1451
|
+
runId: { type: "string" },
|
|
1452
|
+
stream: {
|
|
1453
|
+
anyOf: [{ type: "boolean" }, { type: "string", enum: ["stdout", "stderr", "both", "rows", "ndjson", "jsonl"] }],
|
|
1454
|
+
},
|
|
1455
|
+
tail: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1456
|
+
envSet: { type: "array", items: { type: "string" } },
|
|
1457
|
+
envClear: { type: "array", items: { type: "string" } },
|
|
1458
|
+
sharedHostSafe: { type: "boolean" },
|
|
1459
|
+
detail: { type: "string", enum: ["summary", "deep"] },
|
|
1460
|
+
trace: { type: "boolean" },
|
|
1461
|
+
runtimeProbe: { type: "boolean" },
|
|
1462
|
+
fixManagedState: { type: "boolean" },
|
|
1463
|
+
pmContext: { type: "string", enum: ["schema", "tracker", "auto"] },
|
|
1464
|
+
overrideLinkedPmContext: { type: "boolean" },
|
|
1465
|
+
failOnContextMismatch: { type: "boolean" },
|
|
1466
|
+
failOnSkipped: { type: "boolean" },
|
|
1467
|
+
failOnEmptyTestRun: { type: "boolean" },
|
|
1468
|
+
requireAssertionsForPm: { type: "boolean" },
|
|
1469
|
+
checkContext: { type: "boolean" },
|
|
1470
|
+
autoPmContext: { type: "boolean" },
|
|
1471
|
+
diff: { type: "boolean" },
|
|
1472
|
+
verify: { type: "boolean" },
|
|
1473
|
+
timeout: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1474
|
+
validateClose: { type: "string", enum: ["off", "warn", "strict"] },
|
|
1475
|
+
checkMetadata: { type: "boolean" },
|
|
1476
|
+
metadataProfile: { type: "string", enum: ["core", "strict", "custom"] },
|
|
1477
|
+
checkResolution: { type: "boolean" },
|
|
1478
|
+
checkLifecycle: { type: "boolean" },
|
|
1479
|
+
checkStaleBlockers: { type: "boolean" },
|
|
1480
|
+
dependencyCycleSeverity: { type: "string", enum: ["off", "warn", "error"] },
|
|
1481
|
+
checkFiles: { type: "boolean" },
|
|
1482
|
+
strictDirectories: { type: "boolean" },
|
|
1483
|
+
checkOnly: { type: "boolean" },
|
|
1484
|
+
checkTelemetry: { type: "boolean" },
|
|
1485
|
+
noRefresh: { type: "boolean" },
|
|
1486
|
+
refreshVectors: { type: "boolean" },
|
|
1487
|
+
verboseStaleItems: { type: "boolean" },
|
|
1488
|
+
scanMode: { type: "string", enum: ["default", "tracked-all", "tracked-all-strict"] },
|
|
1489
|
+
includePmInternals: { type: "boolean" },
|
|
1490
|
+
verboseFileLists: { type: "boolean" },
|
|
1491
|
+
strictExit: { type: "boolean" },
|
|
1492
|
+
failOnWarn: { type: "boolean" },
|
|
1493
|
+
checkHistoryDrift: { type: "boolean" },
|
|
1494
|
+
checkCommandReferences: { type: "boolean" },
|
|
1495
|
+
allowAuditNote: { type: "boolean" },
|
|
1496
|
+
allowAuditLearning: { type: "boolean" },
|
|
1497
|
+
allowAuditComment: { type: "boolean" },
|
|
1498
|
+
allowAuditUpdate: { type: "boolean" },
|
|
1499
|
+
allowAuditDepUpdate: { type: "boolean" },
|
|
1500
|
+
allowAuditRelease: { type: "boolean" },
|
|
1501
|
+
dryRun: { type: "boolean" },
|
|
1502
|
+
rollback: { type: "string" },
|
|
1503
|
+
noCheckpoint: { type: "boolean" },
|
|
1504
|
+
force: { type: "boolean" },
|
|
1505
|
+
run: { type: "boolean" },
|
|
1506
|
+
count: { type: "boolean" },
|
|
1507
|
+
includeUnparented: { type: "boolean" },
|
|
1508
|
+
gcScope: {
|
|
1509
|
+
type: "array",
|
|
1510
|
+
items: { type: "string", enum: ["index", "embeddings", "runtime"] },
|
|
1511
|
+
},
|
|
1512
|
+
maxDepth: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1513
|
+
collapse: { type: "string", enum: ["none", "repeated"] },
|
|
1514
|
+
summary: { type: "boolean" },
|
|
1515
|
+
shell: { type: "string", enum: ["bash", "zsh", "fish"] },
|
|
1516
|
+
file: { type: "string" },
|
|
1517
|
+
preserveSourceIds: { type: "boolean" },
|
|
1518
|
+
folder: { type: "string" },
|
|
1519
|
+
text: { type: "string" },
|
|
1520
|
+
add: { type: "array", items: { type: "string" } },
|
|
1521
|
+
addGlob: { type: "array", items: { type: "string" } },
|
|
1522
|
+
remove: { type: "array", items: { type: "string" } },
|
|
1523
|
+
migrate: { type: "array", items: { type: "string" } },
|
|
1524
|
+
discover: { type: "boolean" },
|
|
1525
|
+
apply: { type: "boolean" },
|
|
1526
|
+
discoveryNote: { type: "string" },
|
|
1527
|
+
appendStable: { type: "boolean" },
|
|
1528
|
+
validatePaths: { type: "boolean" },
|
|
1529
|
+
audit: { type: "boolean" },
|
|
1530
|
+
dep: { type: "array", items: { type: "string" } },
|
|
1531
|
+
depRemove: { type: "array", items: { type: "string" } },
|
|
1532
|
+
replaceDeps: { type: "boolean" },
|
|
1533
|
+
replaceTests: { type: "boolean" },
|
|
1534
|
+
comment: { type: "array", items: { type: "string" } },
|
|
1535
|
+
note: { type: "array", items: { type: "string" } },
|
|
1536
|
+
learning: { type: "array", items: { type: "string" } },
|
|
1537
|
+
linkedFile: { type: "array", items: { type: "string" } },
|
|
1538
|
+
linkedTest: { type: "array", items: { type: "string" } },
|
|
1539
|
+
doc: { type: "array", items: { type: "string" } },
|
|
1540
|
+
reminder: { type: "array", items: { type: "string" } },
|
|
1541
|
+
event: { type: "array", items: { type: "string" } },
|
|
1542
|
+
typeOption: { type: "array", items: { type: "string" } },
|
|
1543
|
+
unset: { type: "array", items: { type: "string" } },
|
|
1544
|
+
clearDeps: { type: "boolean" },
|
|
1545
|
+
clearComments: { type: "boolean" },
|
|
1546
|
+
clearNotes: { type: "boolean" },
|
|
1547
|
+
clearLearnings: { type: "boolean" },
|
|
1548
|
+
clearFiles: { type: "boolean" },
|
|
1549
|
+
clearTests: { type: "boolean" },
|
|
1550
|
+
clearDocs: { type: "boolean" },
|
|
1551
|
+
clearReminders: { type: "boolean" },
|
|
1552
|
+
clearEvents: { type: "boolean" },
|
|
1553
|
+
clearTypeOptions: { type: "boolean" },
|
|
1554
|
+
criterion: { type: "array", items: { type: "string" } },
|
|
1555
|
+
clearCriteria: { type: "boolean" },
|
|
1556
|
+
groupBy: { type: "string" },
|
|
1557
|
+
threshold: { anyOf: [{ type: "string" }, { type: "number" }] },
|
|
1558
|
+
format: { type: "string" },
|
|
1559
|
+
policy: { type: "string" },
|
|
1560
|
+
};
|
|
1561
|
+
const PM_TOOL_GLOBAL_PARAMETER_KEYS = ["json", "quiet", "profile", "noExtensions", "noPager", "path", "pmExecutable", "timeoutMs"];
|
|
1562
|
+
function toSchemaKeyList(values) {
|
|
1563
|
+
return normalizeUniqueStringList(values);
|
|
1564
|
+
}
|
|
1565
|
+
const CREATE_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
|
|
1566
|
+
...PI_CREATE_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1567
|
+
...PI_SHARED_CREATE_UPDATE_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1568
|
+
"assignee",
|
|
1569
|
+
]);
|
|
1570
|
+
const TEMPLATE_SAVE_UNSUPPORTED_PARAMETER_KEYS = new Set([
|
|
1571
|
+
"createMode",
|
|
1572
|
+
"schedulePreset",
|
|
1573
|
+
"unset",
|
|
1574
|
+
"clearDeps",
|
|
1575
|
+
"clearComments",
|
|
1576
|
+
"clearNotes",
|
|
1577
|
+
"clearLearnings",
|
|
1578
|
+
"clearFiles",
|
|
1579
|
+
"clearTests",
|
|
1580
|
+
"clearDocs",
|
|
1581
|
+
"clearReminders",
|
|
1582
|
+
"clearEvents",
|
|
1583
|
+
"clearTypeOptions",
|
|
1584
|
+
]);
|
|
1585
|
+
const TEMPLATE_SAVE_CONTRACT_PARAMETER_KEYS = toSchemaKeyList(CREATE_CONTRACT_PARAMETER_KEYS.filter((key) => !TEMPLATE_SAVE_UNSUPPORTED_PARAMETER_KEYS.has(key)));
|
|
1586
|
+
const UPDATE_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
|
|
1587
|
+
...PI_UPDATE_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1588
|
+
...PI_SHARED_CREATE_UPDATE_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1589
|
+
"force",
|
|
1590
|
+
]);
|
|
1591
|
+
const UPDATE_MANY_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
|
|
1592
|
+
...PI_UPDATE_MANY_FILTER_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1593
|
+
...UPDATE_CONTRACT_PARAMETER_KEYS,
|
|
1594
|
+
"dryRun",
|
|
1595
|
+
"rollback",
|
|
1596
|
+
"noCheckpoint",
|
|
1597
|
+
]);
|
|
1598
|
+
const NORMALIZE_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
|
|
1599
|
+
...PI_NORMALIZE_FILTER_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1600
|
+
"dryRun",
|
|
1601
|
+
"apply",
|
|
1602
|
+
"author",
|
|
1603
|
+
"message",
|
|
1604
|
+
"allowAuditUpdate",
|
|
1605
|
+
"force",
|
|
1606
|
+
]);
|
|
1607
|
+
const CALENDAR_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
|
|
1608
|
+
...PI_CALENDAR_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1609
|
+
"past",
|
|
1610
|
+
"fullPeriod",
|
|
1611
|
+
]);
|
|
1612
|
+
const CONTEXT_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
|
|
1613
|
+
...PI_CONTEXT_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1614
|
+
"past",
|
|
1615
|
+
]);
|
|
1616
|
+
const ACTIVITY_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
|
|
1617
|
+
...PI_ACTIVITY_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1618
|
+
"stream",
|
|
1619
|
+
]);
|
|
1620
|
+
const LIST_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
|
|
1621
|
+
...PI_LIST_FILTER_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1622
|
+
"includeBody",
|
|
1623
|
+
"compact",
|
|
1624
|
+
]);
|
|
1625
|
+
const AGGREGATE_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
|
|
1626
|
+
...PI_AGGREGATE_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1627
|
+
"count",
|
|
1628
|
+
"includeUnparented",
|
|
1629
|
+
]);
|
|
1630
|
+
const DEDUPE_AUDIT_CONTRACT_PARAMETER_KEYS = toSchemaKeyList(PI_DEDUPE_AUDIT_OPTION_CONTRACTS.map((entry) => entry.param));
|
|
1631
|
+
const SEARCH_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
|
|
1632
|
+
"query",
|
|
1633
|
+
"keywords",
|
|
1634
|
+
"mode",
|
|
1635
|
+
"includeLinked",
|
|
1636
|
+
"titleExact",
|
|
1637
|
+
"phraseExact",
|
|
1638
|
+
"compact",
|
|
1639
|
+
"full",
|
|
1640
|
+
...PI_SEARCH_FILTER_OPTION_CONTRACTS.map((entry) => entry.param),
|
|
1641
|
+
]);
|
|
1642
|
+
const AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS = ["author", "message", "force"];
|
|
1643
|
+
const PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
|
|
1644
|
+
init: { optional: ["prefix", "preset"] },
|
|
1645
|
+
config: {
|
|
1646
|
+
required: ["scope", "configAction"],
|
|
1647
|
+
optional: ["key", "criterion", "clearCriteria", "format", "policy"],
|
|
1648
|
+
},
|
|
1649
|
+
"extension-init": { required: ["target"], optional: ["scope"] },
|
|
1650
|
+
"extension-install": {
|
|
1651
|
+
optional: ["target", "github", "scope", "ref"],
|
|
1652
|
+
anyOfRequired: [["target"], ["github"]],
|
|
1653
|
+
},
|
|
1654
|
+
"extension-uninstall": { required: ["target"], optional: ["scope"] },
|
|
1655
|
+
"extension-explore": { optional: ["scope"] },
|
|
1656
|
+
"extension-manage": { optional: ["scope", "runtimeProbe", "fixManagedState"] },
|
|
1657
|
+
"extension-doctor": { optional: ["scope", "detail", "trace", "fixManagedState", "strictExit", "failOnWarn"] },
|
|
1658
|
+
"extension-adopt": { required: ["target"], optional: ["scope", "github", "ref"] },
|
|
1659
|
+
"extension-adopt-all": { optional: ["scope"] },
|
|
1660
|
+
"extension-activate": { required: ["target"], optional: ["scope"] },
|
|
1661
|
+
"extension-deactivate": { required: ["target"], optional: ["scope"] },
|
|
1662
|
+
create: {
|
|
1663
|
+
required: ["title", "description", "type", "status", "priority", "message"],
|
|
1664
|
+
optional: CREATE_CONTRACT_PARAMETER_KEYS,
|
|
1665
|
+
},
|
|
1666
|
+
list: { optional: LIST_CONTRACT_PARAMETER_KEYS },
|
|
1667
|
+
"list-all": { optional: LIST_CONTRACT_PARAMETER_KEYS },
|
|
1668
|
+
"list-draft": { optional: LIST_CONTRACT_PARAMETER_KEYS },
|
|
1669
|
+
"list-open": { optional: LIST_CONTRACT_PARAMETER_KEYS },
|
|
1670
|
+
"list-in-progress": { optional: LIST_CONTRACT_PARAMETER_KEYS },
|
|
1671
|
+
"list-blocked": { optional: LIST_CONTRACT_PARAMETER_KEYS },
|
|
1672
|
+
"list-closed": { optional: LIST_CONTRACT_PARAMETER_KEYS },
|
|
1673
|
+
"list-canceled": { optional: LIST_CONTRACT_PARAMETER_KEYS },
|
|
1674
|
+
aggregate: { optional: AGGREGATE_CONTRACT_PARAMETER_KEYS },
|
|
1675
|
+
"dedupe-audit": { optional: DEDUPE_AUDIT_CONTRACT_PARAMETER_KEYS },
|
|
1676
|
+
calendar: { optional: CALENDAR_CONTRACT_PARAMETER_KEYS },
|
|
1677
|
+
context: { optional: CONTEXT_CONTRACT_PARAMETER_KEYS },
|
|
1678
|
+
get: { required: ["id"] },
|
|
1679
|
+
search: {
|
|
1680
|
+
optional: SEARCH_CONTRACT_PARAMETER_KEYS,
|
|
1681
|
+
anyOfRequired: [["query"], ["keywords"]],
|
|
1682
|
+
},
|
|
1683
|
+
reindex: { optional: ["mode", "progress"] },
|
|
1684
|
+
history: { required: ["id"], optional: ["limit", "diff", "verify"] },
|
|
1685
|
+
activity: { optional: ACTIVITY_CONTRACT_PARAMETER_KEYS },
|
|
1686
|
+
restore: { required: ["id", "target"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
|
|
1687
|
+
update: { required: ["id"], optional: UPDATE_CONTRACT_PARAMETER_KEYS },
|
|
1688
|
+
"update-many": { optional: UPDATE_MANY_CONTRACT_PARAMETER_KEYS },
|
|
1689
|
+
normalize: { optional: NORMALIZE_CONTRACT_PARAMETER_KEYS },
|
|
1690
|
+
close: { required: ["id", "text"], optional: ["validateClose", ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS] },
|
|
1691
|
+
delete: { required: ["id"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
|
|
1692
|
+
append: { required: ["id", "body"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
|
|
1693
|
+
comments: { required: ["id"], optional: ["text", "add", "limit", "allowAuditComment", ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS] },
|
|
1694
|
+
"comments-audit": {
|
|
1695
|
+
optional: [
|
|
1696
|
+
"status",
|
|
1697
|
+
"type",
|
|
1698
|
+
"assignee",
|
|
1699
|
+
"assigneeFilter",
|
|
1700
|
+
"parent",
|
|
1701
|
+
"tag",
|
|
1702
|
+
"sprint",
|
|
1703
|
+
"release",
|
|
1704
|
+
"priority",
|
|
1705
|
+
"limitItems",
|
|
1706
|
+
"limit",
|
|
1707
|
+
"fullHistory",
|
|
1708
|
+
"latest",
|
|
1709
|
+
],
|
|
1710
|
+
},
|
|
1711
|
+
notes: {
|
|
1712
|
+
required: ["id"],
|
|
1713
|
+
optional: ["text", "add", "limit", "allowAuditNote", "allowAuditComment", ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS],
|
|
1714
|
+
},
|
|
1715
|
+
learnings: {
|
|
1716
|
+
required: ["id"],
|
|
1717
|
+
optional: ["text", "add", "limit", "allowAuditLearning", "allowAuditComment", ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS],
|
|
1718
|
+
},
|
|
1719
|
+
files: {
|
|
1720
|
+
required: ["id"],
|
|
1721
|
+
optional: [
|
|
1722
|
+
"add",
|
|
1723
|
+
"addGlob",
|
|
1724
|
+
"remove",
|
|
1725
|
+
"migrate",
|
|
1726
|
+
"discover",
|
|
1727
|
+
"apply",
|
|
1728
|
+
"discoveryNote",
|
|
1729
|
+
"appendStable",
|
|
1730
|
+
"validatePaths",
|
|
1731
|
+
"audit",
|
|
1732
|
+
...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS,
|
|
1733
|
+
],
|
|
1734
|
+
},
|
|
1735
|
+
docs: {
|
|
1736
|
+
required: ["id"],
|
|
1737
|
+
optional: ["add", "addGlob", "remove", "migrate", "validatePaths", "audit", ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS],
|
|
1738
|
+
},
|
|
1739
|
+
deps: { required: ["id"], optional: ["format", "maxDepth", "collapse", "summary"] },
|
|
1740
|
+
test: {
|
|
1741
|
+
required: ["id"],
|
|
1742
|
+
optional: [
|
|
1743
|
+
"add",
|
|
1744
|
+
"remove",
|
|
1745
|
+
"run",
|
|
1746
|
+
"background",
|
|
1747
|
+
"timeout",
|
|
1748
|
+
"progress",
|
|
1749
|
+
"envSet",
|
|
1750
|
+
"envClear",
|
|
1751
|
+
"sharedHostSafe",
|
|
1752
|
+
"pmContext",
|
|
1753
|
+
"overrideLinkedPmContext",
|
|
1754
|
+
"failOnContextMismatch",
|
|
1755
|
+
"failOnSkipped",
|
|
1756
|
+
"failOnEmptyTestRun",
|
|
1757
|
+
"requireAssertionsForPm",
|
|
1758
|
+
"checkContext",
|
|
1759
|
+
"autoPmContext",
|
|
1760
|
+
...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS,
|
|
1761
|
+
],
|
|
1762
|
+
},
|
|
1763
|
+
"test-all": {
|
|
1764
|
+
optional: [
|
|
1765
|
+
"status",
|
|
1766
|
+
"limit",
|
|
1767
|
+
"offset",
|
|
1768
|
+
"background",
|
|
1769
|
+
"timeout",
|
|
1770
|
+
"progress",
|
|
1771
|
+
"envSet",
|
|
1772
|
+
"envClear",
|
|
1773
|
+
"sharedHostSafe",
|
|
1774
|
+
"pmContext",
|
|
1775
|
+
"overrideLinkedPmContext",
|
|
1776
|
+
"failOnContextMismatch",
|
|
1777
|
+
"failOnSkipped",
|
|
1778
|
+
"failOnEmptyTestRun",
|
|
1779
|
+
"requireAssertionsForPm",
|
|
1780
|
+
"checkContext",
|
|
1781
|
+
"autoPmContext",
|
|
1782
|
+
],
|
|
1783
|
+
},
|
|
1784
|
+
"test-runs-list": {
|
|
1785
|
+
optional: ["status", "limit"],
|
|
1786
|
+
},
|
|
1787
|
+
"test-runs-status": {
|
|
1788
|
+
required: ["runId"],
|
|
1789
|
+
},
|
|
1790
|
+
"test-runs-logs": {
|
|
1791
|
+
required: ["runId"],
|
|
1792
|
+
optional: ["stream", "tail"],
|
|
1793
|
+
},
|
|
1794
|
+
"test-runs-stop": {
|
|
1795
|
+
required: ["runId"],
|
|
1796
|
+
optional: ["force"],
|
|
1797
|
+
},
|
|
1798
|
+
"test-runs-resume": {
|
|
1799
|
+
required: ["runId"],
|
|
1800
|
+
optional: ["author"],
|
|
1801
|
+
},
|
|
1802
|
+
stats: {},
|
|
1803
|
+
health: {
|
|
1804
|
+
optional: [
|
|
1805
|
+
"strictDirectories",
|
|
1806
|
+
"strictExit",
|
|
1807
|
+
"failOnWarn",
|
|
1808
|
+
"checkOnly",
|
|
1809
|
+
"checkTelemetry",
|
|
1810
|
+
"noRefresh",
|
|
1811
|
+
"refreshVectors",
|
|
1812
|
+
"verboseStaleItems",
|
|
1813
|
+
],
|
|
1814
|
+
},
|
|
1815
|
+
validate: {
|
|
1816
|
+
optional: [
|
|
1817
|
+
"checkMetadata",
|
|
1818
|
+
"metadataProfile",
|
|
1819
|
+
"checkResolution",
|
|
1820
|
+
"checkLifecycle",
|
|
1821
|
+
"checkStaleBlockers",
|
|
1822
|
+
"dependencyCycleSeverity",
|
|
1823
|
+
"checkFiles",
|
|
1824
|
+
"scanMode",
|
|
1825
|
+
"includePmInternals",
|
|
1826
|
+
"verboseFileLists",
|
|
1827
|
+
"strictExit",
|
|
1828
|
+
"failOnWarn",
|
|
1829
|
+
"checkHistoryDrift",
|
|
1830
|
+
"checkCommandReferences",
|
|
1831
|
+
],
|
|
1832
|
+
},
|
|
1833
|
+
gc: { optional: ["dryRun", "gcScope"] },
|
|
1834
|
+
contracts: { optional: ["contractAction", "command", "schemaOnly", "flagsOnly", "availabilityOnly", "runtimeOnly", "activeOnly"] },
|
|
1835
|
+
completion: { required: ["shell"], optional: ["eagerTags"] },
|
|
1836
|
+
"templates-save": {
|
|
1837
|
+
required: ["template"],
|
|
1838
|
+
optional: TEMPLATE_SAVE_CONTRACT_PARAMETER_KEYS,
|
|
1839
|
+
},
|
|
1840
|
+
"templates-list": {},
|
|
1841
|
+
"templates-show": { required: ["template"] },
|
|
1842
|
+
claim: { required: ["id"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
|
|
1843
|
+
release: { required: ["id"], optional: ["allowAuditRelease", ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS] },
|
|
1844
|
+
"beads-import": { optional: ["file", "author", "message", "preserveSourceIds"] },
|
|
1845
|
+
"todos-import": { optional: ["folder", "author", "message"] },
|
|
1846
|
+
"todos-export": { optional: ["folder"] },
|
|
1847
|
+
"start-task": { required: ["id"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
|
|
1848
|
+
"pause-task": { required: ["id"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
|
|
1849
|
+
"close-task": { required: ["id", "text"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
|
|
1850
|
+
};
|
|
1851
|
+
const PM_TOOL_PARAMETER_METADATA = {
|
|
1852
|
+
action: {
|
|
1853
|
+
description: "Tool action to execute.",
|
|
1854
|
+
},
|
|
1855
|
+
path: {
|
|
1856
|
+
description: "Optional PM data root override for this invocation.",
|
|
1857
|
+
examples: [".agents/pm"],
|
|
1858
|
+
},
|
|
1859
|
+
scope: {
|
|
1860
|
+
description: "Scope selector for commands that operate on project or global state.",
|
|
1861
|
+
examples: ["project", "global"],
|
|
1862
|
+
},
|
|
1863
|
+
detail: {
|
|
1864
|
+
description: "Detail mode for commands that support concise and deep diagnostics.",
|
|
1865
|
+
examples: ["summary", "deep"],
|
|
1866
|
+
},
|
|
1867
|
+
trace: {
|
|
1868
|
+
description: "When true for extension-doctor, include actionable registration traces in deep diagnostics.",
|
|
1869
|
+
},
|
|
1870
|
+
runtimeProbe: {
|
|
1871
|
+
description: "When true for extension-manage, run a doctor-like runtime activation probe for parity fields.",
|
|
1872
|
+
},
|
|
1873
|
+
fixManagedState: {
|
|
1874
|
+
description: "When true for extension-manage/extension-doctor, adopt unmanaged extensions before diagnostics/update checks.",
|
|
1875
|
+
},
|
|
1876
|
+
target: {
|
|
1877
|
+
description: "Positional target argument for the selected action (ID, source, or extension name).",
|
|
1878
|
+
examples: ["pm-a1b2", ".agents/pm/extensions/sample", "sample-extension"],
|
|
1879
|
+
},
|
|
1880
|
+
github: {
|
|
1881
|
+
description: "GitHub shorthand owner/repo[/path] source for extension install actions.",
|
|
1882
|
+
examples: ["unbraind/pm-cli/pi"],
|
|
1883
|
+
},
|
|
1884
|
+
ref: {
|
|
1885
|
+
description: "Git ref/branch/tag used when installing from GitHub shorthand/URL sources.",
|
|
1886
|
+
examples: ["main", "v1.0.0"],
|
|
1887
|
+
},
|
|
1888
|
+
json: {
|
|
1889
|
+
description: "Emit machine-readable JSON output.",
|
|
1890
|
+
},
|
|
1891
|
+
quiet: {
|
|
1892
|
+
description: "Suppress stdout payload output.",
|
|
1893
|
+
},
|
|
1894
|
+
noExtensions: {
|
|
1895
|
+
description: "Disable extension loading for this invocation.",
|
|
1896
|
+
},
|
|
1897
|
+
noPager: {
|
|
1898
|
+
description: "Disable pager integration for help and long output.",
|
|
1899
|
+
},
|
|
1900
|
+
profile: {
|
|
1901
|
+
description: "Emit deterministic timing diagnostics to stderr.",
|
|
1902
|
+
},
|
|
1903
|
+
timeoutMs: {
|
|
1904
|
+
description: "Pi wrapper execution timeout in milliseconds.",
|
|
1905
|
+
examples: [120000],
|
|
1906
|
+
},
|
|
1907
|
+
id: {
|
|
1908
|
+
description: "Item identifier for read or mutation actions.",
|
|
1909
|
+
examples: ["pm-a1b2"],
|
|
1910
|
+
},
|
|
1911
|
+
runId: {
|
|
1912
|
+
description: "Background test run identifier.",
|
|
1913
|
+
examples: ["tr-kq9x3f-93acde"],
|
|
1914
|
+
},
|
|
1915
|
+
title: {
|
|
1916
|
+
description: "Item title text.",
|
|
1917
|
+
},
|
|
1918
|
+
description: {
|
|
1919
|
+
description: "Item description text.",
|
|
1920
|
+
},
|
|
1921
|
+
type: {
|
|
1922
|
+
description: "Item type name from the active runtime type registry.",
|
|
1923
|
+
examples: ["Task", "Feature"],
|
|
1924
|
+
},
|
|
1925
|
+
preset: {
|
|
1926
|
+
description: "Governance preset for initialization flows.",
|
|
1927
|
+
examples: ["minimal", "default", "strict"],
|
|
1928
|
+
},
|
|
1929
|
+
createMode: {
|
|
1930
|
+
description: "Create required-option policy mode.",
|
|
1931
|
+
examples: ["strict", "progressive"],
|
|
1932
|
+
},
|
|
1933
|
+
schedulePreset: {
|
|
1934
|
+
description: "Schedule-centric create preset for Reminder, Meeting, and Event types.",
|
|
1935
|
+
examples: ["lightweight"],
|
|
1936
|
+
},
|
|
1937
|
+
status: {
|
|
1938
|
+
description: "Item status value.",
|
|
1939
|
+
examples: ["open", "in_progress"],
|
|
1940
|
+
},
|
|
1941
|
+
priority: {
|
|
1942
|
+
description: "Priority value in range 0..4.",
|
|
1943
|
+
examples: [0, 1, "2"],
|
|
1944
|
+
},
|
|
1945
|
+
order: {
|
|
1946
|
+
description: "Planning order/rank value for create/update, or sort direction (asc|desc) for list-family sorting.",
|
|
1947
|
+
examples: [0, 1, "2", "asc", "desc"],
|
|
1948
|
+
},
|
|
1949
|
+
sort: {
|
|
1950
|
+
description: "List-family sort field selector.",
|
|
1951
|
+
examples: ["priority", "deadline", "updated_at", "created_at", "title", "parent"],
|
|
1952
|
+
},
|
|
1953
|
+
tags: {
|
|
1954
|
+
description: "Comma-delimited tag list.",
|
|
1955
|
+
examples: ["pm-cli,agent-ux"],
|
|
1956
|
+
},
|
|
1957
|
+
deadline: {
|
|
1958
|
+
description: "ISO/date timestamp or relative offset (+6h/+1d/+2w/+6m).",
|
|
1959
|
+
examples: ["2026-04-01T00:00:00.000Z", "+1d"],
|
|
1960
|
+
},
|
|
1961
|
+
estimate: {
|
|
1962
|
+
description: "Estimated effort in minutes.",
|
|
1963
|
+
examples: [60, "120"],
|
|
1964
|
+
},
|
|
1965
|
+
acceptanceCriteria: {
|
|
1966
|
+
description: "Acceptance criteria text.",
|
|
1967
|
+
},
|
|
1968
|
+
author: {
|
|
1969
|
+
description: "Mutation author identity.",
|
|
1970
|
+
examples: ["codex-agent"],
|
|
1971
|
+
},
|
|
1972
|
+
message: {
|
|
1973
|
+
description: "History message for mutation audit trail.",
|
|
1974
|
+
},
|
|
1975
|
+
assignee: {
|
|
1976
|
+
description: "Assignee identity.",
|
|
1977
|
+
examples: ["codex-agent"],
|
|
1978
|
+
},
|
|
1979
|
+
assigneeFilter: {
|
|
1980
|
+
description: "Assignee presence selector for list/calendar/context/comments-audit filters.",
|
|
1981
|
+
examples: ["assigned", "unassigned"],
|
|
1982
|
+
},
|
|
1983
|
+
parent: {
|
|
1984
|
+
description: "Parent item ID filter for hierarchical list queries.",
|
|
1985
|
+
examples: ["pm-epic01"],
|
|
1986
|
+
},
|
|
1987
|
+
unset: {
|
|
1988
|
+
description: "Repeatable list of front-matter fields to clear explicitly during create/update mutations.",
|
|
1989
|
+
examples: [["deadline", "assignee"], ["close-reason"]],
|
|
1990
|
+
},
|
|
1991
|
+
clearDeps: {
|
|
1992
|
+
description: "When true, clear linked dependencies.",
|
|
1993
|
+
},
|
|
1994
|
+
replaceDeps: {
|
|
1995
|
+
description: "When true for update, atomically replace dependencies with the supplied --dep values.",
|
|
1996
|
+
},
|
|
1997
|
+
replaceTests: {
|
|
1998
|
+
description: "When true for update, atomically replace linked tests with the supplied --test values.",
|
|
1999
|
+
},
|
|
2000
|
+
clearComments: {
|
|
2001
|
+
description: "When true, clear item comments.",
|
|
2002
|
+
},
|
|
2003
|
+
clearNotes: {
|
|
2004
|
+
description: "When true, clear item notes.",
|
|
2005
|
+
},
|
|
2006
|
+
clearLearnings: {
|
|
2007
|
+
description: "When true, clear item learnings.",
|
|
2008
|
+
},
|
|
2009
|
+
clearFiles: {
|
|
2010
|
+
description: "When true, clear linked files.",
|
|
2011
|
+
},
|
|
2012
|
+
clearTests: {
|
|
2013
|
+
description: "When true, clear linked tests.",
|
|
2014
|
+
},
|
|
2015
|
+
clearDocs: {
|
|
2016
|
+
description: "When true, clear linked docs.",
|
|
2017
|
+
},
|
|
2018
|
+
clearReminders: {
|
|
2019
|
+
description: "When true, clear reminders.",
|
|
2020
|
+
},
|
|
2021
|
+
clearEvents: {
|
|
2022
|
+
description: "When true, clear events.",
|
|
2023
|
+
},
|
|
2024
|
+
clearTypeOptions: {
|
|
2025
|
+
description: "When true, clear type option metadata.",
|
|
2026
|
+
},
|
|
2027
|
+
clearCriteria: {
|
|
2028
|
+
description: "When true for config set criteria-list keys (definition-of-done, metadata-required-fields, lifecycle pattern lists), clear the criteria list.",
|
|
2029
|
+
},
|
|
2030
|
+
mode: {
|
|
2031
|
+
description: "Mode selector for search/reindex (keyword|semantic|hybrid) and dedupe-audit (title_exact|title_fuzzy|parent_scope).",
|
|
2032
|
+
examples: ["keyword", "hybrid", "title_exact"],
|
|
2033
|
+
},
|
|
2034
|
+
op: {
|
|
2035
|
+
description: "History operation filter for activity output.",
|
|
2036
|
+
examples: ["create", "update", "close", "update_audit"],
|
|
2037
|
+
},
|
|
2038
|
+
fullPeriod: {
|
|
2039
|
+
description: "For day/week/month calendar views, include the full anchored period instead of clipping the start to now.",
|
|
2040
|
+
},
|
|
2041
|
+
progress: {
|
|
2042
|
+
description: "Emit progress diagnostics to stderr for long-running operations.",
|
|
2043
|
+
},
|
|
2044
|
+
background: {
|
|
2045
|
+
description: "Run linked tests in managed background mode.",
|
|
2046
|
+
},
|
|
2047
|
+
envSet: {
|
|
2048
|
+
description: "Repeatable runtime environment KEY=VALUE overrides for linked-test execution.",
|
|
2049
|
+
examples: [["PORT=0", "PLAYWRIGHT_HTML_OPEN=never"]],
|
|
2050
|
+
},
|
|
2051
|
+
envClear: {
|
|
2052
|
+
description: "Repeatable runtime environment variable names to clear before linked-test execution.",
|
|
2053
|
+
examples: [["PLAYWRIGHT_BASE_URL"]],
|
|
2054
|
+
},
|
|
2055
|
+
sharedHostSafe: {
|
|
2056
|
+
description: "Apply additive shared-host-safe runtime defaults during linked-test execution.",
|
|
2057
|
+
},
|
|
2058
|
+
pmContext: {
|
|
2059
|
+
description: "PM linked-test context mode (schema keeps isolated tracker data; tracker seeds source tracker data; auto uses tracker for PM tracker-read linked commands).",
|
|
2060
|
+
examples: ["schema", "tracker", "auto"],
|
|
2061
|
+
},
|
|
2062
|
+
overrideLinkedPmContext: {
|
|
2063
|
+
description: "Force run-level --pm-context to override per-linked-test pm_context_mode metadata for all linked-test entries.",
|
|
2064
|
+
},
|
|
2065
|
+
failOnContextMismatch: {
|
|
2066
|
+
description: "Fail linked PM command runs when source and sandbox tracker item counts differ.",
|
|
2067
|
+
},
|
|
2068
|
+
failOnSkipped: {
|
|
2069
|
+
description: "Treat skipped linked tests as dependency-failed policy violations.",
|
|
2070
|
+
},
|
|
2071
|
+
failOnEmptyTestRun: {
|
|
2072
|
+
description: "Treat successful linked-test commands that report zero executed tests as failures.",
|
|
2073
|
+
},
|
|
2074
|
+
requireAssertionsForPm: {
|
|
2075
|
+
description: "Require assertion metadata for linked PM command test entries during run execution.",
|
|
2076
|
+
},
|
|
2077
|
+
checkContext: {
|
|
2078
|
+
description: "Run linked PM command context preflight diagnostics before command execution.",
|
|
2079
|
+
},
|
|
2080
|
+
autoPmContext: {
|
|
2081
|
+
description: "Auto-remediate PM tracker-read linked commands by routing those entries through tracker context regardless of linked-test pm_context_mode overrides.",
|
|
2082
|
+
},
|
|
2083
|
+
dryRun: {
|
|
2084
|
+
description: "Preview command effects without mutating storage artifacts.",
|
|
2085
|
+
},
|
|
2086
|
+
gcScope: {
|
|
2087
|
+
description: "Repeatable gc scope selector values (index, embeddings, runtime).",
|
|
2088
|
+
examples: [["index", "embeddings"], ["runtime"]],
|
|
2089
|
+
},
|
|
2090
|
+
offset: {
|
|
2091
|
+
description: "Number of matching rows to skip before limit is applied.",
|
|
2092
|
+
examples: [0, 50, "100"],
|
|
2093
|
+
},
|
|
2094
|
+
limitItems: {
|
|
2095
|
+
description: "Maximum number of filtered items to include in comments-audit output (alias: --limit).",
|
|
2096
|
+
examples: [10, "25"],
|
|
2097
|
+
},
|
|
2098
|
+
fullHistory: {
|
|
2099
|
+
description: "When true for comments-audit, export full per-item comment history rows; cannot be combined with latest.",
|
|
2100
|
+
},
|
|
2101
|
+
latest: {
|
|
2102
|
+
description: "Number of most recent comments to include per item in comments-audit output (use 0 for summary-only item rows).",
|
|
2103
|
+
examples: [0, 1, "3"],
|
|
2104
|
+
},
|
|
2105
|
+
validateClose: {
|
|
2106
|
+
description: 'Close-time metadata validation mode ("off", "warn", or "strict").',
|
|
2107
|
+
examples: ["off", "warn", "strict"],
|
|
2108
|
+
},
|
|
2109
|
+
checkMetadata: {
|
|
2110
|
+
description: "Run metadata completeness checks.",
|
|
2111
|
+
},
|
|
2112
|
+
metadataProfile: {
|
|
2113
|
+
description: "Select metadata validation profile for --check-metadata.",
|
|
2114
|
+
examples: ["core", "strict", "custom"],
|
|
2115
|
+
},
|
|
2116
|
+
checkResolution: {
|
|
2117
|
+
description: "Run closed-item resolution metadata checks.",
|
|
2118
|
+
},
|
|
2119
|
+
checkLifecycle: {
|
|
2120
|
+
description: "Run active-item lifecycle governance drift checks.",
|
|
2121
|
+
},
|
|
2122
|
+
checkStaleBlockers: {
|
|
2123
|
+
description: "Include stale blocker-pattern diagnostics in lifecycle checks.",
|
|
2124
|
+
},
|
|
2125
|
+
dependencyCycleSeverity: {
|
|
2126
|
+
description: "Set dependency-cycle warning policy for lifecycle checks.",
|
|
2127
|
+
examples: ["off", "warn", "error"],
|
|
2128
|
+
},
|
|
2129
|
+
checkFiles: {
|
|
2130
|
+
description: "Run linked-file and orphaned-file checks.",
|
|
2131
|
+
},
|
|
2132
|
+
strictDirectories: {
|
|
2133
|
+
description: "Treat optional item-type directories as required health failures.",
|
|
2134
|
+
},
|
|
2135
|
+
checkOnly: {
|
|
2136
|
+
description: "For health action, run read-only diagnostics without refreshing vectors.",
|
|
2137
|
+
},
|
|
2138
|
+
checkTelemetry: {
|
|
2139
|
+
description: "For health action, probe telemetry endpoint health and include network diagnostics.",
|
|
2140
|
+
},
|
|
2141
|
+
noRefresh: {
|
|
2142
|
+
description: "For health action, skip vector refresh while still running checks.",
|
|
2143
|
+
},
|
|
2144
|
+
refreshVectors: {
|
|
2145
|
+
description: "For health action, explicitly refresh stale vectors.",
|
|
2146
|
+
},
|
|
2147
|
+
verboseStaleItems: {
|
|
2148
|
+
description: "For health action, include full stale-item arrays in vectorization details.",
|
|
2149
|
+
},
|
|
2150
|
+
scanMode: {
|
|
2151
|
+
description: "Select file candidate scan mode for --check-files.",
|
|
2152
|
+
examples: ["default", "tracked-all", "tracked-all-strict"],
|
|
2153
|
+
},
|
|
2154
|
+
includePmInternals: {
|
|
2155
|
+
description: "Include PM storage internals in tracked-all candidate scans.",
|
|
2156
|
+
},
|
|
2157
|
+
verboseFileLists: {
|
|
2158
|
+
description: "For validate action, include full file-path lists for --check-files details.",
|
|
2159
|
+
},
|
|
2160
|
+
strictExit: {
|
|
2161
|
+
description: "Return non-zero exit when health/validate/extension-doctor warnings are present (ok=false).",
|
|
2162
|
+
},
|
|
2163
|
+
failOnWarn: {
|
|
2164
|
+
description: "Alias for strictExit in health/validate/extension-doctor action payloads.",
|
|
2165
|
+
},
|
|
2166
|
+
checkHistoryDrift: {
|
|
2167
|
+
description: "Run item/history hash drift checks.",
|
|
2168
|
+
},
|
|
2169
|
+
checkCommandReferences: {
|
|
2170
|
+
description: "Run linked-command PM-ID reference checks.",
|
|
2171
|
+
},
|
|
2172
|
+
allowAuditNote: {
|
|
2173
|
+
description: "For notes action, allow non-owner append-only note audits without requiring --force.",
|
|
2174
|
+
},
|
|
2175
|
+
allowAuditLearning: {
|
|
2176
|
+
description: "For learnings action, allow non-owner append-only learning audits without requiring --force.",
|
|
2177
|
+
},
|
|
2178
|
+
allowAuditComment: {
|
|
2179
|
+
description: "For comments action, allow non-owner append-only comment audits without requiring --force.",
|
|
2180
|
+
},
|
|
2181
|
+
allowAuditUpdate: {
|
|
2182
|
+
description: "Allow non-owner metadata-only update audits without requiring --force.",
|
|
2183
|
+
},
|
|
2184
|
+
allowAuditDepUpdate: {
|
|
2185
|
+
description: "Allow non-owner append-only dependency update audits without requiring --force.",
|
|
2186
|
+
},
|
|
2187
|
+
allowAuditRelease: {
|
|
2188
|
+
description: "Allow non-owner release handoffs that clear assignee metadata without requiring --force.",
|
|
2189
|
+
},
|
|
2190
|
+
preserveSourceIds: {
|
|
2191
|
+
description: "Preserve explicit source IDs during Beads imports instead of normalizing to tracker prefix.",
|
|
2192
|
+
examples: [true],
|
|
2193
|
+
},
|
|
2194
|
+
appendStable: {
|
|
2195
|
+
description: "When true for files action, preserve existing linked-file order and append new links without full-array resorting.",
|
|
2196
|
+
},
|
|
2197
|
+
discover: {
|
|
2198
|
+
description: "When true for files action, use `pm files discover <id>` to scan item text for referenced file paths.",
|
|
2199
|
+
},
|
|
2200
|
+
apply: {
|
|
2201
|
+
description: "When true for files discovery, add missing discovered file links instead of returning a dry-run preview.",
|
|
2202
|
+
},
|
|
2203
|
+
discoveryNote: {
|
|
2204
|
+
description: "Note attached to file links added by files discovery.",
|
|
2205
|
+
examples: ["discovered from item text"],
|
|
2206
|
+
},
|
|
2207
|
+
stream: {
|
|
2208
|
+
description: "Stream selector: test-runs logs accepts stdout|stderr|both; activity accepts boolean/rows|ndjson|jsonl for line-delimited output.",
|
|
2209
|
+
examples: ["stderr", "stdout", "both", "rows", "ndjson", "jsonl", true],
|
|
2210
|
+
},
|
|
2211
|
+
tail: {
|
|
2212
|
+
description: "Number of lines to tail for background run logs.",
|
|
2213
|
+
examples: [100],
|
|
2214
|
+
},
|
|
2215
|
+
query: {
|
|
2216
|
+
description: "Search query text for search action.",
|
|
2217
|
+
},
|
|
2218
|
+
keywords: {
|
|
2219
|
+
description: "Alias for query in search action payloads.",
|
|
2220
|
+
},
|
|
2221
|
+
includeLinked: {
|
|
2222
|
+
description: "Include readable linked docs/files/tests content in keyword and hybrid lexical scoring.",
|
|
2223
|
+
},
|
|
2224
|
+
titleExact: {
|
|
2225
|
+
description: "For search action, require exact normalized title match for the full query string.",
|
|
2226
|
+
},
|
|
2227
|
+
phraseExact: {
|
|
2228
|
+
description: "For search action, require exact normalized query phrase match in item text fields.",
|
|
2229
|
+
},
|
|
2230
|
+
includeBody: {
|
|
2231
|
+
description: "When true for list-family actions, include item body text in projected rows.",
|
|
2232
|
+
},
|
|
2233
|
+
compact: {
|
|
2234
|
+
description: "Render compact projection output for search and list-family actions.",
|
|
2235
|
+
},
|
|
2236
|
+
full: {
|
|
2237
|
+
description: "Render full nested search hit payload output.",
|
|
2238
|
+
},
|
|
2239
|
+
fields: {
|
|
2240
|
+
description: "Comma-separated projection fields for search or list-family outputs.",
|
|
2241
|
+
examples: ["id,title,score,matched_fields", "id,title,parent,type"],
|
|
2242
|
+
},
|
|
2243
|
+
groupBy: {
|
|
2244
|
+
description: "Comma-separated aggregate grouping fields (supported: parent,type,priority,status,assignee,tags,sprint,release).",
|
|
2245
|
+
examples: ["parent,type", "type,status", "priority,assignee", "tags", "sprint,release"],
|
|
2246
|
+
},
|
|
2247
|
+
count: {
|
|
2248
|
+
description: "Enable grouped count output for aggregate action.",
|
|
2249
|
+
},
|
|
2250
|
+
includeUnparented: {
|
|
2251
|
+
description: "Include unparented rows when aggregate grouping includes parent.",
|
|
2252
|
+
},
|
|
2253
|
+
maxDepth: {
|
|
2254
|
+
description: "Maximum dependency traversal depth for deps action (0 keeps only the root node).",
|
|
2255
|
+
examples: [0, 1, "2"],
|
|
2256
|
+
},
|
|
2257
|
+
collapse: {
|
|
2258
|
+
description: 'Dependency tree collapse mode for deps action ("none" or "repeated").',
|
|
2259
|
+
examples: ["none", "repeated"],
|
|
2260
|
+
},
|
|
2261
|
+
summary: {
|
|
2262
|
+
description: "When true for deps action, return counts only without full tree/graph payloads.",
|
|
2263
|
+
},
|
|
2264
|
+
threshold: {
|
|
2265
|
+
description: "Dedupe-audit fuzzy title similarity threshold between 0 and 1.",
|
|
2266
|
+
examples: [0.5, "0.75"],
|
|
2267
|
+
},
|
|
2268
|
+
shell: {
|
|
2269
|
+
description: "Shell target for completion generation.",
|
|
2270
|
+
examples: ["bash"],
|
|
2271
|
+
},
|
|
2272
|
+
eagerTags: {
|
|
2273
|
+
description: "When true for completion, eagerly embed current tracker tags into generated scripts (legacy mode).",
|
|
2274
|
+
},
|
|
2275
|
+
contractAction: {
|
|
2276
|
+
description: "Filter contracts schema to one tool action.",
|
|
2277
|
+
examples: ["create", "update"],
|
|
2278
|
+
},
|
|
2279
|
+
command: {
|
|
2280
|
+
description: "Scope contracts output to one CLI command name; action/schema surfaces narrow by default.",
|
|
2281
|
+
examples: ["create", "search", "list"],
|
|
2282
|
+
},
|
|
2283
|
+
schemaOnly: {
|
|
2284
|
+
description: "When true, contracts action returns schema-focused payloads (mutually exclusive with flagsOnly/availabilityOnly).",
|
|
2285
|
+
},
|
|
2286
|
+
flagsOnly: {
|
|
2287
|
+
description: "When true, contracts action returns only command flag surface payloads (mutually exclusive projection mode).",
|
|
2288
|
+
},
|
|
2289
|
+
availabilityOnly: {
|
|
2290
|
+
description: "When true, contracts action returns only action availability payloads (mutually exclusive projection mode).",
|
|
2291
|
+
},
|
|
2292
|
+
runtimeOnly: {
|
|
2293
|
+
description: "When true, contracts action only includes actions invocable in the current runtime.",
|
|
2294
|
+
},
|
|
2295
|
+
activeOnly: {
|
|
2296
|
+
description: "Alias for runtimeOnly in contracts action payloads.",
|
|
2297
|
+
},
|
|
2298
|
+
};
|
|
2299
|
+
function fallbackToolParameterDescription(key) {
|
|
2300
|
+
return key
|
|
2301
|
+
.replace(/([a-z0-9])([A-Z])/g, "$1 $2")
|
|
2302
|
+
.replace(/[_-]/g, " ")
|
|
2303
|
+
.trim()
|
|
2304
|
+
.replace(/^./, (value) => value.toUpperCase())
|
|
2305
|
+
.concat(".");
|
|
2306
|
+
}
|
|
2307
|
+
function decorateToolParameterDefinition(key, definition) {
|
|
2308
|
+
const baseDefinition = typeof definition === "object" && definition !== null ? { ...definition } : {};
|
|
2309
|
+
const metadata = PM_TOOL_PARAMETER_METADATA[key];
|
|
2310
|
+
return {
|
|
2311
|
+
...baseDefinition,
|
|
2312
|
+
description: metadata?.description ?? fallbackToolParameterDescription(key),
|
|
2313
|
+
...(metadata?.examples ? { examples: metadata.examples } : {}),
|
|
2314
|
+
};
|
|
2315
|
+
}
|
|
2316
|
+
function buildActionScopedToolSchema(action) {
|
|
2317
|
+
const contract = PM_TOOL_ACTION_SCHEMA_CONTRACTS[action];
|
|
2318
|
+
const required = toSchemaKeyList(contract.required ?? []);
|
|
2319
|
+
const optional = toSchemaKeyList(contract.optional ?? []);
|
|
2320
|
+
const allowedKeys = toSchemaKeyList([...PM_TOOL_GLOBAL_PARAMETER_KEYS, ...required, ...optional]);
|
|
2321
|
+
const properties = {
|
|
2322
|
+
action: {
|
|
2323
|
+
const: action,
|
|
2324
|
+
description: PM_TOOL_PARAMETER_METADATA.action?.description ?? "Tool action to execute.",
|
|
2325
|
+
},
|
|
2326
|
+
};
|
|
2327
|
+
for (const key of allowedKeys) {
|
|
2328
|
+
if (key === "action") {
|
|
2329
|
+
continue;
|
|
2330
|
+
}
|
|
2331
|
+
const definition = PM_TOOL_PARAMETER_PROPERTIES[key];
|
|
2332
|
+
if (definition) {
|
|
2333
|
+
properties[key] = decorateToolParameterDefinition(key, definition);
|
|
2334
|
+
}
|
|
2335
|
+
}
|
|
2336
|
+
const schema = {
|
|
2337
|
+
type: "object",
|
|
2338
|
+
additionalProperties: false,
|
|
2339
|
+
required: ["action", ...required],
|
|
2340
|
+
title: `pm action "${action}" parameters`,
|
|
2341
|
+
properties,
|
|
2342
|
+
};
|
|
2343
|
+
if (contract.anyOfRequired && contract.anyOfRequired.length > 0) {
|
|
2344
|
+
schema.anyOf = contract.anyOfRequired.map((requiredFields) => ({
|
|
2345
|
+
required: [...requiredFields],
|
|
2346
|
+
}));
|
|
2347
|
+
}
|
|
2348
|
+
return schema;
|
|
2349
|
+
}
|
|
2350
|
+
export const PM_TOOL_PARAMETERS_SCHEMA = {
|
|
2351
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
2352
|
+
$id: "https://unbrained.dev/schemas/pm-cli/tool-parameters-v4.schema.json",
|
|
2353
|
+
title: "pm-cli Pi wrapper parameters (action-scoped strict schema)",
|
|
2354
|
+
"x-schema-version": "4.0.0",
|
|
2355
|
+
oneOf: PM_TOOL_ACTIONS.map((action) => buildActionScopedToolSchema(action)),
|
|
2356
|
+
};
|
|
2357
|
+
//# sourceMappingURL=cli-contracts.js.map
|