ws-spec-kit 0.1.0-beta.4 → 0.1.0-beta.6

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 (49) hide show
  1. package/dist/adapters/skills/install.js +20 -4
  2. package/dist/adapters/skills/install.js.map +1 -1
  3. package/dist/application/decide.js +11 -2
  4. package/dist/application/decide.js.map +1 -1
  5. package/dist/application/inspect.js +2 -0
  6. package/dist/application/inspect.js.map +1 -1
  7. package/dist/application/testing-config.d.ts +12 -0
  8. package/dist/application/testing-config.js +85 -0
  9. package/dist/application/testing-config.js.map +1 -0
  10. package/dist/cli/commands/core.js +16 -1
  11. package/dist/cli/commands/core.js.map +1 -1
  12. package/dist/cli/commands/public-contract.js +7 -2
  13. package/dist/cli/commands/public-contract.js.map +1 -1
  14. package/dist/engine/approvals.d.ts +2 -0
  15. package/dist/engine/approvals.js +36 -8
  16. package/dist/engine/approvals.js.map +1 -1
  17. package/dist/engine/tdd/red-gate.js +45 -12
  18. package/dist/engine/tdd/red-gate.js.map +1 -1
  19. package/dist/engine/tdd/runner-digest.d.ts +1 -0
  20. package/dist/engine/tdd/runner-digest.js +64 -0
  21. package/dist/engine/tdd/runner-digest.js.map +1 -0
  22. package/dist/engine/tdd/types.d.ts +1 -1
  23. package/dist/engine/tdd/vitest-reporter.d.ts +1 -0
  24. package/dist/engine/tdd/vitest-reporter.js +50 -0
  25. package/dist/engine/tdd/vitest-reporter.js.map +1 -0
  26. package/dist/engine/verification.d.ts +1 -1
  27. package/dist/engine/verification.js +5 -3
  28. package/dist/engine/verification.js.map +1 -1
  29. package/dist/protocol/application.d.ts +7 -0
  30. package/dist/protocol/public-contract.d.ts +9 -6
  31. package/dist/protocol/public-contract.js +8 -5
  32. package/dist/protocol/public-contract.js.map +1 -1
  33. package/dist/schemas/definitions.js +8 -1
  34. package/dist/schemas/definitions.js.map +1 -1
  35. package/dist/storage/control-plane.d.ts +4 -0
  36. package/dist/storage/control-plane.js.map +1 -1
  37. package/dist/storage/repository.d.ts +1 -1
  38. package/dist/storage/repository.js +13 -2
  39. package/dist/storage/repository.js.map +1 -1
  40. package/dist/storage/testing-config-migration.d.ts +8 -0
  41. package/dist/storage/testing-config-migration.js +19 -0
  42. package/dist/storage/testing-config-migration.js.map +1 -0
  43. package/dist/storage/testing-config.d.ts +1 -0
  44. package/dist/storage/testing-config.js +76 -0
  45. package/dist/storage/testing-config.js.map +1 -0
  46. package/package.json +3 -2
  47. package/schemas/builtin-application-decision-input-v2.schema.json +18 -0
  48. package/schemas/builtin-application-project-config-snapshot-v1.schema.json +4 -1
  49. package/schemas/builtin-application-project-config-v1.schema.json +4 -1
