@ccdd/project 2.0.1 → 2.0.2

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