@jawkx1999/opencr 0.1.0-alpha.3 → 0.1.0-alpha.4

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 (32) hide show
  1. package/dist/client/assets/index-C9jeaZcr.css +1 -0
  2. package/dist/client/assets/index-DF6LDO7P.js +1978 -0
  3. package/dist/client/index.html +3 -3
  4. package/dist/server/cli/index.js +13 -19
  5. package/dist/server/cli/index.js.map +1 -1
  6. package/dist/server/core/agents/opencode.js +685 -0
  7. package/dist/server/core/agents/opencode.js.map +1 -0
  8. package/dist/server/core/reviewDiagnostics.js +116 -0
  9. package/dist/server/core/reviewDiagnostics.js.map +1 -0
  10. package/dist/server/core/reviewPayload.js +3 -0
  11. package/dist/server/core/reviewPayload.js.map +1 -1
  12. package/dist/server/core/reviewRequest.js +4 -1
  13. package/dist/server/core/reviewRequest.js.map +1 -1
  14. package/dist/server/core/reviewSource/commitish.js +1 -1
  15. package/dist/server/core/reviewSource/commitish.js.map +1 -1
  16. package/dist/server/core/reviewSource/githubPr.js +31 -0
  17. package/dist/server/core/reviewSource/githubPr.js.map +1 -1
  18. package/dist/server/core/reviewSource/index.js +2 -2
  19. package/dist/server/core/reviewSource/index.js.map +1 -1
  20. package/dist/server/core/server.js +2 -0
  21. package/dist/server/core/server.js.map +1 -1
  22. package/dist/server/core/workspace/repository.js +234 -144
  23. package/dist/server/core/workspace/repository.js.map +1 -1
  24. package/dist/server/server/app.js +158 -1
  25. package/dist/server/server/app.js.map +1 -1
  26. package/dist/server/shared/types.js +1 -1
  27. package/dist/server/shared/types.js.map +1 -1
  28. package/package.json +5 -4
  29. package/dist/client/assets/index-BnzvJWAx.js +0 -1974
  30. package/dist/client/assets/index-FRegO2ve.css +0 -1
  31. package/dist/server/cli/utils.js +0 -2
  32. package/dist/server/cli/utils.js.map +0 -1
@@ -18,6 +18,41 @@ const getRequestApiBase = (request) => {
18
18
  }
19
19
  return `${request.protocol}://${host}`;
20
20
  };
