@braingrid/cli 0.1.3 → 0.2.1

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 (243) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +54 -39
  3. package/dist/chunk-KNVWIF3L.js +401 -0
  4. package/dist/chunk-KNVWIF3L.js.map +1 -0
  5. package/dist/cli.js +6229 -290
  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 +40 -13
  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/agent.handlers.d.ts +0 -12
  17. package/dist/handlers/agent.handlers.d.ts.map +0 -1
  18. package/dist/handlers/agent.handlers.js +0 -130
  19. package/dist/handlers/agent.handlers.js.map +0 -1
  20. package/dist/handlers/auth.handlers.d.ts +0 -19
  21. package/dist/handlers/auth.handlers.d.ts.map +0 -1
  22. package/dist/handlers/auth.handlers.js +0 -177
  23. package/dist/handlers/auth.handlers.js.map +0 -1
  24. package/dist/handlers/index.d.ts +0 -14
  25. package/dist/handlers/index.d.ts.map +0 -1
  26. package/dist/handlers/index.js +0 -14
  27. package/dist/handlers/index.js.map +0 -1
  28. package/dist/handlers/init.handlers.d.ts +0 -10
  29. package/dist/handlers/init.handlers.d.ts.map +0 -1
  30. package/dist/handlers/init.handlers.js +0 -638
  31. package/dist/handlers/init.handlers.js.map +0 -1
  32. package/dist/handlers/project.handlers.d.ts +0 -36
  33. package/dist/handlers/project.handlers.d.ts.map +0 -1
  34. package/dist/handlers/project.handlers.js +0 -309
  35. package/dist/handlers/project.handlers.js.map +0 -1
  36. package/dist/handlers/requirement.handlers.d.ts +0 -32
  37. package/dist/handlers/requirement.handlers.d.ts.map +0 -1
  38. package/dist/handlers/requirement.handlers.js +0 -264
  39. package/dist/handlers/requirement.handlers.js.map +0 -1
  40. package/dist/handlers/status.handlers.d.ts +0 -12
  41. package/dist/handlers/status.handlers.d.ts.map +0 -1
  42. package/dist/handlers/status.handlers.js +0 -212
  43. package/dist/handlers/status.handlers.js.map +0 -1
  44. package/dist/handlers/task.handlers.d.ts +0 -29
  45. package/dist/handlers/task.handlers.d.ts.map +0 -1
  46. package/dist/handlers/task.handlers.js +0 -326
  47. package/dist/handlers/task.handlers.js.map +0 -1
  48. package/dist/handlers/types.d.ts +0 -10
  49. package/dist/handlers/types.d.ts.map +0 -1
  50. package/dist/handlers/types.js +0 -5
  51. package/dist/handlers/types.js.map +0 -1
  52. package/dist/handlers/update.handlers.d.ts +0 -16
  53. package/dist/handlers/update.handlers.d.ts.map +0 -1
  54. package/dist/handlers/update.handlers.js +0 -119
  55. package/dist/handlers/update.handlers.js.map +0 -1
  56. package/dist/rpc/registry.d.ts +0 -97
  57. package/dist/rpc/registry.d.ts.map +0 -1
  58. package/dist/rpc/registry.js +0 -119
  59. package/dist/rpc/registry.js.map +0 -1
  60. package/dist/rpc/server.d.ts +0 -78
  61. package/dist/rpc/server.d.ts.map +0 -1
  62. package/dist/rpc/server.js +0 -437
  63. package/dist/rpc/server.js.map +0 -1
  64. package/dist/rpc/transport.d.ts +0 -84
  65. package/dist/rpc/transport.d.ts.map +0 -1
  66. package/dist/rpc/transport.js +0 -296
  67. package/dist/rpc/transport.js.map +0 -1
  68. package/dist/services/__mocks__/utils.d.ts +0 -16
  69. package/dist/services/__mocks__/utils.d.ts.map +0 -1
  70. package/dist/services/__mocks__/utils.js +0 -21
  71. package/dist/services/__mocks__/utils.js.map +0 -1
  72. package/dist/services/agent-service.d.ts +0 -29
  73. package/dist/services/agent-service.d.ts.map +0 -1
  74. package/dist/services/agent-service.js +0 -273
  75. package/dist/services/agent-service.js.map +0 -1
  76. package/dist/services/auth.d.ts +0 -59
  77. package/dist/services/auth.d.ts.map +0 -1
  78. package/dist/services/auth.js +0 -549
  79. package/dist/services/auth.js.map +0 -1
  80. package/dist/services/claude.d.ts +0 -18
  81. package/dist/services/claude.d.ts.map +0 -1
  82. package/dist/services/claude.js +0 -164
  83. package/dist/services/claude.js.map +0 -1
  84. package/dist/services/credential-store.d.ts +0 -47
  85. package/dist/services/credential-store.d.ts.map +0 -1
  86. package/dist/services/credential-store.js +0 -89
  87. package/dist/services/credential-store.js.map +0 -1
  88. package/dist/services/internal/github-service.d.ts +0 -67
  89. package/dist/services/internal/github-service.d.ts.map +0 -1
  90. package/dist/services/internal/github-service.js +0 -81
  91. package/dist/services/internal/github-service.js.map +0 -1
  92. package/dist/services/internal/repository-service.d.ts +0 -79
  93. package/dist/services/internal/repository-service.d.ts.map +0 -1
  94. package/dist/services/internal/repository-service.js +0 -88
  95. package/dist/services/internal/repository-service.js.map +0 -1
  96. package/dist/services/oauth2-auth.d.ts +0 -76
  97. package/dist/services/oauth2-auth.d.ts.map +0 -1
  98. package/dist/services/oauth2-auth.js +0 -451
  99. package/dist/services/oauth2-auth.js.map +0 -1
  100. package/dist/services/project-service.d.ts +0 -24
  101. package/dist/services/project-service.d.ts.map +0 -1
  102. package/dist/services/project-service.js +0 -60
  103. package/dist/services/project-service.js.map +0 -1
  104. package/dist/services/requirement-service.d.ts +0 -32
  105. package/dist/services/requirement-service.d.ts.map +0 -1
  106. package/dist/services/requirement-service.js +0 -91
  107. package/dist/services/requirement-service.js.map +0 -1
  108. package/dist/services/task-service.d.ts +0 -22
  109. package/dist/services/task-service.d.ts.map +0 -1
  110. package/dist/services/task-service.js +0 -52
  111. package/dist/services/task-service.js.map +0 -1
  112. package/dist/types/api.d.ts +0 -16
  113. package/dist/types/api.d.ts.map +0 -1
  114. package/dist/types/api.js +0 -5
  115. package/dist/types/api.js.map +0 -1
  116. package/dist/types/auth.d.ts +0 -73
  117. package/dist/types/auth.d.ts.map +0 -1
  118. package/dist/types/auth.js +0 -2
  119. package/dist/types/auth.js.map +0 -1
  120. package/dist/types/claude.d.ts +0 -22
  121. package/dist/types/claude.d.ts.map +0 -1
  122. package/dist/types/claude.js +0 -2
  123. package/dist/types/claude.js.map +0 -1
  124. package/dist/types/github.d.ts +0 -105
  125. package/dist/types/github.d.ts.map +0 -1
  126. package/dist/types/github.js +0 -6
  127. package/dist/types/github.js.map +0 -1
  128. package/dist/types/local-project.d.ts +0 -30
  129. package/dist/types/local-project.d.ts.map +0 -1
  130. package/dist/types/local-project.js +0 -24
  131. package/dist/types/local-project.js.map +0 -1
  132. package/dist/types/project.d.ts +0 -56
  133. package/dist/types/project.d.ts.map +0 -1
  134. package/dist/types/project.js +0 -5
  135. package/dist/types/project.js.map +0 -1
  136. package/dist/types/requirement.d.ts +0 -69
  137. package/dist/types/requirement.d.ts.map +0 -1
  138. package/dist/types/requirement.js +0 -5
  139. package/dist/types/requirement.js.map +0 -1
  140. package/dist/types/task.d.ts +0 -44
  141. package/dist/types/task.d.ts.map +0 -1
  142. package/dist/types/task.js +0 -5
  143. package/dist/types/task.js.map +0 -1
  144. package/dist/utils/axios-retry.d.ts +0 -25
  145. package/dist/utils/axios-retry.d.ts.map +0 -1
  146. package/dist/utils/axios-retry.js +0 -174
  147. package/dist/utils/axios-retry.js.map +0 -1
  148. package/dist/utils/axios-with-auth.d.ts +0 -10
  149. package/dist/utils/axios-with-auth.d.ts.map +0 -1
  150. package/dist/utils/axios-with-auth.js +0 -118
  151. package/dist/utils/axios-with-auth.js.map +0 -1
  152. package/dist/utils/cli-tools.d.ts +0 -30
  153. package/dist/utils/cli-tools.d.ts.map +0 -1
  154. package/dist/utils/cli-tools.js +0 -199
  155. package/dist/utils/cli-tools.js.map +0 -1
  156. package/dist/utils/command-execution.d.ts +0 -30
  157. package/dist/utils/command-execution.d.ts.map +0 -1
  158. package/dist/utils/command-execution.js +0 -264
  159. package/dist/utils/command-execution.js.map +0 -1
  160. package/dist/utils/command-parser.d.ts +0 -85
  161. package/dist/utils/command-parser.d.ts.map +0 -1
  162. package/dist/utils/command-parser.js +0 -287
  163. package/dist/utils/command-parser.js.map +0 -1
  164. package/dist/utils/config.d.ts +0 -10
  165. package/dist/utils/config.d.ts.map +0 -1
  166. package/dist/utils/config.js +0 -77
  167. package/dist/utils/config.js.map +0 -1
  168. package/dist/utils/error-formatter.d.ts +0 -17
  169. package/dist/utils/error-formatter.d.ts.map +0 -1
  170. package/dist/utils/error-formatter.js +0 -115
  171. package/dist/utils/error-formatter.js.map +0 -1
  172. package/dist/utils/formatting.d.ts +0 -10
  173. package/dist/utils/formatting.d.ts.map +0 -1
  174. package/dist/utils/formatting.js +0 -122
  175. package/dist/utils/formatting.js.map +0 -1
  176. package/dist/utils/gh-installer.d.ts +0 -31
  177. package/dist/utils/gh-installer.d.ts.map +0 -1
  178. package/dist/utils/gh-installer.js +0 -296
  179. package/dist/utils/gh-installer.js.map +0 -1
  180. package/dist/utils/git-installer.d.ts +0 -31
  181. package/dist/utils/git-installer.d.ts.map +0 -1
  182. package/dist/utils/git-installer.js +0 -290
  183. package/dist/utils/git-installer.js.map +0 -1
  184. package/dist/utils/git.d.ts +0 -60
  185. package/dist/utils/git.d.ts.map +0 -1
  186. package/dist/utils/git.js +0 -144
  187. package/dist/utils/git.js.map +0 -1
  188. package/dist/utils/github-repo.d.ts +0 -43
  189. package/dist/utils/github-repo.d.ts.map +0 -1
  190. package/dist/utils/github-repo.js +0 -113
  191. package/dist/utils/github-repo.js.map +0 -1
  192. package/dist/utils/id-normalization.d.ts +0 -26
  193. package/dist/utils/id-normalization.d.ts.map +0 -1
  194. package/dist/utils/id-normalization.js +0 -45
  195. package/dist/utils/id-normalization.js.map +0 -1
  196. package/dist/utils/jwt.d.ts +0 -45
  197. package/dist/utils/jwt.d.ts.map +0 -1
  198. package/dist/utils/jwt.js +0 -64
  199. package/dist/utils/jwt.js.map +0 -1
  200. package/dist/utils/local-store.d.ts +0 -36
  201. package/dist/utils/local-store.d.ts.map +0 -1
  202. package/dist/utils/local-store.js +0 -94
  203. package/dist/utils/local-store.js.map +0 -1
  204. package/dist/utils/logger.d.ts +0 -36
  205. package/dist/utils/logger.d.ts.map +0 -1
  206. package/dist/utils/logger.js +0 -176
  207. package/dist/utils/logger.js.map +0 -1
  208. package/dist/utils/package-manager-installer.d.ts +0 -36
  209. package/dist/utils/package-manager-installer.d.ts.map +0 -1
  210. package/dist/utils/package-manager-installer.js +0 -106
  211. package/dist/utils/package-manager-installer.js.map +0 -1
  212. package/dist/utils/package-manager.d.ts +0 -31
  213. package/dist/utils/package-manager.d.ts.map +0 -1
  214. package/dist/utils/package-manager.js +0 -133
  215. package/dist/utils/package-manager.js.map +0 -1
  216. package/dist/utils/projects.d.ts +0 -23
  217. package/dist/utils/projects.d.ts.map +0 -1
  218. package/dist/utils/projects.js +0 -36
  219. package/dist/utils/projects.js.map +0 -1
  220. package/dist/utils/repository-access.d.ts +0 -89
  221. package/dist/utils/repository-access.d.ts.map +0 -1
  222. package/dist/utils/repository-access.js +0 -132
  223. package/dist/utils/repository-access.js.map +0 -1
  224. package/dist/utils/requirements.d.ts +0 -43
  225. package/dist/utils/requirements.d.ts.map +0 -1
  226. package/dist/utils/requirements.js +0 -79
  227. package/dist/utils/requirements.js.map +0 -1
  228. package/dist/utils/spinner.d.ts +0 -47
  229. package/dist/utils/spinner.d.ts.map +0 -1
  230. package/dist/utils/spinner.js +0 -101
  231. package/dist/utils/spinner.js.map +0 -1
  232. package/dist/utils/status-parser.d.ts +0 -95
  233. package/dist/utils/status-parser.d.ts.map +0 -1
  234. package/dist/utils/status-parser.js +0 -205
  235. package/dist/utils/status-parser.js.map +0 -1
  236. package/dist/utils/tasks.d.ts +0 -21
  237. package/dist/utils/tasks.d.ts.map +0 -1
  238. package/dist/utils/tasks.js +0 -63
  239. package/dist/utils/tasks.js.map +0 -1
  240. package/dist/utils/workspace-manager.d.ts +0 -65
  241. package/dist/utils/workspace-manager.d.ts.map +0 -1
  242. package/dist/utils/workspace-manager.js +0 -98
  243. package/dist/utils/workspace-manager.js.map +0 -1