@@ -1,7 +1,7 @@
1
1
  import { readFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import * as canonicalizeModule from "canonicalize";
4
- import { computeWorkspaceTreeDigest, sha256 } from "../domain/digests.js";
4
+ import { computeWorkspaceSnapshot, computeWorkspaceTreeDigest, sha256 } from "../domain/digests.js";
5
5
  import { verifyArtifact } from "../domain/artifacts.js";
6
6
  import { transitionStage, transitionWorkItem } from "../domain/states.js";
7
7
  import { readControlPlane, resolveWorkItemContext } from "../storage/control-plane.js";
@@ -99,6 +99,17 @@ export function approvalBindingDigest(input) {
99
99
  throw new ApprovalError("WSSPEC_APPROVAL_DIGEST_INVALID", "审批 Artifact 引用无法规范化。");
100
100
  return sha256(binding);
101
101
  }
102
+ // Protocol drafts are mutable transport inputs, not approved workspace content.
103
+ // Historical requests keep their original digest algorithm until re-requested.
104
+ async function approvalWorkspaceDigest(cwd, workItemId, version) {
105
+ if (version === undefined)
106
+ return computeWorkspaceTreeDigest(cwd);
107
+ if (version !== 2)
108
+ throw new ApprovalError("WSSPEC_APPROVAL_DIGEST_INVALID", "不支持此审批工作区摘要版本。");
109
+ const draftPrefix = `.wsspec/work-items/${workItemId}/drafts/`;
110
+ const entries = (await computeWorkspaceSnapshot(cwd)).filter((entry) => !entry.path.startsWith(draftPrefix));
111
+ return sha256(`${JSON.stringify({ version: 1, entries })}\n`);
112
+ }
102
113
  export async function prepareArtifactApproval(input) {
103
114
  const context = await resolveWorkItemContext(input.cwd, input.workItemId);
104
115
  const worktree = context.executionWorktree;
@@ -141,7 +152,8 @@ export async function prepareArtifactApproval(input) {
141
152
  contentHash,
142
153
  artifacts: sortedArtifacts,
143
154
  ...(artifactDiff === "" ? {} : { artifactDiff }),
144
- workspaceTreeDigest: await computeWorkspaceTreeDigest(worktree),
155
+ workspaceTreeDigest: await approvalWorkspaceDigest(worktree, input.workItemId, 2),
156
+ workspaceDigestVersion: 2,
145
157
  requestedBy: input.actor ?? "engine",
146
158
  status: "pending",
147
159
  createdAt: (input.now ?? new Date()).toISOString(),
@@ -190,6 +202,7 @@ function assertPendingApproval(current, request, expectedDigest) {
190
202
  || pending.attemptId !== request.attemptId
191
203
  || pending.contentHash !== request.contentHash
192
204
  || pending.workspaceTreeDigest !== request.workspaceTreeDigest
205
+ || pending.workspaceDigestVersion !== request.workspaceDigestVersion
193
206
  || pending.requestedBy !== request.requestedBy
194
207
  || JSON.stringify(pending.artifacts) !== JSON.stringify(request.artifacts)) {
195
208
  throw new ApprovalError("WSSPEC_APPROVAL_NOT_PENDING", "审批请求不存在、已经处理或绑定已变化。");
@@ -248,7 +261,7 @@ async function expireArtifactApproval(input) {
248
261
  operationInput: { requestId: input.request.requestId, workspaceTreeDigest: input.request.workspaceTreeDigest },
249
262
  mutate: async (current) => {
250
263
  const pending = assertPendingApproval(current, input.request);
251
- if (await computeWorkspaceTreeDigest(input.worktree) === pending.workspaceTreeDigest) {
264
+ if (await approvalWorkspaceDigest(input.worktree, input.workItemId, pending.workspaceDigestVersion) === pending.workspaceTreeDigest) {
252
265
  throw new ApprovalError("WSSPEC_APPROVAL_NOT_EXPIRED", "审批绑定的工作区当前未变化,请重试决定。");
253
266
  }
254
267
  const expired = { ...pending, status: "expired", decidedAt: new Date().toISOString() };
@@ -257,6 +270,19 @@ async function expireArtifactApproval(input) {
257
270
  });
258
271
  }
259
272
  export async function decideArtifactApproval(input) {
273
+ let confirmation;
274
+ if (input.confirmation !== undefined) {
275
+ if (input.decision !== "approve" || input.confirmation?.source !== "conversation"
276
+ || typeof input.confirmation.userMessage !== "string" || !input.actor?.trim() || !input.expectedDigest) {
277
+ throw new ApprovalError("WSSPEC_APPROVAL_CONFIRMATION_INVALID", "对话确认只适用于步骤批准,且必须绑定用户原话、actor 和当前审批摘要。");
278
+ }
279
+ try {
280
+ confirmation = { source: "conversation", userMessage: normalizeApprovalFeedback(input.confirmation.userMessage) };
281
+ }
282
+ catch {
283
+ throw new ApprovalError("WSSPEC_APPROVAL_CONFIRMATION_INVALID", "用户确认内容为空、过长、编码异常或包含凭据样式内容。");
284
+ }
285
+ }
260
286
  const rawFeedback = input.feedback ?? (input.terminal.isTTY === true ? input.reason : undefined);
261
287
  const feedback = rawFeedback === undefined ? undefined : normalizeApprovalFeedback(rawFeedback);
262
288
  if (input.decision === "approve" && (feedback !== undefined || input.rejectionToken !== undefined)) {
@@ -265,8 +291,8 @@ export async function decideArtifactApproval(input) {
265
291
  if (input.terminal.isTTY === true && input.rejectionToken !== undefined) {
266
292
  throw new ApprovalError("WSSPEC_APPROVAL_FEEDBACK_NOT_ALLOWED", "TTY 拒绝决定不能携带拒绝确认凭据。");
267
293
  }
268
- if (input.terminal.isTTY !== true && !(input.decision === "reject" && feedback !== undefined && input.rejectionToken !== undefined)) {
269
- throw new ApprovalError("WSSPEC_INTERACTIVE_TTY_REQUIRED", "批准或无反馈拒绝必须来自真实交互式 TTY。");
294
+ if (input.terminal.isTTY !== true && confirmation === undefined && !(input.decision === "reject" && feedback !== undefined && input.rejectionToken !== undefined)) {
295
+ throw new ApprovalError("WSSPEC_INTERACTIVE_TTY_REQUIRED", "普通步骤批准可携带 confirmation 记录用户对当前版本的明确同意;未提供确认的批准或无反馈拒绝需要交互式 TTY。");
270
296
  }
271
297
  const tokenHash = input.rejectionToken === undefined ? undefined : sha256(input.rejectionToken);
272
298
  const projection = await readControlPlane(input.cwd, input.workItemId);
@@ -276,11 +302,11 @@ export async function decideArtifactApproval(input) {
276
302
  return await mutateControlPlane({
277
303
  cwd: input.cwd, workItemId: input.workItemId, eventType: "approval.decided", idempotencyKey: `approval-decision:${input.requestId}`,
278
304
  ...(request === undefined ? {} : { stageId: request.stageId, attemptId: request.attemptId }),
279
- actor: input.actor ?? "interactive-user", operationInput: { requestId: input.requestId, decision: input.decision, feedback: feedback ?? null, tokenHash: tokenHash ?? null, expectedDigest: input.expectedDigest ?? null },
305
+ actor: input.actor ?? "interactive-user", operationInput: { requestId: input.requestId, decision: input.decision, feedback: feedback ?? null, tokenHash: tokenHash ?? null, expectedDigest: input.expectedDigest ?? null, ...(confirmation === undefined ? {} : { confirmation, actor: input.actor }) },
280
306
  mutate: async (current) => {
281
307
  const pending = assertPendingApproval(current, request, input.expectedDigest);
282
308
  let evidence = current.evidence;
283
- if (input.terminal.isTTY !== true) {
309
+ if (input.terminal.isTTY !== true && confirmation === undefined) {
284
310
  const key = rejectionConfirmationEvidenceKey(tokenHash);
285
311
  const confirmation = current.evidence[key];
286
312
  if (confirmation === undefined)
@@ -293,7 +319,7 @@ export async function decideArtifactApproval(input) {
293
319
  }
294
320
  evidence = { ...current.evidence, [key]: { ...confirmation, consumedAt: new Date().toISOString() } };
295
321
  }
296
- if (await computeWorkspaceTreeDigest(worktree) !== pending.workspaceTreeDigest) {
322
+ if (await approvalWorkspaceDigest(worktree, input.workItemId, pending.workspaceDigestVersion) !== pending.workspaceTreeDigest) {
297
323
  throw new ApprovalError("WSSPEC_APPROVAL_EXPIRED", "审批绑定的工作区已经变化,请重新请求审批。");
298
324
  }
299
325
  await verifyApprovalArtifacts(input.cwd, input.workItemId, pending);
@@ -302,6 +328,8 @@ export async function decideArtifactApproval(input) {
302
328
  ...pending,
303
329
  status,
304
330
  decidedBy: input.actor ?? "interactive-user",
331
+ decisionSource: confirmation !== undefined ? "agent_transcribed" : input.terminal.isTTY === true ? "terminal" : "terminal_token",
332
+ ...(confirmation === undefined ? {} : { confirmation }),
305
333
  decidedAt: new Date().toISOString(),
306
334
  ...(feedback === undefined ? {} : { feedback }),
307
335
  };
@@ -1 +1 @@
1
- {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/engine/approvals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/engine/approvals.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { runnerInstallationDigest } from "./runner-digest.js";
2
+ import { vitestReporterSource } from "./vitest-reporter.js";
1
3
  import { spawn } from "node:child_process";
2
4
  import { constants } from "node:fs";
3
5
  import { access, lstat, mkdtemp, readFile, readdir, realpath, rm, writeFile } from "node:fs/promises";
@@ -273,19 +275,43 @@ function gateConfiguration(gate) {
273
275
  return { commandId: gate.commandId, argv: [...gate.argv], cwd: gate.cwd, timeoutMs: gate.timeoutMs, inheritEnv: [...gate.inheritEnv], env: gate.env, testPathRules: [...gate.testPathRules], testAssetPaths: [...gate.testAssetPaths], testAssetRoots: [...gate.testAssetRoots], productPaths: [...gate.productPaths], reporter: gate.reporter };
274
276
  }
275
277
  async function resolveGate(gate, worktree) {
276
- if (gate.argv.length === 0 || gate.argv.some((part) => typeof part !== "string") || gate.timeoutMs < 1 || gate.reporter.type !== "node-test" || gate.reporter.version !== 1) {
278
+ if (gate.argv.length === 0 || gate.argv.some((part) => typeof part !== "string") || gate.timeoutMs < 1 || !["node-test", "vitest"].includes(gate.reporter.type) || gate.reporter.version !== 1) {
277
279
  throw new VerificationError("WSSPEC_TDD_GATE_CONFIGURATION_INVALID", `Test Gate ${gate.commandId} 配置无效。`);
278
280
  }
279
281
  assertRules(gate.testPathRules);
280
282
  const environment = effectiveEnvironment(gate);
281
283
  const executable = await resolveExecutable(gate.argv[0], environment, worktree);
282
284
  const executableDigest = sha256(await readFile(executable));
283
- if (executableDigest !== sha256(await readFile(process.execPath)) || !gate.argv.slice(1).includes("--test") || gate.argv.some((part) => part.startsWith("--test-reporter"))) {
284
- throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "首版 trusted TDD 仅支持由引擎注入 reporter 的当前 node:test runner。 ");
285
+ if (executableDigest !== sha256(await readFile(process.execPath))) {
286
+ throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "trusted TDD 必须使用当前 Node。");
287
+ }
288
+ let runner;
289
+ if (gate.reporter.type === "vitest") {
290
+ if (gate.argv[2] !== "run" || gate.argv.some(part => /^--(?:reporter|outputFile|watch|mergeReports|passWithNoTests|update)/u.test(part))) {
291
+ throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "Vitest 必须以 node <vitest.mjs> run 执行,报告由引擎注入。");
292
+ }
293
+ try {
294
+ const runnerPath = await realpath(path.resolve(worktree, gate.argv[1]));
295
+ const metadata = JSON.parse(await readFile(path.join(path.dirname(runnerPath), "package.json"), "utf8"));
296
+ const version = /^(3|4)\.(\d+)\.(\d+)(?:\+[^ ]+)?$/u.exec(metadata.version ?? "");
297
+ const supported = version !== null && (version[1] === "4" || Number(version[2]) > 2 || (Number(version[2]) === 2 && Number(version[3]) >= 4));
298
+ if (path.basename(runnerPath) !== "vitest.mjs" || metadata.name !== "vitest" || !supported) {
299
+ throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "仅支持项目安装的 Vitest 3.2.4+(3.x)或 4.x 入口。");
300
+ }
301
+ runner = { path: runnerPath, digest: await runnerInstallationDigest(runnerPath) };
302
+ }
303
+ catch (error) {
304
+ if (error instanceof VerificationError)
305
+ throw error;
306
+ throw new VerificationError("WSSPEC_TDD_GATE_EXECUTION_FAILED", "无法读取项目 Vitest 安装,请安装依赖并核对 Test Gate 的 runner 路径。");
307
+ }
308
+ }
309
+ else if (!gate.argv.slice(1).includes("--test") || gate.argv.some(part => part.startsWith("--test-reporter"))) {
310
+ throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "node:test 必须由引擎注入 reporter。");
285
311
  }
286
312
  const environmentDigest = sha256(`${JSON.stringify(Object.entries(environment).sort(([left], [right]) => left.localeCompare(right)))}\n`);
287
- const commandDigest = sha256(`${JSON.stringify({ version: 4, gate: gateConfiguration(gate), executablePathDigest: sha256(executable), executableDigest, environmentDigest, reporterDigest: sha256(nodeTestReporterSource) })}\n`);
288
- return { executable, executableDigest, environment, commandDigest };
313
+ const commandDigest = sha256(`${JSON.stringify({ version: 4, gate: gateConfiguration(gate), executablePathDigest: sha256(executable), executableDigest, environmentDigest, reporterDigest: sha256(gate.reporter.type === "vitest" ? vitestReporterSource : nodeTestReporterSource), ...(runner === undefined ? {} : { runner }) })}\n`);
314
+ return { executable, executableDigest, environment, commandDigest, ...(runner === undefined ? {} : { runner }) };
289
315
  }
290
316
  function boundedAppend(current, chunk) {
291
317
  const combined = Buffer.concat([Buffer.from(current), Buffer.from(chunk)]);
@@ -298,15 +324,17 @@ async function runFixedGate(gate, resolved, worktree) {
298
324
  const reportRoot = await mkdtemp(path.join(os.tmpdir(), "wsspec-tdd-report-"));
299
325
  const reporterPath = path.join(reportRoot, "reporter.mjs");
300
326
  const resultPath = path.join(reportRoot, "result.json");
301
- await writeFile(reporterPath, nodeTestReporterSource, { encoding: "utf8", mode: 0o600, flag: "wx" });
327
+ await writeFile(reporterPath, gate.reporter.type === "vitest" ? vitestReporterSource : nodeTestReporterSource, { encoding: "utf8", mode: 0o600, flag: "wx" });
302
328
  await writeFile(resultPath, "", { encoding: "utf8", mode: 0o600, flag: "wx" });
303
329
  const initialResultStat = await lstat(resultPath);
304
- const argv = [`--test-reporter=${pathToFileURL(reporterPath).href}`, `--test-reporter-destination=${resultPath}`, ...gate.argv.slice(1)];
330
+ const argv = gate.reporter.type === "vitest"
331
+ ? [resolved.runner.path, ...gate.argv.slice(2), "--reporter", reporterPath]
332
+ : [`--test-reporter=${pathToFileURL(reporterPath).href}`, `--test-reporter-destination=${resultPath}`, ...gate.argv.slice(1)];
305
333
  let output = "";
306
334
  try {
307
335
  const child = spawn(resolved.executable, argv, {
308
336
  cwd: worktree,
309
- env: resolved.environment,
337
+ env: { ...resolved.environment, ...(gate.reporter.type === "vitest" ? { WSPECKIT_VITEST_REPORT: resultPath } : {}) },
310
338
  shell: false,
311
339
  detached: process.platform !== "win32",
312
340
  stdio: ["ignore", "pipe", "pipe"],
@@ -353,6 +381,8 @@ async function runFixedGate(gate, resolved, worktree) {
353
381
  }
354
382
  if (sha256(await readFile(resolved.executable)) !== resolved.executableDigest)
355
383
  throw new VerificationError("WSSPEC_TDD_EVIDENCE_INVALIDATED", "Test Gate 可执行文件在运行期间发生变化。 ");
384
+ if (resolved.runner !== undefined && await runnerInstallationDigest(resolved.runner.path) !== resolved.runner.digest)
385
+ throw new VerificationError("WSSPEC_TDD_EVIDENCE_INVALIDATED", "Vitest runner 在执行中变化。");
356
386
  return { ...result, output, ...(report === undefined ? {} : { report }) };
357
387
  }
358
388
  finally {
@@ -384,11 +414,14 @@ function sanitizedOutput(output, secrets) {
384
414
  sanitized = sanitized.replaceAll(secret, "[REDACTED]");
385
415
  return sanitized.replace(/((?:authorization|token|password|secret|api[_-]?key)\s*[:=]\s*)([^\s]+)/giu, "$1[REDACTED]").replace(/Bearer\s+[^\s]+/giu, "Bearer [REDACTED]");
386
416
  }
387
- function parseNodeTestReport(value) {
417
+ function parseNodeTestReport(value, adapter) {
388
418
  if (value === undefined || Buffer.byteLength(value) > reportLimit)
389
419
  throw new VerificationError("WSSPEC_TDD_REPORT_INVALID", "node:test reporter 未产生受限结构化结果。 ");
390
420
  try {
391
- return validate("builtin.tdd-node-test-report.v1", JSON.parse(value));
421
+ const report = JSON.parse(value);
422
+ if (report.adapter !== adapter)
423
+ throw new Error("reporter mismatch");
424
+ return validate("builtin.tdd-node-test-report.v1", { ...report, adapter: "node-test" });
392
425
  }
393
426
  catch {
394
427
  throw new VerificationError("WSSPEC_TDD_REPORT_INVALID", "node:test reporter 结果不符合严格 Schema。 ");
@@ -460,7 +493,7 @@ export async function executeTrustedTestGate(input) {
460
493
  throw new VerificationError("WSSPEC_TDD_RED_TIMEOUT", "Test Gate 超时,不能形成可信 Evidence。 ");
461
494
  if (result.signal !== null || result.exitCode === null)
462
495
  throw new VerificationError("WSSPEC_TDD_RED_INFRASTRUCTURE_FAILURE", "Test Gate 被 signal 终止,不能形成可信 Evidence。 ");
463
- const report = parseNodeTestReport(result.report);
496
+ const report = parseNodeTestReport(result.report, input.gate.reporter.type);
464
497
  const [outputWorkspaceDigest, outputManifest, assetManifest] = await Promise.all([
465
498
  computeWorkspaceTreeDigest(input.worktree),
466
499
  testFileManifest(input.worktree, input.testPaths, input.gate.testPathRules),
@@ -492,7 +525,7 @@ export async function executeTrustedTestGate(input) {
492
525
  throw new VerificationError("WSSPEC_TDD_GREEN_NOT_OBSERVED", "同一 Test Gate 未形成结构化零失败 Green 结果。 ");
493
526
  }
494
527
  const failures = input.phase === "red" ? assertionFailures.map(({ name }) => sanitizedOutput(name, secrets)).slice(0, 100) : [];
495
- const summary = sanitizedOutput(input.phase === "red" ? failures.join("\n") : `node:test passed ${report.summary.passed}/${report.summary.tests}`, secrets).slice(0, summaryLimit);
528
+ const summary = sanitizedOutput(input.phase === "red" ? failures.join("\n") : `${input.gate.reporter.type} passed ${report.summary.passed}/${report.summary.tests}`, secrets).slice(0, summaryLimit);
496
529
  const unsigned = {
497
530
  level: "trusted",
498
531
  phase: input.phase,
@@ -1 +1 @@
1
- {"version":3,"file":"red-gate.js","sourceRoot":"","sources":["../../../src/engine/tdd/red-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"red-gate.js","sourceRoot":"","sources":["../../../src/engine/tdd/red-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function runnerInstallationDigest(entry: string): Promise<string>;
@@ -0,0 +1,64 @@
1
+ import { createRequire } from "node:module";
2
+ import { lstat, readFile, readdir, realpath } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { sha256 } from "../../domain/digests.js";
5
+ import { VerificationError } from "./types.js";
6
+ // Node resolves package directories before applying exports conditions. Read manifests
7
+ // directly so packages that hide package.json in exports are still included.
8
+ async function resolvePackage(from, name) {
9
+ if (!/^(?:@[a-z0-9._-]+\/)?[a-z0-9._-]+$/iu.test(name) || name === "." || name === "..") {
10
+ throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "测试工具包含无效依赖名称。");
11
+ }
12
+ const search = createRequire(path.join(from, "package.json")).resolve.paths(name) ?? [];
13
+ for (const directory of search) {
14
+ try {
15
+ return path.dirname(await realpath(path.join(directory, name, "package.json")));
16
+ }
17
+ catch (error) {
18
+ if (error.code !== "ENOENT")
19
+ throw error;
20
+ }
21
+ }
22
+ return undefined;
23
+ }
24
+ export async function runnerInstallationDigest(entry) {
25
+ const packages = new Map();
26
+ async function visit(root) {
27
+ if (packages.has(root))
28
+ return;
29
+ if (packages.size >= 512)
30
+ throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "测试工具依赖数量超出限制。");
31
+ const record = { files: [], dependencies: [] };
32
+ packages.set(root, record);
33
+ async function walk(directory) {
34
+ for (const name of (await readdir(directory)).sort()) {
35
+ if (name === "node_modules")
36
+ continue;
37
+ const file = path.join(directory, name);
38
+ const info = await lstat(file);
39
+ if (info.isDirectory())
40
+ await walk(file);
41
+ else if (info.isFile())
42
+ record.files.push([path.relative(root, file), sha256(await readFile(file))]);
43
+ else
44
+ throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "测试工具依赖包含非普通运行文件。");
45
+ }
46
+ }
47
+ await walk(root);
48
+ const metadata = JSON.parse(await readFile(path.join(root, "package.json"), "utf8"));
49
+ const names = [...new Set([...Object.keys(metadata.dependencies ?? {}), ...Object.keys(metadata.optionalDependencies ?? {}), ...Object.keys(metadata.peerDependencies ?? {})])].sort();
50
+ for (const name of names) {
51
+ const dependency = await resolvePackage(root, name);
52
+ // Missing optional/peer dependencies are bound too: installing one changes the digest.
53
+ record.dependencies.push([name, dependency ?? null]);
54
+ if (dependency !== undefined)
55
+ await visit(dependency);
56
+ else if (metadata.dependencies?.[name] !== undefined && metadata.optionalDependencies?.[name] === undefined) {
57
+ throw new VerificationError("WSSPEC_TDD_GATE_EXECUTION_FAILED", "测试工具的必需依赖未安装。");
58
+ }
59
+ }
60
+ }
61
+ await visit(path.dirname(await realpath(entry)));
62
+ return sha256(JSON.stringify([...packages].sort(([left], [right]) => left.localeCompare(right))));
63
+ }
64
+ //# sourceMappingURL=runner-digest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-digest.js","sourceRoot":"","sources":["../../../src/engine/tdd/runner-digest.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export interface FixedTestGate {
16
16
  testAssetRoots: readonly string[];
17
17
  productPaths: readonly string[];
18
18
  reporter: {
19
- type: "node-test";
19
+ type: "node-test" | "vitest";
20
20
  version: 1;
21
21
  };
22
22
  }
@@ -0,0 +1 @@
1
+ export declare const vitestReporterSource: string;
@@ -0,0 +1,50 @@
1
+ // Engine-owned reporter for the public Vitest 3.2.4+/4 reporter API.
2
+ export const vitestReporterSource = String.raw `
3
+ import { writeFileSync } from 'node:fs';
4
+ function kind(error) {
5
+ const name = String(error?.name || error?.nameStr || '');
6
+ const message = String(error?.message || '');
7
+ if (name === 'AssertionError' || error?.code === 'ERR_ASSERTION') return 'assertion';
8
+ if (name === 'SyntaxError' || /Unexpected token|Parse failure|Transform failed|Expected .* but found/u.test(message)) return 'syntax';
9
+ if (/Cannot find|Failed to resolve|Cannot resolve|MODULE_NOT_FOUND/u.test(message)) return 'dependency';
10
+ return 'other';
11
+ }
12
+ export default class Reporter {
13
+ pendingHooks = new Map();
14
+ onHookStart({ entity, name }) {
15
+ const pending = this.pendingHooks.get(entity.id) || new Set();
16
+ pending.add(name); this.pendingHooks.set(entity.id, pending);
17
+ }
18
+ onHookEnd({ entity, name }) { this.pendingHooks.get(entity.id)?.delete(name); }
19
+ onTestRunEnd(modules, unhandled, reason) {
20
+ const failures = [];
21
+ let failureTotal = 0;
22
+ const summary = { success: reason === 'passed', tests: 0, passed: 0, failed: 0, cancelled: 0, skipped: 0, todo: 0 };
23
+ const fail = (name, file, errors, allowAssertion) => {
24
+ failureTotal++; summary.failed++;
25
+ const kinds = errors.map(kind);
26
+ const type = kinds.includes('syntax') ? 'syntax' : kinds.includes('dependency') ? 'dependency'
27
+ : allowAssertion && kinds.length > 0 && kinds.every(k => k === 'assertion') ? 'assertion' : 'other';
28
+ if (failures.length < 100) failures.push({name: String(name || 'unnamed test').slice(0,512), file: String(file || 'unhandled'), kind: type});
29
+ };
30
+ for (const module of modules) {
31
+ const suites = [module, ...module.children.allSuites()];
32
+ for (const suite of suites) {
33
+ const errors = suite.errors();
34
+ if (errors.length) fail(suite.fullName || module.moduleId, module.moduleId, errors, false);
35
+ }
36
+ for (const test of module.children.allTests()) {
37
+ const result = test.result();
38
+ if (result.state === 'passed') { summary.tests++; summary.passed++; }
39
+ else if (result.state === 'failed') { summary.tests++; fail(test.fullName, module.moduleId, result.errors || [], !this.pendingHooks.get(test.id)?.size); }
40
+ else if (result.state === 'skipped') summary.skipped++;
41
+ else { summary.cancelled++; summary.success = false; }
42
+ }
43
+ }
44
+ for (const error of unhandled) fail('unhandled error', 'unhandled', [error], false);
45
+ summary.success = summary.success && failureTotal === 0 && summary.cancelled === 0;
46
+ writeFileSync(process.env.WSPECKIT_VITEST_REPORT, JSON.stringify({version:1, adapter:'vitest', summary, failureTotal, truncated: failureTotal > failures.length, failures}));
47
+ }
48
+ }
49
+ `;
50
+ //# sourceMappingURL=vitest-reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest-reporter.js","sourceRoot":"","sources":["../../../src/engine/tdd/vitest-reporter.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+C7C,CAAC"}