@braingrid/cli 0.0.2

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 (155) hide show
  1. package/README.md +164 -0
  2. package/dist/.build-info.json +9 -0
  3. package/dist/build-config.d.ts +25 -0
  4. package/dist/build-config.d.ts.map +1 -0
  5. package/dist/build-config.js +27 -0
  6. package/dist/build-config.js.map +1 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +246 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/handlers/auth.handlers.d.ts +13 -0
  12. package/dist/handlers/auth.handlers.d.ts.map +1 -0
  13. package/dist/handlers/auth.handlers.js +99 -0
  14. package/dist/handlers/auth.handlers.js.map +1 -0
  15. package/dist/handlers/index.d.ts +11 -0
  16. package/dist/handlers/index.d.ts.map +1 -0
  17. package/dist/handlers/index.js +11 -0
  18. package/dist/handlers/index.js.map +1 -0
  19. package/dist/handlers/project.handlers.d.ts +29 -0
  20. package/dist/handlers/project.handlers.d.ts.map +1 -0
  21. package/dist/handlers/project.handlers.js +200 -0
  22. package/dist/handlers/project.handlers.js.map +1 -0
  23. package/dist/handlers/requirement.handlers.d.ts +32 -0
  24. package/dist/handlers/requirement.handlers.d.ts.map +1 -0
  25. package/dist/handlers/requirement.handlers.js +234 -0
  26. package/dist/handlers/requirement.handlers.js.map +1 -0
  27. package/dist/handlers/status.handlers.d.ts +12 -0
  28. package/dist/handlers/status.handlers.d.ts.map +1 -0
  29. package/dist/handlers/status.handlers.js +209 -0
  30. package/dist/handlers/status.handlers.js.map +1 -0
  31. package/dist/handlers/task.handlers.d.ts +29 -0
  32. package/dist/handlers/task.handlers.d.ts.map +1 -0
  33. package/dist/handlers/task.handlers.js +272 -0
  34. package/dist/handlers/task.handlers.js.map +1 -0
  35. package/dist/handlers/types.d.ts +10 -0
  36. package/dist/handlers/types.d.ts.map +1 -0
  37. package/dist/handlers/types.js +5 -0
  38. package/dist/handlers/types.js.map +1 -0
  39. package/dist/services/auth.d.ts +41 -0
  40. package/dist/services/auth.d.ts.map +1 -0
  41. package/dist/services/auth.js +498 -0
  42. package/dist/services/auth.js.map +1 -0
  43. package/dist/services/claude.d.ts +18 -0
  44. package/dist/services/claude.d.ts.map +1 -0
  45. package/dist/services/claude.js +164 -0
  46. package/dist/services/claude.js.map +1 -0
  47. package/dist/services/context-manager.d.ts +170 -0
  48. package/dist/services/context-manager.d.ts.map +1 -0
  49. package/dist/services/context-manager.js +261 -0
  50. package/dist/services/context-manager.js.map +1 -0
  51. package/dist/services/credential-store.d.ts +47 -0
  52. package/dist/services/credential-store.d.ts.map +1 -0
  53. package/dist/services/credential-store.js +88 -0
  54. package/dist/services/credential-store.js.map +1 -0
  55. package/dist/services/oauth2-auth.d.ts +60 -0
  56. package/dist/services/oauth2-auth.d.ts.map +1 -0
  57. package/dist/services/oauth2-auth.js +377 -0
  58. package/dist/services/oauth2-auth.js.map +1 -0
  59. package/dist/services/project-service.d.ts +22 -0
  60. package/dist/services/project-service.d.ts.map +1 -0
  61. package/dist/services/project-service.js +52 -0
  62. package/dist/services/project-service.js.map +1 -0
  63. package/dist/services/requirement-service.d.ts +32 -0
  64. package/dist/services/requirement-service.d.ts.map +1 -0
  65. package/dist/services/requirement-service.js +91 -0
  66. package/dist/services/requirement-service.js.map +1 -0
  67. package/dist/services/task-service.d.ts +22 -0
  68. package/dist/services/task-service.d.ts.map +1 -0
  69. package/dist/services/task-service.js +52 -0
  70. package/dist/services/task-service.js.map +1 -0
  71. package/dist/test/setup.d.ts +2 -0
  72. package/dist/test/setup.d.ts.map +1 -0
  73. package/dist/test/setup.js +40 -0
  74. package/dist/test/setup.js.map +1 -0
  75. package/dist/types/api.d.ts +16 -0
  76. package/dist/types/api.d.ts.map +1 -0
  77. package/dist/types/api.js +5 -0
  78. package/dist/types/api.js.map +1 -0
  79. package/dist/types/auth.d.ts +68 -0
  80. package/dist/types/auth.d.ts.map +1 -0
  81. package/dist/types/auth.js +2 -0
  82. package/dist/types/auth.js.map +1 -0
  83. package/dist/types/claude.d.ts +22 -0
  84. package/dist/types/claude.d.ts.map +1 -0
  85. package/dist/types/claude.js +2 -0
  86. package/dist/types/claude.js.map +1 -0
  87. package/dist/types/project.d.ts +32 -0
  88. package/dist/types/project.d.ts.map +1 -0
  89. package/dist/types/project.js +5 -0
  90. package/dist/types/project.js.map +1 -0
  91. package/dist/types/requirement.d.ts +69 -0
  92. package/dist/types/requirement.d.ts.map +1 -0
  93. package/dist/types/requirement.js +5 -0
  94. package/dist/types/requirement.js.map +1 -0
  95. package/dist/types/task.d.ts +44 -0
  96. package/dist/types/task.d.ts.map +1 -0
  97. package/dist/types/task.js +5 -0
  98. package/dist/types/task.js.map +1 -0
  99. package/dist/utils/axios-retry.d.ts +25 -0
  100. package/dist/utils/axios-retry.d.ts.map +1 -0
  101. package/dist/utils/axios-retry.js +174 -0
  102. package/dist/utils/axios-retry.js.map +1 -0
  103. package/dist/utils/axios-with-auth.d.ts +10 -0
  104. package/dist/utils/axios-with-auth.d.ts.map +1 -0
  105. package/dist/utils/axios-with-auth.js +118 -0
  106. package/dist/utils/axios-with-auth.js.map +1 -0
  107. package/dist/utils/cli-tools.d.ts +30 -0
  108. package/dist/utils/cli-tools.d.ts.map +1 -0
  109. package/dist/utils/cli-tools.js +131 -0
  110. package/dist/utils/cli-tools.js.map +1 -0
  111. package/dist/utils/command-execution.d.ts +30 -0
  112. package/dist/utils/command-execution.d.ts.map +1 -0
  113. package/dist/utils/command-execution.js +264 -0
  114. package/dist/utils/command-execution.js.map +1 -0
  115. package/dist/utils/command-parser.d.ts +85 -0
  116. package/dist/utils/command-parser.d.ts.map +1 -0
  117. package/dist/utils/command-parser.js +287 -0
  118. package/dist/utils/command-parser.js.map +1 -0
  119. package/dist/utils/config.d.ts +9 -0
  120. package/dist/utils/config.d.ts.map +1 -0
  121. package/dist/utils/config.js +59 -0
  122. package/dist/utils/config.js.map +1 -0
  123. package/dist/utils/error-formatter.d.ts +17 -0
  124. package/dist/utils/error-formatter.d.ts.map +1 -0
  125. package/dist/utils/error-formatter.js +115 -0
  126. package/dist/utils/error-formatter.js.map +1 -0
  127. package/dist/utils/formatting.d.ts +10 -0
  128. package/dist/utils/formatting.d.ts.map +1 -0
  129. package/dist/utils/formatting.js +122 -0
  130. package/dist/utils/formatting.js.map +1 -0
  131. package/dist/utils/git.d.ts +55 -0
  132. package/dist/utils/git.d.ts.map +1 -0
  133. package/dist/utils/git.js +131 -0
  134. package/dist/utils/git.js.map +1 -0
  135. package/dist/utils/jwt.d.ts +45 -0
  136. package/dist/utils/jwt.d.ts.map +1 -0
  137. package/dist/utils/jwt.js +64 -0
  138. package/dist/utils/jwt.js.map +1 -0
  139. package/dist/utils/logger.d.ts +36 -0
  140. package/dist/utils/logger.d.ts.map +1 -0
  141. package/dist/utils/logger.js +176 -0
  142. package/dist/utils/logger.js.map +1 -0
  143. package/dist/utils/requirements.d.ts +28 -0
  144. package/dist/utils/requirements.d.ts.map +1 -0
  145. package/dist/utils/requirements.js +54 -0
  146. package/dist/utils/requirements.js.map +1 -0
  147. package/dist/utils/status-parser.d.ts +95 -0
  148. package/dist/utils/status-parser.d.ts.map +1 -0
  149. package/dist/utils/status-parser.js +189 -0
  150. package/dist/utils/status-parser.js.map +1 -0
  151. package/dist/utils/tasks.d.ts +9 -0
  152. package/dist/utils/tasks.d.ts.map +1 -0
  153. package/dist/utils/tasks.js +38 -0
  154. package/dist/utils/tasks.js.map +1 -0
  155. package/package.json +101 -0
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Project Resource Handlers
3
+ *
4
+ * Handles all project-related commands:
5
+ * - list: List all projects
6
+ * - show: Show project details
7
+ * - create: Create a new project
8
+ * - update: Update project information
9
+ * - delete: Delete a project
10
+ */
11
+ import type { HandlerResult } from './types.js';
12
+ export declare function handleProjectList(opts: {
13
+ format?: string;
14
+ page?: string;
15
+ limit?: string;
16
+ }): Promise<HandlerResult>;
17
+ export declare function handleProjectShow(id: string): Promise<HandlerResult>;
18
+ export declare function handleProjectCreate(opts: {
19
+ name: string;
20
+ description?: string;
21
+ }): Promise<HandlerResult>;
22
+ export declare function handleProjectUpdate(id: string, opts: {
23
+ name?: string;
24
+ description?: string;
25
+ }): Promise<HandlerResult>;
26
+ export declare function handleProjectDelete(id: string, opts: {
27
+ force?: boolean;
28
+ }): Promise<HandlerResult>;
29
+ //# sourceMappingURL=project.handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/project.handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAShD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,aAAa,CAAC,CA8DzB;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmC1E;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,aAAa,CAAC,CA4BzB;AAED,wBAAsB,mBAAmB,CACxC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IACL,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,GACC,OAAO,CAAC,aAAa,CAAC,CAqCxB;AAED,wBAAsB,mBAAmB,CACxC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACvB,OAAO,CAAC,aAAa,CAAC,CAiCxB"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Project Resource Handlers
3
+ *
4
+ * Handles all project-related commands:
5
+ * - list: List all projects
6
+ * - show: Show project details
7
+ * - create: Create a new project
8
+ * - update: Update project information
9
+ * - delete: Delete a project
10
+ */
11
+ import chalk from 'chalk';
12
+ import { ProjectService } from '../services/project-service.js';
13
+ import { BraingridAuth } from '../services/auth.js';
14
+ import { getConfig } from '../utils/config.js';
15
+ import { formatError, getResourceContext } from '../utils/error-formatter.js';
16
+ function getServices() {
17
+ const config = getConfig();
18
+ const auth = new BraingridAuth(config.apiUrl);
19
+ const projectService = new ProjectService(config.apiUrl, auth);
20
+ return { projectService, auth };
21
+ }
22
+ export async function handleProjectList(opts) {
23
+ try {
24
+ const { projectService, auth } = getServices();
25
+ // Check authentication
26
+ const isAuthenticated = await auth.isAuthenticated();
27
+ if (!isAuthenticated) {
28
+ return {
29
+ success: false,
30
+ message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
31
+ };
32
+ }
33
+ const response = await projectService.listProjects({
34
+ page: opts.page ? parseInt(opts.page, 10) : 1,
35
+ limit: opts.limit ? parseInt(opts.limit, 10) : 20,
36
+ });
37
+ if (opts.format === 'json') {
38
+ return {
39
+ success: true,
40
+ message: JSON.stringify(response, null, 2),
41
+ data: response,
42
+ };
43
+ }
44
+ // Table format
45
+ if (response.projects.length === 0) {
46
+ return {
47
+ success: true,
48
+ message: chalk.yellow('No projects found.'),
49
+ };
50
+ }
51
+ let output = chalk.bold('📋 Projects\n\n');
52
+ output +=
53
+ 'ID Short ID Name Created\n';
54
+ output += '─'.repeat(100) + '\n';
55
+ for (const project of response.projects) {
56
+ const id = project.id.padEnd(36);
57
+ const shortId = project.short_id.padEnd(11);
58
+ const name = project.name.substring(0, 28).padEnd(28);
59
+ const created = new Date(project.created_at).toLocaleDateString();
60
+ output += `${id} ${shortId} ${name} ${created}\n`;
61
+ }
62
+ output += '\n';
63
+ output += `Page ${response.pagination.page} of ${Math.ceil(response.pagination.total / response.pagination.limit)}`;
64
+ output += ` (${response.pagination.total} total)`;
65
+ return {
66
+ success: true,
67
+ message: output,
68
+ data: response,
69
+ };
70
+ }
71
+ catch (error) {
72
+ return {
73
+ success: false,
74
+ message: chalk.red(`❌ ${formatError(error, 'listing projects')}`),
75
+ };
76
+ }
77
+ }
78
+ export async function handleProjectShow(id) {
79
+ try {
80
+ const { projectService, auth } = getServices();
81
+ const isAuthenticated = await auth.isAuthenticated();
82
+ if (!isAuthenticated) {
83
+ return {
84
+ success: false,
85
+ message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
86
+ };
87
+ }
88
+ const project = await projectService.getProject(id);
89
+ let output = chalk.bold(`\n📁 Project: ${project.name}\n\n`);
90
+ output += `${chalk.bold('ID:')} ${project.id}\n`;
91
+ output += `${chalk.bold('Short ID:')} ${project.short_id}\n`;
92
+ output += `${chalk.bold('Name:')} ${project.name}\n`;
93
+ if (project.description) {
94
+ output += `${chalk.bold('Description:')} ${project.description}\n`;
95
+ }
96
+ output += `${chalk.bold('Created:')} ${new Date(project.created_at).toLocaleString()}\n`;
97
+ output += `${chalk.bold('Updated:')} ${new Date(project.updated_at).toLocaleString()}\n`;
98
+ return {
99
+ success: true,
100
+ message: output,
101
+ data: project,
102
+ };
103
+ }
104
+ catch (error) {
105
+ return {
106
+ success: false,
107
+ message: chalk.red(`❌ ${formatError(error, getResourceContext('project', id))}`),
108
+ };
109
+ }
110
+ }
111
+ export async function handleProjectCreate(opts) {
112
+ try {
113
+ const { projectService, auth } = getServices();
114
+ const isAuthenticated = await auth.isAuthenticated();
115
+ if (!isAuthenticated) {
116
+ return {
117
+ success: false,
118
+ message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
119
+ };
120
+ }
121
+ const project = await projectService.createProject({
122
+ name: opts.name,
123
+ description: opts.description,
124
+ });
125
+ return {
126
+ success: true,
127
+ message: chalk.green(`✅ Created project ${project.short_id}: ${project.name}`),
128
+ data: project,
129
+ };
130
+ }
131
+ catch (error) {
132
+ return {
133
+ success: false,
134
+ message: chalk.red(`❌ ${formatError(error, 'creating project')}`),
135
+ };
136
+ }
137
+ }
138
+ export async function handleProjectUpdate(id, opts) {
139
+ try {
140
+ const { projectService, auth } = getServices();
141
+ const isAuthenticated = await auth.isAuthenticated();
142
+ if (!isAuthenticated) {
143
+ return {
144
+ success: false,
145
+ message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
146
+ };
147
+ }
148
+ if (!opts.name && !opts.description) {
149
+ return {
150
+ success: false,
151
+ message: chalk.red('❌ Please provide at least one field to update (--name or --description)'),
152
+ };
153
+ }
154
+ const project = await projectService.updateProject(id, {
155
+ name: opts.name,
156
+ description: opts.description,
157
+ });
158
+ return {
159
+ success: true,
160
+ message: chalk.green(`✅ Updated project ${project.short_id}: ${project.name}`),
161
+ data: project,
162
+ };
163
+ }
164
+ catch (error) {
165
+ return {
166
+ success: false,
167
+ message: chalk.red(`❌ ${formatError(error, getResourceContext('project', id))}`),
168
+ };
169
+ }
170
+ }
171
+ export async function handleProjectDelete(id, opts) {
172
+ try {
173
+ const { projectService, auth } = getServices();
174
+ const isAuthenticated = await auth.isAuthenticated();
175
+ if (!isAuthenticated) {
176
+ return {
177
+ success: false,
178
+ message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
179
+ };
180
+ }
181
+ if (!opts.force) {
182
+ return {
183
+ success: false,
184
+ message: chalk.yellow('⚠️ Deleting a project is permanent. Use --force to confirm deletion.'),
185
+ };
186
+ }
187
+ await projectService.deleteProject(id);
188
+ return {
189
+ success: true,
190
+ message: chalk.green(`✅ Deleted project ${id}`),
191
+ };
192
+ }
193
+ catch (error) {
194
+ return {
195
+ success: false,
196
+ message: chalk.red(`❌ ${formatError(error, getResourceContext('project', id))}`),
197
+ };
198
+ }
199
+ }
200
+ //# sourceMappingURL=project.handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.handlers.js","sourceRoot":"","sources":["../../src/handlers/project.handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Requirement Resource Handlers
3
+ *
4
+ * Handles all requirement-related commands:
5
+ * - list: List all requirements
6
+ * - show: Show requirement details
7
+ * - create: Create a new requirement
8
+ * - update: Update requirement information
9
+ * - delete: Delete a requirement
10
+ */
11
+ import type { HandlerResult } from './types.js';
12
+ export declare function handleRequirementList(opts: {
13
+ project: string;
14
+ status?: string;
15
+ format?: string;
16
+ page?: string;
17
+ limit?: string;
18
+ }): Promise<HandlerResult>;
19
+ export declare function handleRequirementShow(id: string): Promise<HandlerResult>;
20
+ export declare function handleRequirementCreate(opts: {
21
+ project: string;
22
+ prompt: string;
23
+ repositories?: string;
24
+ }): Promise<HandlerResult>;
25
+ export declare function handleRequirementUpdate(id: string, opts: {
26
+ status?: string;
27
+ name?: string;
28
+ }): Promise<HandlerResult>;
29
+ export declare function handleRequirementDelete(id: string, opts: {
30
+ force?: boolean;
31
+ }): Promise<HandlerResult>;
32
+ //# sourceMappingURL=requirement.handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/requirement.handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA4BhD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,aAAa,CAAC,CA+DzB;AAED,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAqD9E;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,aAAa,CAAC,CA+BzB;AAED,wBAAsB,uBAAuB,CAC5C,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,GACC,OAAO,CAAC,aAAa,CAAC,CAmCxB;AAED,wBAAsB,uBAAuB,CAC5C,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACvB,OAAO,CAAC,aAAa,CAAC,CAiCxB"}
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Requirement Resource Handlers
3
+ *
4
+ * Handles all requirement-related commands:
5
+ * - list: List all requirements
6
+ * - show: Show requirement details
7
+ * - create: Create a new requirement
8
+ * - update: Update requirement information
9
+ * - delete: Delete a requirement
10
+ */
11
+ import chalk from 'chalk';
12
+ import { RequirementService } from '../services/requirement-service.js';
13
+ import { BraingridAuth } from '../services/auth.js';
14
+ import { getConfig } from '../utils/config.js';
15
+ import { formatError, getResourceContext } from '../utils/error-formatter.js';
16
+ function getServices() {
17
+ const config = getConfig();
18
+ const auth = new BraingridAuth(config.apiUrl);
19
+ const requirementService = new RequirementService(config.apiUrl, auth);
20
+ return { requirementService, auth };
21
+ }
22
+ function getStatusEmoji(status) {
23
+ switch (status) {
24
+ case 'PLANNED':
25
+ return '📝';
26
+ case 'IN_PROGRESS':
27
+ return '🚧';
28
+ case 'COMPLETED':
29
+ return '✅';
30
+ case 'CANCELLED':
31
+ return '❌';
32
+ default:
33
+ return '📋';
34
+ }
35
+ }
36
+ export async function handleRequirementList(opts) {
37
+ try {
38
+ const { requirementService, auth } = getServices();
39
+ const isAuthenticated = await auth.isAuthenticated();
40
+ if (!isAuthenticated) {
41
+ return {
42
+ success: false,
43
+ message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
44
+ };
45
+ }
46
+ const response = await requirementService.listProjectRequirements(opts.project, {
47
+ status: opts.status,
48
+ page: opts.page ? parseInt(opts.page, 10) : 1,
49
+ limit: opts.limit ? parseInt(opts.limit, 10) : 20,
50
+ });
51
+ if (opts.format === 'json') {
52
+ return {
53
+ success: true,
54
+ message: JSON.stringify(response, null, 2),
55
+ data: response,
56
+ };
57
+ }
58
+ // Table format
59
+ if (response.requirements.length === 0) {
60
+ return {
61
+ success: true,
62
+ message: chalk.yellow('No requirements found.'),
63
+ };
64
+ }
65
+ let output = chalk.bold('📋 Requirements\n\n');
66
+ output += 'Short ID Status Name Complexity Progress\n';
67
+ output += '─'.repeat(90) + '\n';
68
+ for (const req of response.requirements) {
69
+ const shortId = (req.short_id || req.id.slice(0, 11)).padEnd(11);
70
+ const statusEmoji = getStatusEmoji(req.status);
71
+ const statusText = req.status.padEnd(12);
72
+ const name = req.name.substring(0, 28).padEnd(28);
73
+ const complexity = `${req.complexity}/5`.padEnd(10);
74
+ const progress = req.task_progress ? `${req.task_progress.progress_percentage}%` : 'N/A';
75
+ output += `${shortId} ${statusEmoji} ${statusText} ${name} ${complexity} ${progress}\n`;
76
+ }
77
+ output += '\n';
78
+ output += `Page ${response.pagination.page} of ${Math.ceil(response.pagination.total / response.pagination.limit)}`;
79
+ output += ` (${response.pagination.total} total)`;
80
+ return {
81
+ success: true,
82
+ message: output,
83
+ data: response,
84
+ };
85
+ }
86
+ catch (error) {
87
+ return {
88
+ success: false,
89
+ message: chalk.red(`❌ ${formatError(error, 'listing requirements')}`),
90
+ };
91
+ }
92
+ }
93
+ export async function handleRequirementShow(id) {
94
+ try {
95
+ const { requirementService, auth } = getServices();
96
+ const isAuthenticated = await auth.isAuthenticated();
97
+ if (!isAuthenticated) {
98
+ return {
99
+ success: false,
100
+ message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
101
+ };
102
+ }
103
+ const requirement = await requirementService.getRequirement(id);
104
+ const statusEmoji = getStatusEmoji(requirement.status);
105
+ let output = chalk.bold(`\n${statusEmoji} Requirement: ${requirement.name}\n\n`);
106
+ output += `${chalk.bold('ID:')} ${requirement.id}\n`;
107
+ output += `${chalk.bold('Short ID:')} ${requirement.short_id}\n`;
108
+ output += `${chalk.bold('Name:')} ${requirement.name}\n`;
109
+ output += `${chalk.bold('Status:')} ${requirement.status}\n`;
110
+ output += `${chalk.bold('Complexity:')} ${requirement.complexity}/5\n`;
111
+ output += `${chalk.bold('Readiness:')} ${requirement.readiness}/5\n`;
112
+ if (requirement.description) {
113
+ output += `${chalk.bold('Description:')}\n${requirement.description}\n\n`;
114
+ }
115
+ if (requirement.task_progress) {
116
+ output += `${chalk.bold('Progress:')} ${requirement.task_progress.completed}/${requirement.task_progress.total} tasks (${requirement.task_progress.progress_percentage}%)\n`;
117
+ }
118
+ if (requirement.assignee) {
119
+ output += `${chalk.bold('Assigned to:')} ${requirement.assignee.first_name} ${requirement.assignee.last_name} (${requirement.assignee.email})\n`;
120
+ }
121
+ output += `${chalk.bold('Created:')} ${new Date(requirement.created_at).toLocaleString()}\n`;
122
+ output += `${chalk.bold('Updated:')} ${new Date(requirement.updated_at).toLocaleString()}\n`;
123
+ if (requirement.tasks && requirement.tasks.length > 0) {
124
+ output += `\n${chalk.bold('Tasks:')}\n`;
125
+ for (const task of requirement.tasks) {
126
+ const taskEmoji = getStatusEmoji(task.status);
127
+ output += ` ${taskEmoji} ${task.number}. ${task.title} (${task.status})\n`;
128
+ }
129
+ }
130
+ return {
131
+ success: true,
132
+ message: output,
133
+ data: requirement,
134
+ };
135
+ }
136
+ catch (error) {
137
+ return {
138
+ success: false,
139
+ message: chalk.red(`❌ ${formatError(error, getResourceContext('requirement', id))}`),
140
+ };
141
+ }
142
+ }
143
+ export async function handleRequirementCreate(opts) {
144
+ try {
145
+ const { requirementService, auth } = getServices();
146
+ const isAuthenticated = await auth.isAuthenticated();
147
+ if (!isAuthenticated) {
148
+ return {
149
+ success: false,
150
+ message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
151
+ };
152
+ }
153
+ const repositories = opts.repositories ? opts.repositories.split(',').map(r => r.trim()) : [];
154
+ const requirement = await requirementService.createProjectRequirement(opts.project, {
155
+ prompt: opts.prompt,
156
+ repositories,
157
+ return_content: 0,
158
+ });
159
+ return {
160
+ success: true,
161
+ message: chalk.green(`✅ Created requirement ${requirement.short_id}: ${requirement.name}`),
162
+ data: requirement,
163
+ };
164
+ }
165
+ catch (error) {
166
+ return {
167
+ success: false,
168
+ message: chalk.red(`❌ ${formatError(error, 'creating requirement')}`),
169
+ };
170
+ }
171
+ }
172
+ export async function handleRequirementUpdate(id, opts) {
173
+ try {
174
+ const { requirementService, auth } = getServices();
175
+ const isAuthenticated = await auth.isAuthenticated();
176
+ if (!isAuthenticated) {
177
+ return {
178
+ success: false,
179
+ message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
180
+ };
181
+ }
182
+ if (!opts.status && !opts.name) {
183
+ return {
184
+ success: false,
185
+ message: chalk.red('❌ Please provide at least one field to update (--status or --name)'),
186
+ };
187
+ }
188
+ const requirement = await requirementService.updateRequirement(id, {
189
+ status: opts.status,
190
+ name: opts.name,
191
+ });
192
+ return {
193
+ success: true,
194
+ message: chalk.green(`✅ Updated requirement ${requirement.short_id}: ${requirement.name}`),
195
+ data: requirement,
196
+ };
197
+ }
198
+ catch (error) {
199
+ return {
200
+ success: false,
201
+ message: chalk.red(`❌ ${formatError(error, getResourceContext('requirement', id))}`),
202
+ };
203
+ }
204
+ }
205
+ export async function handleRequirementDelete(id, opts) {
206
+ try {
207
+ const { requirementService, auth } = getServices();
208
+ const isAuthenticated = await auth.isAuthenticated();
209
+ if (!isAuthenticated) {
210
+ return {
211
+ success: false,
212
+ message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
213
+ };
214
+ }
215
+ if (!opts.force) {
216
+ return {
217
+ success: false,
218
+ message: chalk.yellow('⚠️ Deleting a requirement is permanent. Use --force to confirm deletion.'),
219
+ };
220
+ }
221
+ await requirementService.deleteRequirement(id);
222
+ return {
223
+ success: true,
224
+ message: chalk.green(`✅ Deleted requirement ${id}`),
225
+ };
226
+ }
227
+ catch (error) {
228
+ return {
229
+ success: false,
230
+ message: chalk.red(`❌ ${formatError(error, getResourceContext('requirement', id))}`),
231
+ };
232
+ }
233
+ }
234
+ //# sourceMappingURL=requirement.handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement.handlers.js","sourceRoot":"","sources":["../../src/handlers/requirement.handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Status Handler
3
+ *
4
+ * Handles the status command which displays:
5
+ * - Authentication status
6
+ * - Git repository information
7
+ * - Configuration details
8
+ * - Overall CLI status
9
+ */
10
+ import type { HandlerResult } from './types.js';
11
+ export declare function handleStatus(): Promise<HandlerResult>;
12
+ //# sourceMappingURL=status.handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/status.handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CAkN3D"}