centy 0.0.24 → 0.0.26

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 (246) hide show
  1. package/dist/commands/add/plan.d.ts +18 -0
  2. package/dist/commands/add/plan.d.ts.map +1 -0
  3. package/dist/commands/add/plan.js +87 -0
  4. package/dist/commands/add/plan.js.map +1 -0
  5. package/dist/commands/assign/issue.d.ts +19 -0
  6. package/dist/commands/assign/issue.d.ts.map +1 -0
  7. package/dist/commands/assign/issue.js +79 -0
  8. package/dist/commands/assign/issue.js.map +1 -0
  9. package/dist/commands/close/issue.d.ts +16 -0
  10. package/dist/commands/close/issue.d.ts.map +1 -0
  11. package/dist/commands/close/issue.js +54 -0
  12. package/dist/commands/close/issue.js.map +1 -0
  13. package/dist/commands/close/org-issue.d.ts +17 -0
  14. package/dist/commands/close/org-issue.d.ts.map +1 -0
  15. package/dist/commands/close/org-issue.js +69 -0
  16. package/dist/commands/close/org-issue.js.map +1 -0
  17. package/dist/commands/close.d.ts +22 -0
  18. package/dist/commands/close.d.ts.map +1 -0
  19. package/dist/commands/close.js +198 -0
  20. package/dist/commands/close.js.map +1 -0
  21. package/dist/commands/create/issue.d.ts +1 -0
  22. package/dist/commands/create/issue.d.ts.map +1 -1
  23. package/dist/commands/create/issue.js +6 -0
  24. package/dist/commands/create/issue.js.map +1 -1
  25. package/dist/commands/create/user.d.ts +18 -0
  26. package/dist/commands/create/user.d.ts.map +1 -0
  27. package/dist/commands/create/user.js +85 -0
  28. package/dist/commands/create/user.js.map +1 -0
  29. package/dist/commands/delete/plan.d.ts +17 -0
  30. package/dist/commands/delete/plan.d.ts.map +1 -0
  31. package/dist/commands/delete/plan.js +74 -0
  32. package/dist/commands/delete/plan.js.map +1 -0
  33. package/dist/commands/delete/user.d.ts +17 -0
  34. package/dist/commands/delete/user.d.ts.map +1 -0
  35. package/dist/commands/delete/user.js +73 -0
  36. package/dist/commands/delete/user.js.map +1 -0
  37. package/dist/commands/duplicate/doc.d.ts +19 -0
  38. package/dist/commands/duplicate/doc.d.ts.map +1 -0
  39. package/dist/commands/duplicate/doc.js +87 -0
  40. package/dist/commands/duplicate/doc.js.map +1 -0
  41. package/dist/commands/duplicate/issue.d.ts +18 -0
  42. package/dist/commands/duplicate/issue.d.ts.map +1 -0
  43. package/dist/commands/duplicate/issue.js +82 -0
  44. package/dist/commands/duplicate/issue.js.map +1 -0
  45. package/dist/commands/get/issue.d.ts +1 -0
  46. package/dist/commands/get/issue.d.ts.map +1 -1
  47. package/dist/commands/get/issue.js +38 -1
  48. package/dist/commands/get/issue.js.map +1 -1
  49. package/dist/commands/get/plan.d.ts +18 -0
  50. package/dist/commands/get/plan.d.ts.map +1 -0
  51. package/dist/commands/get/plan.js +68 -0
  52. package/dist/commands/get/plan.js.map +1 -0
  53. package/dist/commands/get/user.d.ts +17 -0
  54. package/dist/commands/get/user.d.ts.map +1 -0
  55. package/dist/commands/get/user.js +75 -0
  56. package/dist/commands/get/user.js.map +1 -0
  57. package/dist/commands/init.d.ts +7 -0
  58. package/dist/commands/init.d.ts.map +1 -1
  59. package/dist/commands/init.js +43 -1
  60. package/dist/commands/init.js.map +1 -1
  61. package/dist/commands/list/issues.d.ts +1 -0
  62. package/dist/commands/list/issues.d.ts.map +1 -1
  63. package/dist/commands/list/issues.js +9 -1
  64. package/dist/commands/list/issues.js.map +1 -1
  65. package/dist/commands/list/users.d.ts +15 -0
  66. package/dist/commands/list/users.d.ts.map +1 -0
  67. package/dist/commands/list/users.js +67 -0
  68. package/dist/commands/list/users.js.map +1 -0
  69. package/dist/commands/move/doc.d.ts +18 -0
  70. package/dist/commands/move/doc.d.ts.map +1 -0
  71. package/dist/commands/move/doc.js +82 -0
  72. package/dist/commands/move/doc.js.map +1 -0
  73. package/dist/commands/move/issue.d.ts +17 -0
  74. package/dist/commands/move/issue.d.ts.map +1 -0
  75. package/dist/commands/move/issue.js +74 -0
  76. package/dist/commands/move/issue.js.map +1 -0
  77. package/dist/commands/project/title.d.ts +19 -0
  78. package/dist/commands/project/title.d.ts.map +1 -0
  79. package/dist/commands/project/title.js +76 -0
  80. package/dist/commands/project/title.js.map +1 -0
  81. package/dist/commands/sync/users.d.ts +17 -0
  82. package/dist/commands/sync/users.d.ts.map +1 -0
  83. package/dist/commands/sync/users.js +105 -0
  84. package/dist/commands/sync/users.js.map +1 -0
  85. package/dist/commands/unassign/issue.d.ts +19 -0
  86. package/dist/commands/unassign/issue.d.ts.map +1 -0
  87. package/dist/commands/unassign/issue.js +79 -0
  88. package/dist/commands/unassign/issue.js.map +1 -0
  89. package/dist/commands/update/issue.d.ts +1 -0
  90. package/dist/commands/update/issue.d.ts.map +1 -1
  91. package/dist/commands/update/issue.js +7 -1
  92. package/dist/commands/update/issue.js.map +1 -1
  93. package/dist/commands/update/user.d.ts +20 -0
  94. package/dist/commands/update/user.d.ts.map +1 -0
  95. package/dist/commands/update/user.js +88 -0
  96. package/dist/commands/update/user.js.map +1 -0
  97. package/dist/daemon/daemon-assign-issue.d.ts +6 -0
  98. package/dist/daemon/daemon-assign-issue.d.ts.map +1 -0
  99. package/dist/daemon/daemon-assign-issue.js +17 -0
  100. package/dist/daemon/daemon-assign-issue.js.map +1 -0
  101. package/dist/daemon/daemon-create-user.d.ts +6 -0
  102. package/dist/daemon/daemon-create-user.d.ts.map +1 -0
  103. package/dist/daemon/daemon-create-user.js +17 -0
  104. package/dist/daemon/daemon-create-user.js.map +1 -0
  105. package/dist/daemon/daemon-delete-plan.d.ts +6 -0
  106. package/dist/daemon/daemon-delete-plan.d.ts.map +1 -0
  107. package/dist/daemon/daemon-delete-plan.js +17 -0
  108. package/dist/daemon/daemon-delete-plan.js.map +1 -0
  109. package/dist/daemon/daemon-delete-user.d.ts +6 -0
  110. package/dist/daemon/daemon-delete-user.d.ts.map +1 -0
  111. package/dist/daemon/daemon-delete-user.js +17 -0
  112. package/dist/daemon/daemon-delete-user.js.map +1 -0
  113. package/dist/daemon/daemon-duplicate-doc.d.ts +6 -0
  114. package/dist/daemon/daemon-duplicate-doc.d.ts.map +1 -0
  115. package/dist/daemon/daemon-duplicate-doc.js +17 -0
  116. package/dist/daemon/daemon-duplicate-doc.js.map +1 -0
  117. package/dist/daemon/daemon-duplicate-issue.d.ts +6 -0
  118. package/dist/daemon/daemon-duplicate-issue.d.ts.map +1 -0
  119. package/dist/daemon/daemon-duplicate-issue.js +17 -0
  120. package/dist/daemon/daemon-duplicate-issue.js.map +1 -0
  121. package/dist/daemon/daemon-get-plan.d.ts +6 -0
  122. package/dist/daemon/daemon-get-plan.d.ts.map +1 -0
  123. package/dist/daemon/daemon-get-plan.js +17 -0
  124. package/dist/daemon/daemon-get-plan.js.map +1 -0
  125. package/dist/daemon/daemon-get-user.d.ts +6 -0
  126. package/dist/daemon/daemon-get-user.d.ts.map +1 -0
  127. package/dist/daemon/daemon-get-user.js +17 -0
  128. package/dist/daemon/daemon-get-user.js.map +1 -0
  129. package/dist/daemon/daemon-list-users.d.ts +6 -0
  130. package/dist/daemon/daemon-list-users.d.ts.map +1 -0
  131. package/dist/daemon/daemon-list-users.js +17 -0
  132. package/dist/daemon/daemon-list-users.js.map +1 -0
  133. package/dist/daemon/daemon-move-doc.d.ts +6 -0
  134. package/dist/daemon/daemon-move-doc.d.ts.map +1 -0
  135. package/dist/daemon/daemon-move-doc.js +17 -0
  136. package/dist/daemon/daemon-move-doc.js.map +1 -0
  137. package/dist/daemon/daemon-move-issue.d.ts +6 -0
  138. package/dist/daemon/daemon-move-issue.d.ts.map +1 -0
  139. package/dist/daemon/daemon-move-issue.js +17 -0
  140. package/dist/daemon/daemon-move-issue.js.map +1 -0
  141. package/dist/daemon/daemon-set-project-title.d.ts +7 -0
  142. package/dist/daemon/daemon-set-project-title.d.ts.map +1 -0
  143. package/dist/daemon/daemon-set-project-title.js +18 -0
  144. package/dist/daemon/daemon-set-project-title.js.map +1 -0
  145. package/dist/daemon/daemon-set-project-user-title.d.ts +7 -0
  146. package/dist/daemon/daemon-set-project-user-title.d.ts.map +1 -0
  147. package/dist/daemon/daemon-set-project-user-title.js +18 -0
  148. package/dist/daemon/daemon-set-project-user-title.js.map +1 -0
  149. package/dist/daemon/daemon-spawn-agent.d.ts +6 -0
  150. package/dist/daemon/daemon-spawn-agent.d.ts.map +1 -0
  151. package/dist/daemon/daemon-spawn-agent.js +17 -0
  152. package/dist/daemon/daemon-spawn-agent.js.map +1 -0
  153. package/dist/daemon/daemon-sync-users.d.ts +6 -0
  154. package/dist/daemon/daemon-sync-users.d.ts.map +1 -0
  155. package/dist/daemon/daemon-sync-users.js +17 -0
  156. package/dist/daemon/daemon-sync-users.js.map +1 -0
  157. package/dist/daemon/daemon-unassign-issue.d.ts +6 -0
  158. package/dist/daemon/daemon-unassign-issue.d.ts.map +1 -0
  159. package/dist/daemon/daemon-unassign-issue.js +17 -0
  160. package/dist/daemon/daemon-unassign-issue.js.map +1 -0
  161. package/dist/daemon/daemon-update-plan.d.ts +6 -0
  162. package/dist/daemon/daemon-update-plan.d.ts.map +1 -0
  163. package/dist/daemon/daemon-update-plan.js +17 -0
  164. package/dist/daemon/daemon-update-plan.js.map +1 -0
  165. package/dist/daemon/daemon-update-user.d.ts +6 -0
  166. package/dist/daemon/daemon-update-user.d.ts.map +1 -0
  167. package/dist/daemon/daemon-update-user.js +17 -0
  168. package/dist/daemon/daemon-update-user.js.map +1 -0
  169. package/dist/daemon/load-proto.d.ts +20 -1
  170. package/dist/daemon/load-proto.d.ts.map +1 -1
  171. package/dist/daemon/load-proto.js.map +1 -1
  172. package/dist/daemon/types.d.ts +242 -0
  173. package/dist/daemon/types.d.ts.map +1 -1
  174. package/dist/hooks/postrun.d.ts +4 -0
  175. package/dist/hooks/postrun.d.ts.map +1 -0
  176. package/dist/hooks/postrun.js +17 -0
  177. package/dist/hooks/postrun.js.map +1 -0
  178. package/dist/lib/create-issue/create-issue.d.ts.map +1 -1
  179. package/dist/lib/create-issue/create-issue.js +3 -0
  180. package/dist/lib/create-issue/create-issue.js.map +1 -1
  181. package/dist/lib/init/init.d.ts +7 -0
  182. package/dist/lib/init/init.d.ts.map +1 -1
  183. package/dist/lib/init/init.js +51 -1
  184. package/dist/lib/init/init.js.map +1 -1
  185. package/dist/lib/install-daemon/github-api.d.ts.map +1 -1
  186. package/dist/lib/install-daemon/github-api.js +50 -39
  187. package/dist/lib/install-daemon/github-api.js.map +1 -1
  188. package/dist/tui/components/domain/AssetList.js +1 -3
  189. package/dist/tui/components/domain/AssetList.js.map +1 -1
  190. package/dist/tui/components/domain/ConfigPanel.js +1 -3
  191. package/dist/tui/components/domain/ConfigPanel.js.map +1 -1
  192. package/dist/tui/components/domain/DocCreate.d.ts.map +1 -1
  193. package/dist/tui/components/domain/DocCreate.js +10 -43
  194. package/dist/tui/components/domain/DocCreate.js.map +1 -1
  195. package/dist/tui/components/domain/IssueCreate.d.ts.map +1 -1
  196. package/dist/tui/components/domain/IssueCreate.js +11 -55
  197. package/dist/tui/components/domain/IssueCreate.js.map +1 -1
  198. package/dist/tui/components/domain/IssueEdit.d.ts.map +1 -1
  199. package/dist/tui/components/domain/IssueEdit.js +15 -54
  200. package/dist/tui/components/domain/IssueEdit.js.map +1 -1
  201. package/dist/tui/components/domain/IssueList.js +1 -1
  202. package/dist/tui/components/domain/IssueList.js.map +1 -1
  203. package/dist/tui/components/domain/PRCreate.d.ts.map +1 -1
  204. package/dist/tui/components/domain/PRCreate.js +12 -47
  205. package/dist/tui/components/domain/PRCreate.js.map +1 -1
  206. package/dist/tui/components/domain/PREdit.d.ts.map +1 -1
  207. package/dist/tui/components/domain/PREdit.js +17 -51
  208. package/dist/tui/components/domain/PREdit.js.map +1 -1
  209. package/dist/tui/components/domain/PRList.js +1 -1
  210. package/dist/tui/components/domain/PRList.js.map +1 -1
  211. package/dist/tui/components/domain/ProjectCreate.d.ts.map +1 -1
  212. package/dist/tui/components/domain/ProjectCreate.js +5 -13
  213. package/dist/tui/components/domain/ProjectCreate.js.map +1 -1
  214. package/dist/tui/components/domain/ProjectList.js +1 -3
  215. package/dist/tui/components/domain/ProjectList.js.map +1 -1
  216. package/dist/tui/components/form/FormInput.d.ts +12 -0
  217. package/dist/tui/components/form/FormInput.d.ts.map +1 -0
  218. package/dist/tui/components/form/FormInput.js +6 -0
  219. package/dist/tui/components/form/FormInput.js.map +1 -0
  220. package/dist/tui/components/form/FormTextarea.d.ts +11 -0
  221. package/dist/tui/components/form/FormTextarea.d.ts.map +1 -0
  222. package/dist/tui/components/form/FormTextarea.js +13 -0
  223. package/dist/tui/components/form/FormTextarea.js.map +1 -0
  224. package/dist/tui/components/form/index.d.ts +3 -0
  225. package/dist/tui/components/form/index.d.ts.map +1 -0
  226. package/dist/tui/components/form/index.js +3 -0
  227. package/dist/tui/components/form/index.js.map +1 -0
  228. package/dist/tui/components/layout/Sidebar.js +1 -1
  229. package/dist/tui/components/layout/Sidebar.js.map +1 -1
  230. package/dist/tui/hooks/useNavigation.d.ts +1 -0
  231. package/dist/tui/hooks/useNavigation.d.ts.map +1 -1
  232. package/dist/tui/hooks/useNavigation.js +4 -0
  233. package/dist/tui/hooks/useNavigation.js.map +1 -1
  234. package/dist/tui/state/app-state.d.ts +4 -0
  235. package/dist/tui/state/app-state.d.ts.map +1 -1
  236. package/dist/tui/state/app-state.js +7 -0
  237. package/dist/tui/state/app-state.js.map +1 -1
  238. package/dist/types/create-issue-options.d.ts +2 -0
  239. package/dist/types/create-issue-options.d.ts.map +1 -1
  240. package/dist/types/init-options.d.ts +14 -0
  241. package/dist/types/init-options.d.ts.map +1 -1
  242. package/dist/utils/is-valid-uuid.js +2 -2
  243. package/dist/utils/is-valid-uuid.js.map +1 -1
  244. package/oclif.manifest.json +1270 -155
  245. package/package.json +9 -3
  246. package/proto/centy.proto +230 -0
