centy 0.7.2 → 0.7.4

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 (95) hide show
  1. package/dist/commands/close.d.ts +3 -2
  2. package/dist/commands/close.d.ts.map +1 -1
  3. package/dist/commands/close.js +45 -38
  4. package/dist/commands/close.js.map +1 -1
  5. package/dist/commands/{delete/issue.d.ts → delete.d.ts} +4 -3
  6. package/dist/commands/delete.d.ts.map +1 -0
  7. package/dist/commands/{delete/issue.js → delete.js} +25 -17
  8. package/dist/commands/delete.js.map +1 -0
  9. package/dist/commands/{duplicate/issue.d.ts → duplicate.d.ts} +5 -3
  10. package/dist/commands/duplicate.d.ts.map +1 -0
  11. package/dist/commands/{duplicate/issue.js → duplicate.js} +38 -24
  12. package/dist/commands/duplicate.js.map +1 -0
  13. package/dist/commands/{list/issues.d.ts → list.d.ts} +7 -5
  14. package/dist/commands/list.d.ts.map +1 -0
  15. package/dist/commands/list.js +96 -0
  16. package/dist/commands/list.js.map +1 -0
  17. package/dist/commands/{move/issue.d.ts → move.d.ts} +5 -3
  18. package/dist/commands/move.d.ts.map +1 -0
  19. package/dist/commands/{move/issue.js → move.js} +34 -17
  20. package/dist/commands/move.js.map +1 -0
  21. package/dist/commands/{close/issue.d.ts → restore.d.ts} +4 -3
  22. package/dist/commands/restore.d.ts.map +1 -0
  23. package/dist/commands/restore.js +67 -0
  24. package/dist/commands/restore.js.map +1 -0
  25. package/dist/commands/{update/issue.d.ts → update.d.ts} +7 -8
  26. package/dist/commands/update.d.ts.map +1 -0
  27. package/dist/commands/update.js +101 -0
  28. package/dist/commands/update.js.map +1 -0
  29. package/dist/daemon/daemon-duplicate-item.d.ts +6 -0
  30. package/dist/daemon/daemon-duplicate-item.d.ts.map +1 -0
  31. package/dist/daemon/daemon-duplicate-item.js +9 -0
  32. package/dist/daemon/daemon-duplicate-item.js.map +1 -0
  33. package/dist/daemon/daemon-list-items.d.ts +6 -0
  34. package/dist/daemon/daemon-list-items.d.ts.map +1 -0
  35. package/dist/daemon/daemon-list-items.js +9 -0
  36. package/dist/daemon/daemon-list-items.js.map +1 -0
  37. package/dist/daemon/daemon-move-item.d.ts +6 -0
  38. package/dist/daemon/daemon-move-item.d.ts.map +1 -0
  39. package/dist/daemon/daemon-move-item.js +9 -0
  40. package/dist/daemon/daemon-move-item.js.map +1 -0
  41. package/dist/daemon/daemon-restore-item.d.ts +6 -0
  42. package/dist/daemon/daemon-restore-item.d.ts.map +1 -0
  43. package/dist/daemon/daemon-restore-item.js +9 -0
  44. package/dist/daemon/daemon-restore-item.js.map +1 -0
  45. package/dist/daemon/daemon-update-item.d.ts +6 -0
  46. package/dist/daemon/daemon-update-item.d.ts.map +1 -0
  47. package/dist/daemon/daemon-update-item.js +9 -0
  48. package/dist/daemon/daemon-update-item.js.map +1 -0
  49. package/dist/daemon/generated/centy/v1/generic_item.d.ts +36 -0
  50. package/dist/daemon/generated/centy/v1/generic_item.d.ts.map +1 -1
  51. package/dist/daemon/grpc-client-items.d.ts +3 -1
  52. package/dist/daemon/grpc-client-items.d.ts.map +1 -1
  53. package/dist/lib/resolve-item-id/resolve-item-id.d.ts +7 -0
  54. package/dist/lib/resolve-item-id/resolve-item-id.d.ts.map +1 -0
  55. package/dist/lib/resolve-item-id/resolve-item-id.js +23 -0
  56. package/dist/lib/resolve-item-id/resolve-item-id.js.map +1 -0
  57. package/oclif.manifest.json +574 -807
  58. package/package.json +1 -1
  59. package/proto/centy/v1/centy.proto +6 -0
  60. package/proto/centy/v1/generic_item.proto +31 -0
  61. package/dist/commands/close/issue.d.ts.map +0 -1
  62. package/dist/commands/close/issue.js +0 -58
  63. package/dist/commands/close/issue.js.map +0 -1
  64. package/dist/commands/delete/doc.d.ts +0 -17
  65. package/dist/commands/delete/doc.d.ts.map +0 -1
  66. package/dist/commands/delete/doc.js +0 -75
  67. package/dist/commands/delete/doc.js.map +0 -1
  68. package/dist/commands/delete/issue.d.ts.map +0 -1
  69. package/dist/commands/delete/issue.js.map +0 -1
  70. package/dist/commands/duplicate/doc.d.ts +0 -19
  71. package/dist/commands/duplicate/doc.d.ts.map +0 -1
  72. package/dist/commands/duplicate/doc.js +0 -87
  73. package/dist/commands/duplicate/doc.js.map +0 -1
  74. package/dist/commands/duplicate/issue.d.ts.map +0 -1
  75. package/dist/commands/duplicate/issue.js.map +0 -1
  76. package/dist/commands/list/docs.d.ts +0 -15
  77. package/dist/commands/list/docs.d.ts.map +0 -1
  78. package/dist/commands/list/docs.js +0 -60
  79. package/dist/commands/list/docs.js.map +0 -1
  80. package/dist/commands/list/issues.d.ts.map +0 -1
  81. package/dist/commands/list/issues.js +0 -86
  82. package/dist/commands/list/issues.js.map +0 -1
  83. package/dist/commands/move/doc.d.ts +0 -18
  84. package/dist/commands/move/doc.d.ts.map +0 -1
  85. package/dist/commands/move/doc.js +0 -82
  86. package/dist/commands/move/doc.js.map +0 -1
  87. package/dist/commands/move/issue.d.ts.map +0 -1
  88. package/dist/commands/move/issue.js.map +0 -1
  89. package/dist/commands/update/doc.d.ts +0 -20
  90. package/dist/commands/update/doc.d.ts.map +0 -1
  91. package/dist/commands/update/doc.js +0 -73
  92. package/dist/commands/update/doc.js.map +0 -1
  93. package/dist/commands/update/issue.d.ts.map +0 -1
  94. package/dist/commands/update/issue.js +0 -107
  95. package/dist/commands/update/issue.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centy",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "description": "CLI for managing project issues and docs via code in the .centy folder",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -297,6 +297,12 @@ service CentyDaemon {
