centy 0.0.13 → 0.0.15

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 (152) hide show
  1. package/dist/commands/add/asset.d.ts.map +1 -1
  2. package/dist/commands/add/asset.js +0 -1
  3. package/dist/commands/add/asset.js.map +1 -1
  4. package/dist/commands/compact.d.ts +21 -0
  5. package/dist/commands/compact.d.ts.map +1 -0
  6. package/dist/commands/compact.js +194 -0
  7. package/dist/commands/compact.js.map +1 -0
  8. package/dist/commands/create/pr.d.ts +20 -0
  9. package/dist/commands/create/pr.d.ts.map +1 -0
  10. package/dist/commands/create/pr.js +96 -0
  11. package/dist/commands/create/pr.js.map +1 -0
  12. package/dist/commands/delete/pr.d.ts +16 -0
  13. package/dist/commands/delete/pr.d.ts.map +1 -0
  14. package/dist/commands/delete/pr.js +59 -0
  15. package/dist/commands/delete/pr.js.map +1 -0
  16. package/dist/commands/get/asset.d.ts.map +1 -1
  17. package/dist/commands/get/asset.js +0 -1
  18. package/dist/commands/get/asset.js.map +1 -1
  19. package/dist/commands/get/pr.d.ts +16 -0
  20. package/dist/commands/get/pr.d.ts.map +1 -0
  21. package/dist/commands/get/pr.js +76 -0
  22. package/dist/commands/get/pr.js.map +1 -0
  23. package/dist/commands/list/projects.d.ts +1 -0
  24. package/dist/commands/list/projects.d.ts.map +1 -1
  25. package/dist/commands/list/projects.js +6 -0
  26. package/dist/commands/list/projects.js.map +1 -1
  27. package/dist/commands/list/prs.d.ts +17 -0
  28. package/dist/commands/list/prs.d.ts.map +1 -0
  29. package/dist/commands/list/prs.js +74 -0
  30. package/dist/commands/list/prs.js.map +1 -0
  31. package/dist/commands/project/archive.d.ts +16 -0
  32. package/dist/commands/project/archive.d.ts.map +1 -0
  33. package/dist/commands/project/archive.js +39 -0
  34. package/dist/commands/project/archive.js.map +1 -0
  35. package/dist/commands/register/project.d.ts +3 -0
  36. package/dist/commands/register/project.d.ts.map +1 -1
  37. package/dist/commands/register/project.js +29 -3
  38. package/dist/commands/register/project.js.map +1 -1
  39. package/dist/commands/update/pr.d.ts +20 -0
  40. package/dist/commands/update/pr.d.ts.map +1 -0
  41. package/dist/commands/update/pr.js +96 -0
  42. package/dist/commands/update/pr.js.map +1 -0
  43. package/dist/daemon/daemon-create-pr.d.ts +6 -0
  44. package/dist/daemon/daemon-create-pr.d.ts.map +1 -0
  45. package/dist/daemon/daemon-create-pr.js +17 -0
  46. package/dist/daemon/daemon-create-pr.js.map +1 -0
  47. package/dist/daemon/daemon-delete-pr.d.ts +6 -0
  48. package/dist/daemon/daemon-delete-pr.d.ts.map +1 -0
  49. package/dist/daemon/daemon-delete-pr.js +17 -0
  50. package/dist/daemon/daemon-delete-pr.js.map +1 -0
  51. package/dist/daemon/daemon-get-compact.d.ts +6 -0
  52. package/dist/daemon/daemon-get-compact.d.ts.map +1 -0
  53. package/dist/daemon/daemon-get-compact.js +17 -0
  54. package/dist/daemon/daemon-get-compact.js.map +1 -0
  55. package/dist/daemon/daemon-get-feature-status.d.ts +6 -0
  56. package/dist/daemon/daemon-get-feature-status.d.ts.map +1 -0
  57. package/dist/daemon/daemon-get-feature-status.js +17 -0
  58. package/dist/daemon/daemon-get-feature-status.js.map +1 -0
  59. package/dist/daemon/daemon-get-instruction.d.ts +6 -0
  60. package/dist/daemon/daemon-get-instruction.d.ts.map +1 -0
  61. package/dist/daemon/daemon-get-instruction.js +17 -0
  62. package/dist/daemon/daemon-get-instruction.js.map +1 -0
  63. package/dist/daemon/daemon-get-pr-by-display-number.d.ts +6 -0
  64. package/dist/daemon/daemon-get-pr-by-display-number.d.ts.map +1 -0
  65. package/dist/daemon/daemon-get-pr-by-display-number.js +17 -0
  66. package/dist/daemon/daemon-get-pr-by-display-number.js.map +1 -0
  67. package/dist/daemon/daemon-get-pr.d.ts +6 -0
  68. package/dist/daemon/daemon-get-pr.d.ts.map +1 -0
  69. package/dist/daemon/daemon-get-pr.js +17 -0
  70. package/dist/daemon/daemon-get-pr.js.map +1 -0
  71. package/dist/daemon/daemon-list-prs.d.ts +6 -0
  72. package/dist/daemon/daemon-list-prs.d.ts.map +1 -0
  73. package/dist/daemon/daemon-list-prs.js +17 -0
  74. package/dist/daemon/daemon-list-prs.js.map +1 -0
  75. package/dist/daemon/daemon-list-uncompacted-issues.d.ts +6 -0
  76. package/dist/daemon/daemon-list-uncompacted-issues.d.ts.map +1 -0
  77. package/dist/daemon/daemon-list-uncompacted-issues.js +17 -0
  78. package/dist/daemon/daemon-list-uncompacted-issues.js.map +1 -0
  79. package/dist/daemon/daemon-mark-issues-compacted.d.ts +6 -0
  80. package/dist/daemon/daemon-mark-issues-compacted.d.ts.map +1 -0
  81. package/dist/daemon/daemon-mark-issues-compacted.js +17 -0
  82. package/dist/daemon/daemon-mark-issues-compacted.js.map +1 -0
  83. package/dist/daemon/daemon-save-migration.d.ts +6 -0
  84. package/dist/daemon/daemon-save-migration.d.ts.map +1 -0
  85. package/dist/daemon/daemon-save-migration.js +17 -0
  86. package/dist/daemon/daemon-save-migration.js.map +1 -0
  87. package/dist/daemon/daemon-set-project-archived.d.ts +6 -0
  88. package/dist/daemon/daemon-set-project-archived.d.ts.map +1 -0
  89. package/dist/daemon/daemon-set-project-archived.js +17 -0
  90. package/dist/daemon/daemon-set-project-archived.js.map +1 -0
  91. package/dist/daemon/daemon-update-compact.d.ts +6 -0
  92. package/dist/daemon/daemon-update-compact.d.ts.map +1 -0
  93. package/dist/daemon/daemon-update-compact.js +17 -0
  94. package/dist/daemon/daemon-update-compact.js.map +1 -0
  95. package/dist/daemon/daemon-update-pr.d.ts +6 -0
  96. package/dist/daemon/daemon-update-pr.d.ts.map +1 -0
  97. package/dist/daemon/daemon-update-pr.js +17 -0
  98. package/dist/daemon/daemon-update-pr.js.map +1 -0
  99. package/dist/daemon/load-proto.d.ts +16 -1
  100. package/dist/daemon/load-proto.d.ts.map +1 -1
  101. package/dist/daemon/load-proto.js.map +1 -1
  102. package/dist/daemon/types.d.ts +168 -0
  103. package/dist/daemon/types.d.ts.map +1 -1
  104. package/dist/tui/App.d.ts.map +1 -1
  105. package/dist/tui/App.js +64 -18
  106. package/dist/tui/App.js.map +1 -1
  107. package/dist/tui/components/domain/ConfigPanel.js +1 -1
  108. package/dist/tui/components/domain/ConfigPanel.js.map +1 -1
  109. package/dist/tui/components/domain/DocCreate.d.ts +2 -0
  110. package/dist/tui/components/domain/DocCreate.d.ts.map +1 -0
  111. package/dist/tui/components/domain/DocCreate.js +118 -0
  112. package/dist/tui/components/domain/DocCreate.js.map +1 -0
  113. package/dist/tui/components/domain/IssueCreate.d.ts +2 -0
  114. package/dist/tui/components/domain/IssueCreate.d.ts.map +1 -0
  115. package/dist/tui/components/domain/IssueCreate.js +167 -0
  116. package/dist/tui/components/domain/IssueCreate.js.map +1 -0
  117. package/dist/tui/components/domain/IssueDetail.d.ts.map +1 -1
  118. package/dist/tui/components/domain/IssueDetail.js +1 -1
  119. package/dist/tui/components/domain/IssueDetail.js.map +1 -1
  120. package/dist/tui/components/domain/IssueList.d.ts.map +1 -1
  121. package/dist/tui/components/domain/IssueList.js +29 -10
  122. package/dist/tui/components/domain/IssueList.js.map +1 -1
  123. package/dist/tui/components/domain/ProjectCreate.d.ts +2 -0
  124. package/dist/tui/components/domain/ProjectCreate.d.ts.map +1 -0
  125. package/dist/tui/components/domain/ProjectCreate.js +61 -0
  126. package/dist/tui/components/domain/ProjectCreate.js.map +1 -0
  127. package/dist/tui/components/domain/ProjectList.d.ts.map +1 -1
  128. package/dist/tui/components/domain/ProjectList.js +48 -7
  129. package/dist/tui/components/domain/ProjectList.js.map +1 -1
  130. package/dist/tui/components/layout/Sidebar.d.ts +2 -1
  131. package/dist/tui/components/layout/Sidebar.d.ts.map +1 -1
  132. package/dist/tui/components/layout/Sidebar.js +3 -3
  133. package/dist/tui/components/layout/Sidebar.js.map +1 -1
  134. package/dist/tui/hooks/useProjects.d.ts +2 -0
  135. package/dist/tui/hooks/useProjects.d.ts.map +1 -1
  136. package/dist/tui/hooks/useProjects.js +27 -1
  137. package/dist/tui/hooks/useProjects.js.map +1 -1
  138. package/dist/tui/services/daemon-service.d.ts +22 -2
  139. package/dist/tui/services/daemon-service.d.ts.map +1 -1
  140. package/dist/tui/services/daemon-service.js +121 -2
  141. package/dist/tui/services/daemon-service.js.map +1 -1
  142. package/dist/tui/state/app-state.d.ts +3 -0
  143. package/dist/tui/state/app-state.d.ts.map +1 -1
  144. package/dist/tui/state/app-state.js +5 -0
  145. package/dist/tui/state/app-state.js.map +1 -1
  146. package/dist/tui/types/views.d.ts +5 -1
  147. package/dist/tui/types/views.d.ts.map +1 -1
  148. package/dist/tui/types/views.js +15 -0
  149. package/dist/tui/types/views.js.map +1 -1
  150. package/oclif.manifest.json +604 -144
  151. package/package.json +1 -1
  152. package/proto/centy.proto +271 -0