@@ -1,5 +1,74 @@
1
1
  {
2
2
  "commands": {
3
+ "close": {
4
+ "aliases": [],
5
+ "args": {
6
+ "identifier": {
7
+ "description": "Display number (#N or N) or UUID",
8
+ "name": "identifier",
9
+ "required": true
10
+ }
11
+ },
12
+ "description": "Close an issue, PR, or org-issue by display number",
13
+ "examples": [
14
+ "<%= config.bin %> close 1",
15
+ "<%= config.bin %> close #1",
16
+ "<%= config.bin %> close 1 --type issue",
17
+ "<%= config.bin %> close 1 --type pr",
18
+ "<%= config.bin %> close 1 --org my-org",
19
+ "<%= config.bin %> close 1 --project centy-daemon"
20
+ ],
21
+ "flags": {
22
+ "type": {
23
+ "char": "t",
24
+ "description": "Entity type (issue, pr, org-issue)",
25
+ "name": "type",
26
+ "hasDynamicHelp": false,
27
+ "multiple": false,
28
+ "options": [
29
+ "issue",
30
+ "pr",
31
+ "org-issue"
32
+ ],
33
+ "type": "option"
34
+ },
35
+ "org": {
36
+ "char": "o",
37
+ "description": "Organization slug (for org-issues)",
38
+ "name": "org",
39
+ "hasDynamicHelp": false,
40
+ "multiple": false,
41
+ "type": "option"
42
+ },
43
+ "project": {
44
+ "description": "Project name or path (defaults to current directory)",
45
+ "name": "project",
46
+ "hasDynamicHelp": false,
47
+ "multiple": false,
48
+ "type": "option"
49
+ },
50
+ "json": {
51
+ "description": "Output as JSON",
52
+ "name": "json",
53
+ "allowNo": false,
54
+ "type": "boolean"
55
+ }
56
+ },
57
+ "hasDynamicHelp": false,
58
+ "hiddenAliases": [],
59
+ "id": "close",
60
+ "pluginAlias": "centy",
61
+ "pluginName": "centy",
62
+ "pluginType": "core",
63
+ "strict": true,
64
+ "enableJsonFlag": false,
65
+ "isESM": true,
66
+ "relativePath": [
67
+ "dist",
68
+ "commands",
69
+ "close.js"
70
+ ]
71
+ },
3
72
  "compact": {
4
73
  "aliases": [],
5
74
  "args": {},
@@ -133,6 +202,52 @@
133
202
  "name": "force",
134
203
  "allowNo": false,
135
204
  "type": "boolean"
205
+ },
206
+ "priority-levels": {
207
+ "description": "Number of priority levels (1-10, default: 3)",
208
+ "name": "priority-levels",
209
+ "hasDynamicHelp": false,
210
+ "multiple": false,
211
+ "type": "option"
212
+ },
213
+ "default-state": {
214
+ "description": "Default state for new issues (default: \"open\")",
215
+ "name": "default-state",
216
+ "hasDynamicHelp": false,
217
+ "multiple": false,
218
+ "type": "option"
219
+ },
220
+ "allowed-states": {
221
+ "description": "Comma-separated list of allowed states",
222
+ "name": "allowed-states",
223
+ "hasDynamicHelp": false,
224
+ "multiple": false,
225
+ "type": "option"
226
+ },
227
+ "version": {
228
+ "description": "Project version (semver)",
229
+ "name": "version",
230
+ "hasDynamicHelp": false,
231
+ "multiple": false,
232
+ "type": "option"
233
+ },
234
+ "llm-auto-close": {
235
+ "description": "Auto-close issues when LLM completes work",
236
+ "name": "llm-auto-close",
237
+ "allowNo": true,
238
+ "type": "boolean"
239
+ },
240
+ "llm-update-status": {
241
+ "description": "Update status to in-progress when LLM starts",
242
+ "name": "llm-update-status",
243
+ "allowNo": true,
244
+ "type": "boolean"
245
+ },
246
+ "llm-allow-direct-edits": {
247
+ "description": "Allow LLM to directly edit issue files",
248
+ "name": "llm-allow-direct-edits",
249
+ "allowNo": true,
250
+ "type": "boolean"
136
251
  }
137
252
  },
138
253
  "hasDynamicHelp": false,
@@ -436,6 +551,197 @@
436
551
  "asset.js"
437
552
  ]
