@unbrained/pm-cli 2026.3.12 → 2026.5.1-2

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 (285) hide show
  1. package/.agents/pm/extensions/.managed-extensions.json +42 -0
  2. package/.agents/pm/extensions/beads/index.js +109 -0
  3. package/.agents/pm/extensions/beads/manifest.json +7 -0
  4. package/{dist/cli/commands/beads.js → .agents/pm/extensions/beads/runtime.js} +31 -21
  5. package/.agents/pm/extensions/beads/runtime.ts +702 -0
  6. package/.agents/pm/extensions/todos/index.js +126 -0
  7. package/.agents/pm/extensions/todos/manifest.json +7 -0
  8. package/{dist/extensions/builtins/todos/import-export.js → .agents/pm/extensions/todos/runtime.js} +39 -29
  9. package/.agents/pm/extensions/todos/runtime.ts +568 -0
  10. package/AGENTS.md +196 -92
  11. package/CHANGELOG.md +404 -0
  12. package/CODE_OF_CONDUCT.md +42 -0
  13. package/CONTRIBUTING.md +144 -0
  14. package/PRD.md +512 -164
  15. package/README.md +1053 -2
  16. package/SECURITY.md +51 -0
  17. package/dist/cli/commands/activity.d.ts +5 -0
  18. package/dist/cli/commands/activity.js +66 -3
  19. package/dist/cli/commands/activity.js.map +1 -1
  20. package/dist/cli/commands/aggregate.d.ts +54 -0
  21. package/dist/cli/commands/aggregate.js +181 -0
  22. package/dist/cli/commands/aggregate.js.map +1 -0
  23. package/dist/cli/commands/append.js +4 -1
  24. package/dist/cli/commands/append.js.map +1 -1
  25. package/dist/cli/commands/calendar.d.ts +109 -0
  26. package/dist/cli/commands/calendar.js +797 -0
  27. package/dist/cli/commands/calendar.js.map +1 -0
  28. package/dist/cli/commands/claim.d.ts +5 -1
  29. package/dist/cli/commands/claim.js +42 -21
  30. package/dist/cli/commands/claim.js.map +1 -1
  31. package/dist/cli/commands/close.d.ts +1 -0
  32. package/dist/cli/commands/close.js +54 -5
  33. package/dist/cli/commands/close.js.map +1 -1
  34. package/dist/cli/commands/comments-audit.d.ts +91 -0
  35. package/dist/cli/commands/comments-audit.js +195 -0
  36. package/dist/cli/commands/comments-audit.js.map +1 -0
  37. package/dist/cli/commands/comments.d.ts +1 -0
  38. package/dist/cli/commands/comments.js +70 -21
  39. package/dist/cli/commands/comments.js.map +1 -1
  40. package/dist/cli/commands/completion.d.ts +10 -4
  41. package/dist/cli/commands/completion.js +1184 -137
  42. package/dist/cli/commands/completion.js.map +1 -1
  43. package/dist/cli/commands/config.d.ts +35 -3
  44. package/dist/cli/commands/config.js +968 -13
  45. package/dist/cli/commands/config.js.map +1 -1
  46. package/dist/cli/commands/context.d.ts +86 -0
  47. package/dist/cli/commands/context.js +299 -0
  48. package/dist/cli/commands/context.js.map +1 -0
  49. package/dist/cli/commands/contracts.d.ts +78 -0
  50. package/dist/cli/commands/contracts.js +920 -0
  51. package/dist/cli/commands/contracts.js.map +1 -0
  52. package/dist/cli/commands/create.d.ts +48 -14
  53. package/dist/cli/commands/create.js +1331 -160
  54. package/dist/cli/commands/create.js.map +1 -1
  55. package/dist/cli/commands/dedupe-audit.d.ts +81 -0
  56. package/dist/cli/commands/dedupe-audit.js +330 -0
  57. package/dist/cli/commands/dedupe-audit.js.map +1 -0
  58. package/dist/cli/commands/deps.d.ts +52 -0
  59. package/dist/cli/commands/deps.js +204 -0
  60. package/dist/cli/commands/deps.js.map +1 -0
  61. package/dist/cli/commands/docs.d.ts +19 -0
  62. package/dist/cli/commands/docs.js +212 -13
  63. package/dist/cli/commands/docs.js.map +1 -1
  64. package/dist/cli/commands/extension.d.ts +122 -0
  65. package/dist/cli/commands/extension.js +1850 -0
  66. package/dist/cli/commands/extension.js.map +1 -0
  67. package/dist/cli/commands/files.d.ts +52 -1
  68. package/dist/cli/commands/files.js +455 -13
  69. package/dist/cli/commands/files.js.map +1 -1
  70. package/dist/cli/commands/gc.d.ts +11 -1
  71. package/dist/cli/commands/gc.js +89 -11
  72. package/dist/cli/commands/gc.js.map +1 -1
  73. package/dist/cli/commands/get.d.ts +13 -0
  74. package/dist/cli/commands/get.js +35 -3
  75. package/dist/cli/commands/get.js.map +1 -1
  76. package/dist/cli/commands/health.d.ts +10 -2
  77. package/dist/cli/commands/health.js +774 -23
  78. package/dist/cli/commands/health.js.map +1 -1
  79. package/dist/cli/commands/history.d.ts +20 -0
  80. package/dist/cli/commands/history.js +152 -6
  81. package/dist/cli/commands/history.js.map +1 -1
  82. package/dist/cli/commands/index.d.ts +16 -3
  83. package/dist/cli/commands/index.js +16 -3
  84. package/dist/cli/commands/index.js.map +1 -1
  85. package/dist/cli/commands/init.d.ts +7 -2
  86. package/dist/cli/commands/init.js +137 -5
  87. package/dist/cli/commands/init.js.map +1 -1
  88. package/dist/cli/commands/learnings.d.ts +17 -0
  89. package/dist/cli/commands/learnings.js +129 -0
  90. package/dist/cli/commands/learnings.js.map +1 -0
  91. package/dist/cli/commands/list.d.ts +29 -1
  92. package/dist/cli/commands/list.js +289 -53
  93. package/dist/cli/commands/list.js.map +1 -1
  94. package/dist/cli/commands/normalize.d.ts +51 -0
  95. package/dist/cli/commands/normalize.js +298 -0
  96. package/dist/cli/commands/normalize.js.map +1 -0
  97. package/dist/cli/commands/notes.d.ts +17 -0
  98. package/dist/cli/commands/notes.js +129 -0
  99. package/dist/cli/commands/notes.js.map +1 -0
  100. package/dist/cli/commands/reindex.d.ts +1 -0
  101. package/dist/cli/commands/reindex.js +208 -32
  102. package/dist/cli/commands/reindex.js.map +1 -1
  103. package/dist/cli/commands/restore.js +164 -30
  104. package/dist/cli/commands/restore.js.map +1 -1
  105. package/dist/cli/commands/search.d.ts +14 -1
  106. package/dist/cli/commands/search.js +475 -81
  107. package/dist/cli/commands/search.js.map +1 -1
  108. package/dist/cli/commands/stats.js +26 -10
  109. package/dist/cli/commands/stats.js.map +1 -1
  110. package/dist/cli/commands/templates.d.ts +26 -0
  111. package/dist/cli/commands/templates.js +179 -0
  112. package/dist/cli/commands/templates.js.map +1 -0
  113. package/dist/cli/commands/test-all.d.ts +19 -1
  114. package/dist/cli/commands/test-all.js +161 -13
  115. package/dist/cli/commands/test-all.js.map +1 -1
  116. package/dist/cli/commands/test-runs.d.ts +63 -0
  117. package/dist/cli/commands/test-runs.js +179 -0
  118. package/dist/cli/commands/test-runs.js.map +1 -0
  119. package/dist/cli/commands/test.d.ts +75 -1
  120. package/dist/cli/commands/test.js +1360 -41
  121. package/dist/cli/commands/test.js.map +1 -1
  122. package/dist/cli/commands/update-many.d.ts +57 -0
  123. package/dist/cli/commands/update-many.js +631 -0
  124. package/dist/cli/commands/update-many.js.map +1 -0
  125. package/dist/cli/commands/update.d.ts +30 -0
  126. package/dist/cli/commands/update.js +1393 -84
  127. package/dist/cli/commands/update.js.map +1 -1
  128. package/dist/cli/commands/validate.d.ts +30 -0
  129. package/dist/cli/commands/validate.js +1151 -0
  130. package/dist/cli/commands/validate.js.map +1 -0
  131. package/dist/cli/error-guidance.d.ts +33 -0
  132. package/dist/cli/error-guidance.js +337 -0
  133. package/dist/cli/error-guidance.js.map +1 -0
  134. package/dist/cli/extension-command-options.d.ts +1 -0
  135. package/dist/cli/extension-command-options.js +92 -0
  136. package/dist/cli/extension-command-options.js.map +1 -1
  137. package/dist/cli/help-content.d.ts +20 -0
  138. package/dist/cli/help-content.js +543 -0
  139. package/dist/cli/help-content.js.map +1 -0
  140. package/dist/cli/main.js +3625 -445
  141. package/dist/cli/main.js.map +1 -1
  142. package/dist/core/extensions/index.d.ts +13 -1
  143. package/dist/core/extensions/index.js +108 -1
  144. package/dist/core/extensions/index.js.map +1 -1
  145. package/dist/core/extensions/item-fields.d.ts +2 -0
  146. package/dist/core/extensions/item-fields.js +79 -0
  147. package/dist/core/extensions/item-fields.js.map +1 -0
  148. package/dist/core/extensions/loader.d.ts +322 -9
  149. package/dist/core/extensions/loader.js +911 -20
  150. package/dist/core/extensions/loader.js.map +1 -1
  151. package/dist/core/extensions/runtime-registrations.d.ts +5 -0
  152. package/dist/core/extensions/runtime-registrations.js +51 -0
  153. package/dist/core/extensions/runtime-registrations.js.map +1 -0
  154. package/dist/core/history/history-stream-policy.d.ts +20 -0
  155. package/dist/core/history/history-stream-policy.js +53 -0
  156. package/dist/core/history/history-stream-policy.js.map +1 -0
  157. package/dist/core/history/history.js +90 -1
  158. package/dist/core/history/history.js.map +1 -1
  159. package/dist/core/item/id.js +4 -1
  160. package/dist/core/item/id.js.map +1 -1
  161. package/dist/core/item/index.d.ts +1 -0
  162. package/dist/core/item/index.js +1 -0
  163. package/dist/core/item/index.js.map +1 -1
  164. package/dist/core/item/item-format.d.ts +11 -5
  165. package/dist/core/item/item-format.js +507 -24
  166. package/dist/core/item/item-format.js.map +1 -1
  167. package/dist/core/item/parent-reference-policy.d.ts +6 -0
  168. package/dist/core/item/parent-reference-policy.js +32 -0
  169. package/dist/core/item/parent-reference-policy.js.map +1 -0
  170. package/dist/core/item/parse.d.ts +5 -0
  171. package/dist/core/item/parse.js +216 -19
  172. package/dist/core/item/parse.js.map +1 -1
  173. package/dist/core/item/sprint-release-format.d.ts +6 -0
  174. package/dist/core/item/sprint-release-format.js +33 -0
  175. package/dist/core/item/sprint-release-format.js.map +1 -0
  176. package/dist/core/item/status.d.ts +3 -0
  177. package/dist/core/item/status.js +24 -0
  178. package/dist/core/item/status.js.map +1 -0
  179. package/dist/core/item/type-registry.d.ts +37 -0
  180. package/dist/core/item/type-registry.js +706 -0
  181. package/dist/core/item/type-registry.js.map +1 -0
  182. package/dist/core/lock/lock.d.ts +1 -1
  183. package/dist/core/lock/lock.js +101 -12
  184. package/dist/core/lock/lock.js.map +1 -1
  185. package/dist/core/output/command-aware.d.ts +1 -0
  186. package/dist/core/output/command-aware.js +394 -0
  187. package/dist/core/output/command-aware.js.map +1 -0
  188. package/dist/core/output/output.d.ts +3 -0
  189. package/dist/core/output/output.js +124 -6
  190. package/dist/core/output/output.js.map +1 -1
  191. package/dist/core/schema/runtime-field-filters.d.ts +3 -0
  192. package/dist/core/schema/runtime-field-filters.js +39 -0
  193. package/dist/core/schema/runtime-field-filters.js.map +1 -0
  194. package/dist/core/schema/runtime-field-values.d.ts +8 -0
  195. package/dist/core/schema/runtime-field-values.js +154 -0
  196. package/dist/core/schema/runtime-field-values.js.map +1 -0
  197. package/dist/core/schema/runtime-schema.d.ts +68 -0
  198. package/dist/core/schema/runtime-schema.js +554 -0
  199. package/dist/core/schema/runtime-schema.js.map +1 -0
  200. package/dist/core/search/cache.d.ts +13 -1
  201. package/dist/core/search/cache.js +123 -14
  202. package/dist/core/search/cache.js.map +1 -1
  203. package/dist/core/search/semantic-defaults.d.ts +6 -0
  204. package/dist/core/search/semantic-defaults.js +120 -0
  205. package/dist/core/search/semantic-defaults.js.map +1 -0
  206. package/dist/core/search/vector-stores.js +3 -1
  207. package/dist/core/search/vector-stores.js.map +1 -1
  208. package/dist/core/shared/command-types.d.ts +2 -0
  209. package/dist/core/shared/conflict-markers.d.ts +7 -0
  210. package/dist/core/shared/conflict-markers.js +27 -0
  211. package/dist/core/shared/conflict-markers.js.map +1 -0
  212. package/dist/core/shared/constants.d.ts +15 -4
  213. package/dist/core/shared/constants.js +141 -1
  214. package/dist/core/shared/constants.js.map +1 -1
  215. package/dist/core/shared/errors.d.ts +10 -1
  216. package/dist/core/shared/errors.js +3 -1
  217. package/dist/core/shared/errors.js.map +1 -1
  218. package/dist/core/shared/text-normalization.d.ts +4 -0
  219. package/dist/core/shared/text-normalization.js +33 -0
  220. package/dist/core/shared/text-normalization.js.map +1 -0
  221. package/dist/core/shared/time.d.ts +1 -2
  222. package/dist/core/shared/time.js +98 -11
  223. package/dist/core/shared/time.js.map +1 -1
  224. package/dist/core/store/index.d.ts +1 -0
  225. package/dist/core/store/index.js +1 -0
  226. package/dist/core/store/index.js.map +1 -1
  227. package/dist/core/store/item-format-migration.d.ts +9 -0
  228. package/dist/core/store/item-format-migration.js +87 -0
  229. package/dist/core/store/item-format-migration.js.map +1 -0
  230. package/dist/core/store/item-store.d.ts +13 -4
  231. package/dist/core/store/item-store.js +238 -51
  232. package/dist/core/store/item-store.js.map +1 -1
  233. package/dist/core/store/paths.d.ts +21 -3
  234. package/dist/core/store/paths.js +59 -4
  235. package/dist/core/store/paths.js.map +1 -1
  236. package/dist/core/store/settings.d.ts +14 -1
  237. package/dist/core/store/settings.js +463 -7
  238. package/dist/core/store/settings.js.map +1 -1
  239. package/dist/core/telemetry/consent.d.ts +2 -0
  240. package/dist/core/telemetry/consent.js +79 -0
  241. package/dist/core/telemetry/consent.js.map +1 -0
  242. package/dist/core/telemetry/runtime.d.ts +38 -0
  243. package/dist/core/telemetry/runtime.js +733 -0
  244. package/dist/core/telemetry/runtime.js.map +1 -0
  245. package/dist/core/test/background-runs.d.ts +117 -0
  246. package/dist/core/test/background-runs.js +760 -0
  247. package/dist/core/test/background-runs.js.map +1 -0
  248. package/dist/core/test/item-test-run-tracking.d.ts +9 -0
  249. package/dist/core/test/item-test-run-tracking.js +50 -0
  250. package/dist/core/test/item-test-run-tracking.js.map +1 -0
  251. package/dist/sdk/cli-contracts.d.ts +92 -0
  252. package/dist/sdk/cli-contracts.js +2357 -0
  253. package/dist/sdk/cli-contracts.js.map +1 -0
  254. package/dist/sdk/index.d.ts +34 -0
  255. package/dist/sdk/index.js +23 -0
  256. package/dist/sdk/index.js.map +1 -0
  257. package/dist/types.d.ts +197 -3
  258. package/dist/types.js +48 -1
  259. package/dist/types.js.map +1 -1
  260. package/docs/ARCHITECTURE.md +368 -39
  261. package/docs/EXTENSIONS.md +454 -49
  262. package/docs/RELEASING.md +70 -19
  263. package/docs/SDK.md +123 -0
  264. package/docs/examples/starter-extension/README.md +48 -0
  265. package/docs/examples/starter-extension/index.js +191 -0
  266. package/docs/examples/starter-extension/manifest.json +17 -0
  267. package/docs/examples/starter-extension/package.json +10 -0
  268. package/package.json +41 -14
  269. package/.pi/extensions/pm-cli/index.ts +0 -778
  270. package/dist/cli/commands/beads.d.ts +0 -16
  271. package/dist/cli/commands/beads.js.map +0 -1
  272. package/dist/cli/commands/install.d.ts +0 -18
  273. package/dist/cli/commands/install.js +0 -87
  274. package/dist/cli/commands/install.js.map +0 -1
  275. package/dist/core/extensions/builtins.d.ts +0 -3
  276. package/dist/core/extensions/builtins.js +0 -47
  277. package/dist/core/extensions/builtins.js.map +0 -1
  278. package/dist/extensions/builtins/beads/index.d.ts +0 -8
  279. package/dist/extensions/builtins/beads/index.js +0 -33
  280. package/dist/extensions/builtins/beads/index.js.map +0 -1
  281. package/dist/extensions/builtins/todos/import-export.d.ts +0 -26
  282. package/dist/extensions/builtins/todos/import-export.js.map +0 -1
  283. package/dist/extensions/builtins/todos/index.d.ts +0 -8
  284. package/dist/extensions/builtins/todos/index.js +0 -38
  285. package/dist/extensions/builtins/todos/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-aware.js","sourceRoot":"","sources":["../../../src/core/output/command-aware.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  export interface OutputOptions {
2
2
  json?: boolean;
3
3
  quiet?: boolean;
4
+ defaultOutputFormat?: "toon" | "json";
4
5
  }
