@braingrid/cli 0.0.5 → 0.0.7

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 (60) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +55 -41
  3. package/dist/.build-info.json +1 -1
  4. package/dist/cli.js +45 -7
  5. package/dist/cli.js.map +1 -1
  6. package/dist/handlers/auth.handlers.d.ts.map +1 -1
  7. package/dist/handlers/auth.handlers.js +4 -1
  8. package/dist/handlers/auth.handlers.js.map +1 -1
  9. package/dist/handlers/index.d.ts +2 -0
  10. package/dist/handlers/index.d.ts.map +1 -1
  11. package/dist/handlers/index.js +2 -0
  12. package/dist/handlers/index.js.map +1 -1
  13. package/dist/handlers/init.handlers.d.ts +11 -0
  14. package/dist/handlers/init.handlers.d.ts.map +1 -0
  15. package/dist/handlers/init.handlers.js +200 -0
  16. package/dist/handlers/init.handlers.js.map +1 -0
  17. package/dist/handlers/project.handlers.d.ts +10 -2
  18. package/dist/handlers/project.handlers.d.ts.map +1 -1
  19. package/dist/handlers/project.handlers.js +93 -2
  20. package/dist/handlers/project.handlers.js.map +1 -1
  21. package/dist/handlers/requirement.handlers.d.ts +2 -2
  22. package/dist/handlers/requirement.handlers.d.ts.map +1 -1
  23. package/dist/handlers/requirement.handlers.js +27 -2
  24. package/dist/handlers/requirement.handlers.js.map +1 -1
  25. package/dist/handlers/task.handlers.d.ts +2 -2
  26. package/dist/handlers/task.handlers.d.ts.map +1 -1
  27. package/dist/handlers/task.handlers.js +38 -3
  28. package/dist/handlers/task.handlers.js.map +1 -1
  29. package/dist/handlers/update.handlers.d.ts +16 -0
  30. package/dist/handlers/update.handlers.d.ts.map +1 -0
  31. package/dist/handlers/update.handlers.js +126 -0
  32. package/dist/handlers/update.handlers.js.map +1 -0
  33. package/dist/services/auth.d.ts +2 -2
  34. package/dist/services/auth.d.ts.map +1 -1
  35. package/dist/services/auth.js +2 -1
  36. package/dist/services/auth.js.map +1 -1
  37. package/dist/services/project-service.d.ts +2 -0
  38. package/dist/services/project-service.d.ts.map +1 -1
  39. package/dist/services/project-service.js +4 -0
  40. package/dist/services/project-service.js.map +1 -1
  41. package/dist/types/auth.d.ts +5 -0
  42. package/dist/types/auth.d.ts.map +1 -1
  43. package/dist/types/local-project.d.ts +30 -0
  44. package/dist/types/local-project.d.ts.map +1 -0
  45. package/dist/types/local-project.js +24 -0
  46. package/dist/types/local-project.js.map +1 -0
  47. package/dist/types/project.d.ts +23 -0
  48. package/dist/types/project.d.ts.map +1 -1
  49. package/dist/utils/cli-tools.d.ts.map +1 -1
  50. package/dist/utils/cli-tools.js +6 -19
  51. package/dist/utils/cli-tools.js.map +1 -1
  52. package/dist/utils/local-store.d.ts +36 -0
  53. package/dist/utils/local-store.d.ts.map +1 -0
  54. package/dist/utils/local-store.js +82 -0
  55. package/dist/utils/local-store.js.map +1 -0
  56. package/dist/utils/package-manager.d.ts +31 -0
  57. package/dist/utils/package-manager.d.ts.map +1 -0
  58. package/dist/utils/package-manager.js +133 -0
  59. package/dist/utils/package-manager.js.map +1 -0
  60. package/package.json +5 -2
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Init Handler
3
+ * Handles the `braingrid init` command for initializing a repository with a BrainGrid project
4
+ */
5
+ import chalk from 'chalk';
6
+ import { confirm } from '@inquirer/prompts';
7
+ import { BraingridAuth } from '../services/auth.js';
8
+ import { ProjectService } from '../services/project-service.js';
9
+ import { getConfig } from '../utils/config.js';
10
+ import { getGitRepositoryInfo } from '../utils/git.js';
11
+ import { formatError } from '../utils/error-formatter.js';
12
+ import { projectConfigExists, saveProjectConfig, loadProjectConfig } from '../utils/local-store.js';
13
+ function getServices() {
14
+ const config = getConfig();
15
+ const auth = new BraingridAuth(config.apiUrl);
16
+ const projectService = new ProjectService(config.apiUrl, auth);
17
+ return { projectService, auth };
18
+ }
19
+ export async function handleInit(opts) {
20
+ try {
21
+ const config = getConfig();
22
+ const { projectService, auth } = getServices();
23
+ // Check if already initialized (unless --force)
24
+ if (projectConfigExists() && !opts.force) {
25
+ try {
26
+ const existing = loadProjectConfig();
27
+ return {
28
+ success: false,
29
+ message: chalk.yellow('⚠️ Already initialized.\n\n') +
30
+ chalk.dim(`Project: ${existing.project_name} (${existing.project_short_id})\n`) +
31
+ chalk.dim(`Repository: ${existing.repository?.full_name || 'N/A'}\n\n`) +
32
+ chalk.dim('Use --force to reinitialize'),
33
+ };
34
+ }
35
+ catch {
36
+ // If config exists but is invalid, continue with init
37
+ return {
38
+ success: false,
39
+ message: chalk.yellow('⚠️ Invalid project configuration found.\n') +
40
+ chalk.dim('Use --force to reinitialize'),
41
+ };
42
+ }
43
+ }
44
+ // Check authentication
45
+ const isAuthenticated = await auth.isAuthenticated();
46
+ if (!isAuthenticated) {
47
+ return {
48
+ success: false,
49
+ message: chalk.red('❌ Not authenticated.\n') +
50
+ chalk.dim('Please run ') +
51
+ chalk.cyan('braingrid login') +
52
+ chalk.dim(' first.'),
53
+ };
54
+ }
55
+ // Get session to retrieve organization_id
56
+ const session = await auth.getStoredSession();
57
+ if (!session) {
58
+ return {
59
+ success: false,
60
+ message: chalk.red('❌ No session found. Please run `braingrid login` first.'),
61
+ };
62
+ }
63
+ // Get git repository info (always needed for URL, even when using --project)
64
+ const gitInfo = await getGitRepositoryInfo();
65
+ // Fetch project from API
66
+ let project;
67
+ if (opts.project) {
68
+ // Manual mode: fetch project by ID
69
+ try {
70
+ project = await projectService.getProject(opts.project);
71
+ }
72
+ catch {
73
+ return {
74
+ success: false,
75
+ message: chalk.red(`❌ Project not found: ${opts.project}\n\n`) +
76
+ chalk.dim('Make sure the project ID is correct and you have access to it.'),
77
+ };
78
+ }
79
+ }
80
+ else {
81
+ // Auto-detect mode: fetch project by git repository
82
+ if (!gitInfo || !gitInfo.isRepo || !gitInfo.owner || !gitInfo.name) {
83
+ return {
84
+ success: false,
85
+ message: chalk.red('❌ Not in a git repository or repository has no remote.\n') +
86
+ chalk.dim('Make sure you are in a git repository with a configured remote, or use:\n') +
87
+ chalk.cyan('braingrid init --project <project-id>'),
88
+ };
89
+ }
90
+ let response;
91
+ try {
92
+ response = (await projectService.listProjects({
93
+ repository_owner: gitInfo.owner,
94
+ repository_name: gitInfo.name,
95
+ }));
96
+ }
97
+ catch (error) {
98
+ // Check if it's a 404 error
99
+ if (error && typeof error === 'object' && 'response' in error) {
100
+ const axiosError = error;
101
+ if (axiosError.response?.status === 404) {
102
+ const webUrl = config.apiUrl.replace('/api', '');
103
+ return {
104
+ success: false,
105
+ message: chalk.yellow('⚠️ We did not find a Project in BrainGrid for this repo.\n\n') +
106
+ chalk.dim(`Repository: ${gitInfo.owner}/${gitInfo.name}\n\n`) +
107
+ chalk.dim('Create a project at ') +
108
+ chalk.cyan(webUrl) +
109
+ chalk.dim(' and link it to this repository, or use:\n') +
110
+ chalk.cyan(`braingrid project create --name "My Project" --repositories "${gitInfo.owner}/${gitInfo.name}"`),
111
+ };
112
+ }
113
+ }
114
+ throw error;
115
+ }
116
+ if (response.projects.length === 0) {
117
+ const webUrl = config.apiUrl.replace('/api', '');
118
+ return {
119
+ success: false,
120
+ message: chalk.yellow('⚠️ No projects found for this repository.\n\n') +
121
+ chalk.dim(`Repository: ${gitInfo.owner}/${gitInfo.name}\n\n`) +
122
+ chalk.dim('Create a project at ') +
123
+ chalk.cyan(webUrl) +
124
+ chalk.dim(' and link it to this repository, or use:\n') +
125
+ chalk.cyan(`braingrid project create --name "My Project" --repositories "${gitInfo.owner}/${gitInfo.name}"`),
126
+ };
127
+ }
128
+ // Use the first project (could add selection logic if multiple projects)
129
+ project = response.projects[0];
130
+ }
131
+ // Display project information
132
+ const projectInfo = chalk.bold('\n📦 BrainGrid Project Found\n\n') +
133
+ chalk.dim('Project: ') +
134
+ chalk.cyan(project.name) +
135
+ '\n' +
136
+ chalk.dim('ID: ') +
137
+ chalk.gray(project.short_id) +
138
+ '\n' +
139
+ (project.description
140
+ ? chalk.dim('Description: ') + chalk.gray(project.description) + '\n'
141
+ : '') +
142
+ chalk.dim('Repository: ') +
143
+ chalk.gray(project.repository?.full_name || 'N/A') +
144
+ '\n\n';
145
+ console.log(projectInfo);
146
+ // In wizard mode, ask for confirmation
147
+ if (opts.wizard) {
148
+ const shouldInit = await confirm({
149
+ message: 'Initialize this repository with the above project?',
150
+ default: true,
151
+ });
152
+ if (!shouldInit) {
153
+ return {
154
+ success: false,
155
+ message: chalk.yellow('Initialization cancelled.'),
156
+ };
157
+ }
158
+ }
159
+ // Create local project config
160
+ const localConfig = {
161
+ organization_id: session.organization_id,
162
+ project_id: project.id,
163
+ project_short_id: project.short_id,
164
+ project_name: project.name,
165
+ project_description: project.description || null,
166
+ repository: project.repository
167
+ ? {
168
+ id: project.repository.id,
169
+ owner: project.repository.full_name.split('/')[0], // Parse owner from API full_name
170
+ name: project.repository.name, // Use API name, not git name
171
+ full_name: project.repository.full_name,
172
+ url: gitInfo?.remoteUrl || undefined,
173
+ }
174
+ : null,
175
+ created_at: project.created_at,
176
+ };
177
+ // Save to .braingrid/project.json
178
+ saveProjectConfig(localConfig);
179
+ return {
180
+ success: true,
181
+ message: chalk.green('✅ Repository initialized successfully!\n\n') +
182
+ chalk.dim('Project: ') +
183
+ chalk.cyan(project.name) +
184
+ chalk.dim(` (${project.short_id})`) +
185
+ '\n' +
186
+ chalk.dim('Config: ') +
187
+ chalk.gray('.braingrid/project.json') +
188
+ '\n\n' +
189
+ chalk.dim('You can now use project-scoped commands without specifying a project ID.'),
190
+ data: localConfig,
191
+ };
192
+ }
193
+ catch (error) {
194
+ return {
195
+ success: false,
196
+ message: chalk.red(`❌ ${formatError(error, 'initializing repository')}`),
197
+ };
198
+ }
199
+ }
200
+ //# sourceMappingURL=init.handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.handlers.js","sourceRoot":"","sources":["../../src/handlers/init.handlers.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * Handles all project-related commands:
5
5
  * - list: List all projects
