@braingrid/cli 0.2.0 → 0.2.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 (219) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +55 -39
  3. package/dist/chunk-KNVWIF3L.js +401 -0
  4. package/dist/chunk-KNVWIF3L.js.map +1 -0
  5. package/dist/cli.js +6236 -245
  6. package/dist/cli.js.map +1 -1
  7. package/dist/gh-installer-B65ZOOC4.js +13 -0
  8. package/dist/gh-installer-B65ZOOC4.js.map +1 -0
  9. package/package.json +19 -11
  10. package/dist/build-config.d.ts +0 -26
  11. package/dist/build-config.d.ts.map +0 -1
  12. package/dist/build-config.js +0 -45
  13. package/dist/build-config.js.map +0 -1
  14. package/dist/cli.d.ts +0 -3
  15. package/dist/cli.d.ts.map +0 -1
  16. package/dist/handlers/auth.handlers.d.ts +0 -13
  17. package/dist/handlers/auth.handlers.d.ts.map +0 -1
  18. package/dist/handlers/auth.handlers.js +0 -111
  19. package/dist/handlers/auth.handlers.js.map +0 -1
  20. package/dist/handlers/index.d.ts +0 -13
  21. package/dist/handlers/index.d.ts.map +0 -1
  22. package/dist/handlers/index.js +0 -13
  23. package/dist/handlers/index.js.map +0 -1
  24. package/dist/handlers/init.handlers.d.ts +0 -10
  25. package/dist/handlers/init.handlers.d.ts.map +0 -1
  26. package/dist/handlers/init.handlers.js +0 -638
  27. package/dist/handlers/init.handlers.js.map +0 -1
  28. package/dist/handlers/project.handlers.d.ts +0 -36
  29. package/dist/handlers/project.handlers.d.ts.map +0 -1
  30. package/dist/handlers/project.handlers.js +0 -309
  31. package/dist/handlers/project.handlers.js.map +0 -1
  32. package/dist/handlers/requirement.handlers.d.ts +0 -32
  33. package/dist/handlers/requirement.handlers.d.ts.map +0 -1
  34. package/dist/handlers/requirement.handlers.js +0 -264
  35. package/dist/handlers/requirement.handlers.js.map +0 -1
  36. package/dist/handlers/status.handlers.d.ts +0 -12
  37. package/dist/handlers/status.handlers.d.ts.map +0 -1
  38. package/dist/handlers/status.handlers.js +0 -212
  39. package/dist/handlers/status.handlers.js.map +0 -1
  40. package/dist/handlers/task.handlers.d.ts +0 -29
  41. package/dist/handlers/task.handlers.d.ts.map +0 -1
  42. package/dist/handlers/task.handlers.js +0 -326
  43. package/dist/handlers/task.handlers.js.map +0 -1
  44. package/dist/handlers/types.d.ts +0 -10
  45. package/dist/handlers/types.d.ts.map +0 -1
  46. package/dist/handlers/types.js +0 -5
  47. package/dist/handlers/types.js.map +0 -1
  48. package/dist/handlers/update.handlers.d.ts +0 -16
  49. package/dist/handlers/update.handlers.d.ts.map +0 -1
  50. package/dist/handlers/update.handlers.js +0 -119
  51. package/dist/handlers/update.handlers.js.map +0 -1
  52. package/dist/services/auth.d.ts +0 -59
  53. package/dist/services/auth.d.ts.map +0 -1
  54. package/dist/services/auth.js +0 -549
  55. package/dist/services/auth.js.map +0 -1
  56. package/dist/services/claude.d.ts +0 -18
  57. package/dist/services/claude.d.ts.map +0 -1
  58. package/dist/services/claude.js +0 -164
  59. package/dist/services/claude.js.map +0 -1
  60. package/dist/services/credential-store.d.ts +0 -47
  61. package/dist/services/credential-store.d.ts.map +0 -1
  62. package/dist/services/credential-store.js +0 -89
  63. package/dist/services/credential-store.js.map +0 -1
  64. package/dist/services/internal/github-service.d.ts +0 -67
  65. package/dist/services/internal/github-service.d.ts.map +0 -1
  66. package/dist/services/internal/github-service.js +0 -81
  67. package/dist/services/internal/github-service.js.map +0 -1
  68. package/dist/services/internal/repository-service.d.ts +0 -79
  69. package/dist/services/internal/repository-service.d.ts.map +0 -1
  70. package/dist/services/internal/repository-service.js +0 -88
  71. package/dist/services/internal/repository-service.js.map +0 -1
  72. package/dist/services/oauth2-auth.d.ts +0 -76
  73. package/dist/services/oauth2-auth.d.ts.map +0 -1
  74. package/dist/services/oauth2-auth.js +0 -451
  75. package/dist/services/oauth2-auth.js.map +0 -1
  76. package/dist/services/project-service.d.ts +0 -24
  77. package/dist/services/project-service.d.ts.map +0 -1
  78. package/dist/services/project-service.js +0 -60
  79. package/dist/services/project-service.js.map +0 -1
  80. package/dist/services/requirement-service.d.ts +0 -32
  81. package/dist/services/requirement-service.d.ts.map +0 -1
  82. package/dist/services/requirement-service.js +0 -91
  83. package/dist/services/requirement-service.js.map +0 -1
  84. package/dist/services/task-service.d.ts +0 -22
  85. package/dist/services/task-service.d.ts.map +0 -1
  86. package/dist/services/task-service.js +0 -52
  87. package/dist/services/task-service.js.map +0 -1
  88. package/dist/types/api.d.ts +0 -16
  89. package/dist/types/api.d.ts.map +0 -1
  90. package/dist/types/api.js +0 -5
  91. package/dist/types/api.js.map +0 -1
  92. package/dist/types/auth.d.ts +0 -73
  93. package/dist/types/auth.d.ts.map +0 -1
  94. package/dist/types/auth.js +0 -2
  95. package/dist/types/auth.js.map +0 -1
  96. package/dist/types/claude.d.ts +0 -22
  97. package/dist/types/claude.d.ts.map +0 -1
  98. package/dist/types/claude.js +0 -2
  99. package/dist/types/claude.js.map +0 -1
  100. package/dist/types/github.d.ts +0 -105
  101. package/dist/types/github.d.ts.map +0 -1
  102. package/dist/types/github.js +0 -6
  103. package/dist/types/github.js.map +0 -1
  104. package/dist/types/local-project.d.ts +0 -30
  105. package/dist/types/local-project.d.ts.map +0 -1
  106. package/dist/types/local-project.js +0 -24
  107. package/dist/types/local-project.js.map +0 -1
  108. package/dist/types/project.d.ts +0 -56
  109. package/dist/types/project.d.ts.map +0 -1
  110. package/dist/types/project.js +0 -5
  111. package/dist/types/project.js.map +0 -1
  112. package/dist/types/requirement.d.ts +0 -69
  113. package/dist/types/requirement.d.ts.map +0 -1
  114. package/dist/types/requirement.js +0 -5
  115. package/dist/types/requirement.js.map +0 -1
  116. package/dist/types/task.d.ts +0 -44
  117. package/dist/types/task.d.ts.map +0 -1
  118. package/dist/types/task.js +0 -5
  119. package/dist/types/task.js.map +0 -1
  120. package/dist/utils/axios-retry.d.ts +0 -25
  121. package/dist/utils/axios-retry.d.ts.map +0 -1
  122. package/dist/utils/axios-retry.js +0 -174
  123. package/dist/utils/axios-retry.js.map +0 -1
  124. package/dist/utils/axios-with-auth.d.ts +0 -10
  125. package/dist/utils/axios-with-auth.d.ts.map +0 -1
  126. package/dist/utils/axios-with-auth.js +0 -118
  127. package/dist/utils/axios-with-auth.js.map +0 -1
  128. package/dist/utils/cli-tools.d.ts +0 -30
  129. package/dist/utils/cli-tools.d.ts.map +0 -1
  130. package/dist/utils/cli-tools.js +0 -199
  131. package/dist/utils/cli-tools.js.map +0 -1
  132. package/dist/utils/command-execution.d.ts +0 -30
  133. package/dist/utils/command-execution.d.ts.map +0 -1
  134. package/dist/utils/command-execution.js +0 -264
  135. package/dist/utils/command-execution.js.map +0 -1
  136. package/dist/utils/command-parser.d.ts +0 -85
  137. package/dist/utils/command-parser.d.ts.map +0 -1
  138. package/dist/utils/command-parser.js +0 -287
  139. package/dist/utils/command-parser.js.map +0 -1
  140. package/dist/utils/config.d.ts +0 -10
  141. package/dist/utils/config.d.ts.map +0 -1
  142. package/dist/utils/config.js +0 -77
  143. package/dist/utils/config.js.map +0 -1
  144. package/dist/utils/error-formatter.d.ts +0 -17
  145. package/dist/utils/error-formatter.d.ts.map +0 -1
  146. package/dist/utils/error-formatter.js +0 -115
  147. package/dist/utils/error-formatter.js.map +0 -1
  148. package/dist/utils/formatting.d.ts +0 -10
  149. package/dist/utils/formatting.d.ts.map +0 -1
  150. package/dist/utils/formatting.js +0 -122
  151. package/dist/utils/formatting.js.map +0 -1
  152. package/dist/utils/gh-installer.d.ts +0 -31
  153. package/dist/utils/gh-installer.d.ts.map +0 -1
  154. package/dist/utils/gh-installer.js +0 -296
  155. package/dist/utils/gh-installer.js.map +0 -1
  156. package/dist/utils/git-installer.d.ts +0 -31
  157. package/dist/utils/git-installer.d.ts.map +0 -1
  158. package/dist/utils/git-installer.js +0 -290
  159. package/dist/utils/git-installer.js.map +0 -1
  160. package/dist/utils/git.d.ts +0 -60
  161. package/dist/utils/git.d.ts.map +0 -1
  162. package/dist/utils/git.js +0 -144
  163. package/dist/utils/git.js.map +0 -1
  164. package/dist/utils/github-repo.d.ts +0 -43
  165. package/dist/utils/github-repo.d.ts.map +0 -1
  166. package/dist/utils/github-repo.js +0 -113
  167. package/dist/utils/github-repo.js.map +0 -1
  168. package/dist/utils/id-normalization.d.ts +0 -26
  169. package/dist/utils/id-normalization.d.ts.map +0 -1
  170. package/dist/utils/id-normalization.js +0 -45
  171. package/dist/utils/id-normalization.js.map +0 -1
  172. package/dist/utils/jwt.d.ts +0 -45
  173. package/dist/utils/jwt.d.ts.map +0 -1
  174. package/dist/utils/jwt.js +0 -64
  175. package/dist/utils/jwt.js.map +0 -1
  176. package/dist/utils/local-store.d.ts +0 -36
  177. package/dist/utils/local-store.d.ts.map +0 -1
  178. package/dist/utils/local-store.js +0 -94
  179. package/dist/utils/local-store.js.map +0 -1
  180. package/dist/utils/logger.d.ts +0 -36
  181. package/dist/utils/logger.d.ts.map +0 -1
  182. package/dist/utils/logger.js +0 -176
  183. package/dist/utils/logger.js.map +0 -1
  184. package/dist/utils/package-manager-installer.d.ts +0 -36
  185. package/dist/utils/package-manager-installer.d.ts.map +0 -1
  186. package/dist/utils/package-manager-installer.js +0 -106
  187. package/dist/utils/package-manager-installer.js.map +0 -1
  188. package/dist/utils/package-manager.d.ts +0 -31
  189. package/dist/utils/package-manager.d.ts.map +0 -1
  190. package/dist/utils/package-manager.js +0 -133
  191. package/dist/utils/package-manager.js.map +0 -1
  192. package/dist/utils/projects.d.ts +0 -23
  193. package/dist/utils/projects.d.ts.map +0 -1
  194. package/dist/utils/projects.js +0 -36
  195. package/dist/utils/projects.js.map +0 -1
  196. package/dist/utils/repository-access.d.ts +0 -89
  197. package/dist/utils/repository-access.d.ts.map +0 -1
  198. package/dist/utils/repository-access.js +0 -132
  199. package/dist/utils/repository-access.js.map +0 -1
  200. package/dist/utils/requirements.d.ts +0 -43
  201. package/dist/utils/requirements.d.ts.map +0 -1
  202. package/dist/utils/requirements.js +0 -79
  203. package/dist/utils/requirements.js.map +0 -1
  204. package/dist/utils/spinner.d.ts +0 -47
  205. package/dist/utils/spinner.d.ts.map +0 -1
  206. package/dist/utils/spinner.js +0 -101
  207. package/dist/utils/spinner.js.map +0 -1
  208. package/dist/utils/status-parser.d.ts +0 -95
  209. package/dist/utils/status-parser.d.ts.map +0 -1
  210. package/dist/utils/status-parser.js +0 -205
  211. package/dist/utils/status-parser.js.map +0 -1
  212. package/dist/utils/tasks.d.ts +0 -21
  213. package/dist/utils/tasks.d.ts.map +0 -1
  214. package/dist/utils/tasks.js +0 -63
  215. package/dist/utils/tasks.js.map +0 -1
  216. package/dist/utils/workspace-manager.d.ts +0 -65
  217. package/dist/utils/workspace-manager.d.ts.map +0 -1
  218. package/dist/utils/workspace-manager.js +0 -98
  219. package/dist/utils/workspace-manager.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ import {
2
+ getGhManualInstallInstructions,
3
+ getGhVersion,
4
+ installGh,
5
+ isGhInstalled
6
+ } from "./chunk-KNVWIF3L.js";
7
+ export {
8
+ getGhManualInstallInstructions,
9
+ getGhVersion,
10
+ installGh,
11
+ isGhInstalled
12
+ };
13
+ //# sourceMappingURL=gh-installer-B65ZOOC4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@braingrid/cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "BrainGrid - Turn thoughts into AI-ready specs. Command-line interface for spec-driven development.",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",
@@ -39,7 +39,6 @@
39
39
  "chalk": "^5.3.0",
