@unbrained/pm-cli 2026.8.11 → 2026.8.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +52 -21
  3. package/dist/cli/commander-usage.js +37 -11
  4. package/dist/cli/error-guidance.d.ts +2 -0
  5. package/dist/cli/error-guidance.js +80 -13
  6. package/dist/cli/main.js +34 -19
  7. package/dist/cli/register-annotations.js +56 -3
  8. package/dist/cli/register-list-query.js +10 -7
  9. package/dist/cli/register-operations.js +16 -6
  10. package/dist/cli-bundle/bundle-manifest.json +157 -157
  11. package/dist/cli-bundle/chunks/{chunk-2OOU2AFH.js → chunk-3PS7X6GS.js} +2 -2
  12. package/dist/cli-bundle/chunks/chunk-7KL6KMWF.js +13 -0
  13. package/dist/cli-bundle/chunks/{chunk-WMEZHCFI.js → chunk-BM5YJ2UW.js} +51 -43
  14. package/dist/cli-bundle/chunks/chunk-D55A5AEN.js +33 -0
  15. package/dist/cli-bundle/chunks/chunk-KIKDWECH.js +196 -0
  16. package/dist/cli-bundle/chunks/{chunk-ZU34C3LH.js → chunk-KOQMGCTA.js} +2 -2
  17. package/dist/cli-bundle/chunks/chunk-R76342NV.js +2 -0
  18. package/dist/cli-bundle/chunks/chunk-RBTK5EZV.js +5 -0
  19. package/dist/cli-bundle/chunks/{chunk-IUNRVDAI.js → chunk-VLUQOIDT.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-A2SJGHSI.js → chunk-WLAHPSOX.js} +2 -2
  21. package/dist/cli-bundle/chunks/register-list-query-XPCJRUUD.js +10 -0
  22. package/dist/cli-bundle/chunks/register-mutation-4RJCBKRS.js +20 -0
  23. package/dist/cli-bundle/chunks/register-operations-2OGISOVR.js +2 -0
  24. package/dist/cli-bundle/chunks/{register-setup-NOCOOWQY.js → register-setup-LLHAKP2V.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/chunk-2DALMVF7.js +5 -0
  26. package/dist/cli-bundle/focused-chunks/chunk-5OQIMELN.js +155 -0
  27. package/dist/cli-bundle/focused-chunks/chunk-5TAGTDRE.js +2 -0
  28. package/dist/cli-bundle/focused-chunks/{chunk-FPSYO5ZG.js → chunk-ECADZMVC.js} +11 -11
  29. package/dist/cli-bundle/focused-chunks/chunk-EJGXRA6B.js +2 -0
  30. package/dist/cli-bundle/focused-chunks/chunk-FFGSZCPK.js +16 -0
  31. package/dist/cli-bundle/focused-chunks/{chunk-BKPIY34S.js → chunk-GQW4BPUT.js} +2 -2
  32. package/dist/cli-bundle/focused-chunks/chunk-ISKOBJCM.js +2 -0
  33. package/dist/cli-bundle/focused-chunks/{chunk-UDAZWT25.js → chunk-JAFRIWVF.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/{chunk-2DL3MRTD.js → chunk-KHM2CS2C.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/{chunk-J5EKAIVD.js → chunk-KPSXVBDV.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/{chunk-23FTGO3W.js → chunk-KTLOKKCQ.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/chunk-LGYK3NUF.js +8 -0
  38. package/dist/cli-bundle/focused-chunks/{chunk-KDH5OX3D.js → chunk-NBLUKITQ.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/{chunk-55BIB6DV.js → chunk-NYLOUPOB.js} +2 -2
  40. package/dist/cli-bundle/focused-chunks/{chunk-DPO7TEFX.js → chunk-Q4T463SD.js} +28 -28
  41. package/dist/cli-bundle/focused-chunks/chunk-QVZVY53N.js +2 -0
  42. package/dist/cli-bundle/focused-chunks/{chunk-TL5M2PAY.js → chunk-RWPAWUOT.js} +2 -2
  43. package/dist/cli-bundle/focused-chunks/chunk-UTEWXDEQ.js +17 -0
  44. package/dist/cli-bundle/focused-chunks/{chunk-4H5IA6AV.js → chunk-YIAXMC3T.js} +2 -2
  45. package/dist/cli-bundle/focused-chunks/chunk-ZMGWAYH7.js +2 -0
  46. package/dist/cli-bundle/main.js +13 -13
  47. package/dist/cli-bundle/sdk-authoring.js +1 -1
  48. package/dist/cli-bundle/sdk-contracts.js +1 -1
  49. package/dist/cli-bundle/sdk-core.js +40 -40
  50. package/dist/cli-bundle/sdk-governance.js +1 -1
  51. package/dist/cli-bundle/sdk-graph.js +1 -1
  52. package/dist/cli-bundle/sdk-merge.js +1 -1
  53. package/dist/cli-bundle/sdk-query.js +1 -1
  54. package/dist/cli-bundle/sdk-runtime.js +1 -1
  55. package/dist/cli-bundle/sdk-testing.js +1 -1
  56. package/dist/cli-bundle/sdk.js +2 -2
  57. package/dist/core/extensions/reserved-host-flags.js +3 -2
  58. package/dist/core/history/drift-scan.js +13 -8
  59. package/dist/core/history/history.d.ts +8 -0
  60. package/dist/core/history/history.js +57 -7
  61. package/dist/core/history/replay.d.ts +9 -1
  62. package/dist/core/history/replay.js +48 -13
  63. package/dist/core/output/output.d.ts +2 -0
  64. package/dist/core/output/output.js +46 -14
  65. package/dist/core/shared/command-types.d.ts +2 -0
  66. package/dist/core/shared/command-types.js +2 -2
  67. package/dist/core/shared/errors.d.ts +5 -0
  68. package/dist/core/shared/errors.js +2 -2
  69. package/dist/core/store/item-metadata-cache.d.ts +1 -1
  70. package/dist/core/store/item-metadata-cache.js +14 -7
  71. package/dist/sdk/cli-bootstrap.d.ts +2 -0
  72. package/dist/sdk/cli-bootstrap.js +6 -2
  73. package/dist/sdk/cli-contracts/completeness.js +3 -2
  74. package/dist/sdk/cli-contracts/flag-contracts.js +5 -2
  75. package/dist/sdk/cli-contracts/registration-helpers.d.ts +20 -3
  76. package/dist/sdk/cli-contracts/registration-helpers.js +18 -12
  77. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +8 -6
  78. package/dist/sdk/cli-contracts/schemas/assurance-definition.js +4 -3
  79. package/dist/sdk/cli-contracts/tool-option-contracts.js +3 -2
  80. package/dist/sdk/cli-contracts/tool-parameter-tables.js +22 -2
  81. package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
  82. package/dist/sdk/cli-contracts/tool-schema.js +7 -4
  83. package/dist/sdk/cli-program.js +3 -2
  84. package/dist/sdk/completion.js +16 -7
  85. package/dist/sdk/context-intent-contracts.js +45 -4
  86. package/dist/sdk/core.d.ts +1 -0
  87. package/dist/sdk/core.js +3 -2
  88. package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +8 -0
  89. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1585 -0
  90. package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +8 -0
  91. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1608 -0
  92. package/dist/sdk/generated-error-code-catalog.js +6 -3140
  93. package/dist/sdk/governance/assurance-action.js +9 -7
  94. package/dist/sdk/governance/assurance-mutation-error.d.ts +7 -0
  95. package/dist/sdk/governance/assurance-mutation-error.js +35 -0
  96. package/dist/sdk/governance/assurance-runtime.js +11 -8
  97. package/dist/sdk/governance/assurance.d.ts +12 -6
  98. package/dist/sdk/governance/assurance.js +181 -66
  99. package/dist/sdk/governance/health.d.ts +3 -1
  100. package/dist/sdk/governance/health.js +21 -4
  101. package/dist/sdk/governance/validate-item-reader.js +3 -3
  102. package/dist/sdk/governance/validate.d.ts +2 -0
  103. package/dist/sdk/governance/validate.js +13 -3
  104. package/dist/sdk/graph/durable-cache.d.ts +1 -1
  105. package/dist/sdk/graph/durable-cache.js +98 -29
  106. package/dist/sdk/graph/governance.d.ts +14 -0
  107. package/dist/sdk/graph/governance.js +34 -9
  108. package/dist/sdk/index.d.ts +1 -1
  109. package/dist/sdk/index.js +3 -3
  110. package/dist/sdk/lifecycle/claim.js +10 -3
  111. package/dist/sdk/merge/driver.d.ts +2 -2
  112. package/dist/sdk/merge/driver.js +3 -3
  113. package/dist/sdk/merge/receipts.d.ts +6 -4
  114. package/dist/sdk/merge/receipts.js +7 -5
  115. package/dist/sdk/merge/three-way.d.ts +2 -2
  116. package/dist/sdk/merge/three-way.js +3 -3
  117. package/dist/sdk/output-projection.d.ts +9 -1
  118. package/dist/sdk/output-projection.js +45 -9
  119. package/dist/sdk/query/activity.d.ts +49 -2
  120. package/dist/sdk/query/activity.js +183 -37
  121. package/dist/sdk/query/get.js +19 -2
  122. package/dist/sdk/read-output-contracts.d.ts +5 -1
  123. package/dist/sdk/read-output-contracts.js +17 -2
  124. package/dist/sdk/read-output-session.d.ts +2 -0
  125. package/dist/sdk/read-output-session.js +12 -5
  126. package/dist/sdk/runtime-primitives.d.ts +3 -3
  127. package/dist/sdk/runtime-primitives.js +5 -5
  128. package/dist/sdk/runtime-stats-options.js +3 -2
  129. package/dist/sdk/runtime.js +5 -9
  130. package/dist/sdk/stats.d.ts +36 -3
  131. package/dist/sdk/stats.js +55 -15
  132. package/dist/sdk/test/execution.d.ts +4 -0
  133. package/dist/sdk/test/execution.js +86 -21
  134. package/dist/types.d.ts +2 -0
  135. package/dist/types.js +2 -2
  136. package/docs/ASSURANCE.md +17 -12
  137. package/docs/COMMANDS.md +29 -8
  138. package/docs/CONFIGURATION.md +7 -0
  139. package/docs/DEPENDENCY_KIND_CONTRACT.md +10 -8
  140. package/docs/MERGE_SAFETY.md +3 -1
  141. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +26 -13
  142. package/docs/README.md +2 -0
  143. package/docs/READ_OUTPUT_CONTRACTS.md +17 -2
  144. package/docs/SDK_AGENT_SESSION_CONTEXT.md +12 -1
  145. package/docs/SDK_CONTEXT_EVIDENCE_CONTRACTS.md +53 -0
  146. package/docs/SDK_CONTEXT_INTEGRITY.md +28 -1
  147. package/docs/TRUSTWORTHY_CONTEXT_EVIDENCE.md +106 -0
  148. package/docs/performance/sdk-entrypoint-import-costs.md +6 -2
  149. package/marketplace.json +2 -2
  150. package/package.json +5 -5
  151. package/packages/pm-beads/package.json +1 -1
  152. package/packages/pm-calendar/package.json +1 -1
  153. package/packages/pm-command-kit/package.json +1 -1
  154. package/packages/pm-digital-twin/package.json +1 -1
  155. package/packages/pm-governance-audit/package.json +1 -1
  156. package/packages/pm-guide-shell/package.json +1 -1
  157. package/packages/pm-kanban/package.json +1 -1
  158. package/packages/pm-lifecycle-hooks/package.json +1 -1
  159. package/packages/pm-linked-test-adapters/package.json +1 -1
  160. package/packages/pm-search-advanced/package.json +1 -1
  161. package/packages/pm-templates/package.json +1 -1
  162. package/packages/pm-todos/package.json +1 -1
  163. package/packages/pm-vcs/package.json +1 -1
  164. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  165. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  166. package/sdk/public-surface.json +203 -52
  167. package/dist/cli-bundle/chunks/chunk-2RA2YTHJ.js +0 -33
  168. package/dist/cli-bundle/chunks/chunk-DSKYD4LG.js +0 -13
  169. package/dist/cli-bundle/chunks/chunk-HC3GM6YY.js +0 -194
  170. package/dist/cli-bundle/chunks/chunk-W7CPZGSB.js +0 -2
  171. package/dist/cli-bundle/chunks/chunk-ZXOC6HG5.js +0 -5
  172. package/dist/cli-bundle/chunks/register-list-query-HAUXVUPY.js +0 -10
  173. package/dist/cli-bundle/chunks/register-mutation-7Y5U7ABT.js +0 -20
  174. package/dist/cli-bundle/chunks/register-operations-EQX3DLAZ.js +0 -2
  175. package/dist/cli-bundle/focused-chunks/chunk-3AYKXMYX.js +0 -2
  176. package/dist/cli-bundle/focused-chunks/chunk-4AHEC74N.js +0 -2
  177. package/dist/cli-bundle/focused-chunks/chunk-4SV3ZKG3.js +0 -16
  178. package/dist/cli-bundle/focused-chunks/chunk-6JW6Z2P5.js +0 -8
  179. package/dist/cli-bundle/focused-chunks/chunk-D4PIWE6D.js +0 -2
  180. package/dist/cli-bundle/focused-chunks/chunk-E3KCL7AY.js +0 -5
  181. package/dist/cli-bundle/focused-chunks/chunk-ERAAFLPS.js +0 -153
  182. package/dist/cli-bundle/focused-chunks/chunk-F6E4JZKG.js +0 -2
  183. package/dist/cli-bundle/focused-chunks/chunk-OJ3LVVIS.js +0 -2
  184. package/dist/cli-bundle/focused-chunks/chunk-VABB4L5Y.js +0 -17
@@ -70,22 +70,39 @@ export declare function printActivityJsonStream(result: ActivityCommandResult, o
70
70
  export declare function normalizeSearchOptions(options: Record<string, unknown>): Record<string, unknown>;
71
71
  /** Implements normalize search keywords input for the public runtime surface of this module. */
72
72
  export declare function normalizeSearchKeywordsInput(keywords: string[]): string;
73
- /** Implements normalize activity options for the public runtime surface of this module. */
74
- export declare function normalizeActivityOptions(options: Record<string, unknown>): {
73
+ /** Canonical Commander-normalized activity query options. */
74
+ export interface NormalizedActivityOptions {
75
+ /** Exact item identifier filter. */
75
76
  id?: string;
77
+ /** Exact immutable history operation filter. */
76
78
  op?: string;
79
+ /** Exact recorded author filter. */
77
80
  author?: string;
81
+ /** Inclusive activity window lower bound. */
78
82
  from?: string;
83
+ /** Inclusive activity window upper bound. */
79
84
  to?: string;
85
+ /** Maximum projected row count encoded as Commander text. */
80
86
  limit?: string;
87
+ /** Select the compact raw-event projection. */
81
88
  compact?: boolean;
89
+ /** Select a raw event projection instead of the item digest. */
90
+ raw?: boolean;
91
+ /** Disable the default projection row bound. */
82
92
  unbounded?: boolean;
93
+ /** Select privacy-safe provenance event rows. */
83
94
  provenance?: boolean;
95
+ /** Include constant-size provenance completeness metrics. */
84
96
  provenanceSummary?: boolean;
97
+ /** Canonical harness filters supplied by Commander. */
85
98
  harness?: string[];
99
+ /** Privacy-safe agent invocation fingerprint filters. */
86
100
  agentInstance?: string[];
101
+ /** Exact provenance dimension predicates. */
87
102
  provenanceFilter?: string[];
88
- };
103
+ }
104
+ /** Implements normalize activity options for the public runtime surface of this module. */
105
+ export declare function normalizeActivityOptions(options: Record<string, unknown>): NormalizedActivityOptions;
89
106
  /** Implements resolve activity stream mode for the public runtime surface of this module. */
90
107
  export declare function resolveActivityStreamMode(raw: unknown): boolean;
91
108
  /** Implements normalize context options for the public runtime surface of this module. */
@@ -4,7 +4,7 @@
4
4
  * Provides CLI runtime support for Registration Helpers.
5
5
  */
6
6
 
7
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5f92dd0d-4eb1-5a7b-8891-931dd15deb81")}catch(e){}}();
7
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="daefefd1-3b0b-513d-8b8c-ab17f90b995a")}catch(e){}}();
8
8
  import { Option } from "commander";
9
9
  import { pathExists, refreshSearchArtifactsForMutation, shouldRunSearchRefreshInForeground, EXIT_CODE, PmCliError, printError, printResult, writeStdout, getSettingsPath, resolvePmRoot, readSettings, runActiveServiceOverride, setActiveCommandResult, } from "../runtime-primitives.js";
10
10
  import { ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS, CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS, CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, CREATE_COMMANDER_STRING_OPTION_CONTRACTS, LIST_COMMANDER_STRING_OPTION_CONTRACTS, NEXT_COMMANDER_STRING_OPTION_CONTRACTS, SEARCH_COMMANDER_STRING_OPTION_CONTRACTS, UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, UPDATE_COMMANDER_STRING_OPTION_CONTRACTS, readFirstValueFromCommanderOptions, readFirstStringFromCommanderOptions, readStringArrayFromCommanderOptions, } from "../cli-contracts.js";
@@ -100,7 +100,7 @@ export function getGlobalOptions(command) {
100
100
  : typeof reader.opts === "function"
101
101
  ? reader.opts()
102
102
  : {};
103
- return {
103
+ const normalized = {
104
104
  json: opts.json === true ? true : undefined,
105
105
  quiet: Boolean(opts.quiet),
106
106
  noChangedFields: opts.changedFields === false,
@@ -112,20 +112,19 @@ export function getGlobalOptions(command) {
112
112
  outputLimit: readStringCommandOption(opts, "outputLimit"),
113
113
  outputBudget: readStringCommandOption(opts, "outputBudget"),
114
114
  outputSession: readStringCommandOption(opts, "outputSession"),
115
+ ...(opts.outputRowContract === true ? { outputRowContract: true } : {}),
115
116
  ...(opts.outputFormat === "toon" || opts.outputFormat === "json"
116
117
  ? { outputFormat: opts.outputFormat }
117
118
  : {}),
118
- path: typeof opts.pmPath === "string"
119
- ? opts.pmPath
120
- : typeof opts.path === "string"
121
- ? opts.path
122
- : undefined,
119
+ path: readStringCommandOption(opts, "pmPath") ??
120
+ readStringCommandOption(opts, "path"),
123
121
  noExtensions: opts.extensions === false,
124
122
  noPager: Boolean(opts.noPager),
125
123
  profile: Boolean(opts.profile),
126
124
  ...(commandPath.length > 0 ? { command: commandPath } : {}),
127
125
  ...(typeof opts.author === "string" ? { author: opts.author } : {}),
128
126
  };
127
+ return normalized;
129
128
  }
130
129
  /** Implements get command path for the public runtime surface of this module. */
131
130
  export function getCommandPath(command) {
@@ -239,6 +238,7 @@ export function buildBackgroundTestCommandArgs(id, options) {
239
238
  pushRepeatableValueFlag(args, "--add", options.add);
240
239
  pushRepeatableValueFlag(args, "--add-json", options.addJson);
241
240
  pushRepeatableValueFlag(args, "--remove", options.remove);
241
+ pushRepeatableValueFlag(args, "--remove-index", options.removeIndex);
242
242
  pushOptionalValueFlag(args, "--match", options.match);
243
243
  pushOptionalValueFlag(args, "--only-index", options.onlyIndex);
244
244
  pushOptionalBooleanFlag(args, "--only-last", options.onlyLast);
@@ -792,7 +792,7 @@ export function normalizeSearchKeywordsInput(keywords) {
792
792
  /** Implements normalize activity options for the public runtime surface of this module. */
793
793
  export function normalizeActivityOptions(options) {
794
794
  const readActivityString = (target) => readFirstStringFromCommanderOptions(options, resolveCommanderContract(ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS, target));
795
- return {
795
+ const normalized = {
796
796
  id: readActivityString("id"),
797
797
  op: readActivityString("op"),
798
798
  author: readActivityString("author"),
@@ -801,9 +801,14 @@ export function normalizeActivityOptions(options) {
801
801
  limit: readActivityString("limit"),
802
802
  compact: options.full === true || options.provenance === true
803
803
  ? false
804
- : options.compact === false
805
- ? false
806
- : true,
804
+ : options.compact === true || options.raw === true
805
+ ? true
806
+ : undefined,
807
+ ...(options.raw === true ||
808
+ options.compact === true ||
809
+ options.full === true
810
+ ? { raw: true }
811
+ : {}),
807
812
  unbounded: optionTrue(options, "unbounded"),
808
813
  provenance: optionTrue(options, "provenance"),
809
814
  provenanceSummary: optionTrue(options, "provenanceSummary"),
@@ -817,6 +822,7 @@ export function normalizeActivityOptions(options) {
817
822
  ? options.provenanceFilter
818
823
  : undefined,
819
824
  };
825
+ return Object.fromEntries(Object.entries(normalized).filter(([, value]) => value !== undefined));
820
826
  }
821
827
  const ACTIVITY_STREAM_ENABLED_VALUES = new Set([
822
828
  "",
@@ -978,4 +984,4 @@ export const _testOnly = {
978
984
  collectMutationItemIds,
979
985
  };
980
986
  //# sourceMappingURL=registration-helpers.js.map
981
- //# debugId=5f92dd0d-4eb1-5a7b-8891-931dd15deb81
987
+ //# debugId=daefefd1-3b0b-513d-8b8c-ab17f90b995a
@@ -73,6 +73,9 @@ export declare const ASSURANCE_DEFINITION_SCHEMA: {
73
73
  equals: {
74
74
  type: string[];
75
75
  };
76
+ state: {
77
+ enum: string[];
78
+ };
76
79
  dependency_kind?: undefined;
77
80
  operation?: undefined;
78
81
  parameters?: undefined;
@@ -81,7 +84,6 @@ export declare const ASSURANCE_DEFINITION_SCHEMA: {
81
84
  harness?: undefined;
82
85
  model?: undefined;
83
86
  link?: undefined;
84
- state?: undefined;
85
87
  provider?: undefined;
86
88
  key?: undefined;
87
89
  expression?: undefined;
@@ -103,6 +105,7 @@ export declare const ASSURANCE_DEFINITION_SCHEMA: {
103
105
  tags?: undefined;
104
106
  field?: undefined;
105
107
  equals?: undefined;
108
+ state?: undefined;
106
109
  operation?: undefined;
107
110
  parameters?: undefined;
108
111
  op?: undefined;
@@ -110,7 +113,6 @@ export declare const ASSURANCE_DEFINITION_SCHEMA: {
110
113
  harness?: undefined;
111
114
  model?: undefined;
112
115
  link?: undefined;
113
- state?: undefined;
114
116
  provider?: undefined;
115
117
  key?: undefined;
116
118
  expression?: undefined;
@@ -138,13 +140,13 @@ export declare const ASSURANCE_DEFINITION_SCHEMA: {
138
140
  types?: undefined;
139
141
  tags?: undefined;
140
142
  equals?: undefined;
143
+ state?: undefined;
141
144
  dependency_kind?: undefined;
142
145
  op?: undefined;
143
146
  author?: undefined;
144
147
  harness?: undefined;
145
148
  model?: undefined;
146
149
  link?: undefined;
147
- state?: undefined;
148
150
  provider?: undefined;
149
151
  key?: undefined;
150
152
  expression?: undefined;
@@ -176,11 +178,11 @@ export declare const ASSURANCE_DEFINITION_SCHEMA: {
176
178
  tags?: undefined;
177
179
  field?: undefined;
178
180
  equals?: undefined;
181
+ state?: undefined;
179
182
  dependency_kind?: undefined;
180
183
  operation?: undefined;
181
184
  parameters?: undefined;
182
185
  link?: undefined;
183
- state?: undefined;
184
186
  provider?: undefined;
185
187
  key?: undefined;
186
188
  expression?: undefined;
@@ -241,6 +243,7 @@ export declare const ASSURANCE_DEFINITION_SCHEMA: {
241
243
  tags?: undefined;
242
244
  field?: undefined;
243
245
  equals?: undefined;
246
+ state?: undefined;
244
247
  dependency_kind?: undefined;
245
248
  operation?: undefined;
246
249
  op?: undefined;
@@ -248,7 +251,6 @@ export declare const ASSURANCE_DEFINITION_SCHEMA: {
248
251
  harness?: undefined;
249
252
  model?: undefined;
250
253
  link?: undefined;
251
- state?: undefined;
252
254
  expression?: undefined;
253
255
  };
254
256
  allOf?: undefined;
@@ -269,6 +271,7 @@ export declare const ASSURANCE_DEFINITION_SCHEMA: {
269
271
  tags?: undefined;
270
272
  field?: undefined;
271
273
  equals?: undefined;
274
+ state?: undefined;
272
275
  dependency_kind?: undefined;
273
276
  operation?: undefined;
274
277
  parameters?: undefined;
@@ -277,7 +280,6 @@ export declare const ASSURANCE_DEFINITION_SCHEMA: {
277
280
  harness?: undefined;
278
281
  model?: undefined;
279
282
  link?: undefined;
280
- state?: undefined;
281
283
  provider?: undefined;
282
284
  key?: undefined;
283
285
  };
@@ -4,7 +4,7 @@
4
4
  * Defines the strict JSON Schema accepted by assurance definition mutations.
5
5
  */
6
6
 
7
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="13e7d51c-8464-578c-8780-5ddb6e029705")}catch(e){}}();
7
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2d81fb20-890a-553b-b761-d60caf56b502")}catch(e){}}();
8
8
  const ASSURANCE_VALUE_SCHEMA = {
9
9
  oneOf: [{ type: "number" }, { type: "array", items: { type: "string" } }],
10
10
  };
@@ -14,7 +14,7 @@ const ITEMS_FIELD_CONDITIONAL_SCHEMA = {
14
14
  // Keep the JSON Schema keyword visible while avoiding unicorn/no-thenable,
15
15
  // which intentionally rejects object literals with a `then` property.
16
16
  Reflect.set(ITEMS_FIELD_CONDITIONAL_SCHEMA, "then", {
17
- required: ["equals"],
17
+ oneOf: [{ required: ["equals"] }, { required: ["state"] }],
18
18
  });
19
19
  /** JSON Schema for measurement, assertion, and gate assurance definitions. */
20
20
  export const ASSURANCE_DEFINITION_SCHEMA = {
@@ -41,6 +41,7 @@ export const ASSURANCE_DEFINITION_SCHEMA = {
41
41
  tags: { type: "array", items: { type: "string" } },
42
42
  field: { type: "string" },
43
43
  equals: { type: ["string", "number", "boolean", "null"] },
44
+ state: { enum: ["present", "missing"] },
44
45
  },
45
46
  },
46
47
  {
@@ -248,4 +249,4 @@ export const ASSURANCE_DEFINITION_SCHEMA = {
248
249
  ],
249
250
  };
250
251
  //# sourceMappingURL=assurance-definition.js.map
251
- //# debugId=13e7d51c-8464-578c-8780-5ddb6e029705
252
+ //# debugId=2d81fb20-890a-553b-b761-d60caf56b502
@@ -1,6 +1,6 @@
1
1
  /** Returns fresh option contract objects so exported arrays cannot share mutable entries. */
2
2
 
3
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="26955ae3-1aca-503e-9492-46652285d17a")}catch(e){}}();
3
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e2028eff-b29e-5850-87b1-4a3e06f28964")}catch(e){}}();
4
4
  function cloneOptionContracts(contracts) {
5
5
  return contracts.map((contract) => ({ ...contract }));
6
6
  }
@@ -351,6 +351,7 @@ export const TOOL_ACTIVITY_OPTION_CONTRACTS = [
351
351
  { param: "limit", flag: "--limit" },
352
352
  { param: "unbounded", flag: "--unbounded" },
353
353
  { param: "compact", flag: "--compact" },
354
+ { param: "raw", flag: "--raw" },
354
355
  { param: "full", flag: "--full" },
355
356
  { param: "provenance", flag: "--provenance" },
356
357
  { param: "provenanceSummary", flag: "--provenance-summary" },
@@ -423,4 +424,4 @@ export const TOOL_GRAPH_OPTION_CONTRACTS = [
423
424
  { param: "summary", flag: "--summary" },
424
425
  ];
425
426
  //# sourceMappingURL=tool-option-contracts.js.map
426
- //# debugId=26955ae3-1aca-503e-9492-46652285d17a
427
+ //# debugId=e2028eff-b29e-5850-87b1-4a3e06f28964
@@ -4,7 +4,7 @@
4
4
  * Defines SDK command-contract metadata for Tool Parameter Tables.
5
5
  */
6
6
 
7
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="28d82e94-0359-5ae8-87f1-145f412df35e")}catch(e){}}();
7
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="6cdf1fd1-7328-5bae-9238-d317f6efba8a")}catch(e){}}();
8
8
  import { PLAN_HARNESS_VALUES, PLAN_MODE_VALUES, PLAN_STEP_LINK_KIND_VALUES, PLAN_STEP_STATUS_VALUES, } from "../../types/index.js";
9
9
  import { PM_READ_OUTPUT_SESSION_MAX_SEEN_ITEM_IDS } from "../read-output-session.js";
10
10
  import { ASSURANCE_DEFINITION_SCHEMA } from "./schemas/assurance-definition.js";
@@ -55,6 +55,7 @@ export const PM_TOOL_PARAMETER_PROPERTIES = {
55
55
  },
56
56
  ],
57
57
  },
58
+ outputRowContract: { type: "boolean" },
58
59
  path: { type: "string" },
59
60
  pmExecutable: { type: "string" },
60
61
  timeoutMs: { type: "number" },
@@ -260,8 +261,10 @@ export const PM_TOOL_PARAMETER_PROPERTIES = {
260
261
  semanticWeight: { anyOf: [{ type: "string" }, { type: "number" }] },
261
262
  op: { type: "string" },
262
263
  compact: { type: "boolean" },
264
+ raw: { type: "boolean" },
263
265
  brief: { type: "boolean" },
264
266
  full: { type: "boolean" },
267
+ includeEmpty: { type: "boolean" },
265
268
  view: { type: "string", enum: ["agenda", "day", "week", "month"] },
266
269
  date: { type: "string" },
267
270
  from: { type: "string" },
@@ -370,6 +373,10 @@ export const PM_TOOL_PARAMETER_PROPERTIES = {
370
373
  verboseAuthorEvents: { type: "boolean" },
371
374
  match: { type: "string" },
372
375
  onlyIndex: { anyOf: [{ type: "string" }, { type: "number" }] },
376
+ removeIndex: {
377
+ type: "array",
378
+ items: { anyOf: [{ type: "string" }, { type: "number" }] },
379
+ },
373
380
  onlyLast: { type: "boolean" },
374
381
  envSet: { type: "array", items: { type: "string" } },
375
382
  envClear: { type: "array", items: { type: "string" } },
@@ -934,6 +941,9 @@ export const PM_TOOL_PARAMETER_METADATA = {
934
941
  },
935
942
  ],
936
943
  },
944
+ outputRowContract: {
945
+ description: "Include the row selector and TOON row-encoding contract on a read result.",
946
+ },
937
947
  profile: {
938
948
  description: "Emit deterministic timing diagnostics to stderr.",
939
949
  },
@@ -1299,6 +1309,10 @@ export const PM_TOOL_PARAMETER_METADATA = {
1299
1309
  description: "Run only the 1-based linked-test index from pm test <id> --list order.",
1300
1310
  examples: [1, "2"],
1301
1311
  },
1312
+ removeIndex: {
1313
+ description: "Remove linked tests by their 1-based positions from pm test <id> --list order; repeatable and lossless for commands containing commas or equals signs.",
1314
+ examples: [[1], ["2", "4"]],
1315
+ },
1302
1316
  onlyLast: {
1303
1317
  description: "Run only the most recently added linked-test entry.",
1304
1318
  },
@@ -1656,6 +1670,9 @@ export const PM_TOOL_PARAMETER_METADATA = {
1656
1670
  compact: {
1657
1671
  description: "Render compact projection output for search and list-family actions.",
1658
1672
  },
1673
+ raw: {
1674
+ description: "For activity, restore the compact per-event stream instead of the default item digest.",
1675
+ },
1659
1676
  brief: {
1660
1677
  description: "Emit compact low-token output for commands that support terse projections or health details.",
1661
1678
  examples: [true],
@@ -1663,6 +1680,9 @@ export const PM_TOOL_PARAMETER_METADATA = {
1663
1680
  full: {
1664
1681
  description: "Enable command-specific full/detail output mode when supported, such as deep item reads for get or full payload mode for search/history.",
1665
1682
  },
1683
+ includeEmpty: {
1684
+ description: "For stats, restore zero-count registered type and lifecycle-status buckets.",
1685
+ },
1666
1686
  fields: {
1667
1687
  description: "Comma-separated projection fields for get, search, list-family, or context outputs. Valid field names are command-specific (e.g. score/matched_fields apply to search; context projects focus-row fields such as priority/deadline/completion_pct).",
1668
1688
  examples: [
@@ -1999,4 +2019,4 @@ export const PM_TOOL_ACTION_SCOPED_PARAMETER_METADATA = {
1999
2019
  },
2000
2020
  };
2001
2021
  //# sourceMappingURL=tool-parameter-tables.js.map
2002
- //# debugId=28d82e94-0359-5ae8-87f1-145f412df35e
2022
+ //# debugId=6cdf1fd1-7328-5bae-9238-d317f6efba8a
@@ -90,8 +90,8 @@ export interface PmActionToolInputSchemaOptions {
90
90
  * `PM_TOOL_PARAMETERS_SCHEMA`, eliminating a hand-maintained MCP schema table.
91
91
  */
92
92
  export declare function buildPmActionToolInputSchema(action: PmToolAction, options?: PmActionToolInputSchemaOptions): Record<string, unknown>;
93
- /** Canonical version of the action-scoped strict MCP tool-parameters schema (`PM_TOOL_PARAMETERS_SCHEMA`). Exported as the single source of truth so the MCP server, the `pm contracts` command, SDK consumers, and the contract tests all bind to one constant instead of re-typing the `"4.0.2"` literal (pm-r9sz). Bump the patch/minor for additive, backward-compatible schema changes; bump the MAJOR for breaking changes — the major also drives the `$id` `tool-parameters-v{major}` slug, so the two never drift. */
94
- export declare const PM_TOOL_PARAMETERS_SCHEMA_VERSION: "4.6.0";
93
+ /** Canonical version of the action-scoped strict MCP tool-parameters schema (`PM_TOOL_PARAMETERS_SCHEMA`). Exported as the single source of truth so the MCP server, the `pm contracts` command, SDK consumers, and contract tests bind to one version constant. Bump the patch/minor for additive, backward-compatible schema changes; bump the MAJOR for breaking changes — the major also drives the `$id` `tool-parameters-v{major}` slug, so the two never drift. */
94
+ export declare const PM_TOOL_PARAMETERS_SCHEMA_VERSION: "4.7.0";
95
95
  /**
96
96
  * Major component of {@link PM_TOOL_PARAMETERS_SCHEMA_VERSION}, used to build the
97
97
  * schema `$id` slug so a breaking version bump renames the document in lockstep.
@@ -7,7 +7,7 @@
7
7
  * consumers from a single source of truth.
8
8
  */
9
9
 
10
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9882d78a-8742-5d50-b345-debe47322b65")}catch(e){}}();
10
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5a184f36-a305-59f1-8c68-ef53cea1df1e")}catch(e){}}();
11
11
  import { normalizeUniqueStringList } from "./string-lists.js";
12
12
  import { PM_TOOL_ACTIONS } from "./enum-contracts.js";
13
13
  import { TOOL_CREATE_OPTION_CONTRACTS, TOOL_SHARED_CREATE_UPDATE_OPTION_CONTRACTS, TOOL_UPDATE_OPTION_CONTRACTS, TOOL_UPDATE_MANY_FILTER_OPTION_CONTRACTS, TOOL_CONTEXT_OPTION_CONTRACTS, TOOL_ACTIVITY_OPTION_CONTRACTS, TOOL_LIST_FILTER_OPTION_CONTRACTS, TOOL_AGGREGATE_OPTION_CONTRACTS, TOOL_SEARCH_FILTER_OPTION_CONTRACTS, TOOL_CLOSE_MANY_FILTER_OPTION_CONTRACTS, } from "./tool-option-contracts.js";
@@ -31,6 +31,7 @@ const PM_TOOL_READ_OUTPUT_PARAMETER_KEYS = [
31
31
  "outputBudget",
32
32
  "outputFormat",
33
33
  "outputSession",
34
+ "outputRowContract",
34
35
  ];
35
36
  /** Canonical top-level MCP properties that take precedence over runtime custom fields. */
36
37
  export const PM_TOOL_RESERVED_CUSTOM_FIELD_PROPERTIES = new Set([
@@ -959,6 +960,7 @@ const PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
959
960
  "add",
960
961
  "addJson",
961
962
  "remove",
963
+ "removeIndex",
962
964
  "run",
963
965
  "match",
964
966
  "onlyIndex",
@@ -1027,6 +1029,7 @@ const PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
1027
1029
  },
1028
1030
  stats: {
1029
1031
  optional: [
1032
+ "includeEmpty",
1030
1033
  "storage",
1031
1034
  "metadataCoverage",
1032
1035
  "fieldUtilization",
@@ -1472,8 +1475,8 @@ function createLazyContractSchema(build) {
1472
1475
  },
1473
1476
  });
1474
1477
  }
1475
- /** Canonical version of the action-scoped strict MCP tool-parameters schema (`PM_TOOL_PARAMETERS_SCHEMA`). Exported as the single source of truth so the MCP server, the `pm contracts` command, SDK consumers, and the contract tests all bind to one constant instead of re-typing the `"4.0.2"` literal (pm-r9sz). Bump the patch/minor for additive, backward-compatible schema changes; bump the MAJOR for breaking changes — the major also drives the `$id` `tool-parameters-v{major}` slug, so the two never drift. */
1476
- export const PM_TOOL_PARAMETERS_SCHEMA_VERSION = "4.6.0";
1478
+ /** Canonical version of the action-scoped strict MCP tool-parameters schema (`PM_TOOL_PARAMETERS_SCHEMA`). Exported as the single source of truth so the MCP server, the `pm contracts` command, SDK consumers, and contract tests bind to one version constant. Bump the patch/minor for additive, backward-compatible schema changes; bump the MAJOR for breaking changes — the major also drives the `$id` `tool-parameters-v{major}` slug, so the two never drift. */
1479
+ export const PM_TOOL_PARAMETERS_SCHEMA_VERSION = "4.7.0";
1477
1480
  /**
1478
1481
  * Major component of {@link PM_TOOL_PARAMETERS_SCHEMA_VERSION}, used to build the
1479
1482
  * schema `$id` slug so a breaking version bump renames the document in lockstep.
@@ -1555,4 +1558,4 @@ export const _testOnlyCliContracts = {
1555
1558
  withFlagAliasMetadata,
1556
1559
  };
1557
1560
  //# sourceMappingURL=tool-schema.js.map
1558
- //# debugId=9882d78a-8742-5d50-b345-debe47322b65
1561
+ //# debugId=5a184f36-a305-59f1-8c68-ef53cea1df1e
@@ -4,7 +4,7 @@
4
4
  * Builds the reusable Commander root that embeds pm's universal global contracts.
5
5
  */
6
6
 
7
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a410d336-c332-56fc-9a5d-7841a2b3dfa5")}catch(e){}}();
7
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b799c7c2-21b8-5c19-8565-7166e6f06a90")}catch(e){}}();
8
8
  import { Command } from "commander";
9
9
  import { writeStdout } from "../core/output/output.js";
10
10
  /** Create a fresh pm root program suitable for one-shot CLI or embedded hosts. */
@@ -30,6 +30,7 @@ export function createPmCliProgram(version) {
30
30
  .option("--output-budget <tokens>", "Bound estimated tokens in read output")
31
31
  .option("--output-format <toon|json>", "Select the read-output encoding")
32
32
  .option("--output-session <state>", "Carry a JSON session budget and served-item ledger across read calls")
33
+ .option("--output-row-contract", "Include the machine-readable row selector and TOON encoding contract")
33
34
  .option("--quiet", "Suppress stdout output")
34
35
  .option("--no-changed-fields", "Omit the changed_fields array from mutation output (keeps changed_field_count)")
35
36
  .option("--full-changed-fields", "Restore the legacy full mutation envelope and changed_fields array")
@@ -44,4 +45,4 @@ export function createPmCliProgram(version) {
44
45
  .exitOverride();
45
46
  }
46
47
  //# sourceMappingURL=cli-program.js.map
47
- //# debugId=a410d336-c332-56fc-9a5d-7841a2b3dfa5
48
+ //# debugId=b799c7c2-21b8-5c19-8565-7166e6f06a90
@@ -4,11 +4,11 @@
4
4
  * Implements the pm completion command surface and its agent-facing runtime behavior.
5
5
  */
6
6
 
7
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="381bfd99-bd9b-5f8f-9783-65c2bf2cd810")}catch(e){}}();
7
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="fca471b1-155a-5fc4-9aa9-d45e5f1315dd")}catch(e){}}();
8
8
  import { EXIT_CODE, PmCliError } from "./runtime-primitives.js";
9
9
  import { listPmCommandsForTier } from "./agent-capability-contracts.js";
10
10
  import { SCAFFOLD_CAPABILITIES } from "./extension/scaffold.js";
11
- import { AGGREGATE_FLAG_CONTRACTS, ACTIVITY_FLAG_CONTRACTS, APPEND_FLAG_CONTRACTS, CALENDAR_FLAG_CONTRACTS, CLOSE_MANY_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, CONTEXT_FLAG_CONTRACTS, COPY_FLAG_CONTRACTS, FOCUS_FLAG_CONTRACTS, MEET_FLAG_CONTRACTS, REMIND_FLAG_CONTRACTS, CREATE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, DUPLICATES_FLAG_CONTRACTS, EXTENSION_FLAG_CONTRACTS, GRAPH_FLAG_CONTRACTS, GET_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, HISTORY_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, NEXT_FLAG_CONTRACTS, PACKAGE_FLAG_CONTRACTS, PLAN_FLAG_CONTRACTS, SEARCH_FLAG_CONTRACTS, EVENTS_FLAG_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, toCompletionFlagString, } from "./cli-contracts.js";
11
+ import { AGGREGATE_FLAG_CONTRACTS, ACTIVITY_FLAG_CONTRACTS, APPEND_FLAG_CONTRACTS, CALENDAR_FLAG_CONTRACTS, CLOSE_MANY_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, CONTEXT_FLAG_CONTRACTS, COPY_FLAG_CONTRACTS, FOCUS_FLAG_CONTRACTS, MEET_FLAG_CONTRACTS, REMIND_FLAG_CONTRACTS, CREATE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, DUPLICATES_FLAG_CONTRACTS, EXTENSION_FLAG_CONTRACTS, GRAPH_FLAG_CONTRACTS, GET_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, HISTORY_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, NEXT_FLAG_CONTRACTS, PACKAGE_FLAG_CONTRACTS, PLAN_FLAG_CONTRACTS, SEARCH_FLAG_CONTRACTS, STATS_FLAG_CONTRACTS, EVENTS_FLAG_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, toCompletionFlagString, } from "./cli-contracts.js";
12
12
  import { BUILTIN_ITEM_TYPE_VALUES, STATUS_VALUES } from "../types/index.js";
13
13
  import { listGuideTopicIds } from "./guide-topics.js";
14
14
  const VALID_SHELLS = ["bash", "zsh", "fish"];
@@ -38,6 +38,7 @@ const DUPLICATES_FLAGS = toCompletionFlagString(DUPLICATES_FLAG_CONTRACTS);
38
38
  const GRAPH_FLAGS = toCompletionFlagString(GRAPH_FLAG_CONTRACTS);
39
39
  const GUIDE_FLAGS = toCompletionFlagString(GUIDE_FLAG_CONTRACTS);
40
40
  const SEARCH_FLAGS = toCompletionFlagString(SEARCH_FLAG_CONTRACTS);
41
+ const STATS_FLAGS = toCompletionFlagString(STATS_FLAG_CONTRACTS);
41
42
  const HEALTH_FLAGS = toCompletionFlagString(HEALTH_FLAG_CONTRACTS);
42
43
  const INIT_FLAGS = toCompletionFlagString(INIT_FLAG_CONTRACTS);
43
44
  const CONTRACTS_FLAGS = toCompletionFlagString(CONTRACTS_FLAG_CONTRACTS);
@@ -623,7 +624,7 @@ export function generateBashScript(itemTypes = [], tags = [], eagerTagExpansion
623
624
  ` COMPREPLY=(${compgen(`ancestors descendants predecessors successors paths impact analyze audit communities redundancy dominators slack centrality articulation plan index ${GRAPH_FLAGS}`)})`,
624
625
  " ;;",
625
626
  " test)",
626
- ` COMPREPLY=(${compgen("--add --add-json --remove --list --run --match --only-index --only-last --background --timeout --progress --env-set --env-clear --shared-host-safe --pm-context --override-linked-pm-context --fail-on-context-mismatch --fail-on-skipped --fail-on-empty-test-run --require-assertions-for-pm --check-context --auto-pm-context --author --message --force --json --quiet --no-changed-fields --pm-path --path --no-extensions --no-pager --profile --help")})`,
627
+ ` COMPREPLY=(${compgen("--add --add-json --remove --remove-index --list --run --match --only-index --only-last --background --timeout --progress --env-set --env-clear --shared-host-safe --pm-context --override-linked-pm-context --fail-on-context-mismatch --fail-on-skipped --fail-on-empty-test-run --require-assertions-for-pm --check-context --auto-pm-context --author --message --force --json --quiet --no-changed-fields --pm-path --path --no-extensions --no-pager --profile --help")})`,
627
628
  " ;;",
628
629
  " test-all)",
629
630
  ` COMPREPLY=(${compgen("--status --limit --offset --background --timeout --progress --env-set --env-clear --shared-host-safe --pm-context --override-linked-pm-context --fail-on-context-mismatch --fail-on-skipped --fail-on-empty-test-run --require-assertions-for-pm --check-context --auto-pm-context --json --quiet --no-changed-fields --pm-path --path --no-extensions --no-pager --profile --help")})`,
@@ -677,7 +678,7 @@ export function generateBashScript(itemTypes = [], tags = [], eagerTagExpansion
677
678
  ` COMPREPLY=(${compgen("--dry-run --scope --json --quiet --no-changed-fields --pm-path --path --no-extensions --no-pager --profile --help")})`,
678
679
  " ;;",
679
680
  " stats)",
680
- ` COMPREPLY=(${compgen("--storage --metadata-coverage --field-utilization --by-assignee --by-tag --by-priority --tag-prefix --json --quiet --no-changed-fields --pm-path --path --no-extensions --no-pager --profile --help")})`,
681
+ ` COMPREPLY=(${compgen(STATS_FLAGS)})`,
681
682
  " ;;",
682
683
  " close|close-task)",
683
684
  ` COMPREPLY=(${compgen(CLOSE_MUTATION_FLAGS)})`,
@@ -788,6 +789,7 @@ _pm() {
788
789
  '--output-budget[Set the universal estimated-token ceiling]:tokens' \\
789
790
  '--output-format[Select the universal read encoding]:(toon json)' \\
790
791
  '--output-session[Carry cross-call read budget and served-item state]:state' \\
792
+ '--output-row-contract[Include row schema metadata in read output]' \\
791
793
  '--no-changed-fields[Omit changed_fields array from mutation output]' \\
792
794
  '--pm-path[Explicit tracker storage path for this command]:path:_files -/' \\
793
795
  '--path[Compatibility alias for --pm-path]:path:_files -/' \\
@@ -1304,13 +1306,14 @@ ${zshSearchRuntimeFieldFlags} '--json[Output JSON]' \\
1304
1306
  '--to[Upper timestamp bound (ISO/date string or relative)]:date' \\
1305
1307
  '--limit[Max entries]:number' \\
1306
1308
  '--compact[Condensed activity projection]' \\
1309
+ '--raw[Emit raw compact per-event activity output]' \\
1307
1310
  '--full[Show full activity entries]' \\
1308
1311
  '--provenance[Patch-free identity and agent provenance projection]' \\
1309
1312
  '--provenance-summary[Include bounded provenance completeness counts]' \\
1310
1313
  '*--harness[Filter by recorded or vocabulary-resolved harness]:harness' \\
1311
1314
  '*--agent-instance[Filter by privacy-safe agent instance]:instance' \\
1312
1315
  '*--provenance-filter[Filter by exact declared provenance value]:dimension=value' \\
1313
- '--stream[Emit line-delimited JSON rows]:mode' \\
1316
+ '--stream[Emit line-delimited JSON rows (requires --json)]:mode' \\
1314
1317
  '--json[Output JSON]' \\
1315
1318
  '--quiet[Suppress stdout]'
1316
1319
  ;;
@@ -1336,6 +1339,7 @@ ${zshSearchRuntimeFieldFlags} '--json[Output JSON]' \\
1336
1339
  ;;
1337
1340
  stats)
1338
1341
  _arguments \\
1342
+ '--include-empty[Include registered zero-count type and status buckets]' \\
1339
1343
  '--storage[Include aggregate history-stream storage metrics]' \\
1340
1344
  '--metadata-coverage[Include metadata coverage percentages overall and by type]' \\
1341
1345
  '--field-utilization[Include content-field utilization rates across all items]' \\
@@ -1460,6 +1464,7 @@ ${zshSearchRuntimeFieldFlags} '--json[Output JSON]' \\
1460
1464
  '--add[Add linked test entry]:entry' \\
1461
1465
  '--add-json[Add linked test entry from JSON object/array]:json' \\
1462
1466
  '--remove[Remove linked test entry by command/path]:entry' \\
1467
+ '--remove-index[Remove linked test entry by 1-based index]:index' \\
1463
1468
  '--list[List linked tests without mutating]' \\
1464
1469
  '--run[Run linked tests]' \\
1465
1470
  '--match[Run linked tests whose command/path contains substring]:substring' \\
@@ -1819,6 +1824,7 @@ complete -c pm -l output-limit -d 'Set the universal read row ceiling' -r
1819
1824
  complete -c pm -l output-budget -d 'Set the universal estimated-token ceiling' -r
1820
1825
  complete -c pm -l output-format -d 'Select the universal read encoding' -r -a 'toon json'
1821
1826
  complete -c pm -l output-session -d 'Carry cross-call read budget and served-item state' -r
1827
+ complete -c pm -l output-row-contract -d 'Include row schema metadata in read output'
1822
1828
  complete -c pm -l no-changed-fields -d 'Omit changed_fields array from mutation output'
1823
1829
  complete -c pm -l id-only -d 'Print only id and status for single-item mutation output'
1824
1830
  complete -c pm -l pm-path -d 'Explicit tracker storage path for this command' -r
@@ -2369,13 +2375,14 @@ complete -c pm -n '__fish_seen_subcommand_from activity' -l from -d 'Lower times
2369
2375
  complete -c pm -n '__fish_seen_subcommand_from activity' -l to -d 'Upper timestamp bound (ISO/date string or relative)' -r
2370
2376
  complete -c pm -n '__fish_seen_subcommand_from activity' -l limit -d 'Max activity entries' -r
2371
2377
  complete -c pm -n '__fish_seen_subcommand_from activity' -l compact -d 'Condensed activity projection'
2378
+ complete -c pm -n '__fish_seen_subcommand_from activity' -l raw -d 'Emit raw compact per-event activity output'
2372
2379
  complete -c pm -n '__fish_seen_subcommand_from activity' -l full -d 'Show full activity entries'
2373
2380
  complete -c pm -n '__fish_seen_subcommand_from activity' -l provenance -d 'Patch-free identity and agent provenance projection'
2374
2381
  complete -c pm -n '__fish_seen_subcommand_from activity' -l provenance-summary -d 'Include bounded provenance completeness counts'
2375
2382
  complete -c pm -n '__fish_seen_subcommand_from activity' -l harness -d 'Filter by recorded or vocabulary-resolved harness' -r
2376
2383
  complete -c pm -n '__fish_seen_subcommand_from activity' -l agent-instance -d 'Filter by privacy-safe agent instance' -r
2377
2384
  complete -c pm -n '__fish_seen_subcommand_from activity' -l provenance-filter -d 'Filter by exact declared provenance value' -r
2378
- complete -c pm -n '__fish_seen_subcommand_from activity' -l stream -d 'Emit line-delimited JSON rows'
2385
+ complete -c pm -n '__fish_seen_subcommand_from activity' -l stream -d 'Emit line-delimited JSON rows (requires --json)'
2379
2386
  complete -c pm -n '__fish_seen_subcommand_from contracts' -l action -d 'Filter schema by tool action' -r
2380
2387
  complete -c pm -n '__fish_seen_subcommand_from contracts' -l command -d 'Scope output to one command (narrow-by-default)' -r
2381
2388
  complete -c pm -n '__fish_seen_subcommand_from contracts' -l summary -d 'Return compact command intent summary'
@@ -2433,6 +2440,7 @@ complete -c pm -n '__fish_seen_subcommand_from comments notes learnings' -l forc
2433
2440
  complete -c pm -n '__fish_seen_subcommand_from test' -l add -d 'Add linked test entry' -r
2434
2441
  complete -c pm -n '__fish_seen_subcommand_from test' -l add-json -d 'Add linked test entry from JSON object/array' -r
2435
2442
  complete -c pm -n '__fish_seen_subcommand_from test' -l remove -d 'Remove linked test entry' -r
2443
+ complete -c pm -n '__fish_seen_subcommand_from test' -l remove-index -d 'Remove linked test entry by 1-based index' -r
2436
2444
  complete -c pm -n '__fish_seen_subcommand_from test' -l list -d 'List linked tests without mutating'
2437
2445
  complete -c pm -n '__fish_seen_subcommand_from test' -l run -d 'Run linked tests'
2438
2446
  complete -c pm -n '__fish_seen_subcommand_from test' -l match -d 'Run linked tests whose command/path contains substring' -r
@@ -2489,6 +2497,7 @@ complete -c pm -n '__fish_seen_subcommand_from gc' -l dry-run -d 'Preview cleanu
2489
2497
  complete -c pm -n '__fish_seen_subcommand_from gc' -l scope -d 'Limit cleanup to index/embeddings/runtime/locks scopes' -r
2490
2498
 
2491
2499
  # stats flags
2500
+ complete -c pm -n '__fish_seen_subcommand_from stats' -l include-empty -d 'Include registered zero-count type and status buckets'
2492
2501
  complete -c pm -n '__fish_seen_subcommand_from stats' -l storage -d 'Include aggregate history-stream storage metrics'
2493
2502
  complete -c pm -n '__fish_seen_subcommand_from stats' -l metadata-coverage -d 'Include metadata coverage percentages overall and by type'
2494
2503
  complete -c pm -n '__fish_seen_subcommand_from stats' -l field-utilization -d 'Include content-field utilization rates across all items'
@@ -2753,4 +2762,4 @@ export function runCompletion(shell, itemTypes = [], tags = [], eagerTagExpansio
2753
2762
  };
2754
2763
  }
2755
2764
  //# sourceMappingURL=completion.js.map
2756
- //# debugId=381bfd99-bd9b-5f8f-9783-65c2bf2cd810
2765
+ //# debugId=fca471b1-155a-5fc4-9aa9-d45e5f1315dd