@gracker/smartperfetto 1.0.20 → 1.0.22

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 (104) hide show
  1. package/dist/agent/config/domainManifest.d.ts +5 -3
  2. package/dist/agent/config/domainManifest.d.ts.map +1 -1
  3. package/dist/agent/config/domainManifest.js +120 -5
  4. package/dist/agent/config/domainManifest.js.map +1 -1
  5. package/dist/agent/core/orchestratorTypes.d.ts +5 -0
  6. package/dist/agent/core/orchestratorTypes.d.ts.map +1 -1
  7. package/dist/agent/core/orchestratorTypes.js.map +1 -1
  8. package/dist/agent/scene/buildSmartChatReport.d.ts +13 -0
  9. package/dist/agent/scene/buildSmartChatReport.d.ts.map +1 -0
  10. package/dist/agent/scene/buildSmartChatReport.js +333 -0
  11. package/dist/agent/scene/buildSmartChatReport.js.map +1 -0
  12. package/dist/agent/scene/sceneAnalysisJobRunner.d.ts +8 -4
  13. package/dist/agent/scene/sceneAnalysisJobRunner.d.ts.map +1 -1
  14. package/dist/agent/scene/sceneAnalysisJobRunner.js +78 -3
  15. package/dist/agent/scene/sceneAnalysisJobRunner.js.map +1 -1
  16. package/dist/agent/scene/sceneIntervalBuilder.d.ts +14 -5
  17. package/dist/agent/scene/sceneIntervalBuilder.d.ts.map +1 -1
  18. package/dist/agent/scene/sceneIntervalBuilder.js +578 -1
  19. package/dist/agent/scene/sceneIntervalBuilder.js.map +1 -1
  20. package/dist/agent/scene/sceneStage1Verifier.d.ts +8 -0
  21. package/dist/agent/scene/sceneStage1Verifier.d.ts.map +1 -0
  22. package/dist/agent/scene/sceneStage1Verifier.js +245 -0
  23. package/dist/agent/scene/sceneStage1Verifier.js.map +1 -0
  24. package/dist/agent/scene/sceneStoryService.d.ts +20 -2
  25. package/dist/agent/scene/sceneStoryService.d.ts.map +1 -1
  26. package/dist/agent/scene/sceneStoryService.js +238 -25
  27. package/dist/agent/scene/sceneStoryService.js.map +1 -1
  28. package/dist/agent/scene/smartCancelBridge.d.ts +13 -0
  29. package/dist/agent/scene/smartCancelBridge.d.ts.map +1 -0
  30. package/dist/agent/scene/smartCancelBridge.js +44 -0
  31. package/dist/agent/scene/smartCancelBridge.js.map +1 -0
  32. package/dist/agent/scene/smartDeepDiveDispatch.d.ts +15 -0
  33. package/dist/agent/scene/smartDeepDiveDispatch.d.ts.map +1 -0
  34. package/dist/agent/scene/smartDeepDiveDispatch.js +170 -0
  35. package/dist/agent/scene/smartDeepDiveDispatch.js.map +1 -0
  36. package/dist/agent/scene/types.d.ts +97 -6
  37. package/dist/agent/scene/types.d.ts.map +1 -1
  38. package/dist/agent/types.d.ts +1 -1
  39. package/dist/agent/types.d.ts.map +1 -1
  40. package/dist/agent/types.js.map +1 -1
  41. package/dist/agentv3/claudeMcpServer.d.ts.map +1 -1
  42. package/dist/agentv3/claudeMcpServer.js +3 -2
  43. package/dist/agentv3/claudeMcpServer.js.map +1 -1
  44. package/dist/agentv3/claudeSystemPrompt.d.ts.map +1 -1
  45. package/dist/agentv3/claudeSystemPrompt.js +8 -0
  46. package/dist/agentv3/claudeSystemPrompt.js.map +1 -1
  47. package/dist/agentv3/queryComplexityClassifier.d.ts +1 -1
  48. package/dist/agentv3/queryComplexityClassifier.d.ts.map +1 -1
  49. package/dist/agentv3/queryComplexityClassifier.js +20 -7
  50. package/dist/agentv3/queryComplexityClassifier.js.map +1 -1
  51. package/dist/agentv3/strategyLoader.d.ts +3 -0
  52. package/dist/agentv3/strategyLoader.d.ts.map +1 -1
  53. package/dist/agentv3/strategyLoader.js +17 -4
  54. package/dist/agentv3/strategyLoader.js.map +1 -1
  55. package/dist/agentv3/types.d.ts +5 -1
  56. package/dist/agentv3/types.d.ts.map +1 -1
  57. package/dist/agentv3/types.js.map +1 -1
  58. package/dist/config/index.d.ts +12 -0
  59. package/dist/config/index.d.ts.map +1 -1
  60. package/dist/config/index.js +6 -0
  61. package/dist/config/index.js.map +1 -1
  62. package/dist/routes/agent/finalizeAgentDrivenSession.d.ts +67 -0
  63. package/dist/routes/agent/finalizeAgentDrivenSession.d.ts.map +1 -0
  64. package/dist/routes/agent/finalizeAgentDrivenSession.js +103 -0
  65. package/dist/routes/agent/finalizeAgentDrivenSession.js.map +1 -0
  66. package/dist/routes/agent/normalizeAnalyzeOptions.d.ts +42 -0
  67. package/dist/routes/agent/normalizeAnalyzeOptions.d.ts.map +1 -0
  68. package/dist/routes/agent/normalizeAnalyzeOptions.js +185 -0
  69. package/dist/routes/agent/normalizeAnalyzeOptions.js.map +1 -0
  70. package/dist/routes/agentRoutes.d.ts.map +1 -1
  71. package/dist/routes/agentRoutes.js +285 -125
  72. package/dist/routes/agentRoutes.js.map +1 -1
  73. package/dist/scripts/verifyAgentSseScrolling.js +131 -8
  74. package/dist/scripts/verifyAgentSseScrolling.js.map +1 -1
  75. package/dist/services/sceneReport/sceneJobArtifactStore.d.ts +22 -0
  76. package/dist/services/sceneReport/sceneJobArtifactStore.d.ts.map +1 -0
  77. package/dist/services/sceneReport/sceneJobArtifactStore.js +65 -0
  78. package/dist/services/sceneReport/sceneJobArtifactStore.js.map +1 -0
  79. package/dist/services/sceneReport/sceneReportMemoryCache.d.ts +5 -3
  80. package/dist/services/sceneReport/sceneReportMemoryCache.d.ts.map +1 -1
  81. package/dist/services/sceneReport/sceneReportMemoryCache.js +15 -10
  82. package/dist/services/sceneReport/sceneReportMemoryCache.js.map +1 -1
  83. package/dist/services/sceneReport/sceneReportStore.d.ts +9 -4
  84. package/dist/services/sceneReport/sceneReportStore.d.ts.map +1 -1
  85. package/dist/services/sceneReport/sceneReportStore.js +27 -7
  86. package/dist/services/sceneReport/sceneReportStore.js.map +1 -1
  87. package/dist/services/traceProcessor/sqlSemaphore.d.ts +16 -0
  88. package/dist/services/traceProcessor/sqlSemaphore.d.ts.map +1 -0
  89. package/dist/services/traceProcessor/sqlSemaphore.js +63 -0
  90. package/dist/services/traceProcessor/sqlSemaphore.js.map +1 -0
  91. package/dist/types/dataContract.d.ts +1 -1
  92. package/dist/types/dataContract.d.ts.map +1 -1
  93. package/dist/types/dataContract.js +2 -0
  94. package/dist/types/dataContract.js.map +1 -1
  95. package/package.json +1 -1
  96. package/skills/README.md +13 -5
  97. package/skills/composite/device_state_snapshot.skill.yaml +204 -0
  98. package/skills/composite/scene_reconstruction.skill.yaml +5 -1
  99. package/skills/composite/selection_range_cpu_sched_summary.skill.yaml +428 -0
  100. package/strategies/scene-reconstruction-verifier.template.md +18 -0
  101. package/strategies/scrolling.strategy.md +5 -1
  102. package/strategies/selection-area.template.md +24 -9
  103. package/strategies/smart.strategy.md +53 -0
  104. package/skills/atomic/device_state_snapshot.skill.yaml +0 -171