40
40
  "commander": "^12.0.0",
41
41
  "conf": "13.0.1",
42
- "ink": "^6.3.1",
43
42
  "node-machine-id": "1.1.12",
44
43
  "open": "^10.1.0",
45
44
  "zod": "^4.1.11"
@@ -50,12 +49,16 @@
50
49
  "@typescript-eslint/parser": "^8.39.1",
51
50
  "@vitest/coverage-v8": "^3.2.3",
52
51
  "@vitest/ui": "^3.2.3",
52
+ "depcheck": "^1.4.7",
53
53
  "eslint": "^9.33.0",
54
54
  "eslint-config-prettier": "^10.1.8",
55
55
  "eslint-plugin-prettier": "^5.5.4",
56
56
  "husky": "^9.1.7",
57
+ "knip": "^5.67.1",
57
58
  "lint-staged": "^16.2.3",
58
59
  "prettier": "^3.6.2",
60
+ "ts-prune": "^0.10.3",
61
+ "tsup": "^8.5.0",
59
62
  "tsx": "^4.16.2",
60
63
  "typescript": "^5.4.0",
61
64
  "vitest": "^3.2.3"
@@ -77,20 +80,21 @@
77
80
  "access": "public"
78
81
  },
79
82
  "scripts": {
80
- "build": "tsc -p .",
81
- "build:local": "NODE_ENV=local tsc -p .",
82
- "build:dev": "NODE_ENV=development tsc -p .",
83
- "build:prod": "NODE_ENV=production tsc -p .",
83
+ "build": "tsup",
84
+ "build:local": "BUILD_ENV=development tsup",
85
+ "build:dev": "BUILD_ENV=development tsup",
86
+ "build:prod": "BUILD_ENV=production tsup",
84
87
  "dev": "tsx src/cli.ts",
85
88
  "dev:local": "NODE_ENV=local tsx src/cli.ts",
86
89
  "docs:fetch-openapi": "mkdir -p docs && gh api repos/BrainGridAI/braingrid-app/contents/public/openapi.json | jq -r '.content' | base64 -D > docs/openapi.json",
87
- "start": "NODE_ENV=production node dist/cli.js",
88
- "start:local": "NODE_ENV=local node dist/cli.js",
89
- "start:dev": "NODE_ENV=development node dist/cli.js",
90
+ "docs:sync": "bash scripts/sync-docs-to-braingrid.sh",
91
+ "start": "node dist/cli.js",
92
+ "start:local": "node dist/cli.js",
93
+ "start:dev": "node dist/cli.js",
90
94
  "lint": "eslint 'src/**/*.{ts,tsx}'",
91
95
  "lint:fix": "eslint 'src/**/*.{ts,tsx}' --fix",
92
96
  "format": "prettier --write 'src/**/*.{ts,tsx}'",
93
- "validate:fix": "pnpm lint:fix && pnpm format",
97
+ "validate:fix": "pnpm lint:fix && pnpm format && pnpm type-check",
94
98
  "type-check": "tsc --noEmit",
95
99
  "test": "vitest",
96
100
  "test:watch": "vitest --watch",
@@ -99,6 +103,10 @@
99
103
  "test:all": "vitest run",
100
104
  "test:cli": "bash scripts/test-cli.sh",
101
105
  "test:cli:verbose": "bash scripts/test-cli.sh --verbose",
102
- "clean": "rm -rf dist"
106
+ "clean": "rm -rf dist",
107
+ "preversion": "pnpm validate:fix && pnpm test:all",
108
+ "release:patch": "npm version patch && git push && git push --tags",
109
+ "release:minor": "npm version minor && git push && git push --tags",
110
+ "release:major": "npm version major && git push && git push --tags"
103
111
  }
