speccore 8.3.87 → 8.3.97

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 (114) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.js +1 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/analyze.d.ts.map +1 -1
  5. package/dist/commands/analyze.js +195 -20
  6. package/dist/commands/analyze.js.map +1 -1
  7. package/dist/commands/change.js +3 -3
  8. package/dist/commands/change.js.map +1 -1
  9. package/dist/commands/clarify.js +3 -3
  10. package/dist/commands/clarify.js.map +1 -1
  11. package/dist/commands/cleanup.js +6 -6
  12. package/dist/commands/cleanup.js.map +1 -1
  13. package/dist/commands/config.d.ts +2 -1
  14. package/dist/commands/config.d.ts.map +1 -1
  15. package/dist/commands/config.js +21 -2
  16. package/dist/commands/config.js.map +1 -1
  17. package/dist/commands/current.d.ts +2 -1
  18. package/dist/commands/current.d.ts.map +1 -1
  19. package/dist/commands/current.js +25 -5
  20. package/dist/commands/current.js.map +1 -1
  21. package/dist/commands/doc2spec.js +3 -3
  22. package/dist/commands/doc2spec.js.map +1 -1
  23. package/dist/commands/execute.js +34 -16
  24. package/dist/commands/execute.js.map +1 -1
  25. package/dist/commands/graph.js +2 -2
  26. package/dist/commands/graph.js.map +1 -1
  27. package/dist/commands/init.js +3 -3
  28. package/dist/commands/init.js.map +1 -1
  29. package/dist/commands/iteration/split.js +28 -28
  30. package/dist/commands/iteration/split.js.map +1 -1
  31. package/dist/commands/merge-check.d.ts.map +1 -1
  32. package/dist/commands/merge-check.js +41 -6
  33. package/dist/commands/merge-check.js.map +1 -1
  34. package/dist/commands/pr.d.ts.map +1 -1
  35. package/dist/commands/pr.js +63 -41
  36. package/dist/commands/pr.js.map +1 -1
  37. package/dist/commands/rag-index.js +3 -3
  38. package/dist/commands/rag-index.js.map +1 -1
  39. package/dist/commands/update.d.ts +1 -0
  40. package/dist/commands/update.d.ts.map +1 -1
  41. package/dist/commands/update.js +121 -17
  42. package/dist/commands/update.js.map +1 -1
  43. package/dist/commands/verify.d.ts +1 -0
  44. package/dist/commands/verify.d.ts.map +1 -1
  45. package/dist/commands/verify.js +13 -2
  46. package/dist/commands/verify.js.map +1 -1
  47. package/dist/core/ai-context-generator.d.ts.map +1 -1
  48. package/dist/core/ai-context-generator.js +10 -1
  49. package/dist/core/ai-context-generator.js.map +1 -1
  50. package/dist/core/analyze-engine.d.ts.map +1 -1
  51. package/dist/core/analyze-engine.js +20 -4
  52. package/dist/core/analyze-engine.js.map +1 -1
  53. package/dist/core/ask-engine.d.ts.map +1 -1
  54. package/dist/core/ask-engine.js +10 -5
  55. package/dist/core/ask-engine.js.map +1 -1
  56. package/dist/core/change-detection.d.ts +14 -7
  57. package/dist/core/change-detection.d.ts.map +1 -1
  58. package/dist/core/change-detection.js +34 -15
  59. package/dist/core/change-detection.js.map +1 -1
  60. package/dist/core/code-scanner.js +3 -3
  61. package/dist/core/code-scanner.js.map +1 -1
  62. package/dist/core/deploy/engine.js +78 -5
  63. package/dist/core/deploy/engine.js.map +1 -1
  64. package/dist/core/git-integration.d.ts +10 -5
  65. package/dist/core/git-integration.d.ts.map +1 -1
  66. package/dist/core/git-integration.js +25 -17
  67. package/dist/core/git-integration.js.map +1 -1
  68. package/dist/core/global-knowledge.js +3 -3
  69. package/dist/core/global-knowledge.js.map +1 -1
  70. package/dist/core/index-guard.d.ts.map +1 -1
  71. package/dist/core/index-guard.js +2 -1
  72. package/dist/core/index-guard.js.map +1 -1
  73. package/dist/core/knowledge-graph.d.ts.map +1 -1
  74. package/dist/core/knowledge-graph.js +7 -11
  75. package/dist/core/knowledge-graph.js.map +1 -1
  76. package/dist/core/pattern-detector.js +1 -1
  77. package/dist/core/pattern-detector.js.map +1 -1
  78. package/dist/core/perf-verify/engine.js +2 -1
  79. package/dist/core/perf-verify/engine.js.map +1 -1
  80. package/dist/core/prompt-builder.d.ts +11 -0
  81. package/dist/core/prompt-builder.d.ts.map +1 -1
  82. package/dist/core/prompt-builder.js +213 -18
  83. package/dist/core/prompt-builder.js.map +1 -1
  84. package/dist/core/quality-gate.d.ts +5 -0
  85. package/dist/core/quality-gate.d.ts.map +1 -1
  86. package/dist/core/quality-gate.js +2 -0
  87. package/dist/core/quality-gate.js.map +1 -1
  88. package/dist/core/rag-engine.d.ts +8 -0
  89. package/dist/core/rag-engine.d.ts.map +1 -1
  90. package/dist/core/rag-engine.js +41 -3
  91. package/dist/core/rag-engine.js.map +1 -1
  92. package/dist/core/requirement-clarifier.js +4 -4
  93. package/dist/core/requirement-clarifier.js.map +1 -1
  94. package/dist/core/semantic-locator.js +5 -5
  95. package/dist/core/semantic-locator.js.map +1 -1
  96. package/dist/core/ui-verify/route-scanner.js +1 -1
  97. package/dist/core/ui-verify/route-scanner.js.map +1 -1
  98. package/dist/core/ui-verify/smoke-engine.d.ts +2 -0
  99. package/dist/core/ui-verify/smoke-engine.d.ts.map +1 -1
  100. package/dist/core/ui-verify/smoke-engine.js +202 -34
  101. package/dist/core/ui-verify/smoke-engine.js.map +1 -1
  102. package/dist/core/ui-verify/spec-generator.js +2 -0
  103. package/dist/core/ui-verify/spec-generator.js.map +1 -1
  104. package/dist/core/ui-verify/types.d.ts +8 -1
  105. package/dist/core/ui-verify/types.d.ts.map +1 -1
  106. package/dist/core/unified-config.d.ts +17 -0
  107. package/dist/core/unified-config.d.ts.map +1 -1
  108. package/dist/core/unified-config.js +167 -14
  109. package/dist/core/unified-config.js.map +1 -1
  110. package/dist/core/vision-engine.d.ts +27 -0
  111. package/dist/core/vision-engine.d.ts.map +1 -0
  112. package/dist/core/vision-engine.js +358 -0
  113. package/dist/core/vision-engine.js.map +1 -0
  114. package/package.json +1 -1
