@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
@@ -2,6 +2,7 @@ import { mkdirSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
3
  import { dirname, resolve } from 'node:path';
4
4
  import { DatabaseSync } from 'node:sqlite';
5
+ import { DEFAULT_REVIEW_PANEL_WIDTH_PX } from '../../shared/types.js';
5
6
  const DEFAULT_DB_PATH = resolve(homedir(), '.opencr', 'state.db');
6
7
  const isObject = (value) => {
7
8
  return typeof value === 'object' && value !== null;
@@ -9,6 +10,9 @@ const isObject = (value) => {
9
10
  const isSelectionSide = (value) => {
10
11
  return value === 'additions' || value === 'deletions';
11
12
  };
13
+ const isAgentBackendId = (value) => {
14
+ return value === 'opencode' || value === 'codex';
15
+ };
12
16
  const isPersistedRange = (value) => {
13
17
  if (!isObject(value)) {
14
18
  return false;
@@ -42,6 +46,74 @@ const isPersistedNote = (value) => {
42
46
  typeof value.fileLabel === 'string' &&
43
47
  isPersistedRange(value.range));
44
48
  };
49
+ const parseAgentSessionTarget = (value) => {
50
+ if (!isObject(value)) {
51
+ return null;
52
+ }
53
+ if (!isAgentBackendId(value.backendId)) {
54
+ return null;
55
+ }
56
+ if (value.modelId !== undefined && value.modelId !== null && typeof value.modelId !== 'string') {
57
+ return null;
58
+ }
59
+ if (value.variant !== undefined && value.variant !== null && typeof value.variant !== 'string') {
60
+ return null;
61
+ }
62
+ const modelId = value.modelId === null || typeof value.modelId === 'string' ? (value.modelId ?? null) : null;
63
+ const variant = value.variant === null || typeof value.variant === 'string' ? (value.variant ?? null) : null;
64
+ return {
65
+ backendId: value.backendId,
66
+ modelId,
67
+ variant,
68
+ };
69
+ };
70
+ const parsePersistedAgentSession = (value) => {
71
+ if (!isObject(value)) {
72
+ return null;
73
+ }
74
+ if (typeof value.id !== 'string' ||
75
+ typeof value.title !== 'string' ||
76
+ typeof value.prompt !== 'string' ||
77
+ typeof value.createdAt !== 'string' ||
78
+ typeof value.updatedAt !== 'string' ||
79
+ typeof value.fileId !== 'string' ||
80
+ typeof value.fileLabel !== 'string' ||
81
+ !isPersistedRange(value.range)) {
82
+ return null;
83
+ }
84
+ const legacyOpencodeSessionId = typeof value.opencodeSessionId === 'string' ? value.opencodeSessionId : null;
85
+ const backendId = isAgentBackendId(value.backendId)
86
+ ? value.backendId
87
+ : legacyOpencodeSessionId != null
88
+ ? 'opencode'
89
+ : null;
90
+ const backendSessionId = typeof value.backendSessionId === 'string' ? value.backendSessionId : legacyOpencodeSessionId;
91
+ if (backendId == null || backendSessionId == null) {
92
+ return null;
93
+ }
94
+ if (value.modelId !== undefined && value.modelId !== null && typeof value.modelId !== 'string') {
95
+ return null;
96
+ }
97
+ if (value.variant !== undefined && value.variant !== null && typeof value.variant !== 'string') {
98
+ return null;
99
+ }
100
+ const modelId = value.modelId === null || typeof value.modelId === 'string' ? (value.modelId ?? null) : null;
101
+ const variant = value.variant === null || typeof value.variant === 'string' ? (value.variant ?? null) : null;
102
+ return {
103
+ id: value.id,
104
+ backendId,
105
+ backendSessionId,
106
+ modelId,
107
+ variant,
108
+ title: value.title,
109
+ prompt: value.prompt,
110
+ createdAt: value.createdAt,
111
+ updatedAt: value.updatedAt,
112
+ fileId: value.fileId,
113
+ fileLabel: value.fileLabel,
114
+ range: value.range,
115
+ };
116
+ };
45
117
  const parseWorkspace = (json) => {
46
118
  try {
47
119
  const parsed = JSON.parse(json);
@@ -51,6 +123,24 @@ const parseWorkspace = (json) => {
51
123
  if (!Array.isArray(parsed.notes) || !parsed.notes.every(isPersistedNote)) {
52
124
  return null;
53
125
  }
126
+ if (parsed.agentSessions !== undefined && !Array.isArray(parsed.agentSessions)) {
127
+ return null;
128
+ }
129
+ const agentSessions = [];
130
+ for (const agentSession of parsed.agentSessions ?? []) {
131
+ const parsedSession = parsePersistedAgentSession(agentSession);
132
+ if (parsedSession == null) {
133
+ return null;
134
+ }
135
+ agentSessions.push(parsedSession);
136
+ }
137
+ let agentDraftTarget = null;
138
+ if (parsed.agentDraftTarget !== undefined && parsed.agentDraftTarget !== null) {
139
+ agentDraftTarget = parseAgentSessionTarget(parsed.agentDraftTarget);
140
+ if (agentDraftTarget == null) {
141
+ return null;
142
+ }
143
+ }
54
144
  if (parsed.draftSelection !== null && !isPersistedSelection(parsed.draftSelection)) {
55
145
  return null;
56
146
  }
@@ -60,18 +150,39 @@ const parseWorkspace = (json) => {
60
150
  if (parsed.activeNoteId !== null && typeof parsed.activeNoteId !== 'string') {
61
151
  return null;
62
152
  }
153
+ if (parsed.activeAgentSessionId !== undefined &&
154
+ parsed.activeAgentSessionId !== null &&
155
+ typeof parsed.activeAgentSessionId !== 'string') {
156
+ return null;
157
+ }
158
+ if (parsed.activeSidebarPanel !== undefined &&
159
+ parsed.activeSidebarPanel !== 'notes' &&
160
+ parsed.activeSidebarPanel !== 'agents') {
161
+ return null;
162
+ }
63
163
  if (typeof parsed.isPanelOpen !== 'boolean') {
64
164
  return null;
65
165
  }
166
+ if (parsed.panelWidthPx !== undefined &&
167
+ (typeof parsed.panelWidthPx !== 'number' ||
168
+ !Number.isFinite(parsed.panelWidthPx) ||
169
+ parsed.panelWidthPx <= 0)) {
170
+ return null;
171
+ }
66
172
  if (parsed.diffViewMode !== 'split' && parsed.diffViewMode !== 'unified') {
67
173
  return null;
68
174
  }
69
175
  return {
70
176
  notes: parsed.notes,
177
+ agentSessions,
178
+ agentDraftTarget,
71
179
  draftSelection: parsed.draftSelection,
72
180
  draftNoteBody: parsed.draftNoteBody,
73
181
  activeNoteId: parsed.activeNoteId,
182
+ activeAgentSessionId: parsed.activeAgentSessionId ?? null,
183
+ activeSidebarPanel: parsed.activeSidebarPanel ?? 'notes',
74
184
  isPanelOpen: parsed.isPanelOpen,
185
+ panelWidthPx: parsed.panelWidthPx ?? DEFAULT_REVIEW_PANEL_WIDTH_PX,
75
186
  diffViewMode: parsed.diffViewMode,
76
187
  };
77
188
  }
@@ -79,6 +190,16 @@ const parseWorkspace = (json) => {
79
190
  return null;
80
191
  }
81
192
  };
193
+ const WORKSPACES_TABLE_SQL = `
194
+ CREATE TABLE IF NOT EXISTS workspaces (
195
+ target_id TEXT PRIMARY KEY,
196
+ last_saved_snapshot_id TEXT NOT NULL,
197
+ revision INTEGER NOT NULL,
198
+ state_json TEXT NOT NULL,
199
+ created_at TEXT NOT NULL,
200
+ updated_at TEXT NOT NULL
201
+ ) STRICT;
202
+ `;
82
203
  export class ReviewWorkspaceRepository {
83
204
  db;
84
205
  constructor(databasePath = DEFAULT_DB_PATH) {
@@ -89,141 +210,40 @@ export class ReviewWorkspaceRepository {
89
210
  });
90
211
  this.db.exec('PRAGMA journal_mode = WAL;');
91
212
  this.db.exec('PRAGMA foreign_keys = ON;');
92
- this.db.exec(`
93
- CREATE TABLE IF NOT EXISTS review_targets (
94
- target_id TEXT PRIMARY KEY,
95
- source_kind TEXT NOT NULL,
96
- source_label TEXT NOT NULL,
97
- source_json TEXT NOT NULL,
98
- created_at TEXT NOT NULL,
99
- updated_at TEXT NOT NULL,
100
- last_snapshot_id TEXT
101
- ) STRICT;
102
-
103
- CREATE TABLE IF NOT EXISTS review_snapshots (
104
- snapshot_id TEXT PRIMARY KEY,
105
- target_id TEXT NOT NULL,
106
- patch_bytes INTEGER NOT NULL,
107
- patch_lines INTEGER NOT NULL,
108
- created_at TEXT NOT NULL,
109
- last_opened_at TEXT NOT NULL,
110
- FOREIGN KEY(target_id) REFERENCES review_targets(target_id) ON DELETE CASCADE
111
- ) STRICT;
112
-
113
- CREATE TABLE IF NOT EXISTS workspaces (
114
- snapshot_id TEXT PRIMARY KEY,
115
- target_id TEXT NOT NULL,
116
- revision INTEGER NOT NULL,
117
- note_count INTEGER NOT NULL,
118
- state_json TEXT NOT NULL,
119
- created_at TEXT NOT NULL,
120
- updated_at TEXT NOT NULL,
121
- FOREIGN KEY(snapshot_id) REFERENCES review_snapshots(snapshot_id) ON DELETE CASCADE,
122
- FOREIGN KEY(target_id) REFERENCES review_targets(target_id) ON DELETE CASCADE
123
- ) STRICT;
124
-
125
- CREATE INDEX IF NOT EXISTS workspaces_target_updated_idx
126
- ON workspaces(target_id, updated_at DESC);
127
- `);
213
+ this.migrateSchema();
214
+ this.db.exec(WORKSPACES_TABLE_SQL);
128
215
  }
129
216
  close() {
130
217
  this.db.close();
131
218
  }
132
- initializeSession(input) {
133
- const now = new Date().toISOString();
134
- this.db.exec('BEGIN TRANSACTION');
135
- try {
136
- this.db
137
- .prepare(`
138
- INSERT INTO review_targets (
139
- target_id,
140
- source_kind,
141
- source_label,
142
- source_json,
143
- created_at,
144
- updated_at,
145
- last_snapshot_id
146
- ) VALUES (?, ?, ?, ?, ?, ?, ?)
147
- ON CONFLICT(target_id) DO UPDATE SET
148
- source_kind = excluded.source_kind,
149
- source_label = excluded.source_label,
150
- source_json = excluded.source_json,
151
- updated_at = excluded.updated_at,
152
- last_snapshot_id = excluded.last_snapshot_id
153
- `)
154
- .run(input.identity.targetId, input.identity.sourceKind, input.identity.sourceLabel, input.identity.sourceJson, now, now, input.identity.snapshotId);
155
- this.db
156
- .prepare(`
157
- INSERT INTO review_snapshots (
158
- snapshot_id,
159
- target_id,
160
- patch_bytes,
161
- patch_lines,
162
- created_at,
163
- last_opened_at
164
- ) VALUES (?, ?, ?, ?, ?, ?)
165
- ON CONFLICT(snapshot_id) DO UPDATE SET
166
- target_id = excluded.target_id,
167
- patch_bytes = excluded.patch_bytes,
168
- patch_lines = excluded.patch_lines,
169
- last_opened_at = excluded.last_opened_at
170
- `)
171
- .run(input.identity.snapshotId, input.identity.targetId, input.identity.patchBytes, input.identity.patchLineCount, now, now);
172
- if (input.clearSnapshotWorkspace) {
173
- this.db
174
- .prepare('DELETE FROM workspaces WHERE snapshot_id = ?')
175
- .run(input.identity.snapshotId);
176
- }
177
- this.db.exec('COMMIT');
178
- }
179
- catch (error) {
180
- this.db.exec('ROLLBACK');
181
- throw error;
182
- }
183
- if (input.clearSnapshotWorkspace) {
219
+ loadWorkspace(targetId) {
220
+ const row = this.getWorkspaceRow(targetId);
221
+ if (row == null) {
184
222
  return {
185
- restoreKind: 'clean',
186
223
  revision: null,
224
+ savedSnapshotId: null,
187
225
  workspace: null,
188
- previousWorkspace: null,
189
226
  };
190
227
  }
191
- return this.getHydration({
192
- targetId: input.identity.targetId,
193
- snapshotId: input.identity.snapshotId,
194
- });
195
- }
196
- getHydration(input) {
197
- const currentWorkspace = this.getWorkspaceRow(input.snapshotId);
198
- if (currentWorkspace != null) {
199
- const parsedWorkspace = parseWorkspace(currentWorkspace.state_json);
200
- if (parsedWorkspace != null) {
201
- return {
202
- restoreKind: 'exact',
203
- revision: currentWorkspace.revision,
204
- workspace: parsedWorkspace,
205
- previousWorkspace: null,
206
- };
207
- }
208
- }
209
- const previousWorkspace = this.getLatestWorkspaceSummary(input.targetId, input.snapshotId);
210
- if (previousWorkspace != null) {
228
+ const workspace = parseWorkspace(row.state_json);
229
+ if (workspace == null) {
211
230
  return {
212
- restoreKind: 'target-changed',
213
231
  revision: null,
232
+ savedSnapshotId: null,
214
233
  workspace: null,
215
- previousWorkspace,
216
234
  };
217
235
  }
218
236
  return {
219
- restoreKind: 'empty',
220
- revision: null,
221
- workspace: null,
222
- previousWorkspace: null,
237
+ revision: row.revision,
238
+ savedSnapshotId: row.last_saved_snapshot_id,
239
+ workspace,
223
240
  };
224
241
  }
242
+ clearWorkspace(targetId) {
243
+ this.db.prepare('DELETE FROM workspaces WHERE target_id = ?').run(targetId);
244
+ }
225
245
  saveWorkspace(input) {
226
- const existingWorkspace = this.getWorkspaceRow(input.snapshotId);
246
+ const existingWorkspace = this.getWorkspaceRow(input.targetId);
227
247
  if (existingWorkspace == null) {
228
248
  if (input.baseRevision !== 0) {
229
249
  return {
@@ -236,16 +256,15 @@ export class ReviewWorkspaceRepository {
236
256
  this.db
237
257
  .prepare(`
238
258
  INSERT INTO workspaces (
239
- snapshot_id,
240
259
  target_id,
260
+ last_saved_snapshot_id,
241
261
  revision,
242
- note_count,
243
262
  state_json,
244
263
  created_at,
245
264
  updated_at
246
- ) VALUES (?, ?, ?, ?, ?, ?, ?)
265
+ ) VALUES (?, ?, ?, ?, ?, ?)
247
266
  `)
248
- .run(input.snapshotId, input.targetId, 1, input.workspace.notes.length, JSON.stringify(input.workspace), now, now);
267
+ .run(input.targetId, input.snapshotId, 1, JSON.stringify(input.workspace), now, now);
249
268
  return {
250
269
  status: 'saved',
251
270
  revision: 1,
@@ -264,46 +283,117 @@ export class ReviewWorkspaceRepository {
264
283
  this.db
265
284
  .prepare(`
266
285
  UPDATE workspaces
267
- SET revision = ?,
268
- note_count = ?,
286
+ SET last_saved_snapshot_id = ?,
287
+ revision = ?,
269
288
  state_json = ?,
270
289
  updated_at = ?
271
- WHERE snapshot_id = ?
290
+ WHERE target_id = ?
272
291
  `)
273
- .run(nextRevision, input.workspace.notes.length, JSON.stringify(input.workspace), now, input.snapshotId);
292
+ .run(input.snapshotId, nextRevision, JSON.stringify(input.workspace), now, input.targetId);
274
293
  return {
275
294
  status: 'saved',
276
295
  revision: nextRevision,
277
296
  };
278
297
  }
279
- getWorkspaceRow(snapshotId) {
280
- return this.db
298
+ migrateSchema() {
299
+ const workspaceColumns = this.getTableColumns('workspaces');
300
+ if (workspaceColumns.length === 0) {
301
+ this.dropLegacyTables();
302
+ return;
303
+ }
304
+ const isLegacySchema = workspaceColumns.includes('snapshot_id') || !workspaceColumns.includes('last_saved_snapshot_id');
305
+ if (isLegacySchema) {
306
+ this.migrateLegacyWorkspaceTable();
307
+ return;
308
+ }
309
+ this.dropLegacyTables();
310
+ }
311
+ migrateLegacyWorkspaceTable() {
312
+ const legacyRows = this.db
281
313
  .prepare(`
282
- SELECT revision, state_json
314
+ SELECT target_id, snapshot_id, revision, state_json, created_at, updated_at
283
315
  FROM workspaces
284
- WHERE snapshot_id = ?
316
+ ORDER BY updated_at DESC
285
317
  `)
286
- .get(snapshotId) ?? null;
318
+ .all() ?? [];
319
+ this.db.exec('BEGIN TRANSACTION');
320
+ try {
321
+ this.db.exec('DROP TABLE IF EXISTS workspaces_v2');
322
+ this.db.exec(`
323
+ CREATE TABLE workspaces_v2 (
324
+ target_id TEXT PRIMARY KEY,
325
+ last_saved_snapshot_id TEXT NOT NULL,
326
+ revision INTEGER NOT NULL,
327
+ state_json TEXT NOT NULL,
328
+ created_at TEXT NOT NULL,
329
+ updated_at TEXT NOT NULL
330
+ ) STRICT;
331
+ `);
332
+ const insertWorkspace = this.db.prepare(`
333
+ INSERT INTO workspaces_v2 (
334
+ target_id,
335
+ last_saved_snapshot_id,
336
+ revision,
337
+ state_json,
338
+ created_at,
339
+ updated_at
340
+ ) VALUES (?, ?, ?, ?, ?, ?)
341
+ `);
342
+ const migratedTargetIds = new Set();
343
+ for (const row of legacyRows) {
344
+ if (migratedTargetIds.has(row.target_id)) {
345
+ continue;
346
+ }
347
+ if (parseWorkspace(row.state_json) == null) {
348
+ continue;
349
+ }
350
+ insertWorkspace.run(row.target_id, row.snapshot_id, row.revision, row.state_json, row.created_at, row.updated_at);
351
+ migratedTargetIds.add(row.target_id);
352
+ }
353
+ this.db.exec('DROP TABLE workspaces');
354
+ this.dropLegacyTables();
355
+ this.db.exec('ALTER TABLE workspaces_v2 RENAME TO workspaces');
356
+ this.db.exec('COMMIT');
357
+ }
358
+ catch (error) {
359
+ this.db.exec('ROLLBACK');
360
+ throw error;
361
+ }
362
+ }
363
+ dropLegacyTables() {
364
+ if (this.tableExists('review_snapshots')) {
365
+ this.db.exec('DROP TABLE review_snapshots');
366
+ }
367
+ if (this.tableExists('review_targets')) {
368
+ this.db.exec('DROP TABLE review_targets');
369
+ }
287
370
  }
288
- getLatestWorkspaceSummary(targetId, excludeSnapshotId) {
371
+ tableExists(tableName) {
289
372
  const row = this.db
290
373
  .prepare(`
291
- SELECT snapshot_id, note_count, updated_at
374
+ SELECT name
375
+ FROM sqlite_master
376
+ WHERE type = 'table'
377
+ AND name = ?
378
+ `)
379
+ .get(tableName);
380
+ return row != null;
381
+ }
382
+ getTableColumns(tableName) {
383
+ if (!this.tableExists(tableName)) {
384
+ return [];
385
+ }
386
+ const rows = this.db.prepare(`PRAGMA table_info(${tableName})`).all();
387
+ return rows.map((row) => row.name);
388
+ }
389
+ getWorkspaceRow(targetId) {
390
+ return this.db
391
+ .prepare(`
392
+ SELECT revision, last_saved_snapshot_id, state_json
292
393
  FROM workspaces
293
394
  WHERE target_id = ?
294
- AND snapshot_id <> ?
295
- ORDER BY updated_at DESC
296
- LIMIT 1
297
395
  `)
298
- .get(targetId, excludeSnapshotId) ?? null;
299
- if (row == null) {
300
- return null;
301
- }
302
- return {
303
- snapshotId: row.snapshot_id,
304
- noteCount: row.note_count,
305
- updatedAt: row.updated_at,
306
- };
396
+ .get(targetId) ?? null;
307
397
  }
308
398
  }
309
399
  //# sourceMappingURL=repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../src/core/workspace/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../src/core/workspace/repository.ts"],"names":[],"mappings":"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"}