@gracker/smartperfetto 1.0.17 → 1.0.19

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 (64) hide show
  1. package/dist/agentOpenAI/openAiRuntime.d.ts.map +1 -1
  2. package/dist/agentOpenAI/openAiRuntime.js +13 -5
  3. package/dist/agentOpenAI/openAiRuntime.js.map +1 -1
  4. package/dist/agentv3/claudeRuntime.d.ts.map +1 -1
  5. package/dist/agentv3/claudeRuntime.js +3 -3
  6. package/dist/agentv3/claudeRuntime.js.map +1 -1
  7. package/dist/agentv3/claudeSystemPrompt.d.ts.map +1 -1
  8. package/dist/agentv3/claudeSystemPrompt.js +14 -1
  9. package/dist/agentv3/claudeSystemPrompt.js.map +1 -1
  10. package/dist/agentv3/claudeVerifier.d.ts +1 -1
  11. package/dist/agentv3/claudeVerifier.d.ts.map +1 -1
  12. package/dist/agentv3/claudeVerifier.js +39 -13
  13. package/dist/agentv3/claudeVerifier.js.map +1 -1
  14. package/dist/agentv3/strategyLoader.d.ts +28 -0
  15. package/dist/agentv3/strategyLoader.d.ts.map +1 -1
  16. package/dist/agentv3/strategyLoader.js +35 -0
  17. package/dist/agentv3/strategyLoader.js.map +1 -1
  18. package/dist/cli/commands/validate.d.ts.map +1 -1
  19. package/dist/cli/commands/validate.js +120 -10
  20. package/dist/cli/commands/validate.js.map +1 -1
  21. package/dist/cli-user/commands/codebase.js +4 -4
  22. package/dist/cli-user/commands/codebase.js.map +1 -1
  23. package/dist/routes/ragAdminRoutes.js +7 -7
  24. package/dist/routes/ragAdminRoutes.js.map +1 -1
  25. package/dist/services/codebase/pathSecurityGate.d.ts +2 -2
  26. package/dist/services/codebase/pathSecurityGate.d.ts.map +1 -1
  27. package/dist/services/codebase/pathSecurityGate.js +33 -9
  28. package/dist/services/codebase/pathSecurityGate.js.map +1 -1
  29. package/dist/services/finalReportContractGate.d.ts +13 -0
  30. package/dist/services/finalReportContractGate.d.ts.map +1 -0
  31. package/dist/services/finalReportContractGate.js +48 -0
  32. package/dist/services/finalReportContractGate.js.map +1 -0
  33. package/dist/services/finalResultQualityGate.d.ts +3 -1
  34. package/dist/services/finalResultQualityGate.d.ts.map +1 -1
  35. package/dist/services/finalResultQualityGate.js +18 -1
  36. package/dist/services/finalResultQualityGate.js.map +1 -1
  37. package/dist/services/htmlReportGenerator.d.ts +12 -0
  38. package/dist/services/htmlReportGenerator.d.ts.map +1 -1
  39. package/dist/services/htmlReportGenerator.js +286 -33
  40. package/dist/services/htmlReportGenerator.js.map +1 -1
  41. package/dist/services/rag/aospSourceIngester.d.ts +1 -1
  42. package/dist/services/rag/aospSourceIngester.d.ts.map +1 -1
  43. package/dist/services/rag/aospSourceIngester.js +6 -4
  44. package/dist/services/rag/aospSourceIngester.js.map +1 -1
  45. package/dist/services/rag/appSourceIngester.d.ts +1 -1
  46. package/dist/services/rag/appSourceIngester.d.ts.map +1 -1
  47. package/dist/services/rag/appSourceIngester.js +6 -4
  48. package/dist/services/rag/appSourceIngester.js.map +1 -1
  49. package/dist/services/rag/kernelSourceIngester.d.ts +1 -1
  50. package/dist/services/rag/kernelSourceIngester.d.ts.map +1 -1
  51. package/dist/services/rag/kernelSourceIngester.js +6 -4
  52. package/dist/services/rag/kernelSourceIngester.js.map +1 -1
  53. package/dist/services/ragStore.d.ts +2 -0
  54. package/dist/services/ragStore.d.ts.map +1 -1
  55. package/dist/services/ragStore.js +6 -1
  56. package/dist/services/ragStore.js.map +1 -1
  57. package/dist/services/renderingPipelineDetectionSkillGenerator.d.ts.map +1 -1
  58. package/dist/services/renderingPipelineDetectionSkillGenerator.js +149 -81
  59. package/dist/services/renderingPipelineDetectionSkillGenerator.js.map +1 -1
  60. package/package.json +3 -3
  61. package/strategies/prompt-openai-final-report-continuation-en.template.md +3 -1
  62. package/strategies/prompt-openai-final-report-continuation-zh.template.md +3 -1
  63. package/strategies/scrolling.strategy.md +22 -0
  64. package/strategies/startup.strategy.md +26 -0