21
+ const isObject = (value) => {
22
+ return typeof value === 'object' && value !== null;
23
+ };
24
+ const isSelectionSide = (value) => {
25
+ return value === 'additions' || value === 'deletions';
26
+ };
27
+ const isAgentBackendId = (value) => {
28
+ return value === 'opencode' || value === 'codex';
29
+ };
30
+ const isAgentSessionTarget = (value) => {
31
+ if (!isObject(value)) {
32
+ return false;
33
+ }
34
+ const hasValidModel = value.modelId === null || typeof value.modelId === 'string';
35
+ const hasValidVariant = value.variant === null || typeof value.variant === 'string';
36
+ return isAgentBackendId(value.backendId) && hasValidModel && hasValidVariant;
37
+ };
38
+ const isPersistedSelection = (value) => {
39
+ if (!isObject(value)) {
40
+ return false;
41
+ }
42
+ if (typeof value.fileId !== 'string' || typeof value.fileLabel !== 'string' || !isObject(value.range)) {
43
+ return false;
44
+ }
45
+ if (typeof value.range.start !== 'number' || typeof value.range.end !== 'number') {
46
+ return false;
47
+ }
48
+ if (value.range.side !== undefined && !isSelectionSide(value.range.side)) {
49
+ return false;
50
+ }
51
+ if (value.range.endSide !== undefined && !isSelectionSide(value.range.endSide)) {
52
+ return false;
53
+ }
54
+ return true;
55
+ };
21
56
  const sendClient = async (request, reply) => {
22
57
  if (!existsSync(clientIndexPath)) {
23
58
  if (devUiUrl) {
@@ -38,12 +73,24 @@ const sendClient = async (request, reply) => {
38
73
  };
39
74
  export async function createApp(options) {
40
75
  const app = Fastify({ logger: false });
76
+ const getAgentSessionParams = (request) => {
77
+ const params = request.params;
78
+ const backendId = params.backendId?.trim() ?? '';
79
+ const sessionId = params.sessionId?.trim() ?? '';
80
+ if (!isAgentBackendId(backendId) || sessionId.length === 0) {
81
+ return null;
82
+ }
83
+ return {
84
+ backendId,
85
+ sessionId,
86
+ };
87
+ };
41
88
  app.addHook('onRequest', (request, reply, done) => {
42
89
  if (request.url.startsWith('/api/')) {
43
90
  const origin = request.headers.origin;
44
91
  reply.header('Access-Control-Allow-Origin', origin ?? '*');
45
92
  reply.header('Vary', 'Origin');
46
- reply.header('Access-Control-Allow-Methods', 'GET, PUT, OPTIONS');
93
+ reply.header('Access-Control-Allow-Methods', 'GET, POST, PUT, OPTIONS');
47
94
  reply.header('Access-Control-Allow-Headers', 'Content-Type');
48
95
  }
49
96
  done();
@@ -53,6 +100,58 @@ export async function createApp(options) {
53
100
  });
54
101
  app.get('/api/debug-state', async () => options.debugState);
55
102
  app.get('/api/review', async () => options.getReviewPayload());
103
+ app.get('/api/agents/status', async () => options.agentService.getStatus());
104
+ app.get('/api/agents/catalog', async (_request, reply) => {
105
+ try {
106
+ return await options.agentService.getCatalog();
107
+ }
108
+ catch (error) {
109
+ const message = error instanceof Error ? error.message : String(error);
110
+ return reply.code(502).send({ error: message });
111
+ }
112
+ });
113
+ app.get('/api/agents/events', async (request, reply) => {
114
+ reply.hijack();
115
+ reply.raw.writeHead(200, {
116
+ 'Content-Type': 'text/event-stream',
117
+ 'Cache-Control': 'no-cache, no-transform',
118
+ Connection: 'keep-alive',
119
+ 'Access-Control-Allow-Origin': request.headers.origin ?? '*',
120
+ Vary: 'Origin',
121
+ });
122
+ const unsubscribe = options.agentService.subscribeEvents((event) => {
123
+ if (!reply.raw.writableEnded) {
124
+ reply.raw.write(`data: ${JSON.stringify(event)}\n\n`);
125
+ }
126
+ });
127
+ const heartbeat = setInterval(() => {
128
+ if (!reply.raw.writableEnded) {
129
+ reply.raw.write('data: {"kind":"connected"}\n\n');
130
+ }
131
+ }, 10_000);
132
+ request.raw.on('close', () => {
133
+ clearInterval(heartbeat);
134
+ unsubscribe();
135
+ });
136
+ });
137
+ app.get('/api/agents/session/:backendId/:sessionId/status', async (request, reply) => {
138
+ const session = getAgentSessionParams(request);
139
+ if (session == null) {
140
+ return reply.code(400).send({ error: 'Invalid session id.' });
141
+ }
142
+ try {
143
+ return {
144
+ status: await options.agentService.getSessionStatus({
145
+ backendId: session.backendId,
146
+ sessionId: session.sessionId,
147
+ }),
148
+ };
149
+ }
150
+ catch (error) {
151
+ const message = error instanceof Error ? error.message : String(error);
152
+ return reply.code(502).send({ error: message });
153
+ }
154
+ });
56
155
  app.put('/api/workspace', async (request, reply) => {
57
156
  const body = request.body;
58
157
  const baseRevision = body?.baseRevision;
@@ -69,6 +168,64 @@ export async function createApp(options) {
69
168
  workspace,
70
169
  });
71
170
  });
171
+ app.post('/api/agents/session', async (request, reply) => {
172
+ const body = request.body;
173
+ const prompt = typeof body?.prompt === 'string' ? body.prompt.trim() : '';
174
+ const selection = body?.selection;
175
+ const target = body?.target;
176
+ if (prompt.length === 0 || !isPersistedSelection(selection) || (target !== undefined && !isAgentSessionTarget(target))) {
177
+ return reply.code(400).send({ error: 'Invalid agent session payload.' });
178
+ }
179
+ try {
180
+ return await options.agentService.createSession({
181
+ prompt,
182
+ selection,
183
+ ...(target === undefined ? {} : { target }),
184
+ diffPatch: options.getReviewPayload().diff.patch,
185
+ });
186
+ }
187
+ catch (error) {
188
+ const message = error instanceof Error ? error.message : String(error);
189
+ return reply.code(502).send({ error: message });
190
+ }
191
+ });
192
+ app.get('/api/agents/session/:backendId/:sessionId/messages', async (request, reply) => {
193
+ const session = getAgentSessionParams(request);
194
+ if (session == null) {
195
+ return reply.code(400).send({ error: 'Invalid session id.' });
196
+ }
197
+ try {
198
+ return await options.agentService.listMessages({
199
+ backendId: session.backendId,
200
+ sessionId: session.sessionId,
201
+ });
202
+ }
203
+ catch (error) {
204
+ const message = error instanceof Error ? error.message : String(error);
205
+ return reply.code(502).send({ error: message });
206
+ }
207
+ });
208
+ app.post('/api/agents/session/:backendId/:sessionId/message', async (request, reply) => {
209
+ const body = request.body;
210
+ const prompt = typeof body?.prompt === 'string' ? body.prompt.trim() : '';
211
+ const session = getAgentSessionParams(request);
212
+ if (session == null || prompt.length === 0) {
213
+ return reply.code(400).send({ error: 'Invalid agent prompt payload.' });
214
+ }
215
+ try {
216
+ return await options.agentService.sendMessage({
217
+ backendId: session.backendId,
218
+ sessionId: session.sessionId,
219
+ request: {
220
+ prompt,
221
+ },
222
+ });
223
+ }
224
+ catch (error) {
225
+ const message = error instanceof Error ? error.message : String(error);
226
+ return reply.code(502).send({ error: message });
227
+ }
228
+ });
72
229
  app.get('/api/heartbeat', async (request, reply) => {
73
230
  reply.hijack();
74
231
  options.debugState.server.activeHeartbeatClients += 1;
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export {};
1
+ export const DEFAULT_REVIEW_PANEL_WIDTH_PX = 448;
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"AAkJA,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jawkx1999/opencr",
3
- "version": "0.1.0-alpha.3",
3
+ "version": "0.1.0-alpha.4",
4
4
  "description": "CLI-launched local code review viewer with a web UI",
5
5
  "type": "module",
6
6
  "main": "./dist/server/cli/index.js",
@@ -28,7 +28,8 @@
28
28
  "publish:alpha": "npm version prerelease --preid alpha --no-git-tag-version && npm publish --tag alpha --access public",
29
29
  "prepack": "npm run build",
30
30
  "start": "node dist/server/cli/index.js",
31
- "typecheck": "tsc --noEmit"
31
+ "typecheck": "tsc --noEmit",
32
+ "knip": "knip"
32
33
  },
33
34
  "keywords": [
34
35
  "cli",
@@ -56,9 +57,8 @@
56
57
  "open": "^11.0.0",
57
58
  "react": "^19.2.4",
58
59
  "react-dom": "^19.2.4",
59
- "react-resizable-panels": "^4.7.3",
60
+ "sonner": "^2.0.7",
60
61
  "tailwind-merge": "^3.5.0",
61
- "tw-animate-css": "^1.4.0",
62
62
  "zustand": "^5.0.12"
63
63
  },
64
64
  "devDependencies": {
@@ -68,6 +68,7 @@
68
68
  "@types/react": "^19.2.14",
69
69
  "@types/react-dom": "^19.2.3",
70
70
  "@vitejs/plugin-react": "^5.2.0",
71
+ "knip": "^6.0.1",
71
72
  "oxlint": "^1.56.0",
72
73
  "tailwindcss": "^4.2.1",
73
74
  "tsx": "^4.21.0",