297
297
  // Restore a soft-deleted item (clear deleted_at timestamp)
298
298
  rpc RestoreItem(RestoreItemRequest) returns (RestoreItemResponse);
299
299
 
300
+ // Duplicate an item to the same or different project
301
+ rpc DuplicateItem(DuplicateItemRequest) returns (DuplicateItemResponse);
302
+
303
+ // Move an item to another project
304
+ rpc MoveItem(MoveItemRequest) returns (MoveItemResponse);
305
+
300
306
  // Create a new custom item type
301
307
  rpc CreateItemType(CreateItemTypeRequest) returns (CreateItemTypeResponse);
302
308
  }
@@ -122,6 +122,37 @@ message RestoreItemResponse {
122
122
  GenericItem item = 3; // The restored item (with deleted_at cleared)
123
123
  }
124
124
 
125
+ message DuplicateItemRequest {
126
+ string source_project_path = 1; // Project containing the original item
127
+ string item_type = 2; // e.g., "issues", "docs", or custom type
128
+ string item_id = 3; // ID of the item to duplicate (UUID or slug)
129
+ string target_project_path = 4; // Target project (can be same as source)
130
+ string new_id = 5; // Optional: override ID for the copy (for slug-identified types)
131
+ string new_title = 6; // Optional: override title (default: "Copy of {original}")
132
+ }
133
+
134
+ message DuplicateItemResponse {
135
+ bool success = 1;
136
+ string error = 2;
137
+ GenericItem item = 3; // The new duplicate item
138
+ string original_id = 4; // ID of the original item
139
+ }
140
+
141
+ message MoveItemRequest {
142
+ string source_project_path = 1;
143
+ string target_project_path = 2;
144
+ string item_type = 3;
145
+ string item_id = 4;
146
+ string new_id = 5; // Optional: for slug renames
147
+ }
148
+
149
+ message MoveItemResponse {
150
+ bool success = 1;
151
+ string error = 2;
152
+ GenericItem item = 3;
153
+ string old_id = 4;
154
+ }
155
+
125
156
  // ============ Item Type Messages ============