@@ -39,6 +39,13 @@ const FEATURE_PIPELINE_IDS = new Set([
39
39
  function sqlStringLiteral(value) {
40
40
  return `'${value.replace(/'/g, "''")}'`;
41
41
  }
42
+ function sqlValueLiteral(value) {
43
+ if (value === null)
44
+ return 'NULL';
45
+ if (typeof value === 'number')
46
+ return String(value);
47
+ return sqlStringLiteral(value);
48
+ }
42
49
  function normalizePositiveInt(value, fallback = 1) {
43
50
  const parsed = typeof value === 'number' ? value : parseInt(String(value ?? ''), 10);
44
51
  if (!Number.isFinite(parsed) || parsed <= 0)
@@ -54,50 +61,24 @@ function normalizeNonNegativeInt(value, fallback = 0) {
54
61
  function getScopeColumn(pipelineId) {
55
62
  return GLOBAL_SCOPE_PIPELINE_IDS.has(pipelineId) ? 'global_cnt' : 'app_cnt';
56
63
  }
57
- function buildCountSubquery(params) {
58
- return `COALESCE((SELECT SUM(${params.scopeColumn}) FROM ${params.table} WHERE ${params.nameColumn} ${params.op} ${sqlStringLiteral(params.pattern)}), 0)`;
64
+ function getSignalScope(pipelineId) {
65
+ return getScopeColumn(pipelineId) === 'global_cnt' ? 'g' : 'a';
59
66
  }
60
- function buildSignalCountExpr(signal, scopeColumn) {
61
- const exprs = [];
67
+ function buildSignalComponents(signal) {
68
+ const components = [];
62
69
  if (signal.thread) {
63
- exprs.push(buildCountSubquery({
64
- table: 'thread_counts',
65
- nameColumn: 'thread_name',
66
- op: '=',
67
- pattern: signal.thread,
68
- scopeColumn,
69
- }));
70
+ components.push({ source: 't', op: 'eq', pattern: signal.thread });
70
71
  }
71
72
  if (signal.thread_pattern) {
72
- exprs.push(buildCountSubquery({
73
- table: 'thread_counts',
74
- nameColumn: 'thread_name',
75
- op: 'GLOB',
76
- pattern: signal.thread_pattern,
77
- scopeColumn,
78
- }));
73
+ components.push({ source: 't', op: 'glob', pattern: signal.thread_pattern });
79
74
  }
80
75
  if (signal.slice) {
81
- exprs.push(buildCountSubquery({
82
- table: 'slice_counts',
83
- nameColumn: 'slice_name',
84
- op: '=',
85
- pattern: signal.slice,
86
- scopeColumn,
87
- }));
76
+ components.push({ source: 's', op: 'eq', pattern: signal.slice });
88
77
  }
89
78
  if (signal.slice_pattern) {
90
- exprs.push(buildCountSubquery({
91
- table: 'slice_counts',
92
- nameColumn: 'slice_name',
93
- op: 'GLOB',
94
- pattern: signal.slice_pattern,
95
- scopeColumn,
96
- }));
79
+ components.push({ source: 's', op: 'glob', pattern: signal.slice_pattern });
97
80
  }
98
- if (exprs.length === 0)
99
- return null;
100
- return exprs.join(' + ');
81
+ return components;
101
82
  }
102
83
  function describeSignalKey(signal) {
103
84
  if (signal.thread)
@@ -112,76 +93,85 @@ function describeSignalKey(signal) {
112
93
  }
113
94
  function buildPipelineListSql(pipelines) {
114
95
  if (pipelines.length === 0) {
115
- return `SELECT ${sqlStringLiteral(DEFAULT_PIPELINE_ID)} as pipeline_id`;
96
+ return `(${sqlStringLiteral(DEFAULT_PIPELINE_ID)})`;
116
97
  }
117
98
  return pipelines
118
- .map((p) => `SELECT ${sqlStringLiteral(p.meta.pipeline_id)} as pipeline_id`)
119
- .join('\n UNION ALL\n ');
99
+ .map((p) => `(${sqlStringLiteral(p.meta.pipeline_id)})`)
100
+ .join(',\n ');
120
101
  }
121
102
  function buildPipelineDocsSql(pipelines) {
122
103
  if (pipelines.length === 0) {
123
- return `SELECT ${sqlStringLiteral(DEFAULT_PIPELINE_ID)} as pipeline_id, ${sqlStringLiteral(DEFAULT_DOC_PATH)} as doc_path`;
104
+ return `(${sqlStringLiteral(DEFAULT_PIPELINE_ID)}, ${sqlStringLiteral(DEFAULT_DOC_PATH)})`;
124
105
  }
125
106
  return pipelines
126
107
  .map((p) => {
127
108
  const docPath = p.meta.doc_path ? sqlStringLiteral(p.meta.doc_path) : 'NULL';
128
- return `SELECT ${sqlStringLiteral(p.meta.pipeline_id)} as pipeline_id, ${docPath} as doc_path`;
109
+ return `(${sqlStringLiteral(p.meta.pipeline_id)}, ${docPath})`;
129
110
  })
130
- .join('\n UNION ALL\n ');
111
+ .join(',\n ');
131
112
  }
132
- function buildSignalsRowsSql(pipelines) {
113
+ function buildSignalDefsSql(pipelines) {
133
114
  const rows = [];
115
+ let signalId = 0;
116
+ const addSignal = (pipelineId, signalType, signalName, weight, minCount, signal) => {
117
+ const components = buildSignalComponents(signal);
118
+ if (components.length === 0)
119
+ return;
120
+ const currentSignalId = signalId++;
121
+ const scope = getSignalScope(pipelineId);
122
+ for (const component of components) {
123
+ rows.push(`(${[
124
+ currentSignalId,
125
+ pipelineId,
126
+ signalType,
127
+ signalName,
128
+ weight,
129
+ minCount,
130
+ component.source,
131
+ component.op,
132
+ component.pattern,
133
+ scope,
134
+ ].map(sqlValueLiteral).join(', ')})`);
135
+ }
136
+ };
134
137
  for (const pipeline of pipelines) {
135
138
  const pipelineId = pipeline.meta.pipeline_id;
136
139
  const detection = pipeline.detection;
137
140
  if (!detection)
138
141
  continue;
139
- const scopeColumn = getScopeColumn(pipelineId);
140
142
  for (const req of detection.required_signals || []) {
141
143
  const minCount = normalizePositiveInt(req.min_count, 1);
142
- const cntExpr = buildSignalCountExpr(req, scopeColumn);
143
- if (!cntExpr) {
144
+ if (buildSignalComponents(req).length === 0) {
144
145
  console.warn(`[rendering_pipeline_detection] Invalid required_signals entry for ${pipelineId}:`, req);
145
146
  continue;
146
147
  }
147
- rows.push(`SELECT ${sqlStringLiteral(pipelineId)} as pipeline_id, 'required' as signal_type, ${sqlStringLiteral(describeSignalKey(req))} as signal_name, 0 as weight, ${minCount} as min_count, (${cntExpr}) as cnt`);
148
+ addSignal(pipelineId, 'r', describeSignalKey(req), 0, minCount, req);
148
149
  }
149
150
  for (const sc of detection.scoring_signals || []) {
150
151
  const minCount = normalizePositiveInt(sc.min_count, 1);
151
152
  const weight = normalizeNonNegativeInt(sc.weight, 0);
152
- const cntExpr = buildSignalCountExpr(sc, scopeColumn);
153
- if (!cntExpr) {
153
+ if (buildSignalComponents(sc).length === 0) {
154
154
  console.warn(`[rendering_pipeline_detection] Invalid scoring_signals entry for ${pipelineId} (${sc.signal}):`, sc);
155
155
  continue;
156
156
  }
157
- rows.push(`SELECT ${sqlStringLiteral(pipelineId)} as pipeline_id, 'score' as signal_type, ${sqlStringLiteral(sc.signal)} as signal_name, ${weight} as weight, ${minCount} as min_count, (${cntExpr}) as cnt`);
157
+ addSignal(pipelineId, 's', sc.signal, weight, minCount, sc);
158
158
  }
159
159
  for (const ex of detection.exclude_if || []) {
160
- const cntExpr = buildSignalCountExpr(ex, scopeColumn);
161
- if (!cntExpr) {
160
+ if (buildSignalComponents(ex).length === 0) {
162
161
  console.warn(`[rendering_pipeline_detection] Invalid exclude_if entry for ${pipelineId}:`, ex);
163
162
  continue;
164
163
  }
165
- rows.push(`SELECT ${sqlStringLiteral(pipelineId)} as pipeline_id, 'exclude' as signal_type, ${sqlStringLiteral(describeSignalKey(ex))} as signal_name, 0 as weight, 1 as min_count, (${cntExpr}) as cnt`);
164
+ addSignal(pipelineId, 'e', describeSignalKey(ex), 0, 1, ex);
166
165
  }
167
166
  }
168
167
  if (rows.length === 0) {
169
- return `SELECT ${sqlStringLiteral(DEFAULT_PIPELINE_ID)} as pipeline_id, 'score' as signal_type, 'noop' as signal_name, 0 as weight, 1 as min_count, 0 as cnt`;
168
+ return `(0, ${sqlStringLiteral(DEFAULT_PIPELINE_ID)}, 's', 'noop', 0, 1, 's', 'eq', '__smartperfetto_noop__', 'a')`;
170
169
  }
171
- return rows.join('\n UNION ALL\n ');
170
+ return rows.join(',\n ');
172
171
  }
173
- function buildDeterminePipelineSql(pipelines) {
172
+ function buildPipelineScoresSql(pipelines) {
174
173
  const pipelineListSql = buildPipelineListSql(pipelines);
175
- const pipelineDocsSql = buildPipelineDocsSql(pipelines);
176
- const signalsRowsSql = buildSignalsRowsSql(pipelines);
177
- const primaryExcludeSql = Array.from(NON_PRIMARY_PIPELINE_IDS)
178
- .map((id) => sqlStringLiteral(id))
179
- .join(', ');
180
- const featureIdsSql = Array.from(FEATURE_PIPELINE_IDS)
181
- .map((id) => sqlStringLiteral(id))
182
- .join(', ');
183
- // NOTE: We intentionally avoid `${stepId}`-as-table substitution because SkillExecutor stores
184
- // step results as JS objects, not temp tables. This SQL is self-contained.
174
+ const signalDefsSql = buildSignalDefsSql(pipelines);
185
175
  return `
186
176
  WITH
187
177
  -- Identify a dominant app (when package is not provided) by looking for rendering-related slices,
@@ -260,33 +250,62 @@ function buildDeterminePipelineSql(pipelines) {
260
250
  WHERE s.name IS NOT NULL
261
251
  GROUP BY s.name
262
252
  ),
263
- pipeline_list AS (
253
+ pipeline_list(pipeline_id) AS (
254
+ VALUES
264
255
  ${pipelineListSql}
265
256
  ),
266
- pipeline_docs AS (
267
- ${pipelineDocsSql}
257
+ signal_defs(signal_id, pipeline_id, signal_type, signal_name, weight, min_count, source, op, pattern, scope) AS (
258
+ VALUES
259
+ ${signalDefsSql}
268
260
  ),
269
- signals AS (
270
- ${signalsRowsSql}
261
+ signal_counts AS (
262
+ SELECT
263
+ sd.signal_id,
264
+ sd.pipeline_id,
265
+ sd.signal_type,
266
+ sd.signal_name,
267
+ sd.weight,
268
+ sd.min_count,
269
+ SUM(
270
+ CASE
271
+ WHEN sd.source = 't' THEN CASE WHEN sd.scope = 'g' THEN COALESCE(tc.global_cnt, 0) ELSE COALESCE(tc.app_cnt, 0) END
272
+ WHEN sd.source = 's' THEN CASE WHEN sd.scope = 'g' THEN COALESCE(sc.global_cnt, 0) ELSE COALESCE(sc.app_cnt, 0) END
273
+ ELSE 0
274
+ END
275
+ ) as cnt
276
+ FROM signal_defs sd
277
+ LEFT JOIN thread_counts tc
278
+ ON sd.source = 't'
279
+ AND (
280
+ (sd.op = 'eq' AND tc.thread_name = sd.pattern)
281
+ OR (sd.op = 'glob' AND tc.thread_name GLOB sd.pattern)
282
+ )
283
+ LEFT JOIN slice_counts sc
284
+ ON sd.source = 's'
285
+ AND (
286
+ (sd.op = 'eq' AND sc.slice_name = sd.pattern)
287
+ OR (sd.op = 'glob' AND sc.slice_name GLOB sd.pattern)
288
+ )
289
+ GROUP BY sd.signal_id, sd.pipeline_id, sd.signal_type, sd.signal_name, sd.weight, sd.min_count
271
290
  ),
272
291
  signal_agg AS (
273
292
  SELECT
274
293
  pipeline_id,
275
294
  MIN(
276
295
  CASE
277
- WHEN signal_type = 'required' THEN CASE WHEN cnt >= min_count THEN 1 ELSE 0 END
296
+ WHEN signal_type = 'r' THEN CASE WHEN cnt >= min_count THEN 1 ELSE 0 END
278
297
  ELSE 1
279
298
  END
280
299
  ) as required_ok,
281
300
  MAX(
282
301
  CASE
283
- WHEN signal_type = 'exclude' THEN CASE WHEN cnt > 0 THEN 1 ELSE 0 END
302
+ WHEN signal_type = 'e' THEN CASE WHEN cnt > 0 THEN 1 ELSE 0 END
284
303
  ELSE 0
285
304
  END
286
305
  ) as excluded,
287
- SUM(CASE WHEN signal_type = 'score' THEN weight ELSE 0 END) as total_weight,
288
- SUM(CASE WHEN signal_type = 'score' AND cnt >= min_count THEN weight ELSE 0 END) as matched_weight
289
- FROM signals
306
+ SUM(CASE WHEN signal_type = 's' THEN weight ELSE 0 END) as total_weight,
307
+ SUM(CASE WHEN signal_type = 's' AND cnt >= min_count THEN weight ELSE 0 END) as matched_weight
308
+ FROM signal_counts
290
309
  GROUP BY pipeline_id
291
310
  ),
292
311
  pipeline_scores AS (
@@ -302,19 +321,43 @@ function buildDeterminePipelineSql(pipelines) {
302
321
  scores AS (
303
322
  SELECT
304
323
  pipeline_id,
324
+ required_ok,
325
+ excluded,
326
+ total_weight,
327
+ matched_weight,
305
328
  CASE
306
329
  WHEN required_ok = 1 AND excluded = 0 AND total_weight > 0
307
330
  THEN matched_weight * 1.0 / total_weight
308
331
  ELSE 0
309
332
  END as score
310
333
  FROM pipeline_scores
334
+ )
335
+ SELECT * FROM scores
336
+ `;
337
+ }
338
+ function buildDeterminePipelineSql(pipelines) {
339
+ const pipelineDocsSql = buildPipelineDocsSql(pipelines);
340
+ const primaryExcludeSql = Array.from(NON_PRIMARY_PIPELINE_IDS)
341
+ .map((id) => sqlStringLiteral(id))
342
+ .join(', ');
343
+ const featureIdsSql = Array.from(FEATURE_PIPELINE_IDS)
344
+ .map((id) => sqlStringLiteral(id))
345
+ .join(', ');
346
+ return `
347
+ WITH
348
+ pipeline_scores AS (
349
+ SELECT * FROM \${pipeline_scores}
350
+ ),
351
+ pipeline_docs(pipeline_id, doc_path) AS (
352
+ VALUES
353
+ ${pipelineDocsSql}
311
354
  ),
312
355
  ranked AS (
313
356
  SELECT
314
357
  pipeline_id,
315
358
  score,
316
359
  ROW_NUMBER() OVER (ORDER BY score DESC, pipeline_id ASC) as rank
317
- FROM scores
360
+ FROM pipeline_scores
318
361
  WHERE score >= ${SCORE_THRESHOLD}
319
362
  ${primaryExcludeSql ? `AND pipeline_id NOT IN (${primaryExcludeSql})` : ''}
320
363
  ),
@@ -322,21 +365,33 @@ function buildDeterminePipelineSql(pipelines) {
322
365
  SELECT pipeline_id, score FROM ranked WHERE rank = 1
323
366
  ),
324
367
  candidates AS (
325
- SELECT pipeline_id, score FROM ranked WHERE rank <= ${MAX_CANDIDATES}
368
+ SELECT pipeline_id, score, rank FROM ranked WHERE rank <= ${MAX_CANDIDATES}
326
369
  ),
327
370
  features AS (
328
- SELECT pipeline_id, score FROM scores
371
+ SELECT
372
+ pipeline_id,
373
+ score,
374
+ ROW_NUMBER() OVER (ORDER BY score DESC, pipeline_id ASC) as rank
375
+ FROM pipeline_scores
329
376
  WHERE pipeline_id IN (${featureIdsSql})
330
377
  AND score >= ${SCORE_THRESHOLD}
331
378
  ),
332
379
  candidate_list AS (
333
380
  SELECT GROUP_CONCAT(pipeline_id || ':' || ROUND(score, 2), ',') as candidates_list
334
- FROM candidates
381
+ FROM (
382
+ SELECT pipeline_id, score
383
+ FROM candidates
384
+ ORDER BY rank ASC
385
+ )
335
386
  GROUP BY 'all_candidates'
336
387
  ),
337
388
  feature_list AS (
338
389
  SELECT GROUP_CONCAT(pipeline_id || ':' || ROUND(score, 2), ',') as features_list
339
- FROM features
390
+ FROM (
391
+ SELECT pipeline_id, score
392
+ FROM features
393
+ ORDER BY rank ASC
394
+ )
340
395
  GROUP BY 'all_features'
341
396
  ),
342
397
  result AS (
@@ -976,6 +1031,7 @@ async function generateRenderingPipelineDetectionSkill() {
976
1031
  .getAllPipelines()
977
1032
  .filter((p) => p?.meta?.pipeline_id)
978
1033
  .sort((a, b) => a.meta.pipeline_id.localeCompare(b.meta.pipeline_id));
1034
+ const pipelineScoresSql = buildPipelineScoresSql(pipelines);
979
1035
  const determinePipelineSql = buildDeterminePipelineSql(pipelines);
980
1036
  const subvariantsSql = buildSubvariantsSql();
981
1037
  const traceRequirementsSql = buildTraceRequirementsSql();
@@ -986,7 +1042,7 @@ async function generateRenderingPipelineDetectionSkill() {
986
1042
  const bufferqueuePathSignalsSql = buildBufferqueuePathSignalsSql();
987
1043
  return {
988
1044
  name: 'rendering_pipeline_detection',
989
- version: '3.2',
1045
+ version: '3.3',
990
1046
  type: 'composite',
991
1047
  category: 'rendering',
992
1048
  meta: {
@@ -1009,6 +1065,17 @@ async function generateRenderingPipelineDetectionSkill() {
1009
1065
  },
1010
1066
  ],
1011
1067
  steps: [
1068
+ {
1069
+ id: 'score_pipelines',
1070
+ type: 'atomic',
1071
+ name: '计算管线类型评分 (YAML 驱动)',
1072
+ display: {
1073
+ level: 'detail',
1074
+ title: '管线类型评分',
1075
+ },
1076
+ sql: pipelineScoresSql,
1077
+ save_as: 'pipeline_scores',
1078
+ },
1012
1079
  {
1013
1080
  id: 'determine_pipeline',
1014
1081
  type: 'atomic',
@@ -1104,6 +1171,7 @@ async function generateRenderingPipelineDetectionSkill() {
1104
1171
  ],
1105
1172
  output: {
1106
1173
  fields: [
1174
+ { name: 'pipeline_scores', label: '各管线类型得分 (调试用)' },
1107
1175
  { name: 'pipeline_result', label: '主管线识别结果' },
1108
1176
  { name: 'subvariants', label: '子变体信息' },
1109
1177
  { name: 'trace_requirements', label: '采集完整性检查' },
@@ -1 +1 @@
1
- {"version":3,"file":"renderingPipelineDetectionSkillGenerator.js","sourceRoot":"","sources":["../../src/services/renderingPipelineDetectionSkillGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderingPipelineDetectionSkillGenerator.js","sourceRoot":"","sources":["../../src/services/renderingPipelineDetectionSkillGenerator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gracker/smartperfetto",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "description": "SmartPerfetto CLI and backend runtime",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -100,7 +100,7 @@
100
100
  "author": "",
101
101
  "license": "AGPL-3.0-or-later",
102
102
  "dependencies": {
103
- "@anthropic-ai/claude-agent-sdk": "^0.2.141",
103
+ "@anthropic-ai/claude-agent-sdk": "^0.3.148",
104
104
  "@openai/agents": "^0.11.4",
105
105
  "@types/better-sqlite3": "^7.6.13",
106
106
  "@types/js-yaml": "^4.0.9",
@@ -120,7 +120,7 @@
120
120
  "@jest/globals": "^30.4.1",
121
121
  "@types/cors": "^2.8.19",
122
122
  "@types/express": "^5.0.6",
123
- "@types/glob": "^8.1.0",
123
+ "@types/glob": "^9.0.0",
124
124
  "@types/jest": "^30.0.0",
125
125
  "@types/markdown-it": "^14.1.2",
126
126
  "@types/multer": "^2.0.0",
@@ -7,6 +7,8 @@ Now output only the final report body. The first line must be `## Final Conclusi
7
7
 
8
8
  The report must include: final conclusion, key evidence chain, root-cause breakdown, ruled-out factors, recommendations, and confidence/limitations.
9
9
 
10
+ Continue to obey the scene strategy, Final Report Contract, and latest next_phase_reminder constraints from this run. If the scene strategy or contract requires root-cause distributions, representative samples, phase-duration breakdowns, dual-audience recommendations, architecture branch judgments, or any other scene-specific structure, keep that structure in the final report instead of compressing it into a short summary.
11
+
10
12
  Do not merely restate phase summaries; synthesize the collected concrete values and evidence into a readable conclusion.
11
13
 
12
- Length requirement: at most 700 English words. Use 2-3 bullets per section; do not expand into a phase-by-phase log, do not copy artifact tables, do not output the evidence table index, and do not repeat raw SQL. If the evidence is sufficient, conclude directly.
14
+ Length target: about 1,200-1,800 English words. Use compact aggregation tables where helpful; do not expand into a phase-by-phase log, do not copy raw artifact tables, do not output the data-source/evidence-table index because the system will generate it, and do not repeat raw SQL. When evidence is abundant, prioritize the key evidence chain, structures required by the scene contract, and the highest-priority root causes.
@@ -7,6 +7,8 @@
7
7
 
8
8
  报告必须包含:综合结论、关键证据链、根因拆解、已排除因素、优化建议、置信度/限制。
9
9
 
10
+ 必须继续遵守本轮场景策略、Final Report Contract 和最后一个 next_phase_reminder 的输出约束。若场景策略或契约要求根因分布、代表样本、阶段耗时拆分、双受众建议、架构分支判断或其他专属结构,最终报告必须保留这些结构,不能降级为短摘要。
11
+
10
12
  不要只复述阶段摘要;必须把已采集到的具体数值和证据串成可读结论。
11
13
 
12
- 长度要求:最多 1200 个中文字符。每个小节 2-3 条要点即可;不要展开逐阶段流水账,不要复制 artifact 表格,不要重复 SQL 原文,不要输出证据表索引。若证据已经足够,直接收束。
14
+ 长度目标:约 2500-3500 个中文字符。可以用小型聚合表压缩信息;不要展开逐阶段流水账,不要复制 artifact 原表,不要重复 SQL 原文,不要输出“数据来源索引/证据表索引”(系统会自动生成)。若证据很多,优先保留关键证据链、场景契约要求的结构和最高优先级根因。
@@ -52,6 +52,28 @@ keywords:
52
52
  - nativeactivity
53
53
  - drawfunctor
54
54
 
55
+ final_report_contract:
56
+ required_sections:
57
+ - id: root_cause_distribution
58
+ label: 全帧根因分布
59
+ description: '按 reason_code / 责任方聚合,列出帧数、占比、关键四象限或频率特征。'
60
+ pattern_groups:
61
+ - ['全帧根因分布', '根因分布', 'root[-\s]?cause distribution', 'reason_code']
62
+ - ['帧数', '占比', 'frame count', 'percentage', '\|\s*根因\s*\|', '\|\s*reason']
63
+ - id: representative_frames
64
+ label: 代表帧分析
65
+ description: '每个 CRITICAL/HIGH 根因至少给出 1 个代表样本,包含帧耗时、超预算倍数、vsync_missed、关键 slice/阻塞点和因果链。'
66
+ pattern_groups:
67
+ - ['代表帧', 'representative\s+frame']
68
+ - ['frame_id', 'guilty[_ ]?frame', '帧耗时', 'frame duration']
69
+ - ['vsync_missed', '超预算', 'budget overrun', 'missed[-\s]?vsync']
70
+ - id: peak_and_semantic_metrics
71
+ label: 峰值/口径指标
72
+ description: '说明总帧数、真实掉帧、假阳性/Buffer Stuffing、最长帧和最长连续丢帧等口径。'
73
+ pattern_groups:
74
+ - ['真实掉帧', 'real[_\s-]?jank']
75
+ - ['最长帧', 'longest frame', '峰值']
76
+
55
77
  phase_hints:
56
78
  - id: overview
57
79
  keywords: ['概览', 'overview', '帧', 'frame', 'jank', '卡顿', 'scrolling_analysis', '统计']
@@ -38,6 +38,32 @@ compound_patterns:
38
38
  - "打开.*(应用|app|软件)"
39
39
  - "打开.*(速度|时间|耗时)"
40
40
 
41
+ final_report_contract:
42
+ required_sections:
43
+ - id: startup_type_and_metrics
44
+ label: 启动类型与 TTID/TTFD
45
+ description: '明确 cold/warm/hot 判定,并给出 TTID/TTFD 或对应不可用原因。'
46
+ pattern_groups:
47
+ - ['启动类型', '冷启动', '温启动', '热启动', 'cold\s*start', 'warm\s*start', 'hot\s*start']
48
+ - ['TTID', 'TTFD', 'Time\s+to\s+initial\s+display', 'Time\s+to\s+full\s+display']
49
+ - id: phase_breakdown
50
+ label: 阶段耗时分解
51
+ description: '包含 startup_detail / phase breakdown 口径,并优先使用 self_ms 解释阶段贡献。'
52
+ pattern_groups:
53
+ - ['阶段耗时', '阶段分解', 'phase\s+breakdown', 'startup_detail']
54
+ - ['self_ms', 'dur_ms', '耗时', '\d+(?:\.\d+)?\s*ms']
55
+ - id: root_cause_references
56
+ label: 根因编号引用
57
+ description: '关键根因需要引用 A1-A18、B1-B12 或 SRxx 编号,便于和启动知识库交叉核对。'
58
+ pattern_groups:
59
+ - ['\bA(?:1[0-8]?|[2-9])\b', '\bB(?:1[0-2]?|[2-9])\b', 'SR(?:09|1[0-9]|20)(?!\d)']
60
+ - id: audience_recommendations
61
+ label: App/系统分层建议
62
+ description: '优化建议必须区分 App 层和系统/平台/ROM 层。'
63
+ pattern_groups:
64
+ - ['App层', '应用层', 'App\s+layer']
65
+ - ['系统/平台层', '系统层', '平台层', 'ROM层', 'System/Platform', 'platform\s+layer']
66
+
41
67
  phase_hints:
42
68
  - id: detail_breakdown
43
69
  keywords: ['detail', '详情', '分解', 'breakdown', '阶段', 'startup_detail', '耗时']