438
553
  },
554
+ "add:plan": {
555
+ "aliases": [
556
+ "update:plan",
557
+ "set:plan"
558
+ ],
559
+ "args": {
560
+ "issueId": {
561
+ "description": "Issue ID or display number",
562
+ "name": "issueId",
563
+ "required": true
564
+ }
565
+ },
566
+ "description": "Add or update an issue's plan",
567
+ "examples": [
568
+ "<%= config.bin %> add plan 1 --file ./plan.md",
569
+ "<%= config.bin %> add plan abc123 --file ./plan.md",
570
+ "echo \"# Plan\" | <%= config.bin %> add plan 1",
571
+ "<%= config.bin %> add plan 1 --project centy-daemon --file ./plan.md"
572
+ ],
573
+ "flags": {
574
+ "file": {
575
+ "char": "f",
576
+ "description": "Path to the plan file (reads from stdin if not provided)",
577
+ "name": "file",
578
+ "hasDynamicHelp": false,
579
+ "multiple": false,
580
+ "type": "option"
581
+ },
582
+ "project": {
583
+ "description": "Project name or path (defaults to current directory)",
584
+ "name": "project",
585
+ "hasDynamicHelp": false,
586
+ "multiple": false,
587
+ "type": "option"
588
+ }
589
+ },
590
+ "hasDynamicHelp": false,
591
+ "hiddenAliases": [],
592
+ "id": "add:plan",
593
+ "pluginAlias": "centy",
594
+ "pluginName": "centy",
595
+ "pluginType": "core",
596
+ "strict": true,
597
+ "enableJsonFlag": false,
598
+ "isESM": true,
599
+ "relativePath": [
600
+ "dist",
601
+ "commands",
602
+ "add",
603
+ "plan.js"
604
+ ]
605
+ },
606
+ "assign:issue": {
607
+ "aliases": [],
608
+ "args": {
609
+ "issueId": {
610
+ "description": "Issue ID (UUID) or display number",
611
+ "name": "issueId",
612
+ "required": true
613
+ },
614
+ "userIds": {
615
+ "description": "User IDs to assign (space-separated)",
616
+ "name": "userIds",
617
+ "required": true
618
+ }
619
+ },
620
+ "description": "Assign users to an issue",
621
+ "examples": [
622
+ "<%= config.bin %> assign issue 1 john-doe",
623
+ "<%= config.bin %> assign issue abc123-uuid alice bob",
624
+ "<%= config.bin %> assign issue 1 john-doe --project centy-daemon"
625
+ ],
626
+ "flags": {
627
+ "json": {
628
+ "description": "Output as JSON",
629
+ "name": "json",
630
+ "allowNo": false,
631
+ "type": "boolean"
632
+ },
633
+ "project": {
634
+ "description": "Project name or path (defaults to current directory)",
635
+ "name": "project",
636
+ "hasDynamicHelp": false,
637
+ "multiple": false,
638
+ "type": "option"
639
+ }
640
+ },
641
+ "hasDynamicHelp": false,
642
+ "hiddenAliases": [],
643
+ "id": "assign:issue",
644
+ "pluginAlias": "centy",
645
+ "pluginName": "centy",
646
+ "pluginType": "core",
647
+ "strict": false,
648
+ "enableJsonFlag": false,
649
+ "isESM": true,
650
+ "relativePath": [
651
+ "dist",
652
+ "commands",
653
+ "assign",
654
+ "issue.js"
655
+ ]
656
+ },
657
+ "close:issue": {
658
+ "aliases": [],
659
+ "args": {
660
+ "id": {
661
+ "description": "Issue ID (UUID) or display number",
662
+ "name": "id",
663
+ "required": true
664
+ }
665
+ },
666
+ "description": "Close an issue",
667
+ "examples": [
668
+ "<%= config.bin %> close issue 1",
669
+ "<%= config.bin %> close issue abc123-uuid",
670
+ "<%= config.bin %> close issue 1 --project centy-daemon"
671
+ ],
672
+ "flags": {
673
+ "project": {
674
+ "description": "Project name or path (defaults to current directory)",
675
+ "name": "project",
676
+ "hasDynamicHelp": false,
677
+ "multiple": false,
678
+ "type": "option"
679
+ }
680
+ },
681
+ "hasDynamicHelp": false,
682
+ "hiddenAliases": [],
683
+ "id": "close:issue",
684
+ "pluginAlias": "centy",
685
+ "pluginName": "centy",
686
+ "pluginType": "core",
687
+ "strict": true,
688
+ "enableJsonFlag": false,
689
+ "isESM": true,
690
+ "relativePath": [
691
+ "dist",
692
+ "commands",
693
+ "close",
694
+ "issue.js"
695
+ ]
696
+ },
697
+ "close:org-issue": {
698
+ "aliases": [],
699
+ "args": {
700
+ "identifier": {
701
+ "description": "Issue ID or display number (#N or just N)",
702
+ "name": "identifier",
703
+ "required": true
704
+ }
705
+ },
706
+ "description": "Close an organization-level issue",
707
+ "examples": [
708
+ "<%= config.bin %> close org-issue --org my-org 1",
709
+ "<%= config.bin %> close org-issue --org my-org #1",
710
+ "<%= config.bin %> close org-issue -o centy-io abc123"
711
+ ],
712
+ "flags": {
713
+ "org": {
714
+ "char": "o",
715
+ "description": "Organization slug",
716
+ "name": "org",
717
+ "required": true,
718
+ "hasDynamicHelp": false,
719
+ "multiple": false,
720
+ "type": "option"
721
+ },
722
+ "json": {
723
+ "description": "Output as JSON",
724
+ "name": "json",
725
+ "allowNo": false,
726
+ "type": "boolean"
727
+ }
728
+ },
729
+ "hasDynamicHelp": false,
730
+ "hiddenAliases": [],
731
+ "id": "close:org-issue",
732
+ "pluginAlias": "centy",
733
+ "pluginName": "centy",
734
+ "pluginType": "core",
735
+ "strict": true,
736
+ "enableJsonFlag": false,
737
+ "isESM": true,
738
+ "relativePath": [
739
+ "dist",
740
+ "commands",
741
+ "close",
742
+ "org-issue.js"
743
+ ]
744
+ },
439
745
  "create:doc": {
440
746
  "aliases": [],
441
747
  "args": {},
@@ -511,7 +817,8 @@
511
817
  "<%= config.bin %> create issue",
512
818
  "<%= config.bin %> create issue --title \"Bug in login\" --priority high",
513
819
  "<%= config.bin %> create issue -t \"Add feature\" -d \"Implement dark mode\"",
514
- "<%= config.bin %> create issue -t \"Add feature\" --project centy-daemon"
820
+ "<%= config.bin %> create issue -t \"Add feature\" --project centy-daemon",
821
+ "<%= config.bin %> create issue --title \"WIP feature\" --draft"
515
822
  ],
