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
@@ -0,0 +1,82 @@
1
+ // eslint-disable-next-line import/order
2
+ import { Args, Command, Flags } from '@oclif/core';
3
+ import { daemonMoveDoc } from '../../daemon/daemon-move-doc.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
+ * Move a doc to a different project
9
+ */
10
+ // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
+ export default class MoveDoc extends Command {
12
+ // eslint-disable-next-line no-restricted-syntax
13
+ static args = {
14
+ slug: Args.string({
15
+ description: 'Doc slug',
16
+ required: true,
17
+ }),
18
+ };
19
+ // eslint-disable-next-line no-restricted-syntax
20
+ static description = 'Move a doc to a different project';
21
+ // eslint-disable-next-line no-restricted-syntax
22
+ static examples = [
23
+ '<%= config.bin %> move doc my-doc --to /path/to/target/project',
24
+ '<%= config.bin %> move doc readme --to ../other-project --new-slug new-readme',
25
+ '<%= config.bin %> move doc api-guide --to ~/projects/target --project ./source',
26
+ ];
27
+ // eslint-disable-next-line no-restricted-syntax
28
+ static flags = {
29
+ to: Flags.string({
30
+ char: 't',
31
+ description: 'Target project path',
32
+ required: true,
33
+ }),
34
+ 'new-slug': Flags.string({
35
+ char: 's',
36
+ description: 'New slug for the doc (if slug already exists in target)',
37
+ }),
38
+ project: projectFlag,
39
+ };
40
+ async run() {
41
+ const { args, flags } = await this.parse(MoveDoc);
42
+ const sourceProjectPath = await resolveProjectPath(flags.project);
43
+ const targetProjectPath = await resolveProjectPath(flags.to);
44
+ // Ensure source project is initialized
45
+ try {
46
+ await ensureInitialized(sourceProjectPath);
47
+ }
48
+ catch (error) {
49
+ if (error instanceof NotInitializedError) {
50
+ this.error(`Source project: ${error.message}`);
51
+ }
52
+ throw error instanceof Error ? error : new Error(String(error));
53
+ }
54
+ // Ensure target project is initialized
55
+ try {
56
+ await ensureInitialized(targetProjectPath);
57
+ }
58
+ catch (error) {
59
+ if (error instanceof NotInitializedError) {
60
+ this.error(`Target project: ${error.message}`);
61
+ }
62
+ throw error instanceof Error ? error : new Error(String(error));
63
+ }
64
+ if (sourceProjectPath === targetProjectPath) {
65
+ this.error('Source and target project cannot be the same.');
66
+ }
67
+ const response = await daemonMoveDoc({
68
+ sourceProjectPath,
69
+ slug: args.slug,
70
+ targetProjectPath,
71
+ newSlug: flags['new-slug'],
72
+ });
73
+ if (!response.success) {
74
+ this.error(response.error);
75
+ }
76
+ const slugInfo = response.oldSlug !== response.doc.slug
77
+ ? `${response.oldSlug} → ${response.doc.slug}`
78
+ : response.doc.slug;
79
+ this.log(`Moved doc "${slugInfo}" to ${targetProjectPath}`);
80
+ }
81
+ }
82
+ //# sourceMappingURL=doc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc.js","sourceRoot":"","sources":["../../../src/commands/move/doc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Move an issue to a different project
4
+ */
5
+ export default class MoveIssue extends Command {
6
+ static args: {
7
+ id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
8
+ };
9
+ static description: string;
10
+ static examples: string[];
11
+ static flags: {
12
+ to: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ };
15
+ run(): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/commands/move/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAE5C,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAAyC;IAGpE,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;;MAOpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2ClC"}
@@ -0,0 +1,74 @@
1
+ // eslint-disable-next-line import/order
2
+ import { Args, Command, Flags } from '@oclif/core';
3
+ import { daemonMoveIssue } from '../../daemon/daemon-move-issue.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
+ * Move an issue to a different project
9
+ */
10
+ // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
+ export default class MoveIssue extends Command {
12
+ // eslint-disable-next-line no-restricted-syntax
13
+ static args = {
14
+ id: Args.string({
15
+ description: 'Issue ID (UUID) or display number',
16
+ required: true,
17
+ }),
18
+ };
19
+ // eslint-disable-next-line no-restricted-syntax
20
+ static description = 'Move an issue to a different project';
21
+ // eslint-disable-next-line no-restricted-syntax
22
+ static examples = [
23
+ '<%= config.bin %> move issue 1 --to /path/to/target/project',
24
+ '<%= config.bin %> move issue abc123-uuid --to ../other-project',
25
+ '<%= config.bin %> move issue 5 --to ~/projects/target --project ./source',
26
+ ];
27
+ // eslint-disable-next-line no-restricted-syntax
28
+ static flags = {
29
+ to: Flags.string({
30
+ char: 't',
31
+ description: 'Target project path',
32
+ required: true,
33
+ }),
34
+ project: projectFlag,
35
+ };
36
+ async run() {
37
+ const { args, flags } = await this.parse(MoveIssue);
38
+ const sourceProjectPath = await resolveProjectPath(flags.project);
39
+ const targetProjectPath = await resolveProjectPath(flags.to);
40
+ // Ensure source project is initialized
41
+ try {
42
+ await ensureInitialized(sourceProjectPath);
43
+ }
44
+ catch (error) {
45
+ if (error instanceof NotInitializedError) {
46
+ this.error(`Source project: ${error.message}`);
47
+ }
48
+ throw error instanceof Error ? error : new Error(String(error));
49
+ }
50
+ // Ensure target project is initialized
51
+ try {
52
+ await ensureInitialized(targetProjectPath);
53
+ }
54
+ catch (error) {
55
+ if (error instanceof NotInitializedError) {
56
+ this.error(`Target project: ${error.message}`);
57
+ }
58
+ throw error instanceof Error ? error : new Error(String(error));
59
+ }
60
+ if (sourceProjectPath === targetProjectPath) {
61
+ this.error('Source and target project cannot be the same.');
62
+ }
63
+ const response = await daemonMoveIssue({
64
+ sourceProjectPath,
65
+ issueId: args.id,
66
+ targetProjectPath,
67
+ });
68
+ if (!response.success) {
69
+ this.error(response.error);
70
+ }
71
+ this.log(`Moved issue #${response.oldDisplayNumber} → #${response.issue.displayNumber} in ${targetProjectPath}`);
72
+ }
73
+ }
74
+ //# sourceMappingURL=issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/commands/move/issue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Set a custom title for a project
4
+ */
5
+ export default class ProjectTitle extends Command {
6
+ static args: {
7
+ title: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
8
+ };
9
+ static description: string;
10
+ static examples: string[];
11
+ static flags: {
12
+ path: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ shared: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
+ clear: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ };
17
+ run(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=title.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../../../src/commands/project/title.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAKlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAE/C,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAAqC;IAGhE,OAAgB,QAAQ,WAMvB;IAGD,OAAgB,KAAK;;;;;MAoBpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgClC"}
@@ -0,0 +1,76 @@
1
+ // eslint-disable-next-line import/order
2
+ import { Args, Command, Flags } from '@oclif/core';
3
+ import { daemonSetProjectTitle } from '../../daemon/daemon-set-project-title.js';
4
+ import { daemonSetProjectUserTitle } from '../../daemon/daemon-set-project-user-title.js';
5
+ /**
6
+ * Set a custom title for a project
7
+ */
8
+ // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
9
+ export default class ProjectTitle extends Command {
10
+ // eslint-disable-next-line no-restricted-syntax
11
+ static args = {
12
+ title: Args.string({
13
+ description: 'Custom title for the project (omit to clear)',
14
+ required: false,
15
+ }),
16
+ };
17
+ // eslint-disable-next-line no-restricted-syntax
18
+ static description = 'Set a custom title for a project';
19
+ // eslint-disable-next-line no-restricted-syntax
20
+ static examples = [
21
+ '<%= config.bin %> project title "My Awesome Project"',
22
+ '<%= config.bin %> project title "Work Project" --shared',
23
+ '<%= config.bin %> project title --clear',
24
+ '<%= config.bin %> project title --clear --shared',
25
+ '<%= config.bin %> project title "Custom Name" --path /path/to/project',
26
+ ];
27
+ // eslint-disable-next-line no-restricted-syntax
28
+ static flags = {
29
+ path: Flags.string({
30
+ char: 'p',
31
+ description: 'Path to the project (defaults to current directory)',
32
+ }),
33
+ shared: Flags.boolean({
34
+ char: 's',
35
+ description: 'Set project-scope title (visible to all, stored in .centy/project.json)',
36
+ default: false,
37
+ }),
38
+ clear: Flags.boolean({
39
+ char: 'c',
40
+ description: 'Clear the custom title',
41
+ default: false,
42
+ }),
43
+ json: Flags.boolean({
44
+ description: 'Output as JSON',
45
+ default: false,
46
+ }),
47
+ };
48
+ async run() {
49
+ const { args, flags } = await this.parse(ProjectTitle);
50
+ // eslint-disable-next-line no-restricted-syntax
51
+ const projectPath = flags.path ?? process.env['CENTY_CWD'] ?? process.cwd();
52
+ // eslint-disable-next-line no-restricted-syntax
53
+ const title = flags.clear ? '' : (args.title ?? '');
54
+ if (!title && !flags.clear) {
55
+ this.error('Provide a title or use --clear to remove');
56
+ }
57
+ const response = flags.shared
58
+ ? await daemonSetProjectTitle({ projectPath, title })
59
+ : await daemonSetProjectUserTitle({ projectPath, title });
60
+ if (!response.success) {
61
+ this.error(response.error);
62
+ }
63
+ if (flags.json) {
64
+ this.log(JSON.stringify(response.project, null, 2));
65
+ return;
66
+ }
67
+ const scope = flags.shared ? 'project-scope' : 'user-scope';
68
+ if (flags.clear || !args.title) {
69
+ this.log(`Cleared ${scope} title for "${response.project.name}"`);
70
+ }
71
+ else {
72
+ this.log(`Set ${scope} title: "${args.title}"`);
73
+ }
74
+ }
75
+ }
76
+ //# sourceMappingURL=title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title.js","sourceRoot":"","sources":["../../../src/commands/project/title.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Sync users from git history
4
+ */
5
+ export default class SyncUsers extends Command {
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ };
13
+ run(): Promise<void>;
14
+ private printDryRunOutput;
15
+ private printSyncOutput;
16
+ }
17
+ //# sourceMappingURL=users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/users.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAW5C;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAE5C,OAAgB,WAAW,SAAgC;IAG3D,OAAgB,QAAQ,WAKvB;IAGD,OAAgB,KAAK;;;;MAWpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCjC,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,eAAe;CAmBxB"}
@@ -0,0 +1,105 @@
1
+ // eslint-disable-next-line import/order
2
+ import { Command, Flags } from '@oclif/core';
3
+ import { daemonSyncUsers } from '../../daemon/daemon-sync-users.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
+ * Sync users from git history
9
+ */
10
+ // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
+ export default class SyncUsers extends Command {
12
+ // eslint-disable-next-line no-restricted-syntax
13
+ static description = 'Sync users from git history';
14
+ // eslint-disable-next-line no-restricted-syntax
15
+ static examples = [
16
+ '<%= config.bin %> sync users',
17
+ '<%= config.bin %> sync users --dry-run',
18
+ '<%= config.bin %> sync users --json',
19
+ '<%= config.bin %> sync users --project centy-daemon',
20
+ ];
21
+ // eslint-disable-next-line no-restricted-syntax
22
+ static flags = {
23
+ 'dry-run': Flags.boolean({
24
+ char: 'd',
25
+ description: 'Show what would be done without making changes',
26
+ default: false,
27
+ }),
28
+ json: Flags.boolean({
29
+ description: 'Output as JSON',
30
+ default: false,
31
+ }),
32
+ project: projectFlag,
33
+ };
34
+ async run() {
35
+ const { flags } = await this.parse(SyncUsers);
36
+ const cwd = await resolveProjectPath(flags.project);
37
+ try {
38
+ await ensureInitialized(cwd);
39
+ }
40
+ catch (error) {
41
+ if (error instanceof NotInitializedError) {
42
+ this.error(error.message);
43
+ }
44
+ throw error instanceof Error ? error : new Error(String(error));
45
+ }
46
+ const response = await daemonSyncUsers({
47
+ projectPath: cwd,
48
+ dryRun: flags['dry-run'],
49
+ });
50
+ if (!response.success) {
51
+ this.error(response.error);
52
+ }
53
+ if (flags.json) {
54
+ this.log(JSON.stringify(response, null, 2));
55
+ return;
56
+ }
57
+ if (flags['dry-run']) {
58
+ this.printDryRunOutput(response);
59
+ }
60
+ else {
61
+ this.printSyncOutput(response);
62
+ }
63
+ }
64
+ printDryRunOutput(response) {
65
+ if (response.wouldCreate.length === 0 && response.wouldSkip.length === 0) {
66
+ this.log('No git contributors found.');
67
+ return;
68
+ }
69
+ if (response.wouldCreate.length > 0) {
70
+ this.log(`Would create ${response.wouldCreate.length} user(s):`);
71
+ for (const contributor of response.wouldCreate) {
72
+ this.log(` ${contributor.name} <${contributor.email}>`);
73
+ }
74
+ }
75
+ if (response.wouldSkip.length > 0) {
76
+ this.log(`\nWould skip ${response.wouldSkip.length} user(s) (already exist):`);
77
+ for (const contributor of response.wouldSkip) {
78
+ this.log(` ${contributor.name} <${contributor.email}>`);
79
+ }
80
+ }
81
+ }
82
+ printSyncOutput(response) {
83
+ if (response.created.length > 0) {
84
+ this.log(`Created ${response.created.length} user(s):`);
85
+ for (const userId of response.created)
86
+ this.log(` ${userId}`);
87
+ }
88
+ if (response.skipped.length > 0) {
89
+ this.log(`\nSkipped ${response.skipped.length} user(s) (already exist):`);
90
+ for (const email of response.skipped)
91
+ this.log(` ${email}`);
92
+ }
93
+ if (response.errors.length > 0) {
94
+ this.log(`\nErrors (${response.errors.length}):`);
95
+ for (const err of response.errors)
96
+ this.log(` ${err}`);
97
+ }
98
+ const hasNoResults = response.created.length === 0 &&
99
+ response.skipped.length === 0 &&
100
+ response.errors.length === 0;
101
+ if (hasNoResults)
102
+ this.log('No git contributors found.');
103
+ }
104
+ }
105
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../../src/commands/sync/users.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Unassign users from an issue
4
+ */
5
+ export default class UnassignIssue extends Command {
6
+ static args: {
7
+ issueId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
8
+ userIds: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
9
+ };
10
+ static description: string;
11
+ static examples: string[];
12
+ static flags: {
13
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
+ project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ };
16
+ static strict: boolean;
17
+ run(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/commands/unassign/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAEhD,OAAgB,IAAI;;;MASnB;IAGD,OAAgB,WAAW,SAAiC;IAG5D,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;;MAMpB;IAGD,OAAgB,MAAM,UAAQ;IAEjB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8ClC"}
@@ -0,0 +1,79 @@
1
+ // eslint-disable-next-line import/order
2
+ import { Args, Command, Flags } from '@oclif/core';
3
+ import { daemonUnassignIssue } from '../../daemon/daemon-unassign-issue.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
+ * Unassign users from an issue
9
+ */
10
+ // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
+ export default class UnassignIssue extends Command {
12
+ // eslint-disable-next-line no-restricted-syntax
13
+ static args = {
14
+ issueId: Args.string({
15
+ description: 'Issue ID (UUID) or display number',
16
+ required: true,
17
+ }),
18
+ userIds: Args.string({
19
+ description: 'User IDs to unassign (space-separated)',
20
+ required: true,
21
+ }),
22
+ };
23
+ // eslint-disable-next-line no-restricted-syntax
24
+ static description = 'Unassign users from an issue';
25
+ // eslint-disable-next-line no-restricted-syntax
26
+ static examples = [
27
+ '<%= config.bin %> unassign issue 1 john-doe',
28
+ '<%= config.bin %> unassign issue abc123-uuid alice bob',
29
+ '<%= config.bin %> unassign issue 1 john-doe --project centy-daemon',
30
+ ];
31
+ // eslint-disable-next-line no-restricted-syntax
32
+ static flags = {
33
+ json: Flags.boolean({
34
+ description: 'Output as JSON',
35
+ default: false,
36
+ }),
37
+ project: projectFlag,
38
+ };
39
+ // eslint-disable-next-line no-restricted-syntax
40
+ static strict = false;
41
+ async run() {
42
+ const { args, argv, flags } = await this.parse(UnassignIssue);
43
+ const cwd = await resolveProjectPath(flags.project);
44
+ try {
45
+ await ensureInitialized(cwd);
46
+ }
47
+ catch (error) {
48
+ if (error instanceof NotInitializedError) {
49
+ this.error(error.message);
50
+ }
51
+ throw error instanceof Error ? error : new Error(String(error));
52
+ }
53
+ // Get all user IDs from argv (everything after the issue ID)
54
+ // eslint-disable-next-line no-restricted-syntax
55
+ const userIds = argv.slice(1);
56
+ if (userIds.length === 0) {
57
+ this.error('At least one user ID is required');
58
+ }
59
+ const response = await daemonUnassignIssue({
60
+ projectPath: cwd,
61
+ issueId: args.issueId,
62
+ userIds,
63
+ });
64
+ if (!response.success) {
65
+ this.error(response.error);
66
+ }
67
+ if (flags.json) {
68
+ this.log(JSON.stringify(response.issue, null, 2));
69
+ return;
70
+ }
71
+ const issue = response.issue;
72
+ if (issue !== undefined) {
73
+ this.log(`Unassigned ${userIds.join(', ')} from issue #${issue.displayNumber}`);
74
+ const remaining = issue.metadata.assignees;
75
+ this.log(`Remaining assignees: ${remaining.length > 0 ? remaining.join(', ') : 'none'}`);
76
+ }
77
+ }
78
+ }
79
+ //# sourceMappingURL=issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/commands/unassign/issue.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export default class UpdateIssue extends Command {
13
13
  description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
14
  status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
15
  priority: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ draft: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
17
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
18
  };
18
19
  private convertPriority;
@@ -1 +1 @@
1
- {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/commands/update/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAE9C,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAA6B;IAGxD,OAAgB,QAAQ,WAKvB;IAGD,OAAgB,KAAK;;;;;;MAkBpB;IAED,OAAO,CAAC,eAAe;IAiBV,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAqClC"}
1
+ {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/commands/update/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAE9C,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAA6B;IAGxD,OAAgB,QAAQ,WAKvB;IAGD,OAAgB,KAAK;;;;;;;MAsBpB;IAED,OAAO,CAAC,eAAe;IAiBV,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuClC"}
@@ -43,6 +43,10 @@ export default class UpdateIssue extends Command {
43
43
  char: 'p',
44
44
  description: 'New priority (low/medium/high or 1-3)',
45
45
  }),
46
+ draft: Flags.boolean({
47
+ description: 'Mark as draft (use --no-draft to unmark)',
48
+ allowNo: true,
49
+ }),
46
50
  project: projectFlag,
47
51
  };
48
52
  convertPriority(priority) {
@@ -77,7 +81,8 @@ export default class UpdateIssue extends Command {
77
81
  if (!flags.title &&
78
82
  !flags.description &&
79
83
  !flags.status &&
80
- !flags.priority) {
84
+ !flags.priority &&
85
+ flags.draft === undefined) {
81
86
  this.error('At least one field must be specified to update.');
82
87
  }
83
88
  const response = await daemonUpdateIssue({
@@ -87,6 +92,7 @@ export default class UpdateIssue extends Command {
87
92
  description: flags.description,
88
93
  status: flags.status,
89
94
  priority: this.convertPriority(flags.priority),
95
+ draft: flags.draft,
90
96
  });
91
97
  if (!response.success) {
92
98
  this.error(response.error);
@@ -1 +1 @@
1
- {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/commands/update/issue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/commands/update/issue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Update a user
4
+ */
5
+ export default class UpdateUser extends Command {
6
+ static args: {
7
+ id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
8
+ };
9
+ static description: string;
10
+ static examples: string[];
11
+ static flags: {
12
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ email: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ 'git-username': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ };
18
+ run(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/commands/update/user.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAE7C,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAAkB;IAG7C,OAAgB,QAAQ,WAKvB;IAGD,OAAgB,KAAK;;;;;;MAoBpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0ClC"}