@@ -1 +1 @@
1
- {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/commands/add/asset.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAKlD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,OAAgB,IAAI;;MAKnB;IAED,OAAgB,WAAW,SAAkD;IAE7E,OAAgB,QAAQ,WAIvB;IAED,OAAgB,KAAK;;;;MAcpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4ClC"}
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/commands/add/asset.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAKlD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,OAAgB,IAAI;;MAKnB;IAED,OAAgB,WAAW,SAAkD;IAE7E,OAAgB,QAAQ,WAIvB;IAED,OAAgB,KAAK;;;;MAcpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2ClC"}
@@ -46,7 +46,6 @@ export default class AddAsset extends Command {
46
46
  }
47
47
  let fileData;
48
48
  try {
49
- // eslint-disable-next-line security/detect-non-literal-fs-filename
50
49
  fileData = await readFile(args.file);
51
50
  }
52
51
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/commands/add/asset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/commands/add/asset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Compact uncompacted issues into features
4
+ */
5
+ export default class Compact extends Command {
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ input: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ private generateLlmContext;
16
+ private applyLlmResponse;
17
+ private saveMigrationContent;
18
+ private saveCompactContent;
19
+ private markIssuesFromMigration;
20
+ }
21
+ //# sourceMappingURL=compact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/commands/compact.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAU5C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,OAAgB,WAAW,SAC0B;IAErD,OAAgB,QAAQ,WAKvB;IAED,OAAgB,KAAK;;;;;MAkBpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAwDnB,kBAAkB;YA4ClB,gBAAgB;YAsDhB,oBAAoB;YAgBpB,kBAAkB;YAgBlB,uBAAuB;CAqCtC"}
@@ -0,0 +1,194 @@
1
+ import { writeFile, readFile } from 'node:fs/promises';
2
+ import { Command, Flags } from '@oclif/core';
3
+ import { daemonGetCompact } from '../daemon/daemon-get-compact.js';
4
+ import { daemonGetInstruction } from '../daemon/daemon-get-instruction.js';
5
+ import { daemonIsInitialized } from '../daemon/daemon-is-initialized.js';
6
+ import { daemonListUncompactedIssues } from '../daemon/daemon-list-uncompacted-issues.js';
7
+ import { daemonMarkIssuesCompacted } from '../daemon/daemon-mark-issues-compacted.js';
8
+ import { daemonSaveMigration } from '../daemon/daemon-save-migration.js';
9
+ import { daemonUpdateCompact } from '../daemon/daemon-update-compact.js';
10
+ /**
11
+ * Compact uncompacted issues into features
12
+ */
13
+ export default class Compact extends Command {
14
+ static description = 'Compact uncompacted issues into feature summaries';
15
+ static examples = [
16
+ '<%= config.bin %> <%= command.id %>',
17
+ '<%= config.bin %> <%= command.id %> --dry-run',
18
+ '<%= config.bin %> <%= command.id %> --output context.md',
19
+ '<%= config.bin %> <%= command.id %> --input response.md',
20
+ ];
21
+ static flags = {
22
+ 'dry-run': Flags.boolean({
23
+ char: 'd',
24
+ description: 'List uncompacted issues without modifying',
25
+ default: false,
26
+ }),
27
+ output: Flags.string({
28
+ char: 'o',
29
+ description: 'Write LLM context to file (for external LLM processing)',
30
+ }),
31
+ input: Flags.string({
32
+ char: 'i',
33
+ description: 'Read LLM response from file and apply changes',
34
+ }),
35
+ json: Flags.boolean({
36
+ description: 'Output as JSON (for --dry-run)',
37
+ default: false,
38
+ }),
39
+ };
40
+ async run() {
41
+ const { flags } = await this.parse(Compact);
42
+ const cwd = process.env['CENTY_CWD'] ?? process.cwd();
43
+ // Check if initialized
44
+ const initStatus = await daemonIsInitialized({ projectPath: cwd });
45
+ if (!initStatus.initialized) {
46
+ this.error('.centy folder not initialized. Run "centy init" first.');
47
+ }
48
+ // If input file provided, apply LLM response
49
+ if (flags.input !== undefined) {
50
+ await this.applyLlmResponse(cwd, flags.input);
51
+ return;
52
+ }
53
+ // Get uncompacted issues
54
+ const response = await daemonListUncompactedIssues({ projectPath: cwd });
55
+ if (response.issues.length === 0) {
56
+ this.log('No new issues to compact.');
57
+ return;
58
+ }
59
+ // Dry run - just show issues
60
+ if (flags['dry-run']) {
61
+ if (flags.json) {
62
+ this.log(JSON.stringify(response.issues, null, 2));
63
+ }
64
+ else {
65
+ this.log(`Found ${response.totalCount} uncompacted issue(s):\n`);
66
+ for (const issue of response.issues) {
67
+ const meta = issue.metadata;
68
+ const status = meta !== undefined ? meta.status : 'unknown';
69
+ this.log(`#${issue.displayNumber} [${status}] ${issue.title}`);
70
+ }
71
+ }
72
+ return;
73
+ }
74
+ // Generate LLM context
75
+ const context = await this.generateLlmContext(cwd, response.issues);
76
+ // If output file provided, write context
77
+ if (flags.output !== undefined) {
78
+ await writeFile(flags.output, context, 'utf-8');
79
+ this.log(`LLM context written to: ${flags.output}`);
80
+ this.log(`\nNext steps:\n1. Process the file with your LLM\n2. Run: centy compact --input <response-file>`);
81
+ return;
82
+ }
83
+ // Output context to stdout for piping
84
+ this.log(context);
85
+ }
86
+ async generateLlmContext(projectPath, issues) {
87
+ // Get instruction.md
88
+ const instructionResponse = await daemonGetInstruction({ projectPath });
89
+ const instruction = instructionResponse.content;
90
+ // Get current compact.md
91
+ const compactResponse = await daemonGetCompact({ projectPath });
92
+ const currentCompact = compactResponse.exists
93
+ ? compactResponse.content
94
+ : '(No features documented yet)';
95
+ // Build context
96
+ const parts = [];
97
+ parts.push('# LLM Compaction Context\n');
98
+ parts.push('## Instructions\n');
99
+ parts.push(instruction);
100
+ parts.push('\n---\n');
101
+ parts.push('## Current Features Summary (compact.md)\n');
102
+ parts.push('```markdown');
103
+ parts.push(currentCompact);
104
+ parts.push('```');
105
+ parts.push('\n---\n');
106
+ parts.push('## Uncompacted Issues\n');
107
+ for (const issue of issues) {
108
+ parts.push(`### Issue #${issue.displayNumber}: ${issue.title}`);
109
+ parts.push(`**ID:** ${issue.id}`);
110
+ parts.push('');
111
+ parts.push(issue.description || '(No description)');
112
+ parts.push('');
113
+ }
114
+ return parts.join('\n');
115
+ }
116
+ async applyLlmResponse(projectPath, inputFile) {
117
+ // Read LLM response
118
+ const content = await readFile(inputFile, 'utf-8');
119
+ // Parse response - look for MIGRATION_CONTENT and COMPACT_CONTENT sections
120
+ const migrationMatch = content.match(/### MIGRATION_CONTENT\s*\n```(?:markdown|yaml)?\s*\n([\s\S]*?)```/i);
121
+ const compactMatch = content.match(/### COMPACT_CONTENT\s*\n```(?:markdown)?\s*\n([\s\S]*?)```/i);
122
+ if (migrationMatch === null && compactMatch === null) {
123
+ // Try alternative formats - look for sections without code blocks
124
+ const altMigrationMatch = content.match(/### MIGRATION_CONTENT\s*\n([\s\S]*?)(?=### COMPACT_CONTENT|$)/i);
125
+ const altCompactMatch = content.match(/### COMPACT_CONTENT\s*\n([\s\S]*?)$/i);
126
+ if (altMigrationMatch === null && altCompactMatch === null) {
127
+ this.error('Could not parse LLM response. Expected MIGRATION_CONTENT and COMPACT_CONTENT sections.');
128
+ }
129
+ if (altMigrationMatch !== null) {
130
+ await this.saveMigrationContent(projectPath, altMigrationMatch[1].trim());
131
+ }
132
+ if (altCompactMatch !== null) {
133
+ await this.saveCompactContent(projectPath, altCompactMatch[1].trim());
134
+ }
135
+ }
136
+ else {
137
+ if (migrationMatch !== null) {
138
+ await this.saveMigrationContent(projectPath, migrationMatch[1]);
139
+ }
140
+ if (compactMatch !== null) {
141
+ await this.saveCompactContent(projectPath, compactMatch[1]);
142
+ }
143
+ }
144
+ // Mark issues as compacted - extract issue IDs from migration content
145
+ await this.markIssuesFromMigration(projectPath, content);
146
+ this.log('Compaction applied successfully!');
147
+ }
148
+ async saveMigrationContent(projectPath, content) {
149
+ const response = await daemonSaveMigration({
150
+ projectPath,
151
+ content,
152
+ });
153
+ if (!response.success) {
154
+ this.error(`Failed to save migration: ${response.error}`);
155
+ }
156
+ this.log(`Migration saved: ${response.filename}`);
157
+ }
158
+ async saveCompactContent(projectPath, content) {
159
+ const response = await daemonUpdateCompact({
160
+ projectPath,
161
+ content,
162
+ });
163
+ if (!response.success) {
164
+ this.error(`Failed to update compact.md: ${response.error}`);
165
+ }
166
+ this.log('compact.md updated');
167
+ }
168
+ async markIssuesFromMigration(projectPath, content) {
169
+ // Extract issue IDs from the migration content
170
+ // Look for patterns like:
171
+ // - id: uuid-123
172
+ // or compactedIssues array
173
+ const idMatches = content.matchAll(/(?:id|issueId):\s*["']?([a-f0-9-]{36})["']?/gi);
174
+ const issueIds = [];
175
+ for (const match of idMatches) {
176
+ if (!issueIds.includes(match[1])) {
177
+ issueIds.push(match[1]);
178
+ }
179
+ }
180
+ if (issueIds.length === 0) {
181
+ this.warn('No issue IDs found in migration content. Issues will not be marked as compacted.');
182
+ return;
183
+ }
184
+ const response = await daemonMarkIssuesCompacted({
185
+ projectPath,
186
+ issueIds,
187
+ });
188
+ if (!response.success) {
189
+ this.error(`Failed to mark issues as compacted: ${response.error}`);
190
+ }
191
+ this.log(`Marked ${response.markedCount} issue(s) as compacted`);
192
+ }
193
+ }
194
+ //# sourceMappingURL=compact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/commands/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAA;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAA;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AAExE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAU,WAAW,GACzB,mDAAmD,CAAA;IAErD,MAAM,CAAU,QAAQ,GAAG;QACzB,qCAAqC;QACrC,+CAA+C;QAC/C,yDAAyD;QACzD,yDAAyD;KAC1D,CAAA;IAED,MAAM,CAAU,KAAK,GAAG;QACtB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,2CAA2C;YACxD,OAAO,EAAE,KAAK;SACf,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,yDAAyD;SACvE,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,+CAA+C;SAC7D,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;QAErD,uBAAuB;QACvB,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAA;QACtE,CAAC;QAED,6CAA6C;QAC7C,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YAC7C,OAAM;QACR,CAAC;QAED,yBAAyB;QACzB,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA;QAExE,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QAED,6BAA6B;QAC7B,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACpD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,UAAU,0BAA0B,CAAC,CAAA;gBAChE,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAA;oBAC3B,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;oBAC3D,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;gBAChE,CAAC;YACH,CAAC;YACD,OAAM;QACR,CAAC;QAED,uBAAuB;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEnE,yCAAyC;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC/C,IAAI,CAAC,GAAG,CAAC,2BAA2B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;YACnD,IAAI,CAAC,GAAG,CACN,iGAAiG,CAClG,CAAA;YACD,OAAM;QACR,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACnB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,WAAmB,EACnB,MAKE;QAEF,qBAAqB;QACrB,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;QACvE,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAA;QAE/C,yBAAyB;QACzB,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;QAC/D,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM;YAC3C,CAAC,CAAC,eAAe,CAAC,OAAO;YACzB,CAAC,CAAC,8BAA8B,CAAA;QAElC,gBAAgB;QAChB,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QACxC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAC/B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACvB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrB,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;QACxD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACzB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAErC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;YAC/D,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;YACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACd,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,kBAAkB,CAAC,CAAA;YACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,WAAmB,EACnB,SAAiB;QAEjB,oBAAoB;QACpB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAElD,2EAA2E;QAC3E,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAClC,oEAAoE,CACrE,CAAA;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAChC,6DAA6D,CAC9D,CAAA;QAED,IAAI,cAAc,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YACrD,kEAAkE;YAClE,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CACrC,gEAAgE,CACjE,CAAA;YACD,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CACnC,sCAAsC,CACvC,CAAA;YAED,IAAI,iBAAiB,KAAK,IAAI,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC3D,IAAI,CAAC,KAAK,CACR,wFAAwF,CACzF,CAAA;YACH,CAAC;YAED,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,oBAAoB,CAC7B,WAAW,EACX,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAC5B,CAAA;YACH,CAAC;YACD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YACvE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;YACjE,CAAC;YACD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1B,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7D,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAExD,IAAI,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;IAC9C,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,WAAmB,EACnB,OAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;YACzC,WAAW;YACX,OAAO;SACR,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,6BAA6B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;QAC3D,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,oBAAoB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IACnD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,WAAmB,EACnB,OAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;YACzC,WAAW;YACX,OAAO;SACR,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,gCAAgC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;QAC9D,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAChC,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,WAAmB,EACnB,OAAe;QAEf,+CAA+C;QAC/C,0BAA0B;QAC1B,iBAAiB;QACjB,2BAA2B;QAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAChC,+CAA+C,CAChD,CAAA;QACD,MAAM,QAAQ,GAAa,EAAE,CAAA;QAE7B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CACP,kFAAkF,CACnF,CAAA;YACD,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC;YAC/C,WAAW;YACX,QAAQ;SACT,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,uCAAuC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;QACrE,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,UAAU,QAAQ,CAAC,WAAW,wBAAwB,CAAC,CAAA;IAClE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Create a new pull request in the .centy/prs folder
4
+ */
5
+ export default class CreatePr extends Command {
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ title: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
+ description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ source: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ target: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ issues: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ reviewers: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ priority: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ status: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
17
+ };
18
+ run(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=pr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../../src/commands/create/pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAK5C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,OAAgB,WAAW,SAAmD;IAE9E,OAAgB,QAAQ,WAKvB;IAED,OAAgB,KAAK;;;;;;;;;MAmCpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkDlC"}
@@ -0,0 +1,96 @@
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { daemonCreatePr } from '../../daemon/daemon-create-pr.js';
3
+ import { daemonIsInitialized } from '../../daemon/daemon-is-initialized.js';
4
+ /**
5
+ * Create a new pull request in the .centy/prs folder
6
+ */
7
+ export default class CreatePr extends Command {
8
+ static description = 'Create a new pull request in the .centy folder';
9
+ static examples = [
10
+ '<%= config.bin %> create pr',
11
+ '<%= config.bin %> create pr --title "Add feature" --source feature-branch',
12
+ '<%= config.bin %> create pr -t "Bug fix" -s bugfix/123 --target main',
13
+ '<%= config.bin %> create pr -t "Feature" --issues 1,2 --reviewers alice,bob',
14
+ ];
15
+ static flags = {
16
+ title: Flags.string({
17
+ char: 't',
18
+ description: 'PR title',
19
+ required: true,
20
+ }),
21
+ description: Flags.string({
22
+ char: 'd',
23
+ description: 'PR description',
24
+ }),
25
+ source: Flags.string({
26
+ char: 's',
27
+ description: 'Source branch name (auto-detected if not provided)',
28
+ }),
29
+ target: Flags.string({
30
+ description: 'Target branch name (defaults to main)',
31
+ }),
32
+ issues: Flags.string({
33
+ char: 'i',
34
+ description: 'Linked issue IDs (comma-separated)',
35
+ }),
36
+ reviewers: Flags.string({
37
+ char: 'r',
38
+ description: 'Reviewers (comma-separated)',
39
+ }),
40
+ priority: Flags.string({
41
+ char: 'p',
42
+ description: 'Priority level (low/medium/high)',
43
+ options: ['low', 'medium', 'high'],
44
+ }),
45
+ status: Flags.string({
46
+ description: 'Initial status (draft/open)',
47
+ options: ['draft', 'open'],
48
+ default: 'draft',
49
+ }),
50
+ };
51
+ async run() {
52
+ const { flags } = await this.parse(CreatePr);
53
+ const cwd = process.env['CENTY_CWD'] ?? process.cwd();
54
+ const initStatus = await daemonIsInitialized({ projectPath: cwd });
55
+ if (!initStatus.initialized) {
56
+ this.error('.centy folder not initialized. Run "centy init" first.');
57
+ }
58
+ // Convert priority string to number
59
+ const priorityMap = {
60
+ high: 1,
61
+ medium: 2,
62
+ low: 3,
63
+ };
64
+ const priority = flags.priority ? priorityMap[flags.priority] : 0;
65
+ // Parse comma-separated lists
66
+ const linkedIssues = flags.issues
67
+ ? flags.issues.split(',').map(s => s.trim())
68
+ : [];
69
+ const reviewers = flags.reviewers
70
+ ? flags.reviewers.split(',').map(s => s.trim())
71
+ : [];
72
+ const result = await daemonCreatePr({
73
+ projectPath: cwd,
74
+ title: flags.title,
75
+ description: flags.description ?? '',
76
+ sourceBranch: flags.source,
77
+ targetBranch: flags.target,
78
+ linkedIssues,
79
+ reviewers,
80
+ priority,
81
+ status: flags.status ?? 'draft',
82
+ customFields: {},
83
+ });
84
+ if (!result.success) {
85
+ this.error(result.error ?? 'Failed to create PR');
86
+ }
87
+ this.log(`Created PR #${result.displayNumber}`);
88
+ this.log(`ID: ${result.id}`);
89
+ this.log(`Source branch: ${result.detectedSourceBranch}`);
90
+ this.log(`\nFiles created:`);
91
+ for (const file of result.createdFiles) {
92
+ this.log(` ${file}`);
93
+ }
94
+ }
95
+ }
96
+ //# sourceMappingURL=pr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../../src/commands/create/pr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Delete a pull request
4
+ */
5
+ export default class DeletePr 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
+ force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=pr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../../src/commands/delete/pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAKlD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,OAAgB,IAAI;;MAKnB;IAED,OAAgB,WAAW,SAA0B;IAErD,OAAgB,QAAQ,WAIvB;IAED,OAAgB,KAAK;;MAMpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuClC"}
@@ -0,0 +1,59 @@
1
+ import { Args, Command, Flags } from '@oclif/core';
2
+ import { daemonDeletePr } from '../../daemon/daemon-delete-pr.js';
3
+ import { daemonIsInitialized } from '../../daemon/daemon-is-initialized.js';
4
+ /**
5
+ * Delete a pull request
6
+ */
7
+ export default class DeletePr extends Command {
8
+ static args = {
9
+ id: Args.string({
10
+ description: 'PR ID (UUID) or display number',
11
+ required: true,
12
+ }),
13
+ };
14
+ static description = 'Delete a pull request';
15
+ static examples = [
16
+ '<%= config.bin %> delete pr 1',
17
+ '<%= config.bin %> delete pr abc123-uuid',
18
+ '<%= config.bin %> delete pr 1 --force',
19
+ ];
20
+ static flags = {
21
+ force: Flags.boolean({
22
+ char: 'f',
23
+ description: 'Skip confirmation prompt',
24
+ default: false,
25
+ }),
26
+ };
27
+ async run() {
28
+ const { args, flags } = await this.parse(DeletePr);
29
+ const cwd = process.env['CENTY_CWD'] ?? process.cwd();
30
+ const initStatus = await daemonIsInitialized({ projectPath: cwd });
31
+ if (!initStatus.initialized) {
32
+ this.error('.centy folder not initialized. Run "centy init" first.');
33
+ }
34
+ if (!flags.force) {
35
+ const readline = await import('node:readline');
36
+ const rl = readline.createInterface({
37
+ input: process.stdin,
38
+ output: process.stdout,
39
+ });
40
+ const answer = await new Promise(resolve => {
41
+ rl.question(`Are you sure you want to delete PR ${args.id}? (y/N) `, resolve);
42
+ });
43
+ rl.close();
44
+ if (answer.toLowerCase() !== 'y') {
45
+ this.log('Cancelled.');
46
+ return;
47
+ }
48
+ }
49
+ const response = await daemonDeletePr({
50
+ projectPath: cwd,
51
+ prId: args.id,
52
+ });
53
+ if (!response.success) {
54
+ this.error(response.error);
55
+ }
56
+ this.log(`Deleted PR ${args.id}`);
57
+ }
58
+ }
59
+ //# sourceMappingURL=pr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../../src/commands/delete/pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAE3E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,gCAAgC;YAC7C,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,MAAM,CAAU,WAAW,GAAG,uBAAuB,CAAA;IAErD,MAAM,CAAU,QAAQ,GAAG;QACzB,+BAA+B;QAC/B,yCAAyC;QACzC,uCAAuC;KACxC,CAAA;IAED,MAAM,CAAU,KAAK,GAAG;QACtB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,0BAA0B;YACvC,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;QAErD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAA;QACtE,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;YAC9C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,OAAO,CAAC,EAAE;gBACjD,EAAE,CAAC,QAAQ,CACT,sCAAsC,IAAI,CAAC,EAAE,UAAU,EACvD,OAAO,CACR,CAAA;YACH,CAAC,CAAC,CAAA;YACF,EAAE,CAAC,KAAK,EAAE,CAAA;YACV,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBACjC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;gBACtB,OAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC;YACpC,WAAW,EAAE,GAAG;YAChB,IAAI,EAAE,IAAI,CAAC,EAAE;SACd,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,cAAc,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/commands/get/asset.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAKlD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,OAAgB,IAAI;;MAKnB;IAED,OAAgB,WAAW,SAAuC;IAElE,OAAgB,QAAQ,WAGvB;IAED,OAAgB,KAAK;;;;MAcpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgClC"}
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/commands/get/asset.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAKlD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,OAAgB,IAAI;;MAKnB;IAED,OAAgB,WAAW,SAAuC;IAElE,OAAgB,QAAQ,WAGvB;IAED,OAAgB,KAAK;;;;MAcpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA+BlC"}
@@ -52,7 +52,6 @@ export default class GetAsset extends Command {
52
52
  this.error(response.error);
53
53
  }
54
54
  const outputPath = flags.output ?? args.filename;
55
- // eslint-disable-next-line security/detect-non-literal-fs-filename
56
55
  await writeFile(outputPath, response.data);
57
56
  this.log(`Saved asset to ${outputPath}`);
58
57
  this.log(` Size: ${response.asset.size} bytes`);
@@ -1 +1 @@
1
- {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/commands/get/asset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAE3E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,MAAM,CAAU,IAAI,GAAG;QACrB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,MAAM,CAAU,WAAW,GAAG,oCAAoC,CAAA;IAElE,MAAM,CAAU,QAAQ,GAAG;QACzB,gFAAgF;QAChF,mEAAmE;KACpE,CAAA;IAED,MAAM,CAAU,KAAK,GAAG;QACtB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,4BAA4B;SAC1C,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,oBAAoB;YACjC,OAAO,EAAE,KAAK;SACf,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,+CAA+C;SAC7D,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;QAErD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAA;QACtE,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC;YACpC,WAAW,EAAE,GAAG;YAChB,OAAO,EAAE,KAAK,CAAC,KAAK;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,KAAK,CAAC,MAAM;SACvB,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAA;QAChD,mEAAmE;QACnE,MAAM,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE1C,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAA;QAChD,IAAI,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAChD,CAAC"}
1
+ {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/commands/get/asset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAE3E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,MAAM,CAAU,IAAI,GAAG;QACrB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,MAAM,CAAU,WAAW,GAAG,oCAAoC,CAAA;IAElE,MAAM,CAAU,QAAQ,GAAG;QACzB,gFAAgF;QAChF,mEAAmE;KACpE,CAAA;IAED,MAAM,CAAU,KAAK,GAAG;QACtB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,4BAA4B;SAC1C,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,oBAAoB;YACjC,OAAO,EAAE,KAAK;SACf,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,+CAA+C;SAC7D,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;QAErD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAA;QACtE,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC;YACpC,WAAW,EAAE,GAAG;YAChB,OAAO,EAAE,KAAK,CAAC,KAAK;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,KAAK,CAAC,MAAM;SACvB,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAA;QAChD,MAAM,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE1C,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAA;QAChD,IAAI,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAChD,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Get a single pull request by ID or display number
4
+ */
5
+ export default class GetPr 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
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=pr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../../src/commands/get/pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAMlD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,OAAgB,IAAI;;MAKnB;IAED,OAAgB,WAAW,SAC0B;IAErD,OAAgB,QAAQ,WAIvB;IAED,OAAgB,KAAK;;MAKpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyDlC"}
@@ -0,0 +1,76 @@
1
+ import { Args, Command, Flags } from '@oclif/core';
2
+ import { daemonGetPr } from '../../daemon/daemon-get-pr.js';
3
+ import { daemonGetPrByDisplayNumber } from '../../daemon/daemon-get-pr-by-display-number.js';
4
+ import { daemonIsInitialized } from '../../daemon/daemon-is-initialized.js';
5
+ /**
6
+ * Get a single pull request by ID or display number
7
+ */
8
+ export default class GetPr extends Command {
9
+ static args = {
10
+ id: Args.string({
11
+ description: 'PR ID (UUID) or display number',
12
+ required: true,
13
+ }),
14
+ };
15
+ static description = 'Get a single pull request by ID or display number';
16
+ static examples = [
17
+ '<%= config.bin %> get pr 1',
18
+ '<%= config.bin %> get pr abc123-uuid',
19
+ '<%= config.bin %> get pr 1 --json',
20
+ ];
21
+ static flags = {
22
+ json: Flags.boolean({
23
+ description: 'Output as JSON',
24
+ default: false,
25
+ }),
26
+ };
27
+ async run() {
28
+ const { args, flags } = await this.parse(GetPr);
29
+ const cwd = process.env['CENTY_CWD'] ?? process.cwd();
30
+ const initStatus = await daemonIsInitialized({ projectPath: cwd });
31
+ if (!initStatus.initialized) {
32
+ this.error('.centy folder not initialized. Run "centy init" first.');
33
+ }
34
+ // Try to parse as display number first
35
+ const displayNumber = Number.parseInt(args.id, 10);
36
+ const isDisplayNumber = !Number.isNaN(displayNumber) && displayNumber > 0;
37
+ const pr = isDisplayNumber
38
+ ? await daemonGetPrByDisplayNumber({
39
+ projectPath: cwd,
40
+ displayNumber,
41
+ })
42
+ : await daemonGetPr({
43
+ projectPath: cwd,
44
+ prId: args.id,
45
+ });
46
+ if (flags.json) {
47
+ this.log(JSON.stringify(pr, null, 2));
48
+ return;
49
+ }
50
+ const meta = pr.metadata;
51
+ this.log(`PR #${pr.displayNumber}`);
52
+ this.log(`ID: ${pr.id}`);
53
+ this.log(`Title: ${pr.title}`);
54
+ this.log(`Status: ${meta !== undefined ? meta.status : 'unknown'}`);
55
+ this.log(`Priority: ${meta !== undefined ? (meta.priorityLabel !== '' ? meta.priorityLabel : `P${meta.priority}`) : 'P?'}`);
56
+ this.log(`Branch: ${meta !== undefined ? `${meta.sourceBranch} -> ${meta.targetBranch}` : '? -> ?'}`);
57
+ if (meta !== undefined && meta.linkedIssues.length > 0) {
58
+ this.log(`Linked Issues: ${meta.linkedIssues.join(', ')}`);
59
+ }
60
+ if (meta !== undefined && meta.reviewers.length > 0) {
61
+ this.log(`Reviewers: ${meta.reviewers.join(', ')}`);
62
+ }
63
+ this.log(`Created: ${meta !== undefined ? meta.createdAt : 'unknown'}`);
64
+ this.log(`Updated: ${meta !== undefined ? meta.updatedAt : 'unknown'}`);
65
+ if (meta !== undefined && meta.mergedAt !== '') {
66
+ this.log(`Merged: ${meta.mergedAt}`);
67
+ }
68
+ if (meta !== undefined && meta.closedAt !== '') {
69
+ this.log(`Closed: ${meta.closedAt}`);
70
+ }
71
+ if (pr.description) {
72
+ this.log(`\nDescription:\n${pr.description}`);
73
+ }
74
+ }
75
+ }
76
+ //# sourceMappingURL=pr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../../src/commands/get/pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAA;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAE3E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,gCAAgC;YAC7C,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,MAAM,CAAU,WAAW,GACzB,mDAAmD,CAAA;IAErD,MAAM,CAAU,QAAQ,GAAG;QACzB,4BAA4B;QAC5B,sCAAsC;QACtC,mCAAmC;KACpC,CAAA;IAED,MAAM,CAAU,KAAK,GAAG;QACtB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;QAErD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAA;QACtE,CAAC;QAED,uCAAuC;QACvC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAClD,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,CAAA;QAEzE,MAAM,EAAE,GAAG,eAAe;YACxB,CAAC,CAAC,MAAM,0BAA0B,CAAC;gBAC/B,WAAW,EAAE,GAAG;gBAChB,aAAa;aACd,CAAC;YACJ,CAAC,CAAC,MAAM,WAAW,CAAC;gBAChB,WAAW,EAAE,GAAG;gBAChB,IAAI,EAAE,IAAI,CAAC,EAAE;aACd,CAAC,CAAA;QAEN,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAA;QACxB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC,CAAA;QACnC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QACxB,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;QAC9B,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;QACnE,IAAI,CAAC,GAAG,CACN,aAAa,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAClH,CAAA;QACD,IAAI,CAAC,GAAG,CACN,WAAW,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAC5F,CAAA;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5D,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;QACvE,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;QACvE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtC,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtC,CAAC;QACD,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC"}
@@ -7,6 +7,7 @@ export default class ListProjects extends Command {
7
7
  static examples: string[];
8
8
  static flags: {
9
9
  'include-stale': import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ 'include-uninitialized': import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
11
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
12
  };
12
13
  run(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../src/commands/list/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAI5C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,OAAgB,WAAW,SAAoC;IAE/D,OAAgB,QAAQ,WAIvB;IAED,OAAgB,KAAK;;;MASpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmClC"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../src/commands/list/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAI5C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,OAAgB,WAAW,SAAoC;IAE/D,OAAgB,QAAQ,WAKvB;IAED,OAAgB,KAAK;;;;MAapB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoClC"}