@@ -1,437 +0,0 @@
1
- /**
2
- * JSON-RPC Server implementation
3
- * Coordinates transport, registry, and provides dual-mode operation
4
- */
5
- import { StdioTransport } from './transport.js';
6
- import { MethodRegistry } from './registry.js';
7
- import { methodSchemas, isJsonRpcRequest, isJsonRpcNotification, isJsonRpcResponse, } from '@braingrid/protocol';
8
- import * as handlers from '../handlers/index.js';
9
- import { BraingridAuth } from '../services/auth.js';
10
- import { getConfig } from '../utils/config.js';
11
- /**
12
- * JSON-RPC Server
13
- */
14
- export class JsonRpcServer {
15
- constructor(options = {}) {
16
- this.isRunning = false;
17
- this.transport = new StdioTransport(options.input, options.output, {
18
- useContentLength: options.useContentLength || false,
19
- });
20
- this.registry = new MethodRegistry();
21
- this.context = options.context || {};
22
- // Initialize auth service
23
- const config = getConfig();
24
- this.auth = new BraingridAuth(config.apiUrl);
25
- // Create a stable context object that persists across requests
26
- // This is used for auth state persistence via WeakMap in handlers
27
- this.stableContext = { ...this.context };
28
- // Register all methods
29
- this.registerMethods();
30
- // Set up message handling
31
- this.transport.onMessage(this.handleMessage.bind(this));
32
- this.transport.onBatch(this.handleBatch.bind(this));
33
- this.transport.onError(this.handleTransportError.bind(this));
34
- }
35
- /**
36
- * Get current authentication context
37
- * Returns the stable context object with updated auth state
38
- */
39
- async getAuthContext() {
40
- try {
41
- const isAuthenticated = await this.auth.isAuthenticated();
42
- const session = await this.auth.getStoredSession();
43
- // Update the stable context with current auth state
44
- this.stableContext.isAuthenticated = isAuthenticated;
45
- this.stableContext.session = session;
46
- return this.stableContext;
47
- }
48
- catch {
49
- // If auth check fails, return unauthenticated context
50
- this.stableContext.isAuthenticated = false;
51
- this.stableContext.session = undefined;
52
- return this.stableContext;
53
- }
54
- }
55
- /**
56
- * Helper to register a method with braingrid. prefix
57
- */
58
- registerMethod(name, config) {
59
- // Register with braingrid. prefix as per REQ-899
60
- this.registry.register(`braingrid.${name}`, config);
61
- }
62
- /**
63
- * Register all RPC methods
64
- */
65
- registerMethods() {
66
- // ============================================
67
- // AUTH METHODS
68
- // ============================================
69
- this.registerMethod('auth.login', {
70
- schema: methodSchemas['auth.login'],
71
- handler: async (_params, context) => {
72
- const result = await handlers.handleLogin(context);
73
- return result;
74
- },
75
- metadata: { description: 'Authenticate with BrainGrid (returns auth URL in RPC mode)' },
76
- });
77
- this.registerMethod('auth.complete', {
78
- schema: methodSchemas['auth.logout'], // Same schema as logout (no params)
79
- handler: async (_params, context) => {
80
- const result = await handlers.handleCompleteLogin(context);
81
- return result;
82
- },
83
- metadata: { description: 'Complete authentication after opening browser (RPC mode only)' },
84
- });
85
- this.registerMethod('auth.logout', {
86
- schema: methodSchemas['auth.logout'],
87
- handler: async () => {
88
- const result = await handlers.handleLogout();
89
- return result;
90
- },
91
- metadata: { description: 'Sign out from BrainGrid' },
92
- });
93
- this.registerMethod('auth.whoami', {
94
- schema: methodSchemas['auth.whoami'],
95
- handler: async () => {
96
- const result = await handlers.handleWhoami();
97
- return result;
98
- },
99
- metadata: { description: 'Show current user information', requiresAuth: true },
100
- });
101
- // ============================================
102
- // AGENT CONVERSATION METHODS
103
- // ============================================
104
- this.registerMethod('agent.conversation.stream', {
105
- schema: methodSchemas['braingrid.agent.conversation.stream'],
106
- handler: async (params) => {
107
- const typedParams = params;
108
- const result = await handlers.handleAgentConversationStream(typedParams);
109
- return result;
110
- },
111
- metadata: {
112
- description: 'Stream a conversation with the AI agent',
113
- requiresAuth: true,
114
- supportsStreaming: true,
115
- },
116
- });
117
- // ============================================
118
- // INIT & UPDATE METHODS
119
- // ============================================
120
- this.registerMethod('init', {
121
- schema: methodSchemas['braingrid.init'],
122
- handler: async (params) => {
123
- const typedParams = params;
124
- const result = await handlers.handleInit(typedParams || {});
125
- return result;
126
- },
127
- metadata: {
128
- description: 'Initialize BrainGrid project in current repository',
129
- requiresAuth: true,
130
- },
131
- });
132
- this.registerMethod('update', {
133
- schema: methodSchemas['braingrid.update'],
134
- handler: async (params) => {
135
- const typedParams = params;
136
- const result = await handlers.handleUpdate(typedParams || {});
137
- return result;
138
- },
139
- metadata: {
140
- description: 'Update BrainGrid CLI to the latest version (use --check in RPC mode)',
141
- requiresAuth: false,
142
- },
143
- });
144
- // ============================================
145
- // PROJECT METHODS
146
- // ============================================
147
- this.registerMethod('project.list', {
148
- schema: methodSchemas['project.list'],
149
- handler: async (params) => {
150
- const typedParams = params;
151
- const result = await handlers.handleProjectList(typedParams || {});
152
- return result;
153
- },
154
- metadata: { description: 'List all projects', requiresAuth: true },
155
- });
156
- this.registerMethod('project.create', {
157
- schema: methodSchemas['project.create'],
158
- handler: async (params) => {
159
- const typedParams = params;
160
- const result = await handlers.handleProjectCreate(typedParams);
161
- return result;
162
- },
163
- metadata: {
164
- description: 'Create a new project',
165
- requiresAuth: true,
166
- positionalParams: ['name', 'description'], // Support ["my-project", "description"] format
167
- },
168
- });
169
- this.registerMethod('project.get', {
170
- schema: methodSchemas['project.get'],
171
- handler: async (params) => {
172
- const typedParams = params;
173
- const result = await handlers.handleProjectShow({ id: typedParams.project });
174
- return result;
175
- },
176
- metadata: {
177
- description: 'Get a specific project by ID',
178
- requiresAuth: true,
179
- positionalParams: ['project'], // Support ["project-id"] format
180
- },
181
- });
182
- this.registerMethod('project.show', {
183
- schema: methodSchemas['project.show'],
184
- handler: async (params) => {
185
- const typedParams = params;
186
- const result = await handlers.handleProjectShow({
187
- repo: typedParams.project, // project parameter contains the repository
188
- format: typedParams.format,
189
- });
190
- return result;
191
- },
192
- metadata: { description: 'Show projects for a repository', requiresAuth: true },
193
- });
194
- this.registerMethod('project.update', {
195
- schema: methodSchemas['project.update'],
196
- handler: async (params) => {
197
- const typedParams = params;
198
- const result = await handlers.handleProjectUpdate(typedParams.project, {
199
- name: typedParams.name,
200
- description: typedParams.description,
201
- });
202
- return result;
203
- },
204
- metadata: { description: 'Update a project', requiresAuth: true },
205
- });
206
- this.registerMethod('project.delete', {
207
- schema: methodSchemas['project.delete'],
208
- handler: async (params) => {
209
- const typedParams = params;
210
- const result = await handlers.handleProjectDelete(typedParams.project, { force: typedParams.confirm } // Map confirm to force parameter
211
- );
212
- return result;
213
- },
214
- metadata: { description: 'Delete a project', requiresAuth: true },
215
- });
216
- // ============================================
217
- // REQUIREMENT METHODS
218
- // ============================================
219
- this.registerMethod('requirement.list', {
220
- schema: methodSchemas['requirement.list'],
221
- handler: async (params) => {
222
- const typedParams = params;
223
- const result = await handlers.handleRequirementList(typedParams);
224
- return result;
225
- },
226
- metadata: { description: 'List requirements for a project', requiresAuth: true },
227
- });
228
- this.registerMethod('requirement.show', {
229
- schema: methodSchemas['requirement.show'],
230
- handler: async (params) => {
231
- const typedParams = params;
232
- const result = await handlers.handleRequirementShow(typedParams.requirement);
233
- return result;
234
- },
235
- metadata: { description: 'Show requirement details', requiresAuth: true },
236
- });
237
- this.registerMethod('requirement.create', {
238
- schema: methodSchemas['requirement.create'],
239
- handler: async (params) => {
240
- const typedParams = params;
241
- const result = await handlers.handleRequirementCreate(typedParams);
242
- return result;
243
- },
244
- metadata: {
245
- description: 'Create a new requirement',
246
- requiresAuth: true,
247
- supportsStreaming: true, // Requirement creation supports streaming
248
- },
249
- });
250
- this.registerMethod('requirement.update', {
251
- schema: methodSchemas['requirement.update'],
252
- handler: async (params) => {
253
- const typedParams = params;
254
- const result = await handlers.handleRequirementUpdate(typedParams.requirement, {
255
- status: typedParams.status,
256
- name: typedParams.name,
257
- });
258
- return result;
259
- },
260
- metadata: { description: 'Update a requirement', requiresAuth: true },
261
- });
262
- this.registerMethod('requirement.delete', {
263
- schema: methodSchemas['requirement.delete'],
264
- handler: async (params) => {
265
- const typedParams = params;
266
- const result = await handlers.handleRequirementDelete(typedParams.requirement, { force: typedParams.confirm } // Map confirm to force parameter
267
- );
268
- return result;
269
- },
270
- metadata: { description: 'Delete a requirement', requiresAuth: true },
271
- });
272
- // ============================================
273
- // TASK METHODS
274
- // ============================================
275
- this.registerMethod('task.list', {
276
- schema: methodSchemas['task.list'],
277
- handler: async (params) => {
278
- const typedParams = params;
279
- const result = await handlers.handleTaskList(typedParams);
280
- return result;
281
- },
282
- metadata: { description: 'List tasks for a requirement', requiresAuth: true },
283
- });
284
- this.registerMethod('task.show', {
285
- schema: methodSchemas['task.show'],
286
- handler: async (params) => {
287
- const typedParams = params;
288
- const result = await handlers.handleTaskShow(typedParams.task);
289
- return result;
290
- },
291
- metadata: { description: 'Show task details', requiresAuth: true },
292
- });
293
- this.registerMethod('task.create', {
294
- schema: methodSchemas['task.create'],
295
- handler: async (params) => {
296
- const typedParams = params;
297
- const result = await handlers.handleTaskCreate(typedParams);
298
- return result;
299
- },
300
- metadata: { description: 'Create a new task', requiresAuth: true },
301
- });
302
- this.registerMethod('task.update', {
303
- schema: methodSchemas['task.update'],
304
- handler: async (params) => {
305
- const typedParams = params;
306
- const result = await handlers.handleTaskUpdate(typedParams.task, {
307
- status: typedParams.status,
308
- title: typedParams.title,
309
- });
310
- return result;
311
- },
312
- metadata: { description: 'Update a task', requiresAuth: true },
313
- });
314
- this.registerMethod('task.delete', {
315
- schema: methodSchemas['task.delete'],
316
- handler: async (params) => {
317
- const typedParams = params;
318
- const result = await handlers.handleTaskDelete(typedParams.task, { force: typedParams.confirm } // Map confirm to force parameter
319
- );
320
- return result;
321
- },
322
- metadata: { description: 'Delete a task', requiresAuth: true },
323
- });
324
- }
325
- /**
326
- * Handle incoming JSON-RPC message
327
- */
328
- async handleMessage(message) {
329
- try {
330
- if (isJsonRpcRequest(message)) {
331
- await this.handleRequest(message);
332
- }
333
- else if (isJsonRpcNotification(message)) {
334
- await this.handleNotification(message);
335
- }
336
- else if (isJsonRpcResponse(message)) {
337
- // Server doesn't handle responses
338
- console.error('Unexpected response message received');
339
- }
340
- }
341
- catch (error) {
342
- console.error('Error handling message:', error);
343
- }
344
- }
345
- /**
346
- * Handle JSON-RPC request
347
- */
348
- async handleRequest(request) {
349
- // Get fresh auth context for this request
350
- const authContext = await this.getAuthContext();
351
- const response = await this.registry.execute(request.id, request.method, request.params, authContext);
352
- await this.transport.send(response);
353
- }
354
- /**
355
- * Handle JSON-RPC notification
356
- */
357
- async handleNotification(notification) {
358
- // Get fresh auth context for this notification
359
- const authContext = await this.getAuthContext();
360
- // Notifications don't expect responses
361
- // Execute the method but don't send response
362
- await this.registry.execute('', // Notifications don't have IDs
363
- notification.method, notification.params, authContext);
364
- }
365
- /**
366
- * Send a progress notification for long-running operations
367
- */
368
- async sendProgress(id, message, progress) {
369
- const notification = {
370
- jsonrpc: '2.0',
371
- method: 'braingrid.progress',
372
- params: {
373
- id,
374
- message,
375
- progress,
376
- timestamp: new Date().toISOString(),
377
- },
378
- };
379
- await this.transport.send(notification);
380
- }
381
- /**
382
- * Handle batch request
383
- */
384
- async handleBatch(batch) {
385
- const responses = [];
386
- // Get fresh auth context for this batch
387
- const authContext = await this.getAuthContext();
388
- // Process each message in the batch
389
- for (const message of batch) {
390
- if (isJsonRpcRequest(message)) {
391
- // Requests expect responses
392
- const response = await this.registry.execute(message.id, message.method, message.params, authContext);
393
- responses.push(response);
394
- }
395
- else if (isJsonRpcNotification(message)) {
396
- // Notifications don't expect responses
397
- await this.registry.execute('', // Notifications don't have IDs
398
- message.method, message.params, authContext);
399
- // Don't add to responses array
400
- }
401
- }
402
- // Send batch response if there are any responses
403
- if (responses.length > 0) {
404
- await this.transport.send(responses);
405
- }
406
- }
407
- /**
408
- * Handle transport errors
409
- */
410
- handleTransportError(error) {
411
- console.error('Transport error:', error);
412
- }
413
- /**
414
- * Start the server
415
- */
416
- start() {
417
- if (this.isRunning)
418
- return;
419
- this.isRunning = true;
420
- }
421
- /**
422
- * Stop the server
423
- */
424
- async stop() {
425
- if (!this.isRunning)
426
- return;
427
- this.isRunning = false;
428
- await this.transport.close();
429
- }
430
- /**
431
- * Get registered methods for discovery
432
- */
433
- getMethods() {
434
- return this.registry.getMethods().map(m => m.name);
435
- }
436
- }
437
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/rpc/server.ts"],"names":[],"mappings":"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"}
@@ -1,84 +0,0 @@
1
- /**
2
- * STDIO Transport Layer for JSON-RPC 2.0
3
- * Handles newline-delimited JSON message parsing and sending over stdin/stdout
4
- */
5
- import { EventEmitter } from 'events';
6
- import type { Readable, Writable } from 'stream';
7
- import type { JsonRpcMessage, JsonRpcBatchRequest, JsonRpcBatchResponse, Transport } from '@braingrid/protocol';
8
- /**
9
- * STDIO Transport implementation for JSON-RPC communication
10
- */
11
- export declare class StdioTransport extends EventEmitter implements Transport {
12
- private readonly input;
13
- private readonly output;
14
- private buffer;
15
- private isClosed;
16
- private readonly useContentLength;
17
- private contentBuffer;
18
- private expectedContentLength;
19
- private headers;
20
- constructor(input?: Readable, output?: Writable, options?: {
21
- useContentLength?: boolean;
22
- });
23
- /**
24
- * Handle incoming data chunks from stdin
25
- */
26
- private handleData;
27
- /**
28
- * Handle data in newline-delimited mode
29
- */
30
- private handleNewlineDelimitedData;
31
- /**
32
- * Handle data in content-length mode (LSP-style)
33
- */
34
- private handleContentLengthData;
35
- /**
36
- * Parse LSP-style headers
37
- */
38
- private parseHeaders;
39
- /**
40
- * Process a complete JSON message string
41
- */
42
- private processMessage;
43
- /**
44
- * Process a single JSON-RPC message
45
- */
46
- private processSingleMessage;
47
- /**
48
- * Process a batch request (array of messages)
49
- */
50
- private processBatchRequest;
51
- /**
52
- * Send a JSON-RPC message or batch response
53
- */
54
- send(message: JsonRpcMessage | JsonRpcBatchResponse): Promise<void>;
55
- /**
56
- * Set up a handler for incoming messages
57
- */
58
- onMessage(handler: (message: JsonRpcMessage) => void): void;
59
- /**
60
- * Set up a handler for batch requests
61
- */
62
- onBatch(handler: (batch: JsonRpcBatchRequest) => void): void;
63
- /**
64
- * Set up a handler for transport errors
65
- */
66
- onError(handler: (error: Error) => void): void;
67
- /**
68
- * Handle transport errors
69
- */
70
- private handleError;
71
- /**
72
- * Handle transport close
73
- */
74
- private handleClose;
75
- /**
76
- * Close the transport
77
- */
78
- close(): Promise<void>;
79
- /**
80
- * Check if transport is closed
81
- */
82
- get closed(): boolean;
83
- }
84
- //# sourceMappingURL=transport.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/rpc/transport.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,KAAK,EACX,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,MAAM,qBAAqB,CAAC;AAG7B;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAa,YAAW,SAAS;IACpE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,qBAAqB,CAAuB;IACpD,OAAO,CAAC,OAAO,CAAkC;gBAGhD,KAAK,GAAE,QAAwB,EAC/B,MAAM,GAAE,QAAyB,EACjC,OAAO,GAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAO;IAkB7C;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA6D/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAuBtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CzE;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI;IAI3D;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GAAG,IAAI;IAI5D;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI9C;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB5B;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;CACD"}