@ccdd/project 2.0.1 → 3.0.0

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 (101) hide show
  1. package/README.md +8 -8
  2. package/dist/monitor-ui/assets/{GraphView-UjtW4QRC.js → GraphView-CzM-UdPe.js} +3 -3
  3. package/dist/monitor-ui/assets/ValidationView-C3G5cwXp.js +1 -0
  4. package/dist/monitor-ui/assets/ValidationView-p5r8lX18.css +1 -0
  5. package/dist/monitor-ui/assets/{elk-api-yRi2AOS6.js → elk-api-DDn2L4-3.js} +1 -1
  6. package/dist/monitor-ui/assets/{elk.bundled-CtLobQTy.js → elk.bundled-Bmx50hLH.js} +1 -1
  7. package/dist/monitor-ui/assets/{index-Cpm0fC0p.js → index-B4RYcPAo.js} +6 -6
  8. package/dist/monitor-ui/assets/index-SA3sxGLr.css +1 -0
  9. package/dist/monitor-ui/index.html +4 -4
  10. package/dist/scripts/prepare-demo.js +16 -16
  11. package/dist/scripts/prepare-demo.js.map +1 -1
  12. package/dist/src/broker/human-claims.d.ts +26 -0
  13. package/dist/src/broker/human-claims.js +104 -0
  14. package/dist/src/broker/human-claims.js.map +1 -0
  15. package/dist/src/broker/index.d.ts +23 -1
  16. package/dist/src/broker/index.js +89 -15
  17. package/dist/src/broker/index.js.map +1 -1
  18. package/dist/src/cli.js +4 -3
  19. package/dist/src/cli.js.map +1 -1
  20. package/dist/src/contracts.d.ts +3 -0
  21. package/dist/src/doctor/index.js +16 -16
  22. package/dist/src/doctor/index.js.map +1 -1
  23. package/dist/src/executors/auth.js +7 -7
  24. package/dist/src/executors/auth.js.map +1 -1
  25. package/dist/src/executors/human-preparation.d.ts +18 -0
  26. package/dist/src/executors/human-preparation.js +47 -0
  27. package/dist/src/executors/human-preparation.js.map +1 -0
  28. package/dist/src/executors/index.js +13 -13
  29. package/dist/src/executors/index.js.map +1 -1
  30. package/dist/src/executors/pi.js +24 -24
  31. package/dist/src/executors/pi.js.map +1 -1
  32. package/dist/src/monitor/actions.d.ts +1 -1
  33. package/dist/src/monitor/actions.js +8 -8
  34. package/dist/src/monitor/actions.js.map +1 -1
  35. package/dist/src/monitor/server.js +88 -70
  36. package/dist/src/monitor/server.js.map +1 -1
  37. package/dist/src/monitor/store.js +29 -24
  38. package/dist/src/monitor/store.js.map +1 -1
  39. package/dist/src/monitor/types.d.ts +5 -0
  40. package/dist/src/monitor/ui/api.js +3 -3
  41. package/dist/src/monitor/ui/api.js.map +1 -1
  42. package/dist/src/monitor/ui/critic-presentation.js +12 -12
  43. package/dist/src/monitor/ui/critic-presentation.js.map +1 -1
  44. package/dist/src/monitor/ui/format.js +8 -8
  45. package/dist/src/monitor/ui/format.js.map +1 -1
  46. package/dist/src/monitor/ui/tool-input.js +9 -9
  47. package/dist/src/monitor/ui/tool-input.js.map +1 -1
  48. package/dist/src/project/cli.js +6 -1
  49. package/dist/src/project/cli.js.map +1 -1
  50. package/dist/src/project/identity.js +5 -1
  51. package/dist/src/project/identity.js.map +1 -1
  52. package/dist/src/project/index.d.ts +3 -0
  53. package/dist/src/project/index.js +2 -0
  54. package/dist/src/project/index.js.map +1 -1
  55. package/dist/src/project/store.js +3 -2
  56. package/dist/src/project/store.js.map +1 -1
  57. package/dist/src/review/cli.d.ts +8 -0
  58. package/dist/src/review/cli.js +136 -0
  59. package/dist/src/review/cli.js.map +1 -0
  60. package/dist/src/review/client.d.ts +30 -0
  61. package/dist/src/review/client.js +191 -0
  62. package/dist/src/review/client.js.map +1 -0
  63. package/dist/src/review/local-claim.d.ts +5 -0
  64. package/dist/src/review/local-claim.js +16 -0
  65. package/dist/src/review/local-claim.js.map +1 -0
  66. package/dist/src/review/server.d.ts +11 -0
  67. package/dist/src/review/server.js +248 -0
  68. package/dist/src/review/server.js.map +1 -0
  69. package/dist/src/review/types.d.ts +10 -0
  70. package/dist/src/review/types.js +17 -0
  71. package/dist/src/review/types.js.map +1 -0
  72. package/dist/src/tools/contracts.d.ts +22 -0
  73. package/dist/src/tools/environment-host.d.ts +1 -0
  74. package/dist/src/tools/environment-host.js +32 -0
  75. package/dist/src/tools/environment-host.js.map +1 -0
  76. package/dist/src/tools/environment.d.ts +18 -0
  77. package/dist/src/tools/environment.js +116 -0
  78. package/dist/src/tools/environment.js.map +1 -0
  79. package/dist/src/tools/inputs.d.ts +7 -0
  80. package/dist/src/tools/inputs.js +64 -0
  81. package/dist/src/tools/inputs.js.map +1 -0
  82. package/dist/src/tools/manifest.d.ts +4 -0
  83. package/dist/src/tools/manifest.js +28 -0
  84. package/dist/src/tools/manifest.js.map +1 -0
  85. package/dist/src/tools/runner.js +4 -2
  86. package/dist/src/tools/runner.js.map +1 -1
  87. package/dist/src/tools/runtime-host.js +27 -3
  88. package/dist/src/tools/runtime-host.js.map +1 -1
  89. package/dist/src/tools/schema.d.ts +3 -1
  90. package/dist/src/tools/schema.js +33 -1
  91. package/dist/src/tools/schema.js.map +1 -1
  92. package/dist/src/workspaces/index.d.ts +27 -0
  93. package/dist/src/workspaces/index.js +2 -0
  94. package/dist/src/workspaces/index.js.map +1 -1
  95. package/dist/src/workspaces/transfer.d.ts +52 -0
  96. package/dist/src/workspaces/transfer.js +372 -0
  97. package/dist/src/workspaces/transfer.js.map +1 -0
  98. package/package.json +2 -2
  99. package/dist/monitor-ui/assets/ValidationView-CC1FvqUl.js +0 -1
  100. package/dist/monitor-ui/assets/ValidationView-DWl4b8Ug.css +0 -1
  101. package/dist/monitor-ui/assets/index-CUzg-dht.css +0 -1