6
+ export declare function writeStdout(text: string): boolean;
7
+ export declare function writeStderr(text: string): boolean;
5
8
  export declare function formatOutput(result: unknown, options: OutputOptions): string;
6
9
  export declare function printResult(result: unknown, options: OutputOptions): void;
7
10
  export declare function printError(message: string): void;
@@ -1,7 +1,80 @@
1
- import { runActiveCommandOverride, runActiveRendererOverride } from "../extensions/index.js";
1
+ import { runActiveCommandOverride, runActiveRendererOverride, runActiveServiceOverrideSync, setActiveCommandResult, } from "../extensions/index.js";
2
+ import { EXIT_CODE } from "../shared/constants.js";
3
+ let streamErrorHandlersInstalled = false;
2
4
  function isPlainObject(value) {
3
5
  return typeof value === "object" && value !== null && !Array.isArray(value);
4
6
  }
7
+ function isBrokenPipeError(error) {
8
+ return typeof error === "object" && error !== null && error.code === "EPIPE";
9
+ }
10
+ function markStdoutBrokenPipeExitCode() {
11
+ if (process.exitCode === undefined || process.exitCode === EXIT_CODE.SUCCESS) {
12
+ process.exitCode = EXIT_CODE.SUCCESS;
13
+ }
14
+ }
15
+ function markStderrBrokenPipeExitCode() {
16
+ if (process.exitCode === undefined || process.exitCode === EXIT_CODE.SUCCESS) {
17
+ process.exitCode = EXIT_CODE.GENERIC_FAILURE;
18
+ }
19
+ }
20
+ function markBrokenPipeExitCode(target) {
21
+ if (target === "stdout") {
22
+ markStdoutBrokenPipeExitCode();
23
+ return;
24
+ }
25
+ markStderrBrokenPipeExitCode();
26
+ }
27
+ function handleUnhandledStreamError(error) {
28
+ const unhandled = error instanceof Error ? error : new Error(String(error));
29
+ setImmediate(() => {
30
+ throw unhandled;
31
+ });
32
+ }
33
+ function installStreamErrorHandlers() {
34
+ if (streamErrorHandlersInstalled) {
35
+ return;
36
+ }
37
+ streamErrorHandlersInstalled = true;
38
+ process.stdout.on("error", (error) => {
39
+ if (isBrokenPipeError(error)) {
40
+ markBrokenPipeExitCode("stdout");
41
+ return;
42
+ }
43
+ handleUnhandledStreamError(error);
44
+ });
45
+ process.stderr.on("error", (error) => {
46
+ if (isBrokenPipeError(error)) {
47
+ markBrokenPipeExitCode("stderr");
48
+ return;
49
+ }
50
+ handleUnhandledStreamError(error);
51
+ });
52
+ }
53
+ function writeToStream(target, text) {
54
+ installStreamErrorHandlers();
55
+ try {
56
+ if (target === "stdout") {
57
+ process.stdout.write(text);
58
+ }
59
+ else {
60
+ process.stderr.write(text);
61
+ }
62
+ return true;
63
+ }
64
+ catch (error) {
65
+ if (isBrokenPipeError(error)) {
66
+ markBrokenPipeExitCode(target);
67
+ return false;
68
+ }
69
+ throw error;
70
+ }
71
+ }
72
+ export function writeStdout(text) {
73
+ return writeToStream("stdout", text);
74
+ }
75
+ export function writeStderr(text) {
76
+ return writeToStream("stderr", text);
77
+ }
5
78
  function renderScalar(value) {
6
79
  if (typeof value === "string")
7
80
  return JSON.stringify(value);
@@ -11,6 +84,28 @@ function renderScalar(value) {
11
84
  return "null";
12
85
  return JSON.stringify(value);
13
86
  }
87
+ function compactToonValue(value) {
88
+ if (value === null || value === undefined) {
89
+ return undefined;
90
+ }
91
+ if (Array.isArray(value)) {
92
+ const compactedEntries = value
93
+ .map((entry) => compactToonValue(entry))
94
+ .filter((entry) => entry !== undefined);
95
+ return compactedEntries.length > 0 ? compactedEntries : undefined;
96
+ }
97
+ if (isPlainObject(value)) {
98
+ const compacted = {};
99
+ for (const [key, entry] of Object.entries(value)) {
100
+ const compactedEntry = compactToonValue(entry);
101
+ if (compactedEntry !== undefined) {
102
+ compacted[key] = compactedEntry;
103
+ }
104
+ }
105
+ return Object.keys(compacted).length > 0 ? compacted : undefined;
106
+ }
107
+ return value;
108
+ }
14
109
  function renderToonValue(value, depth) {
15
110
  const indent = " ".repeat(depth);
16
111
  if (Array.isArray(value)) {
@@ -56,24 +151,47 @@ function renderToonValue(value, depth) {
56
151
  export function formatOutput(result, options) {
57
152
  const commandOverride = runActiveCommandOverride(result);
58
153
  const effectiveResult = commandOverride.result;
59
- const format = options.json ? "json" : "toon";
154
+ setActiveCommandResult(effectiveResult);
155
+ const format = options.json === true
156
+ ? "json"
157
+ : options.json === false
158
+ ? "toon"
159
+ : options.defaultOutputFormat === "json"
160
+ ? "json"
161
+ : "toon";
162
+ const serviceOverride = runActiveServiceOverrideSync("output_format", {
163
+ format,
164
+ options: { ...options },
165
+ result: effectiveResult,
166
+ });
167
+ if (serviceOverride.handled && typeof serviceOverride.result === "string") {
168
+ return serviceOverride.result.endsWith("\n") ? serviceOverride.result : `${serviceOverride.result}\n`;
169
+ }
60
170
  const rendererOverride = runActiveRendererOverride(format, effectiveResult);
61
171
  if (rendererOverride.rendered !== null) {
62
172
  return rendererOverride.rendered.endsWith("\n") ? rendererOverride.rendered : `${rendererOverride.rendered}\n`;
63
173
  }
64
- if (options.json) {
174
+ if (format === "json") {
65
175
  return `${JSON.stringify(effectiveResult, null, 2)}\n`;
66
176
  }
67
- return `${renderToonValue(effectiveResult, 0)}\n`;
177
+ const compactedToon = compactToonValue(effectiveResult);
178
+ if (compactedToon === undefined) {
179
+ return "{}\n";
180
+ }
181
+ return `${renderToonValue(compactedToon, 0)}\n`;
68
182
  }
69
183
  export function printResult(result, options) {
70
184
  const rendered = formatOutput(result, options);
71
185
  if (options.quiet) {
72
186
  return;
73
187
  }
74
- process.stdout.write(rendered);
188
+ writeStdout(rendered);
75
189
  }
76
190
  export function printError(message) {
77
- process.stderr.write(`${message}\n`);
191
+ const override = runActiveServiceOverrideSync("error_format", {
192
+ message,
193
+ });
194
+ const rendered = override.handled && typeof override.result === "string" ? override.result : message;
195
+ writeStderr(rendered.endsWith("\n") ? rendered : `${rendered}\n`);
78
196
  }
79
197
  //# sourceMappingURL=output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/core/output/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/core/output/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { RuntimeFieldCommand, RuntimeFieldRegistry } from "./runtime-schema.js";
2
+ export declare function collectRuntimeFilterValues(options: Record<string, unknown>, fieldRegistry: RuntimeFieldRegistry, command: RuntimeFieldCommand): Record<string, unknown>;
3
+ export declare function matchesRuntimeFilters(item: Record<string, unknown>, filters: Record<string, unknown>): boolean;
@@ -0,0 +1,39 @@
1
+ import { coerceRuntimeFieldValue, readRuntimeFieldOptionValue } from "./runtime-field-values.js";
2
+ function valuesEqual(left, right) {
3
+ return JSON.stringify(left) === JSON.stringify(right);
4
+ }
5
+ export function collectRuntimeFilterValues(options, fieldRegistry, command) {
6
+ const filters = {};
7
+ for (const definition of fieldRegistry.command_to_fields.get(command) ?? []) {
8
+ const rawValue = readRuntimeFieldOptionValue(options, definition);
9
+ if (rawValue === undefined) {
10
+ continue;
11
+ }
12
+ filters[definition.front_matter_key] = coerceRuntimeFieldValue(definition, rawValue);
13
+ }
14
+ return filters;
15
+ }
16
+ export function matchesRuntimeFilters(item, filters) {
17
+ for (const [fieldKey, expectedValue] of Object.entries(filters)) {
18
+ const actualValue = item[fieldKey];
19
+ if (Array.isArray(expectedValue)) {
20
+ if (Array.isArray(actualValue)) {
21
+ const normalizedActual = actualValue.map((value) => String(value));
22
+ const normalizedExpected = expectedValue.map((value) => String(value));
23
+ if (!normalizedExpected.every((value) => normalizedActual.includes(value))) {
24
+ return false;
25
+ }
26
+ continue;
27
+ }
28
+ if (!valuesEqual(actualValue, expectedValue[expectedValue.length - 1])) {
29
+ return false;
30
+ }
31
+ continue;
32
+ }
33
+ if (!valuesEqual(actualValue, expectedValue)) {
34
+ return false;
35
+ }
36
+ }
37
+ return true;
38
+ }
39
+ //# sourceMappingURL=runtime-field-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-field-filters.js","sourceRoot":"","sources":["../../../src/core/schema/runtime-field-filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAGjG,SAAS,WAAW,CAAC,IAAa,EAAE,KAAc;IAChD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAgC,EAChC,aAAmC,EACnC,OAA4B;IAE5B,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,UAAU,IAAI,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,2BAA2B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,uBAAuB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAA6B,EAAE,OAAgC;IACnG,KAAK,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnE,MAAM,kBAAkB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC3E,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type RuntimeFieldDefinitionResolved, type RuntimeFieldRegistry } from "./runtime-schema.js";
2
+ export declare function readRuntimeFieldOptionValue(options: Record<string, unknown>, definition: RuntimeFieldDefinitionResolved): unknown;
3
+ export declare function coerceRuntimeFieldValue(definition: RuntimeFieldDefinitionResolved, rawValue: unknown, labelOverride?: string): unknown;
4
+ export declare function collectRuntimeCreateFieldValues(options: Record<string, unknown>, fieldRegistry: RuntimeFieldRegistry, itemTypeName: string | undefined): {
5
+ values: Record<string, unknown>;
6
+ missing_required_flags: string[];
7
+ };
8
+ export declare function collectRuntimeUpdateFieldValues(options: Record<string, unknown>, fieldRegistry: RuntimeFieldRegistry): Record<string, unknown>;
@@ -0,0 +1,154 @@
1
+ import { EXIT_CODE } from "../shared/constants.js";
2
+ import { PmCliError } from "../shared/errors.js";
3
+ import { runtimeFieldOptionTarget } from "./runtime-schema.js";
4
+ function toCamelToken(value) {
5
+ const segments = value
6
+ .trim()
7
+ .replaceAll(/[^A-Za-z0-9]+/g, " ")
8
+ .split(/\s+/)
9
+ .filter((segment) => segment.length > 0)
10
+ .map((segment) => segment.toLowerCase());
11
+ if (segments.length === 0) {
12
+ return value;
13
+ }
14
+ const [first, ...rest] = segments;
15
+ return `${first}${rest.map((segment) => `${segment.slice(0, 1).toUpperCase()}${segment.slice(1)}`).join("")}`;
16
+ }
17
+ function resolveCandidateOptionKeys(definition) {
18
+ return [...new Set([
19
+ runtimeFieldOptionTarget(definition),
20
+ toCamelToken(definition.key),
21
+ toCamelToken(definition.cli_flag),
22
+ ...definition.cli_aliases.map((alias) => toCamelToken(alias)),
23
+ ])];
24
+ }
25
+ export function readRuntimeFieldOptionValue(options, definition) {
26
+ for (const candidateKey of resolveCandidateOptionKeys(definition)) {
27
+ if (!Object.hasOwn(options, candidateKey)) {
28
+ continue;
29
+ }
30
+ const value = options[candidateKey];
31
+ if (value !== undefined) {
32
+ return value;
33
+ }
34
+ }
35
+ return undefined;
36
+ }
37
+ function normalizeStringArrayValue(value) {
38
+ if (Array.isArray(value)) {
39
+ return value
40
+ .flatMap((entry) => normalizeStringArrayValue(entry))
41
+ .map((entry) => entry.trim())
42
+ .filter((entry) => entry.length > 0);
43
+ }
44
+ if (typeof value === "string") {
45
+ return value
46
+ .split(/[,\n|]/)
47
+ .map((entry) => entry.trim())
48
+ .filter((entry) => entry.length > 0);
49
+ }
50
+ if (value === undefined || value === null) {
51
+ return [];
52
+ }
53
+ return [String(value).trim()].filter((entry) => entry.length > 0);
54
+ }
55
+ function parseBooleanValue(raw, label) {
56
+ if (typeof raw === "boolean") {
57
+ return raw;
58
+ }
59
+ if (typeof raw === "number") {
60
+ if (raw === 1) {
61
+ return true;
62
+ }
63
+ if (raw === 0) {
64
+ return false;
65
+ }
66
+ }
67
+ if (typeof raw === "string") {
68
+ const normalized = raw.trim().toLowerCase();
69
+ if (normalized === "true" || normalized === "1" || normalized === "yes") {
70
+ return true;
71
+ }
72
+ if (normalized === "false" || normalized === "0" || normalized === "no") {
73
+ return false;
74
+ }
75
+ }
76
+ throw new PmCliError(`${label} must be one of true|false|1|0|yes|no`, EXIT_CODE.USAGE);
77
+ }
78
+ function parseNumberValue(raw, label) {
79
+ if (typeof raw === "number" && Number.isFinite(raw)) {
80
+ return raw;
81
+ }
82
+ const candidate = typeof raw === "string" ? raw.trim() : String(raw);
83
+ const parsed = Number(candidate);
84
+ if (!Number.isFinite(parsed)) {
85
+ throw new PmCliError(`${label} must be a number`, EXIT_CODE.USAGE);
86
+ }
87
+ return parsed;
88
+ }
89
+ export function coerceRuntimeFieldValue(definition, rawValue, labelOverride) {
90
+ const label = labelOverride ?? `--${definition.cli_flag}`;
91
+ if (definition.repeatable || definition.type === "string_array") {
92
+ const values = normalizeStringArrayValue(rawValue);
93
+ if (definition.type === "number") {
94
+ return values.map((value) => parseNumberValue(value, label));
95
+ }
96
+ if (definition.type === "boolean") {
97
+ return values.map((value) => parseBooleanValue(value, label));
98
+ }
99
+ return values;
100
+ }
101
+ const scalarRaw = Array.isArray(rawValue) ? rawValue[rawValue.length - 1] : rawValue;
102
+ if (scalarRaw === undefined) {
103
+ return undefined;
104
+ }
105
+ if (definition.type === "number") {
106
+ return parseNumberValue(scalarRaw, label);
107
+ }
108
+ if (definition.type === "boolean") {
109
+ return parseBooleanValue(scalarRaw, label);
110
+ }
111
+ return typeof scalarRaw === "string" ? scalarRaw : String(scalarRaw);
112
+ }
113
+ function shouldRequireFieldOnCreate(definition, itemTypeName) {
114
+ if (!definition.required && !definition.required_on_create) {
115
+ return false;
116
+ }
117
+ if (definition.required_types.length === 0) {
118
+ return true;
119
+ }
120
+ if (!itemTypeName) {
121
+ return false;
122
+ }
123
+ return definition.required_types.map((value) => value.toLowerCase()).includes(itemTypeName.trim().toLowerCase());
124
+ }
125
+ export function collectRuntimeCreateFieldValues(options, fieldRegistry, itemTypeName) {
126
+ const values = {};
127
+ const missingRequiredFlags = [];
128
+ for (const definition of fieldRegistry.command_to_fields.get("create") ?? []) {
129
+ const rawValue = readRuntimeFieldOptionValue(options, definition);
130
+ if (rawValue === undefined) {
131
+ if (shouldRequireFieldOnCreate(definition, itemTypeName)) {
132
+ missingRequiredFlags.push(`--${definition.cli_flag}`);
133
+ }
134
+ continue;
135
+ }
136
+ values[definition.front_matter_key] = coerceRuntimeFieldValue(definition, rawValue);
137
+ }
138
+ return {
139
+ values,
140
+ missing_required_flags: [...new Set(missingRequiredFlags)].sort((left, right) => left.localeCompare(right)),
141
+ };
142
+ }
143
+ export function collectRuntimeUpdateFieldValues(options, fieldRegistry) {
144
+ const values = {};
145
+ for (const definition of fieldRegistry.command_to_fields.get("update") ?? []) {
146
+ const rawValue = readRuntimeFieldOptionValue(options, definition);
147
+ if (rawValue === undefined) {
148
+ continue;
149
+ }
150
+ values[definition.front_matter_key] = coerceRuntimeFieldValue(definition, rawValue);
151
+ }
152
+ return values;
153
+ }
154
+ //# sourceMappingURL=runtime-field-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-field-values.js","sourceRoot":"","sources":["../../../src/core/schema/runtime-field-values.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import type { ItemTypeDefinition, RuntimeFieldCommand, RuntimeFieldType, RuntimeSchemaSettings, RuntimeStatusDefinition, RuntimeStatusRole, RuntimeWorkflowDefinition } from "../../types/index.js";
2
+ export type { RuntimeFieldCommand } from "../../types/index.js";
3
+ export declare const DEFAULT_RUNTIME_SCHEMA_FILE_PATHS: Readonly<{
4
+ types: "schema/types.json";
5
+ statuses: "schema/statuses.json";
6
+ fields: "schema/fields.json";
7
+ workflows: "schema/workflows.json";
8
+ }>;
9
+ export declare const DEFAULT_RUNTIME_WORKFLOW: RuntimeWorkflowDefinition;
10
+ export declare const DEFAULT_RUNTIME_STATUS_DEFINITIONS: ReadonlyArray<RuntimeStatusDefinition>;
11
+ export interface RuntimeStatusDefinitionResolved {
12
+ id: string;
13
+ aliases: string[];
14
+ roles: RuntimeStatusRole[];
15
+ description?: string;
16
+ order: number;
17
+ }
18
+ export interface RuntimeFieldDefinitionResolved {
19
+ key: string;
20
+ front_matter_key: string;
21
+ cli_flag: string;
22
+ cli_aliases: string[];
23
+ description?: string;
24
+ type: RuntimeFieldType;
25
+ commands: RuntimeFieldCommand[];
26
+ repeatable: boolean;
27
+ required: boolean;
28
+ required_on_create: boolean;
29
+ required_types: string[];
30
+ allow_unset: boolean;
31
+ }
32
+ export interface RuntimeStatusRegistry {
33
+ definitions: RuntimeStatusDefinitionResolved[];
34
+ by_id: Map<string, RuntimeStatusDefinitionResolved>;
35
+ alias_to_id: Map<string, string>;
36
+ terminal_statuses: Set<string>;
37
+ terminal_done_statuses: Set<string>;
38
+ terminal_canceled_statuses: Set<string>;
39
+ active_statuses: Set<string>;
40
+ blocked_statuses: Set<string>;
41
+ draft_statuses: Set<string>;
42
+ open_status: string;
43
+ close_status: string;
44
+ canceled_status: string;
45
+ }
46
+ export interface RuntimeFieldRegistry {
47
+ definitions: RuntimeFieldDefinitionResolved[];
48
+ by_key: Map<string, RuntimeFieldDefinitionResolved>;
49
+ by_cli_token: Map<string, RuntimeFieldDefinitionResolved>;
50
+ command_to_fields: Map<RuntimeFieldCommand, RuntimeFieldDefinitionResolved[]>;
51
+ }
52
+ export interface RuntimeSchemaFileBootstrapResult {
53
+ created_paths: string[];
54
+ }
55
+ export interface LoadedRuntimeSchemaSections {
56
+ schema: RuntimeSchemaSettings;
57
+ type_definitions_from_file: ItemTypeDefinition[] | undefined;
58
+ warnings: string[];
59
+ created_paths: string[];
60
+ }
61
+ export declare function normalizeRuntimeSchemaSettings(schema: Partial<RuntimeSchemaSettings> | undefined): RuntimeSchemaSettings;
62
+ export declare function ensureRuntimeSchemaFileScaffold(pmRoot: string, schema: RuntimeSchemaSettings): Promise<RuntimeSchemaFileBootstrapResult>;
63
+ export declare function loadRuntimeSchemaFromOptionalFiles(pmRoot: string, schema: RuntimeSchemaSettings): Promise<LoadedRuntimeSchemaSections>;
64
+ export declare function resolveRuntimeStatusRegistry(schema: RuntimeSchemaSettings): RuntimeStatusRegistry;
65
+ export declare function normalizeStatusInputWithRegistry(value: string, registry: RuntimeStatusRegistry): string | undefined;
66
+ export declare function resolveRuntimeFieldRegistry(schema: RuntimeSchemaSettings): RuntimeFieldRegistry;
67
+ export declare function runtimeFieldOptionTarget(field: RuntimeFieldDefinitionResolved): string;
68
+ export declare function statusIsTerminal(status: string, registry: RuntimeStatusRegistry): boolean;