516
823
  "flags": {
517
824
  "title": {
@@ -552,6 +859,12 @@
552
859
  "multiple": false,
553
860
  "type": "option"
554
861
  },
862
+ "draft": {
863
+ "description": "Create as draft",
864
+ "name": "draft",
865
+ "allowNo": false,
866
+ "type": "boolean"
867
+ },
555
868
  "project": {
556
869
  "description": "Project name or path (defaults to current directory)",
557
870
  "name": "project",
@@ -834,36 +1147,275 @@
834
1147
  "pr.js"
835
1148
  ]
836
1149
  },
837
- "delete:asset": {
1150
+ "create:user": {
838
1151
  "aliases": [],
839
- "args": {
840
- "filename": {
841
- "description": "Asset filename",
842
- "name": "filename",
843
- "required": true
844
- }
845
- },
846
- "description": "Delete an asset",
1152
+ "args": {},
1153
+ "description": "Create a new user in the project",
847
1154
  "examples": [
848
- "<%= config.bin %> delete asset screenshot.png --issue 1",
849
- "<%= config.bin %> delete asset logo.svg --shared",
850
- "<%= config.bin %> delete asset old-image.png --issue 1 --force",
851
- "<%= config.bin %> delete asset screenshot.png --issue 1 --project centy-daemon"
1155
+ "<%= config.bin %> create user --name \"John Doe\"",
1156
+ "<%= config.bin %> create user --id john-doe --name \"John Doe\" --email john@example.com",
1157
+ "<%= config.bin %> create user -n \"Alice\" -g alice-dev -g alice-work",
1158
+ "<%= config.bin %> create user --name \"Bob\" --project centy-daemon"
852
1159
  ],
853
1160
  "flags": {
854
- "issue": {
1161
+ "id": {
855
1162
  "char": "i",
856
- "description": "Issue ID or display number",
857
- "name": "issue",
1163
+ "description": "User ID (slug format, auto-generated from name if not provided)",
1164
+ "name": "id",
858
1165
  "hasDynamicHelp": false,
859
1166
  "multiple": false,
860
1167
  "type": "option"
861
1168
  },
862
- "shared": {
863
- "char": "s",
864
- "description": "Delete a shared asset",
865
- "name": "shared",
866
- "allowNo": false,
1169
+ "name": {
1170
+ "char": "n",
1171
+ "description": "Display name (required)",
1172
+ "name": "name",
1173
+ "required": true,
1174
+ "hasDynamicHelp": false,
1175
+ "multiple": false,
1176
+ "type": "option"
1177
+ },
1178
+ "email": {
1179
+ "char": "e",
1180
+ "description": "Email address",
1181
+ "name": "email",
1182
+ "hasDynamicHelp": false,
1183
+ "multiple": false,
1184
+ "type": "option"
1185
+ },
1186
+ "git-username": {
1187
+ "char": "g",
1188
+ "description": "Git username (can be specified multiple times)",
1189
+ "name": "git-username",
1190
+ "hasDynamicHelp": false,
1191
+ "multiple": true,
1192
+ "type": "option"
1193
+ },
1194
+ "json": {
1195
+ "description": "Output as JSON",
1196
+ "name": "json",
1197
+ "allowNo": false,
1198
+ "type": "boolean"
1199
+ },
1200
+ "project": {
1201
+ "description": "Project name or path (defaults to current directory)",
1202
+ "name": "project",
1203
+ "hasDynamicHelp": false,
1204
+ "multiple": false,
1205
+ "type": "option"
1206
+ }
1207
+ },
1208
+ "hasDynamicHelp": false,
1209
+ "hiddenAliases": [],
1210
+ "id": "create:user",
1211
+ "pluginAlias": "centy",
1212
+ "pluginName": "centy",
1213
+ "pluginType": "core",
1214
+ "strict": true,
1215
+ "enableJsonFlag": false,
1216
+ "isESM": true,
1217
+ "relativePath": [
1218
+ "dist",
1219
+ "commands",
1220
+ "create",
1221
+ "user.js"
1222
+ ]
1223
+ },
1224
+ "daemon:autostart": {
1225
+ "aliases": [],
1226
+ "args": {},
1227
+ "description": "Configure daemon to start automatically on boot",
1228
+ "examples": [
1229
+ "<%= config.bin %> daemon autostart",
1230
+ "<%= config.bin %> daemon autostart --enable",
1231
+ "<%= config.bin %> daemon autostart --disable"
1232
+ ],
1233
+ "flags": {
1234
+ "enable": {
1235
+ "description": "Enable autostart on boot",
1236
+ "exclusive": [
1237
+ "disable"
1238
+ ],
1239
+ "name": "enable",
1240
+ "allowNo": false,
1241
+ "type": "boolean"
1242
+ },
1243
+ "disable": {
1244
+ "description": "Disable autostart on boot",
1245
+ "exclusive": [
1246
+ "enable"
1247
+ ],
1248
+ "name": "disable",
1249
+ "allowNo": false,
1250
+ "type": "boolean"
1251
+ }
1252
+ },
1253
+ "hasDynamicHelp": false,
1254
+ "hiddenAliases": [],
1255
+ "id": "daemon:autostart",
1256
+ "pluginAlias": "centy",
1257
+ "pluginName": "centy",
1258
+ "pluginType": "core",
1259
+ "strict": true,
1260
+ "enableJsonFlag": false,
1261
+ "isESM": true,
1262
+ "relativePath": [
1263
+ "dist",
1264
+ "commands",
1265
+ "daemon",
1266
+ "autostart.js"
1267
+ ]
1268
+ },
1269
+ "duplicate:doc": {
1270
+ "aliases": [],
1271
+ "args": {
1272
+ "slug": {
1273
+ "description": "Doc slug",
1274
+ "name": "slug",
1275
+ "required": true
1276
+ }
1277
+ },
1278
+ "description": "Duplicate a doc (same project or different project)",
1279
+ "examples": [
1280
+ "<%= config.bin %> duplicate doc my-doc",
1281
+ "<%= config.bin %> duplicate doc readme --new-slug readme-v2",
1282
+ "<%= config.bin %> duplicate doc api-guide --to /path/to/other/project",
1283
+ "<%= config.bin %> duplicate doc spec --to ../other --new-slug spec-copy --title \"Spec Copy\""
1284
+ ],
1285
+ "flags": {
1286
+ "to": {
1287
+ "char": "t",
1288
+ "description": "Target project path (defaults to same project if not specified)",
1289
+ "name": "to",
1290
+ "hasDynamicHelp": false,
1291
+ "multiple": false,
1292
+ "type": "option"
1293
+ },
1294
+ "new-slug": {
1295
+ "char": "s",
1296
+ "description": "Slug for the duplicate (defaults to \"{slug}-copy\")",
1297
+ "name": "new-slug",
1298
+ "hasDynamicHelp": false,
1299
+ "multiple": false,
1300
+ "type": "option"
1301
+ },
1302
+ "title": {
1303
+ "description": "Title for the duplicate (defaults to \"Copy of {original}\")",
1304
+ "name": "title",
1305
+ "hasDynamicHelp": false,
1306
+ "multiple": false,
1307
+ "type": "option"
1308
+ },
1309
+ "project": {
1310
+ "description": "Project name or path (defaults to current directory)",
1311
+ "name": "project",
1312
+ "hasDynamicHelp": false,
1313
+ "multiple": false,
1314
+ "type": "option"
1315
+ }
1316
+ },
1317
+ "hasDynamicHelp": false,
1318
+ "hiddenAliases": [],
1319
+ "id": "duplicate:doc",
1320
+ "pluginAlias": "centy",
1321
+ "pluginName": "centy",
1322
+ "pluginType": "core",
1323
+ "strict": true,
1324
+ "enableJsonFlag": false,
1325
+ "isESM": true,
1326
+ "relativePath": [
1327
+ "dist",
1328
+ "commands",
1329
+ "duplicate",
1330
+ "doc.js"
1331
+ ]
1332
+ },
1333
+ "duplicate:issue": {
1334
+ "aliases": [],
1335
+ "args": {
1336
+ "id": {
1337
+ "description": "Issue ID (UUID) or display number",
1338
+ "name": "id",
1339
+ "required": true
1340
+ }
1341
+ },
1342
+ "description": "Duplicate an issue (same project or different project)",
1343
+ "examples": [
1344
+ "<%= config.bin %> duplicate issue 1",
1345
+ "<%= config.bin %> duplicate issue 1 --title \"New feature branch\"",
1346
+ "<%= config.bin %> duplicate issue abc123-uuid --to /path/to/other/project",
1347
+ "<%= config.bin %> duplicate issue 5 --to ../other --title \"Copy for testing\""
1348
+ ],
1349
+ "flags": {
1350
+ "to": {
1351
+ "char": "t",
1352
+ "description": "Target project path (defaults to same project if not specified)",
1353
+ "name": "to",
1354
+ "hasDynamicHelp": false,
1355
+ "multiple": false,
1356
+ "type": "option"
1357
+ },
1358
+ "title": {
1359
+ "description": "Title for the duplicate (defaults to \"Copy of {original}\")",
1360
+ "name": "title",
1361
+ "hasDynamicHelp": false,
1362
+ "multiple": false,
1363
+ "type": "option"
1364
+ },
1365
+ "project": {
1366
+ "description": "Project name or path (defaults to current directory)",
1367
+ "name": "project",
1368
+ "hasDynamicHelp": false,
1369
+ "multiple": false,
1370
+ "type": "option"
1371
+ }
1372
+ },
1373
+ "hasDynamicHelp": false,
1374
+ "hiddenAliases": [],
1375
+ "id": "duplicate:issue",
1376
+ "pluginAlias": "centy",
1377
+ "pluginName": "centy",
1378
+ "pluginType": "core",
1379
+ "strict": true,
1380
+ "enableJsonFlag": false,
1381
+ "isESM": true,
1382
+ "relativePath": [
1383
+ "dist",
1384
+ "commands",
1385
+ "duplicate",
1386
+ "issue.js"
1387
+ ]
1388
+ },
1389
+ "delete:asset": {
1390
+ "aliases": [],
1391
+ "args": {
1392
+ "filename": {
1393
+ "description": "Asset filename",
1394
+ "name": "filename",
1395
+ "required": true
1396
+ }
1397
+ },
1398
+ "description": "Delete an asset",
1399
+ "examples": [
1400
+ "<%= config.bin %> delete asset screenshot.png --issue 1",
1401
+ "<%= config.bin %> delete asset logo.svg --shared",
1402
+ "<%= config.bin %> delete asset old-image.png --issue 1 --force",
1403
+ "<%= config.bin %> delete asset screenshot.png --issue 1 --project centy-daemon"
1404
+ ],
1405
+ "flags": {
1406
+ "issue": {
1407
+ "char": "i",
1408
+ "description": "Issue ID or display number",
1409
+ "name": "issue",
1410
+ "hasDynamicHelp": false,
1411
+ "multiple": false,
1412
+ "type": "option"
1413
+ },
1414
+ "shared": {
1415
+ "char": "s",
1416
+ "description": "Delete a shared asset",
1417
+ "name": "shared",
1418
+ "allowNo": false,
867
1419
  "type": "boolean"
868
1420
  },
869
1421
  "force": {
@@ -1088,6 +1640,54 @@
1088
1640
  "org.js"
1089
1641
  ]
1090
1642
  },
1643
+ "delete:plan": {
1644
+ "aliases": [],
1645
+ "args": {
1646
+ "issueId": {
1647
+ "description": "Issue ID or display number",
1648
+ "name": "issueId",
1649
+ "required": true
1650
+ }
1651
+ },
1652
+ "description": "Delete an issue's plan",
1653
+ "examples": [
1654
+ "<%= config.bin %> delete plan 1",
1655
+ "<%= config.bin %> delete plan abc123",
1656
+ "<%= config.bin %> delete plan 1 --force",
1657
+ "<%= config.bin %> delete plan 1 --project centy-daemon"
1658
+ ],
1659
+ "flags": {
1660
+ "force": {
1661
+ "char": "f",
1662
+ "description": "Skip confirmation prompt",
1663
+ "name": "force",
1664
+ "allowNo": false,
1665
+ "type": "boolean"
1666
+ },
1667
+ "project": {
1668
+ "description": "Project name or path (defaults to current directory)",
1669
+ "name": "project",
1670
+ "hasDynamicHelp": false,
1671
+ "multiple": false,
1672
+ "type": "option"
1673
+ }
1674
+ },
1675
+ "hasDynamicHelp": false,
1676
+ "hiddenAliases": [],
1677
+ "id": "delete:plan",
1678
+ "pluginAlias": "centy",
1679
+ "pluginName": "centy",
1680
+ "pluginType": "core",
1681
+ "strict": true,
1682
+ "enableJsonFlag": false,
1683
+ "isESM": true,
1684
+ "relativePath": [
1685
+ "dist",
1686
+ "commands",
1687
+ "delete",
1688
+ "plan.js"
1689
+ ]
1690
+ },
1091
1691
  "delete:pr": {
1092
1692
  "aliases": [],
1093
1693
  "args": {
@@ -1136,6 +1736,53 @@
1136
1736
  "pr.js"
1137
1737
  ]
1138
1738
  },
1739
+ "delete:user": {
1740
+ "aliases": [],
1741
+ "args": {
1742
+ "id": {
1743
+ "description": "User ID",
1744
+ "name": "id",
1745
+ "required": true
1746
+ }
1747
+ },
1748
+ "description": "Delete a user",
1749
+ "examples": [
1750
+ "<%= config.bin %> delete user john-doe",
1751
+ "<%= config.bin %> delete user john-doe --force",
1752
+ "<%= config.bin %> delete user john-doe --project centy-daemon"
1753
+ ],
1754
+ "flags": {
1755
+ "force": {
1756
+ "char": "f",
1757
+ "description": "Skip confirmation prompt",
1758
+ "name": "force",
1759
+ "allowNo": false,
1760
+ "type": "boolean"
1761
+ },
1762
+ "project": {
1763
+ "description": "Project name or path (defaults to current directory)",
1764
+ "name": "project",
1765
+ "hasDynamicHelp": false,
1766
+ "multiple": false,
1767
+ "type": "option"
1768
+ }
1769
+ },
1770
+ "hasDynamicHelp": false,
1771
+ "hiddenAliases": [],
1772
+ "id": "delete:user",
1773
+ "pluginAlias": "centy",
1774
+ "pluginName": "centy",
1775
+ "pluginType": "core",
1776
+ "strict": true,
1777
+ "enableJsonFlag": false,
1778
+ "isESM": true,
1779
+ "relativePath": [
1780
+ "dist",
1781
+ "commands",
1782
+ "delete",
1783
+ "user.js"
1784
+ ]
1785
+ },
1139
1786
  "get:asset": {
1140
1787
  "aliases": [
1141
1788
  "show:asset"
@@ -1278,7 +1925,9 @@
1278
1925
  "<%= config.bin %> get issue abc12345-1234-1234-1234-123456789abc --global",
1279
1926
  "<%= config.bin %> get issue abc12345-1234-1234-1234-123456789abc -g --json",
1280
1927
  "<%= config.bin %> get issue 1 --project centy-daemon",
1281
- "<%= config.bin %> get issue 1 --project /path/to/project"
1928
+ "<%= config.bin %> get issue 1 --project /path/to/project",
1929
+ "<%= config.bin %> issue 1 --action plan",
1930
+ "<%= config.bin %> issue 1 -a implement"
1282
1931
  ],
1283
1932
  "flags": {
1284
1933
  "json": {
@@ -1300,6 +1949,18 @@
1300
1949
  "hasDynamicHelp": false,
1301
1950
  "multiple": false,
1302
1951
  "type": "option"
1952
+ },
1953
+ "action": {
1954
+ "char": "a",
1955
+ "description": "Spawn AI agent with action (plan or implement)",
1956
+ "name": "action",
1957
+ "hasDynamicHelp": false,
1958
+ "multiple": false,
1959
+ "options": [
1960
+ "plan",
1961
+ "implement"
1962
+ ],
1963
+ "type": "option"
1303
1964
  }
1304
1965
  },
1305
1966
  "hasDynamicHelp": false,
@@ -1407,6 +2068,57 @@
1407
2068
  "org.js"
1408
2069
  ]
1409
2070
  },
2071
+ "get:plan": {
2072
+ "aliases": [
2073
+ "show:plan"
2074
+ ],
2075
+ "args": {
2076
+ "issueId": {
2077
+ "description": "Issue ID or display number",
2078
+ "name": "issueId",
2079
+ "required": true
2080
+ }
2081
+ },
2082
+ "description": "Get an issue's plan",
2083
+ "examples": [
2084
+ "<%= config.bin %> get plan 1",
2085
+ "<%= config.bin %> get plan abc123",
2086
+ "<%= config.bin %> get plan 1 --output ./plan.md",
2087
+ "<%= config.bin %> get plan 1 --project centy-daemon"
2088
+ ],
2089
+ "flags": {
2090
+ "output": {
2091
+ "char": "o",
2092
+ "description": "Output file path (prints to stdout by default)",
2093
+ "name": "output",
2094
+ "hasDynamicHelp": false,
2095
+ "multiple": false,
2096
+ "type": "option"
2097
+ },
2098
+ "project": {
2099
+ "description": "Project name or path (defaults to current directory)",
2100
+ "name": "project",
2101
+ "hasDynamicHelp": false,
2102
+ "multiple": false,
2103
+ "type": "option"
2104
+ }
2105
+ },
2106
+ "hasDynamicHelp": false,
2107
+ "hiddenAliases": [],
2108
+ "id": "get:plan",
2109
+ "pluginAlias": "centy",
2110
+ "pluginName": "centy",
2111
+ "pluginType": "core",
2112
+ "strict": true,
2113
+ "enableJsonFlag": false,
2114
+ "isESM": true,
2115
+ "relativePath": [
2116
+ "dist",
2117
+ "commands",
2118
+ "get",
2119
+ "plan.js"
2120
+ ]
2121
+ },
1410
2122
  "get:pr": {
1411
2123
  "aliases": [
1412
2124
  "show:pr"
@@ -1506,87 +2218,39 @@
1506
2218
  "project.js"
1507
2219
  ]
1508
2220
  },
1509
- "daemon:autostart": {
1510
- "aliases": [],
1511
- "args": {},
1512
- "description": "Configure daemon to start automatically on boot",
1513
- "examples": [
1514
- "<%= config.bin %> daemon autostart",
1515
- "<%= config.bin %> daemon autostart --enable",
1516
- "<%= config.bin %> daemon autostart --disable"
1517
- ],
1518
- "flags": {
1519
- "enable": {
1520
- "description": "Enable autostart on boot",
1521
- "exclusive": [
1522
- "disable"
1523
- ],
1524
- "name": "enable",
1525
- "allowNo": false,
1526
- "type": "boolean"
1527
- },
1528
- "disable": {
1529
- "description": "Disable autostart on boot",
1530
- "exclusive": [
1531
- "enable"
1532
- ],
1533
- "name": "disable",
1534
- "allowNo": false,
1535
- "type": "boolean"
1536
- }
1537
- },
1538
- "hasDynamicHelp": false,
1539
- "hiddenAliases": [],
1540
- "id": "daemon:autostart",
1541
- "pluginAlias": "centy",
1542
- "pluginName": "centy",
1543
- "pluginType": "core",
1544
- "strict": true,
1545
- "enableJsonFlag": false,
1546
- "isESM": true,
1547
- "relativePath": [
1548
- "dist",
1549
- "commands",
1550
- "daemon",
1551
- "autostart.js"
1552
- ]
1553
- },
1554
- "install:daemon": {
1555
- "aliases": [],
1556
- "args": {},
1557
- "description": "Download and install the centy daemon binary",
2221
+ "get:user": {
2222
+ "aliases": [],
2223
+ "args": {
2224
+ "id": {
2225
+ "description": "User ID",
2226
+ "name": "id",
2227
+ "required": true
2228
+ }
2229
+ },
2230
+ "description": "Get a user by ID",
1558
2231
  "examples": [
1559
- "<%= config.bin %> install daemon",
1560
- "<%= config.bin %> install daemon --version 0.1.0",
1561
- "<%= config.bin %> install daemon --force",
1562
- "<%= config.bin %> install daemon --skip-checksum"
2232
+ "<%= config.bin %> get user john-doe",
2233
+ "<%= config.bin %> get user john-doe --json",
2234
+ "<%= config.bin %> get user john-doe --project centy-daemon"
1563
2235
  ],
1564
2236
  "flags": {
1565
- "version": {
1566
- "char": "v",
1567
- "description": "Specific version to install (default: latest)",
1568
- "name": "version",
1569
- "hasDynamicHelp": false,
1570
- "multiple": false,
1571
- "type": "option"
1572
- },
1573
- "force": {
1574
- "char": "f",
1575
- "description": "Force reinstall even if already installed",
1576
- "name": "force",
2237
+ "json": {
2238
+ "description": "Output as JSON",
2239
+ "name": "json",
1577
2240
  "allowNo": false,
1578
2241
  "type": "boolean"
1579
2242
  },
1580
- "skip-checksum": {
1581
- "description": "Skip SHA256 checksum verification",
1582
- "name": "skip-checksum",
1583
- "allowNo": false,
1584
- "type": "boolean"
2243
+ "project": {
2244
+ "description": "Project name or path (defaults to current directory)",
2245
+ "name": "project",
2246
+ "hasDynamicHelp": false,
2247
+ "multiple": false,
2248
+ "type": "option"
1585
2249
  }
1586
2250
  },
1587
2251
  "hasDynamicHelp": false,
1588
2252
  "hiddenAliases": [],
1589
- "id": "install:daemon",
2253
+ "id": "get:user",
1590
2254
  "pluginAlias": "centy",
1591
2255
  "pluginName": "centy",
1592
2256
  "pluginType": "core",
@@ -1596,8 +2260,8 @@
1596
2260
  "relativePath": [
1597
2261
  "dist",
1598
2262
  "commands",
1599
- "install",
1600
- "daemon.js"
2263
+ "get",
2264
+ "user.js"
1601
2265
  ]
1602
2266
  },
1603
2267
  "list:assets": {
@@ -1710,7 +2374,9 @@
1710
2374
  "<%= config.bin %> list issues",
1711
2375
  "<%= config.bin %> list issues --status open",
1712
2376
  "<%= config.bin %> list issues --priority 1",
1713
- "<%= config.bin %> list issues --project centy-daemon"
2377
+ "<%= config.bin %> list issues --project centy-daemon",
2378
+ "<%= config.bin %> list issues --draft",
2379
+ "<%= config.bin %> list issues --no-draft"
1714
2380
  ],
1715
2381
  "flags": {
1716
2382
  "status": {
@@ -1735,6 +2401,12 @@
1735
2401
  "allowNo": false,
1736
2402
  "type": "boolean"
1737
2403
  },
2404
+ "draft": {
2405
+ "description": "Filter by draft status (--draft for drafts only, --no-draft for non-drafts)",
2406
+ "name": "draft",
2407
+ "allowNo": true,
2408
+ "type": "boolean"
2409
+ },
1738
2410
  "project": {
1739
2411
  "description": "Project name or path (defaults to current directory)",
1740
2412
  "name": "project",
@@ -1890,22 +2562,249 @@
1890
2562
  "multiple": false,
1891
2563
  "type": "option"
1892
2564
  },
1893
- "ungrouped": {
1894
- "description": "Only show projects without an organization",
1895
- "name": "ungrouped",
1896
- "allowNo": false,
1897
- "type": "boolean"
1898
- },
1899
- "json": {
1900
- "description": "Output as JSON",
1901
- "name": "json",
1902
- "allowNo": false,
1903
- "type": "boolean"
2565
+ "ungrouped": {
2566
+ "description": "Only show projects without an organization",
2567
+ "name": "ungrouped",
2568
+ "allowNo": false,
2569
+ "type": "boolean"
2570
+ },
2571
+ "json": {
2572
+ "description": "Output as JSON",
2573
+ "name": "json",
2574
+ "allowNo": false,
2575
+ "type": "boolean"
2576
+ }
2577
+ },
2578
+ "hasDynamicHelp": false,
2579
+ "hiddenAliases": [],
2580
+ "id": "list:projects",
2581
+ "pluginAlias": "centy",
2582
+ "pluginName": "centy",
2583
+ "pluginType": "core",
2584
+ "strict": true,
2585
+ "enableJsonFlag": false,
2586
+ "isESM": true,
2587
+ "relativePath": [
2588
+ "dist",
2589
+ "commands",
2590
+ "list",
2591
+ "projects.js"
2592
+ ]
2593
+ },
2594
+ "list:prs": {
2595
+ "aliases": [],
2596
+ "args": {},
2597
+ "description": "List all pull requests",
2598
+ "examples": [
2599
+ "<%= config.bin %> list prs",
2600
+ "<%= config.bin %> list prs --status open",
2601
+ "<%= config.bin %> list prs --source feature-branch",
2602
+ "<%= config.bin %> list prs --target main",
2603
+ "<%= config.bin %> list prs --project centy-daemon"
2604
+ ],
2605
+ "flags": {
2606
+ "status": {
2607
+ "char": "s",
2608
+ "description": "Filter by status (draft, open, merged, closed)",
2609
+ "name": "status",
2610
+ "hasDynamicHelp": false,
2611
+ "multiple": false,
2612
+ "type": "option"
2613
+ },
2614
+ "source": {
2615
+ "description": "Filter by source branch",
2616
+ "name": "source",
2617
+ "hasDynamicHelp": false,
2618
+ "multiple": false,
2619
+ "type": "option"
2620
+ },
2621
+ "target": {
2622
+ "description": "Filter by target branch",
2623
+ "name": "target",
2624
+ "hasDynamicHelp": false,
2625
+ "multiple": false,
2626
+ "type": "option"
2627
+ },
2628
+ "priority": {
2629
+ "char": "p",
2630
+ "description": "Filter by priority level (1 = highest)",
2631
+ "name": "priority",
2632
+ "hasDynamicHelp": false,
2633
+ "multiple": false,
2634
+ "type": "option"
2635
+ },
2636
+ "json": {
2637
+ "description": "Output as JSON",
2638
+ "name": "json",
2639
+ "allowNo": false,
2640
+ "type": "boolean"
2641
+ },
2642
+ "project": {
2643
+ "description": "Project name or path (defaults to current directory)",
2644
+ "name": "project",
2645
+ "hasDynamicHelp": false,
2646
+ "multiple": false,
2647
+ "type": "option"
2648
+ }
2649
+ },
2650
+ "hasDynamicHelp": false,
2651
+ "hiddenAliases": [],
2652
+ "id": "list:prs",
2653
+ "pluginAlias": "centy",
2654
+ "pluginName": "centy",
2655
+ "pluginType": "core",
2656
+ "strict": true,
2657
+ "enableJsonFlag": false,
2658
+ "isESM": true,
2659
+ "relativePath": [
2660
+ "dist",
2661
+ "commands",
2662
+ "list",
2663
+ "prs.js"
2664
+ ]
2665
+ },
2666
+ "list:users": {
2667
+ "aliases": [],
2668
+ "args": {},
2669
+ "description": "List all users in the project",
2670
+ "examples": [
2671
+ "<%= config.bin %> list users",
2672
+ "<%= config.bin %> list users --json",
2673
+ "<%= config.bin %> list users --git-username johndoe",
2674
+ "<%= config.bin %> list users --project centy-daemon"
2675
+ ],
2676
+ "flags": {
2677
+ "git-username": {
2678
+ "char": "g",
2679
+ "description": "Filter by git username",
2680
+ "name": "git-username",
2681
+ "hasDynamicHelp": false,
2682
+ "multiple": false,
2683
+ "type": "option"
2684
+ },
2685
+ "json": {
2686
+ "description": "Output as JSON",
2687
+ "name": "json",
2688
+ "allowNo": false,
2689
+ "type": "boolean"
2690
+ },
2691
+ "project": {
2692
+ "description": "Project name or path (defaults to current directory)",
2693
+ "name": "project",
2694
+ "hasDynamicHelp": false,
2695
+ "multiple": false,
2696
+ "type": "option"
2697
+ }
2698
+ },
2699
+ "hasDynamicHelp": false,
2700
+ "hiddenAliases": [],
2701
+ "id": "list:users",
2702
+ "pluginAlias": "centy",
2703
+ "pluginName": "centy",
2704
+ "pluginType": "core",
2705
+ "strict": true,
2706
+ "enableJsonFlag": false,
2707
+ "isESM": true,
2708
+ "relativePath": [
2709
+ "dist",
2710
+ "commands",
2711
+ "list",
2712
+ "users.js"
2713
+ ]
2714
+ },
2715
+ "install:daemon": {
2716
+ "aliases": [],
2717
+ "args": {},
2718
+ "description": "Download and install the centy daemon binary",
2719
+ "examples": [
2720
+ "<%= config.bin %> install daemon",
2721
+ "<%= config.bin %> install daemon --version 0.1.0",
2722
+ "<%= config.bin %> install daemon --force",
2723
+ "<%= config.bin %> install daemon --skip-checksum"
2724
+ ],
2725
+ "flags": {
2726
+ "version": {
2727
+ "char": "v",
2728
+ "description": "Specific version to install (default: latest)",
2729
+ "name": "version",
2730
+ "hasDynamicHelp": false,
2731
+ "multiple": false,
2732
+ "type": "option"
2733
+ },
2734
+ "force": {
2735
+ "char": "f",
2736
+ "description": "Force reinstall even if already installed",
2737
+ "name": "force",
2738
+ "allowNo": false,
2739
+ "type": "boolean"
2740
+ },
2741
+ "skip-checksum": {
2742
+ "description": "Skip SHA256 checksum verification",
2743
+ "name": "skip-checksum",
2744
+ "allowNo": false,
2745
+ "type": "boolean"
2746
+ }
2747
+ },
2748
+ "hasDynamicHelp": false,
2749
+ "hiddenAliases": [],
2750
+ "id": "install:daemon",
2751
+ "pluginAlias": "centy",
2752
+ "pluginName": "centy",
2753
+ "pluginType": "core",
2754
+ "strict": true,
2755
+ "enableJsonFlag": false,
2756
+ "isESM": true,
2757
+ "relativePath": [
2758
+ "dist",
2759
+ "commands",
2760
+ "install",
2761
+ "daemon.js"
2762
+ ]
2763
+ },
2764
+ "move:doc": {
2765
+ "aliases": [],
2766
+ "args": {
2767
+ "slug": {
2768
+ "description": "Doc slug",
2769
+ "name": "slug",
2770
+ "required": true
2771
+ }
2772
+ },
2773
+ "description": "Move a doc to a different project",
2774
+ "examples": [
2775
+ "<%= config.bin %> move doc my-doc --to /path/to/target/project",
2776
+ "<%= config.bin %> move doc readme --to ../other-project --new-slug new-readme",
2777
+ "<%= config.bin %> move doc api-guide --to ~/projects/target --project ./source"
2778
+ ],
2779
+ "flags": {
2780
+ "to": {
2781
+ "char": "t",
2782
+ "description": "Target project path",
2783
+ "name": "to",
2784
+ "required": true,
2785
+ "hasDynamicHelp": false,
2786
+ "multiple": false,
2787
+ "type": "option"
2788
+ },
2789
+ "new-slug": {
2790
+ "char": "s",
2791
+ "description": "New slug for the doc (if slug already exists in target)",
2792
+ "name": "new-slug",
2793
+ "hasDynamicHelp": false,
2794
+ "multiple": false,
2795
+ "type": "option"
2796
+ },
2797
+ "project": {
2798
+ "description": "Project name or path (defaults to current directory)",
2799
+ "name": "project",
2800
+ "hasDynamicHelp": false,
2801
+ "multiple": false,
2802
+ "type": "option"
1904
2803
  }
1905
2804
  },
1906
2805
  "hasDynamicHelp": false,
1907
2806
  "hiddenAliases": [],
1908
- "id": "list:projects",
2807
+ "id": "move:doc",
1909
2808
  "pluginAlias": "centy",
1910
2809
  "pluginName": "centy",
1911
2810
  "pluginType": "core",
@@ -1915,58 +2814,35 @@
1915
2814
  "relativePath": [
1916
2815
  "dist",
1917
2816
  "commands",
1918
- "list",
1919
- "projects.js"
2817
+ "move",
2818
+ "doc.js"
1920
2819
  ]
1921
2820
  },
1922
- "list:prs": {
2821
+ "move:issue": {
1923
2822
  "aliases": [],
1924
- "args": {},
1925
- "description": "List all pull requests",
2823
+ "args": {
2824
+ "id": {
2825
+ "description": "Issue ID (UUID) or display number",
2826
+ "name": "id",
2827
+ "required": true
2828
+ }
2829
+ },
2830
+ "description": "Move an issue to a different project",
1926
2831
  "examples": [
1927
- "<%= config.bin %> list prs",
1928
- "<%= config.bin %> list prs --status open",
1929
- "<%= config.bin %> list prs --source feature-branch",
1930
- "<%= config.bin %> list prs --target main",
1931
- "<%= config.bin %> list prs --project centy-daemon"
2832
+ "<%= config.bin %> move issue 1 --to /path/to/target/project",
2833
+ "<%= config.bin %> move issue abc123-uuid --to ../other-project",
2834
+ "<%= config.bin %> move issue 5 --to ~/projects/target --project ./source"
1932
2835
  ],
1933
2836
  "flags": {
1934
- "status": {
1935
- "char": "s",
1936
- "description": "Filter by status (draft, open, merged, closed)",
1937
- "name": "status",
1938
- "hasDynamicHelp": false,
1939
- "multiple": false,
1940
- "type": "option"
1941
- },
1942
- "source": {
1943
- "description": "Filter by source branch",
1944
- "name": "source",
1945
- "hasDynamicHelp": false,
1946
- "multiple": false,
1947
- "type": "option"
1948
- },
1949
- "target": {
1950
- "description": "Filter by target branch",
1951
- "name": "target",
1952
- "hasDynamicHelp": false,
1953
- "multiple": false,
1954
- "type": "option"
1955
- },
1956
- "priority": {
1957
- "char": "p",
1958
- "description": "Filter by priority level (1 = highest)",
1959
- "name": "priority",
2837
+ "to": {
2838
+ "char": "t",
2839
+ "description": "Target project path",
2840
+ "name": "to",
2841
+ "required": true,
1960
2842
  "hasDynamicHelp": false,
1961
2843
  "multiple": false,
1962
2844
  "type": "option"
1963
2845
  },
1964
- "json": {
1965
- "description": "Output as JSON",
1966
- "name": "json",
1967
- "allowNo": false,
1968
- "type": "boolean"
1969
- },
1970
2846
  "project": {
1971
2847
  "description": "Project name or path (defaults to current directory)",
1972
2848
  "name": "project",
@@ -1977,7 +2853,7 @@
1977
2853
  },
1978
2854
  "hasDynamicHelp": false,
1979
2855
  "hiddenAliases": [],
1980
- "id": "list:prs",
2856
+ "id": "move:issue",
1981
2857
  "pluginAlias": "centy",
1982
2858
  "pluginName": "centy",
1983
2859
  "pluginType": "core",
@@ -1987,8 +2863,8 @@
1987
2863
  "relativePath": [
1988
2864
  "dist",
1989
2865
  "commands",
1990
- "list",
1991
- "prs.js"
2866
+ "move",
2867
+ "issue.js"
1992
2868
  ]
1993
2869
  },
1994
2870
  "project:archive": {
@@ -2126,6 +3002,69 @@
2126
3002
  "org.js"
2127
3003
  ]
2128
3004
  },
3005
+ "project:title": {
3006
+ "aliases": [],
3007
+ "args": {
3008
+ "title": {
3009
+ "description": "Custom title for the project (omit to clear)",
3010
+ "name": "title",
3011
+ "required": false
3012
+ }
3013
+ },
3014
+ "description": "Set a custom title for a project",
3015
+ "examples": [
3016
+ "<%= config.bin %> project title \"My Awesome Project\"",
3017
+ "<%= config.bin %> project title \"Work Project\" --shared",
3018
+ "<%= config.bin %> project title --clear",
3019
+ "<%= config.bin %> project title --clear --shared",
3020
+ "<%= config.bin %> project title \"Custom Name\" --path /path/to/project"
3021
+ ],
3022
+ "flags": {
3023
+ "path": {
3024
+ "char": "p",
3025
+ "description": "Path to the project (defaults to current directory)",
3026
+ "name": "path",
3027
+ "hasDynamicHelp": false,
3028
+ "multiple": false,
3029
+ "type": "option"
3030
+ },
3031
+ "shared": {
3032
+ "char": "s",
3033
+ "description": "Set project-scope title (visible to all, stored in .centy/project.json)",
3034
+ "name": "shared",
3035
+ "allowNo": false,
3036
+ "type": "boolean"
3037
+ },
3038
+ "clear": {
3039
+ "char": "c",
3040
+ "description": "Clear the custom title",
3041
+ "name": "clear",
3042
+ "allowNo": false,
3043
+ "type": "boolean"
3044
+ },
3045
+ "json": {
3046
+ "description": "Output as JSON",
3047
+ "name": "json",
3048
+ "allowNo": false,
3049
+ "type": "boolean"
3050
+ }
3051
+ },
3052
+ "hasDynamicHelp": false,
3053
+ "hiddenAliases": [],
3054
+ "id": "project:title",
3055
+ "pluginAlias": "centy",
3056
+ "pluginName": "centy",
3057
+ "pluginType": "core",
3058
+ "strict": true,
3059
+ "enableJsonFlag": false,
3060
+ "isESM": true,
3061
+ "relativePath": [
3062
+ "dist",
3063
+ "commands",
3064
+ "project",
3065
+ "title.js"
3066
+ ]
3067
+ },
2129
3068
  "register:project": {
2130
3069
  "aliases": [],
2131
3070
  "args": {
@@ -2166,6 +3105,105 @@
2166
3105
  "project.js"
2167
3106
  ]
2168
3107
  },
3108
+ "sync:users": {
3109
+ "aliases": [],
3110
+ "args": {},
3111
+ "description": "Sync users from git history",
3112
+ "examples": [
3113
+ "<%= config.bin %> sync users",
3114
+ "<%= config.bin %> sync users --dry-run",
3115
+ "<%= config.bin %> sync users --json",
3116
+ "<%= config.bin %> sync users --project centy-daemon"
3117
+ ],
3118
+ "flags": {
3119
+ "dry-run": {
3120
+ "char": "d",
3121
+ "description": "Show what would be done without making changes",
3122
+ "name": "dry-run",
3123
+ "allowNo": false,
3124
+ "type": "boolean"
3125
+ },
3126
+ "json": {
3127
+ "description": "Output as JSON",
3128
+ "name": "json",
3129
+ "allowNo": false,
3130
+ "type": "boolean"
3131
+ },
3132
+ "project": {
3133
+ "description": "Project name or path (defaults to current directory)",
3134
+ "name": "project",
3135
+ "hasDynamicHelp": false,
3136
+ "multiple": false,
3137
+ "type": "option"
3138
+ }
3139
+ },
3140
+ "hasDynamicHelp": false,
3141
+ "hiddenAliases": [],
3142
+ "id": "sync:users",
3143
+ "pluginAlias": "centy",
3144
+ "pluginName": "centy",
3145
+ "pluginType": "core",
3146
+ "strict": true,
3147
+ "enableJsonFlag": false,
3148
+ "isESM": true,
3149
+ "relativePath": [
3150
+ "dist",
3151
+ "commands",
3152
+ "sync",
3153
+ "users.js"
3154
+ ]
3155
+ },
3156
+ "unassign:issue": {
3157
+ "aliases": [],
3158
+ "args": {
3159
+ "issueId": {
3160
+ "description": "Issue ID (UUID) or display number",
3161
+ "name": "issueId",
3162
+ "required": true
3163
+ },
3164
+ "userIds": {
3165
+ "description": "User IDs to unassign (space-separated)",
3166
+ "name": "userIds",
3167
+ "required": true
3168
+ }
3169
+ },
3170
+ "description": "Unassign users from an issue",
3171
+ "examples": [
3172
+ "<%= config.bin %> unassign issue 1 john-doe",
3173
+ "<%= config.bin %> unassign issue abc123-uuid alice bob",
3174
+ "<%= config.bin %> unassign issue 1 john-doe --project centy-daemon"
3175
+ ],
3176
+ "flags": {
3177
+ "json": {
3178
+ "description": "Output as JSON",
3179
+ "name": "json",
3180
+ "allowNo": false,
3181
+ "type": "boolean"
3182
+ },
3183
+ "project": {
3184
+ "description": "Project name or path (defaults to current directory)",
3185
+ "name": "project",
3186
+ "hasDynamicHelp": false,
3187
+ "multiple": false,
3188
+ "type": "option"
3189
+ }
3190
+ },
3191
+ "hasDynamicHelp": false,
3192
+ "hiddenAliases": [],
3193
+ "id": "unassign:issue",
3194
+ "pluginAlias": "centy",
3195
+ "pluginName": "centy",
3196
+ "pluginType": "core",
3197
+ "strict": false,
3198
+ "enableJsonFlag": false,
3199
+ "isESM": true,
3200
+ "relativePath": [
3201
+ "dist",
3202
+ "commands",
3203
+ "unassign",
3204
+ "issue.js"
3205
+ ]
3206
+ },
2169
3207
  "untrack:project": {
2170
3208
  "aliases": [],
2171
3209
  "args": {
@@ -2319,6 +3357,12 @@
2319
3357
  "multiple": false,
2320
3358
  "type": "option"
2321
3359
  },
3360
+ "draft": {
3361
+ "description": "Mark as draft (use --no-draft to unmark)",
3362
+ "name": "draft",
3363
+ "allowNo": true,
3364
+ "type": "boolean"
3365
+ },
2322
3366
  "project": {
2323
3367
  "description": "Project name or path (defaults to current directory)",
2324
3368
  "name": "project",
@@ -2620,7 +3664,78 @@
2620
3664
  "update",
2621
3665
  "pr.js"
2622
3666
  ]
3667
+ },
3668
+ "update:user": {
3669
+ "aliases": [],
3670
+ "args": {
3671
+ "id": {
3672
+ "description": "User ID",
3673
+ "name": "id",
3674
+ "required": true
3675
+ }
3676
+ },
3677
+ "description": "Update a user",
3678
+ "examples": [
3679
+ "<%= config.bin %> update user john-doe --name \"John D.\"",
3680
+ "<%= config.bin %> update user john-doe --email john.new@example.com",
3681
+ "<%= config.bin %> update user john-doe --git-username johndoe --git-username john-work",
3682
+ "<%= config.bin %> update user john-doe --name \"John\" --project centy-daemon"
3683
+ ],
3684
+ "flags": {
3685
+ "name": {
3686
+ "char": "n",
3687
+ "description": "New display name",
3688
+ "name": "name",
3689
+ "hasDynamicHelp": false,
3690
+ "multiple": false,
3691
+ "type": "option"
3692
+ },
3693
+ "email": {
3694
+ "char": "e",
3695
+ "description": "New email address",
3696
+ "name": "email",
3697
+ "hasDynamicHelp": false,
3698
+ "multiple": false,
3699
+ "type": "option"
3700
+ },
3701
+ "git-username": {
3702
+ "char": "g",
3703
+ "description": "Git username (replaces all existing, can be specified multiple times)",
3704
+ "name": "git-username",
3705
+ "hasDynamicHelp": false,
3706
+ "multiple": true,
3707
+ "type": "option"
3708
+ },
3709
+ "json": {
3710
+ "description": "Output as JSON",
3711
+ "name": "json",
3712
+ "allowNo": false,
3713
+ "type": "boolean"
3714
+ },
3715
+ "project": {
3716
+ "description": "Project name or path (defaults to current directory)",
3717
+ "name": "project",
3718
+ "hasDynamicHelp": false,
3719
+ "multiple": false,
3720
+ "type": "option"
3721
+ }
3722
+ },
3723
+ "hasDynamicHelp": false,
3724
+ "hiddenAliases": [],
3725
+ "id": "update:user",
3726
+ "pluginAlias": "centy",
3727
+ "pluginName": "centy",
3728
+ "pluginType": "core",
3729
+ "strict": true,
3730
+ "enableJsonFlag": false,
3731
+ "isESM": true,
3732
+ "relativePath": [
3733
+ "dist",
3734
+ "commands",
3735
+ "update",
3736
+ "user.js"
3737
+ ]
2623
3738
  }
2624
3739
  },
2625
- "version": "0.0.24"
3740
+ "version": "0.0.26"
2626
3741
  }