104
112
  }
@@ -1,26 +0,0 @@
1
- /**
2
- * BUILD_ENV determines which configuration to use.
3
- * - 'production': Uses production URLs (when NODE_ENV=production)
4
- * - 'development': Uses development/local URLs (default)
5
- */
6
- export declare const BUILD_ENV: 'production' | 'development';
7
- export declare const CLI_VERSION: string;
8
- /**
9
- * Production configuration
10
- * Used when BUILD_ENV === 'production' (npm published package)
11
- */
12
- export declare const PRODUCTION_CONFIG: {
13
- readonly apiUrl: "https://app.braingrid.ai";
14
- readonly workosAuthUrl: "https://sensitive-harvest-60.authkit.app";
15
- readonly workosClientId: "client_01K6H010C9K69HSDPM9CQM85S7";
16
- };
17
- /**
18
- * Development configuration
19
- * Used when BUILD_ENV === 'development' (local development)
20
- */
21
- export declare const DEVELOPMENT_CONFIG: {
22
- readonly apiUrl: "https://app.dev.braingrid.ai";
23
- readonly workosAuthUrl: "https://balanced-celebration-78-staging.authkit.app";
24
- readonly workosClientId: "client_01K6H04GF21T4JXNS3JDQM3YNE";
25
- };
26
- //# sourceMappingURL=build-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-config.d.ts","sourceRoot":"","sources":["../src/build-config.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,YAAY,GAAG,aAC8B,CAAC;AAgBtE,eAAO,MAAM,WAAW,QAAe,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC"}
@@ -1,45 +0,0 @@
1
- import { readFileSync } from 'node:fs';
2
- import { join, dirname } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- const __filename = fileURLToPath(import.meta.url);
5
- const __dirname = dirname(__filename);
6
- /**
7
- * BUILD_ENV determines which configuration to use.
8
- * - 'production': Uses production URLs (when NODE_ENV=production)
9
- * - 'development': Uses development/local URLs (default)
10
- */
11
- export const BUILD_ENV = process.env.NODE_ENV === 'production' ? 'production' : 'development';
12
- /**
13
- * CLI_VERSION read from package.json at runtime
14
- * Used for update checks and version display
15
- */
16
- function getVersion() {
17
- try {
18
- const packagePath = join(__dirname, '..', 'package.json');
19
- const pkg = JSON.parse(readFileSync(packagePath, 'utf-8'));
20
- return pkg.version;
21
- }
22
- catch {
23
- return 'unknown';
24
- }
25
- }
26
- export const CLI_VERSION = getVersion();
27
- /**
28
- * Production configuration
29
- * Used when BUILD_ENV === 'production' (npm published package)
30
- */
31
- export const PRODUCTION_CONFIG = {
32
- apiUrl: 'https://app.braingrid.ai',
33
- workosAuthUrl: 'https://sensitive-harvest-60.authkit.app',
34
- workosClientId: 'client_01K6H010C9K69HSDPM9CQM85S7',
35
- };
36
- /**
37
- * Development configuration
38
- * Used when BUILD_ENV === 'development' (local development)
39
- */
40
- export const DEVELOPMENT_CONFIG = {
41
- apiUrl: 'https://app.dev.braingrid.ai',
42
- workosAuthUrl: 'https://balanced-celebration-78-staging.authkit.app',
43
- workosClientId: 'client_01K6H04GF21T4JXNS3JDQM3YNE',
44
- };
45
- //# sourceMappingURL=build-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-config.js","sourceRoot":"","sources":["../src/build-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;AAEtE;;;GAGG;AACH,SAAS,UAAU;IAClB,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC,OAAO,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;AAExC;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,MAAM,EAAE,0BAA0B;IAClC,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,mCAAmC;CAC1C,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,MAAM,EAAE,8BAA8B;IACtC,aAAa,EAAE,qDAAqD;IACpE,cAAc,EAAE,mCAAmC;CAC1C,CAAC"}
package/dist/cli.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
@@ -1,13 +0,0 @@
1
- /**
2
- * Auth Handlers
3
- *
4
- * Handles authentication-related commands:
5
- * - login: Authenticate with BrainGrid
6
- * - logout: Sign out from BrainGrid
7
- * - whoami: Show current user information
8
- */
9
- import type { HandlerResult } from './types.js';
10
- export declare function handleLogin(): Promise<HandlerResult>;
11
- export declare function handleLogout(): Promise<HandlerResult>;
12
- export declare function handleWhoami(): Promise<HandlerResult>;
13
- //# sourceMappingURL=auth.handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/auth.handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAShD,wBAAsB,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,CAyC1D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CAgB3D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CAyC3D"}
@@ -1,111 +0,0 @@
1
- /**
2
- * Auth Handlers
3
- *
4
- * Handles authentication-related commands:
5
- * - login: Authenticate with BrainGrid
6
- * - logout: Sign out from BrainGrid
7
- * - whoami: Show current user information
8
- */
9
- import chalk from 'chalk';
10
- import { BraingridAuth } from '../services/auth.js';
11
- import { getConfig } from '../utils/config.js';
12
- import { formatError } from '../utils/error-formatter.js';
13
- import { getGitUser } from '../utils/git.js';
14
- import { getLogger } from '../utils/logger.js';
15
- const logger = getLogger();
16
- function getAuth() {
17
- const config = getConfig();
18
- return new BraingridAuth(config.apiUrl);
19
- }
20
- export async function handleLogin() {
21
- try {
22
- const auth = getAuth();
23
- console.log(chalk.blue('🔐 Starting OAuth2 authentication flow...'));
24
- console.log(chalk.dim('Your browser will open to complete authentication.\n'));
25
- // Capture git user info (best effort - won't fail if git not configured)
26
- const gitUser = await getGitUser();
27
- // Set up callback to display auth URL if browser fails to open
28
- const session = await auth.login((authUrl) => {
29
- console.log(chalk.dim("If your browser didn't open automatically, visit:"));
30
- console.log(chalk.bold.cyan(authUrl));
31
- console.log(chalk.dim('\nWaiting for authentication...\n'));
32
- }, gitUser);
33
- if (!session) {
34
- return {
35
- success: false,
36
- message: chalk.red('❌ Login failed. Please try again.'),
37
- };
38
- }
39
- // Debug: Log JWT token
40
- const storedSession = await auth.getStoredSession();
41
- if (storedSession) {
42
- logger.debug('[AUTH_HANDLER] Login successful', { jwt: storedSession.sealed_session });
43
- }
44
- return {
45
- success: true,
46
- message: chalk.green('✅ Successfully logged in to BrainGrid!'),
47
- data: session,
48
- };
49
- }
50
- catch (error) {
51
- return {
52
- success: false,
53
- message: chalk.red(`❌ Login failed: ${formatError(error)}`),
54
- };
55
- }
56
- }
57
- export async function handleLogout() {
58
- try {
59
- const auth = getAuth();
60
- await auth.clearSession();
61
- return {
62
- success: true,
63
- message: chalk.green('✅ Successfully logged out.'),
64
- };
65
- }
66
- catch (error) {
67
- return {
68
- success: false,
69
- message: chalk.red(`❌ Logout failed: ${formatError(error)}`),
70
- };
71
- }
72
- }
73
- export async function handleWhoami() {
74
- try {
75
- const auth = getAuth();
76
- const isAuthenticated = await auth.isAuthenticated();
77
- if (!isAuthenticated) {
78
- return {
79
- success: false,
80
- message: chalk.yellow('⚠️ Not logged in. Run `braingrid login` to authenticate.'),
81
- };
82
- }
83
- const session = await auth.getStoredSession();
84
- if (!session) {
85
- return {
86
- success: false,
87
- message: chalk.red('❌ No session found.'),
88
- };
89
- }
90
- // Debug: Log JWT token
91
- logger.debug('[AUTH_HANDLER] whoami - Current session', { jwt: session.sealed_session });
92
- let output = chalk.bold('\n👤 Current User\n\n');
93
- output += `${chalk.bold('User ID:')} ${session.user.id}\n`;
94
- output += `${chalk.bold('Email:')} ${session.user.email}\n`;
95
- output += `${chalk.bold('Name:')} ${session.user.firstName} ${session.user.lastName}\n`;
96
- output += `${chalk.bold('Org ID:')} ${session.organization_id}\n`;
97
- output += `${chalk.bold('Session:')} ${new Date(session.created_at).toLocaleString()}\n`;
98
- return {
99
- success: true,
100
- message: output,
101
- data: session,
102
- };
103
- }
104
- catch (error) {
105
- return {
106
- success: false,
107
- message: chalk.red(`❌ ${formatError(error)}`),
108
- };
109
- }
110
- }
111
- //# sourceMappingURL=auth.handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.handlers.js","sourceRoot":"","sources":["../../src/handlers/auth.handlers.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Handlers Index
3
- * Exports all handler functions
4
- */
5
- export * from './types.js';
6
- export * from './project.handlers.js';
7
- export * from './requirement.handlers.js';
8
- export * from './task.handlers.js';
9
- export * from './auth.handlers.js';
10
- export * from './status.handlers.js';
11
- export * from './init.handlers.js';
12
- export * from './update.handlers.js';
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Handlers Index
3
- * Exports all handler functions
4
- */
5
- export * from './types.js';
6
- export * from './project.handlers.js';
7
- export * from './requirement.handlers.js';
8
- export * from './task.handlers.js';
9
- export * from './auth.handlers.js';
10
- export * from './status.handlers.js';
11
- export * from './init.handlers.js';
12
- export * from './update.handlers.js';
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Init Handler
3
- * Handles the `braingrid init` command for initializing a repository with a BrainGrid project
4
- */
5
- import type { HandlerResult } from './types.js';
6
- export declare function handleInit(opts: {
7
- project?: string;
8
- force?: boolean;
9
- }): Promise<HandlerResult>;
10
- //# sourceMappingURL=init.handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/init.handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+BH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAuahD,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,aAAa,CAAC,CA6VzB"}