@unbrained/pm-cli 2026.7.8 → 2026.7.9

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 (170) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +1 -0
  3. package/dist/cli/commands/close.js +5 -2
  4. package/dist/cli/commands/close.js.map +1 -1
  5. package/dist/cli/commands/completion.js +8 -2
  6. package/dist/cli/commands/completion.js.map +1 -1
  7. package/dist/cli/commands/contracts.d.ts +11 -0
  8. package/dist/cli/commands/contracts.js +112 -15
  9. package/dist/cli/commands/contracts.js.map +1 -1
  10. package/dist/cli/commands/create.js +4 -2
  11. package/dist/cli/commands/create.js.map +1 -1
  12. package/dist/cli/commands/list.d.ts +4 -0
  13. package/dist/cli/commands/list.js +32 -3
  14. package/dist/cli/commands/list.js.map +1 -1
  15. package/dist/cli/commands/update.d.ts +32 -1
  16. package/dist/cli/commands/update.js +19 -2
  17. package/dist/cli/commands/update.js.map +1 -1
  18. package/dist/cli/register-list-query.js +4 -2
  19. package/dist/cli/register-list-query.js.map +1 -1
  20. package/dist/cli/register-operations.js +4 -2
  21. package/dist/cli/register-operations.js.map +1 -1
  22. package/dist/cli/registration-helpers.js +4 -2
  23. package/dist/cli/registration-helpers.js.map +1 -1
  24. package/dist/cli-bundle/chunks/{chunk-D63PEJTB.js → chunk-26MFLA7K.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-HI27UADG.js → chunk-2FKIIQMJ.js} +3 -3
  26. package/dist/cli-bundle/chunks/{chunk-RLHQ3G4M.js → chunk-5RJ4LFD3.js} +30 -3
  27. package/dist/cli-bundle/chunks/chunk-5RJ4LFD3.js.map +7 -0
  28. package/dist/cli-bundle/chunks/{chunk-IYRG5AEC.js → chunk-5ZMZF53A.js} +3 -3
  29. package/dist/cli-bundle/chunks/{chunk-UVFJSKTF.js → chunk-63PZJCKO.js} +7 -4
  30. package/dist/cli-bundle/chunks/chunk-63PZJCKO.js.map +1 -0
  31. package/dist/cli-bundle/chunks/{chunk-TUDAYIO7.js → chunk-ASSVI7FP.js} +5 -3
  32. package/dist/cli-bundle/chunks/{chunk-TUDAYIO7.js.map → chunk-ASSVI7FP.js.map} +1 -1
  33. package/dist/cli-bundle/chunks/{chunk-KMXVZ2P7.js → chunk-BPYVKTZE.js} +112 -17
  34. package/dist/cli-bundle/chunks/chunk-BPYVKTZE.js.map +1 -0
  35. package/dist/cli-bundle/chunks/{chunk-3FRNNVWY.js → chunk-CEX2DQXZ.js} +405 -75
  36. package/dist/cli-bundle/chunks/chunk-CEX2DQXZ.js.map +7 -0
  37. package/dist/cli-bundle/chunks/{chunk-DUBC6TI3.js → chunk-CHSXGTWF.js} +18 -4
  38. package/dist/cli-bundle/chunks/{chunk-DUBC6TI3.js.map → chunk-CHSXGTWF.js.map} +2 -2
  39. package/dist/cli-bundle/chunks/{chunk-G4FKP4ID.js → chunk-DBV5A7FT.js} +6 -4
  40. package/dist/cli-bundle/chunks/chunk-DBV5A7FT.js.map +1 -0
  41. package/dist/cli-bundle/chunks/{chunk-YQEKE4FO.js → chunk-DQLP22K2.js} +3 -3
  42. package/dist/cli-bundle/chunks/{chunk-ZMOPZFVT.js → chunk-GZ365M6E.js} +2 -2
  43. package/dist/cli-bundle/chunks/{chunk-XPSGJ4IV.js → chunk-K2OKKYSO.js} +4 -2
  44. package/dist/cli-bundle/chunks/{chunk-XPSGJ4IV.js.map → chunk-K2OKKYSO.js.map} +2 -2
  45. package/dist/cli-bundle/chunks/{chunk-TR2C6V5T.js → chunk-K4NMHZR3.js} +90 -19
  46. package/dist/cli-bundle/chunks/chunk-K4NMHZR3.js.map +7 -0
  47. package/dist/cli-bundle/chunks/{chunk-MYHFZNBO.js → chunk-KAJNWMBE.js} +2 -2
  48. package/dist/cli-bundle/chunks/{chunk-TU5P744I.js → chunk-MBLHA6LR.js} +2 -2
  49. package/dist/cli-bundle/chunks/{chunk-UCRYCT5M.js → chunk-MCZK7LY6.js} +19 -5
  50. package/dist/cli-bundle/chunks/{chunk-UCRYCT5M.js.map → chunk-MCZK7LY6.js.map} +1 -1
  51. package/dist/cli-bundle/chunks/{chunk-TTCJCKUJ.js → chunk-N4S7BV43.js} +3 -3
  52. package/dist/cli-bundle/chunks/{chunk-ML27MHNM.js → chunk-NBJCIAVV.js} +88 -17
  53. package/dist/cli-bundle/chunks/chunk-NBJCIAVV.js.map +1 -0
  54. package/dist/cli-bundle/chunks/{chunk-ASMRSIDX.js → chunk-NRYZ4QLH.js} +111 -16
  55. package/dist/cli-bundle/chunks/chunk-NRYZ4QLH.js.map +7 -0
  56. package/dist/cli-bundle/chunks/{chunk-RDJXIAJB.js → chunk-NSPSJWGL.js} +6 -3
  57. package/dist/cli-bundle/chunks/chunk-NSPSJWGL.js.map +7 -0
  58. package/dist/cli-bundle/chunks/{chunk-PJPZTE7P.js → chunk-ONADVBMD.js} +5 -3
  59. package/dist/cli-bundle/chunks/chunk-ONADVBMD.js.map +7 -0
  60. package/dist/cli-bundle/chunks/{chunk-GE44TQMC.js → chunk-P5SUMCU5.js} +3 -3
  61. package/dist/cli-bundle/chunks/{chunk-2RADY7IB.js → chunk-PPY3GXFK.js} +405 -75
  62. package/dist/cli-bundle/chunks/chunk-PPY3GXFK.js.map +1 -0
  63. package/dist/cli-bundle/chunks/{chunk-YR5R4FMQ.js → chunk-S7J3GEHL.js} +4 -4
  64. package/dist/cli-bundle/chunks/{chunk-XN5BEN2B.js → chunk-TI7QSUFK.js} +31 -4
  65. package/dist/cli-bundle/chunks/chunk-TI7QSUFK.js.map +1 -0
  66. package/dist/cli-bundle/chunks/{chunk-EYPIUFWJ.js → chunk-VCGHRLJU.js} +4 -4
  67. package/dist/cli-bundle/chunks/{chunk-P2WE5KCU.js → chunk-WDNPNW22.js} +2 -2
  68. package/dist/cli-bundle/chunks/{chunk-SN5X5GTU.js → chunk-XXN2B2MJ.js} +2 -2
  69. package/dist/cli-bundle/chunks/{chunk-GQOKFX2G.js → chunk-Y2736PT5.js} +2 -2
  70. package/dist/cli-bundle/chunks/{chunk-FL625JJM.js → chunk-YHKXNGLA.js} +3 -3
  71. package/dist/cli-bundle/chunks/{chunk-YUCKM3MD.js → chunk-YPE5MFPJ.js} +2 -2
  72. package/dist/cli-bundle/chunks/{close-E3RLZSP2.js → close-5WY6QO5F.js} +2 -2
  73. package/dist/cli-bundle/chunks/{close-K6BFI3OX.js → close-TKTFRL7N.js} +2 -2
  74. package/dist/cli-bundle/chunks/{close-many-6NBL3PM4.js → close-many-HEPL66EG.js} +4 -4
  75. package/dist/cli-bundle/chunks/{close-many-X4YKS3RO.js → close-many-U2KLQ3NL.js} +4 -4
  76. package/dist/cli-bundle/chunks/{create-AMBMYP6F.js → create-KCQM6UYM.js} +2 -2
  77. package/dist/cli-bundle/chunks/{create-TRIBYORN.js → create-LD4SEUD6.js} +2 -2
  78. package/dist/cli-bundle/chunks/{plan-MK2QY3GA.js → plan-B42KBMX7.js} +3 -3
  79. package/dist/cli-bundle/chunks/{plan-CJPKFRBK.js → plan-LUR7C24X.js} +3 -3
  80. package/dist/cli-bundle/chunks/{profile-HTBFINKQ.js → profile-5F75MO5O.js} +3 -3
  81. package/dist/cli-bundle/chunks/{profile-AQNHXOYA.js → profile-JRDMDGT5.js} +3 -3
  82. package/dist/cli-bundle/chunks/{register-list-query-EEF33SUJ.js → register-list-query-GZYRZLQZ.js} +8 -8
  83. package/dist/cli-bundle/chunks/register-list-query-GZYRZLQZ.js.map +1 -0
  84. package/dist/cli-bundle/chunks/{register-list-query-S4FBWIWN.js → register-list-query-W2W7RQJJ.js} +7 -7
  85. package/dist/cli-bundle/chunks/register-list-query-W2W7RQJJ.js.map +7 -0
  86. package/dist/cli-bundle/chunks/{register-mutation-L5Q7AUDN.js → register-mutation-5UDT3WL3.js} +10 -10
  87. package/dist/cli-bundle/chunks/{register-mutation-QFLRBCI7.js → register-mutation-7DMOYDPC.js} +10 -10
  88. package/dist/cli-bundle/chunks/{register-operations-QDU43FCG.js → register-operations-NW43IUPE.js} +12 -11
  89. package/dist/cli-bundle/chunks/register-operations-NW43IUPE.js.map +7 -0
  90. package/dist/cli-bundle/chunks/{register-operations-HDE4FVW4.js → register-operations-Y4E32W4D.js} +13 -12
  91. package/dist/cli-bundle/chunks/register-operations-Y4E32W4D.js.map +1 -0
  92. package/dist/cli-bundle/chunks/{register-setup-EGMTAXDC.js → register-setup-3GVJ7XPE.js} +6 -6
  93. package/dist/cli-bundle/chunks/{register-setup-PNIO3L2P.js → register-setup-MPTTS52V.js} +6 -6
  94. package/dist/cli-bundle/chunks/{update-SDIRJGSY.js → update-76CRUMC7.js} +4 -4
  95. package/dist/cli-bundle/chunks/{update-MP4XLU56.js → update-ZMYVXM77.js} +4 -4
  96. package/dist/cli-bundle/chunks/{update-many-34AIU6W7.js → update-many-QYQRGNPU.js} +6 -6
  97. package/dist/cli-bundle/chunks/{update-many-JUPCNOKV.js → update-many-U4CEQWI4.js} +6 -6
  98. package/dist/cli-bundle/main.js +7 -7
  99. package/dist/cli-bundle/sdk-runtime.js +81 -17
  100. package/dist/cli-bundle/sdk.js +84 -20
  101. package/dist/cli-bundle/sdk.js.map +3 -3
  102. package/dist/sdk/cli-contracts/flag-contracts.js +5 -2
  103. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  104. package/dist/sdk/cli-contracts/tool-option-contracts.js +10 -5
  105. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  106. package/dist/sdk/cli-contracts/tool-parameter-tables.js +12 -4
  107. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  108. package/dist/sdk/cli-contracts/tool-schema.d.ts +4 -0
  109. package/dist/sdk/cli-contracts/tool-schema.js +66 -11
  110. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  111. package/dist/sdk/index.d.ts +1 -1
  112. package/dist/sdk/index.js +3 -3
  113. package/dist/sdk/index.js.map +1 -1
  114. package/dist/sdk/runtime.d.ts +340 -25
  115. package/dist/sdk/runtime.js +413 -25
  116. package/dist/sdk/runtime.js.map +1 -1
  117. package/docs/AGENT_GUIDE.md +3 -0
  118. package/docs/COMMANDS.md +10 -1
  119. package/docs/SDK.md +37 -0
  120. package/package.json +1 -1
  121. package/dist/cli-bundle/chunks/chunk-2RADY7IB.js.map +0 -1
  122. package/dist/cli-bundle/chunks/chunk-3FRNNVWY.js.map +0 -7
  123. package/dist/cli-bundle/chunks/chunk-ASMRSIDX.js.map +0 -7
  124. package/dist/cli-bundle/chunks/chunk-G4FKP4ID.js.map +0 -1
  125. package/dist/cli-bundle/chunks/chunk-KMXVZ2P7.js.map +0 -1
  126. package/dist/cli-bundle/chunks/chunk-ML27MHNM.js.map +0 -1
  127. package/dist/cli-bundle/chunks/chunk-PJPZTE7P.js.map +0 -7
  128. package/dist/cli-bundle/chunks/chunk-RDJXIAJB.js.map +0 -7
  129. package/dist/cli-bundle/chunks/chunk-RLHQ3G4M.js.map +0 -7
  130. package/dist/cli-bundle/chunks/chunk-TR2C6V5T.js.map +0 -7
  131. package/dist/cli-bundle/chunks/chunk-UVFJSKTF.js.map +0 -1
  132. package/dist/cli-bundle/chunks/chunk-XN5BEN2B.js.map +0 -1
  133. package/dist/cli-bundle/chunks/register-list-query-EEF33SUJ.js.map +0 -1
  134. package/dist/cli-bundle/chunks/register-list-query-S4FBWIWN.js.map +0 -7
  135. package/dist/cli-bundle/chunks/register-operations-HDE4FVW4.js.map +0 -1
  136. package/dist/cli-bundle/chunks/register-operations-QDU43FCG.js.map +0 -7
  137. /package/dist/cli-bundle/chunks/{chunk-D63PEJTB.js.map → chunk-26MFLA7K.js.map} +0 -0
  138. /package/dist/cli-bundle/chunks/{chunk-HI27UADG.js.map → chunk-2FKIIQMJ.js.map} +0 -0
  139. /package/dist/cli-bundle/chunks/{chunk-IYRG5AEC.js.map → chunk-5ZMZF53A.js.map} +0 -0
  140. /package/dist/cli-bundle/chunks/{chunk-YQEKE4FO.js.map → chunk-DQLP22K2.js.map} +0 -0
  141. /package/dist/cli-bundle/chunks/{chunk-ZMOPZFVT.js.map → chunk-GZ365M6E.js.map} +0 -0
  142. /package/dist/cli-bundle/chunks/{chunk-MYHFZNBO.js.map → chunk-KAJNWMBE.js.map} +0 -0
  143. /package/dist/cli-bundle/chunks/{chunk-TU5P744I.js.map → chunk-MBLHA6LR.js.map} +0 -0
  144. /package/dist/cli-bundle/chunks/{chunk-TTCJCKUJ.js.map → chunk-N4S7BV43.js.map} +0 -0
  145. /package/dist/cli-bundle/chunks/{chunk-GE44TQMC.js.map → chunk-P5SUMCU5.js.map} +0 -0
  146. /package/dist/cli-bundle/chunks/{chunk-YR5R4FMQ.js.map → chunk-S7J3GEHL.js.map} +0 -0
  147. /package/dist/cli-bundle/chunks/{chunk-EYPIUFWJ.js.map → chunk-VCGHRLJU.js.map} +0 -0
  148. /package/dist/cli-bundle/chunks/{chunk-P2WE5KCU.js.map → chunk-WDNPNW22.js.map} +0 -0
  149. /package/dist/cli-bundle/chunks/{chunk-SN5X5GTU.js.map → chunk-XXN2B2MJ.js.map} +0 -0
  150. /package/dist/cli-bundle/chunks/{chunk-GQOKFX2G.js.map → chunk-Y2736PT5.js.map} +0 -0
  151. /package/dist/cli-bundle/chunks/{chunk-FL625JJM.js.map → chunk-YHKXNGLA.js.map} +0 -0
  152. /package/dist/cli-bundle/chunks/{chunk-YUCKM3MD.js.map → chunk-YPE5MFPJ.js.map} +0 -0
  153. /package/dist/cli-bundle/chunks/{close-E3RLZSP2.js.map → close-5WY6QO5F.js.map} +0 -0
  154. /package/dist/cli-bundle/chunks/{close-K6BFI3OX.js.map → close-TKTFRL7N.js.map} +0 -0
  155. /package/dist/cli-bundle/chunks/{close-many-6NBL3PM4.js.map → close-many-HEPL66EG.js.map} +0 -0
  156. /package/dist/cli-bundle/chunks/{close-many-X4YKS3RO.js.map → close-many-U2KLQ3NL.js.map} +0 -0
  157. /package/dist/cli-bundle/chunks/{create-AMBMYP6F.js.map → create-KCQM6UYM.js.map} +0 -0
  158. /package/dist/cli-bundle/chunks/{create-TRIBYORN.js.map → create-LD4SEUD6.js.map} +0 -0
  159. /package/dist/cli-bundle/chunks/{plan-MK2QY3GA.js.map → plan-B42KBMX7.js.map} +0 -0
  160. /package/dist/cli-bundle/chunks/{plan-CJPKFRBK.js.map → plan-LUR7C24X.js.map} +0 -0
  161. /package/dist/cli-bundle/chunks/{profile-HTBFINKQ.js.map → profile-5F75MO5O.js.map} +0 -0
  162. /package/dist/cli-bundle/chunks/{profile-AQNHXOYA.js.map → profile-JRDMDGT5.js.map} +0 -0
  163. /package/dist/cli-bundle/chunks/{register-mutation-L5Q7AUDN.js.map → register-mutation-5UDT3WL3.js.map} +0 -0
  164. /package/dist/cli-bundle/chunks/{register-mutation-QFLRBCI7.js.map → register-mutation-7DMOYDPC.js.map} +0 -0
  165. /package/dist/cli-bundle/chunks/{register-setup-EGMTAXDC.js.map → register-setup-3GVJ7XPE.js.map} +0 -0
  166. /package/dist/cli-bundle/chunks/{register-setup-PNIO3L2P.js.map → register-setup-MPTTS52V.js.map} +0 -0
  167. /package/dist/cli-bundle/chunks/{update-SDIRJGSY.js.map → update-76CRUMC7.js.map} +0 -0
  168. /package/dist/cli-bundle/chunks/{update-MP4XLU56.js.map → update-ZMYVXM77.js.map} +0 -0
  169. /package/dist/cli-bundle/chunks/{update-many-34AIU6W7.js.map → update-many-QYQRGNPU.js.map} +0 -0
  170. /package/dist/cli-bundle/chunks/{update-many-JUPCNOKV.js.map → update-many-U4CEQWI4.js.map} +0 -0
