centy 0.3.0 → 0.5.0

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 (295) hide show
  1. package/bin/run.js +3 -3
  2. package/dist/commands/close.d.ts +1 -4
  3. package/dist/commands/close.d.ts.map +1 -1
  4. package/dist/commands/close.js +23 -40
  5. package/dist/commands/close.js.map +1 -1
  6. package/dist/commands/create/item-type.d.ts +20 -0
  7. package/dist/commands/create/item-type.d.ts.map +1 -0
  8. package/dist/commands/create/item-type.js +90 -0
  9. package/dist/commands/create/item-type.js.map +1 -0
  10. package/dist/commands/init.d.ts +0 -4
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/init.js +0 -20
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/commands/{delete/pr.d.ts → link.d.ts} +6 -4
  15. package/dist/commands/link.d.ts.map +1 -0
  16. package/dist/commands/link.js +74 -0
  17. package/dist/commands/link.js.map +1 -0
  18. package/dist/commands/{get/pr.d.ts → links.d.ts} +4 -5
  19. package/dist/commands/links.d.ts.map +1 -0
  20. package/dist/commands/links.js +70 -0
  21. package/dist/commands/links.js.map +1 -0
  22. package/dist/commands/list/link-types.d.ts +14 -0
  23. package/dist/commands/list/link-types.d.ts.map +1 -0
  24. package/dist/commands/list/link-types.js +59 -0
  25. package/dist/commands/list/link-types.js.map +1 -0
  26. package/dist/commands/show.d.ts.map +1 -1
  27. package/dist/commands/show.js +5 -8
  28. package/dist/commands/show.js.map +1 -1
  29. package/dist/commands/unlink.d.ts +19 -0
  30. package/dist/commands/unlink.d.ts.map +1 -0
  31. package/dist/commands/unlink.js +73 -0
  32. package/dist/commands/unlink.js.map +1 -0
  33. package/dist/commands/version.d.ts +13 -0
  34. package/dist/commands/version.d.ts.map +1 -0
  35. package/dist/commands/version.js +51 -0
  36. package/dist/commands/version.js.map +1 -0
  37. package/dist/daemon/daemon-create-item-type.d.ts +6 -0
  38. package/dist/daemon/daemon-create-item-type.d.ts.map +1 -0
  39. package/dist/daemon/daemon-create-item-type.js +9 -0
  40. package/dist/daemon/daemon-create-item-type.js.map +1 -0
  41. package/dist/daemon/daemon-create-link.d.ts +6 -0
  42. package/dist/daemon/daemon-create-link.d.ts.map +1 -0
  43. package/dist/daemon/daemon-create-link.js +9 -0
  44. package/dist/daemon/daemon-create-link.js.map +1 -0
  45. package/dist/daemon/daemon-delete-link.d.ts +6 -0
  46. package/dist/daemon/daemon-delete-link.d.ts.map +1 -0
  47. package/dist/daemon/daemon-delete-link.js +9 -0
  48. package/dist/daemon/daemon-delete-link.js.map +1 -0
  49. package/dist/daemon/daemon-get-available-link-types.d.ts +6 -0
  50. package/dist/daemon/daemon-get-available-link-types.d.ts.map +1 -0
  51. package/dist/daemon/daemon-get-available-link-types.js +9 -0
  52. package/dist/daemon/daemon-get-available-link-types.js.map +1 -0
  53. package/dist/daemon/daemon-list-links.d.ts +6 -0
  54. package/dist/daemon/daemon-list-links.d.ts.map +1 -0
  55. package/dist/daemon/daemon-list-links.js +9 -0
  56. package/dist/daemon/daemon-list-links.js.map +1 -0
  57. package/dist/daemon/daemon-open-in-temp-workspace.d.ts +2 -2
  58. package/dist/daemon/daemon-open-in-temp-workspace.d.ts.map +1 -1
  59. package/dist/daemon/daemon-open-in-temp-workspace.js.map +1 -1
  60. package/dist/daemon/grpc-client-extended.d.ts +4 -8
  61. package/dist/daemon/grpc-client-extended.d.ts.map +1 -1
  62. package/dist/daemon/grpc-client-items.d.ts +19 -0
  63. package/dist/daemon/grpc-client-items.d.ts.map +1 -0
  64. package/dist/daemon/grpc-client-items.js +2 -0
  65. package/dist/daemon/grpc-client-items.js.map +1 -0
  66. package/dist/daemon/grpc-client-link.d.ts +12 -0
  67. package/dist/daemon/grpc-client-link.d.ts.map +1 -0
  68. package/dist/daemon/grpc-client-link.js +2 -0
  69. package/dist/daemon/grpc-client-link.js.map +1 -0
  70. package/dist/daemon/grpc-client-ops.d.ts +2 -12
  71. package/dist/daemon/grpc-client-ops.d.ts.map +1 -1
  72. package/dist/daemon/load-proto.d.ts +3 -1
  73. package/dist/daemon/load-proto.d.ts.map +1 -1
  74. package/dist/daemon/load-proto.js +3 -1
  75. package/dist/daemon/load-proto.js.map +1 -1
  76. package/dist/daemon/types/config.d.ts +3 -7
  77. package/dist/daemon/types/config.d.ts.map +1 -1
  78. package/dist/daemon/types/generic-item.d.ts +104 -0
  79. package/dist/daemon/types/generic-item.d.ts.map +1 -0
  80. package/dist/daemon/types/generic-item.js +6 -0
  81. package/dist/daemon/types/generic-item.js.map +1 -0
  82. package/dist/daemon/types/item-type.d.ts +37 -0
  83. package/dist/daemon/types/item-type.d.ts.map +1 -0
  84. package/dist/daemon/types/item-type.js +6 -0
  85. package/dist/daemon/types/item-type.js.map +1 -0
  86. package/dist/daemon/types.d.ts +2 -3
  87. package/dist/daemon/types.d.ts.map +1 -1
  88. package/dist/daemon/types.js +2 -3
  89. package/dist/daemon/types.js.map +1 -1
  90. package/dist/lib/autostart/launchd.d.ts.map +1 -1
  91. package/dist/lib/autostart/launchd.js +10 -3
  92. package/dist/lib/autostart/launchd.js.map +1 -1
  93. package/dist/lib/close/find-entity.d.ts +1 -1
  94. package/dist/lib/close/find-entity.d.ts.map +1 -1
  95. package/dist/lib/close/find-entity.js +0 -15
  96. package/dist/lib/close/find-entity.js.map +1 -1
  97. package/dist/lib/create-item-type/features.d.ts +18 -0
  98. package/dist/lib/create-item-type/features.d.ts.map +1 -0
  99. package/dist/lib/create-item-type/features.js +58 -0
  100. package/dist/lib/create-item-type/features.js.map +1 -0
  101. package/dist/lib/init/config-builder.d.ts.map +1 -1
  102. package/dist/lib/init/config-builder.js +1 -24
  103. package/dist/lib/init/config-builder.js.map +1 -1
  104. package/dist/lib/show/format-results.d.ts +1 -2
  105. package/dist/lib/show/format-results.d.ts.map +1 -1
  106. package/dist/lib/show/format-results.js +0 -20
  107. package/dist/lib/show/format-results.js.map +1 -1
  108. package/dist/lib/show/search-entities.d.ts +1 -2
  109. package/dist/lib/show/search-entities.d.ts.map +1 -1
  110. package/dist/lib/show/search-entities.js +2 -6
  111. package/dist/lib/show/search-entities.js.map +1 -1
  112. package/dist/lib/start/handle-missing-daemon.d.ts.map +1 -1
  113. package/dist/lib/start/handle-missing-daemon.js +11 -1
  114. package/dist/lib/start/handle-missing-daemon.js.map +1 -1
  115. package/dist/lib/start/start-foreground.d.ts +1 -1
  116. package/dist/lib/start/start-foreground.d.ts.map +1 -1
  117. package/dist/lib/start/start-foreground.js +11 -1
  118. package/dist/lib/start/start-foreground.js.map +1 -1
  119. package/dist/types/init-options.d.ts +0 -8
  120. package/dist/types/init-options.d.ts.map +1 -1
  121. package/dist/utils/format-cross-project-hint.d.ts +1 -1
  122. package/dist/utils/format-cross-project-hint.d.ts.map +1 -1
  123. package/dist/utils/format-cross-project-hint.js.map +1 -1
  124. package/dist/utils/handle-not-initialized-with-search.d.ts +1 -1
  125. package/dist/utils/handle-not-initialized-with-search.d.ts.map +1 -1
  126. package/dist/utils/parse-link-target.d.ts +5 -0
  127. package/dist/utils/parse-link-target.d.ts.map +1 -0
  128. package/dist/utils/parse-link-target.js +16 -0
  129. package/dist/utils/parse-link-target.js.map +1 -0
  130. package/dist/utils/process-timeout-config.d.ts +17 -0
  131. package/dist/utils/process-timeout-config.d.ts.map +1 -0
  132. package/dist/utils/process-timeout-config.js +18 -0
  133. package/dist/utils/process-timeout-config.js.map +1 -0
  134. package/dist/utils/process-timeout-error.d.ts +4 -0
  135. package/dist/utils/process-timeout-error.d.ts.map +1 -0
  136. package/dist/utils/process-timeout-error.js +7 -0
  137. package/dist/utils/process-timeout-error.js.map +1 -0
  138. package/oclif.manifest.json +459 -573
  139. package/package.json +1 -1
  140. package/proto/{centy.proto → centy/v1/centy.proto} +86 -248
  141. package/proto/centy/v1/generic_item.proto +177 -0
  142. package/dist/commands/create/pr.d.ts +0 -21
  143. package/dist/commands/create/pr.d.ts.map +0 -1
  144. package/dist/commands/create/pr.js +0 -85
  145. package/dist/commands/create/pr.js.map +0 -1
  146. package/dist/commands/delete/pr.d.ts.map +0 -1
  147. package/dist/commands/delete/pr.js +0 -74
  148. package/dist/commands/delete/pr.js.map +0 -1
  149. package/dist/commands/get/pr.d.ts.map +0 -1
  150. package/dist/commands/get/pr.js +0 -86
  151. package/dist/commands/get/pr.js.map +0 -1
  152. package/dist/commands/list/prs.d.ts +0 -19
  153. package/dist/commands/list/prs.d.ts.map +0 -1
  154. package/dist/commands/list/prs.js +0 -90
  155. package/dist/commands/list/prs.js.map +0 -1
  156. package/dist/commands/update/pr.d.ts +0 -21
  157. package/dist/commands/update/pr.d.ts.map +0 -1
  158. package/dist/commands/update/pr.js +0 -97
  159. package/dist/commands/update/pr.js.map +0 -1
  160. package/dist/daemon/daemon-create-pr.d.ts +0 -6
  161. package/dist/daemon/daemon-create-pr.d.ts.map +0 -1
  162. package/dist/daemon/daemon-create-pr.js +0 -9
  163. package/dist/daemon/daemon-create-pr.js.map +0 -1
  164. package/dist/daemon/daemon-delete-pr.d.ts +0 -6
  165. package/dist/daemon/daemon-delete-pr.d.ts.map +0 -1
  166. package/dist/daemon/daemon-delete-pr.js +0 -9
  167. package/dist/daemon/daemon-delete-pr.js.map +0 -1
  168. package/dist/daemon/daemon-get-pr-by-display-number.d.ts +0 -6
  169. package/dist/daemon/daemon-get-pr-by-display-number.d.ts.map +0 -1
  170. package/dist/daemon/daemon-get-pr-by-display-number.js +0 -14
  171. package/dist/daemon/daemon-get-pr-by-display-number.js.map +0 -1
  172. package/dist/daemon/daemon-get-pr.d.ts +0 -6
  173. package/dist/daemon/daemon-get-pr.d.ts.map +0 -1
  174. package/dist/daemon/daemon-get-pr.js +0 -14
  175. package/dist/daemon/daemon-get-pr.js.map +0 -1
  176. package/dist/daemon/daemon-get-prs-by-uuid.d.ts +0 -6
  177. package/dist/daemon/daemon-get-prs-by-uuid.d.ts.map +0 -1
  178. package/dist/daemon/daemon-get-prs-by-uuid.js +0 -9
  179. package/dist/daemon/daemon-get-prs-by-uuid.js.map +0 -1
  180. package/dist/daemon/daemon-list-prs.d.ts +0 -6
  181. package/dist/daemon/daemon-list-prs.d.ts.map +0 -1
  182. package/dist/daemon/daemon-list-prs.js +0 -9
  183. package/dist/daemon/daemon-list-prs.js.map +0 -1
  184. package/dist/daemon/daemon-update-pr.d.ts +0 -6
  185. package/dist/daemon/daemon-update-pr.d.ts.map +0 -1
  186. package/dist/daemon/daemon-update-pr.js +0 -9
  187. package/dist/daemon/daemon-update-pr.js.map +0 -1
  188. package/dist/daemon/types/pr-lifecycle.d.ts +0 -54
  189. package/dist/daemon/types/pr-lifecycle.d.ts.map +0 -1
  190. package/dist/daemon/types/pr-lifecycle.js +0 -7
  191. package/dist/daemon/types/pr-lifecycle.js.map +0 -1
  192. package/dist/daemon/types/pr-search.d.ts +0 -19
  193. package/dist/daemon/types/pr-search.d.ts.map +0 -1
  194. package/dist/daemon/types/pr-search.js +0 -6
  195. package/dist/daemon/types/pr-search.js.map +0 -1
  196. package/dist/daemon/types/pr.d.ts +0 -79
  197. package/dist/daemon/types/pr.d.ts.map +0 -1
  198. package/dist/daemon/types/pr.js +0 -6
  199. package/dist/daemon/types/pr.js.map +0 -1
  200. package/dist/lib/close/close-pr.d.ts +0 -2
  201. package/dist/lib/close/close-pr.d.ts.map +0 -1
  202. package/dist/lib/close/close-pr.js +0 -23
  203. package/dist/lib/close/close-pr.js.map +0 -1
  204. package/dist/lib/create-pr/converters.d.ts +0 -15
  205. package/dist/lib/create-pr/converters.d.ts.map +0 -1
  206. package/dist/lib/create-pr/converters.js +0 -53
  207. package/dist/lib/create-pr/converters.js.map +0 -1
  208. package/dist/lib/create-pr/create-pr.d.ts +0 -8
  209. package/dist/lib/create-pr/create-pr.d.ts.map +0 -1
  210. package/dist/lib/create-pr/create-pr.js +0 -65
  211. package/dist/lib/create-pr/create-pr.js.map +0 -1
  212. package/dist/lib/create-pr/gather-basic-fields.d.ts +0 -8
  213. package/dist/lib/create-pr/gather-basic-fields.d.ts.map +0 -1
  214. package/dist/lib/create-pr/gather-basic-fields.js +0 -34
  215. package/dist/lib/create-pr/gather-basic-fields.js.map +0 -1
  216. package/dist/lib/create-pr/gather-metadata-fields.d.ts +0 -11
  217. package/dist/lib/create-pr/gather-metadata-fields.d.ts.map +0 -1
  218. package/dist/lib/create-pr/gather-metadata-fields.js +0 -36
  219. package/dist/lib/create-pr/gather-metadata-fields.js.map +0 -1
  220. package/dist/lib/create-pr/gather-pr-input.d.ts +0 -8
  221. package/dist/lib/create-pr/gather-pr-input.d.ts.map +0 -1
  222. package/dist/lib/create-pr/gather-pr-input.js +0 -38
  223. package/dist/lib/create-pr/gather-pr-input.js.map +0 -1
  224. package/dist/lib/create-pr/index.d.ts +0 -2
  225. package/dist/lib/create-pr/index.d.ts.map +0 -1
  226. package/dist/lib/create-pr/index.js +0 -2
  227. package/dist/lib/create-pr/index.js.map +0 -1
  228. package/dist/lib/create-pr/prompt-for-description.d.ts +0 -6
  229. package/dist/lib/create-pr/prompt-for-description.d.ts.map +0 -1
  230. package/dist/lib/create-pr/prompt-for-description.js +0 -12
  231. package/dist/lib/create-pr/prompt-for-description.js.map +0 -1
  232. package/dist/lib/create-pr/prompt-for-linked-issues.d.ts +0 -7
  233. package/dist/lib/create-pr/prompt-for-linked-issues.d.ts.map +0 -1
  234. package/dist/lib/create-pr/prompt-for-linked-issues.js +0 -22
  235. package/dist/lib/create-pr/prompt-for-linked-issues.js.map +0 -1
  236. package/dist/lib/create-pr/prompt-for-priority.d.ts +0 -9
  237. package/dist/lib/create-pr/prompt-for-priority.d.ts.map +0 -1
  238. package/dist/lib/create-pr/prompt-for-priority.js +0 -27
  239. package/dist/lib/create-pr/prompt-for-priority.js.map +0 -1
  240. package/dist/lib/create-pr/prompt-for-reviewers.d.ts +0 -7
  241. package/dist/lib/create-pr/prompt-for-reviewers.d.ts.map +0 -1
  242. package/dist/lib/create-pr/prompt-for-reviewers.js +0 -22
  243. package/dist/lib/create-pr/prompt-for-reviewers.js.map +0 -1
  244. package/dist/lib/create-pr/prompt-for-source-branch.d.ts +0 -7
  245. package/dist/lib/create-pr/prompt-for-source-branch.d.ts.map +0 -1
  246. package/dist/lib/create-pr/prompt-for-source-branch.js +0 -20
  247. package/dist/lib/create-pr/prompt-for-source-branch.js.map +0 -1
  248. package/dist/lib/create-pr/prompt-for-status.d.ts +0 -9
  249. package/dist/lib/create-pr/prompt-for-status.d.ts.map +0 -1
  250. package/dist/lib/create-pr/prompt-for-status.js +0 -27
  251. package/dist/lib/create-pr/prompt-for-status.js.map +0 -1
  252. package/dist/lib/create-pr/prompt-for-target-branch.d.ts +0 -7
  253. package/dist/lib/create-pr/prompt-for-target-branch.d.ts.map +0 -1
  254. package/dist/lib/create-pr/prompt-for-target-branch.js +0 -15
  255. package/dist/lib/create-pr/prompt-for-target-branch.js.map +0 -1
  256. package/dist/lib/create-pr/prompt-for-title.d.ts +0 -6
  257. package/dist/lib/create-pr/prompt-for-title.d.ts.map +0 -1
  258. package/dist/lib/create-pr/prompt-for-title.js +0 -12
  259. package/dist/lib/create-pr/prompt-for-title.js.map +0 -1
  260. package/dist/lib/create-pr/types.d.ts +0 -14
  261. package/dist/lib/create-pr/types.d.ts.map +0 -1
  262. package/dist/lib/create-pr/types.js +0 -2
  263. package/dist/lib/create-pr/types.js.map +0 -1
  264. package/dist/lib/get-pr/cross-project-hint.d.ts +0 -6
  265. package/dist/lib/get-pr/cross-project-hint.d.ts.map +0 -1
  266. package/dist/lib/get-pr/cross-project-hint.js +0 -24
  267. package/dist/lib/get-pr/cross-project-hint.js.map +0 -1
  268. package/dist/lib/get-pr/fetch-and-display.d.ts +0 -12
  269. package/dist/lib/get-pr/fetch-and-display.d.ts.map +0 -1
  270. package/dist/lib/get-pr/fetch-and-display.js +0 -36
  271. package/dist/lib/get-pr/fetch-and-display.js.map +0 -1
  272. package/dist/lib/get-pr/format-pr-output.d.ts +0 -3
  273. package/dist/lib/get-pr/format-pr-output.d.ts.map +0 -1
  274. package/dist/lib/get-pr/format-pr-output.js +0 -24
  275. package/dist/lib/get-pr/format-pr-output.js.map +0 -1
  276. package/dist/lib/get-pr/handle-global-search.d.ts +0 -3
  277. package/dist/lib/get-pr/handle-global-search.d.ts.map +0 -1
  278. package/dist/lib/get-pr/handle-global-search.js +0 -37
  279. package/dist/lib/get-pr/handle-global-search.js.map +0 -1
  280. package/dist/lib/get-pr/handle-not-initialized.d.ts +0 -6
  281. package/dist/lib/get-pr/handle-not-initialized.d.ts.map +0 -1
  282. package/dist/lib/get-pr/handle-not-initialized.js +0 -22
  283. package/dist/lib/get-pr/handle-not-initialized.js.map +0 -1
  284. package/dist/lib/update-pr/process-fields.d.ts +0 -4
  285. package/dist/lib/update-pr/process-fields.d.ts.map +0 -1
  286. package/dist/lib/update-pr/process-fields.js +0 -23
  287. package/dist/lib/update-pr/process-fields.js.map +0 -1
  288. package/dist/types/create-pr-options.d.ts +0 -30
  289. package/dist/types/create-pr-options.d.ts.map +0 -1
  290. package/dist/types/create-pr-options.js +0 -2
  291. package/dist/types/create-pr-options.js.map +0 -1
  292. package/dist/types/create-pr-result.d.ts +0 -16
  293. package/dist/types/create-pr-result.d.ts.map +0 -1
  294. package/dist/types/create-pr-result.js +0 -2
  295. package/dist/types/create-pr-result.js.map +0 -1