@@ -15,7 +15,7 @@ async function runSmokeTest(spec, options) {
15
15
  const headless = options.headless !== false;
16
16
  const timeout = options.timeout || 30000;
17
17
  logger_1.logger.info(`🎭 启动 ${browserType} (headless=${headless})`);
18
- const browser = await launchBrowser(browserType, headless);
18
+ const browser = await launchBrowser(browserType, headless, options.executablePath);
19
19
  const context = await browser.newContext({
20
20
  viewport: getViewport(options.device),
21
21
  userAgent: getUserAgent(options.device),
@@ -36,20 +36,66 @@ async function runSmokeTest(spec, options) {
36
36
  }
37
37
  return results;
38
38
  }
39
- async function launchBrowser(type, headless) {
40
- switch (type) {
41
- case 'firefox':
42
- return playwright_1.firefox.launch({ headless });
43
- case 'webkit':
44
- return playwright_1.webkit.launch({ headless });
45
- default:
46
- return playwright_1.chromium.launch({ headless });
39
+ async function launchBrowser(type, headless, customExecutablePath) {
40
+ const browserType = type === 'firefox' ? playwright_1.firefox : type === 'webkit' ? playwright_1.webkit : playwright_1.chromium;
41
+ // v8.3.95+: 优先使用自定义浏览器路径(内网环境)
42
+ if (customExecutablePath) {
43
+ logger_1.logger.info(` 🔧 使用自定义浏览器: ${customExecutablePath}`);
44
+ return browserType.launch({ headless, executablePath: customExecutablePath });
45
+ }
46
+ // v8.3.94+: 检测 Playwright 自带浏览器是否已安装
47
+ try {
48
+ browserType.executablePath();
49
+ return browserType.launch({ headless });
50
+ }
51
+ catch {
52
+ /* Playwright 浏览器未安装,继续尝试系统浏览器 */
47
53
  }
54
+ // v8.3.95+: 自动探测本机系统浏览器(Chrome/Edge)
55
+ const systemBrowser = await findSystemBrowser();
56
+ if (systemBrowser) {
57
+ logger_1.logger.info(` 🔧 Playwright 浏览器未安装,自动使用系统浏览器: ${systemBrowser}`);
58
+ return browserType.launch({ headless, executablePath: systemBrowser });
59
+ }
60
+ const browserName = type === 'firefox' ? 'firefox' : type === 'webkit' ? 'webkit' : 'chromium';
61
+ throw new Error(`Playwright 浏览器 "${browserName}" 未安装,且未检测到本机 Chrome/Edge。\n\n` +
62
+ `方案 1 — 在线安装(需外网):\n` +
63
+ ` npx playwright install ${browserName}\n\n` +
64
+ `方案 2 — 手动指定浏览器路径(内网推荐):\n` +
65
+ ` 设置环境变量 SPECCORE_BROWSER_PATH 指向本地浏览器:\n` +
66
+ ` Windows: set SPECCORE_BROWSER_PATH="C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"\n` +
67
+ ` macOS: export SPECCORE_BROWSER_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"\n` +
68
+ ` Linux: export SPECCORE_BROWSER_PATH="/usr/bin/google-chrome"\n\n` +
69
+ `方案 3 — 离线搬运:\n` +
70
+ ` 在有外网的机器执行 npx playwright install,\n` +
71
+ ` 将缓存目录复制到内网相同位置。`);
72
+ }
73
+ /** 按平台自动探测本机 Chrome/Edge 浏览器路径 */
74
+ async function findSystemBrowser() {
75
+ const candidates = [];
76
+ const platform = process.platform;
77
+ if (platform === 'win32') {
78
+ candidates.push('C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe', 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', 'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe', 'C:\\Program Files\\Microsoft\\Edge\\Application\\msedge.exe');
79
+ }
80
+ else if (platform === 'darwin') {
81
+ candidates.push('/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge');
82
+ }
83
+ else {
84
+ // Linux & others
85
+ candidates.push('/usr/bin/google-chrome', '/usr/bin/google-chrome-stable', '/usr/bin/chromium', '/usr/bin/chromium-browser', '/usr/bin/microsoft-edge');
86
+ }
87
+ for (const path of candidates) {
88
+ if (await (0, fs_extra_1.pathExists)(path)) {
89
+ return path;
90
+ }
91
+ }
92
+ return null;
48
93
  }
49
94
  async function runScenario(page, scenario, spec, options) {
50
95
  const startTime = Date.now();
51
96
  const steps = [];
52
97
  let screenshot;
98
+ const ctx = { frame: null };
53
99
  logger_1.logger.info(` 📋 场景: ${scenario.name}`);
54
100
  try {
55
101
  // 导航到初始 URL
@@ -61,7 +107,7 @@ async function runScenario(page, scenario, spec, options) {
61
107
  for (const action of scenario.actions) {
62
108
  const stepStart = Date.now();
63
109
  try {
64
- await executeAction(page, action);
110
+ await executeAction(page, action, ctx);
65
111
  steps.push({
66
112
  action,
67
113
  passed: true,
@@ -90,7 +136,7 @@ async function runScenario(page, scenario, spec, options) {
90
136
  }
91
137
  const assertStart = Date.now();
92
138
  try {
93
- await executeAssertion(page, assertion);
139
+ await executeAssertion(page, assertion, ctx);
94
140
  steps.push({
95
141
  action: { type: 'wait', selector: assertion.selector },
96
142
  passed: true,
@@ -129,47 +175,48 @@ async function runScenario(page, scenario, spec, options) {
129
175
  screenshot,
130
176
  };
131
177
  }
132
- async function executeAction(page, action) {
178
+ async function executeAction(page, action, ctx) {
179
+ const target = ctx.frame || page;
133
180
  switch (action.type) {
134
181
  case 'fill':
135
182
  if (!action.selector)
136
183
  throw new Error('fill 需要 selector');
137
- await page.fill(action.selector, action.value || '');
184
+ await target.fill(action.selector, action.value || '');
138
185
  break;
139
186
  case 'click':
140
187
  if (!action.selector)
141
188
  throw new Error('click 需要 selector');
142
- await page.click(action.selector);
189
+ await target.click(action.selector);
143
190
  break;
144
191
  case 'select':
145
192
  if (!action.selector)
146
193
  throw new Error('select 需要 selector');
147
- await page.selectOption(action.selector, action.value || '');
194
+ await target.selectOption(action.selector, action.value || '');
148
195
  break;
149
196
  case 'check':
150
197
  if (!action.selector)
151
198
  throw new Error('check 需要 selector');
152
- await page.check(action.selector);
199
+ await target.check(action.selector);
153
200
  break;
154
201
  case 'uncheck':
155
202
  if (!action.selector)
156
203
  throw new Error('uncheck 需要 selector');
157
- await page.uncheck(action.selector);
204
+ await target.uncheck(action.selector);
158
205
  break;
159
206
  case 'hover':
160
207
  if (!action.selector)
161
208
  throw new Error('hover 需要 selector');
162
- await page.hover(action.selector);
209
+ await target.hover(action.selector);
163
210
  break;
164
211
  case 'focus':
165
212
  if (!action.selector)
166
213
  throw new Error('focus 需要 selector');
167
- await page.focus(action.selector);
214
+ await target.focus(action.selector);
168
215
  break;
169
216
  case 'blur':
170
217
  if (!action.selector)
171
218
  throw new Error('blur 需要 selector');
172
- await page.evaluate(`(sel) => {
219
+ await target.evaluate(`(sel) => {
173
220
  const el = document.querySelector(sel);
174
221
  if (el && el.blur) el.blur();
175
222
  }`, action.selector);
@@ -177,19 +224,26 @@ async function executeAction(page, action) {
177
224
  case 'press':
178
225
  if (!action.key)
179
226
  throw new Error('press 需要 key');
180
- await page.keyboard.press(action.key);
227
+ if (action.selector) {
228
+ await target.press(action.selector, action.key);
229
+ }
230
+ else {
231
+ if (ctx.frame)
232
+ throw new Error('iframe 内 press 需要 selector');
233
+ await page.keyboard.press(action.key);
234
+ }
181
235
  break;
182
236
  case 'wait':
183
237
  if (action.selector) {
184
- await page.waitForSelector(action.selector, {
238
+ await target.waitForSelector(action.selector, {
185
239
  timeout: action.timeout || 10000,
186
240
  });
187
241
  }
188
242
  else if (action.delay) {
189
- await page.waitForTimeout(action.delay);
243
+ await target.waitForTimeout(action.delay);
190
244
  }
191
245
  else {
192
- await page.waitForTimeout(1000);
246
+ await target.waitForTimeout(1000);
193
247
  }
194
248
  break;
195
249
  case 'navigate':
@@ -199,36 +253,135 @@ async function executeAction(page, action) {
199
253
  break;
200
254
  case 'screenshot':
201
255
  // 截图在场景级别统一处理,这里只做等待
202
- await page.waitForTimeout(500);
256
+ await target.waitForTimeout(500);
257
+ break;
258
+ case 'cookie':
259
+ if (!action.selector)
260
+ throw new Error('cookie 需要 selector (cookie name)');
261
+ await page.context().addCookies([{
262
+ name: action.selector,
263
+ value: action.value || '',
264
+ domain: action.domain || '',
265
+ path: action.path || '/',
266
+ secure: action.secure ?? false,
267
+ httpOnly: action.httpOnly ?? false,
268
+ }]);
269
+ break;
270
+ case 'localStorage':
271
+ if (!action.selector)
272
+ throw new Error('localStorage 需要 selector (key)');
273
+ await target.evaluate(`(${action.selector}, ${JSON.stringify(action.value || '')}) => { window.localStorage.setItem(${JSON.stringify(action.selector)}, ${JSON.stringify(action.value || '')}); }`);
274
+ break;
275
+ case 'script':
276
+ if (!action.value)
277
+ throw new Error('script 需要 value (JS 代码)');
278
+ await target.evaluate((code) => {
279
+ // eslint-disable-next-line no-eval
280
+ return eval(code);
281
+ }, action.value);
282
+ break;
283
+ case 'scroll':
284
+ if (action.selector) {
285
+ await target.evaluate(`(sel) => {
286
+ const el = document.querySelector(sel);
287
+ if (el) el.scrollIntoView({ behavior: 'instant', block: 'center' });
288
+ }`, action.selector);
289
+ }
290
+ else if (action.value) {
291
+ // value 作为像素值,如 "500" 或 "bottom"
292
+ if (action.value === 'bottom') {
293
+ await target.evaluate(`() => { window.scrollTo(0, document.body.scrollHeight); }`);
294
+ }
295
+ else {
296
+ const y = parseInt(action.value, 10) || 0;
297
+ await target.evaluate(`(y) => { window.scrollTo(0, y); }`, y);
298
+ }
299
+ }
300
+ else {
301
+ await target.evaluate(`() => { window.scrollTo(0, document.body.scrollHeight); }`);
302
+ }
303
+ break;
304
+ case 'upload':
305
+ if (!action.selector)
306
+ throw new Error('upload 需要 selector (input[type=file])');
307
+ if (!action.value)
308
+ throw new Error('upload 需要 value (文件路径)');
309
+ await target.locator(action.selector).setInputFiles(action.value);
310
+ break;
311
+ case 'iframe':
312
+ if (action.value === 'main' || action.value === 'parent' || action.selector === 'main') {
313
+ ctx.frame = null;
314
+ }
315
+ else if (action.selector) {
316
+ const frameElement = await page.locator(action.selector).elementHandle();
317
+ if (!frameElement)
318
+ throw new Error(`未找到 iframe 元素: ${action.selector}`);
319
+ const newFrame = await frameElement.contentFrame();
320
+ if (!newFrame)
321
+ throw new Error(`元素不是 iframe: ${action.selector}`);
322
+ ctx.frame = newFrame;
323
+ }
324
+ else if (action.value) {
325
+ const newFrame = page.frame({ name: action.value }) || page.frames().find(f => f.url().includes(action.value));
326
+ if (!newFrame)
327
+ throw new Error(`未找到 iframe: ${action.value}`);
328
+ ctx.frame = newFrame;
329
+ }
330
+ else {
331
+ throw new Error('iframe 需要 selector (CSS 选择器) 或 value (frame name/url 片段)');
332
+ }
333
+ break;
334
+ case 'waitForRequest':
335
+ if (!action.value)
336
+ throw new Error('waitForRequest 需要 value (URL 匹配模式)');
337
+ await page.waitForRequest(action.value, { timeout: action.timeout || 30000 });
338
+ break;
339
+ case 'waitForResponse':
340
+ if (!action.value)
341
+ throw new Error('waitForResponse 需要 value (URL 匹配模式)');
342
+ await page.waitForResponse(action.value, { timeout: action.timeout || 30000 });
343
+ break;
344
+ case 'drag':
345
+ if (!action.selector)
346
+ throw new Error('drag 需要 selector (源元素)');
347
+ {
348
+ const targetSelector = action.toSelector || action.value;
349
+ if (!targetSelector)
350
+ throw new Error('drag 需要 toSelector 或 value (目标元素)');
351
+ const src = target.locator(action.selector);
352
+ const dst = target.locator(targetSelector);
353
+ await src.dragTo(dst);
354
+ }
203
355
  break;
204
356
  default:
205
357
  throw new Error(`未知操作类型: ${action.type}`);
206
358
  }
207
359
  // 操作后等待
208
360
  if (action.waitFor) {
209
- await page.waitForSelector(action.waitFor, { timeout: action.timeout || 10000 });
361
+ await target.waitForSelector(action.waitFor, { timeout: action.timeout || 10000 });
210
362
  }
211
363
  // 操作间隔
212
364
  if (action.delay && action.delay > 0) {
213
- await page.waitForTimeout(action.delay);
365
+ await target.waitForTimeout(action.delay);
214
366
  }
215
367
  }
216
- async function executeAssertion(page, assertion) {
368
+ async function executeAssertion(page, assertion, ctx) {
369
+ const target = ctx.frame || page;
217
370
  switch (assertion.type) {
218
371
  case 'visible':
219
372
  if (!assertion.selector)
220
373
  throw new Error('visible 断言需要 selector');
221
- await page.waitForSelector(assertion.selector, { state: 'visible' });
374
+ await target.waitForSelector(assertion.selector, { state: 'visible' });
222
375
  break;
223
376
  case 'hidden':
224
377
  if (!assertion.selector)
225
378
  throw new Error('hidden 断言需要 selector');
226
- await page.waitForSelector(assertion.selector, { state: 'hidden' });
379
+ await target.waitForSelector(assertion.selector, { state: 'hidden' });
227
380
  break;
228
381
  case 'text':
229
382
  if (!assertion.selector)
230
383
  throw new Error('text 断言需要 selector');
231
- const text = await page.textContent(assertion.selector);
384
+ const text = await target.textContent(assertion.selector);
232
385
  if (assertion.contains && !text?.includes(assertion.contains)) {
233
386
  throw new Error(`文本不包含 "${assertion.contains}",实际: "${text}"`);
234
387
  }
@@ -239,7 +392,7 @@ async function executeAssertion(page, assertion) {
239
392
  case 'value':
240
393
  if (!assertion.selector)
241
394
  throw new Error('value 断言需要 selector');
242
- const inputValue = await page.inputValue(assertion.selector);
395
+ const inputValue = await target.inputValue(assertion.selector);
243
396
  if (assertion.value && inputValue !== assertion.value) {
244
397
  throw new Error(`值不匹配,期望: "${assertion.value}",实际: "${inputValue}"`);
245
398
  }
@@ -256,7 +409,7 @@ async function executeAssertion(page, assertion) {
256
409
  case 'count':
257
410
  if (!assertion.selector)
258
411
  throw new Error('count 断言需要 selector');
259
- const count = await page.locator(assertion.selector).count();
412
+ const count = await target.locator(assertion.selector).count();
260
413
  if (assertion.count !== undefined && count !== assertion.count) {
261
414
  throw new Error(`元素数量不匹配,期望: ${assertion.count},实际: ${count}`);
262
415
  }
@@ -265,11 +418,26 @@ async function executeAssertion(page, assertion) {
265
418
  if (!assertion.selector || !assertion.attribute) {
266
419
  throw new Error('attribute 断言需要 selector 和 attribute');
267
420
  }
268
- const attr = await page.getAttribute(assertion.selector, assertion.attribute);
421
+ const attr = await target.getAttribute(assertion.selector, assertion.attribute);
269
422
  if (assertion.value && attr !== assertion.value) {
270
423
  throw new Error(`属性 ${assertion.attribute} 不匹配,期望: "${assertion.value}",实际: "${attr}"`);
271
424
  }
272
425
  break;
426
+ case 'style':
427
+ if (!assertion.selector || !assertion.style) {
428
+ throw new Error('style 断言需要 selector 和 style (CSS 属性名)');
429
+ }
430
+ const actualStyle = (await target.evaluate(`(${JSON.stringify(assertion.selector)}, ${JSON.stringify(assertion.style)}) => {
431
+ const el = document.querySelector(${JSON.stringify(assertion.selector)});
432
+ return el ? window.getComputedStyle(el).getPropertyValue(${JSON.stringify(assertion.style)}) : null;
433
+ }`));
434
+ if (assertion.value && actualStyle !== assertion.value) {
435
+ throw new Error(`样式 ${assertion.style} 不匹配,期望: "${assertion.value}",实际: "${actualStyle}"`);
436
+ }
437
+ if (assertion.contains && !(actualStyle || '').includes(assertion.contains)) {
438
+ throw new Error(`样式 ${assertion.style} 不包含 "${assertion.contains}",实际: "${actualStyle}"`);
439
+ }
440
+ break;
273
441
  default:
274
442
  throw new Error(`未知断言类型: ${assertion.type}`);
275
443
  }
@@ -1 +1 @@
1
- {"version":3,"file":"smoke-engine.js","sourceRoot":"","sources":["../../../src/core/ui-verify/smoke-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smoke-engine.js","sourceRoot":"","sources":["../../../src/core/ui-verify/smoke-engine.ts"],"names":[],"mappings":"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"}
@@ -139,6 +139,8 @@ function specToYaml(spec) {
139
139
  lines.push(` selector: ${a.selector}`);
140
140
  if (a.value)
141
141
  lines.push(` value: ${a.value}`);
142
+ if (a.toSelector)
143
+ lines.push(` toSelector: ${a.toSelector}`);
142
144
  if (a.delay)
143
145
  lines.push(` delay: ${a.delay}`);
144
146
  if (a.key)
@@ -1 +1 @@
1
- {"version":3,"file":"spec-generator.js","sourceRoot":"","sources":["../../../src/core/ui-verify/spec-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec-generator.js","sourceRoot":"","sources":["../../../src/core/ui-verify/spec-generator.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export interface Scenario {
16
16
  actions: Action[];
17
17
  assertions: Assertion[];
18
18
  }
19
- export type ActionType = 'fill' | 'click' | 'select' | 'check' | 'uncheck' | 'hover' | 'focus' | 'blur' | 'press' | 'wait' | 'navigate' | 'screenshot';
19
+ export type ActionType = 'fill' | 'click' | 'select' | 'check' | 'uncheck' | 'hover' | 'focus' | 'blur' | 'press' | 'wait' | 'navigate' | 'screenshot' | 'cookie' | 'localStorage' | 'script' | 'scroll' | 'upload' | 'iframe' | 'waitForRequest' | 'waitForResponse' | 'drag';
20
20
  export interface Action {
21
21
  type: ActionType;
22
22
  selector?: string;
@@ -25,6 +25,11 @@ export interface Action {
25
25
  delay?: number;
26
26
  waitFor?: string;
27
27
  timeout?: number;
28
+ domain?: string;
29
+ path?: string;
30
+ secure?: boolean;
31
+ httpOnly?: boolean;
32
+ toSelector?: string;
28
33
  }
29
34
  export type AssertionType = 'visible' | 'hidden' | 'text' | 'value' | 'url' | 'count' | 'attribute' | 'style' | 'visual';
30
35
  export interface Assertion {
@@ -94,6 +99,8 @@ export interface UIVerifyOptions {
94
99
  browsers?: string[];
95
100
  updateBaseline?: boolean;
96
101
  threshold?: 'strict' | 'normal' | 'loose';
102
+ /** 有头模式:显示浏览器窗口(调试用,默认 false) */
103
+ headed?: boolean;
97
104
  /** 视觉模型配置:可传字符串简写或完整配置对象 */
98
105
  visualModel?: string | {
99
106
  provider: 'qwen-vl' | 'openai' | 'anthropic' | 'local';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/ui-verify/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/ui-verify/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,MAAM,CAAC;AAE/Q,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEzH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG;QACrB,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;QACvD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -26,6 +26,8 @@ export interface DeployEnvConfig {
26
26
  host?: string;
27
27
  /** SSH 私钥路径(ssh / sftp 类型用,默认 ~/.ssh/id_rsa) */
28
28
  key?: string;
29
+ /** SSH/SFTP 密码(ssh / sftp 类型用,优先使用密钥认证,密码认证需安装 sshpass) */
30
+ password?: string;
29
31
  /** 远程服务器部署目录(ssh / sftp / pm2 类型用) */
30
32
  remote_dir?: string;
31
33
  /** PM2 配置文件路径(pm2 类型用,默认 ecosystem.config.js) */
@@ -86,6 +88,8 @@ export interface SpecConfig {
86
88
  devices: string[];
87
89
  browsers: string[];
88
90
  timeout: number;
91
+ /** 有头模式:显示浏览器窗口(调试用,默认 false) */
92
+ headed?: boolean;
89
93
  /** 视觉模型配置 */
90
94
  visual_model?: {
91
95
  /** 提供商: qwen-vl(默认) | openai | anthropic | local */
@@ -132,6 +136,19 @@ export interface SpecConfig {
132
136
  review: {
133
137
  check_assignee: boolean;
134
138
  };
139
+ /** v8.3.94+: 视觉模型配置(用于 specs 图片理解、UI 验证截图分析) */
140
+ vision?: {
141
+ enabled: boolean;
142
+ provider: 'qwen-vl' | 'openai' | 'anthropic' | 'local';
143
+ model?: string;
144
+ apiKey?: string;
145
+ endpoint?: string;
146
+ timeout?: number;
147
+ /** 每个 prompt 最多处理多少张图片(默认 10) */
148
+ maxImagesPerPrompt?: number;
149
+ /** 图片最大尺寸(KB),超过则跳过(默认 2048) */
150
+ imageMaxSizeKb?: number;
151
+ };
135
152
  };
136
153
  ask: {
137
154
  routing: {
@@ -1 +1 @@
1
- {"version":3,"file":"unified-config.d.ts","sourceRoot":"","sources":["../../src/core/unified-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unified-config.d.ts","sourceRoot":"","sources":["../../src/core/unified-config.ts"],"names":[],"mappings":"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"}