@@ -33,10 +33,12 @@ const uuid_1 = require("../../utils/uuid");
33
33
  const skillExecutor_1 = require("../../services/skillEngine/skillExecutor");
34
34
  const config_1 = require("../../config");
35
35
  const resourceOwnership_1 = require("../../services/resourceOwnership");
36
+ const sqlSemaphore_1 = require("../../services/traceProcessor/sqlSemaphore");
36
37
  const sceneCostEstimator_1 = require("./sceneCostEstimator");
37
38
  const sceneIntervalBuilder_1 = require("./sceneIntervalBuilder");
38
39
  const sceneAnalysisJobRunner_1 = require("./sceneAnalysisJobRunner");
39
40
  const sceneStage1Runner_1 = require("./sceneStage1Runner");
41
+ const sceneStage1Verifier_1 = require("./sceneStage1Verifier");
40
42
  const sceneStage3Summarizer_1 = require("./sceneStage3Summarizer");
41
43
  // ---------------------------------------------------------------------------
42
44
  // Service
@@ -46,6 +48,7 @@ class SceneStoryService {
46
48
  this.deps = deps;
47
49
  this.runners = new Map();
48
50
  this.inProgress = new Set();
51
+ this.memoryReportById = new Map();
49
52
  /**
50
53
  * Concurrent-request dedupe: while a pipeline for an owner-scoped
51
54
  * `traceHash` is running, peer requests for the same owner + hash await the
@@ -70,6 +73,10 @@ class SceneStoryService {
70
73
  async start(args) {
71
74
  const { sessionId, traceId, skillExecutor, options } = args;
72
75
  const forceRefresh = options?.forceRefresh ?? false;
76
+ const routeProfile = options?.routeProfile ?? 'legacy';
77
+ const previewOnly = options?.previewOnly === true;
78
+ const selection = options?.selection ?? { scope: 'all' };
79
+ const cacheableByHash = !previewOnly && selection.scope === 'all';
73
80
  const session = this.deps.getSession(sessionId);
74
81
  if (!session) {
75
82
  throw new Error(`SceneStoryService.start: session ${sessionId} not found`);
@@ -82,10 +89,12 @@ class SceneStoryService {
82
89
  session.lastActivityAt = Date.now();
83
90
  let scenes = [];
84
91
  let intervals = [];
92
+ let sceneVerification;
85
93
  let runner;
86
94
  let traceDurationSec = 0;
87
95
  let pipelineError;
88
96
  let traceHash = null;
97
+ let pendingKeyToDelete = null;
89
98
  let resolvePending;
90
99
  let rejectPending;
91
100
  try {
@@ -94,23 +103,26 @@ class SceneStoryService {
94
103
  // response on the same trace. Hashing reads the file (~5-10s for 1GB);
95
104
  // RPC traces skip the hash and check the memory cache by traceId.
96
105
  traceHash = await this.deps.computeHash(traceId);
97
- if (!forceRefresh) {
106
+ options?.cancelToken?.throwIfAborted();
107
+ if (cacheableByHash && !forceRefresh) {
98
108
  // Disk (by hash) or memory (by traceId) cache lookup.
99
- const cached = await this.lookupCachedReport(traceHash, traceId, args.owner);
109
+ const cached = await this.lookupCachedReport(traceHash, traceId, routeProfile, args.owner);
100
110
  if (cached) {
101
111
  this.emitCachedReport(sessionId, session, cached);
102
- return;
112
+ return cached;
103
113
  }
104
114
  }
105
115
  // 3) In-flight pipeline dedupe — only file-backed traces have a hash
106
116
  // key, so concurrent RPC requests fall through and run independently.
107
- const pendingKey = traceHash ? buildOwnerScopedCacheKey(traceHash, args.owner) : null;
108
- if (pendingKey && !forceRefresh) {
117
+ const pendingKey = traceHash
118
+ ? buildOwnerScopedCacheKey(traceHash, routeProfile, args.owner)
119
+ : null;
120
+ if (cacheableByHash && pendingKey && !forceRefresh) {
109
121
  const inFlight = this.pendingByHash.get(pendingKey);
110
122
  if (inFlight) {
111
123
  const shared = await inFlight;
112
124
  this.emitCachedReport(sessionId, session, shared);
113
- return;
125
+ return shared;
114
126
  }
115
127
  // Register a deferred promise so peer requests can wait on us.
116
128
  const pending = new Promise((res, rej) => {
@@ -118,6 +130,7 @@ class SceneStoryService {
118
130
  rejectPending = rej;
119
131
  });
120
132
  this.pendingByHash.set(pendingKey, pending);
133
+ pendingKeyToDelete = pendingKey;
121
134
  // Swallow unhandled-rejection — peer awaiters that come and go later
122
135
  // will see the rejection through their own await.
123
136
  pending.catch(() => undefined);
@@ -131,6 +144,7 @@ class SceneStoryService {
131
144
  // We also capture each envelope into a local array so the finalised
132
145
  // SceneReport can persist them for cache-hit replay; without this,
133
146
  // re-opening a cached trace would lose the lane-overlay state.
147
+ options?.cancelToken?.throwIfAborted();
134
148
  const stage1Envelopes = [];
135
149
  const stage1 = await new sceneStage1Runner_1.SceneStage1Runner({
136
150
  execute: (skillId, tid, params) => skillExecutor.execute(skillId, tid, params),
@@ -147,9 +161,34 @@ class SceneStoryService {
147
161
  });
148
162
  scenes = stage1.scenes;
149
163
  traceDurationSec = stage1.traceDurationSec;
164
+ sceneVerification = await (0, sceneStage1Verifier_1.runSceneStage1Verifier)({
165
+ scenes,
166
+ traceDurationSec,
167
+ enableLlm: routeProfile === 'smart' && options?.verifyWithLlm === true,
168
+ });
169
+ options?.cancelToken?.throwIfAborted();
150
170
  const cap = args.options?.analysisCap ??
151
171
  (0, sceneCostEstimator_1.estimateSceneStoryCost)({ traceDurationSec }).expectedScenes;
152
- intervals = (0, sceneIntervalBuilder_1.buildAnalysisIntervals)(scenes, { cap });
172
+ const candidateIntervals = (0, sceneIntervalBuilder_1.buildAnalysisIntervals)(scenes, { cap, routeProfile });
173
+ const selectedScenes = previewOnly
174
+ ? []
175
+ : (0, sceneIntervalBuilder_1.selectAnalysisEligibleScenes)(scenes, selection);
176
+ intervals = previewOnly
177
+ ? []
178
+ : (0, sceneIntervalBuilder_1.buildAnalysisIntervals)(selectedScenes, { cap, routeProfile });
179
+ if (routeProfile === 'smart') {
180
+ this.deps.broadcast(sessionId, {
181
+ type: 'scene_story_smart_eta_refined',
182
+ content: {
183
+ etaSec: estimateSmartEtaSec(previewOnly ? candidateIntervals.length : intervals.length),
184
+ etaConfidence: 'medium',
185
+ expectedDeepDives: previewOnly ? candidateIntervals.length : intervals.length,
186
+ selectionMode: previewOnly ? 'selection_required' : selection.scope,
187
+ selectedSceneCount: selectedScenes.length,
188
+ },
189
+ timestamp: Date.now(),
190
+ });
191
+ }
153
192
  // Mark which scenes were selected for analysis.
154
193
  const selectedSceneIds = new Set(intervals.map((i) => i.displayedSceneId));
155
194
  for (const scene of scenes) {
@@ -163,7 +202,13 @@ class SceneStoryService {
163
202
  session.trackEvents = scenes.map(toLegacyTrackEventShape);
164
203
  this.deps.broadcast(sessionId, {
165
204
  type: 'scene_story_detected',
166
- content: { scenes, analysisIntervals: intervals.length },
205
+ content: {
206
+ scenes,
207
+ analysisIntervals: intervals.length,
208
+ candidateIntervals: candidateIntervals.length,
209
+ sceneVerification,
210
+ previewOnly,
211
+ },
167
212
  timestamp: Date.now(),
168
213
  });
169
214
  // Legacy `track_data` event for the rollout period.
@@ -172,8 +217,24 @@ class SceneStoryService {
172
217
  content: { tracks: session.trackEvents, scenes: session.scenes },
173
218
  timestamp: Date.now(),
174
219
  });
220
+ if (previewOnly) {
221
+ const previewReport = this.finalizeSelectionPreview({
222
+ sessionId,
223
+ traceId,
224
+ session,
225
+ scenes,
226
+ traceDurationSec,
227
+ traceHash,
228
+ stage1Envelopes,
229
+ routeProfile,
230
+ candidateIntervalCount: candidateIntervals.length,
231
+ sceneVerification,
232
+ });
233
+ return previewReport;
234
+ }
175
235
  // Skip Stage 2 entirely if nothing matched a route.
176
236
  if (intervals.length === 0) {
237
+ options?.cancelToken?.throwIfAborted();
177
238
  const emptyReport = await this.finalize({
178
239
  sessionId,
179
240
  traceId,
@@ -185,17 +246,27 @@ class SceneStoryService {
185
246
  traceDurationSec,
186
247
  traceHash,
187
248
  stage1Envelopes,
249
+ routeProfile,
250
+ cacheableByHash,
251
+ sceneVerification,
188
252
  });
189
253
  resolvePending?.(emptyReport);
190
- return;
254
+ return emptyReport;
191
255
  }
192
256
  // ── Stage 2: per-interval Agent deep-dive ────────────────────────────
257
+ options?.cancelToken?.throwIfAborted();
193
258
  runner = new sceneAnalysisJobRunner_1.SceneAnalysisJobRunner({
194
259
  concurrency: config_1.sceneStoryConfig.analysisConcurrency,
195
260
  maxRetries: config_1.sceneStoryConfig.jobMaxRetries,
196
261
  traceId,
197
262
  analysisId: sessionId,
198
263
  skillExecutor,
264
+ runExecution: routeProfile === 'smart'
265
+ ? (fn) => (0, sqlSemaphore_1.runWithSmartTraceSqlSemaphore)(traceId, fn)
266
+ : undefined,
267
+ toDataEnvelopes: routeProfile === 'smart'
268
+ ? (result, tid) => this.toEnvelopes(result, tid)
269
+ : undefined,
199
270
  onEvent: (event) => this.handleJobEvent(sessionId, scenes, event),
200
271
  });
201
272
  this.runners.set(sessionId, runner);
@@ -203,6 +274,7 @@ class SceneStoryService {
203
274
  await runner.waitForAllDone();
204
275
  const jobs = runner.getJobs();
205
276
  const cancelled = runner.isCancelled();
277
+ options?.cancelToken?.throwIfAborted();
206
278
  // ── Stage 3: cross-scene narrative summary ──────────────────────────
207
279
  let summary = null;
208
280
  if (!cancelled) {
@@ -211,9 +283,11 @@ class SceneStoryService {
211
283
  content: { phase: 'summarizing', message: '生成整体叙述' },
212
284
  timestamp: Date.now(),
213
285
  });
286
+ options?.cancelToken?.throwIfAborted();
214
287
  summary = await (0, sceneStage3Summarizer_1.runStage3Summary)({ scenes, jobs });
215
288
  }
216
289
  // ── Stage 4: finalise + persist ──────────────────────────────────────
290
+ options?.cancelToken?.throwIfAborted();
217
291
  const finalReport = await this.finalize({
218
292
  sessionId,
219
293
  traceId,
@@ -225,8 +299,12 @@ class SceneStoryService {
225
299
  traceDurationSec,
226
300
  traceHash,
227
301
  stage1Envelopes,
302
+ routeProfile,
303
+ cacheableByHash,
304
+ sceneVerification,
228
305
  });
229
306
  resolvePending?.(finalReport);
307
+ return finalReport;
230
308
  }
231
309
  catch (err) {
232
310
  pipelineError = err;
@@ -240,10 +318,11 @@ class SceneStoryService {
240
318
  // Wake any peer requests that were awaiting this hash so they propagate
241
319
  // the same failure on their own SSE channels (instead of hanging).
242
320
  rejectPending?.(pipelineError);
321
+ return null;
243
322
  }
244
323
  finally {
245
- if (traceHash)
246
- this.pendingByHash.delete(buildOwnerScopedCacheKey(traceHash, args.owner));
324
+ if (pendingKeyToDelete)
325
+ this.pendingByHash.delete(pendingKeyToDelete);
247
326
  this.runners.delete(sessionId);
248
327
  this.inProgress.delete(sessionId);
249
328
  }
@@ -314,6 +393,13 @@ class SceneStoryService {
314
393
  });
315
394
  }
316
395
  async finalize(args) {
396
+ const jobs = args.routeProfile === 'smart'
397
+ ? await attachSmartJobArtifactRefs({
398
+ traceId: args.traceId,
399
+ jobs: args.jobs,
400
+ artifactStore: this.deps.jobArtifactStore,
401
+ })
402
+ : args.jobs;
317
403
  const report = buildSceneReport({
318
404
  analysisId: args.sessionId,
319
405
  traceId: args.traceId,
@@ -322,12 +408,14 @@ class SceneStoryService {
322
408
  userId: args.session.userId,
323
409
  createdAt: args.session.createdAt,
324
410
  scenes: args.scenes,
325
- jobs: args.jobs,
411
+ jobs,
326
412
  summary: args.summary,
327
413
  cancelled: args.cancelled,
328
414
  traceDurationSec: args.traceDurationSec,
329
415
  traceHash: args.traceHash,
330
416
  stage1Envelopes: args.stage1Envelopes,
417
+ routeProfile: args.routeProfile,
418
+ sceneVerification: args.sceneVerification,
331
419
  });
332
420
  args.session.sceneStoryReport = report;
333
421
  args.session.status = args.cancelled ? 'cancelled' : 'completed';
@@ -335,7 +423,9 @@ class SceneStoryService {
335
423
  // Persist BEFORE broadcasting scene_story_report_ready so any client
336
424
  // that immediately calls GET /scene-reconstruct/report/:id is guaranteed
337
425
  // to find the report rather than racing the disk write.
338
- await this.persistReport(report, args.traceId);
426
+ await this.persistReport(report, args.traceId, args.routeProfile, {
427
+ indexByHash: args.cacheableByHash,
428
+ });
339
429
  this.deps.broadcast(args.sessionId, {
340
430
  type: 'scene_story_report_ready',
341
431
  content: {
@@ -358,6 +448,49 @@ class SceneStoryService {
358
448
  });
359
449
  return report;
360
450
  }
451
+ finalizeSelectionPreview(args) {
452
+ const report = buildSceneReport({
453
+ analysisId: args.sessionId,
454
+ traceId: args.traceId,
455
+ tenantId: args.session.tenantId,
456
+ workspaceId: args.session.workspaceId,
457
+ userId: args.session.userId,
458
+ createdAt: args.session.createdAt,
459
+ scenes: args.scenes,
460
+ jobs: [],
461
+ summary: '场景盘点已完成,等待用户选择智能分析深钻范围。',
462
+ cancelled: false,
463
+ traceDurationSec: args.traceDurationSec,
464
+ traceHash: args.traceHash,
465
+ stage1Envelopes: args.stage1Envelopes,
466
+ routeProfile: args.routeProfile,
467
+ sceneVerification: args.sceneVerification,
468
+ });
469
+ args.session.sceneStoryReport = report;
470
+ args.session.status = 'completed';
471
+ args.session.lastActivityAt = Date.now();
472
+ this.memoryReportById.set(report.reportId, report);
473
+ this.deps.broadcast(args.sessionId, {
474
+ type: 'scene_story_selection_ready',
475
+ content: {
476
+ sceneCount: report.displayedScenes.length,
477
+ candidateIntervalCount: args.candidateIntervalCount,
478
+ sceneTypeCounts: countSceneTypes(report.displayedScenes),
479
+ reportId: report.reportId,
480
+ sceneVerification: report.sceneVerification,
481
+ },
482
+ timestamp: Date.now(),
483
+ });
484
+ this.deps.broadcast(args.sessionId, {
485
+ type: 'progress',
486
+ content: {
487
+ phase: 'selection_ready',
488
+ message: '场景盘点完成,请选择智能分析范围',
489
+ },
490
+ timestamp: Date.now(),
491
+ });
492
+ return report;
493
+ }
361
494
  /**
362
495
  * Persist a finalised SceneReport to whichever cache layer matches the
363
496
  * trace's origin. File-backed traces go into the disk store with the
@@ -369,12 +502,18 @@ class SceneStoryService {
369
502
  * a save failure would let peer requests get a `reportId` they can't
370
503
  * subsequently load via `GET /scene-reconstruct/report/:id`.
371
504
  */
372
- async persistReport(report, traceId) {
505
+ async persistReport(report, traceId, routeProfile, options = {}) {
373
506
  if (report.traceOrigin === 'file' && report.traceHash) {
374
- await this.deps.reportStore.save(report);
507
+ await this.deps.reportStore.save(report, routeProfile, {
508
+ indexByHash: options.indexByHash !== false,
509
+ });
510
+ this.memoryReportById.set(report.reportId, report);
375
511
  }
376
512
  else {
377
- this.deps.memoryCache.set(traceId, report);
513
+ if (options.indexByHash !== false) {
514
+ this.deps.memoryCache.set(traceId, report, routeProfile);
515
+ }
516
+ this.memoryReportById.set(report.reportId, report);
378
517
  }
379
518
  }
380
519
  /**
@@ -421,6 +560,8 @@ class SceneStoryService {
421
560
  content: {
422
561
  scenes: report.displayedScenes,
423
562
  analysisIntervals: report.jobs.length,
563
+ sceneVerification: report.sceneVerification,
564
+ previewOnly: report.jobs.length === 0 && report.summary === '场景盘点已完成,等待用户选择智能分析深钻范围。',
424
565
  },
425
566
  timestamp: now,
426
567
  });
@@ -464,6 +605,7 @@ class SceneStoryService {
464
605
  */
465
606
  async previewOnly(args) {
466
607
  const { traceId, owner } = args;
608
+ const routeProfile = args.routeProfile ?? 'legacy';
467
609
  // Hash and probe are independent — run in parallel. Hash dominates for
468
610
  // large files (5-10s for 1GB), probe is ~50ms. Parallelising cuts cold
469
611
  // preview latency from `hash + probe` to `max(hash, probe)`.
@@ -471,7 +613,7 @@ class SceneStoryService {
471
613
  this.deps.computeHash(traceId),
472
614
  this.deps.probeDuration(traceId),
473
615
  ]);
474
- const cached = await this.lookupCachedReport(hash, traceId, owner);
616
+ const cached = await this.lookupCachedReport(hash, traceId, routeProfile, owner);
475
617
  if (cached) {
476
618
  const dur = cached.traceMeta.durationSec;
477
619
  return {
@@ -492,7 +634,15 @@ class SceneStoryService {
492
634
  * existed; the route handler maps null to a 404.
493
635
  */
494
636
  async getReport(reportId) {
495
- return this.deps.reportStore.loadById(reportId);
637
+ const persisted = await this.deps.reportStore.loadById(reportId);
638
+ if (persisted)
639
+ return persisted;
640
+ const memory = this.memoryReportById.get(reportId) ?? null;
641
+ if (memory && memory.expiresAt !== null && memory.expiresAt < Date.now()) {
642
+ this.memoryReportById.delete(reportId);
643
+ return null;
644
+ }
645
+ return memory;
496
646
  }
497
647
  /**
498
648
  * Unified cache lookup: file-backed traces go via the disk store by hash;
@@ -500,10 +650,10 @@ class SceneStoryService {
500
650
  * start() (cache check) and previewOnly() so the lookup strategy is
501
651
  * defined in exactly one place.
502
652
  */
503
- async lookupCachedReport(hash, traceId, owner) {
653
+ async lookupCachedReport(hash, traceId, routeProfile, owner) {
504
654
  const report = hash
505
- ? await this.deps.reportStore.loadByHash(hash)
506
- : this.deps.memoryCache.get(traceId) ?? null;
655
+ ? await this.deps.reportStore.loadByHash(hash, routeProfile)
656
+ : this.deps.memoryCache.get(traceId, routeProfile) ?? null;
507
657
  if (!report)
508
658
  return null;
509
659
  return owner ? ((0, resourceOwnership_1.ownersMatch)(report, owner) ? report : null) : report;
@@ -513,10 +663,17 @@ exports.SceneStoryService = SceneStoryService;
513
663
  // ---------------------------------------------------------------------------
514
664
  // Helpers
515
665
  // ---------------------------------------------------------------------------
516
- function buildOwnerScopedCacheKey(hash, owner) {
666
+ function buildOwnerScopedCacheKey(hash, routeProfile, owner) {
517
667
  if (!owner)
518
- return `${hash}:legacy`;
519
- return `${hash}:${owner.tenantId || ''}:${owner.workspaceId || ''}:${owner.userId || owner.ownerUserId || ''}`;
668
+ return `${hash}:${routeProfile}:legacy-owner`;
669
+ return `${hash}:${routeProfile}:${owner.tenantId || ''}:${owner.workspaceId || ''}:${owner.userId || owner.ownerUserId || ''}`;
670
+ }
671
+ function countSceneTypes(scenes) {
672
+ const counts = {};
673
+ for (const scene of scenes) {
674
+ counts[scene.sceneType] = (counts[scene.sceneType] || 0) + 1;
675
+ }
676
+ return counts;
520
677
  }
521
678
  function jobStateToAnalysisState(jobEventType) {
522
679
  switch (jobEventType) {
@@ -541,6 +698,42 @@ function mapJobEventToSseType(type) {
541
698
  default: return null;
542
699
  }
543
700
  }
701
+ async function attachSmartJobArtifactRefs(args) {
702
+ if (!args.artifactStore)
703
+ return args.jobs;
704
+ const out = [];
705
+ for (const job of args.jobs) {
706
+ const result = job.result;
707
+ const projection = result?.projection;
708
+ if (!result ||
709
+ !projection ||
710
+ projection.omittedRowCount <= 0 ||
711
+ projection.artifactRef) {
712
+ out.push(job);
713
+ continue;
714
+ }
715
+ const artifactRef = await args.artifactStore.save({
716
+ traceId: args.traceId,
717
+ jobId: job.jobId,
718
+ displayedSceneId: result.displayedSceneId,
719
+ skillId: result.skillId,
720
+ displayResults: result.displayResults,
721
+ dataEnvelopes: result.dataEnvelopes,
722
+ createdAt: Date.now(),
723
+ });
724
+ out.push({
725
+ ...job,
726
+ result: {
727
+ ...result,
728
+ projection: {
729
+ ...projection,
730
+ artifactRef,
731
+ },
732
+ },
733
+ });
734
+ }
735
+ return out;
736
+ }
544
737
  function buildSceneReport(args) {
545
738
  const failedCount = args.jobs.filter((j) => j.state === 'failed').length;
546
739
  const partial = args.cancelled || failedCount > 0;
@@ -578,8 +771,11 @@ function buildSceneReport(args) {
578
771
  createdAt: args.createdAt,
579
772
  traceMeta: { durationSec: args.traceDurationSec },
580
773
  displayedScenes: args.scenes,
774
+ sceneVerification: args.sceneVerification,
581
775
  cachedDataEnvelopes: args.stage1Envelopes,
582
- jobs: args.jobs,
776
+ jobs: args.routeProfile === 'smart'
777
+ ? args.jobs.map(sanitizeSmartReportJob)
778
+ : args.jobs,
583
779
  summary: args.summary,
584
780
  insights,
585
781
  partialReport: partial,
@@ -590,6 +786,23 @@ function buildSceneReport(args) {
590
786
  },
591
787
  };
592
788
  }
789
+ function sanitizeSmartReportJob(job) {
790
+ if (!job.result)
791
+ return job;
792
+ return {
793
+ ...job,
794
+ result: {
795
+ ...job.result,
796
+ displayResults: [],
797
+ dataEnvelopes: [],
798
+ },
799
+ };
800
+ }
801
+ function estimateSmartEtaSec(intervalCount) {
802
+ if (intervalCount <= 0)
803
+ return 3;
804
+ return Math.max(10, Math.ceil(intervalCount * 12));
805
+ }
593
806
  // ---------------------------------------------------------------------------
594
807
  // Legacy session shape conversion
595
808
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"sceneStoryService.js","sourceRoot":"","sources":["../../../src/agent/scene/sceneStoryService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sceneStoryService.js","sourceRoot":"","sources":["../../../src/agent/scene/sceneStoryService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface SmartCancelToken {
2
+ readonly signal: AbortSignal;
3
+ throwIfAborted(): void;
4
+ }
5
+ export declare class SmartCancelBridge {
6
+ private readonly controllers;
7
+ private readonly terminalClaims;
8
+ create(parentSessionId: string): SmartCancelToken;
9
+ cancel(parentSessionId: string): boolean;
10
+ tryClaimTerminal(parentSessionId: string): boolean;
11
+ release(parentSessionId: string): void;
12
+ }
13
+ //# sourceMappingURL=smartCancelBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smartCancelBridge.d.ts","sourceRoot":"","sources":["../../../src/agent/scene/smartCancelBridge.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,cAAc,IAAI,IAAI,CAAC;CACxB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,gBAAgB;IAcjD,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO;IAOxC,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO;IAMlD,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;CAIvC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ // SPDX-License-Identifier: AGPL-3.0-or-later
3
+ // Copyright (C) 2024-2026 Gracker (Chris)
4
+ // This file is part of SmartPerfetto. See LICENSE for details.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SmartCancelBridge = void 0;
7
+ class SmartCancelBridge {
8
+ constructor() {
9
+ this.controllers = new Map();
10
+ this.terminalClaims = new Set();
11
+ }
12
+ create(parentSessionId) {
13
+ this.release(parentSessionId);
14
+ const controller = new AbortController();
15
+ this.controllers.set(parentSessionId, controller);
16
+ return {
17
+ signal: controller.signal,
18
+ throwIfAborted() {
19
+ if (controller.signal.aborted) {
20
+ throw new Error('Smart analysis cancelled');
21
+ }
22
+ },
23
+ };
24
+ }
25
+ cancel(parentSessionId) {
26
+ const controller = this.controllers.get(parentSessionId);
27
+ if (!controller)
28
+ return false;
29
+ controller.abort();
30
+ return true;
31
+ }
32
+ tryClaimTerminal(parentSessionId) {
33
+ if (this.terminalClaims.has(parentSessionId))
34
+ return false;
35
+ this.terminalClaims.add(parentSessionId);
36
+ return true;
37
+ }
38
+ release(parentSessionId) {
39
+ this.controllers.delete(parentSessionId);
40
+ this.terminalClaims.delete(parentSessionId);
41
+ }
42
+ }
43
+ exports.SmartCancelBridge = SmartCancelBridge;
44
+ //# sourceMappingURL=smartCancelBridge.js.map