6
- * - show: Show project details
6
+ * - show: Show projects for a repository (current repo or specified)
7
+ * - get: Get a specific project by ID
7
8
  * - create: Create a new project
8
9
  * - update: Update project information
9
10
  * - delete: Delete a project
@@ -14,7 +15,14 @@ export declare function handleProjectList(opts: {
14
15
  page?: string;
15
16
  limit?: string;
16
17
  }): Promise<HandlerResult>;
17
- export declare function handleProjectShow(id: string): Promise<HandlerResult>;
18
+ export declare function handleProjectShow(opts: {
19
+ repo?: string;
20
+ repository?: string;
21
+ format?: string;
22
+ page?: string;
23
+ limit?: string;
24
+ }): Promise<HandlerResult>;
25
+ export declare function handleProjectGet(id: string): Promise<HandlerResult>;
18
26
  export declare function handleProjectCreate(opts: {
19
27
  name: string;
20
28
  description?: string;
@@ -1 +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"}
1
+ {"version":3,"file":"project.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/project.handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,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,IAAI,EAAE;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,aAAa,CAAC,CAsGzB;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmCzE;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"}
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * Handles all project-related commands:
5
5
  * - list: List all projects
6
- * - show: Show project details
6
+ * - show: Show projects for a repository (current repo or specified)
7
+ * - get: Get a specific project by ID
7
8
  * - create: Create a new project
8
9
  * - update: Update project information
9
10
  * - delete: Delete a project
@@ -13,6 +14,7 @@ import { ProjectService } from '../services/project-service.js';
13
14
  import { BraingridAuth } from '../services/auth.js';
14
15
  import { getConfig } from '../utils/config.js';
15
16
  import { formatError, getResourceContext } from '../utils/error-formatter.js';
17
+ import { getGitRepositoryInfo } from '../utils/git.js';
16
18
  function getServices() {
17
19
  const config = getConfig();
18
20
  const auth = new BraingridAuth(config.apiUrl);
@@ -75,7 +77,96 @@ export async function handleProjectList(opts) {
75
77
  };
76
78
  }
77
79
  }
78
- export async function handleProjectShow(id) {
80
+ export async function handleProjectShow(opts) {
81
+ try {
82
+ const { projectService, auth } = getServices();
83
+ // Check authentication
84
+ const isAuthenticated = await auth.isAuthenticated();
85
+ if (!isAuthenticated) {
86
+ return {
87
+ success: false,
88
+ message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
89
+ };
90
+ }
91
+ let repositoryOwner;
92
+ let repositoryName;
93
+ // Parse --repo or --repository flag if provided (format: owner/name)
94
+ const repoInput = opts.repository || opts.repo;
95
+ if (repoInput) {
96
+ const parts = repoInput.split('/');
97
+ if (parts.length !== 2) {
98
+ return {
99
+ success: false,
100
+ message: chalk.red('❌ Invalid repository format. Use: --repository owner/name (e.g., --repository microsoft/vscode)'),
101
+ };
102
+ }
103
+ [repositoryOwner, repositoryName] = parts;
104
+ }
105
+ else {
106
+ // Try to detect from git context
107
+ const gitInfo = await getGitRepositoryInfo();
108
+ if (!gitInfo || !gitInfo.isRepo || !gitInfo.owner || !gitInfo.name) {
109
+ return {
110
+ success: false,
111
+ message: chalk.yellow('⚠️ Not in a git repository or repository has no remote.\n' +
112
+ ' Use --repository owner/name to specify a repository (e.g., --repository microsoft/vscode)'),
113
+ };
114
+ }
115
+ repositoryOwner = gitInfo.owner;
116
+ repositoryName = gitInfo.name;
117
+ }
118
+ const response = await projectService.listProjects({
119
+ repository_owner: repositoryOwner,
120
+ repository_name: repositoryName,
121
+ page: opts.page ? parseInt(opts.page, 10) : 1,
122
+ limit: opts.limit ? parseInt(opts.limit, 10) : 20,
123
+ });
124
+ if (opts.format === 'json') {
125
+ return {
126
+ success: true,
127
+ message: JSON.stringify(response, null, 2),
128
+ data: response,
129
+ };
130
+ }
131
+ // Table format
132
+ const repoDisplay = chalk.cyan(`${repositoryOwner}/${repositoryName}`);
133
+ const source = opts.repo ? 'specified' : 'detected from git';
134
+ if (response.projects.length === 0) {
135
+ return {
136
+ success: true,
137
+ message: chalk.yellow(`No projects found for repository ${repoDisplay}\n`) +
138
+ chalk.dim(`(${source})`),
139
+ };
140
+ }
141
+ let output = chalk.bold(`📋 Projects for ${repoDisplay}\n`);
142
+ output += chalk.dim(`(${source})\n\n`);
143
+ output +=
144
+ 'ID Short ID Name Created\n';
145
+ output += '─'.repeat(100) + '\n';
146
+ for (const project of response.projects) {
147
+ const id = project.id.padEnd(36);
148
+ const shortId = project.short_id.padEnd(11);
149
+ const name = project.name.substring(0, 28).padEnd(28);
150
+ const created = new Date(project.created_at).toLocaleDateString();
151
+ output += `${id} ${shortId} ${name} ${created}\n`;
152
+ }
153
+ output += '\n';
154
+ output += `Page ${response.pagination.page} of ${Math.ceil(response.pagination.total / response.pagination.limit)}`;
155
+ output += ` (${response.pagination.total} total)`;
156
+ return {
157
+ success: true,
158
+ message: output,
159
+ data: response,
160
+ };
161
+ }
162
+ catch (error) {
163
+ return {
164
+ success: false,
165
+ message: chalk.red(`❌ ${formatError(error, 'showing projects for repository')}`),
166
+ };
167
+ }
168
+ }
169
+ export async function handleProjectGet(id) {
79
170
  try {
80
171
  const { projectService, auth } = getServices();
81
172
  const isAuthenticated = await auth.isAuthenticated();
@@ -1 +1 @@
1
- {"version":3,"file":"project.handlers.js","sourceRoot":"","sources":["../../src/handlers/project.handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.handlers.js","sourceRoot":"","sources":["../../src/handlers/project.handlers.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import type { HandlerResult } from './types.js';
12
12
  export declare function handleRequirementList(opts: {
13
- project: string;
13
+ project?: string;
14
14
  status?: string;
15
15
  format?: string;
16
16
  page?: string;
@@ -18,7 +18,7 @@ export declare function handleRequirementList(opts: {
18
18
  }): Promise<HandlerResult>;
19
19
  export declare function handleRequirementShow(id: string): Promise<HandlerResult>;
20
20
  export declare function handleRequirementCreate(opts: {
21
- project: string;
21
+ project?: string;
22
22
  prompt: string;
23
23
  repositories?: string;
24
24
  }): Promise<HandlerResult>;
@@ -1 +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;AAgChD,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"}
1
+ {"version":3,"file":"requirement.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/requirement.handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgChD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,CA6EzB;AAED,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAqD9E;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,aAAa,CAAC,CA6CzB;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"}
@@ -13,6 +13,7 @@ import { RequirementService } from '../services/requirement-service.js';
13
13
  import { BraingridAuth } from '../services/auth.js';
14
14
  import { getConfig } from '../utils/config.js';
15
15
  import { formatError, getResourceContext } from '../utils/error-formatter.js';
16
+ import { getLocalProjectId } from '../utils/local-store.js';
16
17
  function getServices() {
17
18
  const config = getConfig();
18
19
  const auth = new BraingridAuth(config.apiUrl);
@@ -47,7 +48,19 @@ export async function handleRequirementList(opts) {
47
48
  message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
48
49
  };
49
50
  }
50
- const response = await requirementService.listProjectRequirements(opts.project, {
51
+ // Get project ID from parameter or local config
52
+ const projectId = opts.project || getLocalProjectId();
53
+ if (!projectId) {
54
+ return {
55
+ success: false,
56
+ message: chalk.red('❌ No project specified and no local project found.\n\n') +
57
+ chalk.dim('Either run ') +
58
+ chalk.cyan('braingrid init') +
59
+ chalk.dim(' to initialize this repository, or use:\n') +
60
+ chalk.cyan('braingrid requirement list -p PROJ-123'),
61
+ };
62
+ }
63
+ const response = await requirementService.listProjectRequirements(projectId, {
51
64
  status: opts.status,
52
65
  page: opts.page ? parseInt(opts.page, 10) : 1,
53
66
  limit: opts.limit ? parseInt(opts.limit, 10) : 20,
@@ -154,8 +167,20 @@ export async function handleRequirementCreate(opts) {
154
167
  message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
155
168
  };
156
169
  }
170
+ // Get project ID from parameter or local config
171
+ const projectId = opts.project || getLocalProjectId();
172
+ if (!projectId) {
173
+ return {
174
+ success: false,
175
+ message: chalk.red('❌ No project specified and no local project found.\n\n') +
176
+ chalk.dim('Either run ') +
177
+ chalk.cyan('braingrid init') +
178
+ chalk.dim(' to initialize this repository, or use:\n') +
179
+ chalk.cyan('braingrid requirement create -p PROJ-123 --prompt "..."'),
180
+ };
181
+ }
157
182
  const repositories = opts.repositories ? opts.repositories.split(',').map(r => r.trim()) : [];
158
- const requirement = await requirementService.createProjectRequirement(opts.project, {
183
+ const requirement = await requirementService.createProjectRequirement(projectId, {
159
184
  prompt: opts.prompt,
160
185
  repositories,
161
186
  return_content: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"requirement.handlers.js","sourceRoot":"","sources":["../../src/handlers/requirement.handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requirement.handlers.js","sourceRoot":"","sources":["../../src/handlers/requirement.handlers.ts"],"names":[],"mappings":"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"}
@@ -10,12 +10,12 @@
10
10
  */
11
11
  import type { HandlerResult } from './types.js';
12
12
  export declare function handleTaskList(opts: {
13
- requirement: string;
13
+ requirement?: string;
14
14
  format?: string;
15
15
  }): Promise<HandlerResult>;
16
16
  export declare function handleTaskShow(id: string): Promise<HandlerResult>;
17
17
  export declare function handleTaskCreate(opts: {
18
- requirement: string;
18
+ requirement?: string;
19
19
  title: string;
20
20
  content?: string;
21
21
  }): Promise<HandlerResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"task.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/task.handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAsChD,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,aAAa,CAAC,CA+DzB;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA2DvE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoCzB;AAED,wBAAsB,gBAAgB,CACrC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GACC,OAAO,CAAC,aAAa,CAAC,CA6CxB;AAED,wBAAsB,gBAAgB,CACrC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACvB,OAAO,CAAC,aAAa,CAAC,CAyCxB"}
1
+ {"version":3,"file":"task.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/task.handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA4ChD,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgFzB;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA2DvE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqDzB;AAED,wBAAsB,gBAAgB,CACrC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GACC,OAAO,CAAC,aAAa,CAAC,CA6CxB;AAED,wBAAsB,gBAAgB,CACrC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACvB,OAAO,CAAC,aAAa,CAAC,CAyCxB"}
@@ -13,6 +13,7 @@ import { TaskService } from '../services/task-service.js';
13
13
  import { BraingridAuth } from '../services/auth.js';
14
14
  import { getConfig } from '../utils/config.js';
15
15
  import { formatError, getResourceContext } from '../utils/error-formatter.js';
16
+ import { getLocalProjectId } from '../utils/local-store.js';
16
17
  function getServices() {
17
18
  const config = getConfig();
18
19
  const auth = new BraingridAuth(config.apiUrl);
@@ -34,12 +35,18 @@ function getStatusEmoji(status) {
34
35
  }
35
36
  }
36
37
  // Helper to parse project/requirement from task identifier
37
- // Format: PROJ-123/REQ-456 or just task ID
38
+ // Format: PROJ-123/REQ-456 or just REQ-456 (auto-detects project)
38
39
  function parseTaskContext(requirementId) {
39
40
  const parts = requirementId.split('/');
40
41
  if (parts.length === 2) {
42
+ // Full format: PROJ-123/REQ-456
41
43
  return { projectId: parts[0], requirementId: parts[1] };
42
44
  }
45
+ // Short format: REQ-456 - try to get project from local config
46
+ const localProjectId = getLocalProjectId();
47
+ if (localProjectId) {
48
+ return { projectId: localProjectId, requirementId };
49
+ }
43
50
  return { requirementId };
44
51
  }
45
52
  export async function handleTaskList(opts) {
@@ -52,11 +59,25 @@ export async function handleTaskList(opts) {
52
59
  message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
53
60
  };
54
61
  }
62
+ if (!opts.requirement) {
63
+ return {
64
+ success: false,
65
+ message: chalk.red('❌ No requirement specified.\n\n') +
66
+ chalk.dim('Please provide a requirement ID:\n') +
67
+ chalk.cyan('braingrid task list -r REQ-456') +
68
+ chalk.dim(' (if initialized) or\n') +
69
+ chalk.cyan('braingrid task list -r PROJ-123/REQ-456'),
70
+ };
71
+ }
55
72
  const { projectId, requirementId } = parseTaskContext(opts.requirement);
56
73
  if (!projectId) {
57
74
  return {
58
75
  success: false,
59
- message: chalk.red('❌ Please provide requirement in format PROJ-123/REQ-456'),
76
+ message: chalk.red('❌ No project found.\n\n') +
77
+ chalk.dim('Either run ') +
78
+ chalk.cyan('braingrid init') +
79
+ chalk.dim(' to initialize this repository, or use full format:\n') +
80
+ chalk.cyan('braingrid task list -r PROJ-123/REQ-456'),
60
81
  };
61
82
  }
62
83
  const response = await taskService.listTasks(projectId, requirementId);
@@ -165,11 +186,25 @@ export async function handleTaskCreate(opts) {
165
186
  message: chalk.red('❌ Not authenticated. Please run `braingrid login` first.'),
166
187
  };
167
188
  }
189
+ if (!opts.requirement) {
190
+ return {
191
+ success: false,
192
+ message: chalk.red('❌ No requirement specified.\n\n') +
193
+ chalk.dim('Please provide a requirement ID:\n') +
194
+ chalk.cyan('braingrid task create -r REQ-456 --title "..."') +
195
+ chalk.dim(' (if initialized) or\n') +
196
+ chalk.cyan('braingrid task create -r PROJ-123/REQ-456 --title "..."'),
197
+ };
198
+ }
168
199
  const { projectId, requirementId } = parseTaskContext(opts.requirement);
169
200
  if (!projectId) {
170
201
  return {
171
202
  success: false,
172
- message: chalk.red('❌ Please provide requirement in format PROJ-123/REQ-456'),
203
+ message: chalk.red('❌ No project found.\n\n') +
204
+ chalk.dim('Either run ') +
205
+ chalk.cyan('braingrid init') +
206
+ chalk.dim(' to initialize this repository, or use full format:\n') +
207
+ chalk.cyan('braingrid task create -r PROJ-123/REQ-456 --title "..."'),
173
208
  };
174
209
  }
175
210
  const task = await taskService.createTask(projectId, requirementId, {