126
157
 
127
158
  // Features that can be enabled for an item type
@@ -1 +0,0 @@
1
- {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/commands/close/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAA;AAU3C;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAE7C,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAAmB;IAG9C,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;MAEpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6BlC"}
@@ -1,58 +0,0 @@
1
- // eslint-disable-next-line import/order
2
- import { Args, Command } from '@oclif/core';
3
- import { daemonUpdateIssue } from '../../daemon/daemon-update-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
- * Close an issue by setting its status to closed
9
- */
10
- // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
- export default class CloseIssue 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 = 'Close an issue';
21
- // eslint-disable-next-line no-restricted-syntax
22
- static examples = [
23
- '<%= config.bin %> close issue 1',
24
- '<%= config.bin %> close issue abc123-uuid',
25
- '<%= config.bin %> close issue 1 --project centy-daemon',
26
- ];
27
- // eslint-disable-next-line no-restricted-syntax
28
- static flags = {
29
- project: projectFlag,
30
- };
31
- async run() {
32
- const { args, flags } = await this.parse(CloseIssue);
33
- const cwd = await resolveProjectPath(flags.project);
34
- try {
35
- await ensureInitialized(cwd);
36
- }
37
- catch (error) {
38
- if (error instanceof NotInitializedError) {
39
- this.error(error.message);
40
- }
41
- throw error instanceof Error ? error : new Error(String(error));
42
- }
43
- const response = await daemonUpdateIssue({
44
- projectPath: cwd,
45
- issueId: args.id,
46
- status: 'closed',
47
- title: '',
48
- description: '',
49
- priority: 0,
50
- customFields: {},
51
- });
52
- if (!response.success) {
53
- this.error(response.error);
54
- }
55
- this.log(`Closed issue #${response.issue.displayNumber}`);
56
- }
57
- }
58
- //# sourceMappingURL=issue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/commands/close/issue.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAExE;;GAEG;AACH,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,gDAAgD;IAChD,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,WAAW,GAAG,gBAAgB,CAAA;IAE9C,gDAAgD;IAChD,MAAM,CAAU,QAAQ,GAAG;QACzB,iCAAiC;QACjC,2CAA2C;QAC3C,wDAAwD;KACzD,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,KAAK,GAAG;QACtB,OAAO,EAAE,WAAW;KACrB,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACpD,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEnD,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3B,CAAC;YACD,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC;YACvC,WAAW,EAAE,GAAG;YAChB,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,CAAC;YACX,YAAY,EAAE,EAAE;SACjB,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,KAAM,CAAC,aAAa,EAAE,CAAC,CAAA;IAC5D,CAAC"}
@@ -1,17 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- /**
3
- * Delete a doc
4
- */
5
- export default class DeleteDoc extends Command {
6
- static args: {
7
- slug: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
8
- };
9
- static description: string;
10
- static examples: string[];
11
- static flags: {
12
- force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
- project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
- };
15
- run(): Promise<void>;
16
- }
17
- //# sourceMappingURL=doc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../../src/commands/delete/doc.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,SAAgC;IAG3D,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;;MAOpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6ClC"}
@@ -1,75 +0,0 @@
1
- // eslint-disable-next-line import/order
2
- import { Args, Command, Flags } from '@oclif/core';
3
- import { daemonDeleteItem } from '../../daemon/daemon-delete-item.js';
4
- import { projectFlag } from '../../flags/project-flag.js';
5
- import { ensureInitialized, NotInitializedError, } from '../../utils/ensure-initialized.js';
6
- import { resolveProjectPath } from '../../utils/resolve-project-path.js';
7
- /**
8
- * Delete a doc
9
- */
10
- // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
- export default class DeleteDoc 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 = 'Delete a documentation file';
21
- // eslint-disable-next-line no-restricted-syntax
22
- static examples = [
23
- '<%= config.bin %> delete doc getting-started',
24
- '<%= config.bin %> delete doc api-reference --force',
25
- '<%= config.bin %> delete doc api-reference --project centy-daemon',
26
- ];
27
- // eslint-disable-next-line no-restricted-syntax
28
- static flags = {
29
- force: Flags.boolean({
30
- char: 'f',
31
- description: 'Skip confirmation prompt',
32
- default: false,
33
- }),
34
- project: projectFlag,
35
- };
36
- async run() {
37
- const { args, flags } = await this.parse(DeleteDoc);
38
- const cwd = await resolveProjectPath(flags.project);
39
- try {
40
- await ensureInitialized(cwd);
41
- }
42
- catch (error) {
43
- if (error instanceof NotInitializedError) {
44
- this.error(error.message);
45
- }
46
- throw error instanceof Error ? error : new Error(String(error));
47
- }
48
- if (!flags.force) {
49
- const readline = await import('node:readline');
50
- const rl = readline.createInterface({
51
- input: process.stdin,
52
- output: process.stdout,
53
- });
54
- const answer = await new Promise(resolve => {
55
- rl.question(`Are you sure you want to delete doc "${args.slug}"? (y/N) `, resolve);
56
- });
57
- rl.close();
58
- if (answer.toLowerCase() !== 'y') {
59
- this.log('Cancelled.');
60
- return;
61
- }
62
- }
63
- const response = await daemonDeleteItem({
64
- projectPath: cwd,
65
- itemType: 'docs',
66
- itemId: args.slug,
67
- force: false,
68
- });
69
- if (!response.success) {
70
- this.error(response.error);
71
- }
72
- this.log(`Deleted doc "${args.slug}"`);
73
- }
74
- }
75
- //# sourceMappingURL=doc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc.js","sourceRoot":"","sources":["../../../src/commands/delete/doc.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/commands/delete/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,SAAoB;IAG/C,OAAgB,QAAQ,WAKvB;IAGD,OAAgB,KAAK;;;MAOpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6ClC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/commands/delete/issue.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- /**
3
- * Duplicate a doc (same or different project)
4
- */
5
- export default class DuplicateDoc extends Command {
6
- static args: {
7
- slug: 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 | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
- 'new-slug': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
- title: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
- project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
- };
17
- run(): Promise<void>;
18
- }
19
- //# sourceMappingURL=doc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../../src/commands/duplicate/doc.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAE/C,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAC4B;IAGvD,OAAgB,QAAQ,WAKvB;IAGD,OAAgB,KAAK;;;;;MAcpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkDlC"}
@@ -1,87 +0,0 @@
1
- // eslint-disable-next-line import/order
2
- import { Args, Command, Flags } from '@oclif/core';
3
- import { daemonDuplicateDoc } from '../../daemon/daemon-duplicate-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
- * Duplicate a doc (same or different project)
9
- */
10
- // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
- export default class DuplicateDoc 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 = 'Duplicate a doc (same project or different project)';
21
- // eslint-disable-next-line no-restricted-syntax
22
- static examples = [
23
- '<%= config.bin %> duplicate doc my-doc',
24
- '<%= config.bin %> duplicate doc readme --new-slug readme-v2',
25
- '<%= config.bin %> duplicate doc api-guide --to /path/to/other/project',
26
- '<%= config.bin %> duplicate doc spec --to ../other --new-slug spec-copy --title "Spec Copy"',
27
- ];
28
- // eslint-disable-next-line no-restricted-syntax
29
- static flags = {
30
- to: Flags.string({
31
- char: 't',
32
- description: 'Target project path (defaults to same project if not specified)',
33
- }),
34
- 'new-slug': Flags.string({
35
- char: 's',
36
- description: 'Slug for the duplicate (defaults to "{slug}-copy")',
37
- }),
38
- title: Flags.string({
39
- description: 'Title for the duplicate (defaults to "Copy of {original}")',
40
- }),
41
- project: projectFlag,
42
- };
43
- async run() {
44
- const { args, flags } = await this.parse(DuplicateDoc);
45
- const sourceProjectPath = await resolveProjectPath(flags.project);
46
- const targetProjectPath = flags.to
47
- ? await resolveProjectPath(flags.to)
48
- : sourceProjectPath;
49
- // Ensure source project is initialized
50
- try {
51
- await ensureInitialized(sourceProjectPath);
52
- }
53
- catch (error) {
54
- if (error instanceof NotInitializedError) {
55
- this.error(`Source project: ${error.message}`);
56
- }
57
- throw error instanceof Error ? error : new Error(String(error));
58
- }
59
- // Ensure target project is initialized (if different)
60
- if (targetProjectPath !== sourceProjectPath) {
61
- try {
62
- await ensureInitialized(targetProjectPath);
63
- }
64
- catch (error) {
65
- if (error instanceof NotInitializedError) {
66
- this.error(`Target project: ${error.message}`);
67
- }
68
- throw error instanceof Error ? error : new Error(String(error));
69
- }
70
- }
71
- const response = await daemonDuplicateDoc({
72
- sourceProjectPath,
73
- slug: args.slug,
74
- targetProjectPath,
75
- newSlug: flags['new-slug'] !== undefined ? flags['new-slug'] : '',
76
- newTitle: flags.title !== undefined ? flags.title : '',
77
- });
78
- if (!response.success) {
79
- this.error(response.error);
80
- }
81
- const locationInfo = targetProjectPath !== sourceProjectPath
82
- ? ` in ${targetProjectPath}`
83
- : ' in current project';
84
- this.log(`Duplicated doc → "${response.doc.slug}" "${response.doc.title}"${locationInfo}`);
85
- }
86
- }
87
- //# sourceMappingURL=doc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc.js","sourceRoot":"","sources":["../../../src/commands/duplicate/doc.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/commands/duplicate/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IAEjD,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAC+B;IAG1D,OAAgB,QAAQ,WAKvB;IAGD,OAAgB,KAAK;;;;MAUpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiDlC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/commands/duplicate/issue.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- /**
3
- * List all documentation files
4
- */
5
- export default class ListDocs extends Command {
6
- static description: string;
7
- static aliases: string[];
8
- static examples: string[];
9
- static flags: {
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
- }
15
- //# sourceMappingURL=docs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/commands/list/docs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAU5C;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAE3C,OAAgB,WAAW,SAAiC;IAG5D,OAAgB,OAAO,WAAe;IAGtC,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;;MAMpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiClC"}
@@ -1,60 +0,0 @@
1
- // eslint-disable-next-line import/order
2
- import { Command, Flags } from '@oclif/core';
3
- import { daemonListDocs } from '../../daemon/daemon-list-docs.js';
4
- import { projectFlag } from '../../flags/project-flag.js';
5
- import { ensureInitialized, NotInitializedError, } from '../../utils/ensure-initialized.js';
6
- import { resolveProjectPath } from '../../utils/resolve-project-path.js';
7
- /**
8
- * List all documentation files
9
- */
10
- // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
- export default class ListDocs extends Command {
12
- // eslint-disable-next-line no-restricted-syntax
13
- static description = 'List all documentation files';
14
- // eslint-disable-next-line no-restricted-syntax
15
- static aliases = ['doc:list'];
16
- // eslint-disable-next-line no-restricted-syntax
17
- static examples = [
18
- '<%= config.bin %> list docs',
19
- '<%= config.bin %> list docs --json',
20
- '<%= config.bin %> list docs --project centy-daemon',
21
- ];
22
- // eslint-disable-next-line no-restricted-syntax
23
- static flags = {
24
- json: Flags.boolean({
25
- description: 'Output as JSON',
26
- default: false,
27
- }),
28
- project: projectFlag,
29
- };
30
- async run() {
31
- const { flags } = await this.parse(ListDocs);
32
- const cwd = await resolveProjectPath(flags.project);
33
- try {
34
- await ensureInitialized(cwd);
35
- }
36
- catch (error) {
37
- if (error instanceof NotInitializedError) {
38
- this.error(error.message);
39
- }
40
- throw error instanceof Error ? error : new Error(String(error));
41
- }
42
- const response = await daemonListDocs({
43
- projectPath: cwd,
44
- includeDeleted: false,
45
- });
46
- if (flags.json) {
47
- this.log(JSON.stringify(response.docs, null, 2));
48
- return;
49
- }
50
- if (response.docs.length === 0) {
51
- this.log('No docs found.');
52
- return;
53
- }
54
- this.log(`Found ${response.totalCount} doc(s):\n`);
55
- for (const doc of response.docs) {
56
- this.log(`${doc.slug}: ${doc.title}`);
57
- }
58
- }
59
- }
60
- //# sourceMappingURL=docs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/commands/list/docs.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAExE;;GAEG;AACH,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,gDAAgD;IAChD,MAAM,CAAU,WAAW,GAAG,8BAA8B,CAAA;IAE5D,gDAAgD;IAChD,MAAM,CAAU,OAAO,GAAG,CAAC,UAAU,CAAC,CAAA;IAEtC,gDAAgD;IAChD,MAAM,CAAU,QAAQ,GAAG;QACzB,6BAA6B;QAC7B,oCAAoC;QACpC,oDAAoD;KACrD,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,KAAK,GAAG;QACtB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC;QACF,OAAO,EAAE,WAAW;KACrB,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC5C,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEnD,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3B,CAAC;YACD,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC;YACpC,WAAW,EAAE,GAAG;YAChB,cAAc,EAAE,KAAK;SACtB,CAAC,CAAA;QAEF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAChD,OAAM;QACR,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YAC1B,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,UAAU,YAAY,CAAC,CAAA;QAClD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;QACvC,CAAC;IACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../../src/commands/list/issues.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAU5C;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAE7C,OAAgB,WAAW,SAAoB;IAG/C,OAAgB,OAAO,WAAiB;IAGxC,OAAgB,QAAQ,WAOvB;IAGD,OAAgB,KAAK;;;;;;MAmBpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgDlC"}
@@ -1,86 +0,0 @@
1
- // eslint-disable-next-line import/order
2
- import { Command, Flags } from '@oclif/core';
3
- import { daemonListIssues } from '../../daemon/daemon-list-issues.js';
4
- import { projectFlag } from '../../flags/project-flag.js';
5
- import { ensureInitialized, NotInitializedError, } from '../../utils/ensure-initialized.js';
6
- import { resolveProjectPath } from '../../utils/resolve-project-path.js';
7
- /**
8
- * List all issues in the .centy/issues folder
9
- */
10
- // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
- export default class ListIssues extends Command {
12
- // eslint-disable-next-line no-restricted-syntax
13
- static description = 'List all issues';
14
- // eslint-disable-next-line no-restricted-syntax
15
- static aliases = ['issue:list'];
16
- // eslint-disable-next-line no-restricted-syntax
17
- static examples = [
18
- '<%= config.bin %> list issues',
19
- '<%= config.bin %> list issues --status open',
20
- '<%= config.bin %> list issues --priority 1',
21
- '<%= config.bin %> list issues --project centy-daemon',
22
- '<%= config.bin %> list issues --draft',
23
- '<%= config.bin %> list issues --no-draft',
24
- ];
25
- // eslint-disable-next-line no-restricted-syntax
26
- static flags = {
27
- status: Flags.string({
28
- char: 's',
29
- description: 'Filter by status (e.g., open, in-progress, closed)',
30
- }),
31
- priority: Flags.integer({
32
- char: 'p',
33
- description: 'Filter by priority level (1 = highest)',
34
- }),
35
- json: Flags.boolean({
36
- description: 'Output as JSON',
37
- default: false,
38
- }),
39
- draft: Flags.boolean({
40
- description: 'Filter by draft status (--draft for drafts only, --no-draft for non-drafts)',
41
- allowNo: true,
42
- }),
43
- project: projectFlag,
44
- };
45
- async run() {
46
- const { flags } = await this.parse(ListIssues);
47
- const cwd = await resolveProjectPath(flags.project);
48
- try {
49
- await ensureInitialized(cwd);
50
- }
51
- catch (error) {
52
- if (error instanceof NotInitializedError) {
53
- this.error(error.message);
54
- }
55
- throw error instanceof Error ? error : new Error(String(error));
56
- }
57
- const response = await daemonListIssues({
58
- projectPath: cwd,
59
- status: flags.status !== undefined ? flags.status : '',
60
- priority: flags.priority !== undefined ? flags.priority : 0,
61
- draft: flags.draft,
62
- includeDeleted: false,
63
- });
64
- if (flags.json) {
65
- this.log(JSON.stringify(response.issues, null, 2));
66
- return;
67
- }
68
- if (response.issues.length === 0) {
69
- this.log('No issues found.');
70
- return;
71
- }
72
- this.log(`Found ${response.totalCount} issue(s):\n`);
73
- for (const issue of response.issues) {
74
- const meta = issue.metadata;
75
- const priority = meta !== undefined
76
- ? meta.priorityLabel !== ''
77
- ? meta.priorityLabel
78
- : `P${meta.priority}`
79
- : 'P?';
80
- const status = meta !== undefined ? meta.status : 'unknown';
81
- const draftIndicator = meta !== undefined && meta.draft === true ? ' [DRAFT]' : '';
82
- this.log(`#${issue.displayNumber} [${priority}] [${status}]${draftIndicator} ${issue.title}`);
83
- }
84
- }
85
- }
86
- //# sourceMappingURL=issues.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../../src/commands/list/issues.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- /**
3
- * Move a doc to a different project
4
- */
5
- export default class MoveDoc extends Command {
6
- static args: {
7
- slug: 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
- 'new-slug': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
- project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
- };
16
- run(): Promise<void>;
17
- }
18
- //# sourceMappingURL=doc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../../src/commands/move/doc.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAE1C,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAAsC;IAGjE,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;;;MAWpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA+ClC"}