@@ -4,7 +4,7 @@
4
4
  * Defines public SDK APIs and package-author helpers for Runtime.
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]="6781d5a3-3e21-5198-a534-fb2be114b6e1")}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]="a1d2566f-bb81-5e21-aaab-f501f90657ed")}catch(e){}}();
8
8
  import path from "node:path";
9
9
  import { createEmptyExtensionCommandRegistry, createEmptyExtensionHookRegistry, createEmptyExtensionParserRegistry, createEmptyExtensionPreflightRegistry, createEmptyExtensionRegistrationRegistry, createEmptyExtensionRendererRegistry, createEmptyExtensionServiceRegistry, } from "../core/extensions/extension-registries.js";
10
10
  import { activateExtensions, deactivateExtensions, loadExtensions, runActiveCommandHandler, setActiveExtensionCommands, setActiveExtensionHooks, setActiveExtensionParsers, setActiveExtensionPreflight, setActiveExtensionRegistrations, setActiveExtensionRenderers, setActiveExtensionServices, } from "../core/extensions/index.js";
@@ -63,13 +63,8 @@ export { runReindex } from "../cli/commands/reindex.js";
63
63
  export { loadCreateTemplateOptions, runTemplatesList, runTemplatesSave, runTemplatesShow, } from "../cli/commands/templates.js";