@@ -10,6 +10,7 @@ import { reopenWorkspace } from '../workspaces/index.js';
10
10
  import { createMonitorStore } from './store.js';
11
11
  import { inspectProject } from '../project/index.js';
12
12
  import { MonitorActionError, authorizeWorkspace, claimReview, completeReview, executeReviewTool } from './actions.js';
13
+ import { activeTryClaim } from '../broker/human-claims.js';
13
14
  const ARTIFACT_BUDGET_MS = 10_000;
14
15
  const MAX_ARTIFACT_READS = 2;
15
16
  const identifier = /^[A-Za-z0-9][A-Za-z0-9_-]*$/;
@@ -18,7 +19,7 @@ class HttpError extends MonitorActionError {
18
19
  function parameters(url, allowed) {
19
20
  for (const name of url.searchParams.keys()) {
20
21
  if (!allowed.includes(name) || url.searchParams.getAll(name).length !== 1)
21
- throw new HttpError(400, '알 수 없거나 중복된 조회 조건입니다.');
22
+ throw new HttpError(400, 'Unknown or duplicate query parameter.');
22
23
  }
23
24
  }
24
25
  function number(value, fallback, minimum, maximum) {
@@ -26,7 +27,7 @@ function number(value, fallback, minimum, maximum) {
26
27
  return fallback;
27
28
  const parsed = Number(value);
28
29
  if (!/^\d+$/.test(value) || !Number.isSafeInteger(parsed) || parsed < minimum || parsed > maximum)
29
- throw new HttpError(400, `조회 범위는 ${minimum}~${maximum} 사이의 정수여야 합니다.`);
30
+ throw new HttpError(400, `The query range must be an integer between ${minimum} and ${maximum}.`);
30
31
  return parsed;
31
32
  }
32
33
  function id(value, maximumLength = 128) {
@@ -35,10 +36,10 @@ function id(value, maximumLength = 128) {
35
36
  decoded = decodeURIComponent(value);
36
37
  }
37
38
  catch {
38
- throw new HttpError(400, '올바르지 않은 식별자입니다.');
39
+ throw new HttpError(400, 'Invalid identifier.');
39
40
  }
40
41
  if (decoded.length > maximumLength || !identifier.test(decoded))
41
- throw new HttpError(400, '올바르지 않은 식별자입니다.');
42
+ throw new HttpError(400, 'Invalid identifier.');
42
43
  return decoded;
43
44
  }
44
45
  function errorCode(value) {
@@ -48,52 +49,54 @@ function safeError(value) {
48
49
  if (value instanceof MonitorActionError)
49
50
  return value;
50
51
  const code = errorCode(value);
52
+ if (code === 'HUMAN_PREPARATION_FAILED' && value instanceof Error)
53
+ return new HttpError(409, value.message.slice(0, 8000));
51
54
  if (['WORKSPACE_CHANGED', 'WORKSPACE_CACHE_TAMPERED', 'WORKSPACE_ARTIFACT_MISMATCH'].includes(code ?? ''))
52
- return new HttpError(409, '리뷰 입력이 변경되어 이 Artifact를 확인할 수 없습니다.');
55
+ return new HttpError(409, 'The review input has changed; this Artifact cannot be inspected.');
53
56
  if (code === 'ENOENT' || code === 'ENOTDIR')
54
- return new HttpError(409, '보관된 리뷰 입력을 찾을 수 없습니다. 원본 또는 복사본이 이동·삭제되었을 수 있습니다.');
57
+ return new HttpError(409, 'The stored review input could not be found. The original or copy may have been moved or deleted.');
55
58
  if (code === 'HUMAN_TOOL_UNAVAILABLE')
56
- return new HttpError(409, '등록된 프로그램을 시작할 수 없습니다. 설치 여부와 도구 설정을 확인하세요.');
59
+ return new HttpError(409, 'Unable to start the registered program. Check its installation and tool settings.');
57
60
  if (code === 'HUMAN_TOOL_FAILED')
58
- return new HttpError(409, '등록된 프로그램이 정상적으로 끝나지 않았습니다. 프로그램과 도구 설정을 확인하세요.');
61
+ return new HttpError(409, 'The registered program did not finish successfully. Check the program and tool settings.');
59
62
  if (code === 'HUMAN_TOOL_TIMEOUT')
60
- return new HttpError(504, '등록된 프로그램의 실행 시간이 초과되었습니다.');
63
+ return new HttpError(504, 'The registered program timed out.');
61
64
  if (code === 'ARTIFACT_TOOL_TIMEOUT')
62
- return new HttpError(504, '도구 실행 시간이 초과되었습니다.');
65
+ return new HttpError(504, 'The tool timed out.');
63
66
  if (code === 'ARTIFACT_TOOL_FAILED')
64
- return new HttpError(409, '도구를 실행하지 못했습니다. 입력과 등록된 프로그램을 확인한 뒤 다시 시도하세요.');
67
+ return new HttpError(409, 'Unable to run the tool. Check the input and registered program, then try again.');
65
68
  if (code === 'UNKNOWN_ARTIFACT_TOOL')
66
- return new HttpError(400, '이 Artifact에 등록되지 않은 도구입니다.');
69
+ return new HttpError(400, 'This tool is not registered for this Artifact.');
67
70
  if (code === 'ABORTED')
68
- return new HttpError(409, '도구 실행이 중단되었습니다.');
71
+ return new HttpError(409, 'Tool execution was aborted.');
69
72
  if (code === 'EACCES' || code === 'EPERM')
70
- return new HttpError(409, '리뷰 입력을 읽을 권한이 없습니다.');
73
+ return new HttpError(409, 'Permission denied when reading the review input.');
71
74
  const message = value instanceof Error ? value.message : '';
72
75
  if (/claimed|reviewer who/i.test(message))
73
- return new HttpError(403, '이 브라우저에서 맡은 리뷰만 처리할 수 있습니다.');
76
+ return new HttpError(403, 'You can only act on reviews claimed in this browser.');
74
77
  if (/waiting for a human|already completed|alarm delivery|lock review requires/i.test(message))
75
- return new HttpError(409, '리뷰 상태가 변경되었거나 아직 준비되지 않았습니다. 목록을 새로고침하세요.');
78
+ return new HttpError(409, 'The review status has changed or the review is not ready yet. Refresh the list.');
76
79
  if (/worker|saved.*configuration|saved.*settings/i.test(message))
77
- return new HttpError(503, '다음 리뷰의 작업자를 시작할 수 없습니다. 저장된 실행 설정을 확인하고 해당 Run을 재개하세요.');
78
- return new HttpError(400, '요청된 범위의 Artifact를 읽을 수 없습니다. 파일 경로와 읽기 범위를 확인하세요.');
80
+ return new HttpError(503, 'Unable to start the worker for the next review. Check the saved execution settings and resume the Run.');
81
+ return new HttpError(400, 'Unable to read the requested Artifact range. Check the file path and read range.');
79
82
  }
80
83
  function protect(request, port) {
81
84
  const host = request.headers.host;
82
85
  const hosts = [`127.0.0.1:${port}`, `localhost:${port}`];
83
86
  if (!host || !hosts.includes(host))
84
- throw new HttpError(403, '이 모니터의 로컬 주소로 접속하세요.');
87
+ throw new HttpError(403, 'Connect using the local address of this monitor.');
85
88
  const origin = request.headers.origin;
86
89
  if (origin !== undefined && origin !== `http://${host}`)
87
- throw new HttpError(403, '같은 모니터 화면에서 보낸 요청만 허용합니다.');
90
+ throw new HttpError(403, 'Only requests from the same monitor page are allowed.');
88
91
  const site = request.headers['sec-fetch-site'];
89
92
  if (site !== undefined && site !== 'same-origin' && site !== 'none')
90
- throw new HttpError(403, '외부 페이지에서 이 모니터에 접근할 수 없습니다.');
93
+ throw new HttpError(403, 'External pages cannot access this monitor.');
91
94
  if (request.method !== 'GET' && request.method !== 'POST')
92
- throw new HttpError(405, '지원하지 않는 요청 방식입니다.');
95
+ throw new HttpError(405, 'Unsupported request method.');
93
96
  if (request.method === 'POST' && origin !== `http://${host}`)
94
- throw new HttpError(403, '같은 모니터 화면에서 보낸 요청만 허용합니다.');
97
+ throw new HttpError(403, 'Only requests from the same monitor page are allowed.');
95
98
  if (request.method === 'GET' && (request.headers['transfer-encoding'] !== undefined || (request.headers['content-length'] !== undefined && request.headers['content-length'] !== '0')))
96
- throw new HttpError(400, '조회 요청에는 본문을 보낼 수 없습니다.');
99
+ throw new HttpError(400, 'GET requests must not contain a body.');
97
100
  return host;
98
101
  }
99
102
  function headers(response) {
@@ -126,36 +129,36 @@ function session(secret, token) {
126
129
  function authenticate(request, secret) {
127
130
  const token = tokenFrom(request), supplied = request.headers['x-ccdd-csrf'];
128
131
  if (!token || typeof supplied !== 'string' || !bearerPattern.test(supplied) || !timingSafeEqual(Buffer.from(supplied), Buffer.from(session(secret, token).csrfToken)))
129
- throw new HttpError(403, '리뷰어 세션을 확인할 수 없습니다. 화면을 새로고침한 후 다시 시도하세요.');
132
+ throw new HttpError(403, 'Unable to verify the reviewer session. Refresh the page and try again.');
130
133
  return reviewer(token);
131
134
  }
132
135
  const object = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
133
136
  function bodyShape(value, keys) {
134
137
  if (!object(value) || Object.keys(value).some(key => !keys.includes(key)))
135
- throw new HttpError(400, '요청 본문의 항목이 올바르지 않습니다.');
138
+ throw new HttpError(400, 'Invalid request body fields.');
136
139
  }
137
140
  async function body(request) {
138
141
  if (!/^application\/json(?:;\s*charset=utf-8)?$/i.test(request.headers['content-type'] ?? ''))
139
- throw new HttpError(415, 'JSON 형식으로 요청하세요.');
142
+ throw new HttpError(415, 'Send the request as JSON.');
140
143
  if (Number(request.headers['content-length'] ?? 0) > 32_768)
141
- throw new HttpError(413, '요청 본문은 32KiB 이하여야 합니다.');
144
+ throw new HttpError(413, 'The request body must be at most 32KiB.');
142
145
  return await new Promise((ok, no) => {
143
146
  const chunks = [];
144
147
  let size = 0;
145
148
  const cleanup = () => { clearTimeout(timer); request.off('data', data); request.off('end', end); request.off('aborted', abort); request.off('error', no); };
146
149
  const fail = (error) => { cleanup(); request.resume(); no(error); };
147
- const abort = () => fail(new HttpError(400, '요청 전송이 중단되었습니다.'));
150
+ const abort = () => fail(new HttpError(400, 'The request transfer was aborted.'));
148
151
  const data = (chunk) => { size += chunk.length; if (size > 32_768)
149
- fail(new HttpError(413, '요청 본문은 32KiB 이하여야 합니다.'));
152
+ fail(new HttpError(413, 'The request body must be at most 32KiB.'));
150
153
  else
151
154
  chunks.push(chunk); };
152
155
  const end = () => { cleanup(); try {
153
156
  ok(JSON.parse(Buffer.concat(chunks).toString('utf8')));
154
157
  }
155
158
  catch {
156
- no(new HttpError(400, 'JSON 요청 본문을 확인하세요.'));
159
+ no(new HttpError(400, 'Check the JSON request body.'));
157
160
  } };
158
- const timer = setTimeout(() => fail(new HttpError(408, '요청 본문 전송 시간이 초과되었습니다.')), 5_000);
161
+ const timer = setTimeout(() => fail(new HttpError(408, 'The request body transfer timed out.')), 5_000);
159
162
  request.on('data', data);
160
163
  request.once('end', end);
161
164
  request.once('aborted', abort);
@@ -180,16 +183,18 @@ async function staticAssets() {
180
183
  };
181
184
  await visit(root, '/');
182
185
  if (!assets.has('/'))
183
- throw new Error('모니터 화면 파일이 없습니다. 패키지를 다시 빌드하세요.');
186
+ throw new Error('Monitor UI files are missing. Rebuild the package.');
184
187
  return assets;
185
188
  }
186
189
  async function decorateDetail(detail, record, reviewerId) {
187
190
  const waiting = detail.request.kind === 'human' && detail.request.status === 'WAITING_HUMAN';
188
191
  const claimedByMe = Boolean(reviewerId && detail.request.claimedBy === reviewerId);
192
+ const reservation = waiting ? activeTryClaim(record.request) : undefined;
189
193
  detail.human = {
190
- canClaim: waiting && !detail.request.claimedBy && detail.request.workerState !== 'missing',
194
+ canClaim: waiting && !detail.request.claimedBy && !reservation && detail.request.workerState !== 'missing',
191
195
  canComplete: waiting && claimedByMe && Boolean(record.request.notifiedAt) && detail.request.workerState !== 'missing',
192
196
  claimedByMe,
197
+ ...(reservation ? { tryClaim: { reviewerId: reservation.reviewerId, expiresAt: reservation.expiresAt, preparingByMe: reservation.reviewerId === reviewerId } } : {}),
193
198
  };
194
199
  detail.tools = [];
195
200
  detail.artifactPreview = record.request.configManifest ? 'tools' : 'legacy';
@@ -207,7 +212,7 @@ async function decorateDetail(detail, record, reviewerId) {
207
212
  }
208
213
  }
209
214
  catch {
210
- detail.toolIssue = '이 리뷰의 도구를 준비할 수 없습니다. 보관된 입력과 도구 정의를 확인하세요.';
215
+ detail.toolIssue = 'Unable to prepare tools for this review. Check the stored input and tool definitions.';
211
216
  }
212
217
  }
213
218
  return detail;
@@ -216,7 +221,7 @@ async function decorateDetail(detail, record, reviewerId) {
216
221
  export async function startMonitor(options = {}) {
217
222
  const requestedPort = options.port ?? 4318;
218
223
  if (!Number.isInteger(requestedPort) || requestedPort < 0 || requestedPort > 65535)
219
- throw new Error('모니터 포트는 0~65535 사이의 정수여야 합니다.');
224
+ throw new Error('The monitor port must be an integer between 0 and 65535.');
220
225
  const store = createMonitorStore(options);
221
226
  const assets = await staticAssets();
222
227
  const sessionSecret = randomBytes(32);
@@ -229,10 +234,10 @@ export async function startMonitor(options = {}) {
229
234
  const job = (async () => {
230
235
  const host = protect(request, port);
231
236
  if (!request.url?.startsWith('/') || request.url.startsWith('//'))
232
- throw new HttpError(400, '올바르지 않은 조회 주소입니다.');
237
+ throw new HttpError(400, 'Invalid request URL.');
233
238
  const url = new URL(request.url, `http://${host}`);
234
239
  if (closing)
235
- throw new HttpError(503, '모니터를 종료하고 있습니다.');
240
+ throw new HttpError(503, 'The monitor is shutting down.');
236
241
  const asset = assets.get(url.pathname);
237
242
  if (asset && request.method === 'GET') {
238
243
  parameters(url, []);
@@ -254,17 +259,17 @@ export async function startMonitor(options = {}) {
254
259
  authenticate(request, sessionSecret);
255
260
  bodyShape(await body(request), []);
256
261
  if (active.size >= MAX_ARTIFACT_READS)
257
- throw new HttpError(429, '다른 입력을 확인하고 있습니다. 잠시 후 다시 시도하세요.');
262
+ throw new HttpError(429, 'Other input is being inspected. Please try again shortly.');
258
263
  const context = await store.projectContext(id(validation[1]));
259
264
  if (!context)
260
- throw new HttpError(404, '프로젝트를 찾을 수 없습니다.');
265
+ throw new HttpError(404, 'Project not found.');
261
266
  const controller = new AbortController();
262
267
  const disconnect = () => { if (!response.writableEnded)
263
268
  controller.abort(new Error('Monitor client disconnected')); };
264
269
  request.once('aborted', disconnect);
265
270
  response.once('close', disconnect);
266
271
  active.add(controller);
267
- const timer = setTimeout(() => controller.abort(new HttpError(504, '현재 입력 확인 시간이 초과되었습니다. CLI에서 다시 확인하세요.')), 30_000);
272
+ const timer = setTimeout(() => controller.abort(new HttpError(504, 'Current input inspection timed out. Try again using the CLI.')), 30_000);
268
273
  try {
269
274
  const { plan } = await inspectProject({ ...context, recursive: true, signal: controller.signal });
270
275
  json(response, { plan, observedAt: new Date().toISOString() });
@@ -272,7 +277,7 @@ export async function startMonitor(options = {}) {
272
277
  catch (error) {
273
278
  if (controller.signal.aborted)
274
279
  throw controller.signal.reason;
275
- throw new HttpError(409, '현재 입력을 확인할 수 없습니다. ccdd-project config check로 설정과 입력을 확인하세요.');
280
+ throw new HttpError(409, 'Unable to inspect current input. Run ccdd-project config check to check the configuration and input.');
276
281
  }
277
282
  finally {
278
283
  clearTimeout(timer);
@@ -284,44 +289,57 @@ export async function startMonitor(options = {}) {
284
289
  }
285
290
  const action = /^\/api\/requests\/([^/]+)\/([^/]+)\/(claim|complete|tools\/([^/]+))$/.exec(url.pathname);
286
291
  if (!action)
287
- throw new HttpError(405, '이 주소는 조회 요청만 허용합니다.');
292
+ throw new HttpError(405, 'This URL only accepts GET requests.');
288
293
  parameters(url, []);
289
294
  const reviewerId = authenticate(request, sessionSecret);
290
295
  const input = await body(request);
291
296
  const projectId = id(action[1]), requestId = id(action[2]);
292
297
  const key = `${projectId}/${requestId}`;
293
298
  if (mutations.has(key))
294
- throw new HttpError(409, '이 리뷰의 다른 작업을 처리하고 있습니다. 잠시 후 다시 시도하세요.');
299
+ throw new HttpError(409, 'Another action is in progress for this review. Please try again shortly.');
295
300
  mutations.add(key);
296
301
  try {
297
302
  const record = await store.request(projectId, requestId);
298
303
  if (!record)
299
- throw new HttpError(404, '리뷰 요청을 찾을 수 없습니다.');
304
+ throw new HttpError(404, 'Review request not found.');
300
305
  if (record.request.id !== requestId)
301
- throw new HttpError(409, '저장된 리뷰 식별자가 일치하지 않습니다.');
306
+ throw new HttpError(409, 'The stored review identifier does not match.');
302
307
  if (action[3] === 'claim') {
303
308
  bodyShape(input, []);
304
- await claimReview(record, reviewerId);
309
+ const controller = new AbortController();
310
+ const disconnect = () => { if (!response.writableEnded)
311
+ controller.abort(new Error('Monitor client disconnected.')); };
312
+ response.once('close', disconnect);
313
+ active.add(controller);
314
+ const timer = setTimeout(() => controller.abort(new HttpError(504, 'Review preparation timed out.')), 900_000);
315
+ try {
316
+ await claimReview(record, reviewerId, controller.signal);
317
+ }
318
+ finally {
319
+ clearTimeout(timer);
320
+ response.off('close', disconnect);
321
+ active.delete(controller);
322
+ }
305
323
  }
306
324
  else if (action[3] === 'complete') {
307
325
  bodyShape(input, ['verdict', 'summary', 'evidence']);
308
326
  if ((input.verdict !== 'GREEN' && input.verdict !== 'RED') || typeof input.summary !== 'string' || !input.summary.trim() || input.summary.length > 12_000 || !Array.isArray(input.evidence) || input.evidence.length < 1 || input.evidence.length > 100 || !input.evidence.every(item => typeof item === 'string' && item.trim().length > 0 && item.length <= 4_000))
309
- throw new HttpError(400, '판정, 요약과 근거 목록을 확인하세요.');
327
+ throw new HttpError(400, 'Check the verdict, summary, and evidence list.');
310
328
  await completeReview(record, reviewerId, { verdict: input.verdict, summary: input.summary, evidence: input.evidence });
311
329
  }
312
330
  else {
313
331
  bodyShape(input, ['arguments']);
314
332
  if (!object(input.arguments))
315
- throw new HttpError(400, '도구 입력은 JSON 객체여야 합니다.');
333
+ throw new HttpError(400, 'Tool input must be a JSON object.');
316
334
  if (active.size >= MAX_ARTIFACT_READS)
317
- throw new HttpError(429, '다른 도구를 처리하고 있습니다. 잠시 후 다시 시도하세요.');
335
+ throw new HttpError(429, 'Other tools are running. Please try again shortly.');
318
336
  const controller = new AbortController();
319
337
  const disconnect = () => { if (!response.writableEnded)
320
338
  controller.abort(new Error('Monitor client disconnected')); };
321
339
  request.once('aborted', disconnect);
322
340
  response.once('close', disconnect);
323
341
  active.add(controller);
324
- const timer = setTimeout(() => controller.abort(new HttpError(504, '도구 실행 시간이 초과되었습니다.')), 120_000);
342
+ const timer = setTimeout(() => controller.abort(new HttpError(504, 'The tool timed out.')), 120_000);
325
343
  try {
326
344
  json(response, { result: await executeReviewTool(record, reviewerId, id(action[4], 129), input.arguments, controller.signal) });
327
345
  }
@@ -335,8 +353,8 @@ export async function startMonitor(options = {}) {
335
353
  }
336
354
  const updated = await store.detail(projectId, requestId);
337
355
  if (!updated)
338
- throw new HttpError(404, '리뷰 요청을 찾을 수 없습니다.');
339
- json(response, await decorateDetail(updated, record, reviewerId));
356
+ throw new HttpError(404, 'Review request not found.');
357
+ json(response, await decorateDetail(updated, await store.request(projectId, requestId) ?? record, reviewerId));
340
358
  }
341
359
  finally {
342
360
  mutations.delete(key);
@@ -354,7 +372,7 @@ export async function startMonitor(options = {}) {
354
372
  parameters(url, []);
355
373
  const graph = await store.graph(id(graphRoute[1]), id(graphRoute[2]));
356
374
  if (!graph)
357
- throw new HttpError(404, '선택한 실행을 찾을 수 없습니다.');
375
+ throw new HttpError(404, 'Selected Run not found.');
358
376
  json(response, graph);
359
377
  return;
360
378
  }
@@ -362,18 +380,18 @@ export async function startMonitor(options = {}) {
362
380
  parameters(url, ['project', 'run', 'filter', 'lane', 'limit', 'offset']);
363
381
  const filter = url.searchParams.get('filter') ?? 'all';
364
382
  if (!['all', 'active', 'attention'].includes(filter))
365
- throw new HttpError(400, '알 수 없는 요청 필터입니다.');
383
+ throw new HttpError(400, 'Unknown request filter.');
366
384
  const projectValue = url.searchParams.get('project');
367
385
  const project = projectValue === null ? undefined : id(projectValue);
368
386
  const runValue = url.searchParams.get('run');
369
387
  const run = runValue === null ? undefined : id(runValue);
370
388
  if (run !== undefined && project === undefined)
371
- throw new HttpError(400, '실행을 선택하려면 프로젝트를 먼저 선택하세요.');
389
+ throw new HttpError(400, 'Select a project before selecting a Run.');
372
390
  const limit = number(url.searchParams.get('limit'), 50, 1, 100);
373
391
  const offset = number(url.searchParams.get('offset'), 0, 0, Number.MAX_SAFE_INTEGER);
374
392
  const lane = url.searchParams.get('lane') ?? undefined;
375
393
  if (lane !== undefined && !['requested', 'running', 'success', 'failure'].includes(lane))
376
- throw new HttpError(400, '알 수 없는 칸반 열입니다.');
394
+ throw new HttpError(400, 'Unknown Kanban column.');
377
395
  json(response, await store.overview({ project, run, filter: filter, lane: lane, limit, offset }));
378
396
  return;
379
397
  }
@@ -382,7 +400,7 @@ export async function startMonitor(options = {}) {
382
400
  parameters(url, []);
383
401
  const result = await store.detail(id(detail[1]), id(detail[2]));
384
402
  if (!result)
385
- throw new HttpError(404, '리뷰 요청을 찾을 수 없습니다.');
403
+ throw new HttpError(404, 'Review request not found.');
386
404
  const record = await store.request(id(detail[1]), id(detail[2]));
387
405
  const token = tokenFrom(request);
388
406
  json(response, record ? await decorateDetail(result, record, token ? reviewer(token) : undefined) : result);
@@ -390,29 +408,29 @@ export async function startMonitor(options = {}) {
390
408
  }
391
409
  const artifact = /^\/api\/requests\/([^/]+)\/([^/]+)\/artifacts\/([^/]+)$/.exec(url.pathname);
392
410
  if (!artifact)
393
- throw new HttpError(404, '조회 주소를 찾을 수 없습니다.');
411
+ throw new HttpError(404, 'Request URL not found.');
394
412
  parameters(url, ['operation', 'path', 'startLine', 'lineCount', 'offset', 'limit']);
395
413
  if (active.size >= MAX_ARTIFACT_READS) {
396
414
  response.setHeader('Retry-After', '1');
397
- throw new HttpError(429, '다른 Artifact를 확인하고 있습니다. 잠시 후 다시 시도하세요.');
415
+ throw new HttpError(429, 'Other Artifacts are being inspected. Please try again shortly.');
398
416
  }
399
417
  const controller = new AbortController();
400
418
  const disconnect = () => { if (!response.writableEnded)
401
419
  controller.abort(new Error('Monitor client disconnected')); };
402
420
  request.once('aborted', disconnect);
403
421
  response.once('close', disconnect);
404
- const timer = setTimeout(() => controller.abort(new HttpError(504, 'Artifact 확인 시간이 초과되었습니다. 더 작은 입력으로 다시 시도하세요.')), ARTIFACT_BUDGET_MS);
422
+ const timer = setTimeout(() => controller.abort(new HttpError(504, 'Artifact inspection timed out. Try again with a smaller input.')), ARTIFACT_BUDGET_MS);
405
423
  active.add(controller);
406
424
  try {
407
425
  const projectId = id(artifact[1]), requestId = id(artifact[2]), artifactId = id(artifact[3]);
408
426
  const record = await store.request(projectId, requestId);
409
427
  controller.signal.throwIfAborted();
410
428
  if (!record)
411
- throw new HttpError(404, '리뷰 요청을 찾을 수 없습니다.');
429
+ throw new HttpError(404, 'Review request not found.');
412
430
  if (record.request.id !== requestId)
413
- throw new HttpError(409, '저장된 리뷰 요청의 식별자가 일치하지 않습니다.');
431
+ throw new HttpError(409, 'The stored review request identifier does not match.');
414
432
  if (record.request.configManifest)
415
- throw new HttpError(409, '이 Artifact는 등록된 도구로 확인하세요. Human 리뷰는 검토 탭의 제공된 프로그램을 사용할 수 있습니다.');
433
+ throw new HttpError(409, 'Inspect this Artifact with its registered tools. Human reviewers can use the programs provided in the Review tab.');
416
434
  await authorizeWorkspace(record);
417
435
  controller.signal.throwIfAborted();
418
436
  const handle = await reopenWorkspace(record.request.workspace, { signal: controller.signal });
@@ -420,19 +438,19 @@ export async function startMonitor(options = {}) {
420
438
  await handle.assertUnchanged();
421
439
  const expected = await readStoredArtifactScope({ repoPath: handle.descriptor.path, criticId: record.request.criticId });
422
440
  if (!expected || !isDeepStrictEqual(expected.artifacts, record.request.artifacts) || !isDeepStrictEqual(expected.artifactTypes, record.request.artifactTypes))
423
- throw new HttpError(409, '저장된 Artifact 범위가 리뷰 입력의 정의와 일치하지 않습니다.');
441
+ throw new HttpError(409, 'The stored Artifact scope does not match the review input definitions.');
424
442
  const viewer = await createArtifactViewer({ worktreePath: handle.descriptor.path, artifacts: record.request.artifacts, artifactTypes: record.request.artifactTypes, signal: handle.signal });
425
443
  const definition = viewer.listArtifacts().find(item => item.id === artifactId);
426
444
  if (!definition)
427
- throw new HttpError(404, '이 리뷰 요청에 포함된 Artifact가 아닙니다.');
445
+ throw new HttpError(404, 'This Artifact is not included in the review request.');
428
446
  const operation = url.searchParams.get('operation') ?? (definition.directory ? 'list' : 'read');
429
447
  if (operation !== 'read' && operation !== 'list')
430
- throw new HttpError(400, '지원하지 않는 Artifact 조회 방식입니다.');
448
+ throw new HttpError(400, 'Unsupported Artifact inspection method.');
431
449
  const registry = createArtifactTools(viewer, { audience: 'viewer' });
432
450
  const toolName = `${operation}_${artifactId}`;
433
451
  const tool = registry.tools.find(item => item.name === toolName);
434
452
  if (!tool)
435
- throw new HttpError(400, '이 Artifact에는 해당 조회 도구가 없습니다.');
453
+ throw new HttpError(400, 'This Artifact does not have the requested inspection tool.');
436
454
  const args = {};
437
455
  if (url.searchParams.has('path'))
438
456
  args.path = url.searchParams.get('path');
@@ -472,7 +490,7 @@ export async function startMonitor(options = {}) {
472
490
  await new Promise((ok, no) => { server.once('error', no); server.listen(requestedPort, '127.0.0.1', () => { server.off('error', no); ok(); }); });
473
491
  const address = server.address();
474
492
  if (!address || typeof address === 'string')
475
- throw new Error('모니터의 로컬 주소를 확인할 수 없습니다.');
493
+ throw new Error('Unable to determine the local address of the monitor.');
476
494
  port = address.port;
477
495
  return {
478
496
  url: `http://127.0.0.1:${port}`,
@@ -480,7 +498,7 @@ export async function startMonitor(options = {}) {
480
498
  if (!closePromise) {
481
499
  closing = true;
482
500
  for (const controller of active)
483
- controller.abort(new HttpError(503, '모니터를 종료하고 있습니다.'));
501
+ controller.abort(new HttpError(503, 'The monitor is shutting down.'));
484
502
  closePromise = (async () => {
485
503
  await new Promise((ok, no) => { server.close(error => error ? no(error) : ok()); server.closeIdleConnections(); });
486
504
  await Promise.allSettled([...jobs]);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/monitor/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/monitor/server.ts"],"names":[],"mappings":"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"}