@@ -0,0 +1,177 @@
1
+ syntax = "proto3";
2
+
3
+ package centy.v1;
4
+
5
+ // ============ Generic Item Messages ============
6
+
7
+ // A generic item that can represent any item type (issues, docs, custom types)
8
+ message GenericItem {
9
+ string id = 1; // Item identifier (UUID or slug)
10
+ string item_type = 2; // Plural type name (e.g., "issues", "docs")
11
+ string title = 3; // Item title
12
+ string body = 4; // Item body (markdown content)
13
+ GenericItemMetadata metadata = 5;
14
+ }
15
+
16
+ message GenericItemMetadata {
17
+ uint32 display_number = 1; // Human-readable display number (0 if not applicable)
18
+ string status = 2; // Item status (empty if not applicable)
19
+ uint32 priority = 3; // Priority level (0 if not applicable)
20
+ string created_at = 4; // ISO timestamp
21
+ string updated_at = 5; // ISO timestamp
22
+ string deleted_at = 6; // ISO timestamp when soft-deleted (empty if not deleted)
23
+ map<string, string> custom_fields = 7; // Custom fields (values are JSON strings)
24
+ }
25
+
26
+ message CreateItemRequest {
27
+ string project_path = 1;
28
+ string item_type = 2; // e.g., "issues", "docs", or custom type
29
+ string title = 3;
30
+ string body = 4;
31
+ string status = 5; // Initial status (empty = use default)
32
+ int32 priority = 6; // 0 = use default
33
+ map<string, string> custom_fields = 7; // Custom fields (values are JSON strings)
34
+ }
35
+
36
+ message CreateItemResponse {
37
+ bool success = 1;
38
+ string error = 2;
39
+ GenericItem item = 3;
40
+ }
41
+
42
+ message GetItemRequest {
43
+ string project_path = 1;
44
+ string item_type = 2;
45
+ string item_id = 3; // Item identifier (UUID or slug)
46
+ }
47
+
48
+ message GetItemResponse {
49
+ bool success = 1;
50
+ string error = 2;
51
+ GenericItem item = 3;
52
+ }
53
+
54
+ message ListItemsRequest {
55
+ string project_path = 1;
56
+ string item_type = 2;
57
+ string status = 3; // Filter by status (empty = all)
58
+ int32 priority = 4; // Filter by priority (0 = all)
59
+ bool include_deleted = 5; // Include soft-deleted items (default: false)
60
+ uint32 limit = 6; // Limit results (0 = no limit)
61
+ uint32 offset = 7; // Offset for pagination (0 = no offset)
62
+ }
63
+
64
+ message ListItemsResponse {
65
+ bool success = 1;
66
+ string error = 2;
67
+ repeated GenericItem items = 3;
68
+ int32 total_count = 4;
69
+ }
70
+
71
+ message UpdateItemRequest {
72
+ string project_path = 1;
73
+ string item_type = 2;
74
+ string item_id = 3;
75
+ string title = 4; // Empty = don't update
76
+ string body = 5; // Empty = don't update
77
+ string status = 6; // Empty = don't update
78
+ int32 priority = 7; // 0 = don't update
79
+ map<string, string> custom_fields = 8; // Custom fields to merge (values are JSON strings)
80
+ }
81
+
82
+ message UpdateItemResponse {
83
+ bool success = 1;
84
+ string error = 2;
85
+ GenericItem item = 3;
86
+ }
87
+
88
+ message DeleteItemRequest {
89
+ string project_path = 1;
90
+ string item_type = 2;
91
+ string item_id = 3;
92
+ bool force = 4; // If true, hard delete immediately
93
+ }
94
+
95
+ message DeleteItemResponse {
96
+ bool success = 1;
97
+ string error = 2;
98
+ }
99
+
100
+ message SoftDeleteItemRequest {
101
+ string project_path = 1;
102
+ string item_type = 2;
103
+ string item_id = 3;
104
+ }
105
+
106
+ message SoftDeleteItemResponse {
107
+ bool success = 1;
108
+ string error = 2;
109
+ GenericItem item = 3; // The soft-deleted item (with deleted_at set)
110
+ }
111
+
112
+ message RestoreItemRequest {
113
+ string project_path = 1;
114
+ string item_type = 2;
115
+ string item_id = 3;
116
+ }
117
+
118
+ message RestoreItemResponse {
119
+ bool success = 1;
120
+ string error = 2;
121
+ GenericItem item = 3; // The restored item (with deleted_at cleared)
122
+ }
123
+
124
+ // ============ Item Type Messages ============
125
+
126
+ // Features that can be enabled for an item type
127
+ enum ItemTypeFeature {
128
+ ITEM_TYPE_FEATURE_UNSPECIFIED = 0;
129
+ ITEM_TYPE_FEATURE_DISPLAY_NUMBER = 1;
130
+ ITEM_TYPE_FEATURE_STATUS = 2;
131
+ ITEM_TYPE_FEATURE_PRIORITY = 3;
132
+ ITEM_TYPE_FEATURE_ASSETS = 4;
133
+ ITEM_TYPE_FEATURE_ORG_SYNC = 5;
134
+ ITEM_TYPE_FEATURE_MOVE = 6;
135
+ ITEM_TYPE_FEATURE_DUPLICATE = 7;
136
+ }
137
+
138
+ // Custom field definition for item types
139
+ message ItemTypeCustomField {
140
+ string name = 1; // Field name
141
+ string field_type = 2; // "string", "number", "boolean", "enum"
142
+ bool required = 3; // Whether field is required
143
+ string default_value = 4; // Default value
144
+ repeated string enum_values = 5; // For enum type
145
+ }
146
+
147
+ // Request to create a new item type
148
+ message CreateItemTypeRequest {
149
+ string project_path = 1;
150
+ string name = 2; // Singular display name (e.g., "Bug", "Task")
151
+ string plural = 3; // Folder/type key, lowercase alphanumeric + hyphens (e.g., "bugs")
152
+ string identifier = 4; // "uuid" or "slug"
153
+ repeated ItemTypeFeature features = 5; // Enabled features
154
+ repeated string statuses = 6; // Allowed statuses (e.g., ["open", "in-progress", "closed"])
155
+ string default_status = 7; // Default status for new items (must be in statuses list)
156
+ uint32 priority_levels = 8; // Number of priority levels (0 = none)
157
+ repeated ItemTypeCustomField custom_fields = 9; // Custom field definitions
158
+ }
159
+
160
+ // Response from creating an item type
161
+ message CreateItemTypeResponse {
162
+ bool success = 1;
163
+ string error = 2;
164
+ ItemTypeConfig item_type = 3; // The created item type configuration
165
+ }
166
+
167
+ // Configuration for an item type (stored in .centy/config.yaml)
168
+ message ItemTypeConfig {
169
+ string name = 1; // Singular display name
170
+ string plural = 2; // Folder/type key
171
+ string identifier = 3; // "uuid" or "slug"
172
+ repeated ItemTypeFeature features = 4; // Enabled features
173
+ repeated string statuses = 5; // Allowed statuses
174
+ string default_status = 6; // Default status
175
+ uint32 priority_levels = 7; // Number of priority levels
176
+ repeated ItemTypeCustomField custom_fields = 8; // Custom field definitions
177
+ }
@@ -1,21 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- /**
3
- * Create a new pull request in the .centy/prs folder
4
- */
5
- export default class CreatePrCommand extends Command {
6
- static description: string;
7
- static examples: string[];
8
- static flags: {
9
- title: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
- description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
- source: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
- target: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
- issues: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
- reviewers: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
- priority: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
- status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
- project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
- };
19
- run(): Promise<void>;
20
- }
21
- //# sourceMappingURL=pr.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../../src/commands/create/pr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAM5C;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAElD,OAAgB,WAAW,SAAmD;IAG9E,OAAgB,QAAQ,WAMvB;IAGD,OAAgB,KAAK;;;;;;;;;;MAkCpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8BlC"}
@@ -1,85 +0,0 @@
1
- // eslint-disable-next-line import/order
2
- import { Command, Flags } from '@oclif/core';
3
- import { projectFlag } from '../../flags/project-flag.js';
4
- import { createPr } from '../../lib/create-pr/index.js';
5
- import { resolveProjectPath } from '../../utils/resolve-project-path.js';
6
- /**
7
- * Create a new pull request in the .centy/prs folder
8
- */
9
- // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
10
- export default class CreatePrCommand extends Command {
11
- // eslint-disable-next-line no-restricted-syntax
12
- static description = 'Create a new pull request in the .centy folder';
13
- // eslint-disable-next-line no-restricted-syntax
14
- static examples = [
15
- '<%= config.bin %> create pr',
16
- '<%= config.bin %> create pr --title "Add feature" --source feature-branch',
17
- '<%= config.bin %> create pr -t "Bug fix" -s bugfix/123 --target main',
18
- '<%= config.bin %> create pr -t "Feature" --issues 1,2 --reviewers alice,bob',
19
- '<%= config.bin %> create pr -t "Feature" --project centy-daemon',
20
- ];
21
- // eslint-disable-next-line no-restricted-syntax
22
- static flags = {
23
- title: Flags.string({
24
- char: 't',
25
- description: 'PR title',
26
- }),
27
- description: Flags.string({
28
- char: 'd',
29
- description: 'PR description',
30
- }),
31
- source: Flags.string({
32
- char: 's',
33
- description: 'Source branch name (auto-detected if not provided)',
34
- }),
35
- target: Flags.string({
36
- description: 'Target branch name (defaults to main)',
37
- }),
38
- issues: Flags.string({
39
- char: 'i',
40
- description: 'Linked issue IDs (comma-separated)',
41
- }),
42
- reviewers: Flags.string({
43
- char: 'r',
44
- description: 'Reviewers (comma-separated)',
45
- }),
46
- priority: Flags.string({
47
- char: 'p',
48
- description: 'Priority level (low/medium/high)',
49
- options: ['low', 'medium', 'high'],
50
- }),
51
- status: Flags.string({
52
- description: 'Initial status (draft/open)',
53
- options: ['draft', 'open'],
54
- }),
55
- project: projectFlag,
56
- };
57
- async run() {
58
- const { flags } = await this.parse(CreatePrCommand);
59
- const cwd = await resolveProjectPath(flags.project);
60
- // Parse comma-separated lists
61
- const linkedIssues = flags.issues
62
- ? flags.issues.split(',').map(s => s.trim())
63
- : undefined;
64
- const reviewers = flags.reviewers
65
- ? flags.reviewers.split(',').map(s => s.trim())
66
- : undefined;
67
- const result = await createPr({
68
- cwd,
69
- title: flags.title,
70
- description: flags.description,
71
- sourceBranch: flags.source,
72
- targetBranch: flags.target,
73
- linkedIssues,
74
- reviewers,
75
- // eslint-disable-next-line no-restricted-syntax
76
- priority: flags.priority,
77
- // eslint-disable-next-line no-restricted-syntax
78
- status: flags.status,
79
- });
80
- if (!result.success) {
81
- this.error(result.error);
82
- }
83
- }
84
- }
85
- //# sourceMappingURL=pr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../../src/commands/create/pr.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../../src/commands/delete/pr.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAE3C,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAA0B;IAGrD,OAAgB,QAAQ,WAKvB;IAGD,OAAgB,KAAK;;;MAOpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2ClC"}
@@ -1,74 +0,0 @@
1
- // eslint-disable-next-line import/order
2
- import { Args, Command, Flags } from '@oclif/core';
3
- import { daemonDeletePr } from '../../daemon/daemon-delete-pr.js';
4
- import { projectFlag } from '../../flags/project-flag.js';
5
- import { ensureInitialized, NotInitializedError, } from '../../utils/ensure-initialized.js';
6
- import { resolveProjectPath } from '../../utils/resolve-project-path.js';
7
- /**
8
- * Delete a pull request
9
- */
10
- // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
- export default class DeletePr extends Command {
12
- // eslint-disable-next-line no-restricted-syntax
13
- static args = {
14
- id: Args.string({
15
- description: 'PR ID (UUID) or display number',
16
- required: true,
17
- }),
18
- };
19
- // eslint-disable-next-line no-restricted-syntax
20
- static description = 'Delete a pull request';
21
- // eslint-disable-next-line no-restricted-syntax
22
- static examples = [
23
- '<%= config.bin %> delete pr 1',
24
- '<%= config.bin %> delete pr abc123-uuid',
25
- '<%= config.bin %> delete pr 1 --force',
26
- '<%= config.bin %> delete pr 1 --project centy-daemon',
27
- ];
28
- // eslint-disable-next-line no-restricted-syntax
29
- static flags = {
30
- force: Flags.boolean({
31
- char: 'f',
32
- description: 'Skip confirmation prompt',
33
- default: false,
34
- }),
35
- project: projectFlag,
36
- };
37
- async run() {
38
- const { args, flags } = await this.parse(DeletePr);
39
- const cwd = await resolveProjectPath(flags.project);
40
- try {
41
- await ensureInitialized(cwd);
42
- }
43
- catch (error) {
44
- if (error instanceof NotInitializedError) {
45
- this.error(error.message);
46
- }
47
- throw error instanceof Error ? error : new Error(String(error));
48
- }
49
- if (!flags.force) {
50
- const readline = await import('node:readline');
51
- const rl = readline.createInterface({
52
- input: process.stdin,
53
- output: process.stdout,
54
- });
55
- const answer = await new Promise(resolve => {
56
- rl.question(`Are you sure you want to delete PR ${args.id}? (y/N) `, resolve);
57
- });
58
- rl.close();
59
- if (answer.toLowerCase() !== 'y') {
60
- this.log('Cancelled.');
61
- return;
62
- }
63
- }
64
- const response = await daemonDeletePr({
65
- projectPath: cwd,
66
- prId: args.id,
67
- });
68
- if (!response.success) {
69
- this.error(response.error);
70
- }
71
- this.log(`Deleted PR ${args.id}`);
72
- }
73
- }
74
- //# sourceMappingURL=pr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../../src/commands/delete/pr.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../../src/commands/get/pr.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAWlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IAExC,OAAgB,OAAO,WAAc;IAGrC,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAC0B;IAGrD,OAAgB,QAAQ,WAOvB;IAGD,OAAgB,KAAK;;;;MAWpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6ClC"}
@@ -1,86 +0,0 @@
1
- // eslint-disable-next-line import/order
2
- import { Args, Command, Flags } from '@oclif/core';
3
- import { daemonGetPrsByUuid } from '../../daemon/daemon-get-prs-by-uuid.js';
4
- import { projectFlag } from '../../flags/project-flag.js';
5
- import { fetchAndDisplayPr } from '../../lib/get-pr/fetch-and-display.js';
6
- import { handleGlobalPrSearch } from '../../lib/get-pr/handle-global-search.js';
7
- import { handlePrNotInitialized } from '../../lib/get-pr/handle-not-initialized.js';
8
- import { isValidUuid } from '../../utils/cross-project-search.js';
9
- import { ensureInitialized } from '../../utils/ensure-initialized.js';
10
- import { resolveProjectPath } from '../../utils/resolve-project-path.js';
11
- /**
12
- * Get a single pull request by ID or display number
13
- */
14
- // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
15
- export default class GetPr extends Command {
16
- // eslint-disable-next-line no-restricted-syntax
17
- static aliases = ['show:pr'];
18
- // eslint-disable-next-line no-restricted-syntax
19
- static args = {
20
- id: Args.string({
21
- description: 'PR ID (UUID) or display number',
22
- required: true,
23
- }),
24
- };
25
- // eslint-disable-next-line no-restricted-syntax
26
- static description = 'Get a single pull request by ID or display number';
27
- // eslint-disable-next-line no-restricted-syntax
28
- static examples = [
29
- '<%= config.bin %> get pr 1',
30
- '<%= config.bin %> get pr abc123-uuid',
31
- '<%= config.bin %> get pr 1 --json',
32
- '<%= config.bin %> get pr abc12345-1234-1234-1234-123456789abc --global',
33
- '<%= config.bin %> get pr abc12345-1234-1234-1234-123456789abc -g --json',
34
- '<%= config.bin %> get pr 1 --project centy-daemon',
35
- ];
36
- // eslint-disable-next-line no-restricted-syntax
37
- static flags = {
38
- json: Flags.boolean({
39
- description: 'Output as JSON',
40
- default: false,
41
- }),
42
- global: Flags.boolean({
43
- char: 'g',
44
- description: 'Search across all tracked projects (UUID only)',
45
- default: false,
46
- }),
47
- project: projectFlag,
48
- };
49
- async run() {
50
- const { args, flags } = await this.parse(GetPr);
51
- const cwd = await resolveProjectPath(flags.project);
52
- if (flags.global) {
53
- if (!isValidUuid(args.id)) {
54
- this.error('Global search requires a valid UUID. Display numbers are not supported for global search.');
55
- }
56
- const result = await daemonGetPrsByUuid({ uuid: args.id });
57
- if (flags.json) {
58
- this.log(JSON.stringify(result, null, 2));
59
- return;
60
- }
61
- handleGlobalPrSearch(result, args.id, this.log.bind(this), this.warn.bind(this));
62
- return;
63
- }
64
- try {
65
- await ensureInitialized(cwd);
66
- }
67
- catch (error) {
68
- const result = await handlePrNotInitialized(error, args.id, flags.json);
69
- if (result !== null) {
70
- if (result.jsonOutput !== undefined) {
71
- this.log(JSON.stringify(result.jsonOutput, null, 2));
72
- this.exit(1);
73
- }
74
- this.error(result.message);
75
- }
76
- throw error instanceof Error ? error : new Error(String(error));
77
- }
78
- const ctx = {
79
- log: this.log.bind(this),
80
- error: this.error.bind(this),
81
- exit: this.exit.bind(this),
82
- };
83
- await fetchAndDisplayPr(cwd, args.id, flags.json, ctx);
84
- }
85
- }
86
- //# sourceMappingURL=pr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../../src/commands/get/pr.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- /**
3
- * List all pull requests in the .centy/prs folder
4
- */
5
- export default class ListPrs extends Command {
6
- static description: string;
7
- static aliases: string[];
8
- static examples: string[];
9
- static flags: {
10
- status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
- source: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
- target: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
- priority: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
- json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
- project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
- };
17
- run(): Promise<void>;
18
- }
19
- //# sourceMappingURL=prs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prs.d.ts","sourceRoot":"","sources":["../../../src/commands/list/prs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAU5C;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAE1C,OAAgB,WAAW,SAA2B;IAGtD,OAAgB,OAAO,WAAc;IAGrC,OAAgB,QAAQ,WAMvB;IAGD,OAAgB,KAAK;;;;;;;MAoBpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiDlC"}
@@ -1,90 +0,0 @@
1
- // eslint-disable-next-line import/order
2
- import { Command, Flags } from '@oclif/core';
3
- import { daemonListPrs } from '../../daemon/daemon-list-prs.js';
4
- import { projectFlag } from '../../flags/project-flag.js';
5
- import { ensureInitialized, NotInitializedError, } from '../../utils/ensure-initialized.js';
6
- import { resolveProjectPath } from '../../utils/resolve-project-path.js';
7
- /**
8
- * List all pull requests in the .centy/prs folder
9
- */
10
- // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
- export default class ListPrs extends Command {
12
- // eslint-disable-next-line no-restricted-syntax
13
- static description = 'List all pull requests';
14
- // eslint-disable-next-line no-restricted-syntax
15
- static aliases = ['pr:list'];
16
- // eslint-disable-next-line no-restricted-syntax
17
- static examples = [
18
- '<%= config.bin %> list prs',
19
- '<%= config.bin %> list prs --status open',
20
- '<%= config.bin %> list prs --source feature-branch',
21
- '<%= config.bin %> list prs --target main',
22
- '<%= config.bin %> list prs --project centy-daemon',
23
- ];
24
- // eslint-disable-next-line no-restricted-syntax
25
- static flags = {
26
- status: Flags.string({
27
- char: 's',
28
- description: 'Filter by status (draft, open, merged, closed)',
29
- }),
30
- source: Flags.string({
31
- description: 'Filter by source branch',
32
- }),
33
- target: Flags.string({
34
- description: 'Filter by target branch',
35
- }),
36
- priority: Flags.integer({
37
- char: 'p',
38
- description: 'Filter by priority level (1 = highest)',
39
- }),
40
- json: Flags.boolean({
41
- description: 'Output as JSON',
42
- default: false,
43
- }),
44
- project: projectFlag,
45
- };
46
- async run() {
47
- const { flags } = await this.parse(ListPrs);
48
- const cwd = await resolveProjectPath(flags.project);
49
- try {
50
- await ensureInitialized(cwd);
51
- }
52
- catch (error) {
53
- if (error instanceof NotInitializedError) {
54
- this.error(error.message);
55
- }
56
- throw error instanceof Error ? error : new Error(String(error));
57
- }
58
- const response = await daemonListPrs({
59
- projectPath: cwd,
60
- status: flags.status,
61
- sourceBranch: flags.source,
62
- targetBranch: flags.target,
63
- priority: flags.priority,
64
- });
65
- if (flags.json) {
66
- this.log(JSON.stringify(response.prs, null, 2));
67
- return;
68
- }
69
- if (response.prs.length === 0) {
70
- this.log('No pull requests found.');
71
- return;
72
- }
73
- this.log(`Found ${response.totalCount} PR(s):\n`);
74
- for (const pr of response.prs) {
75
- const meta = pr.metadata;
76
- const priority = meta !== undefined
77
- ? meta.priorityLabel !== ''
78
- ? meta.priorityLabel
79
- : `P${meta.priority}`
80
- : 'P?';
81
- const status = meta !== undefined ? meta.status : 'unknown';
82
- const branches = meta !== undefined
83
- ? `${meta.sourceBranch} -> ${meta.targetBranch}`
84
- : '? -> ?';
85
- this.log(`#${pr.displayNumber} [${priority}] [${status}] ${pr.title}`);
86
- this.log(` ${branches}`);
87
- }
88
- }
89
- }
90
- //# sourceMappingURL=prs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prs.js","sourceRoot":"","sources":["../../../src/commands/list/prs.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAExE;;GAEG;AACH,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,gDAAgD;IAChD,MAAM,CAAU,WAAW,GAAG,wBAAwB,CAAA;IAEtD,gDAAgD;IAChD,MAAM,CAAU,OAAO,GAAG,CAAC,SAAS,CAAC,CAAA;IAErC,gDAAgD;IAChD,MAAM,CAAU,QAAQ,GAAG;QACzB,4BAA4B;QAC5B,0CAA0C;QAC1C,oDAAoD;QACpD,0CAA0C;QAC1C,mDAAmD;KACpD,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,KAAK,GAAG;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,gDAAgD;SAC9D,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,yBAAyB;SACvC,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,yBAAyB;SACvC,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,wCAAwC;SACtD,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC;QACF,OAAO,EAAE,WAAW;KACrB,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEnD,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3B,CAAC;YACD,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;YACnC,WAAW,EAAE,GAAG;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,YAAY,EAAE,KAAK,CAAC,MAAM;YAC1B,YAAY,EAAE,KAAK,CAAC,MAAM;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAA;QAEF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC/C,OAAM;QACR,CAAC;QAED,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;YACnC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,UAAU,WAAW,CAAC,CAAA;QACjD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAA;YACxB,MAAM,QAAQ,GACZ,IAAI,KAAK,SAAS;gBAChB,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,EAAE;oBACzB,CAAC,CAAC,IAAI,CAAC,aAAa;oBACpB,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACvB,CAAC,CAAC,IAAI,CAAA;YACV,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;YAC3D,MAAM,QAAQ,GACZ,IAAI,KAAK,SAAS;gBAChB,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,OAAO,IAAI,CAAC,YAAY,EAAE;gBAChD,CAAC,CAAC,QAAQ,CAAA;YACd,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,aAAa,KAAK,QAAQ,MAAM,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;YACtE,IAAI,CAAC,GAAG,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC"}
@@ -1,21 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- export default class UpdatePr extends Command {
3
- static args: {
4
- id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
5
- };
6
- static description: string;
7
- static examples: string[];
8
- static flags: {
9
- title: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
- description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
- status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
- source: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
- target: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
- issues: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
- reviewers: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
- priority: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
- project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
- };
19
- run(): Promise<void>;
20
- }
21
- //# sourceMappingURL=pr.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../../src/commands/update/pr.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAiBlD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAE3C,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAAoC;IAG/D,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;;;;;;;;;MAwBpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmDlC"}