64
64
  export { runTestRunsList, runTestRunsLogs, runTestRunsResume, runTestRunsStatus, runTestRunsStop, } from "../cli/commands/test-runs.js";
65
65
  export { CONFIDENCE_TEXT_VALUES, DEPENDENCY_KIND_VALUES, BUILTIN_ITEM_TYPE_VALUES, ISSUE_SEVERITY_VALUES, ITEM_TYPE_VALUES, RISK_VALUES, STATUS_VALUES, } from "../types/index.js";
66
- function splitClientMutationOptions(options) {
67
- const { fullChangedFields, idOnly, ...runnerOptions } = options;
68
- return {
69
- ...(fullChangedFields === undefined ? {} : { fullChangedFields }),
70
- ...(idOnly === undefined ? {} : { idOnly }),
71
- options: runnerOptions,
72
- };
66
+ function splitFullClientMutationOptions(options) {
67
+ return { fullChangedFields: true, options };
73
68
  }
74
69
  /**
75
70
  * Programmatic pm client for custom tools, CI jobs, bots, and embedded runtimes.
@@ -146,83 +141,279 @@ export class PmClient {
146
141
  stats(options = {}) {
147
142
  return this.runTyped("stats", { options });
148
143
  }
144
+ /**
145
+ * List, add, edit, or delete item comments.
146
+ */
147
+ comments(id, options = {}) {
148
+ return this.runTyped("comments", { id, options });
149
+ }
150
+ /**
151
+ * List or append private item notes.
152
+ */
153
+ notes(id, options = {}) {
154
+ return this.runTyped("notes", { id, options });
155
+ }
156
+ /**
157
+ * List or append durable item learnings.
158
+ */
159
+ learnings(id, options = {}) {
160
+ return this.runTyped("learnings", { id, options });
161
+ }
162
+ /**
163
+ * Add, remove, clear, or list linked project files for an item.
164
+ */
165
+ files(id, options = {}) {
166
+ return this.runTyped("files", { id, options });
167
+ }
168
+ /**
169
+ * Discover and optionally attach changed files for an item.
170
+ */
171
+ filesDiscover(id, options = {}) {
172
+ return this.runTyped("files-discover", { id, options });
173
+ }
174
+ /**
175
+ * Add, remove, clear, or list linked documentation for an item.
176
+ */
177
+ docs(id, options = {}) {
178
+ return this.runTyped("docs", { id, options });
179
+ }
180
+ /**
181
+ * Inspect item dependency relationships.
182
+ */
183
+ deps(id, options = {}) {
184
+ return this.runTyped("deps", { id, options });
185
+ }
186
+ /**
187
+ * Append markdown/body text to an item through the mutation pipeline.
188
+ */
189
+ append(id, body, options = {}) {
190
+ return this.runTyped("append", { id, ...splitFullClientMutationOptions({ ...options, body }) });
191
+ }
192
+ /**
193
+ * Initialize a workspace with the same semantics as `pm init`.
194
+ */
195
+ init(prefix, options = {}) {
196
+ return this.runTyped("init", { ...(prefix === undefined ? {} : { prefix }), options });
197
+ }
198
+ /**
199
+ * Read or update project/global configuration.
200
+ */
201
+ config(scope, configAction, key, value, options = {}) {
202
+ return this.runTyped("config", {
203
+ scope,
204
+ configAction,
205
+ ...(key === undefined ? {} : { key }),
206
+ ...(value === undefined ? {} : { value }),
207
+ options,
208
+ });
209
+ }
210
+ /**
211
+ * Run the schema customization surface.
212
+ */
213
+ schema(subcommand, options = {}) {
214
+ return this.runTyped("schema", { options: { ...options, subcommand } });
215
+ }
216
+ /**
217
+ * List built-in, custom, and extension-provided schema types/statuses.
218
+ */
219
+ schemaList() {
220
+ return this.runTyped("schema", { options: { subcommand: "list" } });
221
+ }
222
+ /**
223
+ * Show a schema item type definition.
224
+ */
225
+ schemaShow(name) {
226
+ return this.runTyped("schema", { name, options: { subcommand: "show" } });
227
+ }
228
+ /**
229
+ * Register or replace a custom item type.
230
+ */
231
+ schemaAddType(name, options = {}) {
232
+ return this.runTyped("schema", { name, options: { ...options, subcommand: "add-type" } });
233
+ }
234
+ /**
235
+ * Remove a custom item type.
236
+ */
237
+ schemaRemoveType(name, options = {}) {
238
+ return this.runTyped("schema", { name, options: { ...options, subcommand: "remove-type" } });
239
+ }
240
+ /**
241
+ * Register or replace a custom status.
242
+ */
243
+ schemaAddStatus(name, options = {}) {
244
+ return this.runTyped("schema", { name, options: { ...options, subcommand: "add-status" } });
245
+ }
246
+ /**
247
+ * Remove a custom status.
248
+ */
249
+ schemaRemoveStatus(name, options = {}) {
250
+ return this.runTyped("schema", { name, options: { ...options, subcommand: "remove-status" } });
251
+ }
252
+ /**
253
+ * Register or replace a runtime custom field.
254
+ */
255
+ schemaAddField(name, options = {}) {
256
+ return this.runTyped("schema", { name, options: { ...options, subcommand: "add-field" } });
257
+ }
258
+ /**
259
+ * Remove a runtime custom field.
260
+ */
261
+ schemaRemoveField(name, options = {}) {
262
+ return this.runTyped("schema", { name, options: { ...options, subcommand: "remove-field" } });
263
+ }
264
+ /**
265
+ * List runtime custom fields.
266
+ */
267
+ schemaListFields() {
268
+ return this.runTyped("schema", { options: { subcommand: "list-fields" } });
269
+ }
270
+ /**
271
+ * Show one runtime custom field definition.
272
+ */
273
+ schemaShowField(name) {
274
+ return this.runTyped("schema", { name, options: { subcommand: "show-field" } });
275
+ }
276
+ /**
277
+ * Apply a built-in type preset to the workspace schema.
278
+ */
279
+ schemaApplyPreset(typePreset, options = {}) {
280
+ return this.runTyped("schema", { typePreset, options: { ...options, subcommand: "apply-preset" } });
281
+ }
282
+ /**
283
+ * Infer item types from the current tracker and optionally apply them.
284
+ */
285
+ schemaInferTypes(options = {}) {
286
+ return this.runTyped("schema", { options: { ...options, subcommand: "add-type", infer: true } });
287
+ }
288
+ /**
289
+ * Show one runtime status definition.
290
+ */
291
+ schemaShowStatus(name) {
292
+ return this.runTyped("schema", { name, options: { subcommand: "show-status" } });
293
+ }
294
+ /**
295
+ * Run the profile customization surface.
296
+ */
297
+ profile(subcommand, options = {}) {
298
+ return this.runTyped("profile", { options: { ...options, subcommand } });
299
+ }
300
+ /**
301
+ * List available project profiles.
302
+ */
303
+ profileList() {
304
+ return this.runTyped("profile", { options: { subcommand: "list" } });
305
+ }
306
+ /**
307
+ * Show a project profile.
308
+ */
309
+ profileShow(name) {
310
+ return this.runTyped("profile", { name, options: { subcommand: "show" } });
311
+ }
312
+ /**
313
+ * Apply a project profile.
314
+ */
315
+ profileApply(name, options = {}) {
316
+ return this.runTyped("profile", { name, options: { ...options, subcommand: "apply" } });
317
+ }
318
+ /**
319
+ * Lint a project profile.
320
+ */
321
+ profileLint(name) {
322
+ return this.runTyped("profile", { name, options: { subcommand: "lint" } });
323
+ }
324
+ /**
325
+ * Run project validation checks.
326
+ */
327
+ validate(options = {}) {
328
+ return this.runTyped("validate", { options });
329
+ }
330
+ /**
331
+ * Run project health checks.
332
+ */
333
+ health(options = {}) {
334
+ return this.runTyped("health", { options });
335
+ }
336
+ /**
337
+ * Run tracker cache/runtime garbage collection.
338
+ */
339
+ gc(options = {}) {
340
+ return this.runTyped("gc", { options });
341
+ }
149
342
  /**
150
343
  * Create an item using the same mutation path as `pm create`.
151
344
  */
152
345
  create(options = {}) {
153
- return this.run("create", splitClientMutationOptions(options));
346
+ return this.runTyped("create", splitFullClientMutationOptions(options));
154
347
  }
155
348
  /**
156
349
  * Update an item using the same mutation path as `pm update`.
157
350
  */
158
351
  update(id, options = {}) {
159
- return this.run("update", { id, ...splitClientMutationOptions(options) });
352
+ return this.runTyped("update", { id, ...splitFullClientMutationOptions(options) });
160
353
  }
161
354
  /**
162
355
  * Close an item using the same mutation path as `pm close`.
163
356
  */
164
357
  close(id, reason, options = {}) {
165
- return this.run("close", { id, reason, ...splitClientMutationOptions(options) });
358
+ return this.runTyped("close", { id, reason, ...splitFullClientMutationOptions(options) });
166
359
  }
167
360
  /**
168
361
  * Claim an item using the same mutation path as `pm claim`.
169
362
  */
170
363
  claim(id, options = {}) {
171
- return this.run("claim", { id, ...splitClientMutationOptions(options) });
364
+ return this.runTyped("claim", { id, ...splitFullClientMutationOptions(options) });
172
365
  }
173
366
  /**
174
367
  * Release an item's active claim using the same mutation path as `pm release`.
175
368
  */
176
369
  release(id, options = {}) {
177
- return this.run("release", { id, ...splitClientMutationOptions(options) });
370
+ return this.runTyped("release", { id, ...splitFullClientMutationOptions(options) });
178
371
  }
179
372
  /**
180
373
  * Copy an item using the same mutation path as `pm copy`.
181
374
  */
182
375
  copy(id, options = {}) {
183
- return this.run("copy", { id, ...splitClientMutationOptions(options) });
376
+ return this.runTyped("copy", { id, ...splitFullClientMutationOptions(options) });
184
377
  }
185
378
  /**
186
379
  * Delete an item using the same mutation path as `pm delete`.
187
380
  */
188
381
  delete(id, options = {}) {
189
- return this.run("delete", { id, ...splitClientMutationOptions(options) });
382
+ return this.runTyped("delete", { id, ...splitFullClientMutationOptions(options) });
190
383
  }
191
384
  /**
192
385
  * Restore an item to a history version or timestamp using `pm restore`.
193
386
  */
194
387
  restore(id, target, options = {}) {
195
- const { fullChangedFields, idOnly, ...runnerOptions } = options;
196
- return this.run("restore", {
197
- ...(fullChangedFields === undefined ? {} : { fullChangedFields }),
198
- ...(idOnly === undefined ? {} : { idOnly }),
388
+ return this.runTyped("restore", {
389
+ fullChangedFields: true,
199
390
  id,
200
- options: { ...runnerOptions, target },
391
+ options: { ...options, target },
201
392
  });
202
393
  }
203
394
  /**
204
395
  * Set, clear, or read workspace focus using the same path as `pm focus`.
205
396
  */
206
397
  focus(id, options = {}) {
207
- return this.run("focus", { ...(id === undefined ? {} : { id }), ...splitClientMutationOptions(options) });
398
+ return this.runTyped("focus", { ...(id === undefined ? {} : { id }), ...splitFullClientMutationOptions(options) });
208
399
  }
209
400
  /**
210
401
  * Claim an item and transition it to the workspace in-progress status.
211
402
  */
212
403
  startTask(id, options = {}) {
213
- return this.run("start-task", { id, ...splitClientMutationOptions(options) });
404
+ return this.runTyped("start-task", { id, ...splitFullClientMutationOptions(options) });
214
405
  }
215
406
  /**
216
407
  * Move an item back to the workspace open status and release the claim.
217
408
  */
218
409
  pauseTask(id, options = {}) {
219
- return this.run("pause-task", { id, ...splitClientMutationOptions(options) });
410
+ return this.runTyped("pause-task", { id, ...splitFullClientMutationOptions(options) });
220
411
  }
221
412
  /**
222
413
  * Close an item and release its active assignment.
223
414
  */
224
415
  closeTask(id, reason, options = {}) {
225
- return this.run("close-task", { id, reason, ...splitClientMutationOptions(options) });
416
+ return this.runTyped("close-task", { id, reason, ...splitFullClientMutationOptions(options) });
226
417
  }
227
418
  /**
228
419
  * Run the extension lifecycle surface with the same result shape as `pm extension`.
@@ -372,6 +563,198 @@ export function aggregate(options = {}, clientOptions = {}) {
372
563
  export function stats(options = {}, clientOptions = {}) {
373
564
  return new PmClient(clientOptions).stats(options);
374
565
  }
566
+ /**
567
+ * List, add, edit, or delete item comments without constructing a reusable client.
568
+ */
569
+ export function comments(id, options = {}, clientOptions = {}) {
570
+ return new PmClient(clientOptions).comments(id, options);
571
+ }
572
+ /**
573
+ * List or append private item notes without constructing a reusable client.
574
+ */
575
+ export function notes(id, options = {}, clientOptions = {}) {
576
+ return new PmClient(clientOptions).notes(id, options);
577
+ }
578
+ /**
579
+ * List or append durable item learnings without constructing a reusable client.
580
+ */
581
+ export function learnings(id, options = {}, clientOptions = {}) {
582
+ return new PmClient(clientOptions).learnings(id, options);
583
+ }
584
+ /**
585
+ * Manage linked item files without constructing a reusable client.
586
+ */
587
+ export function files(id, options = {}, clientOptions = {}) {
588
+ return new PmClient(clientOptions).files(id, options);
589
+ }
590
+ /**
591
+ * Discover linked item files without constructing a reusable client.
592
+ */
593
+ export function filesDiscover(id, options = {}, clientOptions = {}) {
594
+ return new PmClient(clientOptions).filesDiscover(id, options);
595
+ }
596
+ /**
597
+ * Manage linked item docs without constructing a reusable client.
598
+ */
599
+ export function docs(id, options = {}, clientOptions = {}) {
600
+ return new PmClient(clientOptions).docs(id, options);
601
+ }
602
+ /**
603
+ * Inspect item dependency relationships without constructing a reusable client.
604
+ */
605
+ export function deps(id, options = {}, clientOptions = {}) {
606
+ return new PmClient(clientOptions).deps(id, options);
607
+ }
608
+ /**
609
+ * Append markdown/body text to an item without constructing a reusable client.
610
+ */
611
+ export function append(id, body, options = {}, clientOptions = {}) {
612
+ return new PmClient(clientOptions).append(id, body, options);
613
+ }
614
+ /**
615
+ * Initialize a workspace without constructing a reusable client.
616
+ */
617
+ export function init(prefix, options = {}, clientOptions = {}) {
618
+ return new PmClient(clientOptions).init(prefix, options);
619
+ }
620
+ /**
621
+ * Read or update configuration without constructing a reusable client.
622
+ */
623
+ export function config(scope, configAction, key, value, options = {}, clientOptions = {}) {
624
+ return new PmClient(clientOptions).config(scope, configAction, key, value, options);
625
+ }
626
+ /**
627
+ * Run the schema customization surface without constructing a reusable client.
628
+ */
629
+ export function schema(subcommand, options = {}, clientOptions = {}) {
630
+ return new PmClient(clientOptions).schema(subcommand, options);
631
+ }
632
+ /**
633
+ * List schema definitions without constructing a reusable client.
634
+ */
635
+ export function schemaList(clientOptions = {}) {
636
+ return new PmClient(clientOptions).schemaList();
637
+ }
638
+ /**
639
+ * Show a schema item type without constructing a reusable client.
640
+ */
641
+ export function schemaShow(name, clientOptions = {}) {
642
+ return new PmClient(clientOptions).schemaShow(name);
643
+ }
644
+ /**
645
+ * Register a custom item type without constructing a reusable client.
646
+ */
647
+ export function schemaAddType(name, options = {}, clientOptions = {}) {
648
+ return new PmClient(clientOptions).schemaAddType(name, options);
649
+ }
650
+ /**
651
+ * Remove a custom item type without constructing a reusable client.
652
+ */
653
+ export function schemaRemoveType(name, options = {}, clientOptions = {}) {
654
+ return new PmClient(clientOptions).schemaRemoveType(name, options);
655
+ }
656
+ /**
657
+ * Register a custom status without constructing a reusable client.
658
+ */
659
+ export function schemaAddStatus(name, options = {}, clientOptions = {}) {
660
+ return new PmClient(clientOptions).schemaAddStatus(name, options);
661
+ }
662
+ /**
663
+ * Remove a custom status without constructing a reusable client.
664
+ */
665
+ export function schemaRemoveStatus(name, options = {}, clientOptions = {}) {
666
+ return new PmClient(clientOptions).schemaRemoveStatus(name, options);
667
+ }
668
+ /**
669
+ * Register a custom field without constructing a reusable client.
670
+ */
671
+ export function schemaAddField(name, options = {}, clientOptions = {}) {
672
+ return new PmClient(clientOptions).schemaAddField(name, options);
673
+ }
674
+ /**
675
+ * Remove a custom field without constructing a reusable client.
676
+ */
677
+ export function schemaRemoveField(name, options = {}, clientOptions = {}) {
678
+ return new PmClient(clientOptions).schemaRemoveField(name, options);
679
+ }
680
+ /**
681
+ * List custom fields without constructing a reusable client.
682
+ */
683
+ export function schemaListFields(clientOptions = {}) {
684
+ return new PmClient(clientOptions).schemaListFields();
685
+ }
686
+ /**
687
+ * Show a custom field without constructing a reusable client.
688
+ */
689
+ export function schemaShowField(name, clientOptions = {}) {
690
+ return new PmClient(clientOptions).schemaShowField(name);
691
+ }
692
+ /**
693
+ * Apply a schema preset without constructing a reusable client.
694
+ */
695
+ export function schemaApplyPreset(typePreset, options = {}, clientOptions = {}) {
696
+ return new PmClient(clientOptions).schemaApplyPreset(typePreset, options);
697
+ }
698
+ /**
699
+ * Infer schema types without constructing a reusable client.
700
+ */
701
+ export function schemaInferTypes(options = {}, clientOptions = {}) {
702
+ return new PmClient(clientOptions).schemaInferTypes(options);
703
+ }
704
+ /**
705
+ * Show a custom status without constructing a reusable client.
706
+ */
707
+ export function schemaShowStatus(name, clientOptions = {}) {
708
+ return new PmClient(clientOptions).schemaShowStatus(name);
709
+ }
710
+ /**
711
+ * Run the profile customization surface without constructing a reusable client.
712
+ */
713
+ export function profile(subcommand, options = {}, clientOptions = {}) {
714
+ return new PmClient(clientOptions).profile(subcommand, options);
715
+ }
716
+ /**
717
+ * List profiles without constructing a reusable client.
718
+ */
719
+ export function profileList(clientOptions = {}) {
720
+ return new PmClient(clientOptions).profileList();
721
+ }
722
+ /**
723
+ * Show a profile without constructing a reusable client.
724
+ */
725
+ export function profileShow(name, clientOptions = {}) {
726
+ return new PmClient(clientOptions).profileShow(name);
727
+ }
728
+ /**
729
+ * Apply a profile without constructing a reusable client.
730
+ */
731
+ export function profileApply(name, options = {}, clientOptions = {}) {
732
+ return new PmClient(clientOptions).profileApply(name, options);
733
+ }
734
+ /**
735
+ * Lint a profile without constructing a reusable client.
736
+ */
737
+ export function profileLint(name, clientOptions = {}) {
738
+ return new PmClient(clientOptions).profileLint(name);
739
+ }
740
+ /**
741
+ * Validate a tracker without constructing a reusable client.
742
+ */
743
+ export function validate(options = {}, clientOptions = {}) {
744
+ return new PmClient(clientOptions).validate(options);
745
+ }
746
+ /**
747
+ * Run health checks without constructing a reusable client.
748
+ */
749
+ export function health(options = {}, clientOptions = {}) {
750
+ return new PmClient(clientOptions).health(options);
751
+ }
752
+ /**
753
+ * Run cache/runtime garbage collection without constructing a reusable client.
754
+ */
755
+ export function gc(options = {}, clientOptions = {}) {
756
+ return new PmClient(clientOptions).gc(options);
757
+ }
375
758
  /**
376
759
  * Create an item without constructing a reusable client.
377
760
  */
@@ -683,11 +1066,16 @@ const LIFECYCLE_AUTHOR_ALIAS_ACTIONS = new Set([
683
1066
  function normalizeMcpOptionsArrays(options, action) {
684
1067
  const result = {};
685
1068
  const promoteAddRemove = action !== undefined && ARRAY_ADD_REMOVE_ACTIONS.has(action);
1069
+ const preserveStandaloneNote = action === "files" || action === "files-discover" || action === "docs";
686
1070
  for (const [key, value] of Object.entries(options)) {
687
1071
  if (Array.isArray(value) && ARRAY_TO_CSV_FIELDS.has(key)) {
688
1072
  result[key] = value.join(",");
689
1073
  continue;
690
1074
  }
1075
+ if (key === "note" && preserveStandaloneNote) {
1076
+ result[key] = value;
1077
+ continue;
1078
+ }
691
1079
  if (typeof value === "string" && SCALAR_TO_ARRAY_FIELDS.has(key)) {
692
1080
  result[key] = [value];
693
1081
  continue;
@@ -1698,4 +2086,4 @@ async function loadWorkspaceExtensionRegistrations(pmRoot, settings, cwd) {
1698
2086
  }
1699
2087
  }
1700
2088
  //# sourceMappingURL=runtime.js.map
1701
- //# debugId=6781d5a3-3e21-5198-a534-fb2be114b6e1
2089
+ //# debugId=a1d2566f-bb81-5e21-aaab-f501f90657ed