@gracker/smartperfetto 1.0.13

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 (2287) hide show
  1. package/.env.example +586 -0
  2. package/LICENSE +685 -0
  3. package/data/perfettoSqlDocs.json +33478 -0
  4. package/data/perfettoSqlIndex.json +9458 -0
  5. package/data/perfettoSqlIndex.light.json +13129 -0
  6. package/data/perfettoStdlibSymbols.json +677 -0
  7. package/dist/agent/agents/base/baseAgent.d.ts +378 -0
  8. package/dist/agent/agents/base/baseAgent.d.ts.map +1 -0
  9. package/dist/agent/agents/base/baseAgent.js +1484 -0
  10. package/dist/agent/agents/base/baseAgent.js.map +1 -0
  11. package/dist/agent/agents/base/baseSubAgent.d.ts +135 -0
  12. package/dist/agent/agents/base/baseSubAgent.d.ts.map +1 -0
  13. package/dist/agent/agents/base/baseSubAgent.js +483 -0
  14. package/dist/agent/agents/base/baseSubAgent.js.map +1 -0
  15. package/dist/agent/agents/baseExpertAgent.d.ts +37 -0
  16. package/dist/agent/agents/baseExpertAgent.d.ts.map +1 -0
  17. package/dist/agent/agents/baseExpertAgent.js +322 -0
  18. package/dist/agent/agents/baseExpertAgent.js.map +1 -0
  19. package/dist/agent/agents/domain/additionalAgents.d.ts +54 -0
  20. package/dist/agent/agents/domain/additionalAgents.d.ts.map +1 -0
  21. package/dist/agent/agents/domain/additionalAgents.js +292 -0
  22. package/dist/agent/agents/domain/additionalAgents.js.map +1 -0
  23. package/dist/agent/agents/domain/binderAgent.d.ts +27 -0
  24. package/dist/agent/agents/domain/binderAgent.d.ts.map +1 -0
  25. package/dist/agent/agents/domain/binderAgent.js +100 -0
  26. package/dist/agent/agents/domain/binderAgent.js.map +1 -0
  27. package/dist/agent/agents/domain/cpuAgent.d.ts +35 -0
  28. package/dist/agent/agents/domain/cpuAgent.d.ts.map +1 -0
  29. package/dist/agent/agents/domain/cpuAgent.js +163 -0
  30. package/dist/agent/agents/domain/cpuAgent.js.map +1 -0
  31. package/dist/agent/agents/domain/frameAgent.d.ts +59 -0
  32. package/dist/agent/agents/domain/frameAgent.d.ts.map +1 -0
  33. package/dist/agent/agents/domain/frameAgent.js +511 -0
  34. package/dist/agent/agents/domain/frameAgent.js.map +1 -0
  35. package/dist/agent/agents/domain/index.d.ts +92 -0
  36. package/dist/agent/agents/domain/index.d.ts.map +1 -0
  37. package/dist/agent/agents/domain/index.js +250 -0
  38. package/dist/agent/agents/domain/index.js.map +1 -0
  39. package/dist/agent/agents/domain/memoryAgent.d.ts +26 -0
  40. package/dist/agent/agents/domain/memoryAgent.d.ts.map +1 -0
  41. package/dist/agent/agents/domain/memoryAgent.js +94 -0
  42. package/dist/agent/agents/domain/memoryAgent.js.map +1 -0
  43. package/dist/agent/agents/domain/skillCatalog.d.ts +10 -0
  44. package/dist/agent/agents/domain/skillCatalog.d.ts.map +1 -0
  45. package/dist/agent/agents/domain/skillCatalog.js +66 -0
  46. package/dist/agent/agents/domain/skillCatalog.js.map +1 -0
  47. package/dist/agent/agents/evaluatorAgent.d.ts +76 -0
  48. package/dist/agent/agents/evaluatorAgent.d.ts.map +1 -0
  49. package/dist/agent/agents/evaluatorAgent.js +517 -0
  50. package/dist/agent/agents/evaluatorAgent.js.map +1 -0
  51. package/dist/agent/agents/index.d.ts +13 -0
  52. package/dist/agent/agents/index.d.ts.map +1 -0
  53. package/dist/agent/agents/index.js +25 -0
  54. package/dist/agent/agents/index.js.map +1 -0
  55. package/dist/agent/agents/iterationStrategyPlanner.d.ts +140 -0
  56. package/dist/agent/agents/iterationStrategyPlanner.d.ts.map +1 -0
  57. package/dist/agent/agents/iterationStrategyPlanner.js +359 -0
  58. package/dist/agent/agents/iterationStrategyPlanner.js.map +1 -0
  59. package/dist/agent/agents/plannerAgent.d.ts +56 -0
  60. package/dist/agent/agents/plannerAgent.d.ts.map +1 -0
  61. package/dist/agent/agents/plannerAgent.js +379 -0
  62. package/dist/agent/agents/plannerAgent.js.map +1 -0
  63. package/dist/agent/agents/scrollingExpertAgent.d.ts +11 -0
  64. package/dist/agent/agents/scrollingExpertAgent.d.ts.map +1 -0
  65. package/dist/agent/agents/scrollingExpertAgent.js +132 -0
  66. package/dist/agent/agents/scrollingExpertAgent.js.map +1 -0
  67. package/dist/agent/agents/tools/adbTools.d.ts +5 -0
  68. package/dist/agent/agents/tools/adbTools.d.ts.map +1 -0
  69. package/dist/agent/agents/tools/adbTools.js +326 -0
  70. package/dist/agent/agents/tools/adbTools.js.map +1 -0
  71. package/dist/agent/communication/agentMessageBus.d.ts +138 -0
  72. package/dist/agent/communication/agentMessageBus.d.ts.map +1 -0
  73. package/dist/agent/communication/agentMessageBus.js +542 -0
  74. package/dist/agent/communication/agentMessageBus.js.map +1 -0
  75. package/dist/agent/communication/index.d.ts +7 -0
  76. package/dist/agent/communication/index.d.ts.map +1 -0
  77. package/dist/agent/communication/index.js +15 -0
  78. package/dist/agent/communication/index.js.map +1 -0
  79. package/dist/agent/compaction/compactionTypes.d.ts +163 -0
  80. package/dist/agent/compaction/compactionTypes.d.ts.map +1 -0
  81. package/dist/agent/compaction/compactionTypes.js +32 -0
  82. package/dist/agent/compaction/compactionTypes.js.map +1 -0
  83. package/dist/agent/compaction/contextCompactor.d.ts +109 -0
  84. package/dist/agent/compaction/contextCompactor.d.ts.map +1 -0
  85. package/dist/agent/compaction/contextCompactor.js +225 -0
  86. package/dist/agent/compaction/contextCompactor.js.map +1 -0
  87. package/dist/agent/compaction/index.d.ts +10 -0
  88. package/dist/agent/compaction/index.d.ts.map +1 -0
  89. package/dist/agent/compaction/index.js +43 -0
  90. package/dist/agent/compaction/index.js.map +1 -0
  91. package/dist/agent/compaction/strategies/index.d.ts +5 -0
  92. package/dist/agent/compaction/strategies/index.d.ts.map +1 -0
  93. package/dist/agent/compaction/strategies/index.js +13 -0
  94. package/dist/agent/compaction/strategies/index.js.map +1 -0
  95. package/dist/agent/compaction/strategies/slidingWindowStrategy.d.ts +53 -0
  96. package/dist/agent/compaction/strategies/slidingWindowStrategy.d.ts.map +1 -0
  97. package/dist/agent/compaction/strategies/slidingWindowStrategy.js +237 -0
  98. package/dist/agent/compaction/strategies/slidingWindowStrategy.js.map +1 -0
  99. package/dist/agent/compaction/tokenEstimator.d.ts +78 -0
  100. package/dist/agent/compaction/tokenEstimator.d.ts.map +1 -0
  101. package/dist/agent/compaction/tokenEstimator.js +203 -0
  102. package/dist/agent/compaction/tokenEstimator.js.map +1 -0
  103. package/dist/agent/config/decisionThresholdManifest.d.ts +72 -0
  104. package/dist/agent/config/decisionThresholdManifest.d.ts.map +1 -0
  105. package/dist/agent/config/decisionThresholdManifest.js +77 -0
  106. package/dist/agent/config/decisionThresholdManifest.js.map +1 -0
  107. package/dist/agent/config/domainManifest.d.ts +77 -0
  108. package/dist/agent/config/domainManifest.d.ts.map +1 -0
  109. package/dist/agent/config/domainManifest.js +269 -0
  110. package/dist/agent/config/domainManifest.js.map +1 -0
  111. package/dist/agent/config/drillDownRegistry.d.ts +19 -0
  112. package/dist/agent/config/drillDownRegistry.d.ts.map +1 -0
  113. package/dist/agent/config/drillDownRegistry.js +118 -0
  114. package/dist/agent/config/drillDownRegistry.js.map +1 -0
  115. package/dist/agent/context/contextBuilder.d.ts +79 -0
  116. package/dist/agent/context/contextBuilder.d.ts.map +1 -0
  117. package/dist/agent/context/contextBuilder.js +273 -0
  118. package/dist/agent/context/contextBuilder.js.map +1 -0
  119. package/dist/agent/context/contextTypes.d.ts +121 -0
  120. package/dist/agent/context/contextTypes.d.ts.map +1 -0
  121. package/dist/agent/context/contextTypes.js +14 -0
  122. package/dist/agent/context/contextTypes.js.map +1 -0
  123. package/dist/agent/context/enhancedSessionContext.d.ts +283 -0
  124. package/dist/agent/context/enhancedSessionContext.d.ts.map +1 -0
  125. package/dist/agent/context/enhancedSessionContext.js +1636 -0
  126. package/dist/agent/context/enhancedSessionContext.js.map +1 -0
  127. package/dist/agent/context/entityStore.d.ts +374 -0
  128. package/dist/agent/context/entityStore.d.ts.map +1 -0
  129. package/dist/agent/context/entityStore.js +621 -0
  130. package/dist/agent/context/entityStore.js.map +1 -0
  131. package/dist/agent/context/focusStore.d.ts +229 -0
  132. package/dist/agent/context/focusStore.d.ts.map +1 -0
  133. package/dist/agent/context/focusStore.js +528 -0
  134. package/dist/agent/context/focusStore.js.map +1 -0
  135. package/dist/agent/context/index.d.ts +10 -0
  136. package/dist/agent/context/index.d.ts.map +1 -0
  137. package/dist/agent/context/index.js +42 -0
  138. package/dist/agent/context/index.js.map +1 -0
  139. package/dist/agent/context/policies/evaluatorPolicy.d.ts +22 -0
  140. package/dist/agent/context/policies/evaluatorPolicy.d.ts.map +1 -0
  141. package/dist/agent/context/policies/evaluatorPolicy.js +82 -0
  142. package/dist/agent/context/policies/evaluatorPolicy.js.map +1 -0
  143. package/dist/agent/context/policies/index.d.ts +7 -0
  144. package/dist/agent/context/policies/index.d.ts.map +1 -0
  145. package/dist/agent/context/policies/index.js +18 -0
  146. package/dist/agent/context/policies/index.js.map +1 -0
  147. package/dist/agent/context/policies/plannerPolicy.d.ts +27 -0
  148. package/dist/agent/context/policies/plannerPolicy.d.ts.map +1 -0
  149. package/dist/agent/context/policies/plannerPolicy.js +67 -0
  150. package/dist/agent/context/policies/plannerPolicy.js.map +1 -0
  151. package/dist/agent/context/policies/workerPolicy.d.ts +29 -0
  152. package/dist/agent/context/policies/workerPolicy.d.ts.map +1 -0
  153. package/dist/agent/context/policies/workerPolicy.js +99 -0
  154. package/dist/agent/context/policies/workerPolicy.js.map +1 -0
  155. package/dist/agent/core/circuitBreaker.d.ts +150 -0
  156. package/dist/agent/core/circuitBreaker.d.ts.map +1 -0
  157. package/dist/agent/core/circuitBreaker.js +500 -0
  158. package/dist/agent/core/circuitBreaker.js.map +1 -0
  159. package/dist/agent/core/conclusionContract.d.ts +61 -0
  160. package/dist/agent/core/conclusionContract.d.ts.map +1 -0
  161. package/dist/agent/core/conclusionContract.js +6 -0
  162. package/dist/agent/core/conclusionContract.js.map +1 -0
  163. package/dist/agent/core/conclusionGenerator.d.ts +42 -0
  164. package/dist/agent/core/conclusionGenerator.d.ts.map +1 -0
  165. package/dist/agent/core/conclusionGenerator.js +4109 -0
  166. package/dist/agent/core/conclusionGenerator.js.map +1 -0
  167. package/dist/agent/core/conclusionSceneTemplates.d.ts +8 -0
  168. package/dist/agent/core/conclusionSceneTemplates.d.ts.map +1 -0
  169. package/dist/agent/core/conclusionSceneTemplates.js +31 -0
  170. package/dist/agent/core/conclusionSceneTemplates.js.map +1 -0
  171. package/dist/agent/core/drillDownResolver.d.ts +67 -0
  172. package/dist/agent/core/drillDownResolver.d.ts.map +1 -0
  173. package/dist/agent/core/drillDownResolver.js +583 -0
  174. package/dist/agent/core/drillDownResolver.js.map +1 -0
  175. package/dist/agent/core/emittedEnvelopeRegistry.d.ts +75 -0
  176. package/dist/agent/core/emittedEnvelopeRegistry.d.ts.map +1 -0
  177. package/dist/agent/core/emittedEnvelopeRegistry.js +164 -0
  178. package/dist/agent/core/emittedEnvelopeRegistry.js.map +1 -0
  179. package/dist/agent/core/entityCapture.d.ts +53 -0
  180. package/dist/agent/core/entityCapture.d.ts.map +1 -0
  181. package/dist/agent/core/entityCapture.js +522 -0
  182. package/dist/agent/core/entityCapture.js.map +1 -0
  183. package/dist/agent/core/entityRegistry.d.ts +19 -0
  184. package/dist/agent/core/entityRegistry.d.ts.map +1 -0
  185. package/dist/agent/core/entityRegistry.js +102 -0
  186. package/dist/agent/core/entityRegistry.js.map +1 -0
  187. package/dist/agent/core/executors/analysisExecutor.d.ts +21 -0
  188. package/dist/agent/core/executors/analysisExecutor.d.ts.map +1 -0
  189. package/dist/agent/core/executors/analysisExecutor.js +6 -0
  190. package/dist/agent/core/executors/analysisExecutor.js.map +1 -0
  191. package/dist/agent/core/executors/clarifyExecutor.d.ts +42 -0
  192. package/dist/agent/core/executors/clarifyExecutor.d.ts.map +1 -0
  193. package/dist/agent/core/executors/clarifyExecutor.js +316 -0
  194. package/dist/agent/core/executors/clarifyExecutor.js.map +1 -0
  195. package/dist/agent/core/executors/comparisonExecutor.d.ts +39 -0
  196. package/dist/agent/core/executors/comparisonExecutor.d.ts.map +1 -0
  197. package/dist/agent/core/executors/comparisonExecutor.js +404 -0
  198. package/dist/agent/core/executors/comparisonExecutor.js.map +1 -0
  199. package/dist/agent/core/executors/directDrillDownExecutor.d.ts +56 -0
  200. package/dist/agent/core/executors/directDrillDownExecutor.d.ts.map +1 -0
  201. package/dist/agent/core/executors/directDrillDownExecutor.js +665 -0
  202. package/dist/agent/core/executors/directDrillDownExecutor.js.map +1 -0
  203. package/dist/agent/core/executors/directSkillExecutor.d.ts +106 -0
  204. package/dist/agent/core/executors/directSkillExecutor.d.ts.map +1 -0
  205. package/dist/agent/core/executors/directSkillExecutor.js +633 -0
  206. package/dist/agent/core/executors/directSkillExecutor.js.map +1 -0
  207. package/dist/agent/core/executors/extendExecutor.d.ts +50 -0
  208. package/dist/agent/core/executors/extendExecutor.d.ts.map +1 -0
  209. package/dist/agent/core/executors/extendExecutor.js +402 -0
  210. package/dist/agent/core/executors/extendExecutor.js.map +1 -0
  211. package/dist/agent/core/executors/hypothesisExecutor.d.ts +52 -0
  212. package/dist/agent/core/executors/hypothesisExecutor.d.ts.map +1 -0
  213. package/dist/agent/core/executors/hypothesisExecutor.js +564 -0
  214. package/dist/agent/core/executors/hypothesisExecutor.js.map +1 -0
  215. package/dist/agent/core/executors/index.d.ts +9 -0
  216. package/dist/agent/core/executors/index.d.ts.map +1 -0
  217. package/dist/agent/core/executors/index.js +15 -0
  218. package/dist/agent/core/executors/index.js.map +1 -0
  219. package/dist/agent/core/executors/strategy/strategyFrameEnvelopeCoordinator.d.ts +12 -0
  220. package/dist/agent/core/executors/strategy/strategyFrameEnvelopeCoordinator.d.ts.map +1 -0
  221. package/dist/agent/core/executors/strategy/strategyFrameEnvelopeCoordinator.js +186 -0
  222. package/dist/agent/core/executors/strategy/strategyFrameEnvelopeCoordinator.js.map +1 -0
  223. package/dist/agent/core/executors/strategy/strategyFrameMechanismCollector.d.ts +9 -0
  224. package/dist/agent/core/executors/strategy/strategyFrameMechanismCollector.d.ts.map +1 -0
  225. package/dist/agent/core/executors/strategy/strategyFrameMechanismCollector.js +123 -0
  226. package/dist/agent/core/executors/strategy/strategyFrameMechanismCollector.js.map +1 -0
  227. package/dist/agent/core/executors/strategy/strategyStagePlanner.d.ts +18 -0
  228. package/dist/agent/core/executors/strategy/strategyStagePlanner.d.ts.map +1 -0
  229. package/dist/agent/core/executors/strategy/strategyStagePlanner.js +69 -0
  230. package/dist/agent/core/executors/strategy/strategyStagePlanner.js.map +1 -0
  231. package/dist/agent/core/executors/strategy/strategyStageTaskBuilder.d.ts +14 -0
  232. package/dist/agent/core/executors/strategy/strategyStageTaskBuilder.d.ts.map +1 -0
  233. package/dist/agent/core/executors/strategy/strategyStageTaskBuilder.js +129 -0
  234. package/dist/agent/core/executors/strategy/strategyStageTaskBuilder.js.map +1 -0
  235. package/dist/agent/core/executors/strategyExecutor.d.ts +16 -0
  236. package/dist/agent/core/executors/strategyExecutor.d.ts.map +1 -0
  237. package/dist/agent/core/executors/strategyExecutor.js +377 -0
  238. package/dist/agent/core/executors/strategyExecutor.js.map +1 -0
  239. package/dist/agent/core/executors/traceConfigDetector.d.ts +28 -0
  240. package/dist/agent/core/executors/traceConfigDetector.d.ts.map +1 -0
  241. package/dist/agent/core/executors/traceConfigDetector.js +156 -0
  242. package/dist/agent/core/executors/traceConfigDetector.js.map +1 -0
  243. package/dist/agent/core/feedbackSynthesizer.d.ts +28 -0
  244. package/dist/agent/core/feedbackSynthesizer.d.ts.map +1 -0
  245. package/dist/agent/core/feedbackSynthesizer.js +841 -0
  246. package/dist/agent/core/feedbackSynthesizer.js.map +1 -0
  247. package/dist/agent/core/followUpHandler.d.ts +36 -0
  248. package/dist/agent/core/followUpHandler.d.ts.map +1 -0
  249. package/dist/agent/core/followUpHandler.js +413 -0
  250. package/dist/agent/core/followUpHandler.js.map +1 -0
  251. package/dist/agent/core/hypothesisGenerator.d.ts +45 -0
  252. package/dist/agent/core/hypothesisGenerator.d.ts.map +1 -0
  253. package/dist/agent/core/hypothesisGenerator.js +257 -0
  254. package/dist/agent/core/hypothesisGenerator.js.map +1 -0
  255. package/dist/agent/core/incrementalAnalyzer.d.ts +164 -0
  256. package/dist/agent/core/incrementalAnalyzer.d.ts.map +1 -0
  257. package/dist/agent/core/incrementalAnalyzer.js +382 -0
  258. package/dist/agent/core/incrementalAnalyzer.js.map +1 -0
  259. package/dist/agent/core/index.d.ts +25 -0
  260. package/dist/agent/core/index.d.ts.map +1 -0
  261. package/dist/agent/core/index.js +61 -0
  262. package/dist/agent/core/index.js.map +1 -0
  263. package/dist/agent/core/intentUnderstanding.d.ts +28 -0
  264. package/dist/agent/core/intentUnderstanding.d.ts.map +1 -0
  265. package/dist/agent/core/intentUnderstanding.js +451 -0
  266. package/dist/agent/core/intentUnderstanding.js.map +1 -0
  267. package/dist/agent/core/interventionController.d.ts +211 -0
  268. package/dist/agent/core/interventionController.d.ts.map +1 -0
  269. package/dist/agent/core/interventionController.js +477 -0
  270. package/dist/agent/core/interventionController.js.map +1 -0
  271. package/dist/agent/core/jankCauseSummarizer.d.ts +87 -0
  272. package/dist/agent/core/jankCauseSummarizer.d.ts.map +1 -0
  273. package/dist/agent/core/jankCauseSummarizer.js +432 -0
  274. package/dist/agent/core/jankCauseSummarizer.js.map +1 -0
  275. package/dist/agent/core/modelRouter.d.ts +164 -0
  276. package/dist/agent/core/modelRouter.d.ts.map +1 -0
  277. package/dist/agent/core/modelRouter.js +1169 -0
  278. package/dist/agent/core/modelRouter.js.map +1 -0
  279. package/dist/agent/core/modelRouterSingleton.d.ts +4 -0
  280. package/dist/agent/core/modelRouterSingleton.d.ts.map +1 -0
  281. package/dist/agent/core/modelRouterSingleton.js +20 -0
  282. package/dist/agent/core/modelRouterSingleton.js.map +1 -0
  283. package/dist/agent/core/orchestratorTypes.d.ts +506 -0
  284. package/dist/agent/core/orchestratorTypes.d.ts.map +1 -0
  285. package/dist/agent/core/orchestratorTypes.js +91 -0
  286. package/dist/agent/core/orchestratorTypes.js.map +1 -0
  287. package/dist/agent/core/pipelineExecutor.d.ts +154 -0
  288. package/dist/agent/core/pipelineExecutor.d.ts.map +1 -0
  289. package/dist/agent/core/pipelineExecutor.js +677 -0
  290. package/dist/agent/core/pipelineExecutor.js.map +1 -0
  291. package/dist/agent/core/scenePolicy.d.ts +3 -0
  292. package/dist/agent/core/scenePolicy.d.ts.map +1 -0
  293. package/dist/agent/core/scenePolicy.js +49 -0
  294. package/dist/agent/core/scenePolicy.js.map +1 -0
  295. package/dist/agent/core/sceneRouter.d.ts +8 -0
  296. package/dist/agent/core/sceneRouter.d.ts.map +1 -0
  297. package/dist/agent/core/sceneRouter.js +122 -0
  298. package/dist/agent/core/sceneRouter.js.map +1 -0
  299. package/dist/agent/core/sceneTaxonomy.d.ts +6 -0
  300. package/dist/agent/core/sceneTaxonomy.d.ts.map +1 -0
  301. package/dist/agent/core/sceneTaxonomy.js +83 -0
  302. package/dist/agent/core/sceneTaxonomy.js.map +1 -0
  303. package/dist/agent/core/sceneTemplateStore.d.ts +10 -0
  304. package/dist/agent/core/sceneTemplateStore.d.ts.map +1 -0
  305. package/dist/agent/core/sceneTemplateStore.js +244 -0
  306. package/dist/agent/core/sceneTemplateStore.js.map +1 -0
  307. package/dist/agent/core/sceneTemplateValidator.d.ts +22 -0
  308. package/dist/agent/core/sceneTemplateValidator.d.ts.map +1 -0
  309. package/dist/agent/core/sceneTemplateValidator.js +226 -0
  310. package/dist/agent/core/sceneTemplateValidator.js.map +1 -0
  311. package/dist/agent/core/sceneTypes.d.ts +53 -0
  312. package/dist/agent/core/sceneTypes.d.ts.map +1 -0
  313. package/dist/agent/core/sceneTypes.js +6 -0
  314. package/dist/agent/core/sceneTypes.js.map +1 -0
  315. package/dist/agent/core/stateMachine.d.ts +135 -0
  316. package/dist/agent/core/stateMachine.d.ts.map +1 -0
  317. package/dist/agent/core/stateMachine.js +516 -0
  318. package/dist/agent/core/stateMachine.js.map +1 -0
  319. package/dist/agent/core/strategySelector.d.ts +121 -0
  320. package/dist/agent/core/strategySelector.d.ts.map +1 -0
  321. package/dist/agent/core/strategySelector.js +344 -0
  322. package/dist/agent/core/strategySelector.js.map +1 -0
  323. package/dist/agent/core/taskGraphExecutor.d.ts +30 -0
  324. package/dist/agent/core/taskGraphExecutor.d.ts.map +1 -0
  325. package/dist/agent/core/taskGraphExecutor.js +142 -0
  326. package/dist/agent/core/taskGraphExecutor.js.map +1 -0
  327. package/dist/agent/core/taskGraphPlanner.d.ts +33 -0
  328. package/dist/agent/core/taskGraphPlanner.d.ts.map +1 -0
  329. package/dist/agent/core/taskGraphPlanner.js +312 -0
  330. package/dist/agent/core/taskGraphPlanner.js.map +1 -0
  331. package/dist/agent/decision/decisionTreeExecutor.d.ts +55 -0
  332. package/dist/agent/decision/decisionTreeExecutor.d.ts.map +1 -0
  333. package/dist/agent/decision/decisionTreeExecutor.js +250 -0
  334. package/dist/agent/decision/decisionTreeExecutor.js.map +1 -0
  335. package/dist/agent/decision/decisionTreeStageExecutor.d.ts +65 -0
  336. package/dist/agent/decision/decisionTreeStageExecutor.d.ts.map +1 -0
  337. package/dist/agent/decision/decisionTreeStageExecutor.js +286 -0
  338. package/dist/agent/decision/decisionTreeStageExecutor.js.map +1 -0
  339. package/dist/agent/decision/index.d.ts +27 -0
  340. package/dist/agent/decision/index.d.ts.map +1 -0
  341. package/dist/agent/decision/index.js +70 -0
  342. package/dist/agent/decision/index.js.map +1 -0
  343. package/dist/agent/decision/skillExecutorAdapter.d.ts +89 -0
  344. package/dist/agent/decision/skillExecutorAdapter.d.ts.map +1 -0
  345. package/dist/agent/decision/skillExecutorAdapter.js +447 -0
  346. package/dist/agent/decision/skillExecutorAdapter.js.map +1 -0
  347. package/dist/agent/decision/trees/index.d.ts +8 -0
  348. package/dist/agent/decision/trees/index.d.ts.map +1 -0
  349. package/dist/agent/decision/trees/index.js +16 -0
  350. package/dist/agent/decision/trees/index.js.map +1 -0
  351. package/dist/agent/decision/trees/launchDecisionTree.d.ts +7 -0
  352. package/dist/agent/decision/trees/launchDecisionTree.d.ts.map +1 -0
  353. package/dist/agent/decision/trees/launchDecisionTree.js +670 -0
  354. package/dist/agent/decision/trees/launchDecisionTree.js.map +1 -0
  355. package/dist/agent/decision/trees/scrollingDecisionTree.d.ts +7 -0
  356. package/dist/agent/decision/trees/scrollingDecisionTree.d.ts.map +1 -0
  357. package/dist/agent/decision/trees/scrollingDecisionTree.js +698 -0
  358. package/dist/agent/decision/trees/scrollingDecisionTree.js.map +1 -0
  359. package/dist/agent/decision/types.d.ts +191 -0
  360. package/dist/agent/decision/types.d.ts.map +1 -0
  361. package/dist/agent/decision/types.js +6 -0
  362. package/dist/agent/decision/types.js.map +1 -0
  363. package/dist/agent/detectors/architectureDetector.d.ts +31 -0
  364. package/dist/agent/detectors/architectureDetector.d.ts.map +1 -0
  365. package/dist/agent/detectors/architectureDetector.js +190 -0
  366. package/dist/agent/detectors/architectureDetector.js.map +1 -0
  367. package/dist/agent/detectors/index.d.ts +11 -0
  368. package/dist/agent/detectors/index.d.ts.map +1 -0
  369. package/dist/agent/detectors/index.js +36 -0
  370. package/dist/agent/detectors/index.js.map +1 -0
  371. package/dist/agent/detectors/types.d.ts +113 -0
  372. package/dist/agent/detectors/types.d.ts.map +1 -0
  373. package/dist/agent/detectors/types.js +6 -0
  374. package/dist/agent/detectors/types.js.map +1 -0
  375. package/dist/agent/evalSystem.d.ts +61 -0
  376. package/dist/agent/evalSystem.d.ts.map +1 -0
  377. package/dist/agent/evalSystem.js +210 -0
  378. package/dist/agent/evalSystem.js.map +1 -0
  379. package/dist/agent/experts/base/baseExpert.d.ts +108 -0
  380. package/dist/agent/experts/base/baseExpert.d.ts.map +1 -0
  381. package/dist/agent/experts/base/baseExpert.js +359 -0
  382. package/dist/agent/experts/base/baseExpert.js.map +1 -0
  383. package/dist/agent/experts/base/index.d.ts +9 -0
  384. package/dist/agent/experts/base/index.d.ts.map +1 -0
  385. package/dist/agent/experts/base/index.js +15 -0
  386. package/dist/agent/experts/base/index.js.map +1 -0
  387. package/dist/agent/experts/base/types.d.ts +202 -0
  388. package/dist/agent/experts/base/types.d.ts.map +1 -0
  389. package/dist/agent/experts/base/types.js +6 -0
  390. package/dist/agent/experts/base/types.js.map +1 -0
  391. package/dist/agent/experts/crossDomain/baseCrossDomainExpert.d.ts +113 -0
  392. package/dist/agent/experts/crossDomain/baseCrossDomainExpert.d.ts.map +1 -0
  393. package/dist/agent/experts/crossDomain/baseCrossDomainExpert.js +412 -0
  394. package/dist/agent/experts/crossDomain/baseCrossDomainExpert.js.map +1 -0
  395. package/dist/agent/experts/crossDomain/dialogueProtocol.d.ts +164 -0
  396. package/dist/agent/experts/crossDomain/dialogueProtocol.d.ts.map +1 -0
  397. package/dist/agent/experts/crossDomain/dialogueProtocol.js +390 -0
  398. package/dist/agent/experts/crossDomain/dialogueProtocol.js.map +1 -0
  399. package/dist/agent/experts/crossDomain/experts/performanceExpert.d.ts +119 -0
  400. package/dist/agent/experts/crossDomain/experts/performanceExpert.d.ts.map +1 -0
  401. package/dist/agent/experts/crossDomain/experts/performanceExpert.js +736 -0
  402. package/dist/agent/experts/crossDomain/experts/performanceExpert.js.map +1 -0
  403. package/dist/agent/experts/crossDomain/hypothesisManager.d.ts +105 -0
  404. package/dist/agent/experts/crossDomain/hypothesisManager.d.ts.map +1 -0
  405. package/dist/agent/experts/crossDomain/hypothesisManager.js +283 -0
  406. package/dist/agent/experts/crossDomain/hypothesisManager.js.map +1 -0
  407. package/dist/agent/experts/crossDomain/index.d.ts +18 -0
  408. package/dist/agent/experts/crossDomain/index.d.ts.map +1 -0
  409. package/dist/agent/experts/crossDomain/index.js +28 -0
  410. package/dist/agent/experts/crossDomain/index.js.map +1 -0
  411. package/dist/agent/experts/crossDomain/moduleCatalog.d.ts +97 -0
  412. package/dist/agent/experts/crossDomain/moduleCatalog.d.ts.map +1 -0
  413. package/dist/agent/experts/crossDomain/moduleCatalog.js +453 -0
  414. package/dist/agent/experts/crossDomain/moduleCatalog.js.map +1 -0
  415. package/dist/agent/experts/crossDomain/moduleExpertInvoker.d.ts +149 -0
  416. package/dist/agent/experts/crossDomain/moduleExpertInvoker.d.ts.map +1 -0
  417. package/dist/agent/experts/crossDomain/moduleExpertInvoker.js +582 -0
  418. package/dist/agent/experts/crossDomain/moduleExpertInvoker.js.map +1 -0
  419. package/dist/agent/experts/crossDomain/types.d.ts +369 -0
  420. package/dist/agent/experts/crossDomain/types.d.ts.map +1 -0
  421. package/dist/agent/experts/crossDomain/types.js +6 -0
  422. package/dist/agent/experts/crossDomain/types.js.map +1 -0
  423. package/dist/agent/experts/index.d.ts +81 -0
  424. package/dist/agent/experts/index.d.ts.map +1 -0
  425. package/dist/agent/experts/index.js +222 -0
  426. package/dist/agent/experts/index.js.map +1 -0
  427. package/dist/agent/experts/interactionExpert.d.ts +66 -0
  428. package/dist/agent/experts/interactionExpert.d.ts.map +1 -0
  429. package/dist/agent/experts/interactionExpert.js +280 -0
  430. package/dist/agent/experts/interactionExpert.js.map +1 -0
  431. package/dist/agent/experts/launchExpert.d.ts +73 -0
  432. package/dist/agent/experts/launchExpert.d.ts.map +1 -0
  433. package/dist/agent/experts/launchExpert.js +411 -0
  434. package/dist/agent/experts/launchExpert.js.map +1 -0
  435. package/dist/agent/experts/systemExpert.d.ts +81 -0
  436. package/dist/agent/experts/systemExpert.d.ts.map +1 -0
  437. package/dist/agent/experts/systemExpert.js +507 -0
  438. package/dist/agent/experts/systemExpert.js.map +1 -0
  439. package/dist/agent/fork/forkManager.d.ts +161 -0
  440. package/dist/agent/fork/forkManager.d.ts.map +1 -0
  441. package/dist/agent/fork/forkManager.js +721 -0
  442. package/dist/agent/fork/forkManager.js.map +1 -0
  443. package/dist/agent/fork/forkTypes.d.ts +274 -0
  444. package/dist/agent/fork/forkTypes.d.ts.map +1 -0
  445. package/dist/agent/fork/forkTypes.js +18 -0
  446. package/dist/agent/fork/forkTypes.js.map +1 -0
  447. package/dist/agent/fork/index.d.ts +10 -0
  448. package/dist/agent/fork/index.d.ts.map +1 -0
  449. package/dist/agent/fork/index.js +47 -0
  450. package/dist/agent/fork/index.js.map +1 -0
  451. package/dist/agent/fork/mergeStrategies.d.ts +115 -0
  452. package/dist/agent/fork/mergeStrategies.d.ts.map +1 -0
  453. package/dist/agent/fork/mergeStrategies.js +404 -0
  454. package/dist/agent/fork/mergeStrategies.js.map +1 -0
  455. package/dist/agent/fork/sessionTree.d.ts +141 -0
  456. package/dist/agent/fork/sessionTree.d.ts.map +1 -0
  457. package/dist/agent/fork/sessionTree.js +443 -0
  458. package/dist/agent/fork/sessionTree.js.map +1 -0
  459. package/dist/agent/hooks/hookContext.d.ts +19 -0
  460. package/dist/agent/hooks/hookContext.d.ts.map +1 -0
  461. package/dist/agent/hooks/hookContext.js +67 -0
  462. package/dist/agent/hooks/hookContext.js.map +1 -0
  463. package/dist/agent/hooks/hookRegistry.d.ts +73 -0
  464. package/dist/agent/hooks/hookRegistry.d.ts.map +1 -0
  465. package/dist/agent/hooks/hookRegistry.js +271 -0
  466. package/dist/agent/hooks/hookRegistry.js.map +1 -0
  467. package/dist/agent/hooks/hookTypes.d.ts +186 -0
  468. package/dist/agent/hooks/hookTypes.d.ts.map +1 -0
  469. package/dist/agent/hooks/hookTypes.js +24 -0
  470. package/dist/agent/hooks/hookTypes.js.map +1 -0
  471. package/dist/agent/hooks/index.d.ts +10 -0
  472. package/dist/agent/hooks/index.d.ts.map +1 -0
  473. package/dist/agent/hooks/index.js +41 -0
  474. package/dist/agent/hooks/index.js.map +1 -0
  475. package/dist/agent/hooks/middleware/index.d.ts +6 -0
  476. package/dist/agent/hooks/middleware/index.d.ts.map +1 -0
  477. package/dist/agent/hooks/middleware/index.js +17 -0
  478. package/dist/agent/hooks/middleware/index.js.map +1 -0
  479. package/dist/agent/hooks/middleware/loggingMiddleware.d.ts +27 -0
  480. package/dist/agent/hooks/middleware/loggingMiddleware.d.ts.map +1 -0
  481. package/dist/agent/hooks/middleware/loggingMiddleware.js +104 -0
  482. package/dist/agent/hooks/middleware/loggingMiddleware.js.map +1 -0
  483. package/dist/agent/hooks/middleware/timingMiddleware.d.ts +56 -0
  484. package/dist/agent/hooks/middleware/timingMiddleware.d.ts.map +1 -0
  485. package/dist/agent/hooks/middleware/timingMiddleware.js +171 -0
  486. package/dist/agent/hooks/middleware/timingMiddleware.js.map +1 -0
  487. package/dist/agent/index.d.ts +15 -0
  488. package/dist/agent/index.d.ts.map +1 -0
  489. package/dist/agent/index.js +88 -0
  490. package/dist/agent/index.js.map +1 -0
  491. package/dist/agent/llmAdapter.d.ts +33 -0
  492. package/dist/agent/llmAdapter.d.ts.map +1 -0
  493. package/dist/agent/llmAdapter.js +257 -0
  494. package/dist/agent/llmAdapter.js.map +1 -0
  495. package/dist/agent/scene/sceneAnalysisJobRunner.d.ts +106 -0
  496. package/dist/agent/scene/sceneAnalysisJobRunner.d.ts.map +1 -0
  497. package/dist/agent/scene/sceneAnalysisJobRunner.js +201 -0
  498. package/dist/agent/scene/sceneAnalysisJobRunner.js.map +1 -0
  499. package/dist/agent/scene/sceneCostEstimator.d.ts +33 -0
  500. package/dist/agent/scene/sceneCostEstimator.d.ts.map +1 -0
  501. package/dist/agent/scene/sceneCostEstimator.js +42 -0
  502. package/dist/agent/scene/sceneCostEstimator.js.map +1 -0
  503. package/dist/agent/scene/sceneIntervalBuilder.d.ts +37 -0
  504. package/dist/agent/scene/sceneIntervalBuilder.d.ts.map +1 -0
  505. package/dist/agent/scene/sceneIntervalBuilder.js +748 -0
  506. package/dist/agent/scene/sceneIntervalBuilder.js.map +1 -0
  507. package/dist/agent/scene/sceneStage1Runner.d.ts +47 -0
  508. package/dist/agent/scene/sceneStage1Runner.d.ts.map +1 -0
  509. package/dist/agent/scene/sceneStage1Runner.js +49 -0
  510. package/dist/agent/scene/sceneStage1Runner.js.map +1 -0
  511. package/dist/agent/scene/sceneStage3Summarizer.d.ts +11 -0
  512. package/dist/agent/scene/sceneStage3Summarizer.d.ts.map +1 -0
  513. package/dist/agent/scene/sceneStage3Summarizer.js +155 -0
  514. package/dist/agent/scene/sceneStage3Summarizer.js.map +1 -0
  515. package/dist/agent/scene/sceneStoryService.d.ts +168 -0
  516. package/dist/agent/scene/sceneStoryService.d.ts.map +1 -0
  517. package/dist/agent/scene/sceneStoryService.js +623 -0
  518. package/dist/agent/scene/sceneStoryService.js.map +1 -0
  519. package/dist/agent/scene/sceneTraceDurationProbe.d.ts +16 -0
  520. package/dist/agent/scene/sceneTraceDurationProbe.d.ts.map +1 -0
  521. package/dist/agent/scene/sceneTraceDurationProbe.js +22 -0
  522. package/dist/agent/scene/sceneTraceDurationProbe.js.map +1 -0
  523. package/dist/agent/scene/traceHash.d.ts +23 -0
  524. package/dist/agent/scene/traceHash.d.ts.map +1 -0
  525. package/dist/agent/scene/traceHash.js +65 -0
  526. package/dist/agent/scene/traceHash.js.map +1 -0
  527. package/dist/agent/scene/types.d.ts +199 -0
  528. package/dist/agent/scene/types.d.ts.map +1 -0
  529. package/dist/agent/scene/types.js +6 -0
  530. package/dist/agent/scene/types.js.map +1 -0
  531. package/dist/agent/state/checkpointManager.d.ts +85 -0
  532. package/dist/agent/state/checkpointManager.d.ts.map +1 -0
  533. package/dist/agent/state/checkpointManager.js +339 -0
  534. package/dist/agent/state/checkpointManager.js.map +1 -0
  535. package/dist/agent/state/index.d.ts +11 -0
  536. package/dist/agent/state/index.d.ts.map +1 -0
  537. package/dist/agent/state/index.js +21 -0
  538. package/dist/agent/state/index.js.map +1 -0
  539. package/dist/agent/state/sessionStore.d.ts +126 -0
  540. package/dist/agent/state/sessionStore.d.ts.map +1 -0
  541. package/dist/agent/state/sessionStore.js +440 -0
  542. package/dist/agent/state/sessionStore.js.map +1 -0
  543. package/dist/agent/state/traceAgentState.d.ts +125 -0
  544. package/dist/agent/state/traceAgentState.d.ts.map +1 -0
  545. package/dist/agent/state/traceAgentState.js +173 -0
  546. package/dist/agent/state/traceAgentState.js.map +1 -0
  547. package/dist/agent/strategies/helpers.d.ts +44 -0
  548. package/dist/agent/strategies/helpers.d.ts.map +1 -0
  549. package/dist/agent/strategies/helpers.js +138 -0
  550. package/dist/agent/strategies/helpers.js.map +1 -0
  551. package/dist/agent/strategies/index.d.ts +15 -0
  552. package/dist/agent/strategies/index.d.ts.map +1 -0
  553. package/dist/agent/strategies/index.js +23 -0
  554. package/dist/agent/strategies/index.js.map +1 -0
  555. package/dist/agent/strategies/interactionStrategy.d.ts +3 -0
  556. package/dist/agent/strategies/interactionStrategy.d.ts.map +1 -0
  557. package/dist/agent/strategies/interactionStrategy.js +242 -0
  558. package/dist/agent/strategies/interactionStrategy.js.map +1 -0
  559. package/dist/agent/strategies/registry.d.ts +110 -0
  560. package/dist/agent/strategies/registry.d.ts.map +1 -0
  561. package/dist/agent/strategies/registry.js +264 -0
  562. package/dist/agent/strategies/registry.js.map +1 -0
  563. package/dist/agent/strategies/sceneReconstructionStrategy.d.ts +4 -0
  564. package/dist/agent/strategies/sceneReconstructionStrategy.d.ts.map +1 -0
  565. package/dist/agent/strategies/sceneReconstructionStrategy.js +593 -0
  566. package/dist/agent/strategies/sceneReconstructionStrategy.js.map +1 -0
  567. package/dist/agent/strategies/scrollingStrategy.d.ts +3 -0
  568. package/dist/agent/strategies/scrollingStrategy.d.ts.map +1 -0
  569. package/dist/agent/strategies/scrollingStrategy.js +414 -0
  570. package/dist/agent/strategies/scrollingStrategy.js.map +1 -0
  571. package/dist/agent/strategies/startupStrategy.d.ts +3 -0
  572. package/dist/agent/strategies/startupStrategy.d.ts.map +1 -0
  573. package/dist/agent/strategies/startupStrategy.js +495 -0
  574. package/dist/agent/strategies/startupStrategy.js.map +1 -0
  575. package/dist/agent/strategies/types.d.ts +156 -0
  576. package/dist/agent/strategies/types.d.ts.map +1 -0
  577. package/dist/agent/strategies/types.js +6 -0
  578. package/dist/agent/strategies/types.js.map +1 -0
  579. package/dist/agent/toolRegistry.d.ts +4 -0
  580. package/dist/agent/toolRegistry.d.ts.map +1 -0
  581. package/dist/agent/toolRegistry.js +45 -0
  582. package/dist/agent/toolRegistry.js.map +1 -0
  583. package/dist/agent/tools/dataStats.d.ts +23 -0
  584. package/dist/agent/tools/dataStats.d.ts.map +1 -0
  585. package/dist/agent/tools/dataStats.js +123 -0
  586. package/dist/agent/tools/dataStats.js.map +1 -0
  587. package/dist/agent/tools/frameAnalyzer.d.ts +45 -0
  588. package/dist/agent/tools/frameAnalyzer.d.ts.map +1 -0
  589. package/dist/agent/tools/frameAnalyzer.js +338 -0
  590. package/dist/agent/tools/frameAnalyzer.js.map +1 -0
  591. package/dist/agent/tools/index.d.ts +6 -0
  592. package/dist/agent/tools/index.d.ts.map +1 -0
  593. package/dist/agent/tools/index.js +31 -0
  594. package/dist/agent/tools/index.js.map +1 -0
  595. package/dist/agent/tools/skillInvoker.d.ts +50 -0
  596. package/dist/agent/tools/skillInvoker.d.ts.map +1 -0
  597. package/dist/agent/tools/skillInvoker.js +279 -0
  598. package/dist/agent/tools/skillInvoker.js.map +1 -0
  599. package/dist/agent/tools/sqlExecutor.d.ts +12 -0
  600. package/dist/agent/tools/sqlExecutor.d.ts.map +1 -0
  601. package/dist/agent/tools/sqlExecutor.js +193 -0
  602. package/dist/agent/tools/sqlExecutor.js.map +1 -0
  603. package/dist/agent/tools/sqlGenerator.d.ts +154 -0
  604. package/dist/agent/tools/sqlGenerator.d.ts.map +1 -0
  605. package/dist/agent/tools/sqlGenerator.js +449 -0
  606. package/dist/agent/tools/sqlGenerator.js.map +1 -0
  607. package/dist/agent/tools/sqlValidator.d.ts +149 -0
  608. package/dist/agent/tools/sqlValidator.d.ts.map +1 -0
  609. package/dist/agent/tools/sqlValidator.js +376 -0
  610. package/dist/agent/tools/sqlValidator.js.map +1 -0
  611. package/dist/agent/traceRecorder.d.ts +42 -0
  612. package/dist/agent/traceRecorder.d.ts.map +1 -0
  613. package/dist/agent/traceRecorder.js +122 -0
  614. package/dist/agent/traceRecorder.js.map +1 -0
  615. package/dist/agent/types/agentProtocol.d.ts +377 -0
  616. package/dist/agent/types/agentProtocol.d.ts.map +1 -0
  617. package/dist/agent/types/agentProtocol.js +102 -0
  618. package/dist/agent/types/agentProtocol.js.map +1 -0
  619. package/dist/agent/types/jankCause.d.ts +47 -0
  620. package/dist/agent/types/jankCause.d.ts.map +1 -0
  621. package/dist/agent/types/jankCause.js +6 -0
  622. package/dist/agent/types/jankCause.js.map +1 -0
  623. package/dist/agent/types.d.ts +725 -0
  624. package/dist/agent/types.d.ts.map +1 -0
  625. package/dist/agent/types.js +63 -0
  626. package/dist/agent/types.js.map +1 -0
  627. package/dist/agentOpenAI/index.d.ts +4 -0
  628. package/dist/agentOpenAI/index.d.ts.map +1 -0
  629. package/dist/agentOpenAI/index.js +17 -0
  630. package/dist/agentOpenAI/index.js.map +1 -0
  631. package/dist/agentOpenAI/mimoReasoningCompat.d.ts +9 -0
  632. package/dist/agentOpenAI/mimoReasoningCompat.d.ts.map +1 -0
  633. package/dist/agentOpenAI/mimoReasoningCompat.js +367 -0
  634. package/dist/agentOpenAI/mimoReasoningCompat.js.map +1 -0
  635. package/dist/agentOpenAI/openAiComplexityClassifier.d.ts +18 -0
  636. package/dist/agentOpenAI/openAiComplexityClassifier.d.ts.map +1 -0
  637. package/dist/agentOpenAI/openAiComplexityClassifier.js +102 -0
  638. package/dist/agentOpenAI/openAiComplexityClassifier.js.map +1 -0
  639. package/dist/agentOpenAI/openAiConfig.d.ts +38 -0
  640. package/dist/agentOpenAI/openAiConfig.d.ts.map +1 -0
  641. package/dist/agentOpenAI/openAiConfig.js +104 -0
  642. package/dist/agentOpenAI/openAiConfig.js.map +1 -0
  643. package/dist/agentOpenAI/openAiRuntime.d.ts +99 -0
  644. package/dist/agentOpenAI/openAiRuntime.d.ts.map +1 -0
  645. package/dist/agentOpenAI/openAiRuntime.js +1440 -0
  646. package/dist/agentOpenAI/openAiRuntime.js.map +1 -0
  647. package/dist/agentOpenAI/openAiToolAdapter.d.ts +9 -0
  648. package/dist/agentOpenAI/openAiToolAdapter.d.ts.map +1 -0
  649. package/dist/agentOpenAI/openAiToolAdapter.js +111 -0
  650. package/dist/agentOpenAI/openAiToolAdapter.js.map +1 -0
  651. package/dist/agentRuntime/envCredentialSources.d.ts +6 -0
  652. package/dist/agentRuntime/envCredentialSources.d.ts.map +1 -0
  653. package/dist/agentRuntime/envCredentialSources.js +104 -0
  654. package/dist/agentRuntime/envCredentialSources.js.map +1 -0
  655. package/dist/agentRuntime/index.d.ts +2 -0
  656. package/dist/agentRuntime/index.d.ts.map +1 -0
  657. package/dist/agentRuntime/index.js +10 -0
  658. package/dist/agentRuntime/index.js.map +1 -0
  659. package/dist/agentRuntime/runtimeHealth.d.ts +65 -0
  660. package/dist/agentRuntime/runtimeHealth.d.ts.map +1 -0
  661. package/dist/agentRuntime/runtimeHealth.js +58 -0
  662. package/dist/agentRuntime/runtimeHealth.js.map +1 -0
  663. package/dist/agentRuntime/runtimeSelection.d.ts +25 -0
  664. package/dist/agentRuntime/runtimeSelection.d.ts.map +1 -0
  665. package/dist/agentRuntime/runtimeSelection.js +66 -0
  666. package/dist/agentRuntime/runtimeSelection.js.map +1 -0
  667. package/dist/agentv3/__mocks__/claude-agent-sdk.d.ts +25 -0
  668. package/dist/agentv3/__mocks__/claude-agent-sdk.d.ts.map +1 -0
  669. package/dist/agentv3/__mocks__/claude-agent-sdk.js +48 -0
  670. package/dist/agentv3/__mocks__/claude-agent-sdk.js.map +1 -0
  671. package/dist/agentv3/activePhaseReminder.d.ts +12 -0
  672. package/dist/agentv3/activePhaseReminder.d.ts.map +1 -0
  673. package/dist/agentv3/activePhaseReminder.js +73 -0
  674. package/dist/agentv3/activePhaseReminder.js.map +1 -0
  675. package/dist/agentv3/agentMetrics.d.ts +114 -0
  676. package/dist/agentv3/agentMetrics.d.ts.map +1 -0
  677. package/dist/agentv3/agentMetrics.js +262 -0
  678. package/dist/agentv3/agentMetrics.js.map +1 -0
  679. package/dist/agentv3/analysisPatternMemory.d.ts +146 -0
  680. package/dist/agentv3/analysisPatternMemory.d.ts.map +1 -0
  681. package/dist/agentv3/analysisPatternMemory.js +860 -0
  682. package/dist/agentv3/analysisPatternMemory.js.map +1 -0
  683. package/dist/agentv3/analysisTermination.d.ts +21 -0
  684. package/dist/agentv3/analysisTermination.d.ts.map +1 -0
  685. package/dist/agentv3/analysisTermination.js +97 -0
  686. package/dist/agentv3/analysisTermination.js.map +1 -0
  687. package/dist/agentv3/artifactStore.d.ts +131 -0
  688. package/dist/agentv3/artifactStore.d.ts.map +1 -0
  689. package/dist/agentv3/artifactStore.js +208 -0
  690. package/dist/agentv3/artifactStore.js.map +1 -0
  691. package/dist/agentv3/claudeAgentDefinitions.d.ts +44 -0
  692. package/dist/agentv3/claudeAgentDefinitions.d.ts.map +1 -0
  693. package/dist/agentv3/claudeAgentDefinitions.js +209 -0
  694. package/dist/agentv3/claudeAgentDefinitions.js.map +1 -0
  695. package/dist/agentv3/claudeConfig.d.ts +156 -0
  696. package/dist/agentv3/claudeConfig.d.ts.map +1 -0
  697. package/dist/agentv3/claudeConfig.js +553 -0
  698. package/dist/agentv3/claudeConfig.js.map +1 -0
  699. package/dist/agentv3/claudeFindingExtractor.d.ts +15 -0
  700. package/dist/agentv3/claudeFindingExtractor.d.ts.map +1 -0
  701. package/dist/agentv3/claudeFindingExtractor.js +150 -0
  702. package/dist/agentv3/claudeFindingExtractor.js.map +1 -0
  703. package/dist/agentv3/claudeMcpServer.d.ts +89 -0
  704. package/dist/agentv3/claudeMcpServer.d.ts.map +1 -0
  705. package/dist/agentv3/claudeMcpServer.js +3785 -0
  706. package/dist/agentv3/claudeMcpServer.js.map +1 -0
  707. package/dist/agentv3/claudeRuntime.d.ts +137 -0
  708. package/dist/agentv3/claudeRuntime.d.ts.map +1 -0
  709. package/dist/agentv3/claudeRuntime.js +2541 -0
  710. package/dist/agentv3/claudeRuntime.js.map +1 -0
  711. package/dist/agentv3/claudeSseBridge.d.ts +23 -0
  712. package/dist/agentv3/claudeSseBridge.d.ts.map +1 -0
  713. package/dist/agentv3/claudeSseBridge.js +385 -0
  714. package/dist/agentv3/claudeSseBridge.js.map +1 -0
  715. package/dist/agentv3/claudeSystemPrompt.d.ts +65 -0
  716. package/dist/agentv3/claudeSystemPrompt.d.ts.map +1 -0
  717. package/dist/agentv3/claudeSystemPrompt.js +486 -0
  718. package/dist/agentv3/claudeSystemPrompt.js.map +1 -0
  719. package/dist/agentv3/claudeVerifier.d.ts +82 -0
  720. package/dist/agentv3/claudeVerifier.d.ts.map +1 -0
  721. package/dist/agentv3/claudeVerifier.js +1047 -0
  722. package/dist/agentv3/claudeVerifier.js.map +1 -0
  723. package/dist/agentv3/contextTokenMeter.d.ts +78 -0
  724. package/dist/agentv3/contextTokenMeter.d.ts.map +1 -0
  725. package/dist/agentv3/contextTokenMeter.js +88 -0
  726. package/dist/agentv3/contextTokenMeter.js.map +1 -0
  727. package/dist/agentv3/focusAppDetector.d.ts +22 -0
  728. package/dist/agentv3/focusAppDetector.d.ts.map +1 -0
  729. package/dist/agentv3/focusAppDetector.js +208 -0
  730. package/dist/agentv3/focusAppDetector.js.map +1 -0
  731. package/dist/agentv3/index.d.ts +6 -0
  732. package/dist/agentv3/index.d.ts.map +1 -0
  733. package/dist/agentv3/index.js +16 -0
  734. package/dist/agentv3/index.js.map +1 -0
  735. package/dist/agentv3/mcpToolRegistry.d.ts +90 -0
  736. package/dist/agentv3/mcpToolRegistry.d.ts.map +1 -0
  737. package/dist/agentv3/mcpToolRegistry.js +152 -0
  738. package/dist/agentv3/mcpToolRegistry.js.map +1 -0
  739. package/dist/agentv3/outputLanguage.d.ts +6 -0
  740. package/dist/agentv3/outputLanguage.d.ts.map +1 -0
  741. package/dist/agentv3/outputLanguage.js +37 -0
  742. package/dist/agentv3/outputLanguage.js.map +1 -0
  743. package/dist/agentv3/phaseHintMatcher.d.ts +36 -0
  744. package/dist/agentv3/phaseHintMatcher.d.ts.map +1 -0
  745. package/dist/agentv3/phaseHintMatcher.js +48 -0
  746. package/dist/agentv3/phaseHintMatcher.js.map +1 -0
  747. package/dist/agentv3/projectMemory.d.ts +80 -0
  748. package/dist/agentv3/projectMemory.d.ts.map +1 -0
  749. package/dist/agentv3/projectMemory.js +334 -0
  750. package/dist/agentv3/projectMemory.js.map +1 -0
  751. package/dist/agentv3/queryComplexityClassifier.d.ts +21 -0
  752. package/dist/agentv3/queryComplexityClassifier.d.ts.map +1 -0
  753. package/dist/agentv3/queryComplexityClassifier.js +196 -0
  754. package/dist/agentv3/queryComplexityClassifier.js.map +1 -0
  755. package/dist/agentv3/rawSqlNormalizer.d.ts +11 -0
  756. package/dist/agentv3/rawSqlNormalizer.d.ts.map +1 -0
  757. package/dist/agentv3/rawSqlNormalizer.js +649 -0
  758. package/dist/agentv3/rawSqlNormalizer.js.map +1 -0
  759. package/dist/agentv3/recoveryNoteBuilder.d.ts +51 -0
  760. package/dist/agentv3/recoveryNoteBuilder.d.ts.map +1 -0
  761. package/dist/agentv3/recoveryNoteBuilder.js +84 -0
  762. package/dist/agentv3/recoveryNoteBuilder.js.map +1 -0
  763. package/dist/agentv3/sceneClassifier.d.ts +11 -0
  764. package/dist/agentv3/sceneClassifier.d.ts.map +1 -0
  765. package/dist/agentv3/sceneClassifier.js +46 -0
  766. package/dist/agentv3/sceneClassifier.js.map +1 -0
  767. package/dist/agentv3/scenePlanTemplates.d.ts +80 -0
  768. package/dist/agentv3/scenePlanTemplates.d.ts.map +1 -0
  769. package/dist/agentv3/scenePlanTemplates.js +164 -0
  770. package/dist/agentv3/scenePlanTemplates.js.map +1 -0
  771. package/dist/agentv3/selfImprove/contentScanner.d.ts +44 -0
  772. package/dist/agentv3/selfImprove/contentScanner.d.ts.map +1 -0
  773. package/dist/agentv3/selfImprove/contentScanner.js +112 -0
  774. package/dist/agentv3/selfImprove/contentScanner.js.map +1 -0
  775. package/dist/agentv3/selfImprove/failureTaxonomy.d.ts +38 -0
  776. package/dist/agentv3/selfImprove/failureTaxonomy.d.ts.map +1 -0
  777. package/dist/agentv3/selfImprove/failureTaxonomy.js +102 -0
  778. package/dist/agentv3/selfImprove/failureTaxonomy.js.map +1 -0
  779. package/dist/agentv3/selfImprove/feedbackEnricher.d.ts +69 -0
  780. package/dist/agentv3/selfImprove/feedbackEnricher.d.ts.map +1 -0
  781. package/dist/agentv3/selfImprove/feedbackEnricher.js +135 -0
  782. package/dist/agentv3/selfImprove/feedbackEnricher.js.map +1 -0
  783. package/dist/agentv3/selfImprove/feedbackPipeline.d.ts +63 -0
  784. package/dist/agentv3/selfImprove/feedbackPipeline.d.ts.map +1 -0
  785. package/dist/agentv3/selfImprove/feedbackPipeline.js +239 -0
  786. package/dist/agentv3/selfImprove/feedbackPipeline.js.map +1 -0
  787. package/dist/agentv3/selfImprove/hintFingerprint.d.ts +14 -0
  788. package/dist/agentv3/selfImprove/hintFingerprint.d.ts.map +1 -0
  789. package/dist/agentv3/selfImprove/hintFingerprint.js +47 -0
  790. package/dist/agentv3/selfImprove/hintFingerprint.js.map +1 -0
  791. package/dist/agentv3/selfImprove/metricsAggregator.d.ts +46 -0
  792. package/dist/agentv3/selfImprove/metricsAggregator.d.ts.map +1 -0
  793. package/dist/agentv3/selfImprove/metricsAggregator.js +195 -0
  794. package/dist/agentv3/selfImprove/metricsAggregator.js.map +1 -0
  795. package/dist/agentv3/selfImprove/migrateFailureModeHash.d.ts +31 -0
  796. package/dist/agentv3/selfImprove/migrateFailureModeHash.d.ts.map +1 -0
  797. package/dist/agentv3/selfImprove/migrateFailureModeHash.js +220 -0
  798. package/dist/agentv3/selfImprove/migrateFailureModeHash.js.map +1 -0
  799. package/dist/agentv3/selfImprove/phaseHintsRenderer.d.ts +56 -0
  800. package/dist/agentv3/selfImprove/phaseHintsRenderer.d.ts.map +1 -0
  801. package/dist/agentv3/selfImprove/phaseHintsRenderer.js +202 -0
  802. package/dist/agentv3/selfImprove/phaseHintsRenderer.js.map +1 -0
  803. package/dist/agentv3/selfImprove/promoteSkillNote.d.ts +17 -0
  804. package/dist/agentv3/selfImprove/promoteSkillNote.d.ts.map +1 -0
  805. package/dist/agentv3/selfImprove/promoteSkillNote.js +146 -0
  806. package/dist/agentv3/selfImprove/promoteSkillNote.js.map +1 -0
  807. package/dist/agentv3/selfImprove/proposeStrategyPatch.d.ts +40 -0
  808. package/dist/agentv3/selfImprove/proposeStrategyPatch.d.ts.map +1 -0
  809. package/dist/agentv3/selfImprove/proposeStrategyPatch.js +115 -0
  810. package/dist/agentv3/selfImprove/proposeStrategyPatch.js.map +1 -0
  811. package/dist/agentv3/selfImprove/reviewAgentSdk.d.ts +32 -0
  812. package/dist/agentv3/selfImprove/reviewAgentSdk.d.ts.map +1 -0
  813. package/dist/agentv3/selfImprove/reviewAgentSdk.js +173 -0
  814. package/dist/agentv3/selfImprove/reviewAgentSdk.js.map +1 -0
  815. package/dist/agentv3/selfImprove/reviewOutbox.d.ts +128 -0
  816. package/dist/agentv3/selfImprove/reviewOutbox.d.ts.map +1 -0
  817. package/dist/agentv3/selfImprove/reviewOutbox.js +313 -0
  818. package/dist/agentv3/selfImprove/reviewOutbox.js.map +1 -0
  819. package/dist/agentv3/selfImprove/reviewWorker.d.ts +95 -0
  820. package/dist/agentv3/selfImprove/reviewWorker.d.ts.map +1 -0
  821. package/dist/agentv3/selfImprove/reviewWorker.js +172 -0
  822. package/dist/agentv3/selfImprove/reviewWorker.js.map +1 -0
  823. package/dist/agentv3/selfImprove/skillNotesInjector.d.ts +71 -0
  824. package/dist/agentv3/selfImprove/skillNotesInjector.d.ts.map +1 -0
  825. package/dist/agentv3/selfImprove/skillNotesInjector.js +214 -0
  826. package/dist/agentv3/selfImprove/skillNotesInjector.js.map +1 -0
  827. package/dist/agentv3/selfImprove/skillNotesWriter.d.ts +89 -0
  828. package/dist/agentv3/selfImprove/skillNotesWriter.d.ts.map +1 -0
  829. package/dist/agentv3/selfImprove/skillNotesWriter.js +274 -0
  830. package/dist/agentv3/selfImprove/skillNotesWriter.js.map +1 -0
  831. package/dist/agentv3/selfImprove/strategyFingerprint.d.ts +85 -0
  832. package/dist/agentv3/selfImprove/strategyFingerprint.d.ts.map +1 -0
  833. package/dist/agentv3/selfImprove/strategyFingerprint.js +189 -0
  834. package/dist/agentv3/selfImprove/strategyFingerprint.js.map +1 -0
  835. package/dist/agentv3/selfImprove/strategyPatchApplier.d.ts +15 -0
  836. package/dist/agentv3/selfImprove/strategyPatchApplier.d.ts.map +1 -0
  837. package/dist/agentv3/selfImprove/strategyPatchApplier.js +138 -0
  838. package/dist/agentv3/selfImprove/strategyPatchApplier.js.map +1 -0
  839. package/dist/agentv3/selfImprove/supersedeStore.d.ts +136 -0
  840. package/dist/agentv3/selfImprove/supersedeStore.d.ts.map +1 -0
  841. package/dist/agentv3/selfImprove/supersedeStore.js +386 -0
  842. package/dist/agentv3/selfImprove/supersedeStore.js.map +1 -0
  843. package/dist/agentv3/selfImprove/worktreeRunner.d.ts +49 -0
  844. package/dist/agentv3/selfImprove/worktreeRunner.d.ts.map +1 -0
  845. package/dist/agentv3/selfImprove/worktreeRunner.js +153 -0
  846. package/dist/agentv3/selfImprove/worktreeRunner.js.map +1 -0
  847. package/dist/agentv3/sessionStateSnapshot.d.ts +166 -0
  848. package/dist/agentv3/sessionStateSnapshot.d.ts.map +1 -0
  849. package/dist/agentv3/sessionStateSnapshot.js +6 -0
  850. package/dist/agentv3/sessionStateSnapshot.js.map +1 -0
  851. package/dist/agentv3/sqlIncludeInjector.d.ts +24 -0
  852. package/dist/agentv3/sqlIncludeInjector.d.ts.map +1 -0
  853. package/dist/agentv3/sqlIncludeInjector.js +78 -0
  854. package/dist/agentv3/sqlIncludeInjector.js.map +1 -0
  855. package/dist/agentv3/sqlSummarizer.d.ts +38 -0
  856. package/dist/agentv3/sqlSummarizer.d.ts.map +1 -0
  857. package/dist/agentv3/sqlSummarizer.js +101 -0
  858. package/dist/agentv3/sqlSummarizer.js.map +1 -0
  859. package/dist/agentv3/standaloneMcpServer.d.ts +96 -0
  860. package/dist/agentv3/standaloneMcpServer.d.ts.map +1 -0
  861. package/dist/agentv3/standaloneMcpServer.js +244 -0
  862. package/dist/agentv3/standaloneMcpServer.js.map +1 -0
  863. package/dist/agentv3/strategyLoader.d.ts +96 -0
  864. package/dist/agentv3/strategyLoader.d.ts.map +1 -0
  865. package/dist/agentv3/strategyLoader.js +204 -0
  866. package/dist/agentv3/strategyLoader.js.map +1 -0
  867. package/dist/agentv3/toolCallSummary.d.ts +15 -0
  868. package/dist/agentv3/toolCallSummary.d.ts.map +1 -0
  869. package/dist/agentv3/toolCallSummary.js +66 -0
  870. package/dist/agentv3/toolCallSummary.js.map +1 -0
  871. package/dist/agentv3/toolNarration.d.ts +4 -0
  872. package/dist/agentv3/toolNarration.d.ts.map +1 -0
  873. package/dist/agentv3/toolNarration.js +371 -0
  874. package/dist/agentv3/toolNarration.js.map +1 -0
  875. package/dist/agentv3/traceCompletenessProber.d.ts +56 -0
  876. package/dist/agentv3/traceCompletenessProber.d.ts.map +1 -0
  877. package/dist/agentv3/traceCompletenessProber.js +337 -0
  878. package/dist/agentv3/traceCompletenessProber.js.map +1 -0
  879. package/dist/agentv3/types.d.ts +443 -0
  880. package/dist/agentv3/types.d.ts.map +1 -0
  881. package/dist/agentv3/types.js +37 -0
  882. package/dist/agentv3/types.js.map +1 -0
  883. package/dist/assistant/application/agentAnalyzeSessionService.d.ts +130 -0
  884. package/dist/assistant/application/agentAnalyzeSessionService.d.ts.map +1 -0
  885. package/dist/assistant/application/agentAnalyzeSessionService.js +433 -0
  886. package/dist/assistant/application/agentAnalyzeSessionService.js.map +1 -0
  887. package/dist/assistant/application/assistantApplicationService.d.ts +39 -0
  888. package/dist/assistant/application/assistantApplicationService.d.ts.map +1 -0
  889. package/dist/assistant/application/assistantApplicationService.js +88 -0
  890. package/dist/assistant/application/assistantApplicationService.js.map +1 -0
  891. package/dist/assistant/contracts/assistantResultContract.d.ts +41 -0
  892. package/dist/assistant/contracts/assistantResultContract.d.ts.map +1 -0
  893. package/dist/assistant/contracts/assistantResultContract.js +145 -0
  894. package/dist/assistant/contracts/assistantResultContract.js.map +1 -0
  895. package/dist/assistant/stream/sessionSseReplay.d.ts +10 -0
  896. package/dist/assistant/stream/sessionSseReplay.d.ts.map +1 -0
  897. package/dist/assistant/stream/sessionSseReplay.js +42 -0
  898. package/dist/assistant/stream/sessionSseReplay.js.map +1 -0
  899. package/dist/assistant/stream/streamProjector.d.ts +53 -0
  900. package/dist/assistant/stream/streamProjector.d.ts.map +1 -0
  901. package/dist/assistant/stream/streamProjector.js +150 -0
  902. package/dist/assistant/stream/streamProjector.js.map +1 -0
  903. package/dist/cli/commands/coverage.d.ts +12 -0
  904. package/dist/cli/commands/coverage.d.ts.map +1 -0
  905. package/dist/cli/commands/coverage.js +106 -0
  906. package/dist/cli/commands/coverage.js.map +1 -0
  907. package/dist/cli/commands/list.d.ts +11 -0
  908. package/dist/cli/commands/list.d.ts.map +1 -0
  909. package/dist/cli/commands/list.js +169 -0
  910. package/dist/cli/commands/list.js.map +1 -0
  911. package/dist/cli/commands/smoke.d.ts +11 -0
  912. package/dist/cli/commands/smoke.d.ts.map +1 -0
  913. package/dist/cli/commands/smoke.js +215 -0
  914. package/dist/cli/commands/smoke.js.map +1 -0
  915. package/dist/cli/commands/test.d.ts +11 -0
  916. package/dist/cli/commands/test.d.ts.map +1 -0
  917. package/dist/cli/commands/test.js +183 -0
  918. package/dist/cli/commands/test.js.map +1 -0
  919. package/dist/cli/commands/validate.d.ts +26 -0
  920. package/dist/cli/commands/validate.d.ts.map +1 -0
  921. package/dist/cli/commands/validate.js +918 -0
  922. package/dist/cli/commands/validate.js.map +1 -0
  923. package/dist/cli/index.d.ts +3 -0
  924. package/dist/cli/index.d.ts.map +1 -0
  925. package/dist/cli/index.js +29 -0
  926. package/dist/cli/index.js.map +1 -0
  927. package/dist/cli-user/bin.d.ts +3 -0
  928. package/dist/cli-user/bin.d.ts.map +1 -0
  929. package/dist/cli-user/bin.js +490 -0
  930. package/dist/cli-user/bin.js.map +1 -0
  931. package/dist/cli-user/bootstrap.d.ts +12 -0
  932. package/dist/cli-user/bootstrap.d.ts.map +1 -0
  933. package/dist/cli-user/bootstrap.js +165 -0
  934. package/dist/cli-user/bootstrap.js.map +1 -0
  935. package/dist/cli-user/commands/analyze.d.ts +12 -0
  936. package/dist/cli-user/commands/analyze.d.ts.map +1 -0
  937. package/dist/cli-user/commands/analyze.js +83 -0
  938. package/dist/cli-user/commands/analyze.js.map +1 -0
  939. package/dist/cli-user/commands/capture.d.ts +12 -0
  940. package/dist/cli-user/commands/capture.d.ts.map +1 -0
  941. package/dist/cli-user/commands/capture.js +155 -0
  942. package/dist/cli-user/commands/capture.js.map +1 -0
  943. package/dist/cli-user/commands/compare.d.ts +13 -0
  944. package/dist/cli-user/commands/compare.d.ts.map +1 -0
  945. package/dist/cli-user/commands/compare.js +74 -0
  946. package/dist/cli-user/commands/compare.js.map +1 -0
  947. package/dist/cli-user/commands/config.d.ts +9 -0
  948. package/dist/cli-user/commands/config.d.ts.map +1 -0
  949. package/dist/cli-user/commands/config.js +109 -0
  950. package/dist/cli-user/commands/config.js.map +1 -0
  951. package/dist/cli-user/commands/doctor.d.ts +8 -0
  952. package/dist/cli-user/commands/doctor.d.ts.map +1 -0
  953. package/dist/cli-user/commands/doctor.js +37 -0
  954. package/dist/cli-user/commands/doctor.js.map +1 -0
  955. package/dist/cli-user/commands/list.d.ts +10 -0
  956. package/dist/cli-user/commands/list.d.ts.map +1 -0
  957. package/dist/cli-user/commands/list.js +79 -0
  958. package/dist/cli-user/commands/list.js.map +1 -0
  959. package/dist/cli-user/commands/provider.d.ts +12 -0
  960. package/dist/cli-user/commands/provider.d.ts.map +1 -0
  961. package/dist/cli-user/commands/provider.js +121 -0
  962. package/dist/cli-user/commands/provider.js.map +1 -0
  963. package/dist/cli-user/commands/query.d.ts +10 -0
  964. package/dist/cli-user/commands/query.d.ts.map +1 -0
  965. package/dist/cli-user/commands/query.js +128 -0
  966. package/dist/cli-user/commands/query.js.map +1 -0
  967. package/dist/cli-user/commands/report.d.ts +18 -0
  968. package/dist/cli-user/commands/report.d.ts.map +1 -0
  969. package/dist/cli-user/commands/report.js +225 -0
  970. package/dist/cli-user/commands/report.js.map +1 -0
  971. package/dist/cli-user/commands/resume.d.ts +12 -0
  972. package/dist/cli-user/commands/resume.d.ts.map +1 -0
  973. package/dist/cli-user/commands/resume.js +48 -0
  974. package/dist/cli-user/commands/resume.js.map +1 -0
  975. package/dist/cli-user/commands/rm.d.ts +8 -0
  976. package/dist/cli-user/commands/rm.d.ts.map +1 -0
  977. package/dist/cli-user/commands/rm.js +91 -0
  978. package/dist/cli-user/commands/rm.js.map +1 -0
  979. package/dist/cli-user/commands/show.d.ts +8 -0
  980. package/dist/cli-user/commands/show.d.ts.map +1 -0
  981. package/dist/cli-user/commands/show.js +84 -0
  982. package/dist/cli-user/commands/show.js.map +1 -0
  983. package/dist/cli-user/commands/skill.d.ts +11 -0
  984. package/dist/cli-user/commands/skill.d.ts.map +1 -0
  985. package/dist/cli-user/commands/skill.js +118 -0
  986. package/dist/cli-user/commands/skill.js.map +1 -0
  987. package/dist/cli-user/constants.d.ts +10 -0
  988. package/dist/cli-user/constants.d.ts.map +1 -0
  989. package/dist/cli-user/constants.js +16 -0
  990. package/dist/cli-user/constants.js.map +1 -0
  991. package/dist/cli-user/io/indexJson.d.ts +11 -0
  992. package/dist/cli-user/io/indexJson.d.ts.map +1 -0
  993. package/dist/cli-user/io/indexJson.js +79 -0
  994. package/dist/cli-user/io/indexJson.js.map +1 -0
  995. package/dist/cli-user/io/openFile.d.ts +8 -0
  996. package/dist/cli-user/io/openFile.d.ts.map +1 -0
  997. package/dist/cli-user/io/openFile.js +34 -0
  998. package/dist/cli-user/io/openFile.js.map +1 -0
  999. package/dist/cli-user/io/paths.d.ts +33 -0
  1000. package/dist/cli-user/io/paths.d.ts.map +1 -0
  1001. package/dist/cli-user/io/paths.js +149 -0
  1002. package/dist/cli-user/io/paths.js.map +1 -0
  1003. package/dist/cli-user/io/sessionStore.d.ts +17 -0
  1004. package/dist/cli-user/io/sessionStore.d.ts.map +1 -0
  1005. package/dist/cli-user/io/sessionStore.js +101 -0
  1006. package/dist/cli-user/io/sessionStore.js.map +1 -0
  1007. package/dist/cli-user/io/stdio.d.ts +8 -0
  1008. package/dist/cli-user/io/stdio.d.ts.map +1 -0
  1009. package/dist/cli-user/io/stdio.js +25 -0
  1010. package/dist/cli-user/io/stdio.js.map +1 -0
  1011. package/dist/cli-user/io/transcriptWriter.d.ts +5 -0
  1012. package/dist/cli-user/io/transcriptWriter.d.ts.map +1 -0
  1013. package/dist/cli-user/io/transcriptWriter.js +60 -0
  1014. package/dist/cli-user/io/transcriptWriter.js.map +1 -0
  1015. package/dist/cli-user/repl/index.d.ts +14 -0
  1016. package/dist/cli-user/repl/index.d.ts.map +1 -0
  1017. package/dist/cli-user/repl/index.js +301 -0
  1018. package/dist/cli-user/repl/index.js.map +1 -0
  1019. package/dist/cli-user/repl/renderer.d.ts +43 -0
  1020. package/dist/cli-user/repl/renderer.d.ts.map +1 -0
  1021. package/dist/cli-user/repl/renderer.js +210 -0
  1022. package/dist/cli-user/repl/renderer.js.map +1 -0
  1023. package/dist/cli-user/repl/slashCommands.d.ts +49 -0
  1024. package/dist/cli-user/repl/slashCommands.d.ts.map +1 -0
  1025. package/dist/cli-user/repl/slashCommands.js +65 -0
  1026. package/dist/cli-user/repl/slashCommands.js.map +1 -0
  1027. package/dist/cli-user/services/cliAnalyzeService.d.ts +73 -0
  1028. package/dist/cli-user/services/cliAnalyzeService.d.ts.map +1 -0
  1029. package/dist/cli-user/services/cliAnalyzeService.js +393 -0
  1030. package/dist/cli-user/services/cliAnalyzeService.js.map +1 -0
  1031. package/dist/cli-user/services/runtimeGuard.d.ts +46 -0
  1032. package/dist/cli-user/services/runtimeGuard.d.ts.map +1 -0
  1033. package/dist/cli-user/services/runtimeGuard.js +188 -0
  1034. package/dist/cli-user/services/runtimeGuard.js.map +1 -0
  1035. package/dist/cli-user/services/traceProcessorInstaller.d.ts +2 -0
  1036. package/dist/cli-user/services/traceProcessorInstaller.d.ts.map +1 -0
  1037. package/dist/cli-user/services/traceProcessorInstaller.js +241 -0
  1038. package/dist/cli-user/services/traceProcessorInstaller.js.map +1 -0
  1039. package/dist/cli-user/services/turnPersistence.d.ts +41 -0
  1040. package/dist/cli-user/services/turnPersistence.d.ts.map +1 -0
  1041. package/dist/cli-user/services/turnPersistence.js +55 -0
  1042. package/dist/cli-user/services/turnPersistence.js.map +1 -0
  1043. package/dist/cli-user/services/turnRunner.d.ts +49 -0
  1044. package/dist/cli-user/services/turnRunner.d.ts.map +1 -0
  1045. package/dist/cli-user/services/turnRunner.js +436 -0
  1046. package/dist/cli-user/services/turnRunner.js.map +1 -0
  1047. package/dist/cli-user/types.d.ts +62 -0
  1048. package/dist/cli-user/types.d.ts.map +1 -0
  1049. package/dist/cli-user/types.js +6 -0
  1050. package/dist/cli-user/types.js.map +1 -0
  1051. package/dist/config/index.d.ts +393 -0
  1052. package/dist/config/index.d.ts.map +1 -0
  1053. package/dist/config/index.js +334 -0
  1054. package/dist/config/index.js.map +1 -0
  1055. package/dist/config/prompts.d.ts +20 -0
  1056. package/dist/config/prompts.d.ts.map +1 -0
  1057. package/dist/config/prompts.js +74 -0
  1058. package/dist/config/prompts.js.map +1 -0
  1059. package/dist/config/teaching.config.d.ts +253 -0
  1060. package/dist/config/teaching.config.d.ts.map +1 -0
  1061. package/dist/config/teaching.config.js +203 -0
  1062. package/dist/config/teaching.config.js.map +1 -0
  1063. package/dist/config/thresholds.d.ts +300 -0
  1064. package/dist/config/thresholds.d.ts.map +1 -0
  1065. package/dist/config/thresholds.js +338 -0
  1066. package/dist/config/thresholds.js.map +1 -0
  1067. package/dist/controllers/skillAdminController.d.ts +62 -0
  1068. package/dist/controllers/skillAdminController.d.ts.map +1 -0
  1069. package/dist/controllers/skillAdminController.js +482 -0
  1070. package/dist/controllers/skillAdminController.js.map +1 -0
  1071. package/dist/controllers/skillController.d.ts +49 -0
  1072. package/dist/controllers/skillController.d.ts.map +1 -0
  1073. package/dist/controllers/skillController.js +246 -0
  1074. package/dist/controllers/skillController.js.map +1 -0
  1075. package/dist/controllers/sqlController.d.ts +9 -0
  1076. package/dist/controllers/sqlController.d.ts.map +1 -0
  1077. package/dist/controllers/sqlController.js +125 -0
  1078. package/dist/controllers/sqlController.js.map +1 -0
  1079. package/dist/controllers/traceController.d.ts +13 -0
  1080. package/dist/controllers/traceController.d.ts.map +1 -0
  1081. package/dist/controllers/traceController.js +209 -0
  1082. package/dist/controllers/traceController.js.map +1 -0
  1083. package/dist/controllers/traceProcessorController.d.ts +14 -0
  1084. package/dist/controllers/traceProcessorController.d.ts.map +1 -0
  1085. package/dist/controllers/traceProcessorController.js +222 -0
  1086. package/dist/controllers/traceProcessorController.js.map +1 -0
  1087. package/dist/data/perfettoSchema.d.ts +9 -0
  1088. package/dist/data/perfettoSchema.d.ts.map +1 -0
  1089. package/dist/data/perfettoSchema.js +286 -0
  1090. package/dist/data/perfettoSchema.js.map +1 -0
  1091. package/dist/index.d.ts +2 -0
  1092. package/dist/index.d.ts.map +1 -0
  1093. package/dist/index.js +251 -0
  1094. package/dist/index.js.map +1 -0
  1095. package/dist/middleware/auth.d.ts +37 -0
  1096. package/dist/middleware/auth.d.ts.map +1 -0
  1097. package/dist/middleware/auth.js +307 -0
  1098. package/dist/middleware/auth.js.map +1 -0
  1099. package/dist/middleware/legacyAgentApi.d.ts +8 -0
  1100. package/dist/middleware/legacyAgentApi.d.ts.map +1 -0
  1101. package/dist/middleware/legacyAgentApi.js +64 -0
  1102. package/dist/middleware/legacyAgentApi.js.map +1 -0
  1103. package/dist/middleware/workspaceRouteContext.d.ts +4 -0
  1104. package/dist/middleware/workspaceRouteContext.d.ts.map +1 -0
  1105. package/dist/middleware/workspaceRouteContext.js +44 -0
  1106. package/dist/middleware/workspaceRouteContext.js.map +1 -0
  1107. package/dist/models/sessionSchema.d.ts +106 -0
  1108. package/dist/models/sessionSchema.d.ts.map +1 -0
  1109. package/dist/models/sessionSchema.js +6 -0
  1110. package/dist/models/sessionSchema.js.map +1 -0
  1111. package/dist/routes/agentLogsRoutes.d.ts +3 -0
  1112. package/dist/routes/agentLogsRoutes.d.ts.map +1 -0
  1113. package/dist/routes/agentLogsRoutes.js +283 -0
  1114. package/dist/routes/agentLogsRoutes.js.map +1 -0
  1115. package/dist/routes/agentQuickSceneRoutes.d.ts +9 -0
  1116. package/dist/routes/agentQuickSceneRoutes.d.ts.map +1 -0
  1117. package/dist/routes/agentQuickSceneRoutes.js +51 -0
  1118. package/dist/routes/agentQuickSceneRoutes.js.map +1 -0
  1119. package/dist/routes/agentReportRoutes.d.ts +11 -0
  1120. package/dist/routes/agentReportRoutes.d.ts.map +1 -0
  1121. package/dist/routes/agentReportRoutes.js +100 -0
  1122. package/dist/routes/agentReportRoutes.js.map +1 -0
  1123. package/dist/routes/agentResumeRoutes.d.ts +14 -0
  1124. package/dist/routes/agentResumeRoutes.d.ts.map +1 -0
  1125. package/dist/routes/agentResumeRoutes.js +263 -0
  1126. package/dist/routes/agentResumeRoutes.js.map +1 -0
  1127. package/dist/routes/agentRoutes.d.ts +3 -0
  1128. package/dist/routes/agentRoutes.d.ts.map +1 -0
  1129. package/dist/routes/agentRoutes.js +4349 -0
  1130. package/dist/routes/agentRoutes.js.map +1 -0
  1131. package/dist/routes/agentSceneReconstructRoutes.d.ts +68 -0
  1132. package/dist/routes/agentSceneReconstructRoutes.d.ts.map +1 -0
  1133. package/dist/routes/agentSceneReconstructRoutes.js +448 -0
  1134. package/dist/routes/agentSceneReconstructRoutes.js.map +1 -0
  1135. package/dist/routes/agentSessionCatalogRoutes.d.ts +20 -0
  1136. package/dist/routes/agentSessionCatalogRoutes.d.ts.map +1 -0
  1137. package/dist/routes/agentSessionCatalogRoutes.js +90 -0
  1138. package/dist/routes/agentSessionCatalogRoutes.js.map +1 -0
  1139. package/dist/routes/agentTeachingRoutes.d.ts +3 -0
  1140. package/dist/routes/agentTeachingRoutes.d.ts.map +1 -0
  1141. package/dist/routes/agentTeachingRoutes.js +62 -0
  1142. package/dist/routes/agentTeachingRoutes.js.map +1 -0
  1143. package/dist/routes/analysisResultRoutes.d.ts +3 -0
  1144. package/dist/routes/analysisResultRoutes.d.ts.map +1 -0
  1145. package/dist/routes/analysisResultRoutes.js +216 -0
  1146. package/dist/routes/analysisResultRoutes.js.map +1 -0
  1147. package/dist/routes/baselineRoutes.d.ts +29 -0
  1148. package/dist/routes/baselineRoutes.d.ts.map +1 -0
  1149. package/dist/routes/baselineRoutes.js +123 -0
  1150. package/dist/routes/baselineRoutes.js.map +1 -0
  1151. package/dist/routes/caseRoutes.d.ts +29 -0
  1152. package/dist/routes/caseRoutes.d.ts.map +1 -0
  1153. package/dist/routes/caseRoutes.js +194 -0
  1154. package/dist/routes/caseRoutes.js.map +1 -0
  1155. package/dist/routes/ciGateRoutes.d.ts +11 -0
  1156. package/dist/routes/ciGateRoutes.d.ts.map +1 -0
  1157. package/dist/routes/ciGateRoutes.js +363 -0
  1158. package/dist/routes/ciGateRoutes.js.map +1 -0
  1159. package/dist/routes/comparisonRoutes.d.ts +3 -0
  1160. package/dist/routes/comparisonRoutes.d.ts.map +1 -0
  1161. package/dist/routes/comparisonRoutes.js +536 -0
  1162. package/dist/routes/comparisonRoutes.js.map +1 -0
  1163. package/dist/routes/criticalPathRoutes.d.ts +3 -0
  1164. package/dist/routes/criticalPathRoutes.d.ts.map +1 -0
  1165. package/dist/routes/criticalPathRoutes.js +88 -0
  1166. package/dist/routes/criticalPathRoutes.js.map +1 -0
  1167. package/dist/routes/enterpriseApiKeyRoutes.d.ts +9 -0
  1168. package/dist/routes/enterpriseApiKeyRoutes.d.ts.map +1 -0
  1169. package/dist/routes/enterpriseApiKeyRoutes.js +126 -0
  1170. package/dist/routes/enterpriseApiKeyRoutes.js.map +1 -0
  1171. package/dist/routes/enterpriseAuthRoutes.d.ts +18 -0
  1172. package/dist/routes/enterpriseAuthRoutes.d.ts.map +1 -0
  1173. package/dist/routes/enterpriseAuthRoutes.js +160 -0
  1174. package/dist/routes/enterpriseAuthRoutes.js.map +1 -0
  1175. package/dist/routes/enterpriseRuntimeDashboardRoutes.d.ts +6 -0
  1176. package/dist/routes/enterpriseRuntimeDashboardRoutes.d.ts.map +1 -0
  1177. package/dist/routes/enterpriseRuntimeDashboardRoutes.js +32 -0
  1178. package/dist/routes/enterpriseRuntimeDashboardRoutes.js.map +1 -0
  1179. package/dist/routes/enterpriseTenantRoutes.d.ts +4 -0
  1180. package/dist/routes/enterpriseTenantRoutes.d.ts.map +1 -0
  1181. package/dist/routes/enterpriseTenantRoutes.js +313 -0
  1182. package/dist/routes/enterpriseTenantRoutes.js.map +1 -0
  1183. package/dist/routes/exportRoutes.d.ts +3 -0
  1184. package/dist/routes/exportRoutes.d.ts.map +1 -0
  1185. package/dist/routes/exportRoutes.js +196 -0
  1186. package/dist/routes/exportRoutes.js.map +1 -0
  1187. package/dist/routes/flamegraphRoutes.d.ts +3 -0
  1188. package/dist/routes/flamegraphRoutes.d.ts.map +1 -0
  1189. package/dist/routes/flamegraphRoutes.js +99 -0
  1190. package/dist/routes/flamegraphRoutes.js.map +1 -0
  1191. package/dist/routes/memoryRoutes.d.ts +31 -0
  1192. package/dist/routes/memoryRoutes.d.ts.map +1 -0
  1193. package/dist/routes/memoryRoutes.js +150 -0
  1194. package/dist/routes/memoryRoutes.js.map +1 -0
  1195. package/dist/routes/narrativeSanitizer.d.ts +2 -0
  1196. package/dist/routes/narrativeSanitizer.d.ts.map +1 -0
  1197. package/dist/routes/narrativeSanitizer.js +167 -0
  1198. package/dist/routes/narrativeSanitizer.js.map +1 -0
  1199. package/dist/routes/perfettoLocalRoutes.d.ts +3 -0
  1200. package/dist/routes/perfettoLocalRoutes.d.ts.map +1 -0
  1201. package/dist/routes/perfettoLocalRoutes.js +222 -0
  1202. package/dist/routes/perfettoLocalRoutes.js.map +1 -0
  1203. package/dist/routes/perfettoSqlRoutes.d.ts +7 -0
  1204. package/dist/routes/perfettoSqlRoutes.d.ts.map +1 -0
  1205. package/dist/routes/perfettoSqlRoutes.js +738 -0
  1206. package/dist/routes/perfettoSqlRoutes.js.map +1 -0
  1207. package/dist/routes/providerRoutes.d.ts +3 -0
  1208. package/dist/routes/providerRoutes.d.ts.map +1 -0
  1209. package/dist/routes/providerRoutes.js +219 -0
  1210. package/dist/routes/providerRoutes.js.map +1 -0
  1211. package/dist/routes/ragAdminRoutes.d.ts +30 -0
  1212. package/dist/routes/ragAdminRoutes.d.ts.map +1 -0
  1213. package/dist/routes/ragAdminRoutes.js +93 -0
  1214. package/dist/routes/ragAdminRoutes.js.map +1 -0
  1215. package/dist/routes/reportRoutes.d.ts +17 -0
  1216. package/dist/routes/reportRoutes.d.ts.map +1 -0
  1217. package/dist/routes/reportRoutes.js +579 -0
  1218. package/dist/routes/reportRoutes.js.map +1 -0
  1219. package/dist/routes/sessionRoutes.d.ts +3 -0
  1220. package/dist/routes/sessionRoutes.d.ts.map +1 -0
  1221. package/dist/routes/sessionRoutes.js +144 -0
  1222. package/dist/routes/sessionRoutes.js.map +1 -0
  1223. package/dist/routes/simpleTraceRoutes.d.ts +3 -0
  1224. package/dist/routes/simpleTraceRoutes.d.ts.map +1 -0
  1225. package/dist/routes/simpleTraceRoutes.js +1131 -0
  1226. package/dist/routes/simpleTraceRoutes.js.map +1 -0
  1227. package/dist/routes/skillAdminRoutes.d.ts +3 -0
  1228. package/dist/routes/skillAdminRoutes.d.ts.map +1 -0
  1229. package/dist/routes/skillAdminRoutes.js +100 -0
  1230. package/dist/routes/skillAdminRoutes.js.map +1 -0
  1231. package/dist/routes/skillRoutes.d.ts +3 -0
  1232. package/dist/routes/skillRoutes.d.ts.map +1 -0
  1233. package/dist/routes/skillRoutes.js +88 -0
  1234. package/dist/routes/skillRoutes.js.map +1 -0
  1235. package/dist/routes/sql.d.ts +3 -0
  1236. package/dist/routes/sql.d.ts.map +1 -0
  1237. package/dist/routes/sql.js +19 -0
  1238. package/dist/routes/sql.js.map +1 -0
  1239. package/dist/routes/strategyAdminRoutes.d.ts +3 -0
  1240. package/dist/routes/strategyAdminRoutes.d.ts.map +1 -0
  1241. package/dist/routes/strategyAdminRoutes.js +65 -0
  1242. package/dist/routes/strategyAdminRoutes.js.map +1 -0
  1243. package/dist/routes/templateAnalysisRoutes.d.ts +3 -0
  1244. package/dist/routes/templateAnalysisRoutes.d.ts.map +1 -0
  1245. package/dist/routes/templateAnalysisRoutes.js +173 -0
  1246. package/dist/routes/templateAnalysisRoutes.js.map +1 -0
  1247. package/dist/routes/trace.d.ts +3 -0
  1248. package/dist/routes/trace.d.ts.map +1 -0
  1249. package/dist/routes/trace.js +48 -0
  1250. package/dist/routes/trace.js.map +1 -0
  1251. package/dist/routes/traceProcessorProxyRoutes.d.ts +6 -0
  1252. package/dist/routes/traceProcessorProxyRoutes.d.ts.map +1 -0
  1253. package/dist/routes/traceProcessorProxyRoutes.js +607 -0
  1254. package/dist/routes/traceProcessorProxyRoutes.js.map +1 -0
  1255. package/dist/routes/traceProcessorRoutes.d.ts +3 -0
  1256. package/dist/routes/traceProcessorRoutes.d.ts.map +1 -0
  1257. package/dist/routes/traceProcessorRoutes.js +40 -0
  1258. package/dist/routes/traceProcessorRoutes.js.map +1 -0
  1259. package/dist/routes/workspaceWindowRoutes.d.ts +3 -0
  1260. package/dist/routes/workspaceWindowRoutes.d.ts.map +1 -0
  1261. package/dist/routes/workspaceWindowRoutes.js +146 -0
  1262. package/dist/routes/workspaceWindowRoutes.js.map +1 -0
  1263. package/dist/runtimePaths.d.ts +3 -0
  1264. package/dist/runtimePaths.d.ts.map +1 -0
  1265. package/dist/runtimePaths.js +20 -0
  1266. package/dist/runtimePaths.js.map +1 -0
  1267. package/dist/scripts/analyzeComprehensiveTrace.d.ts +2 -0
  1268. package/dist/scripts/analyzeComprehensiveTrace.d.ts.map +1 -0
  1269. package/dist/scripts/analyzeComprehensiveTrace.js +210 -0
  1270. package/dist/scripts/analyzeComprehensiveTrace.js.map +1 -0
  1271. package/dist/scripts/analyzeUserTrace.d.ts +2 -0
  1272. package/dist/scripts/analyzeUserTrace.d.ts.map +1 -0
  1273. package/dist/scripts/analyzeUserTrace.js +170 -0
  1274. package/dist/scripts/analyzeUserTrace.js.map +1 -0
  1275. package/dist/scripts/auditTraceProcessorRssMatrix.d.ts +49 -0
  1276. package/dist/scripts/auditTraceProcessorRssMatrix.d.ts.map +1 -0
  1277. package/dist/scripts/auditTraceProcessorRssMatrix.js +390 -0
  1278. package/dist/scripts/auditTraceProcessorRssMatrix.js.map +1 -0
  1279. package/dist/scripts/benchmarkTraceProcessorRss.d.ts +96 -0
  1280. package/dist/scripts/benchmarkTraceProcessorRss.d.ts.map +1 -0
  1281. package/dist/scripts/benchmarkTraceProcessorRss.js +569 -0
  1282. package/dist/scripts/benchmarkTraceProcessorRss.js.map +1 -0
  1283. package/dist/scripts/captureContextEngineeringBaseline.d.ts +2 -0
  1284. package/dist/scripts/captureContextEngineeringBaseline.d.ts.map +1 -0
  1285. package/dist/scripts/captureContextEngineeringBaseline.js +271 -0
  1286. package/dist/scripts/captureContextEngineeringBaseline.js.map +1 -0
  1287. package/dist/scripts/checkTables.d.ts +2 -0
  1288. package/dist/scripts/checkTables.d.ts.map +1 -0
  1289. package/dist/scripts/checkTables.js +22 -0
  1290. package/dist/scripts/checkTables.js.map +1 -0
  1291. package/dist/scripts/diagnoseJankDetection.d.ts +2 -0
  1292. package/dist/scripts/diagnoseJankDetection.d.ts.map +1 -0
  1293. package/dist/scripts/diagnoseJankDetection.js +314 -0
  1294. package/dist/scripts/diagnoseJankDetection.js.map +1 -0
  1295. package/dist/scripts/diagnoseTrace.d.ts +2 -0
  1296. package/dist/scripts/diagnoseTrace.d.ts.map +1 -0
  1297. package/dist/scripts/diagnoseTrace.js +74 -0
  1298. package/dist/scripts/diagnoseTrace.js.map +1 -0
  1299. package/dist/scripts/enterpriseAcceptanceLoadTest.d.ts +193 -0
  1300. package/dist/scripts/enterpriseAcceptanceLoadTest.d.ts.map +1 -0
  1301. package/dist/scripts/enterpriseAcceptanceLoadTest.js +912 -0
  1302. package/dist/scripts/enterpriseAcceptanceLoadTest.js.map +1 -0
  1303. package/dist/scripts/enterpriseMigrationSnapshot.d.ts +3 -0
  1304. package/dist/scripts/enterpriseMigrationSnapshot.d.ts.map +1 -0
  1305. package/dist/scripts/enterpriseMigrationSnapshot.js +57 -0
  1306. package/dist/scripts/enterpriseMigrationSnapshot.js.map +1 -0
  1307. package/dist/scripts/enterpriseReadinessAudit.d.ts +30 -0
  1308. package/dist/scripts/enterpriseReadinessAudit.d.ts.map +1 -0
  1309. package/dist/scripts/enterpriseReadinessAudit.js +743 -0
  1310. package/dist/scripts/enterpriseReadinessAudit.js.map +1 -0
  1311. package/dist/scripts/enterpriseRssBenchmarkMatrix.d.ts +6 -0
  1312. package/dist/scripts/enterpriseRssBenchmarkMatrix.d.ts.map +1 -0
  1313. package/dist/scripts/enterpriseRssBenchmarkMatrix.js +20 -0
  1314. package/dist/scripts/enterpriseRssBenchmarkMatrix.js.map +1 -0
  1315. package/dist/scripts/enterpriseRuntimeIsolationChecklist.d.ts +22 -0
  1316. package/dist/scripts/enterpriseRuntimeIsolationChecklist.d.ts.map +1 -0
  1317. package/dist/scripts/enterpriseRuntimeIsolationChecklist.js +374 -0
  1318. package/dist/scripts/enterpriseRuntimeIsolationChecklist.js.map +1 -0
  1319. package/dist/scripts/enterpriseSecurityAuditChecklist.d.ts +20 -0
  1320. package/dist/scripts/enterpriseSecurityAuditChecklist.d.ts.map +1 -0
  1321. package/dist/scripts/enterpriseSecurityAuditChecklist.js +113 -0
  1322. package/dist/scripts/enterpriseSecurityAuditChecklist.js.map +1 -0
  1323. package/dist/scripts/probeStdlibSchema.d.ts +2 -0
  1324. package/dist/scripts/probeStdlibSchema.d.ts.map +1 -0
  1325. package/dist/scripts/probeStdlibSchema.js +209 -0
  1326. package/dist/scripts/probeStdlibSchema.js.map +1 -0
  1327. package/dist/scripts/runAgentTest.d.ts +2 -0
  1328. package/dist/scripts/runAgentTest.d.ts.map +1 -0
  1329. package/dist/scripts/runAgentTest.js +149 -0
  1330. package/dist/scripts/runAgentTest.js.map +1 -0
  1331. package/dist/scripts/runScrollingTest.d.ts +2 -0
  1332. package/dist/scripts/runScrollingTest.d.ts.map +1 -0
  1333. package/dist/scripts/runScrollingTest.js +199 -0
  1334. package/dist/scripts/runScrollingTest.js.map +1 -0
  1335. package/dist/scripts/runScrollingTestRealData.d.ts +2 -0
  1336. package/dist/scripts/runScrollingTestRealData.d.ts.map +1 -0
  1337. package/dist/scripts/runScrollingTestRealData.js +121 -0
  1338. package/dist/scripts/runScrollingTestRealData.js.map +1 -0
  1339. package/dist/scripts/testAndroidTrace.d.ts +2 -0
  1340. package/dist/scripts/testAndroidTrace.d.ts.map +1 -0
  1341. package/dist/scripts/testAndroidTrace.js +21 -0
  1342. package/dist/scripts/testAndroidTrace.js.map +1 -0
  1343. package/dist/scripts/testCrossDomainExpert.d.ts +2 -0
  1344. package/dist/scripts/testCrossDomainExpert.d.ts.map +1 -0
  1345. package/dist/scripts/testCrossDomainExpert.js +288 -0
  1346. package/dist/scripts/testCrossDomainExpert.js.map +1 -0
  1347. package/dist/scripts/testCrossDomainIntegration.d.ts +2 -0
  1348. package/dist/scripts/testCrossDomainIntegration.d.ts.map +1 -0
  1349. package/dist/scripts/testCrossDomainIntegration.js +282 -0
  1350. package/dist/scripts/testCrossDomainIntegration.js.map +1 -0
  1351. package/dist/scripts/testDeepLayerFix.d.ts +2 -0
  1352. package/dist/scripts/testDeepLayerFix.d.ts.map +1 -0
  1353. package/dist/scripts/testDeepLayerFix.js +137 -0
  1354. package/dist/scripts/testDeepLayerFix.js.map +1 -0
  1355. package/dist/scripts/testHtmlReportGen.d.ts +2 -0
  1356. package/dist/scripts/testHtmlReportGen.d.ts.map +1 -0
  1357. package/dist/scripts/testHtmlReportGen.js +148 -0
  1358. package/dist/scripts/testHtmlReportGen.js.map +1 -0
  1359. package/dist/scripts/verifyAgentSseScrolling.d.ts +2 -0
  1360. package/dist/scripts/verifyAgentSseScrolling.d.ts.map +1 -0
  1361. package/dist/scripts/verifyAgentSseScrolling.js +558 -0
  1362. package/dist/scripts/verifyAgentSseScrolling.js.map +1 -0
  1363. package/dist/scripts/verifyCriticalPathE2E.d.ts +2 -0
  1364. package/dist/scripts/verifyCriticalPathE2E.d.ts.map +1 -0
  1365. package/dist/scripts/verifyCriticalPathE2E.js +171 -0
  1366. package/dist/scripts/verifyCriticalPathE2E.js.map +1 -0
  1367. package/dist/scripts/verifyEnterpriseMultiTenantWindows.d.ts +24 -0
  1368. package/dist/scripts/verifyEnterpriseMultiTenantWindows.d.ts.map +1 -0
  1369. package/dist/scripts/verifyEnterpriseMultiTenantWindows.js +1363 -0
  1370. package/dist/scripts/verifyEnterpriseMultiTenantWindows.js.map +1 -0
  1371. package/dist/services/adb/adbContextDetector.d.ts +3 -0
  1372. package/dist/services/adb/adbContextDetector.d.ts.map +1 -0
  1373. package/dist/services/adb/adbContextDetector.js +151 -0
  1374. package/dist/services/adb/adbContextDetector.js.map +1 -0
  1375. package/dist/services/adb/adbService.d.ts +28 -0
  1376. package/dist/services/adb/adbService.d.ts.map +1 -0
  1377. package/dist/services/adb/adbService.js +238 -0
  1378. package/dist/services/adb/adbService.js.map +1 -0
  1379. package/dist/services/adb/index.d.ts +5 -0
  1380. package/dist/services/adb/index.d.ts.map +1 -0
  1381. package/dist/services/adb/index.js +24 -0
  1382. package/dist/services/adb/index.js.map +1 -0
  1383. package/dist/services/adb/traceDeviceMatcher.d.ts +12 -0
  1384. package/dist/services/adb/traceDeviceMatcher.d.ts.map +1 -0
  1385. package/dist/services/adb/traceDeviceMatcher.js +149 -0
  1386. package/dist/services/adb/traceDeviceMatcher.js.map +1 -0
  1387. package/dist/services/adb/types.d.ts +69 -0
  1388. package/dist/services/adb/types.d.ts.map +1 -0
  1389. package/dist/services/adb/types.js +6 -0
  1390. package/dist/services/adb/types.js.map +1 -0
  1391. package/dist/services/agentEventStore.d.ts +17 -0
  1392. package/dist/services/agentEventStore.d.ts.map +1 -0
  1393. package/dist/services/agentEventStore.js +139 -0
  1394. package/dist/services/agentEventStore.js.map +1 -0
  1395. package/dist/services/agentReportData.d.ts +42 -0
  1396. package/dist/services/agentReportData.d.ts.map +1 -0
  1397. package/dist/services/agentReportData.js +81 -0
  1398. package/dist/services/agentReportData.js.map +1 -0
  1399. package/dist/services/agentResultNormalizer.d.ts +33 -0
  1400. package/dist/services/agentResultNormalizer.d.ts.map +1 -0
  1401. package/dist/services/agentResultNormalizer.js +92 -0
  1402. package/dist/services/agentResultNormalizer.js.map +1 -0
  1403. package/dist/services/analysisResultSnapshotPipeline.d.ts +24 -0
  1404. package/dist/services/analysisResultSnapshotPipeline.d.ts.map +1 -0
  1405. package/dist/services/analysisResultSnapshotPipeline.js +466 -0
  1406. package/dist/services/analysisResultSnapshotPipeline.js.map +1 -0
  1407. package/dist/services/analysisResultSnapshotStore.d.ts +29 -0
  1408. package/dist/services/analysisResultSnapshotStore.d.ts.map +1 -0
  1409. package/dist/services/analysisResultSnapshotStore.js +457 -0
  1410. package/dist/services/analysisResultSnapshotStore.js.map +1 -0
  1411. package/dist/services/analysisResultWindowStateStore.d.ts +37 -0
  1412. package/dist/services/analysisResultWindowStateStore.d.ts.map +1 -0
  1413. package/dist/services/analysisResultWindowStateStore.js +190 -0
  1414. package/dist/services/analysisResultWindowStateStore.js.map +1 -0
  1415. package/dist/services/analysisRunStore.d.ts +38 -0
  1416. package/dist/services/analysisRunStore.d.ts.map +1 -0
  1417. package/dist/services/analysisRunStore.js +195 -0
  1418. package/dist/services/analysisRunStore.js.map +1 -0
  1419. package/dist/services/analysisTemplates/cpuCoreAnalysis.d.ts +70 -0
  1420. package/dist/services/analysisTemplates/cpuCoreAnalysis.d.ts.map +1 -0
  1421. package/dist/services/analysisTemplates/cpuCoreAnalysis.js +277 -0
  1422. package/dist/services/analysisTemplates/cpuCoreAnalysis.js.map +1 -0
  1423. package/dist/services/analysisTemplates/fourQuadrantAnalysis.d.ts +64 -0
  1424. package/dist/services/analysisTemplates/fourQuadrantAnalysis.d.ts.map +1 -0
  1425. package/dist/services/analysisTemplates/fourQuadrantAnalysis.js +288 -0
  1426. package/dist/services/analysisTemplates/fourQuadrantAnalysis.js.map +1 -0
  1427. package/dist/services/analysisTemplates/frameStatsAnalysis.d.ts +77 -0
  1428. package/dist/services/analysisTemplates/frameStatsAnalysis.d.ts.map +1 -0
  1429. package/dist/services/analysisTemplates/frameStatsAnalysis.js +232 -0
  1430. package/dist/services/analysisTemplates/frameStatsAnalysis.js.map +1 -0
  1431. package/dist/services/analysisTemplates/templateManager.d.ts +70 -0
  1432. package/dist/services/analysisTemplates/templateManager.d.ts.map +1 -0
  1433. package/dist/services/analysisTemplates/templateManager.js +293 -0
  1434. package/dist/services/analysisTemplates/templateManager.js.map +1 -0
  1435. package/dist/services/anonymizer.d.ts +61 -0
  1436. package/dist/services/anonymizer.d.ts.map +1 -0
  1437. package/dist/services/anonymizer.js +232 -0
  1438. package/dist/services/anonymizer.js.map +1 -0
  1439. package/dist/services/aospKnowledgeIngester.d.ts +67 -0
  1440. package/dist/services/aospKnowledgeIngester.d.ts.map +1 -0
  1441. package/dist/services/aospKnowledgeIngester.js +171 -0
  1442. package/dist/services/aospKnowledgeIngester.js.map +1 -0
  1443. package/dist/services/artifactCompression.d.ts +52 -0
  1444. package/dist/services/artifactCompression.d.ts.map +1 -0
  1445. package/dist/services/artifactCompression.js +215 -0
  1446. package/dist/services/artifactCompression.js.map +1 -0
  1447. package/dist/services/baselineDiffer.d.ts +85 -0
  1448. package/dist/services/baselineDiffer.d.ts.map +1 -0
  1449. package/dist/services/baselineDiffer.js +287 -0
  1450. package/dist/services/baselineDiffer.js.map +1 -0
  1451. package/dist/services/baselineStore.d.ts +52 -0
  1452. package/dist/services/baselineStore.d.ts.map +1 -0
  1453. package/dist/services/baselineStore.js +224 -0
  1454. package/dist/services/baselineStore.js.map +1 -0
  1455. package/dist/services/binderRootCauseChain.d.ts +38 -0
  1456. package/dist/services/binderRootCauseChain.d.ts.map +1 -0
  1457. package/dist/services/binderRootCauseChain.js +74 -0
  1458. package/dist/services/binderRootCauseChain.js.map +1 -0
  1459. package/dist/services/blogKnowledgeIngester.d.ts +89 -0
  1460. package/dist/services/blogKnowledgeIngester.d.ts.map +1 -0
  1461. package/dist/services/blogKnowledgeIngester.js +192 -0
  1462. package/dist/services/blogKnowledgeIngester.js.map +1 -0
  1463. package/dist/services/caseGraph.d.ts +55 -0
  1464. package/dist/services/caseGraph.d.ts.map +1 -0
  1465. package/dist/services/caseGraph.js +260 -0
  1466. package/dist/services/caseGraph.js.map +1 -0
  1467. package/dist/services/caseLibrary.d.ts +61 -0
  1468. package/dist/services/caseLibrary.d.ts.map +1 -0
  1469. package/dist/services/caseLibrary.js +269 -0
  1470. package/dist/services/caseLibrary.js.map +1 -0
  1471. package/dist/services/ciGateRunStore.d.ts +39 -0
  1472. package/dist/services/ciGateRunStore.d.ts.map +1 -0
  1473. package/dist/services/ciGateRunStore.js +208 -0
  1474. package/dist/services/ciGateRunStore.js.map +1 -0
  1475. package/dist/services/comparisonAiConclusionService.d.ts +23 -0
  1476. package/dist/services/comparisonAiConclusionService.d.ts.map +1 -0
  1477. package/dist/services/comparisonAiConclusionService.js +207 -0
  1478. package/dist/services/comparisonAiConclusionService.js.map +1 -0
  1479. package/dist/services/comparisonAppendixService.d.ts +50 -0
  1480. package/dist/services/comparisonAppendixService.d.ts.map +1 -0
  1481. package/dist/services/comparisonAppendixService.js +276 -0
  1482. package/dist/services/comparisonAppendixService.js.map +1 -0
  1483. package/dist/services/comparisonHtmlReportService.d.ts +20 -0
  1484. package/dist/services/comparisonHtmlReportService.d.ts.map +1 -0
  1485. package/dist/services/comparisonHtmlReportService.js +214 -0
  1486. package/dist/services/comparisonHtmlReportService.js.map +1 -0
  1487. package/dist/services/comparisonMatrixService.d.ts +7 -0
  1488. package/dist/services/comparisonMatrixService.d.ts.map +1 -0
  1489. package/dist/services/comparisonMatrixService.js +211 -0
  1490. package/dist/services/comparisonMatrixService.js.map +1 -0
  1491. package/dist/services/comparisonResultService.d.ts +13 -0
  1492. package/dist/services/comparisonResultService.d.ts.map +1 -0
  1493. package/dist/services/comparisonResultService.js +99 -0
  1494. package/dist/services/comparisonResultService.js.map +1 -0
  1495. package/dist/services/comparisonSignificance.d.ts +3 -0
  1496. package/dist/services/comparisonSignificance.d.ts.map +1 -0
  1497. package/dist/services/comparisonSignificance.js +42 -0
  1498. package/dist/services/comparisonSignificance.js.map +1 -0
  1499. package/dist/services/cpuThermalPmu.d.ts +38 -0
  1500. package/dist/services/cpuThermalPmu.d.ts.map +1 -0
  1501. package/dist/services/cpuThermalPmu.js +141 -0
  1502. package/dist/services/cpuThermalPmu.js.map +1 -0
  1503. package/dist/services/criticalPathAiSummary.d.ts +29 -0
  1504. package/dist/services/criticalPathAiSummary.d.ts.map +1 -0
  1505. package/dist/services/criticalPathAiSummary.js +310 -0
  1506. package/dist/services/criticalPathAiSummary.js.map +1 -0
  1507. package/dist/services/criticalPathAnalyzer.d.ts +108 -0
  1508. package/dist/services/criticalPathAnalyzer.d.ts.map +1 -0
  1509. package/dist/services/criticalPathAnalyzer.js +880 -0
  1510. package/dist/services/criticalPathAnalyzer.js.map +1 -0
  1511. package/dist/services/criticalPathQuantify.d.ts +70 -0
  1512. package/dist/services/criticalPathQuantify.d.ts.map +1 -0
  1513. package/dist/services/criticalPathQuantify.js +214 -0
  1514. package/dist/services/criticalPathQuantify.js.map +1 -0
  1515. package/dist/services/criticalPathSemantics.d.ts +95 -0
  1516. package/dist/services/criticalPathSemantics.d.ts.map +1 -0
  1517. package/dist/services/criticalPathSemantics.js +453 -0
  1518. package/dist/services/criticalPathSemantics.js.map +1 -0
  1519. package/dist/services/criticalPathWakerChain.d.ts +38 -0
  1520. package/dist/services/criticalPathWakerChain.d.ts.map +1 -0
  1521. package/dist/services/criticalPathWakerChain.js +144 -0
  1522. package/dist/services/criticalPathWakerChain.js.map +1 -0
  1523. package/dist/services/domainSkillEvalHarness.d.ts +51 -0
  1524. package/dist/services/domainSkillEvalHarness.d.ts.map +1 -0
  1525. package/dist/services/domainSkillEvalHarness.js +141 -0
  1526. package/dist/services/domainSkillEvalHarness.js.map +1 -0
  1527. package/dist/services/enhancedAIService.d.ts +81 -0
  1528. package/dist/services/enhancedAIService.d.ts.map +1 -0
  1529. package/dist/services/enhancedAIService.js +277 -0
  1530. package/dist/services/enhancedAIService.js.map +1 -0
  1531. package/dist/services/enterpriseAdminControlPlaneService.d.ts +124 -0
  1532. package/dist/services/enterpriseAdminControlPlaneService.d.ts.map +1 -0
  1533. package/dist/services/enterpriseAdminControlPlaneService.js +323 -0
  1534. package/dist/services/enterpriseAdminControlPlaneService.js.map +1 -0
  1535. package/dist/services/enterpriseApiKeyService.d.ts +56 -0
  1536. package/dist/services/enterpriseApiKeyService.d.ts.map +1 -0
  1537. package/dist/services/enterpriseApiKeyService.js +260 -0
  1538. package/dist/services/enterpriseApiKeyService.js.map +1 -0
  1539. package/dist/services/enterpriseAuditService.d.ts +30 -0
  1540. package/dist/services/enterpriseAuditService.d.ts.map +1 -0
  1541. package/dist/services/enterpriseAuditService.js +73 -0
  1542. package/dist/services/enterpriseAuditService.js.map +1 -0
  1543. package/dist/services/enterpriseDb.d.ts +5 -0
  1544. package/dist/services/enterpriseDb.d.ts.map +1 -0
  1545. package/dist/services/enterpriseDb.js +33 -0
  1546. package/dist/services/enterpriseDb.js.map +1 -0
  1547. package/dist/services/enterpriseMigration.d.ts +89 -0
  1548. package/dist/services/enterpriseMigration.d.ts.map +1 -0
  1549. package/dist/services/enterpriseMigration.js +506 -0
  1550. package/dist/services/enterpriseMigration.js.map +1 -0
  1551. package/dist/services/enterpriseOidcClient.d.ts +36 -0
  1552. package/dist/services/enterpriseOidcClient.d.ts.map +1 -0
  1553. package/dist/services/enterpriseOidcClient.js +124 -0
  1554. package/dist/services/enterpriseOidcClient.js.map +1 -0
  1555. package/dist/services/enterpriseQuotaPolicyService.d.ts +37 -0
  1556. package/dist/services/enterpriseQuotaPolicyService.d.ts.map +1 -0
  1557. package/dist/services/enterpriseQuotaPolicyService.js +198 -0
  1558. package/dist/services/enterpriseQuotaPolicyService.js.map +1 -0
  1559. package/dist/services/enterpriseRepository.d.ts +36 -0
  1560. package/dist/services/enterpriseRepository.d.ts.map +1 -0
  1561. package/dist/services/enterpriseRepository.js +208 -0
  1562. package/dist/services/enterpriseRepository.js.map +1 -0
  1563. package/dist/services/enterpriseRuntimeDashboardService.d.ts +114 -0
  1564. package/dist/services/enterpriseRuntimeDashboardService.d.ts.map +1 -0
  1565. package/dist/services/enterpriseRuntimeDashboardService.js +205 -0
  1566. package/dist/services/enterpriseRuntimeDashboardService.js.map +1 -0
  1567. package/dist/services/enterpriseSchema.d.ts +7 -0
  1568. package/dist/services/enterpriseSchema.d.ts.map +1 -0
  1569. package/dist/services/enterpriseSchema.js +688 -0
  1570. package/dist/services/enterpriseSchema.js.map +1 -0
  1571. package/dist/services/enterpriseSsoService.d.ts +99 -0
  1572. package/dist/services/enterpriseSsoService.d.ts.map +1 -0
  1573. package/dist/services/enterpriseSsoService.js +538 -0
  1574. package/dist/services/enterpriseSsoService.js.map +1 -0
  1575. package/dist/services/enterpriseTenantExportService.d.ts +58 -0
  1576. package/dist/services/enterpriseTenantExportService.d.ts.map +1 -0
  1577. package/dist/services/enterpriseTenantExportService.js +339 -0
  1578. package/dist/services/enterpriseTenantExportService.js.map +1 -0
  1579. package/dist/services/enterpriseTenantLifecycleService.d.ts +52 -0
  1580. package/dist/services/enterpriseTenantLifecycleService.d.ts.map +1 -0
  1581. package/dist/services/enterpriseTenantLifecycleService.js +323 -0
  1582. package/dist/services/enterpriseTenantLifecycleService.js.map +1 -0
  1583. package/dist/services/flamegraphAiSummary.d.ts +4 -0
  1584. package/dist/services/flamegraphAiSummary.d.ts.map +1 -0
  1585. package/dist/services/flamegraphAiSummary.js +172 -0
  1586. package/dist/services/flamegraphAiSummary.js.map +1 -0
  1587. package/dist/services/flamegraphAnalyzer.d.ts +14 -0
  1588. package/dist/services/flamegraphAnalyzer.d.ts.map +1 -0
  1589. package/dist/services/flamegraphAnalyzer.js +607 -0
  1590. package/dist/services/flamegraphAnalyzer.js.map +1 -0
  1591. package/dist/services/flamegraphTypes.d.ts +106 -0
  1592. package/dist/services/flamegraphTypes.d.ts.map +1 -0
  1593. package/dist/services/flamegraphTypes.js +6 -0
  1594. package/dist/services/flamegraphTypes.js.map +1 -0
  1595. package/dist/services/gpuSurfaceFlinger.d.ts +27 -0
  1596. package/dist/services/gpuSurfaceFlinger.d.ts.map +1 -0
  1597. package/dist/services/gpuSurfaceFlinger.js +68 -0
  1598. package/dist/services/gpuSurfaceFlinger.js.map +1 -0
  1599. package/dist/services/htmlReportGenerator.d.ts +425 -0
  1600. package/dist/services/htmlReportGenerator.d.ts.map +1 -0
  1601. package/dist/services/htmlReportGenerator.js +5110 -0
  1602. package/dist/services/htmlReportGenerator.js.map +1 -0
  1603. package/dist/services/ioNetworkWakeup.d.ts +27 -0
  1604. package/dist/services/ioNetworkWakeup.d.ts.map +1 -0
  1605. package/dist/services/ioNetworkWakeup.js +68 -0
  1606. package/dist/services/ioNetworkWakeup.js.map +1 -0
  1607. package/dist/services/jankDecisionTree.d.ts +39 -0
  1608. package/dist/services/jankDecisionTree.d.ts.map +1 -0
  1609. package/dist/services/jankDecisionTree.js +230 -0
  1610. package/dist/services/jankDecisionTree.js.map +1 -0
  1611. package/dist/services/legacyApiTelemetry.d.ts +28 -0
  1612. package/dist/services/legacyApiTelemetry.d.ts.map +1 -0
  1613. package/dist/services/legacyApiTelemetry.js +157 -0
  1614. package/dist/services/legacyApiTelemetry.js.map +1 -0
  1615. package/dist/services/memoryRootCause.d.ts +24 -0
  1616. package/dist/services/memoryRootCause.d.ts.map +1 -0
  1617. package/dist/services/memoryRootCause.js +70 -0
  1618. package/dist/services/memoryRootCause.js.map +1 -0
  1619. package/dist/services/multiTraceComparisonStore.d.ts +28 -0
  1620. package/dist/services/multiTraceComparisonStore.d.ts.map +1 -0
  1621. package/dist/services/multiTraceComparisonStore.js +220 -0
  1622. package/dist/services/multiTraceComparisonStore.js.map +1 -0
  1623. package/dist/services/oemSdkKnowledgeIngester.d.ts +62 -0
  1624. package/dist/services/oemSdkKnowledgeIngester.d.ts.map +1 -0
  1625. package/dist/services/oemSdkKnowledgeIngester.js +154 -0
  1626. package/dist/services/oemSdkKnowledgeIngester.js.map +1 -0
  1627. package/dist/services/perfettoLocalService.d.ts +25 -0
  1628. package/dist/services/perfettoLocalService.d.ts.map +1 -0
  1629. package/dist/services/perfettoLocalService.js +213 -0
  1630. package/dist/services/perfettoLocalService.js.map +1 -0
  1631. package/dist/services/perfettoService.d.ts +39 -0
  1632. package/dist/services/perfettoService.d.ts.map +1 -0
  1633. package/dist/services/perfettoService.js +330 -0
  1634. package/dist/services/perfettoService.js.map +1 -0
  1635. package/dist/services/perfettoSqlDocs.d.ts +94 -0
  1636. package/dist/services/perfettoSqlDocs.d.ts.map +1 -0
  1637. package/dist/services/perfettoSqlDocs.js +222 -0
  1638. package/dist/services/perfettoSqlDocs.js.map +1 -0
  1639. package/dist/services/perfettoSqlSkill.d.ts +263 -0
  1640. package/dist/services/perfettoSqlSkill.d.ts.map +1 -0
  1641. package/dist/services/perfettoSqlSkill.js +3731 -0
  1642. package/dist/services/perfettoSqlSkill.js.map +1 -0
  1643. package/dist/services/perfettoStdlibScanner.d.ts +66 -0
  1644. package/dist/services/perfettoStdlibScanner.d.ts.map +1 -0
  1645. package/dist/services/perfettoStdlibScanner.js +345 -0
  1646. package/dist/services/perfettoStdlibScanner.js.map +1 -0
  1647. package/dist/services/persistAgentSession.d.ts +43 -0
  1648. package/dist/services/persistAgentSession.d.ts.map +1 -0
  1649. package/dist/services/persistAgentSession.js +146 -0
  1650. package/dist/services/persistAgentSession.js.map +1 -0
  1651. package/dist/services/pipelineDocService.d.ts +83 -0
  1652. package/dist/services/pipelineDocService.d.ts.map +1 -0
  1653. package/dist/services/pipelineDocService.js +417 -0
  1654. package/dist/services/pipelineDocService.js.map +1 -0
  1655. package/dist/services/pipelineSkillLoader.d.ts +173 -0
  1656. package/dist/services/pipelineSkillLoader.d.ts.map +1 -0
  1657. package/dist/services/pipelineSkillLoader.js +301 -0
  1658. package/dist/services/pipelineSkillLoader.js.map +1 -0
  1659. package/dist/services/portPool.d.ts +85 -0
  1660. package/dist/services/portPool.d.ts.map +1 -0
  1661. package/dist/services/portPool.js +221 -0
  1662. package/dist/services/portPool.js.map +1 -0
  1663. package/dist/services/processIdentity/identityGate.d.ts +27 -0
  1664. package/dist/services/processIdentity/identityGate.d.ts.map +1 -0
  1665. package/dist/services/processIdentity/identityGate.js +284 -0
  1666. package/dist/services/processIdentity/identityGate.js.map +1 -0
  1667. package/dist/services/processIdentity/types.d.ts +49 -0
  1668. package/dist/services/processIdentity/types.d.ts.map +1 -0
  1669. package/dist/services/processIdentity/types.js +16 -0
  1670. package/dist/services/processIdentity/types.js.map +1 -0
  1671. package/dist/services/processRss.d.ts +10 -0
  1672. package/dist/services/processRss.d.ts.map +1 -0
  1673. package/dist/services/processRss.js +78 -0
  1674. package/dist/services/processRss.js.map +1 -0
  1675. package/dist/services/promptTemplateService.d.ts +68 -0
  1676. package/dist/services/promptTemplateService.d.ts.map +1 -0
  1677. package/dist/services/promptTemplateService.js +196 -0
  1678. package/dist/services/promptTemplateService.js.map +1 -0
  1679. package/dist/services/providerManager/connectionTester.d.ts +3 -0
  1680. package/dist/services/providerManager/connectionTester.d.ts.map +1 -0
  1681. package/dist/services/providerManager/connectionTester.js +479 -0
  1682. package/dist/services/providerManager/connectionTester.js.map +1 -0
  1683. package/dist/services/providerManager/envIsolation.d.ts +3 -0
  1684. package/dist/services/providerManager/envIsolation.d.ts.map +1 -0
  1685. package/dist/services/providerManager/envIsolation.js +31 -0
  1686. package/dist/services/providerManager/envIsolation.js.map +1 -0
  1687. package/dist/services/providerManager/index.d.ts +9 -0
  1688. package/dist/services/providerManager/index.d.ts.map +1 -0
  1689. package/dist/services/providerManager/index.js +40 -0
  1690. package/dist/services/providerManager/index.js.map +1 -0
  1691. package/dist/services/providerManager/localSecretStore.d.ts +32 -0
  1692. package/dist/services/providerManager/localSecretStore.d.ts.map +1 -0
  1693. package/dist/services/providerManager/localSecretStore.js +338 -0
  1694. package/dist/services/providerManager/localSecretStore.js.map +1 -0
  1695. package/dist/services/providerManager/providerService.d.ts +31 -0
  1696. package/dist/services/providerManager/providerService.d.ts.map +1 -0
  1697. package/dist/services/providerManager/providerService.js +460 -0
  1698. package/dist/services/providerManager/providerService.js.map +1 -0
  1699. package/dist/services/providerManager/providerSnapshot.d.ts +30 -0
  1700. package/dist/services/providerManager/providerSnapshot.d.ts.map +1 -0
  1701. package/dist/services/providerManager/providerSnapshot.js +224 -0
  1702. package/dist/services/providerManager/providerSnapshot.js.map +1 -0
  1703. package/dist/services/providerManager/providerStore.d.ts +31 -0
  1704. package/dist/services/providerManager/providerStore.d.ts.map +1 -0
  1705. package/dist/services/providerManager/providerStore.js +553 -0
  1706. package/dist/services/providerManager/providerStore.js.map +1 -0
  1707. package/dist/services/providerManager/templates.d.ts +3 -0
  1708. package/dist/services/providerManager/templates.d.ts.map +1 -0
  1709. package/dist/services/providerManager/templates.js +328 -0
  1710. package/dist/services/providerManager/templates.js.map +1 -0
  1711. package/dist/services/providerManager/types.d.ts +119 -0
  1712. package/dist/services/providerManager/types.d.ts.map +1 -0
  1713. package/dist/services/providerManager/types.js +5 -0
  1714. package/dist/services/providerManager/types.js.map +1 -0
  1715. package/dist/services/ragStore.d.ts +60 -0
  1716. package/dist/services/ragStore.d.ts.map +1 -0
  1717. package/dist/services/ragStore.js +297 -0
  1718. package/dist/services/ragStore.js.map +1 -0
  1719. package/dist/services/rbac.d.ts +19 -0
  1720. package/dist/services/rbac.d.ts.map +1 -0
  1721. package/dist/services/rbac.js +153 -0
  1722. package/dist/services/rbac.js.map +1 -0
  1723. package/dist/services/renderingPipelineDetectionSkillGenerator.d.ts +3 -0
  1724. package/dist/services/renderingPipelineDetectionSkillGenerator.d.ts.map +1 -0
  1725. package/dist/services/renderingPipelineDetectionSkillGenerator.js +1120 -0
  1726. package/dist/services/renderingPipelineDetectionSkillGenerator.js.map +1 -0
  1727. package/dist/services/renderingPipelineTeachingService.d.ts +33 -0
  1728. package/dist/services/renderingPipelineTeachingService.d.ts.map +1 -0
  1729. package/dist/services/renderingPipelineTeachingService.js +1312 -0
  1730. package/dist/services/renderingPipelineTeachingService.js.map +1 -0
  1731. package/dist/services/reportCausalMapAssets.d.ts +3 -0
  1732. package/dist/services/reportCausalMapAssets.d.ts.map +1 -0
  1733. package/dist/services/reportCausalMapAssets.js +898 -0
  1734. package/dist/services/reportCausalMapAssets.js.map +1 -0
  1735. package/dist/services/reportGenerator.d.ts +54 -0
  1736. package/dist/services/reportGenerator.d.ts.map +1 -0
  1737. package/dist/services/reportGenerator.js +241 -0
  1738. package/dist/services/reportGenerator.js.map +1 -0
  1739. package/dist/services/resourceOwnership.d.ts +21 -0
  1740. package/dist/services/resourceOwnership.d.ts.map +1 -0
  1741. package/dist/services/resourceOwnership.js +50 -0
  1742. package/dist/services/resourceOwnership.js.map +1 -0
  1743. package/dist/services/resultExportService.d.ts +66 -0
  1744. package/dist/services/resultExportService.d.ts.map +1 -0
  1745. package/dist/services/resultExportService.js +170 -0
  1746. package/dist/services/resultExportService.js.map +1 -0
  1747. package/dist/services/runtimeSnapshotStore.d.ts +19 -0
  1748. package/dist/services/runtimeSnapshotStore.d.ts.map +1 -0
  1749. package/dist/services/runtimeSnapshotStore.js +222 -0
  1750. package/dist/services/runtimeSnapshotStore.js.map +1 -0
  1751. package/dist/services/sceneReport/sceneReportMemoryCache.d.ts +38 -0
  1752. package/dist/services/sceneReport/sceneReportMemoryCache.d.ts.map +1 -0
  1753. package/dist/services/sceneReport/sceneReportMemoryCache.js +55 -0
  1754. package/dist/services/sceneReport/sceneReportMemoryCache.js.map +1 -0
  1755. package/dist/services/sceneReport/sceneReportStore.d.ts +41 -0
  1756. package/dist/services/sceneReport/sceneReportStore.d.ts.map +1 -0
  1757. package/dist/services/sceneReport/sceneReportStore.js +248 -0
  1758. package/dist/services/sceneReport/sceneReportStore.js.map +1 -0
  1759. package/dist/services/scopedKnowledgeStore.d.ts +45 -0
  1760. package/dist/services/scopedKnowledgeStore.d.ts.map +1 -0
  1761. package/dist/services/scopedKnowledgeStore.js +225 -0
  1762. package/dist/services/scopedKnowledgeStore.js.map +1 -0
  1763. package/dist/services/sessionLogger.d.ts +142 -0
  1764. package/dist/services/sessionLogger.d.ts.map +1 -0
  1765. package/dist/services/sessionLogger.js +566 -0
  1766. package/dist/services/sessionLogger.js.map +1 -0
  1767. package/dist/services/sessionPersistenceService.d.ts +190 -0
  1768. package/dist/services/sessionPersistenceService.d.ts.map +1 -0
  1769. package/dist/services/sessionPersistenceService.js +737 -0
  1770. package/dist/services/sessionPersistenceService.js.map +1 -0
  1771. package/dist/services/skillEngine/answerGenerator.d.ts +102 -0
  1772. package/dist/services/skillEngine/answerGenerator.d.ts.map +1 -0
  1773. package/dist/services/skillEngine/answerGenerator.js +508 -0
  1774. package/dist/services/skillEngine/answerGenerator.js.map +1 -0
  1775. package/dist/services/skillEngine/displayContractValidator.d.ts +26 -0
  1776. package/dist/services/skillEngine/displayContractValidator.d.ts.map +1 -0
  1777. package/dist/services/skillEngine/displayContractValidator.js +232 -0
  1778. package/dist/services/skillEngine/displayContractValidator.js.map +1 -0
  1779. package/dist/services/skillEngine/eventCollector.d.ts +96 -0
  1780. package/dist/services/skillEngine/eventCollector.d.ts.map +1 -0
  1781. package/dist/services/skillEngine/eventCollector.js +226 -0
  1782. package/dist/services/skillEngine/eventCollector.js.map +1 -0
  1783. package/dist/services/skillEngine/expressionUtils.d.ts +25 -0
  1784. package/dist/services/skillEngine/expressionUtils.d.ts.map +1 -0
  1785. package/dist/services/skillEngine/expressionUtils.js +66 -0
  1786. package/dist/services/skillEngine/expressionUtils.js.map +1 -0
  1787. package/dist/services/skillEngine/index.d.ts +25 -0
  1788. package/dist/services/skillEngine/index.d.ts.map +1 -0
  1789. package/dist/services/skillEngine/index.js +98 -0
  1790. package/dist/services/skillEngine/index.js.map +1 -0
  1791. package/dist/services/skillEngine/skillAnalysisAdapter.d.ts +149 -0
  1792. package/dist/services/skillEngine/skillAnalysisAdapter.d.ts.map +1 -0
  1793. package/dist/services/skillEngine/skillAnalysisAdapter.js +752 -0
  1794. package/dist/services/skillEngine/skillAnalysisAdapter.js.map +1 -0
  1795. package/dist/services/skillEngine/skillExecutor.d.ts +371 -0
  1796. package/dist/services/skillEngine/skillExecutor.d.ts.map +1 -0
  1797. package/dist/services/skillEngine/skillExecutor.js +4129 -0
  1798. package/dist/services/skillEngine/skillExecutor.js.map +1 -0
  1799. package/dist/services/skillEngine/skillLoader.d.ts +163 -0
  1800. package/dist/services/skillEngine/skillLoader.d.ts.map +1 -0
  1801. package/dist/services/skillEngine/skillLoader.js +840 -0
  1802. package/dist/services/skillEngine/skillLoader.js.map +1 -0
  1803. package/dist/services/skillEngine/skillValidator.d.ts +53 -0
  1804. package/dist/services/skillEngine/skillValidator.d.ts.map +1 -0
  1805. package/dist/services/skillEngine/skillValidator.js +274 -0
  1806. package/dist/services/skillEngine/skillValidator.js.map +1 -0
  1807. package/dist/services/skillEngine/smartSummaryGenerator.d.ts +70 -0
  1808. package/dist/services/skillEngine/smartSummaryGenerator.d.ts.map +1 -0
  1809. package/dist/services/skillEngine/smartSummaryGenerator.js +324 -0
  1810. package/dist/services/skillEngine/smartSummaryGenerator.js.map +1 -0
  1811. package/dist/services/skillEngine/types.d.ts +584 -0
  1812. package/dist/services/skillEngine/types.d.ts.map +1 -0
  1813. package/dist/services/skillEngine/types.js +6 -0
  1814. package/dist/services/skillEngine/types.js.map +1 -0
  1815. package/dist/services/smartperfettoSqlPackage.d.ts +11 -0
  1816. package/dist/services/smartperfettoSqlPackage.d.ts.map +1 -0
  1817. package/dist/services/smartperfettoSqlPackage.js +168 -0
  1818. package/dist/services/smartperfettoSqlPackage.js.map +1 -0
  1819. package/dist/services/sqlGuardrailAnalyzer.d.ts +24 -0
  1820. package/dist/services/sqlGuardrailAnalyzer.d.ts.map +1 -0
  1821. package/dist/services/sqlGuardrailAnalyzer.js +362 -0
  1822. package/dist/services/sqlGuardrailAnalyzer.js.map +1 -0
  1823. package/dist/services/sqlKnowledgeBase.d.ts +236 -0
  1824. package/dist/services/sqlKnowledgeBase.d.ts.map +1 -0
  1825. package/dist/services/sqlKnowledgeBase.js +1109 -0
  1826. package/dist/services/sqlKnowledgeBase.js.map +1 -0
  1827. package/dist/services/sqlStdlibDependencyAnalyzer.d.ts +26 -0
  1828. package/dist/services/sqlStdlibDependencyAnalyzer.d.ts.map +1 -0
  1829. package/dist/services/sqlStdlibDependencyAnalyzer.js +486 -0
  1830. package/dist/services/sqlStdlibDependencyAnalyzer.js.map +1 -0
  1831. package/dist/services/sqlTemplateEngine.d.ts +134 -0
  1832. package/dist/services/sqlTemplateEngine.d.ts.map +1 -0
  1833. package/dist/services/sqlTemplateEngine.js +430 -0
  1834. package/dist/services/sqlTemplateEngine.js.map +1 -0
  1835. package/dist/services/sqlValidator.d.ts +21 -0
  1836. package/dist/services/sqlValidator.d.ts.map +1 -0
  1837. package/dist/services/sqlValidator.js +175 -0
  1838. package/dist/services/sqlValidator.js.map +1 -0
  1839. package/dist/services/standardMetricBackfillService.d.ts +23 -0
  1840. package/dist/services/standardMetricBackfillService.d.ts.map +1 -0
  1841. package/dist/services/standardMetricBackfillService.js +196 -0
  1842. package/dist/services/standardMetricBackfillService.js.map +1 -0
  1843. package/dist/services/startupAnrMethodGraph.d.ts +20 -0
  1844. package/dist/services/startupAnrMethodGraph.d.ts.map +1 -0
  1845. package/dist/services/startupAnrMethodGraph.js +70 -0
  1846. package/dist/services/startupAnrMethodGraph.js.map +1 -0
  1847. package/dist/services/stdlibSkillCoverage.d.ts +23 -0
  1848. package/dist/services/stdlibSkillCoverage.d.ts.map +1 -0
  1849. package/dist/services/stdlibSkillCoverage.js +289 -0
  1850. package/dist/services/stdlibSkillCoverage.js.map +1 -0
  1851. package/dist/services/threadSchedContext.d.ts +49 -0
  1852. package/dist/services/threadSchedContext.d.ts.map +1 -0
  1853. package/dist/services/threadSchedContext.js +84 -0
  1854. package/dist/services/threadSchedContext.js.map +1 -0
  1855. package/dist/services/timelineBinning.d.ts +44 -0
  1856. package/dist/services/timelineBinning.d.ts.map +1 -0
  1857. package/dist/services/timelineBinning.js +150 -0
  1858. package/dist/services/timelineBinning.js.map +1 -0
  1859. package/dist/services/traceConfigGenerator.d.ts +36 -0
  1860. package/dist/services/traceConfigGenerator.d.ts.map +1 -0
  1861. package/dist/services/traceConfigGenerator.js +110 -0
  1862. package/dist/services/traceConfigGenerator.js.map +1 -0
  1863. package/dist/services/traceFormatDetector.d.ts +39 -0
  1864. package/dist/services/traceFormatDetector.d.ts.map +1 -0
  1865. package/dist/services/traceFormatDetector.js +287 -0
  1866. package/dist/services/traceFormatDetector.js.map +1 -0
  1867. package/dist/services/traceMetadataStore.d.ts +32 -0
  1868. package/dist/services/traceMetadataStore.d.ts.map +1 -0
  1869. package/dist/services/traceMetadataStore.js +375 -0
  1870. package/dist/services/traceMetadataStore.js.map +1 -0
  1871. package/dist/services/traceProcessorConnectionModel.d.ts +32 -0
  1872. package/dist/services/traceProcessorConnectionModel.d.ts.map +1 -0
  1873. package/dist/services/traceProcessorConnectionModel.js +38 -0
  1874. package/dist/services/traceProcessorConnectionModel.js.map +1 -0
  1875. package/dist/services/traceProcessorHttpRpcClient.d.ts +22 -0
  1876. package/dist/services/traceProcessorHttpRpcClient.d.ts.map +1 -0
  1877. package/dist/services/traceProcessorHttpRpcClient.js +89 -0
  1878. package/dist/services/traceProcessorHttpRpcClient.js.map +1 -0
  1879. package/dist/services/traceProcessorLeaseModeDecision.d.ts +52 -0
  1880. package/dist/services/traceProcessorLeaseModeDecision.d.ts.map +1 -0
  1881. package/dist/services/traceProcessorLeaseModeDecision.js +150 -0
  1882. package/dist/services/traceProcessorLeaseModeDecision.js.map +1 -0
  1883. package/dist/services/traceProcessorLeaseStore.d.ts +88 -0
  1884. package/dist/services/traceProcessorLeaseStore.d.ts.map +1 -0
  1885. package/dist/services/traceProcessorLeaseStore.js +463 -0
  1886. package/dist/services/traceProcessorLeaseStore.js.map +1 -0
  1887. package/dist/services/traceProcessorProtobuf.d.ts +56 -0
  1888. package/dist/services/traceProcessorProtobuf.d.ts.map +1 -0
  1889. package/dist/services/traceProcessorProtobuf.js +442 -0
  1890. package/dist/services/traceProcessorProtobuf.js.map +1 -0
  1891. package/dist/services/traceProcessorRamBudget.d.ts +55 -0
  1892. package/dist/services/traceProcessorRamBudget.d.ts.map +1 -0
  1893. package/dist/services/traceProcessorRamBudget.js +140 -0
  1894. package/dist/services/traceProcessorRamBudget.js.map +1 -0
  1895. package/dist/services/traceProcessorService.d.ts +223 -0
  1896. package/dist/services/traceProcessorService.d.ts.map +1 -0
  1897. package/dist/services/traceProcessorService.js +838 -0
  1898. package/dist/services/traceProcessorService.js.map +1 -0
  1899. package/dist/services/traceProcessorSqlWorker.d.ts +49 -0
  1900. package/dist/services/traceProcessorSqlWorker.d.ts.map +1 -0
  1901. package/dist/services/traceProcessorSqlWorker.js +218 -0
  1902. package/dist/services/traceProcessorSqlWorker.js.map +1 -0
  1903. package/dist/services/traceProcessorSqlWorkerThread.d.ts +2 -0
  1904. package/dist/services/traceProcessorSqlWorkerThread.d.ts.map +1 -0
  1905. package/dist/services/traceProcessorSqlWorkerThread.js +35 -0
  1906. package/dist/services/traceProcessorSqlWorkerThread.js.map +1 -0
  1907. package/dist/services/traceSummaryV2.d.ts +47 -0
  1908. package/dist/services/traceSummaryV2.d.ts.map +1 -0
  1909. package/dist/services/traceSummaryV2.js +241 -0
  1910. package/dist/services/traceSummaryV2.js.map +1 -0
  1911. package/dist/services/traceUploadLimit.d.ts +3 -0
  1912. package/dist/services/traceUploadLimit.d.ts.map +1 -0
  1913. package/dist/services/traceUploadLimit.js +24 -0
  1914. package/dist/services/traceUploadLimit.js.map +1 -0
  1915. package/dist/services/workingTraceProcessor.d.ts +226 -0
  1916. package/dist/services/workingTraceProcessor.d.ts.map +1 -0
  1917. package/dist/services/workingTraceProcessor.js +1093 -0
  1918. package/dist/services/workingTraceProcessor.js.map +1 -0
  1919. package/dist/trace-processor-pin.env +39 -0
  1920. package/dist/types/analysis.d.ts +511 -0
  1921. package/dist/types/analysis.d.ts.map +1 -0
  1922. package/dist/types/analysis.js +112 -0
  1923. package/dist/types/analysis.js.map +1 -0
  1924. package/dist/types/ciGateContracts.d.ts +63 -0
  1925. package/dist/types/ciGateContracts.d.ts.map +1 -0
  1926. package/dist/types/ciGateContracts.js +6 -0
  1927. package/dist/types/ciGateContracts.js.map +1 -0
  1928. package/dist/types/dataContract.d.ts +624 -0
  1929. package/dist/types/dataContract.d.ts.map +1 -0
  1930. package/dist/types/dataContract.js +775 -0
  1931. package/dist/types/dataContract.js.map +1 -0
  1932. package/dist/types/index.d.ts +40 -0
  1933. package/dist/types/index.d.ts.map +1 -0
  1934. package/dist/types/index.js +21 -0
  1935. package/dist/types/index.js.map +1 -0
  1936. package/dist/types/multiTraceComparison.d.ts +215 -0
  1937. package/dist/types/multiTraceComparison.d.ts.map +1 -0
  1938. package/dist/types/multiTraceComparison.js +33 -0
  1939. package/dist/types/multiTraceComparison.js.map +1 -0
  1940. package/dist/types/perfettoSql.d.ts +596 -0
  1941. package/dist/types/perfettoSql.d.ts.map +1 -0
  1942. package/dist/types/perfettoSql.js +28 -0
  1943. package/dist/types/perfettoSql.js.map +1 -0
  1944. package/dist/types/sparkContracts.d.ts +1642 -0
  1945. package/dist/types/sparkContracts.d.ts.map +1 -0
  1946. package/dist/types/sparkContracts.js +25 -0
  1947. package/dist/types/sparkContracts.js.map +1 -0
  1948. package/dist/types/teaching.types.d.ts +395 -0
  1949. package/dist/types/teaching.types.d.ts.map +1 -0
  1950. package/dist/types/teaching.types.js +300 -0
  1951. package/dist/types/teaching.types.js.map +1 -0
  1952. package/dist/utils/analysisNarrative.d.ts +24 -0
  1953. package/dist/utils/analysisNarrative.d.ts.map +1 -0
  1954. package/dist/utils/analysisNarrative.js +101 -0
  1955. package/dist/utils/analysisNarrative.js.map +1 -0
  1956. package/dist/utils/atomicFileWriter.d.ts +5 -0
  1957. package/dist/utils/atomicFileWriter.d.ts.map +1 -0
  1958. package/dist/utils/atomicFileWriter.js +90 -0
  1959. package/dist/utils/atomicFileWriter.js.map +1 -0
  1960. package/dist/utils/epipeGuard.d.ts +10 -0
  1961. package/dist/utils/epipeGuard.d.ts.map +1 -0
  1962. package/dist/utils/epipeGuard.js +40 -0
  1963. package/dist/utils/epipeGuard.js.map +1 -0
  1964. package/dist/utils/httpValue.d.ts +2 -0
  1965. package/dist/utils/httpValue.d.ts.map +1 -0
  1966. package/dist/utils/httpValue.js +24 -0
  1967. package/dist/utils/httpValue.js.map +1 -0
  1968. package/dist/utils/llmJson.d.ts +33 -0
  1969. package/dist/utils/llmJson.d.ts.map +1 -0
  1970. package/dist/utils/llmJson.js +148 -0
  1971. package/dist/utils/llmJson.js.map +1 -0
  1972. package/dist/utils/llmPrivacy.d.ts +15 -0
  1973. package/dist/utils/llmPrivacy.d.ts.map +1 -0
  1974. package/dist/utils/llmPrivacy.js +126 -0
  1975. package/dist/utils/llmPrivacy.js.map +1 -0
  1976. package/dist/utils/logger.d.ts +24 -0
  1977. package/dist/utils/logger.d.ts.map +1 -0
  1978. package/dist/utils/logger.js +68 -0
  1979. package/dist/utils/logger.js.map +1 -0
  1980. package/dist/utils/traceProcessorRowUtils.d.ts +11 -0
  1981. package/dist/utils/traceProcessorRowUtils.d.ts.map +1 -0
  1982. package/dist/utils/traceProcessorRowUtils.js +64 -0
  1983. package/dist/utils/traceProcessorRowUtils.js.map +1 -0
  1984. package/dist/utils/uuid.d.ts +3 -0
  1985. package/dist/utils/uuid.d.ts.map +1 -0
  1986. package/dist/utils/uuid.js +7 -0
  1987. package/dist/utils/uuid.js.map +1 -0
  1988. package/dist/version.d.ts +2 -0
  1989. package/dist/version.d.ts.map +1 -0
  1990. package/dist/version.js +53 -0
  1991. package/dist/version.js.map +1 -0
  1992. package/package.json +128 -0
  1993. package/prebuilts/trace_processor/README.md +20 -0
  1994. package/prebuilts/trace_processor/darwin-arm64/trace_processor_shell +0 -0
  1995. package/prebuilts/trace_processor/linux-x64/trace_processor_shell +0 -0
  1996. package/prebuilts/trace_processor/win32-x64/trace_processor_shell.exe +0 -0
  1997. package/skills/README.md +686 -0
  1998. package/skills/_template/README.md +43 -0
  1999. package/skills/_template/atomic_A_template.skill.yaml +79 -0
  2000. package/skills/_template/atomic_B_template.skill.yaml +61 -0
  2001. package/skills/_template/atomic_S_template.skill.yaml +92 -0
  2002. package/skills/_template/composite_S_template.skill.yaml +198 -0
  2003. package/skills/_template/vendor_override_template.yaml +72 -0
  2004. package/skills/atomic/android_bitmap_memory_per_process.skill.yaml +203 -0
  2005. package/skills/atomic/android_dvfs_counter_stats.skill.yaml +60 -0
  2006. package/skills/atomic/android_gpu_work_period_track.skill.yaml +55 -0
  2007. package/skills/atomic/android_heap_graph_summary.skill.yaml +232 -0
  2008. package/skills/atomic/android_job_scheduler_events.skill.yaml +58 -0
  2009. package/skills/atomic/android_kernel_wakelock_summary.skill.yaml +57 -0
  2010. package/skills/atomic/anr_context_in_range.skill.yaml +99 -0
  2011. package/skills/atomic/anr_main_thread_blocking.skill.yaml +513 -0
  2012. package/skills/atomic/app_frame_production.skill.yaml +147 -0
  2013. package/skills/atomic/app_lifecycle_in_range.skill.yaml +142 -0
  2014. package/skills/atomic/app_process_starts_summary.skill.yaml +75 -0
  2015. package/skills/atomic/battery_charge_timeline.skill.yaml +72 -0
  2016. package/skills/atomic/battery_doze_state_timeline.skill.yaml +83 -0
  2017. package/skills/atomic/binder_blocking_in_range.skill.yaml +99 -0
  2018. package/skills/atomic/binder_in_range.skill.yaml +86 -0
  2019. package/skills/atomic/binder_root_cause.skill.yaml +191 -0
  2020. package/skills/atomic/binder_storm_detection.skill.yaml +394 -0
  2021. package/skills/atomic/blocking_chain_analysis.skill.yaml +316 -0
  2022. package/skills/atomic/buffer_transaction_lifecycle.skill.yaml +256 -0
  2023. package/skills/atomic/cache_miss_impact.skill.yaml +115 -0
  2024. package/skills/atomic/chrome_scroll_jank_frame_timeline.skill.yaml +337 -0
  2025. package/skills/atomic/compose_recomposition_hotspot.skill.yaml +403 -0
  2026. package/skills/atomic/consumer_jank_detection.skill.yaml +556 -0
  2027. package/skills/atomic/cpu_cluster_load_in_range.skill.yaml +138 -0
  2028. package/skills/atomic/cpu_cluster_mapping_view.skill.yaml +47 -0
  2029. package/skills/atomic/cpu_freq_timeline.skill.yaml +143 -0
  2030. package/skills/atomic/cpu_idle_analysis.skill.yaml +101 -0
  2031. package/skills/atomic/cpu_idle_state_residency.skill.yaml +54 -0
  2032. package/skills/atomic/cpu_load_in_range.skill.yaml +145 -0
  2033. package/skills/atomic/cpu_process_utilization_period.skill.yaml +51 -0
  2034. package/skills/atomic/cpu_slice_analysis.skill.yaml +118 -0
  2035. package/skills/atomic/cpu_thread_utilization_period.skill.yaml +68 -0
  2036. package/skills/atomic/cpu_throttling_in_range.skill.yaml +131 -0
  2037. package/skills/atomic/cpu_time_per_frame.skill.yaml +59 -0
  2038. package/skills/atomic/cpu_topology_detection.skill.yaml +233 -0
  2039. package/skills/atomic/cpu_topology_view.skill.yaml +272 -0
  2040. package/skills/atomic/cpu_utilization_per_period.skill.yaml +55 -0
  2041. package/skills/atomic/device_state_snapshot.skill.yaml +171 -0
  2042. package/skills/atomic/device_state_timeline.skill.yaml +308 -0
  2043. package/skills/atomic/fence_wait_decomposition.skill.yaml +314 -0
  2044. package/skills/atomic/fpsgo_analysis.skill.yaml +80 -0
  2045. package/skills/atomic/frame_blocking_calls.skill.yaml +215 -0
  2046. package/skills/atomic/frame_overrun_summary.skill.yaml +68 -0
  2047. package/skills/atomic/frame_pipeline_variance.skill.yaml +124 -0
  2048. package/skills/atomic/frame_production_gap.skill.yaml +337 -0
  2049. package/skills/atomic/frame_ui_time_breakdown.skill.yaml +58 -0
  2050. package/skills/atomic/futex_wait_distribution.skill.yaml +117 -0
  2051. package/skills/atomic/game_fps_analysis.skill.yaml +385 -0
  2052. package/skills/atomic/game_main_loop_jank.skill.yaml +309 -0
  2053. package/skills/atomic/gc_events_in_range.skill.yaml +118 -0
  2054. package/skills/atomic/gl_standalone_swap_jank.skill.yaml +259 -0
  2055. package/skills/atomic/gpu_freq_in_range.skill.yaml +99 -0
  2056. package/skills/atomic/gpu_frequency_analysis.skill.yaml +94 -0
  2057. package/skills/atomic/gpu_metrics.skill.yaml +411 -0
  2058. package/skills/atomic/gpu_power_state_analysis.skill.yaml +117 -0
  2059. package/skills/atomic/gpu_render_in_range.skill.yaml +104 -0
  2060. package/skills/atomic/input_events_in_range.skill.yaml +130 -0
  2061. package/skills/atomic/input_to_frame_latency.skill.yaml +436 -0
  2062. package/skills/atomic/linux_irq_summary.skill.yaml +66 -0
  2063. package/skills/atomic/linux_perf_counter_hotspots.skill.yaml +108 -0
  2064. package/skills/atomic/linux_process_rss_swap_timeline.skill.yaml +96 -0
  2065. package/skills/atomic/linux_runqueue_depth_timeline.skill.yaml +132 -0
  2066. package/skills/atomic/linux_sched_latency_distribution.skill.yaml +130 -0
  2067. package/skills/atomic/lmk_kill_attribution.skill.yaml +72 -0
  2068. package/skills/atomic/lock_contention_in_range.skill.yaml +402 -0
  2069. package/skills/atomic/logcat_analysis.skill.yaml +85 -0
  2070. package/skills/atomic/main_thread_file_io_in_range.skill.yaml +116 -0
  2071. package/skills/atomic/main_thread_sched_latency_in_range.skill.yaml +91 -0
  2072. package/skills/atomic/main_thread_slices_in_range.skill.yaml +129 -0
  2073. package/skills/atomic/main_thread_states_in_range.skill.yaml +105 -0
  2074. package/skills/atomic/mali_gpu_power_state.skill.yaml +54 -0
  2075. package/skills/atomic/media_codec_activity.skill.yaml +236 -0
  2076. package/skills/atomic/memory_growth_detector.skill.yaml +146 -0
  2077. package/skills/atomic/memory_pressure_in_range.skill.yaml +382 -0
  2078. package/skills/atomic/memory_rss_high_watermark.skill.yaml +62 -0
  2079. package/skills/atomic/native_heap_breakdown.skill.yaml +80 -0
  2080. package/skills/atomic/oom_adjuster_score_timeline.skill.yaml +77 -0
  2081. package/skills/atomic/page_fault_in_range.skill.yaml +113 -0
  2082. package/skills/atomic/pipeline_4feature_scoring.skill.yaml +299 -0
  2083. package/skills/atomic/pipeline_key_slices_overlay.skill.yaml +108 -0
  2084. package/skills/atomic/present_fence_timing.skill.yaml +156 -0
  2085. package/skills/atomic/process_identity_resolver.skill.yaml +503 -0
  2086. package/skills/atomic/render_pipeline_latency.skill.yaml +120 -0
  2087. package/skills/atomic/render_thread_slices.skill.yaml +107 -0
  2088. package/skills/atomic/rendering_pipeline_detection.skill.yaml +770 -0
  2089. package/skills/atomic/rn_bridge_to_frame_jank.skill.yaml +209 -0
  2090. package/skills/atomic/rn_fabric_render_jank.skill.yaml +213 -0
  2091. package/skills/atomic/sched_latency_in_range.skill.yaml +94 -0
  2092. package/skills/atomic/scheduling_analysis.skill.yaml +103 -0
  2093. package/skills/atomic/scroll_response_latency.skill.yaml +131 -0
  2094. package/skills/atomic/sf_composition_in_range.skill.yaml +99 -0
  2095. package/skills/atomic/sf_frame_consumption.skill.yaml +133 -0
  2096. package/skills/atomic/sf_layer_count_in_range.skill.yaml +155 -0
  2097. package/skills/atomic/startup_binder_in_range.skill.yaml +106 -0
  2098. package/skills/atomic/startup_binder_pool_analysis.skill.yaml +115 -0
  2099. package/skills/atomic/startup_breakdown_in_range.skill.yaml +115 -0
  2100. package/skills/atomic/startup_class_loading_in_range.skill.yaml +93 -0
  2101. package/skills/atomic/startup_cpu_placement_timeline.skill.yaml +135 -0
  2102. package/skills/atomic/startup_critical_tasks.skill.yaml +247 -0
  2103. package/skills/atomic/startup_events_in_range.skill.yaml +251 -0
  2104. package/skills/atomic/startup_freq_rampup.skill.yaml +110 -0
  2105. package/skills/atomic/startup_gc_in_range.skill.yaml +97 -0
  2106. package/skills/atomic/startup_hot_slice_states.skill.yaml +116 -0
  2107. package/skills/atomic/startup_jit_analysis.skill.yaml +158 -0
  2108. package/skills/atomic/startup_main_thread_binder_blocking_in_range.skill.yaml +114 -0
  2109. package/skills/atomic/startup_main_thread_file_io_in_range.skill.yaml +117 -0
  2110. package/skills/atomic/startup_main_thread_slices_in_range.skill.yaml +138 -0
  2111. package/skills/atomic/startup_main_thread_states_in_range.skill.yaml +100 -0
  2112. package/skills/atomic/startup_main_thread_sync_binder_in_range.skill.yaml +103 -0
  2113. package/skills/atomic/startup_sched_latency_in_range.skill.yaml +93 -0
  2114. package/skills/atomic/startup_slow_reasons.skill.yaml +625 -0
  2115. package/skills/atomic/startup_thread_blocking_graph.skill.yaml +181 -0
  2116. package/skills/atomic/system_load_in_range.skill.yaml +95 -0
  2117. package/skills/atomic/task_migration_in_range.skill.yaml +115 -0
  2118. package/skills/atomic/textureview_producer_frame_timing.skill.yaml +302 -0
  2119. package/skills/atomic/thermal_predictor.skill.yaml +182 -0
  2120. package/skills/atomic/thread_affinity_violation.skill.yaml +139 -0
  2121. package/skills/atomic/touch_to_display_latency.skill.yaml +130 -0
  2122. package/skills/atomic/util_tracking_analysis.skill.yaml +89 -0
  2123. package/skills/atomic/vrr_detection.skill.yaml +301 -0
  2124. package/skills/atomic/vsync_alignment_in_range.skill.yaml +116 -0
  2125. package/skills/atomic/vsync_config.skill.yaml +147 -0
  2126. package/skills/atomic/vsync_period_detection.skill.yaml +178 -0
  2127. package/skills/atomic/vsync_phase_alignment.skill.yaml +255 -0
  2128. package/skills/atomic/wakelock_tracking.skill.yaml +276 -0
  2129. package/skills/atomic/wattson_app_startup_power.skill.yaml +66 -0
  2130. package/skills/atomic/wattson_rails_power_breakdown.skill.yaml +70 -0
  2131. package/skills/atomic/wattson_thread_power_attribution.skill.yaml +74 -0
  2132. package/skills/atomic/webview_v8_analysis.skill.yaml +297 -0
  2133. package/skills/comparison/multi_trace_result_comparison.skill.yaml +60 -0
  2134. package/skills/composite/anr_analysis.skill.yaml +889 -0
  2135. package/skills/composite/anr_detail.skill.yaml +796 -0
  2136. package/skills/composite/battery_drain_attribution.skill.yaml +134 -0
  2137. package/skills/composite/binder_analysis.skill.yaml +742 -0
  2138. package/skills/composite/binder_detail.skill.yaml +388 -0
  2139. package/skills/composite/block_io_analysis.skill.yaml +559 -0
  2140. package/skills/composite/click_response_analysis.skill.yaml +915 -0
  2141. package/skills/composite/click_response_detail.skill.yaml +800 -0
  2142. package/skills/composite/cpu_analysis.skill.yaml +960 -0
  2143. package/skills/composite/dmabuf_analysis.skill.yaml +622 -0
  2144. package/skills/composite/flutter_scrolling_analysis.skill.yaml +443 -0
  2145. package/skills/composite/gc_analysis.skill.yaml +744 -0
  2146. package/skills/composite/global_trace_sanity_check.skill.yaml +716 -0
  2147. package/skills/composite/gpu_analysis.skill.yaml +700 -0
  2148. package/skills/composite/io_pressure.skill.yaml +654 -0
  2149. package/skills/composite/irq_analysis.skill.yaml +696 -0
  2150. package/skills/composite/jank_frame_detail.skill.yaml +2065 -0
  2151. package/skills/composite/lmk_analysis.skill.yaml +626 -0
  2152. package/skills/composite/lock_binder_wait.skill.yaml +95 -0
  2153. package/skills/composite/lock_contention_analysis.skill.yaml +878 -0
  2154. package/skills/composite/memory_analysis.skill.yaml +718 -0
  2155. package/skills/composite/navigation_analysis.skill.yaml +901 -0
  2156. package/skills/composite/network_analysis.skill.yaml +760 -0
  2157. package/skills/composite/power_consumption_overview.skill.yaml +143 -0
  2158. package/skills/composite/scene_reconstruction.skill.yaml +2788 -0
  2159. package/skills/composite/scroll_session_analysis.skill.yaml +496 -0
  2160. package/skills/composite/scrolling_analysis.skill.yaml +3295 -0
  2161. package/skills/composite/startup_analysis.skill.yaml +1172 -0
  2162. package/skills/composite/startup_detail.skill.yaml +1339 -0
  2163. package/skills/composite/state_timeline.skill.yaml +1021 -0
  2164. package/skills/composite/surfaceflinger_analysis.skill.yaml +808 -0
  2165. package/skills/composite/suspend_wakeup_analysis.skill.yaml +698 -0
  2166. package/skills/composite/thermal_throttling.skill.yaml +964 -0
  2167. package/skills/composite/thermal_throttling_chain.skill.yaml +147 -0
  2168. package/skills/composite/webview_drawfunctor_jank_chain.skill.yaml +343 -0
  2169. package/skills/config/conclusion_scene_templates.base.yaml +181 -0
  2170. package/skills/config/conclusion_scene_templates.yaml +17 -0
  2171. package/skills/deep/callstack_analysis.skill.yaml +436 -0
  2172. package/skills/deep/cpu_profiling.skill.yaml +617 -0
  2173. package/skills/docs/scrolling.sop.md +312 -0
  2174. package/skills/docs/startup.sop.md +382 -0
  2175. package/skills/docs/upstream-perfetto-ai-skill-translation.sop.md +50 -0
  2176. package/skills/fragments/target_threads.sql +34 -0
  2177. package/skills/fragments/thread_states_quadrant.sql +26 -0
  2178. package/skills/fragments/vsync_config.sql +32 -0
  2179. package/skills/modules/app/launcher_module.skill.yaml +473 -0
  2180. package/skills/modules/app/systemui_module.skill.yaml +565 -0
  2181. package/skills/modules/app/third_party_module.skill.yaml +275 -0
  2182. package/skills/modules/framework/ams_module.skill.yaml +239 -0
  2183. package/skills/modules/framework/art_module.skill.yaml +266 -0
  2184. package/skills/modules/framework/choreographer_module.skill.yaml +419 -0
  2185. package/skills/modules/framework/input_module.skill.yaml +219 -0
  2186. package/skills/modules/framework/surfaceflinger_module.skill.yaml +343 -0
  2187. package/skills/modules/framework/wms_module.skill.yaml +356 -0
  2188. package/skills/modules/hardware/cpu_module.skill.yaml +300 -0
  2189. package/skills/modules/hardware/gpu_module.skill.yaml +229 -0
  2190. package/skills/modules/hardware/memory_module.skill.yaml +443 -0
  2191. package/skills/modules/hardware/power_module.skill.yaml +377 -0
  2192. package/skills/modules/hardware/thermal_module.skill.yaml +410 -0
  2193. package/skills/modules/kernel/binder_module.skill.yaml +223 -0
  2194. package/skills/modules/kernel/filesystem_module.skill.yaml +423 -0
  2195. package/skills/modules/kernel/lock_contention_module.skill.yaml +424 -0
  2196. package/skills/modules/kernel/scheduler_module.skill.yaml +247 -0
  2197. package/skills/pipelines/_base.skill.yaml +103 -0
  2198. package/skills/pipelines/android_pip_freeform.skill.yaml +224 -0
  2199. package/skills/pipelines/android_view_mixed.skill.yaml +305 -0
  2200. package/skills/pipelines/android_view_multi_window.skill.yaml +271 -0
  2201. package/skills/pipelines/android_view_software.skill.yaml +172 -0
  2202. package/skills/pipelines/android_view_standard_blast.skill.yaml +357 -0
  2203. package/skills/pipelines/android_view_standard_legacy.skill.yaml +233 -0
  2204. package/skills/pipelines/angle_gles_vulkan.skill.yaml +178 -0
  2205. package/skills/pipelines/camera_pipeline.skill.yaml +215 -0
  2206. package/skills/pipelines/chrome_browser_viz.skill.yaml +288 -0
  2207. package/skills/pipelines/compose_standard.skill.yaml +250 -0
  2208. package/skills/pipelines/flutter_surfaceview_impeller.skill.yaml +233 -0
  2209. package/skills/pipelines/flutter_surfaceview_skia.skill.yaml +194 -0
  2210. package/skills/pipelines/flutter_textureview.skill.yaml +219 -0
  2211. package/skills/pipelines/game_engine.skill.yaml +311 -0
  2212. package/skills/pipelines/hardware_buffer_renderer.skill.yaml +205 -0
  2213. package/skills/pipelines/imagereader_pipeline.skill.yaml +237 -0
  2214. package/skills/pipelines/index.yaml +122 -0
  2215. package/skills/pipelines/opengl_es.skill.yaml +185 -0
  2216. package/skills/pipelines/rn_new_arch.skill.yaml +126 -0
  2217. package/skills/pipelines/rn_old_arch.skill.yaml +137 -0
  2218. package/skills/pipelines/rn_skia.skill.yaml +115 -0
  2219. package/skills/pipelines/software_compositing.skill.yaml +203 -0
  2220. package/skills/pipelines/surface_control_api.skill.yaml +208 -0
  2221. package/skills/pipelines/surfaceview_blast.skill.yaml +210 -0
  2222. package/skills/pipelines/textureview_standard.skill.yaml +301 -0
  2223. package/skills/pipelines/variable_refresh_rate.skill.yaml +264 -0
  2224. package/skills/pipelines/video_overlay_hwc.skill.yaml +193 -0
  2225. package/skills/pipelines/vulkan_native.skill.yaml +215 -0
  2226. package/skills/pipelines/webview_gl_functor.skill.yaml +232 -0
  2227. package/skills/pipelines/webview_surface_control.skill.yaml +187 -0
  2228. package/skills/pipelines/webview_surfaceview_wrapper.skill.yaml +196 -0
  2229. package/skills/pipelines/webview_textureview_custom.skill.yaml +201 -0
  2230. package/skills/vendors/honor/startup.override.yaml +117 -0
  2231. package/skills/vendors/mtk/startup.override.yaml +133 -0
  2232. package/skills/vendors/oppo/startup.override.yaml +188 -0
  2233. package/skills/vendors/pixel/startup.override.yaml +163 -0
  2234. package/skills/vendors/qualcomm/startup.override.yaml +175 -0
  2235. package/skills/vendors/samsung/startup.override.yaml +161 -0
  2236. package/skills/vendors/vivo/startup.override.yaml +144 -0
  2237. package/skills/vendors/xiaomi/startup.override.yaml +120 -0
  2238. package/sql/smartperfetto/PACKAGE.json +24 -0
  2239. package/sql/smartperfetto/binder/victim_to_server.sql +36 -0
  2240. package/sql/smartperfetto/scrolling/jank_frames.sql +55 -0
  2241. package/strategies/anr.strategy.md +200 -0
  2242. package/strategies/arch-compose.template.md +10 -0
  2243. package/strategies/arch-flutter.template.md +17 -0
  2244. package/strategies/arch-standard.template.md +31 -0
  2245. package/strategies/arch-webview.template.md +9 -0
  2246. package/strategies/comparison-conclusion.template.md +36 -0
  2247. package/strategies/comparison-methodology.template.md +41 -0
  2248. package/strategies/comparison-result-methodology.template.md +35 -0
  2249. package/strategies/game.strategy.md +121 -0
  2250. package/strategies/general.strategy.md +48 -0
  2251. package/strategies/interaction.strategy.md +149 -0
  2252. package/strategies/knowledge-binder-ipc.template.md +59 -0
  2253. package/strategies/knowledge-cpu-scheduler.template.md +67 -0
  2254. package/strategies/knowledge-data-sources.template.md +738 -0
  2255. package/strategies/knowledge-gc-dynamics.template.md +65 -0
  2256. package/strategies/knowledge-harmonyos-rendering.template.md +54 -0
  2257. package/strategies/knowledge-harmonyos-tools.template.md +73 -0
  2258. package/strategies/knowledge-lock-contention.template.md +61 -0
  2259. package/strategies/knowledge-pipeline-anchors.template.md +136 -0
  2260. package/strategies/knowledge-pipeline-fences.template.md +158 -0
  2261. package/strategies/knowledge-rendering-pipeline.template.md +170 -0
  2262. package/strategies/knowledge-startup-root-causes.template.md +951 -0
  2263. package/strategies/knowledge-thermal-throttling.template.md +53 -0
  2264. package/strategies/linux.strategy.md +86 -0
  2265. package/strategies/media.strategy.md +75 -0
  2266. package/strategies/memory.strategy.md +94 -0
  2267. package/strategies/multi-trace-result-comparison.strategy.md +96 -0
  2268. package/strategies/network.strategy.md +80 -0
  2269. package/strategies/overview.strategy.md +139 -0
  2270. package/strategies/phase_hint_templates/misdiagnosis_vsync_vrr.template.yaml +37 -0
  2271. package/strategies/pipeline.strategy.md +208 -0
  2272. package/strategies/power.strategy.md +165 -0
  2273. package/strategies/prompt-complexity-classifier.template.md +26 -0
  2274. package/strategies/prompt-language-en.template.md +9 -0
  2275. package/strategies/prompt-language-zh.template.md +8 -0
  2276. package/strategies/prompt-methodology.template.md +183 -0
  2277. package/strategies/prompt-output-format.template.md +115 -0
  2278. package/strategies/prompt-quick.template.md +44 -0
  2279. package/strategies/prompt-role.template.md +13 -0
  2280. package/strategies/runtime-correctness.strategy.md +73 -0
  2281. package/strategies/scroll-response.strategy.md +236 -0
  2282. package/strategies/scrolling.strategy.md +467 -0
  2283. package/strategies/selection-area.template.md +46 -0
  2284. package/strategies/selection-slice.template.md +126 -0
  2285. package/strategies/startup.strategy.md +694 -0
  2286. package/strategies/teaching.strategy.md +176 -0
  2287. package/strategies/touch-tracking.strategy.md +213 -0
@@ -0,0 +1,2541 @@
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
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ClaudeRuntime = exports.__testing = void 0;
40
+ const events_1 = require("events");
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const claude_agent_sdk_1 = require("@anthropic-ai/claude-agent-sdk");
44
+ const skillExecutor_1 = require("../services/skillEngine/skillExecutor");
45
+ const skillLoader_1 = require("../services/skillEngine/skillLoader");
46
+ const skillAnalysisAdapter_1 = require("../services/skillEngine/skillAnalysisAdapter");
47
+ const architectureDetector_1 = require("../agent/detectors/architectureDetector");
48
+ const enhancedSessionContext_1 = require("../agent/context/enhancedSessionContext");
49
+ const claudeMcpServer_1 = require("./claudeMcpServer");
50
+ const claudeSystemPrompt_1 = require("./claudeSystemPrompt");
51
+ const claudeSseBridge_1 = require("./claudeSseBridge");
52
+ const analysisTermination_1 = require("./analysisTermination");
53
+ const claudeFindingExtractor_1 = require("./claudeFindingExtractor");
54
+ const claudeConfig_1 = require("./claudeConfig");
55
+ const focusAppDetector_1 = require("./focusAppDetector");
56
+ const sceneClassifier_1 = require("./sceneClassifier");
57
+ const queryComplexityClassifier_1 = require("./queryComplexityClassifier");
58
+ const claudeAgentDefinitions_1 = require("./claudeAgentDefinitions");
59
+ const sqlKnowledgeBase_1 = require("../services/sqlKnowledgeBase");
60
+ const types_1 = require("./types");
61
+ const artifactStore_1 = require("./artifactStore");
62
+ const toolCallSummary_1 = require("./toolCallSummary");
63
+ const recoveryNoteBuilder_1 = require("./recoveryNoteBuilder");
64
+ const contextTokenMeter_1 = require("./contextTokenMeter");
65
+ const agentMetrics_1 = require("./agentMetrics");
66
+ const analysisPatternMemory_1 = require("./analysisPatternMemory");
67
+ const skillNotesInjector_1 = require("./selfImprove/skillNotesInjector");
68
+ const strategyFingerprint_1 = require("./selfImprove/strategyFingerprint");
69
+ const claudeVerifier_1 = require("./claudeVerifier");
70
+ const runtimePaths_1 = require("../runtimePaths");
71
+ function parseQuickBudgetEnv() {
72
+ const v = process.env.SELF_IMPROVE_QUICK_NOTES_BUDGET;
73
+ if (!v)
74
+ return undefined;
75
+ const n = Number.parseInt(v, 10);
76
+ return Number.isFinite(n) && n >= 0 ? n : undefined;
77
+ }
78
+ function parseLeadingJsonObject(text) {
79
+ let depth = 0;
80
+ let inString = false;
81
+ let escaped = false;
82
+ for (let i = 0; i < text.length; i++) {
83
+ const char = text[i];
84
+ if (inString) {
85
+ if (escaped) {
86
+ escaped = false;
87
+ }
88
+ else if (char === '\\') {
89
+ escaped = true;
90
+ }
91
+ else if (char === '"') {
92
+ inString = false;
93
+ }
94
+ continue;
95
+ }
96
+ if (char === '"') {
97
+ inString = true;
98
+ }
99
+ else if (char === '{') {
100
+ depth++;
101
+ }
102
+ else if (char === '}') {
103
+ depth--;
104
+ if (depth === 0) {
105
+ try {
106
+ const parsed = JSON.parse(text.slice(0, i + 1));
107
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
108
+ ? parsed
109
+ : null;
110
+ }
111
+ catch {
112
+ return null;
113
+ }
114
+ }
115
+ }
116
+ }
117
+ return null;
118
+ }
119
+ function extractPlanPhaseIdFromToolResult(resultStr) {
120
+ const candidates = [resultStr];
121
+ try {
122
+ const parsed = JSON.parse(resultStr);
123
+ const entries = Array.isArray(parsed) ? parsed : [parsed];
124
+ for (const entry of entries) {
125
+ if (entry && typeof entry === 'object' && typeof entry.text === 'string') {
126
+ candidates.push(entry.text);
127
+ }
128
+ }
129
+ }
130
+ catch {
131
+ // Fall through to leading-object parsing below.
132
+ }
133
+ for (const candidate of candidates) {
134
+ const trimmed = candidate.trim();
135
+ const parsed = parseLeadingJsonObject(trimmed);
136
+ const planPhaseId = parsed?.planPhaseId;
137
+ if (typeof planPhaseId === 'string' && planPhaseId.trim())
138
+ return planPhaseId.trim();
139
+ }
140
+ return undefined;
141
+ }
142
+ const traceCompletenessProber_1 = require("./traceCompletenessProber");
143
+ const entityCapture_1 = require("../agent/core/entityCapture");
144
+ const outputLanguage_1 = require("./outputLanguage");
145
+ const runtimeSnapshotStore_1 = require("../services/runtimeSnapshotStore");
146
+ const enterpriseMigration_1 = require("../services/enterpriseMigration");
147
+ const SESSION_MAP_FILE = (0, runtimePaths_1.backendLogPath)('claude_session_map.json');
148
+ /** Max age for session map entries before pruning (24 hours). */
149
+ const SESSION_MAP_MAX_AGE_MS = 24 * 60 * 60 * 1000;
150
+ /** Claude SDK sessions expire server-side after roughly 4 hours. */
151
+ const SDK_SESSION_FRESHNESS_MS = 4 * 60 * 60 * 1000;
152
+ function enterpriseSessionMapDbWritesEnabled() {
153
+ return (0, enterpriseMigration_1.enterpriseDbWritesEnabled)();
154
+ }
155
+ function legacySessionMapWritesEnabled() {
156
+ return (0, enterpriseMigration_1.legacyFilesystemWritesEnabled)();
157
+ }
158
+ function loadPersistedSessionMap() {
159
+ try {
160
+ if (fs.existsSync(SESSION_MAP_FILE)) {
161
+ const data = JSON.parse(fs.readFileSync(SESSION_MAP_FILE, 'utf-8'));
162
+ const map = new Map();
163
+ for (const [key, value] of Object.entries(data)) {
164
+ // Migration: old format stored plain string, new format stores {sdkSessionId, updatedAt}
165
+ if (typeof value === 'string') {
166
+ map.set(key, { sdkSessionId: value, updatedAt: Date.now() });
167
+ }
168
+ else if (value && typeof value === 'object') {
169
+ const entry = value;
170
+ if (typeof entry.sdkSessionId !== 'string')
171
+ continue;
172
+ const updatedAt = typeof entry.updatedAt === 'number' && Number.isFinite(entry.updatedAt)
173
+ ? entry.updatedAt
174
+ : Date.now();
175
+ const mode = entry.mode === 'full' ? entry.mode : undefined;
176
+ map.set(key, { sdkSessionId: entry.sdkSessionId, updatedAt, ...(mode ? { mode } : {}) });
177
+ }
178
+ }
179
+ return map;
180
+ }
181
+ }
182
+ catch {
183
+ // Ignore — start with empty map
184
+ }
185
+ return new Map();
186
+ }
187
+ function loadSessionMapForCurrentMode() {
188
+ if ((0, enterpriseMigration_1.legacyFilesystemReadAuthorityEnabled)()) {
189
+ return loadPersistedSessionMap();
190
+ }
191
+ try {
192
+ return (0, runtimeSnapshotStore_1.loadClaudeSessionMapFromRuntimeSnapshots)(SESSION_MAP_MAX_AGE_MS);
193
+ }
194
+ catch (err) {
195
+ console.warn('[ClaudeRuntime] Failed to load runtime_snapshots session map:', err.message);
196
+ }
197
+ return new Map();
198
+ }
199
+ function providerScopeFromOptions(options) {
200
+ if (!options.tenantId || !options.workspaceId)
201
+ return undefined;
202
+ return {
203
+ tenantId: options.tenantId,
204
+ workspaceId: options.workspaceId,
205
+ userId: options.userId,
206
+ };
207
+ }
208
+ function knowledgeScopeFromOptions(options) {
209
+ if (!options.tenantId || !options.workspaceId)
210
+ return undefined;
211
+ return {
212
+ tenantId: options.tenantId,
213
+ workspaceId: options.workspaceId,
214
+ userId: options.userId,
215
+ sourceRunId: options.runId,
216
+ };
217
+ }
218
+ /**
219
+ * Debounce timer for session map persistence — avoids blocking event loop on every SDK message.
220
+ * P2-1: Use a Map keyed by the Map reference to support multiple ClaudeRuntime instances.
221
+ */
222
+ const saveTimers = new WeakMap();
223
+ const SAVE_DEBOUNCE_MS = 2000;
224
+ function savePersistedSessionMap(map) {
225
+ const existing = saveTimers.get(map);
226
+ if (existing)
227
+ clearTimeout(existing);
228
+ saveTimers.set(map, setTimeout(() => {
229
+ saveTimers.delete(map);
230
+ savePersistedSessionMapSync(map);
231
+ }, SAVE_DEBOUNCE_MS));
232
+ }
233
+ /** Immediate save — used by debounce timer and for critical operations (session removal). */
234
+ function savePersistedSessionMapSync(map) {
235
+ try {
236
+ const dir = path.dirname(SESSION_MAP_FILE);
237
+ if (!fs.existsSync(dir))
238
+ fs.mkdirSync(dir, { recursive: true });
239
+ // Prune stale entries before saving
240
+ const now = Date.now();
241
+ for (const [key, entry] of map) {
242
+ if (now - entry.updatedAt > SESSION_MAP_MAX_AGE_MS) {
243
+ map.delete(key);
244
+ }
245
+ }
246
+ const tmpFile = SESSION_MAP_FILE + '.tmp';
247
+ fs.writeFileSync(tmpFile, JSON.stringify(Object.fromEntries(map)));
248
+ fs.renameSync(tmpFile, SESSION_MAP_FILE);
249
+ }
250
+ catch (err) {
251
+ console.warn('[ClaudeRuntime] Failed to persist session map:', err.message);
252
+ }
253
+ }
254
+ // Notes persistence now handled by unified SessionStateSnapshot — no separate disk I/O.
255
+ // The old logs/session_notes/ directory is no longer written to.
256
+ // P2-G1: ALLOWED_TOOLS is now auto-derived from createClaudeMcpServer() return value.
257
+ // No longer hardcoded — adding a new MCP tool automatically includes it.
258
+ /**
259
+ * Format pre-queried trace datasets as Markdown tables to prepend to the AI prompt.
260
+ * Mirrors smartperfetto's approach: data is ready upfront so the AI skips basic SQL turns.
261
+ */
262
+ function formatTraceContext(datasets, outputLanguage = outputLanguage_1.DEFAULT_OUTPUT_LANGUAGE) {
263
+ if (!datasets || datasets.length === 0)
264
+ return '';
265
+ const parts = datasets.map((d) => {
266
+ const header = `| ${d.columns.join(' | ')} |`;
267
+ const sep = `| ${d.columns.map(() => '---').join(' | ')} |`;
268
+ const rows = d.rows.slice(0, 100).map((r) => `| ${r.map((v) => String(v ?? '—')).join(' | ')} |`);
269
+ const truncNote = d.rows.length > 100
270
+ ? (0, outputLanguage_1.localize)(outputLanguage, `\n*(前 100 行,共 ${d.rows.length} 行)*`, `\n*(first 100 rows out of ${d.rows.length})*`)
271
+ : '';
272
+ return `### ${d.label}\n${header}\n${sep}\n${rows.join('\n')}${truncNote}`;
273
+ });
274
+ return (0, outputLanguage_1.localize)(outputLanguage, `## 前端预查询 Trace 数据\n\n以下数据已由前端查询完毕,直接使用,无需重复 SQL 查询:\n\n${parts.join('\n\n')}`, `## Frontend Pre-queried Trace Data\n\nThe frontend has already queried the following data. Use it directly; do not repeat the same SQL query.\n\n${parts.join('\n\n')}`);
275
+ }
276
+ /** Check if an error is retryable (API overload/server errors). */
277
+ function isRetryableError(err) {
278
+ const msg = err.message || '';
279
+ // Anthropic API errors: 529 (overload), 500 (server), 503 (service unavailable)
280
+ return /529|overload|500|server error|503|service unavailable|ECONNRESET|ETIMEDOUT/i.test(msg);
281
+ }
282
+ function getSdkResultErrorMessage(msg) {
283
+ if (!msg || msg.type !== 'result')
284
+ return undefined;
285
+ const subtype = typeof msg.subtype === 'string' ? msg.subtype : 'unknown';
286
+ if (subtype === 'success' || (0, analysisTermination_1.isSdkMaxTurnsSubtype)(subtype))
287
+ return undefined;
288
+ const errors = Array.isArray(msg.errors)
289
+ ? msg.errors.map(formatSdkError).filter(Boolean)
290
+ : [];
291
+ return `Claude analysis error (${subtype}): ${errors.join('; ') || 'Unknown error'}`;
292
+ }
293
+ function formatSdkError(error) {
294
+ if (typeof error === 'string')
295
+ return error;
296
+ if (error instanceof Error)
297
+ return error.message;
298
+ if (error && typeof error === 'object') {
299
+ const maybeMessage = error.message;
300
+ if (typeof maybeMessage === 'string')
301
+ return maybeMessage;
302
+ try {
303
+ return JSON.stringify(error);
304
+ }
305
+ catch {
306
+ return String(error);
307
+ }
308
+ }
309
+ return String(error);
310
+ }
311
+ function isMissingSdkConversationError(message) {
312
+ return /No conversation found with session ID/i.test(message);
313
+ }
314
+ function isFreshFullSdkSessionEntry(entry, now = Date.now()) {
315
+ return !!entry
316
+ && entry.mode === 'full'
317
+ && now - (entry.updatedAt || 0) < SDK_SESSION_FRESHNESS_MS;
318
+ }
319
+ function compactForPrompt(value, maxChars) {
320
+ const text = String(value ?? '').replace(/\s+/g, ' ').trim();
321
+ if (text.length <= maxChars)
322
+ return text;
323
+ return `${text.slice(0, Math.max(0, maxChars - 1))}...`;
324
+ }
325
+ function buildQuickConversationContext(previousTurns, outputLanguage = outputLanguage_1.DEFAULT_OUTPUT_LANGUAGE) {
326
+ const turns = previousTurns.filter(turn => turn.completed).slice(-3);
327
+ if (turns.length === 0)
328
+ return undefined;
329
+ const lines = [
330
+ (0, outputLanguage_1.localize)(outputLanguage, '## 最近对话上下文\n\n以下是 SmartPerfetto 本地保存的最近问答,用于理解“继续/刚才/这个”等指代;不要把它当作当前问题的新证据。', '## Recent Conversation Context\n\nThe following recent SmartPerfetto turns are local context for references like "continue", "earlier", or "this"; do not treat them as new evidence for the current question.'),
331
+ ];
332
+ for (const turn of turns) {
333
+ const query = compactForPrompt(turn.query, 220);
334
+ const answer = compactForPrompt(turn.result?.message || '', 700);
335
+ const findings = turn.findings
336
+ .slice(0, 3)
337
+ .map(f => `[${f.severity}] ${compactForPrompt(f.title, 160)}`)
338
+ .filter(Boolean);
339
+ lines.push(`### Turn ${turn.turnIndex + 1}`);
340
+ lines.push(`- ${(0, outputLanguage_1.localize)(outputLanguage, '用户', 'User')}: ${query}`);
341
+ if (answer) {
342
+ lines.push(`- ${(0, outputLanguage_1.localize)(outputLanguage, '上轮回答', 'Previous answer')}: ${answer}`);
343
+ }
344
+ if (findings.length > 0) {
345
+ lines.push(`- ${(0, outputLanguage_1.localize)(outputLanguage, '上轮发现', 'Previous findings')}: ${findings.join('; ')}`);
346
+ }
347
+ }
348
+ return lines.join('\n');
349
+ }
350
+ exports.__testing = {
351
+ getSdkResultErrorMessage,
352
+ isMissingSdkConversationError,
353
+ isFreshFullSdkSessionEntry,
354
+ buildQuickConversationContext,
355
+ };
356
+ /** Sleep for the given milliseconds. */
357
+ function sleep(ms) {
358
+ return new Promise(resolve => setTimeout(resolve, ms));
359
+ }
360
+ /**
361
+ * Wrap sdkQuery with exponential backoff retry for transient API errors
362
+ * and expose a `close()` handle so timeout/abort paths can terminate the
363
+ * SDK subprocess instead of just breaking out of the `for await` loop.
364
+ *
365
+ * Without `close()`, a consumer that `break`s out of the iterator leaves
366
+ * the SDK free to continue executing queued MCP tool calls (e.g.
367
+ * `execute_sql`). Those "ghost" calls hit trace_processor after the
368
+ * session logger has closed, producing orphan errors no one handles.
369
+ */
370
+ function sdkQueryWithRetry(params, options = {}) {
371
+ const { maxRetries = 2, baseDelayMs = 2000, emitUpdate, outputLanguage = (0, claudeConfig_1.loadClaudeConfig)().outputLanguage } = options;
372
+ const queryOptions = params.options ?? {};
373
+ const binaryOpt = (0, claudeConfig_1.getSdkBinaryOption)(queryOptions.env);
374
+ const mergedParams = binaryOpt.pathToClaudeCodeExecutable
375
+ ? { ...params, options: { ...queryOptions, ...binaryOpt } }
376
+ : params;
377
+ // Tracks the Query instance currently being iterated so `close()` can
378
+ // forward termination to the underlying SDK subprocess across retries.
379
+ let currentQuery;
380
+ let closed = false;
381
+ // We can't directly retry an async iterable, so we use a generator wrapper.
382
+ // On the first call to next(), we attempt sdkQuery. If it throws, we retry.
383
+ async function* retryableStream() {
384
+ let lastErr;
385
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
386
+ if (closed)
387
+ return;
388
+ try {
389
+ currentQuery = (0, claude_agent_sdk_1.query)(mergedParams);
390
+ // Yield all messages from the stream
391
+ for await (const msg of currentQuery) {
392
+ if (closed)
393
+ return;
394
+ yield msg;
395
+ }
396
+ return; // Success — exit generator
397
+ }
398
+ catch (err) {
399
+ lastErr = err;
400
+ // If the caller invoked close(), treat the resulting error as
401
+ // intentional termination rather than a retryable failure.
402
+ if (closed)
403
+ return;
404
+ if (isRetryableError(lastErr) && attempt < maxRetries) {
405
+ const delay = baseDelayMs * Math.pow(2, attempt);
406
+ console.warn(`[ClaudeRuntime] API error (attempt ${attempt + 1}/${maxRetries + 1}): ${lastErr.message}. Retrying in ${delay}ms...`);
407
+ emitUpdate?.({
408
+ type: 'progress',
409
+ content: {
410
+ phase: 'starting',
411
+ message: (0, outputLanguage_1.localize)(outputLanguage, `API 暂时不可用,${Math.round(delay / 1000)}s 后重试 (${attempt + 1}/${maxRetries})...`, `API is temporarily unavailable. Retrying in ${Math.round(delay / 1000)}s (${attempt + 1}/${maxRetries})...`),
412
+ },
413
+ timestamp: Date.now(),
414
+ });
415
+ await sleep(delay);
416
+ continue;
417
+ }
418
+ throw lastErr; // Non-retryable or max retries exceeded
419
+ }
420
+ }
421
+ if (lastErr)
422
+ throw lastErr;
423
+ }
424
+ return {
425
+ stream: retryableStream(),
426
+ close: () => {
427
+ if (closed)
428
+ return; // Idempotent — safe to call from timeout handler AND finally.
429
+ closed = true;
430
+ try {
431
+ currentQuery?.close();
432
+ }
433
+ catch (err) {
434
+ console.warn('[ClaudeRuntime] sdkQueryWithRetry close() failed (non-fatal):', err.message);
435
+ }
436
+ },
437
+ };
438
+ }
439
+ /**
440
+ * Claude Agent SDK runtime for SmartPerfetto.
441
+ * Claude SDK orchestrator implementation behind the shared IOrchestrator contract.
442
+ * Implements the same EventEmitter + analyze() interface as AgentRuntime.
443
+ */
444
+ class ClaudeRuntime extends events_1.EventEmitter {
445
+ constructor(traceProcessorService, config) {
446
+ super();
447
+ /** Cache architecture detection results per traceId (deterministic per trace). */
448
+ this.architectureCache = new Map();
449
+ /** Cache vendor detection results per traceId (deterministic per trace). */
450
+ this.vendorCache = new Map();
451
+ /** Cache trace completeness probe results per traceId (deterministic per trace). */
452
+ this.completenessCache = new Map();
453
+ /** Per-session artifact stores — persist across turns within a session. */
454
+ this.artifactStores = new Map();
455
+ /** Per-session analysis notes — persist across turns within a session. */
456
+ this.sessionNotes = new Map();
457
+ /** Per-session SQL error tracking for error-fix pair learning. */
458
+ this.sessionSqlErrors = new Map();
459
+ /** Per-session analysis plans for plan adherence tracking. */
460
+ this.sessionPlans = new Map();
461
+ /** Per-session hypotheses for hypothesis-verify cycle (P0-G4). */
462
+ this.sessionHypotheses = new Map();
463
+ /** Per-session uncertainty flags for non-blocking human interaction (P1-G1). */
464
+ this.sessionUncertaintyFlags = new Map();
465
+ /** Guard against concurrent analyze() calls for the same session. */
466
+ this.activeAnalyses = new Set();
467
+ this.traceProcessorService = traceProcessorService;
468
+ this.config = (0, claudeConfig_1.loadClaudeConfig)(config);
469
+ this.sessionMap = loadSessionMapForCurrentMode();
470
+ }
471
+ /** Restore a previously persisted SDK session mapping (e.g., after server restart). */
472
+ restoreSessionMapping(smartPerfettoSessionId, sdkSessionId) {
473
+ this.sessionMap.set(smartPerfettoSessionId, { sdkSessionId, updatedAt: Date.now(), mode: 'full' });
474
+ }
475
+ /** Restore a cached architecture detection result (e.g., from session persistence). */
476
+ restoreArchitectureCache(traceId, architecture) {
477
+ this.architectureCache.set(traceId, architecture);
478
+ }
479
+ /** Get cached architecture for a traceId (used for persistence). */
480
+ getCachedArchitecture(traceId) {
481
+ return this.architectureCache.get(traceId);
482
+ }
483
+ /** Get SDK session ID for persistence. */
484
+ getSdkSessionId(smartPerfettoSessionId, referenceTraceId) {
485
+ const entry = this.sessionMap.get(this.buildSessionMapKey(smartPerfettoSessionId, referenceTraceId));
486
+ return isFreshFullSdkSessionEntry(entry) ? entry.sdkSessionId : undefined;
487
+ }
488
+ buildSessionMapKey(sessionId, referenceTraceId) {
489
+ return referenceTraceId ? `${sessionId}:ref:${referenceTraceId}` : sessionId;
490
+ }
491
+ persistSessionMapEntry(sessionId, traceId, sessionMapKey, entry, options) {
492
+ if (legacySessionMapWritesEnabled()) {
493
+ savePersistedSessionMap(this.sessionMap);
494
+ }
495
+ if (!enterpriseSessionMapDbWritesEnabled())
496
+ return;
497
+ if (!options.tenantId || !options.workspaceId) {
498
+ console.warn('[ClaudeRuntime] Enterprise session map persistence skipped: missing tenant/workspace scope');
499
+ return;
500
+ }
501
+ try {
502
+ (0, runtimeSnapshotStore_1.saveClaudeSessionMapToRuntimeSnapshots)({
503
+ tenantId: options.tenantId,
504
+ workspaceId: options.workspaceId,
505
+ userId: options.userId,
506
+ sessionId,
507
+ runId: options.runId,
508
+ traceId,
509
+ }, sessionMapKey, entry);
510
+ }
511
+ catch (err) {
512
+ console.warn('[ClaudeRuntime] Failed to persist session map to runtime_snapshots:', err.message);
513
+ }
514
+ }
515
+ rememberFullSdkSessionMapping(sessionId, traceId, sessionMapKey, sdkSessionId, options) {
516
+ const entry = { sdkSessionId, updatedAt: Date.now(), mode: 'full' };
517
+ this.sessionMap.set(sessionMapKey, entry);
518
+ this.persistSessionMapEntry(sessionId, traceId, sessionMapKey, entry, options);
519
+ }
520
+ forgetSdkSessionMapping(sessionId, sessionMapKey, reason, options = {}) {
521
+ const removed = this.sessionMap.delete(sessionMapKey);
522
+ if (legacySessionMapWritesEnabled()) {
523
+ savePersistedSessionMapSync(this.sessionMap);
524
+ }
525
+ if (enterpriseSessionMapDbWritesEnabled()) {
526
+ try {
527
+ (0, runtimeSnapshotStore_1.deleteClaudeSessionMapRuntimeSnapshot)(sessionId, sessionMapKey, providerScopeFromOptions(options));
528
+ }
529
+ catch (err) {
530
+ console.warn('[ClaudeRuntime] Failed to delete stale SDK session map from runtime_snapshots:', err.message);
531
+ }
532
+ }
533
+ console.warn(`[ClaudeRuntime] Discarded stale SDK session mapping for ${sessionMapKey}` +
534
+ `${removed ? '' : ' (not present in memory)'}: ${reason}`);
535
+ }
536
+ async retryWithoutSdkResume(params) {
537
+ this.forgetSdkSessionMapping(params.sessionId, params.sessionMapKey, params.errorMessage, params.options);
538
+ this.emitUpdate({
539
+ type: 'degraded',
540
+ content: {
541
+ module: 'claudeRuntime',
542
+ fallback: 'fresh_sdk_session_after_missing_conversation',
543
+ error: 'missing_sdk_conversation',
544
+ mode: params.mode,
545
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, 'Claude 远端对话已不可用,已清理旧会话并使用本地持久化上下文重新发起分析...', 'Claude remote conversation is no longer available. Retrying with persisted local context in a fresh SDK session...'),
546
+ },
547
+ timestamp: Date.now(),
548
+ });
549
+ this.activeAnalyses.delete(params.sessionId);
550
+ strategyFingerprint_1.runSnapshots.release(params.sessionId);
551
+ return this.analyze(params.query, params.sessionId, params.traceId, params.options);
552
+ }
553
+ removeSessionMapEntries(sessionId) {
554
+ const referencePrefix = `${sessionId}:ref:`;
555
+ for (const key of [...this.sessionMap.keys()]) {
556
+ if (key === sessionId || key.startsWith(referencePrefix)) {
557
+ this.sessionMap.delete(key);
558
+ }
559
+ }
560
+ }
561
+ async analyze(query, sessionId, traceId, options = {}) {
562
+ // Prevent concurrent analyze() calls for the same session
563
+ if (this.activeAnalyses.has(sessionId)) {
564
+ throw new Error(`Analysis already in progress for session ${sessionId}`);
565
+ }
566
+ this.activeAnalyses.add(sessionId);
567
+ const startTime = Date.now();
568
+ const allFindings = [];
569
+ let conclusionText = '';
570
+ let sdkSessionId;
571
+ let rounds = 0;
572
+ let delegatedRetry = false;
573
+ const metricsCollector = new agentMetrics_1.AgentMetricsCollector(sessionId);
574
+ try {
575
+ // Phase 0: Complexity classification — runs in parallel with early context prep
576
+ const sessionContext = enhancedSessionContext_1.sessionContextManager.getOrCreate(sessionId, traceId);
577
+ const previousTurns = sessionContext.getAllTurns?.() || [];
578
+ const sceneType = (0, sceneClassifier_1.classifyScene)(query);
579
+ // Freeze the strategy version for the duration of this analyze() call so
580
+ // a hot-reload mid-flight can't split-brain the agent's reasoning.
581
+ strategyFingerprint_1.runSnapshots.capture(sessionId, sceneType);
582
+ const classifierInput = {
583
+ query,
584
+ sceneType,
585
+ hasSelectionContext: !!options.selectionContext,
586
+ selectionContext: options.selectionContext,
587
+ hasReferenceTrace: !!options.referenceTraceId,
588
+ // Only count findings from full (non-simple) turns as "existing findings" for drill-down detection
589
+ hasExistingFindings: previousTurns.some(t => t.intent?.complexity !== 'simple' && t.findings?.length > 0),
590
+ // Distinguish: only full analysis turns trigger multi-turn continuity (not prior quick turns)
591
+ hasPriorFullAnalysis: previousTurns.some(t => t.intent?.complexity !== 'simple'),
592
+ };
593
+ const cachedArch = this.architectureCache.get(traceId);
594
+ // Focus detection runs for every path — kick it off once and let the classifier
595
+ // (if needed) share the wait. Explicit 'fast'/'full' skips the classifier entirely.
596
+ const explicitMode = options.analysisMode;
597
+ const focusPromise = (0, focusAppDetector_1.detectFocusApps)(this.traceProcessorService, traceId).catch((err) => {
598
+ console.warn('[ClaudeRuntime] Focus app detection failed (graceful):', err.message);
599
+ return { apps: [], primaryApp: undefined, method: 'none' };
600
+ });
601
+ const providerScope = providerScopeFromOptions(options);
602
+ const runtimeConfig = (0, claudeConfig_1.resolveRuntimeConfig)(this.config, options.providerId, providerScope);
603
+ let queryComplexity;
604
+ let classifierSource;
605
+ let classifierReason;
606
+ if (explicitMode === 'fast' || explicitMode === 'full') {
607
+ queryComplexity = explicitMode === 'fast' ? 'quick' : 'full';
608
+ classifierSource = 'user_explicit';
609
+ classifierReason = `user requested ${explicitMode}`;
610
+ }
611
+ else {
612
+ const classifierResult = await (0, queryComplexityClassifier_1.classifyQueryComplexity)(classifierInput, runtimeConfig);
613
+ queryComplexity = classifierResult.complexity;
614
+ classifierSource = classifierResult.source;
615
+ classifierReason = classifierResult.reason;
616
+ }
617
+ const focusResult = await focusPromise;
618
+ const displayMode = explicitMode ?? 'auto';
619
+ console.log(`[ClaudeRuntime] Query complexity: ${queryComplexity} ` +
620
+ `(mode: ${displayMode}, source: ${classifierSource}, reason: ${classifierReason})`);
621
+ metricsCollector.recordAnalysisMode(displayMode, classifierSource);
622
+ // Quick path: lightweight analysis for simple factual queries
623
+ if (queryComplexity === 'quick') {
624
+ return await this.analyzeQuick(query, sessionId, traceId, options, {
625
+ sceneType,
626
+ focusResult,
627
+ cachedArch,
628
+ sessionContext,
629
+ previousTurns,
630
+ metricsCollector,
631
+ startTime,
632
+ });
633
+ }
634
+ // Full path: original comprehensive analysis pipeline
635
+ const ctx = await this.prepareAnalysisContext(query, sessionId, traceId, options, {
636
+ focusResult,
637
+ sessionContext,
638
+ previousTurns,
639
+ sceneType,
640
+ });
641
+ const { handleMessage: bridge, getAccumulatedAnswer } = (0, claudeSseBridge_1.createSseBridge)((update) => {
642
+ this.emitUpdate(update);
643
+ if (update.type === 'agent_response' && update.content?.result) {
644
+ try {
645
+ const parsed = typeof update.content.result === 'string'
646
+ ? JSON.parse(update.content.result)
647
+ : update.content.result;
648
+ if (parsed?.success && parsed?.skillId) {
649
+ allFindings.push((0, claudeFindingExtractor_1.extractFindingsFromSkillResult)(parsed));
650
+ }
651
+ if (parsed?.success && parsed?.displayResults) {
652
+ this.captureEntitiesFromSkillDisplayResults(parsed.displayResults, ctx.entityStore);
653
+ }
654
+ }
655
+ catch {
656
+ // Not a skill result — ignore
657
+ }
658
+ }
659
+ }, this.config.outputLanguage);
660
+ this.emitUpdate({
661
+ type: 'progress',
662
+ content: {
663
+ phase: 'starting',
664
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, `使用 ${runtimeConfig.model} 开始分析 (effort: ${ctx.effectiveEffort})...`, `Starting analysis with ${runtimeConfig.model} (effort: ${ctx.effectiveEffort})...`),
665
+ },
666
+ timestamp: Date.now(),
667
+ });
668
+ // Reuse composite key from prepareAnalysisContext for comparison mode session identity isolation
669
+ const existingSessionMapEntry = this.sessionMap.get(ctx.sessionMapKey);
670
+ const existingSdkSessionId = isFreshFullSdkSessionEntry(existingSessionMapEntry)
671
+ ? existingSessionMapEntry.sdkSessionId
672
+ : undefined;
673
+ let missingSdkConversationError;
674
+ if (existingSessionMapEntry && existingSdkSessionId && enterpriseSessionMapDbWritesEnabled()) {
675
+ this.persistSessionMapEntry(sessionId, traceId, ctx.sessionMapKey, existingSessionMapEntry, options);
676
+ }
677
+ // When resuming an SDK session, systemPrompt is ignored by the SDK (mutually exclusive).
678
+ // Prepend selectionContext directly into the prompt so the AI sees it in the conversation.
679
+ let effectivePrompt = query;
680
+ if (existingSdkSessionId && options.selectionContext) {
681
+ const selSection = (0, claudeSystemPrompt_1.buildSelectionContextSection)(options.selectionContext);
682
+ if (selSection) {
683
+ effectivePrompt = `${selSection}\n\n${query}`;
684
+ }
685
+ }
686
+ // Prepend pre-queried trace data so the AI has all context without spending turns on SQL
687
+ if (options.traceContext && options.traceContext.length > 0) {
688
+ const traceSection = formatTraceContext(options.traceContext, this.config.outputLanguage);
689
+ effectivePrompt = `${traceSection}\n\n${effectivePrompt}`;
690
+ }
691
+ const sdkEnv = (0, claudeConfig_1.createSdkEnv)(options.providerId, providerScope);
692
+ const { stream, close: closeSdk } = sdkQueryWithRetry({
693
+ prompt: effectivePrompt,
694
+ options: {
695
+ model: runtimeConfig.model,
696
+ maxTurns: runtimeConfig.maxTurns,
697
+ systemPrompt: ctx.systemPrompt,
698
+ mcpServers: { smartperfetto: ctx.mcpServer },
699
+ includePartialMessages: true,
700
+ permissionMode: 'bypassPermissions',
701
+ allowDangerouslySkipPermissions: true,
702
+ cwd: runtimeConfig.cwd,
703
+ effort: ctx.effectiveEffort,
704
+ allowedTools: ctx.allowedTools,
705
+ env: sdkEnv,
706
+ stderr: (data) => {
707
+ console.warn(`[ClaudeRuntime] SDK stderr [${sessionId}]: ${data.trimEnd()}`);
708
+ },
709
+ ...(runtimeConfig.maxBudgetUsd ? { maxBudgetUsd: runtimeConfig.maxBudgetUsd } : {}),
710
+ ...(existingSdkSessionId ? { resume: existingSdkSessionId } : {}),
711
+ ...(ctx.agents ? { agents: ctx.agents } : {}),
712
+ },
713
+ }, {
714
+ emitUpdate: (update) => this.emitUpdate(update),
715
+ outputLanguage: this.config.outputLanguage,
716
+ });
717
+ let finalResult;
718
+ let terminationReason;
719
+ let terminationMessage;
720
+ // Safety timeout with stream cancellation via Promise.race.
721
+ // Per-turn budget is env-configurable (CLAUDE_FULL_PER_TURN_MS, default 60s) so slower
722
+ // LLMs (DeepSeek / Ollama / GLM) have room per turn without false timeouts.
723
+ // Scrolling deep-drill (hypothesis + SQL + knowledge + conclusion) still needs ~6-8 min.
724
+ const timeoutMs = (runtimeConfig.maxTurns || 15) * runtimeConfig.fullPathPerTurnMs;
725
+ let timedOut = false;
726
+ // Sub-agent timeout tracking — stop tasks that exceed subAgentTimeoutMs
727
+ const activeSubAgentTimers = new Map();
728
+ const subAgentTimeoutMs = runtimeConfig.subAgentTimeoutMs;
729
+ // P2-1: Turn-level autonomy watchdog — detect repetitive tool failures
730
+ // P1-G2: Per-tool tracking — each tool gets its own failure tracking
731
+ const toolCallHistory = [];
732
+ const WATCHDOG_WINDOW = 3; // consecutive same-tool failures to trigger warning
733
+ const watchdogFiredTools = new Set(); // tracks which tools have triggered warnings
734
+ // P0-G16: Circuit breaker — overall tool call failure rate monitoring
735
+ let circuitBreakerFires = 0;
736
+ const MAX_CIRCUIT_BREAKER_FIRES = 2;
737
+ const CIRCUIT_BREAKER_WINDOW = 5;
738
+ const CIRCUIT_BREAKER_THRESHOLD = 0.6; // 60% failure rate
739
+ let lastCircuitBreakerFireIdx = -Infinity;
740
+ // P1: Negative memory — collect failed approaches for cross-session learning
741
+ const failedApproaches = [];
742
+ /** Track whether SDK auto-compact has fired during this turn.
743
+ * When true, the SDK has summarized prior conversation history,
744
+ * potentially losing early-turn details. We log this for diagnostics. */
745
+ let sdkCompactDetected = false;
746
+ const turnMetricsList = [];
747
+ let currentTurnMetrics = null;
748
+ let turnCounter = 0;
749
+ let firstTokenReceived = false;
750
+ // Phase 3-3 of v2.1 (monitor-only): track when the running conversation
751
+ // crosses the pre-rot threshold so prod can quantify how often we *would*
752
+ // have benefited from an interrupt+resume cycle. The actual interrupt+
753
+ // resume orchestration is intentionally not wired yet — see
754
+ // `docs/archive/context-engineering/v2.1-phase-3-active-compact-design.md`. Disable by setting
755
+ // `CLAUDE_PRECOMPACT_WARN_ENABLED=false`.
756
+ let preCompactWarned = false;
757
+ const preCompactWarnEnabled = process.env.CLAUDE_PRECOMPACT_WARN_ENABLED !== 'false';
758
+ const emitUpdate = this.emitUpdate.bind(this);
759
+ const outputLanguage = this.config.outputLanguage;
760
+ function checkContextPressure() {
761
+ if (!preCompactWarnEnabled || preCompactWarned)
762
+ return;
763
+ const cumulativeUncached = turnMetricsList.reduce((acc, t) => acc + (t.inputTokens ?? 0), 0);
764
+ const cumulativeCacheCreation = turnMetricsList.reduce((acc, t) => acc + (t.cacheCreationTokens ?? 0), 0);
765
+ const cumulativePayloadBytes = turnMetricsList.reduce((acc, t) => acc + t.toolResultPayloadBytes, 0);
766
+ const decision = (0, contextTokenMeter_1.evaluateThreshold)({
767
+ uncachedInputTokens: cumulativeUncached,
768
+ cacheCreationInputTokens: cumulativeCacheCreation,
769
+ recentToolPayloadBytes: cumulativePayloadBytes,
770
+ });
771
+ if (decision.shouldPrecompact) {
772
+ preCompactWarned = true;
773
+ console.warn(`[ClaudeRuntime] Session ${sessionId}: pre-rot threshold crossed ` +
774
+ `(pressure=${decision.pressureTokens} / ${decision.thresholdTokens} tokens, ratio=${decision.pressureRatio.toFixed(2)}). ` +
775
+ `Phase 3-3 will eventually interrupt+resume here; for now we only log.`);
776
+ emitUpdate({
777
+ type: 'progress',
778
+ content: {
779
+ phase: 'analyzing',
780
+ message: (0, outputLanguage_1.localize)(outputLanguage, `⚠️ 接近上下文上限(已用 ${(decision.pressureRatio * 100).toFixed(0)}%),后续轮次可能因压缩丢失细节`, `⚠️ Context window is close to its limit (${(decision.pressureRatio * 100).toFixed(0)}% used); later turns may lose details after compaction`),
781
+ },
782
+ timestamp: Date.now(),
783
+ });
784
+ }
785
+ }
786
+ function findToolCallForResult(toolUseId) {
787
+ if (toolUseId) {
788
+ for (let i = toolCallHistory.length - 1; i >= 0; i--) {
789
+ if (toolCallHistory[i].id === toolUseId)
790
+ return toolCallHistory[i];
791
+ }
792
+ }
793
+ for (let i = toolCallHistory.length - 1; i >= 0; i--) {
794
+ if (!toolCallHistory[i].completed)
795
+ return toolCallHistory[i];
796
+ }
797
+ return toolCallHistory[toolCallHistory.length - 1];
798
+ }
799
+ function finalizeTurnMetrics() {
800
+ if (currentTurnMetrics) {
801
+ currentTurnMetrics.durationMs = Date.now() - currentTurnMetrics.startMs;
802
+ turnMetricsList.push(currentTurnMetrics);
803
+ checkContextPressure();
804
+ }
805
+ }
806
+ const processStream = async () => {
807
+ for await (const msg of stream) {
808
+ if (timedOut)
809
+ break; // P0-1: Actually cancel stream on timeout
810
+ // Detect SDK auto-compact boundary — conversation history was summarized
811
+ if (msg.type === 'system' && msg.subtype === 'compact_boundary') {
812
+ sdkCompactDetected = true;
813
+ console.warn(`[ClaudeRuntime] SDK auto-compact detected for session ${sessionId} — prior turns summarized`);
814
+ }
815
+ if (msg.session_id && !sdkSessionId) {
816
+ sdkSessionId = msg.session_id;
817
+ this.rememberFullSdkSessionMapping(sessionId, traceId, ctx.sessionMapKey, sdkSessionId, options);
818
+ }
819
+ const sdkResultError = getSdkResultErrorMessage(msg);
820
+ if (sdkResultError && existingSdkSessionId && isMissingSdkConversationError(sdkResultError)) {
821
+ if (msg.type === 'result') {
822
+ finalizeTurnMetrics();
823
+ currentTurnMetrics = null;
824
+ metricsCollector.recordSdkUsage({
825
+ usage: msg.usage,
826
+ modelUsage: msg.modelUsage,
827
+ total_cost_usd: msg.total_cost_usd,
828
+ });
829
+ }
830
+ missingSdkConversationError = sdkResultError;
831
+ continue;
832
+ }
833
+ // Track sub-agent lifecycle for per-agent timeouts
834
+ if (msg.type === 'system' && msg.subtype === 'task_started') {
835
+ const taskId = msg.task_id;
836
+ if (taskId && subAgentTimeoutMs > 0) {
837
+ const timer = setTimeout(() => {
838
+ console.warn(`[ClaudeRuntime] Sub-agent timeout: stopping task ${taskId} after ${subAgentTimeoutMs / 1000}s`);
839
+ activeSubAgentTimers.delete(taskId);
840
+ if (typeof stream.stopTask === 'function') {
841
+ stream.stopTask(taskId).catch((err) => {
842
+ console.warn(`[ClaudeRuntime] Failed to stop sub-agent task ${taskId}:`, err.message);
843
+ });
844
+ }
845
+ // P1-6: Record timeout as a finding so it's reflected in confidence
846
+ allFindings.push([{
847
+ id: `sub-agent-timeout-${taskId}`,
848
+ title: (0, outputLanguage_1.localize)(this.config.outputLanguage, '子代理超时', 'Sub-agent timeout'),
849
+ severity: 'medium',
850
+ category: 'sub-agent',
851
+ description: (0, outputLanguage_1.localize)(this.config.outputLanguage, `子代理 ${taskId} 超时 (${subAgentTimeoutMs / 1000}s),分析可能不完整`, `Sub-agent ${taskId} timed out (${subAgentTimeoutMs / 1000}s); the analysis may be incomplete`),
852
+ confidence: 0.3,
853
+ }]);
854
+ this.emitUpdate({
855
+ type: 'progress',
856
+ content: {
857
+ phase: 'analyzing',
858
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, `子代理超时 (${subAgentTimeoutMs / 1000}s),已停止`, `Sub-agent timed out (${subAgentTimeoutMs / 1000}s) and was stopped`),
859
+ },
860
+ timestamp: Date.now(),
861
+ });
862
+ }, subAgentTimeoutMs);
863
+ activeSubAgentTimers.set(taskId, timer);
864
+ }
865
+ }
866
+ if (msg.type === 'system' && msg.subtype === 'task_notification') {
867
+ const taskId = msg.task_id;
868
+ if (taskId) {
869
+ const timer = activeSubAgentTimers.get(taskId);
870
+ if (timer) {
871
+ clearTimeout(timer);
872
+ activeSubAgentTimers.delete(taskId);
873
+ }
874
+ }
875
+ // P1-5: Extract findings from sub-agent completion summaries.
876
+ // Without this, sub-agent evidence is only in the conclusion text
877
+ // and not merged into allFindings for confidence estimation.
878
+ const summary = msg.summary || '';
879
+ const status = msg.status || 'completed';
880
+ if (status === 'completed' && summary) {
881
+ allFindings.push((0, claudeFindingExtractor_1.extractFindingsFromText)(summary));
882
+ }
883
+ }
884
+ // Bridge SDK messages to SSE events
885
+ try {
886
+ bridge(msg);
887
+ }
888
+ catch (bridgeErr) {
889
+ console.warn('[ClaudeRuntime] SSE bridge error (non-fatal):', bridgeErr.message);
890
+ }
891
+ // ── Per-turn metrics: track stream_event signals ──
892
+ if (msg.type === 'stream_event' && currentTurnMetrics) {
893
+ const event = msg.event;
894
+ // First token latency
895
+ if (!firstTokenReceived &&
896
+ event?.type === 'content_block_delta' &&
897
+ (event.delta?.type === 'text_delta' || event.delta?.type === 'tool_use')) {
898
+ firstTokenReceived = true;
899
+ currentTurnMetrics.firstTokenLatencyMs = Date.now() - currentTurnMetrics.startMs;
900
+ }
901
+ // Extended thinking detection
902
+ if (event?.type === 'content_block_start' && event.content_block?.type === 'thinking') {
903
+ currentTurnMetrics.hasExtendedThinking = true;
904
+ }
905
+ }
906
+ // assistant message = new turn starts; finalize previous turn + watchdog tracking
907
+ if (msg.type === 'assistant' && Array.isArray(msg.message?.content)) {
908
+ finalizeTurnMetrics();
909
+ turnCounter++;
910
+ firstTokenReceived = false;
911
+ const toolNames = [];
912
+ for (const block of msg.message.content) {
913
+ if (block.type === 'tool_use') {
914
+ toolNames.push(block.name.replace(claudeMcpServer_1.MCP_NAME_PREFIX, ''));
915
+ // P2-1: Watchdog — track tool calls for repetitive failure detection
916
+ toolCallHistory.push({
917
+ id: block.id,
918
+ name: block.name,
919
+ success: true,
920
+ startTime: Date.now(),
921
+ input: block.input,
922
+ });
923
+ }
924
+ }
925
+ currentTurnMetrics = {
926
+ turnIndex: turnCounter,
927
+ startMs: Date.now(),
928
+ toolCalls: toolNames,
929
+ toolResultPayloadBytes: 0,
930
+ hasExtendedThinking: false,
931
+ };
932
+ }
933
+ if (msg.type === 'user' && msg.tool_use_result !== undefined) {
934
+ const resultBlocks = (0, claudeSseBridge_1.extractSdkToolResultBlocks)(msg);
935
+ const observedResults = resultBlocks.length > 0
936
+ ? resultBlocks
937
+ : [{ result: msg.tool_use_result, isError: undefined, toolUseId: undefined }];
938
+ for (const observed of observedResults) {
939
+ const resultStr = (0, claudeSseBridge_1.stringifySdkToolResult)(observed.result);
940
+ // Per-turn metrics: track tool result payload size
941
+ if (currentTurnMetrics) {
942
+ currentTurnMetrics.toolResultPayloadBytes += Buffer.byteLength(resultStr, 'utf-8');
943
+ }
944
+ const isFailed = observed.isError === true ||
945
+ resultStr.includes('"success":false') ||
946
+ resultStr.includes('"isError":true');
947
+ const matchedTool = findToolCallForResult(observed.toolUseId);
948
+ if (matchedTool) {
949
+ matchedTool.success = !isFailed;
950
+ matchedTool.completed = true;
951
+ // Record tool execution in metrics collector (stream-observed timing)
952
+ const toolName = matchedTool.name.replace(claudeMcpServer_1.MCP_NAME_PREFIX, '');
953
+ const durationMs = matchedTool.startTime ? Date.now() - matchedTool.startTime : 0;
954
+ metricsCollector.recordToolFromStream(toolName, durationMs, !isFailed);
955
+ }
956
+ // Check for consecutive same-tool failures (P1-G2: per-tool tracking)
957
+ if (toolCallHistory.length >= WATCHDOG_WINDOW) {
958
+ const recent = toolCallHistory.slice(-WATCHDOG_WINDOW);
959
+ const allSameTool = recent.every(t => t.name === recent[0].name);
960
+ const allFailed = recent.every(t => !t.success);
961
+ const toolName = recent[0].name.replace(claudeMcpServer_1.MCP_NAME_PREFIX, '');
962
+ if (allSameTool && allFailed && !watchdogFiredTools.has(toolName)) {
963
+ watchdogFiredTools.add(toolName);
964
+ console.warn(`[ClaudeRuntime] Watchdog: ${WATCHDOG_WINDOW} consecutive failures for ${toolName}`);
965
+ // P1-2: Inject warning into next MCP tool result (Claude reads this)
966
+ ctx.watchdogWarning.current = (0, outputLanguage_1.localize)(this.config.outputLanguage, `${toolName} 已连续失败 ${WATCHDOG_WINDOW} 次。请切换分析策略:尝试不同的 SQL 查询、使用其他 skill、或调整参数。不要重复相同的失败操作。`, `${toolName} has failed ${WATCHDOG_WINDOW} times in a row. Switch analysis strategy: try a different SQL query, use another skill, or adjust parameters. Do not repeat the same failed action.`);
967
+ // P1: Record for negative memory
968
+ failedApproaches.push({
969
+ type: 'tool_failure',
970
+ approach: `连续调用 ${toolName} ${WATCHDOG_WINDOW} 次均失败`,
971
+ reason: '同一工具重复失败,需要切换策略',
972
+ });
973
+ this.emitUpdate({
974
+ type: 'progress',
975
+ content: {
976
+ phase: 'analyzing',
977
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, `⚠ 检测到 ${toolName} 连续 ${WATCHDOG_WINDOW} 次失败,已注入策略切换指令`, `⚠ Detected ${WATCHDOG_WINDOW} consecutive failures for ${toolName}; injected a strategy-switch instruction`),
978
+ },
979
+ timestamp: Date.now(),
980
+ });
981
+ }
982
+ }
983
+ // Track tool call for plan adherence with phase matching (P0-1 + P1-1)
984
+ // P1-G5: Best-fit phase-tool matching — search all eligible phases, not just first
985
+ if (ctx.analysisPlan.current && matchedTool) {
986
+ const plan = ctx.analysisPlan.current;
987
+ const shortToolName = matchedTool.name.replace(claudeMcpServer_1.MCP_NAME_PREFIX, '');
988
+ const callSummary = (0, toolCallSummary_1.summarizeToolCallInput)(shortToolName, matchedTool.input);
989
+ const candidate = {
990
+ toolName: matchedTool.name,
991
+ timestamp: Date.now(),
992
+ ...callSummary,
993
+ };
994
+ const toolReturnedPhaseId = extractPlanPhaseIdFromToolResult(resultStr);
995
+ let matchedPhaseId = toolReturnedPhaseId &&
996
+ plan.phases.some(p => p.id === toolReturnedPhaseId)
997
+ ? toolReturnedPhaseId
998
+ : undefined;
999
+ // Priority: MCP-side semantic attribution first, then in_progress phase,
1000
+ // then any pending phase whose expectations match.
1001
+ if (!matchedPhaseId) {
1002
+ const activePhase = plan.phases.find(p => p.status === 'in_progress');
1003
+ if (activePhase && (0, types_1.phaseMatchesCall)(activePhase, candidate)) {
1004
+ matchedPhaseId = activePhase.id;
1005
+ }
1006
+ }
1007
+ if (!matchedPhaseId) {
1008
+ const pendingMatch = plan.phases.find(p => p.status === 'pending' && (0, types_1.phaseMatchesCall)(p, candidate));
1009
+ matchedPhaseId = pendingMatch?.id;
1010
+ }
1011
+ plan.toolCallLog.push({ ...candidate, matchedPhaseId });
1012
+ // P2-8: Cap toolCallLog to prevent unbounded growth within a turn
1013
+ if (plan.toolCallLog.length > 100) {
1014
+ plan.toolCallLog.splice(0, plan.toolCallLog.length - 100);
1015
+ }
1016
+ }
1017
+ // P0-G16: Circuit breaker — overall failure rate monitoring
1018
+ // Unlike watchdog (same-tool consecutive failures), this monitors aggregate health.
1019
+ // Fires when >60% of recent tool calls fail, regardless of which tools.
1020
+ // P1-G9: Circuit breaker can fire even with pending watchdog warning
1021
+ // (CB is higher priority — its "simplify scope" message overwrites per-tool warnings)
1022
+ if (circuitBreakerFires < MAX_CIRCUIT_BREAKER_FIRES
1023
+ && toolCallHistory.length >= CIRCUIT_BREAKER_WINDOW
1024
+ && toolCallHistory.length - lastCircuitBreakerFireIdx >= 3) {
1025
+ const recentWindow = toolCallHistory.slice(-CIRCUIT_BREAKER_WINDOW);
1026
+ const failCount = recentWindow.filter(t => !t.success).length;
1027
+ const failRate = failCount / recentWindow.length;
1028
+ if (failRate >= CIRCUIT_BREAKER_THRESHOLD) {
1029
+ circuitBreakerFires++;
1030
+ lastCircuitBreakerFireIdx = toolCallHistory.length;
1031
+ ctx.watchdogWarning.current = (0, outputLanguage_1.localize)(this.config.outputLanguage, `⚠️ 分析断路器触发:最近 ${CIRCUIT_BREAKER_WINDOW} 次工具调用中 ${failCount} 次失败 (${(failRate * 100).toFixed(0)}%)。` +
1032
+ '请:1) 简化分析范围,2) 使用更基础的查询,3) 如果数据不可用则基于已有证据出结论。不要继续尝试失败的操作。', `⚠️ Analysis circuit breaker triggered: ${failCount} of the last ${CIRCUIT_BREAKER_WINDOW} tool calls failed (${(failRate * 100).toFixed(0)}%). ` +
1033
+ 'Simplify the scope, use more basic queries, and conclude from existing evidence if data is unavailable. Do not keep retrying failed actions.');
1034
+ failedApproaches.push({
1035
+ type: 'strategy_failure',
1036
+ approach: `整体工具调用失败率过高 (${(failRate * 100).toFixed(0)}%)`,
1037
+ reason: `最近 ${CIRCUIT_BREAKER_WINDOW} 次调用中 ${failCount} 次失败`,
1038
+ });
1039
+ this.emitUpdate({
1040
+ type: 'progress',
1041
+ content: {
1042
+ phase: 'analyzing',
1043
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, `⚠ 分析断路器触发:工具调用失败率 ${(failRate * 100).toFixed(0)}%,建议简化分析范围`, `⚠ Analysis circuit breaker triggered: tool failure rate ${(failRate * 100).toFixed(0)}%; simplify the analysis scope`),
1044
+ },
1045
+ timestamp: Date.now(),
1046
+ });
1047
+ }
1048
+ }
1049
+ }
1050
+ }
1051
+ // Per-turn metrics: capture usage from stream_event message_delta (per API turn)
1052
+ if (msg.type === 'stream_event' && currentTurnMetrics) {
1053
+ const event = msg.event;
1054
+ if (event?.type === 'message_delta' && event.usage) {
1055
+ currentTurnMetrics.outputTokens = event.usage.output_tokens;
1056
+ }
1057
+ if (event?.type === 'message_start' && event.message?.usage) {
1058
+ currentTurnMetrics.inputTokens = event.message.usage.input_tokens;
1059
+ currentTurnMetrics.cacheReadTokens = event.message.usage.cache_read_input_tokens;
1060
+ currentTurnMetrics.cacheCreationTokens = event.message.usage.cache_creation_input_tokens;
1061
+ }
1062
+ }
1063
+ if (msg.type === 'result') {
1064
+ // Finalize last turn metrics before stream ends
1065
+ finalizeTurnMetrics();
1066
+ currentTurnMetrics = null;
1067
+ rounds = msg.num_turns || rounds;
1068
+ const resultSubtype = msg.subtype;
1069
+ if (resultSubtype === 'success') {
1070
+ finalResult = msg.result;
1071
+ }
1072
+ else if ((0, analysisTermination_1.isSdkMaxTurnsSubtype)(resultSubtype)) {
1073
+ terminationReason = analysisTermination_1.MAX_TURNS_TERMINATION_REASON;
1074
+ terminationMessage = (0, analysisTermination_1.buildMaxTurnsTerminationMessage)({
1075
+ mode: 'full',
1076
+ turns: rounds,
1077
+ maxTurns: this.config.maxTurns,
1078
+ outputLanguage: this.config.outputLanguage,
1079
+ });
1080
+ }
1081
+ // Record SDK token usage and prompt cache metrics
1082
+ metricsCollector.recordSdkUsage({
1083
+ usage: msg.usage,
1084
+ modelUsage: msg.modelUsage,
1085
+ total_cost_usd: msg.total_cost_usd,
1086
+ });
1087
+ }
1088
+ }
1089
+ // Clean up any remaining sub-agent timers
1090
+ for (const timer of activeSubAgentTimers.values())
1091
+ clearTimeout(timer);
1092
+ activeSubAgentTimers.clear();
1093
+ // Log per-turn metrics for performance analysis
1094
+ if (turnMetricsList.length > 0) {
1095
+ const summary = {
1096
+ totalTurns: turnMetricsList.length,
1097
+ totalDurationMs: turnMetricsList.reduce((s, t) => s + (t.durationMs || 0), 0),
1098
+ totalToolCalls: turnMetricsList.reduce((s, t) => s + t.toolCalls.length, 0),
1099
+ totalPayloadBytes: turnMetricsList.reduce((s, t) => s + t.toolResultPayloadBytes, 0),
1100
+ turns: turnMetricsList.map(t => ({
1101
+ turn: t.turnIndex,
1102
+ durationMs: t.durationMs,
1103
+ firstTokenMs: t.firstTokenLatencyMs,
1104
+ tools: t.toolCalls,
1105
+ payloadBytes: t.toolResultPayloadBytes,
1106
+ thinking: t.hasExtendedThinking,
1107
+ inputTokens: t.inputTokens,
1108
+ outputTokens: t.outputTokens,
1109
+ cacheReadTokens: t.cacheReadTokens,
1110
+ cacheCreationTokens: t.cacheCreationTokens,
1111
+ })),
1112
+ };
1113
+ console.log(`[ClaudeRuntime] Turn metrics [${sessionId}]:`, JSON.stringify(summary));
1114
+ metricsCollector.recordTurnMetrics(summary);
1115
+ }
1116
+ };
1117
+ let safetyTimer;
1118
+ const timeoutPromise = new Promise((_, reject) => {
1119
+ safetyTimer = setTimeout(() => {
1120
+ timedOut = true;
1121
+ // Forcefully terminate the SDK subprocess — without this, queued
1122
+ // MCP tool calls (e.g. execute_sql) keep executing in the background
1123
+ // after the session logger has closed, producing orphan SQL errors.
1124
+ closeSdk();
1125
+ reject(new Error(`Analysis safety timeout after ${timeoutMs / 1000}s`));
1126
+ }, timeoutMs);
1127
+ });
1128
+ try {
1129
+ await Promise.race([processStream(), timeoutPromise]);
1130
+ }
1131
+ catch (err) {
1132
+ if (timedOut) {
1133
+ console.error('[ClaudeRuntime] Analysis safety timeout reached — SDK subprocess has been closed');
1134
+ this.emitUpdate({
1135
+ type: 'progress',
1136
+ content: {
1137
+ phase: 'concluding',
1138
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, '分析超时,正在生成已有结果的结论...', 'Analysis timed out. Generating a conclusion from the evidence collected so far...'),
1139
+ },
1140
+ timestamp: Date.now(),
1141
+ });
1142
+ }
1143
+ else if (existingSdkSessionId && isMissingSdkConversationError(err.message || '')) {
1144
+ missingSdkConversationError = err.message || 'No conversation found with SDK session';
1145
+ }
1146
+ else {
1147
+ throw err;
1148
+ }
1149
+ }
1150
+ finally {
1151
+ if (safetyTimer)
1152
+ clearTimeout(safetyTimer);
1153
+ closeSdk();
1154
+ }
1155
+ if (missingSdkConversationError && existingSdkSessionId) {
1156
+ delegatedRetry = true;
1157
+ return await this.retryWithoutSdkResume({
1158
+ query,
1159
+ sessionId,
1160
+ traceId,
1161
+ options,
1162
+ sessionMapKey: ctx.sessionMapKey,
1163
+ errorMessage: missingSdkConversationError,
1164
+ mode: 'full',
1165
+ });
1166
+ }
1167
+ // Use SDK terminal result if available; fall back to accumulated streamed answer tokens.
1168
+ // On timeout, the SDK result message may never arrive, but answer_token events
1169
+ // were already streamed to the frontend — use that text to populate the report.
1170
+ conclusionText = finalResult || getAccumulatedAnswer() || '';
1171
+ if (!finalResult && conclusionText) {
1172
+ console.warn(`[ClaudeRuntime] Session ${sessionId}: SDK result was empty, recovered ${conclusionText.length} chars from streamed answer tokens`);
1173
+ }
1174
+ allFindings.push((0, claudeFindingExtractor_1.extractFindingsFromText)(conclusionText));
1175
+ let mergedFindings = (0, claudeFindingExtractor_1.mergeFindings)(allFindings);
1176
+ if (conclusionText.trim() && ctx.analysisPlan.current) {
1177
+ const plan = ctx.analysisPlan.current;
1178
+ const conclusionPhase = plan.phases.find(p => p.status === 'pending' &&
1179
+ p.expectedTools.length === 0 &&
1180
+ /结论|conclusion|报告|report|总结/.test(`${p.name} ${p.goal}`));
1181
+ if (conclusionPhase) {
1182
+ const summary = (0, outputLanguage_1.localize)(this.config.outputLanguage, `自动完成阶段:模型已生成最终结论(${conclusionText.length} 字符)。`, `Auto-completed phase: the model produced the final conclusion (${conclusionText.length} chars).`);
1183
+ conclusionPhase.status = 'completed';
1184
+ conclusionPhase.completedAt = Date.now();
1185
+ conclusionPhase.summary = summary;
1186
+ this.emitUpdate({
1187
+ type: 'plan_phase_updated',
1188
+ content: { phaseId: conclusionPhase.id, status: 'completed', summary, phaseName: conclusionPhase.name },
1189
+ timestamp: Date.now(),
1190
+ });
1191
+ }
1192
+ }
1193
+ // Log compaction for diagnostics — helps debug cases where Claude seems to lose context
1194
+ if (sdkCompactDetected) {
1195
+ console.warn(`[ClaudeRuntime] Session ${sessionId}: analysis completed after SDK auto-compact. Findings count: ${mergedFindings.length}`);
1196
+ // P1-C1: Write a structured compact recovery note so the next turn's system prompt
1197
+ // carries plan progress + findings + entity context that may have been lost.
1198
+ // Phase 3-2: also preserves the last N raw tool calls as structured digests
1199
+ // so the post-compact agent knows what it was just doing.
1200
+ const sessionNotes = this.sessionNotes.get(sessionId);
1201
+ if (sessionNotes) {
1202
+ const note = (0, recoveryNoteBuilder_1.buildRecoveryNote)({
1203
+ plan: ctx.analysisPlan.current ?? undefined,
1204
+ findings: mergedFindings,
1205
+ recentToolCalls: ctx.analysisPlan.current?.toolCallLog ?? [],
1206
+ entitySnapshot: this.buildEntityContext(ctx.entityStore),
1207
+ });
1208
+ sessionNotes.push({
1209
+ section: 'next_step',
1210
+ content: note.text,
1211
+ priority: 'high',
1212
+ timestamp: Date.now(),
1213
+ });
1214
+ if (sessionNotes.length > 20)
1215
+ sessionNotes.shift();
1216
+ console.log(`[ClaudeRuntime] Compact recovery note: ${note.sectionsIncluded.length} sections, ${note.usedChars} chars (${note.sectionsIncluded.join('/')})`);
1217
+ }
1218
+ }
1219
+ // Verification + reflection-driven retry (P0-2 + P2-2)
1220
+ // Default ON. Up to 2 correction retries, but second only if new/different errors.
1221
+ // Run unconditionally when enabled — plan adherence, hypothesis resolution,
1222
+ // and conclusion-length checks must fire even when zero findings are extracted.
1223
+ console.log(`[ClaudeRuntime] Pre-verification: conclusionText=${conclusionText.length} chars, sdkSessionId=${sdkSessionId ? 'set' : 'MISSING'}, enableVerification=${runtimeConfig.enableVerification}`);
1224
+ if (runtimeConfig.enableVerification) {
1225
+ const MAX_CORRECTION_ATTEMPTS = 2;
1226
+ let previousErrorSignatures = new Set();
1227
+ try {
1228
+ for (let attempt = 0; attempt < MAX_CORRECTION_ATTEMPTS; attempt++) {
1229
+ const verification = await (0, claudeVerifier_1.verifyConclusion)(mergedFindings, conclusionText, {
1230
+ emitUpdate: (update) => this.emitUpdate(update),
1231
+ enableLLM: true,
1232
+ plan: ctx.analysisPlan.current,
1233
+ hypotheses: ctx.hypotheses,
1234
+ sceneType: ctx.sceneType,
1235
+ lightModel: runtimeConfig.lightModel,
1236
+ verifierTimeoutMs: runtimeConfig.verifierTimeoutMs,
1237
+ outputLanguage: this.config.outputLanguage,
1238
+ });
1239
+ console.log(`[ClaudeRuntime] Verification (attempt ${attempt + 1}): ${verification.passed ? 'PASSED' : 'ISSUES FOUND'} (${verification.durationMs}ms, ${verification.heuristicIssues.length} heuristic + ${verification.llmIssues?.length || 0} LLM issues)`);
1240
+ if (verification.passed || !sdkSessionId)
1241
+ break;
1242
+ const allIssues = [...verification.heuristicIssues, ...(verification.llmIssues || [])];
1243
+ const errorIssues = allIssues.filter(i => i.severity === 'error');
1244
+ if (errorIssues.length === 0)
1245
+ break;
1246
+ // P2-2: Check if these are the SAME errors as last attempt — if so, stop retrying
1247
+ const currentSignatures = new Set(errorIssues.map(i => `${i.type}:${i.message.substring(0, 60)}`));
1248
+ if (attempt > 0) {
1249
+ const newErrors = [...currentSignatures].filter(s => !previousErrorSignatures.has(s));
1250
+ if (newErrors.length === 0) {
1251
+ console.log(`[ClaudeRuntime] Reflection retry: same ${errorIssues.length} errors persist after correction, stopping`);
1252
+ // P1: Record persistent verification failures as negative memory
1253
+ for (const issue of errorIssues) {
1254
+ failedApproaches.push({
1255
+ type: 'verification_failure',
1256
+ approach: issue.message.substring(0, 150),
1257
+ reason: `验证发现持续性问题 (${issue.type}),修正重试未能解决`,
1258
+ });
1259
+ }
1260
+ break;
1261
+ }
1262
+ console.log(`[ClaudeRuntime] Reflection retry: ${newErrors.length} new errors detected, attempting correction ${attempt + 1}`);
1263
+ }
1264
+ previousErrorSignatures = currentSignatures;
1265
+ this.emitUpdate({
1266
+ type: 'progress',
1267
+ content: {
1268
+ phase: 'concluding',
1269
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, `发现 ${errorIssues.length} 个 ERROR 级问题,启动修正重试 (${attempt + 1}/${MAX_CORRECTION_ATTEMPTS})...`, `Found ${errorIssues.length} ERROR-level issue(s). Starting correction retry (${attempt + 1}/${MAX_CORRECTION_ATTEMPTS})...`),
1270
+ },
1271
+ timestamp: Date.now(),
1272
+ });
1273
+ try {
1274
+ const correctionPrompt = (0, claudeVerifier_1.generateCorrectionPrompt)(allIssues, conclusionText, this.config.outputLanguage);
1275
+ // When the conclusion is incomplete (just reasoning notes, no structured report),
1276
+ // the agent ran out of turns before generating a report. Give substantially more
1277
+ // budget so the correction can produce a complete structured output.
1278
+ const conclusionNeedsFullGeneration = (0, claudeVerifier_1.isConclusionIncomplete)(conclusionText);
1279
+ // P2-2: Give more turn budget on second attempt (may need additional data)
1280
+ const correctionTurns = conclusionNeedsFullGeneration
1281
+ ? (attempt === 0 ? 10 : 12) // Full report generation needs more turns
1282
+ : (attempt === 0 ? 5 : 8); // Normal correction (fixing specific issues)
1283
+ // Rebuild system prompt with reduced budget for correction retries.
1284
+ // After SDK auto-compact or verification failure, conversation history is longer,
1285
+ // so we shrink the system prompt to leave more room (4500 → 3000 tokens).
1286
+ const correctionSystemPrompt = sdkCompactDetected
1287
+ ? (0, claudeSystemPrompt_1.buildSystemPrompt)(ctx.analysisContextForRebuild, 3000)
1288
+ : ctx.systemPrompt;
1289
+ const { stream: correctionStream, close: closeCorrection } = sdkQueryWithRetry({
1290
+ prompt: correctionPrompt,
1291
+ options: {
1292
+ model: runtimeConfig.model,
1293
+ maxTurns: correctionTurns,
1294
+ systemPrompt: correctionSystemPrompt,
1295
+ mcpServers: { smartperfetto: ctx.mcpServer },
1296
+ includePartialMessages: true,
1297
+ permissionMode: 'bypassPermissions',
1298
+ allowDangerouslySkipPermissions: true,
1299
+ cwd: runtimeConfig.cwd,
1300
+ effort: ctx.effectiveEffort,
1301
+ allowedTools: ctx.allowedTools,
1302
+ resume: sdkSessionId,
1303
+ env: sdkEnv,
1304
+ stderr: (data) => {
1305
+ console.warn(`[ClaudeRuntime] SDK stderr (correction) [${sessionId}]: ${data.trimEnd()}`);
1306
+ },
1307
+ },
1308
+ }, {
1309
+ emitUpdate: (update) => this.emitUpdate(update),
1310
+ outputLanguage: this.config.outputLanguage,
1311
+ });
1312
+ // P1-G8: Independent timeout for correction retries — prevents indefinite hangs.
1313
+ // When generating a full report from scratch (conclusionNeedsFullGeneration),
1314
+ // each turn needs more time (25s) since structured report output is verbose.
1315
+ // Normal corrections (fixing specific issues) use 10s per turn.
1316
+ const correctionTimeoutMs = correctionTurns * (conclusionNeedsFullGeneration ? 25000 : 10000);
1317
+ let correctionTimedOut = false;
1318
+ const correctionTimer = setTimeout(() => {
1319
+ correctionTimedOut = true;
1320
+ console.warn(`[ClaudeRuntime] Correction retry ${attempt + 1} timed out after ${correctionTimeoutMs}ms`);
1321
+ // Forcefully terminate the SDK subprocess so any queued MCP
1322
+ // tool calls (execute_sql, invoke_skill) stop running after
1323
+ // the main analyze() flow has moved on. Without this, those
1324
+ // calls hit trace_processor after the session has closed and
1325
+ // surface as orphan SQL errors with no owner.
1326
+ closeCorrection();
1327
+ }, correctionTimeoutMs);
1328
+ let correctedResult = '';
1329
+ try {
1330
+ for await (const msg of correctionStream) {
1331
+ if (correctionTimedOut)
1332
+ break;
1333
+ if (msg.type === 'result' && msg.subtype === 'success') {
1334
+ correctedResult = msg.result || '';
1335
+ rounds += msg.num_turns || 0;
1336
+ }
1337
+ // Bridge tool call events (agent_task_dispatched, agent_response)
1338
+ // but suppress text/conclusion events to avoid duplicating the report.
1339
+ // The corrected conclusion is captured in correctedResult and will
1340
+ // replace conclusionText below — no need to stream it again.
1341
+ if (msg.type !== 'stream_event' && msg.type !== 'assistant' && msg.type !== 'result') {
1342
+ try {
1343
+ bridge(msg);
1344
+ }
1345
+ catch { /* non-fatal */ }
1346
+ }
1347
+ }
1348
+ }
1349
+ finally {
1350
+ clearTimeout(correctionTimer);
1351
+ // Safety net: guarantee the correction SDK subprocess is
1352
+ // closed on every exit (success, break, throw). Idempotent.
1353
+ closeCorrection();
1354
+ }
1355
+ if (correctionTimedOut) {
1356
+ console.warn(`[ClaudeRuntime] Correction attempt ${attempt + 1} timed out, using partial result (${correctedResult.length} chars)`);
1357
+ }
1358
+ // P2-G13: Compare correction quality by finding count and coverage, not text length.
1359
+ // A shorter corrected conclusion with more findings is better than a longer empty one.
1360
+ const correctedFindings = correctedResult ? (0, claudeFindingExtractor_1.extractFindingsFromText)(correctedResult) : [];
1361
+ const previousFindingCount = mergedFindings.length;
1362
+ const hasSubstantiveCorrection = correctedResult && (correctedFindings.length >= previousFindingCount ||
1363
+ correctedResult.length > 100);
1364
+ if (hasSubstantiveCorrection) {
1365
+ conclusionText = correctedResult;
1366
+ // Re-extract findings from corrected conclusion and re-merge
1367
+ allFindings.push(correctedFindings);
1368
+ mergedFindings = (0, claudeFindingExtractor_1.mergeFindings)(allFindings);
1369
+ console.log(`[ClaudeRuntime] Reflection retry ${attempt + 1}: conclusion corrected (findings: ${previousFindingCount} → ${mergedFindings.length})`);
1370
+ }
1371
+ else {
1372
+ console.log(`[ClaudeRuntime] Reflection retry ${attempt + 1}: correction insufficient (findings: ${correctedFindings.length} vs ${previousFindingCount}), keeping previous`);
1373
+ break; // No point retrying if correction failed to improve
1374
+ }
1375
+ }
1376
+ catch (correctionErr) {
1377
+ console.warn(`[ClaudeRuntime] Reflection retry ${attempt + 1} failed (non-blocking):`, correctionErr.message);
1378
+ break;
1379
+ }
1380
+ }
1381
+ }
1382
+ catch (err) {
1383
+ console.warn('[ClaudeRuntime] Verification failed (non-blocking):', err.message);
1384
+ }
1385
+ }
1386
+ // Fallback: if conclusionText is still incomplete after verification (or verification was skipped),
1387
+ // check if accumulatedAnswer has more content. This handles the case where the SDK result
1388
+ // was a short summary but the streamed answer_tokens contained the full report.
1389
+ const accumulatedAnswer = getAccumulatedAnswer();
1390
+ if ((0, claudeVerifier_1.isConclusionIncomplete)(conclusionText) && accumulatedAnswer.length > conclusionText.length) {
1391
+ console.warn(`[ClaudeRuntime] Session ${sessionId}: conclusionText incomplete (${conclusionText.length} chars), using accumulatedAnswer (${accumulatedAnswer.length} chars) instead`);
1392
+ conclusionText = accumulatedAnswer;
1393
+ // Re-extract findings from the more complete text
1394
+ allFindings.push((0, claudeFindingExtractor_1.extractFindingsFromText)(conclusionText));
1395
+ mergedFindings = (0, claudeFindingExtractor_1.mergeFindings)(allFindings);
1396
+ }
1397
+ const isPartialResult = terminationReason === analysisTermination_1.MAX_TURNS_TERMINATION_REASON;
1398
+ if (isPartialResult) {
1399
+ terminationMessage || (terminationMessage = (0, analysisTermination_1.buildMaxTurnsTerminationMessage)({
1400
+ mode: 'full',
1401
+ turns: rounds,
1402
+ maxTurns: this.config.maxTurns,
1403
+ outputLanguage: this.config.outputLanguage,
1404
+ }));
1405
+ conclusionText = conclusionText.trim()
1406
+ ? (0, analysisTermination_1.prependPartialNotice)(conclusionText, terminationMessage, this.config.outputLanguage)
1407
+ : (0, analysisTermination_1.buildMaxTurnsFallbackConclusion)({
1408
+ mode: 'full',
1409
+ turns: rounds,
1410
+ maxTurns: this.config.maxTurns,
1411
+ outputLanguage: this.config.outputLanguage,
1412
+ });
1413
+ allFindings.push((0, claudeFindingExtractor_1.extractFindingsFromText)(conclusionText));
1414
+ mergedFindings = (0, claudeFindingExtractor_1.mergeFindings)(allFindings);
1415
+ failedApproaches.push({
1416
+ type: 'strategy_failure',
1417
+ approach: `analysis reached ${this.config.maxTurns} full-mode turns`,
1418
+ reason: 'SDK returned error_max_turns before a normal success result',
1419
+ });
1420
+ this.emitUpdate({
1421
+ type: 'degraded',
1422
+ content: {
1423
+ module: 'claudeRuntime',
1424
+ fallback: 'partial_result_after_max_turns',
1425
+ error: analysisTermination_1.SDK_MAX_TURNS_SUBTYPE,
1426
+ message: terminationMessage,
1427
+ partial: true,
1428
+ terminationReason,
1429
+ turns: rounds,
1430
+ maxTurns: this.config.maxTurns,
1431
+ },
1432
+ timestamp: Date.now(),
1433
+ });
1434
+ }
1435
+ const baseConfidence = this.estimateConfidence(mergedFindings);
1436
+ const turnConfidence = isPartialResult
1437
+ ? (0, analysisTermination_1.capPartialConfidence)(baseConfidence, mergedFindings.length > 0)
1438
+ : baseConfidence;
1439
+ ctx.sessionContext.addTurn(query, {
1440
+ primaryGoal: query,
1441
+ aspects: [],
1442
+ expectedOutputType: 'diagnosis',
1443
+ complexity: 'complex',
1444
+ followUpType: ctx.previousTurns.length > 0 ? 'extend' : 'initial',
1445
+ }, {
1446
+ agentId: 'claude-agent',
1447
+ success: true,
1448
+ findings: mergedFindings,
1449
+ confidence: turnConfidence,
1450
+ message: conclusionText,
1451
+ partial: isPartialResult || undefined,
1452
+ terminationReason,
1453
+ terminationMessage,
1454
+ }, mergedFindings);
1455
+ ctx.sessionContext.updateWorkingMemoryFromConclusion({
1456
+ turnIndex: ctx.previousTurns.length,
1457
+ query,
1458
+ conclusion: conclusionText,
1459
+ confidence: turnConfidence,
1460
+ });
1461
+ // P2-2: Save analysis pattern to long-term memory (fire-and-forget)
1462
+ // Note: sceneType is from the outer analyze() scope (classified before context prep)
1463
+ const fullFeatures = (0, analysisPatternMemory_1.extractTraceFeatures)({
1464
+ architectureType: ctx.architecture?.type,
1465
+ sceneType,
1466
+ packageName: options.packageName,
1467
+ findingTitles: mergedFindings.map(f => f.title),
1468
+ findingCategories: mergedFindings.map(f => f.category).filter(Boolean),
1469
+ });
1470
+ // Per Self-Improving v3.3 §4.4: full-path patterns now save as
1471
+ // 'provisional' regardless of confidence. The state machine + 24h
1472
+ // auto-confirm decides whether they earn injection weight.
1473
+ if (!isPartialResult && mergedFindings.length > 0) {
1474
+ const insights = (0, analysisPatternMemory_1.extractKeyInsights)(mergedFindings, conclusionText);
1475
+ const patternExtras = {
1476
+ status: 'provisional',
1477
+ provenance: {
1478
+ sessionId,
1479
+ turnIndex: ctx.previousTurns.length,
1480
+ },
1481
+ knowledgeScope: knowledgeScopeFromOptions(options),
1482
+ };
1483
+ (0, analysisPatternMemory_1.saveAnalysisPattern)(fullFeatures, insights, sceneType, ctx.architecture?.type, turnConfidence, patternExtras)
1484
+ .catch(err => console.warn('[ClaudeRuntime] Pattern save failed:', err.message));
1485
+ // Try to promote any matching quick-path pattern that has been waiting
1486
+ // for full-path verification. Best-effort — failure does not block.
1487
+ (0, analysisPatternMemory_1.promoteQuickPatternIfMatching)({
1488
+ fullPathFeatures: fullFeatures,
1489
+ fullPathInsights: insights,
1490
+ sceneType,
1491
+ architectureType: ctx.architecture?.type,
1492
+ verifierPassed: true,
1493
+ knowledgeScope: knowledgeScopeFromOptions(options),
1494
+ }).catch(err => console.warn('[ClaudeRuntime] Quick→full promote failed:', err.message));
1495
+ }
1496
+ // Derive sql_error FailedApproach entries from persistent SQL errors
1497
+ // (errors that were never auto-fixed during the session — still in the array)
1498
+ const persistentSqlErrors = this.sessionSqlErrors.get(sessionId)?.filter((e) => !e.fixedSql && e.errorMessage) || [];
1499
+ for (const sqlErr of persistentSqlErrors.slice(-3)) { // cap at 3 to avoid noise
1500
+ failedApproaches.push({
1501
+ type: 'sql_error',
1502
+ approach: sqlErr.errorSql?.substring(0, 150) || 'unknown SQL',
1503
+ reason: sqlErr.errorMessage?.substring(0, 150) || 'SQL query error',
1504
+ });
1505
+ }
1506
+ // P1: Save negative patterns to long-term memory (fire-and-forget)
1507
+ if (failedApproaches.length > 0 && fullFeatures.length > 0) {
1508
+ (0, analysisPatternMemory_1.saveNegativePattern)(fullFeatures, failedApproaches, sceneType, ctx.architecture?.type, {
1509
+ knowledgeScope: knowledgeScopeFromOptions(options),
1510
+ })
1511
+ .catch(err => console.warn('[ClaudeRuntime] Negative pattern save failed:', err.message));
1512
+ }
1513
+ // P0-1: Export actual hypotheses from this turn (not hardcoded empty array)
1514
+ // Convert agentv3 Hypothesis to agentProtocol Hypothesis format for AnalysisResult
1515
+ const turnHypotheses = (this.sessionHypotheses.get(sessionId) || []).map(h => this.toProtocolHypothesis(h));
1516
+ return {
1517
+ sessionId,
1518
+ success: true,
1519
+ findings: mergedFindings,
1520
+ hypotheses: turnHypotheses,
1521
+ conclusion: conclusionText,
1522
+ confidence: turnConfidence,
1523
+ rounds,
1524
+ totalDurationMs: Date.now() - startTime,
1525
+ partial: isPartialResult || undefined,
1526
+ terminationReason,
1527
+ terminationMessage,
1528
+ };
1529
+ }
1530
+ catch (error) {
1531
+ const rawErrorMessage = error.message || 'Unknown error';
1532
+ const errMsg = (0, claudeConfig_1.explainClaudeRuntimeError)(rawErrorMessage, this.config.outputLanguage, (0, claudeConfig_1.getCredentialSourceHint)(options.providerId, providerScopeFromOptions(options)));
1533
+ const quotaExceeded = (0, claudeConfig_1.isClaudeQuotaError)(rawErrorMessage);
1534
+ console.error('[ClaudeRuntime] Analysis failed:', errMsg);
1535
+ // P1-3: Preserve partial findings and generate partial conclusion on mid-stream errors
1536
+ const partialFindings = (0, claudeFindingExtractor_1.mergeFindings)(allFindings);
1537
+ const hasPartialResults = partialFindings.length > 0;
1538
+ // P0-1: Export actual hypotheses even on error paths
1539
+ const errorHypotheses = (this.sessionHypotheses.get(sessionId) || []).map(h => this.toProtocolHypothesis(h));
1540
+ if (hasPartialResults) {
1541
+ const partialConclusion = (0, outputLanguage_1.localize)(this.config.outputLanguage, `分析过程中出错 (${errMsg}),以下是已收集的部分发现:\n\n`, `An error occurred during analysis (${errMsg}). Partial findings collected so far:\n\n`) +
1542
+ partialFindings.map(f => `- **[${f.severity.toUpperCase()}]** ${f.title}: ${f.description || ''}`).join('\n');
1543
+ this.emitUpdate({
1544
+ type: 'progress',
1545
+ content: {
1546
+ phase: 'concluding',
1547
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, `分析中断,已保留 ${partialFindings.length} 个部分发现`, `Analysis interrupted; preserved ${partialFindings.length} partial finding(s)`),
1548
+ },
1549
+ timestamp: Date.now(),
1550
+ });
1551
+ return {
1552
+ sessionId,
1553
+ success: true, // partial success — downstream can check confidence < 1
1554
+ findings: partialFindings,
1555
+ hypotheses: errorHypotheses,
1556
+ conclusion: partialConclusion,
1557
+ confidence: this.estimateConfidence(partialFindings) * 0.7, // penalize for incomplete
1558
+ rounds,
1559
+ totalDurationMs: Date.now() - startTime,
1560
+ partial: true,
1561
+ terminationReason: quotaExceeded ? 'max_budget_usd' : 'execution_error',
1562
+ terminationMessage: errMsg,
1563
+ };
1564
+ }
1565
+ this.emitUpdate({
1566
+ type: 'error',
1567
+ content: {
1568
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, `分析失败: ${errMsg}`, `Analysis failed: ${errMsg}`),
1569
+ },
1570
+ timestamp: Date.now(),
1571
+ });
1572
+ return {
1573
+ sessionId,
1574
+ success: false,
1575
+ findings: partialFindings,
1576
+ hypotheses: errorHypotheses,
1577
+ conclusion: (0, outputLanguage_1.localize)(this.config.outputLanguage, `分析过程中出错: ${errMsg}`, `An error occurred during analysis: ${errMsg}`),
1578
+ confidence: 0,
1579
+ rounds,
1580
+ totalDurationMs: Date.now() - startTime,
1581
+ terminationReason: quotaExceeded ? 'max_budget_usd' : 'execution_error',
1582
+ terminationMessage: errMsg,
1583
+ };
1584
+ }
1585
+ finally {
1586
+ this.activeAnalyses.delete(sessionId);
1587
+ strategyFingerprint_1.runSnapshots.release(sessionId);
1588
+ // Notes persistence now handled by unified SessionStateSnapshot in the route layer.
1589
+ // No separate disk I/O needed here.
1590
+ // Persist session metrics (fire-and-forget, non-blocking)
1591
+ try {
1592
+ if (!delegatedRetry) {
1593
+ metricsCollector.recordTurn(); // Record final turn
1594
+ (0, agentMetrics_1.persistSessionMetrics)(metricsCollector.summarize());
1595
+ }
1596
+ }
1597
+ catch (metricsErr) {
1598
+ console.warn('[ClaudeRuntime] Failed to persist metrics:', metricsErr.message);
1599
+ }
1600
+ }
1601
+ }
1602
+ /**
1603
+ * Quick analysis path for simple factual queries.
1604
+ * Minimal context prep, 3 MCP tools, no planning/verification/report.
1605
+ * Target: 3-8s latency, 2k-5k tokens.
1606
+ */
1607
+ async analyzeQuick(query, sessionId, traceId, options, precomputed) {
1608
+ const { sceneType, focusResult, cachedArch, sessionContext, previousTurns, metricsCollector, startTime } = precomputed;
1609
+ let delegatedRetry = false;
1610
+ try {
1611
+ let effectivePackageName = options.packageName;
1612
+ if (!effectivePackageName && focusResult.primaryApp) {
1613
+ effectivePackageName = focusResult.primaryApp;
1614
+ }
1615
+ // Architecture detection + skill registry init in parallel
1616
+ const [architecture, _skillRegistryReady] = await Promise.all([
1617
+ cachedArch ? Promise.resolve(cachedArch) : (async () => {
1618
+ try {
1619
+ const detector = (0, architectureDetector_1.createArchitectureDetector)();
1620
+ const arch = await detector.detect({
1621
+ traceId,
1622
+ traceProcessorService: this.traceProcessorService,
1623
+ packageName: effectivePackageName,
1624
+ });
1625
+ if (arch) {
1626
+ this.architectureCache.set(traceId, arch);
1627
+ // LRU eviction: match full path's 50-entry cap
1628
+ if (this.architectureCache.size > 50) {
1629
+ const firstKey = this.architectureCache.keys().next().value;
1630
+ if (firstKey)
1631
+ this.architectureCache.delete(firstKey);
1632
+ }
1633
+ }
1634
+ return arch;
1635
+ }
1636
+ catch (err) {
1637
+ console.warn('[ClaudeRuntime] Quick: architecture detection failed:', err.message);
1638
+ return undefined;
1639
+ }
1640
+ })(),
1641
+ (0, skillLoader_1.ensureSkillRegistryInitialized)(),
1642
+ ]);
1643
+ const skillExecutor = (0, skillExecutor_1.createSkillExecutor)(this.traceProcessorService);
1644
+ skillExecutor.registerSkills(skillLoader_1.skillRegistry.getAllSkills());
1645
+ skillExecutor.setFragmentRegistry(skillLoader_1.skillRegistry.getFragmentCache());
1646
+ const watchdogWarning = { current: null };
1647
+ // Quick path defaults to no skill-notes injection per §8 of the
1648
+ // self-improving design. Operators can opt-in via the env override.
1649
+ const quickNotesBudget = process.env.SELF_IMPROVE_NOTES_INJECT_ENABLED === '1'
1650
+ ? new skillNotesInjector_1.SkillNotesBudget({
1651
+ mode: 'quick',
1652
+ quickOverrideTotal: parseQuickBudgetEnv(),
1653
+ })
1654
+ : undefined;
1655
+ const { server: mcpServer, allowedTools } = (0, claudeMcpServer_1.createClaudeMcpServer)({
1656
+ traceId,
1657
+ traceProcessorService: this.traceProcessorService,
1658
+ skillExecutor,
1659
+ packageName: effectivePackageName,
1660
+ emitUpdate: (update) => this.emitUpdate(update),
1661
+ watchdogWarning,
1662
+ sceneType,
1663
+ lightweight: true,
1664
+ skillNotesBudget: quickNotesBudget,
1665
+ outputLanguage: this.config.outputLanguage,
1666
+ knowledgeScope: knowledgeScopeFromOptions(options),
1667
+ });
1668
+ const systemPrompt = (0, claudeSystemPrompt_1.buildQuickSystemPrompt)({
1669
+ architecture,
1670
+ packageName: effectivePackageName,
1671
+ focusApps: focusResult.apps.length > 0 ? focusResult.apps : undefined,
1672
+ focusMethod: focusResult.method,
1673
+ selectionContext: options.selectionContext,
1674
+ outputLanguage: this.config.outputLanguage,
1675
+ });
1676
+ const providerScope = providerScopeFromOptions(options);
1677
+ const quickConfig = (0, claudeConfig_1.createQuickConfig)((0, claudeConfig_1.resolveRuntimeConfig)(this.config, options.providerId, providerScope));
1678
+ const { handleMessage: bridge, getAccumulatedAnswer } = (0, claudeSseBridge_1.createSseBridge)((update) => {
1679
+ this.emitUpdate(update);
1680
+ }, this.config.outputLanguage);
1681
+ this.emitUpdate({
1682
+ type: 'progress',
1683
+ content: {
1684
+ phase: 'answering',
1685
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, `快速问答模式 (${quickConfig.model})...`, `Fast Q&A mode (${quickConfig.model})...`),
1686
+ },
1687
+ timestamp: Date.now(),
1688
+ });
1689
+ const sdkEnv = (0, claudeConfig_1.createSdkEnv)(options.providerId, providerScope);
1690
+ // Quick calls intentionally do not resume or persist Claude SDK sessions.
1691
+ // The SDK's maxTurns budget is tied to the resumed conversation, while
1692
+ // SmartPerfetto's fast mode budget is a per-question latency guard. Keep
1693
+ // cross-turn context local and compact so quick cannot exhaust or overwrite
1694
+ // the full-mode SDK conversation.
1695
+ let quickPrompt = query;
1696
+ const quickConversationContext = buildQuickConversationContext(previousTurns, this.config.outputLanguage);
1697
+ if (quickConversationContext) {
1698
+ quickPrompt = `${quickConversationContext}\n\n${quickPrompt}`;
1699
+ }
1700
+ // Prepend pre-queried trace data so the AI skips basic SQL turns in fast mode.
1701
+ if (options.traceContext && options.traceContext.length > 0) {
1702
+ quickPrompt = `${formatTraceContext(options.traceContext, this.config.outputLanguage)}\n\n${quickPrompt}`;
1703
+ }
1704
+ const { stream, close: closeSdk } = sdkQueryWithRetry({
1705
+ prompt: quickPrompt,
1706
+ options: {
1707
+ model: quickConfig.model,
1708
+ maxTurns: quickConfig.maxTurns,
1709
+ systemPrompt,
1710
+ mcpServers: { smartperfetto: mcpServer },
1711
+ includePartialMessages: true,
1712
+ permissionMode: 'bypassPermissions',
1713
+ allowDangerouslySkipPermissions: true,
1714
+ cwd: quickConfig.cwd,
1715
+ effort: quickConfig.effort,
1716
+ allowedTools,
1717
+ env: sdkEnv,
1718
+ stderr: (data) => {
1719
+ console.warn(`[ClaudeRuntime] Quick SDK stderr [${sessionId}]: ${data.trimEnd()}`);
1720
+ },
1721
+ },
1722
+ }, {
1723
+ emitUpdate: (update) => this.emitUpdate(update),
1724
+ outputLanguage: this.config.outputLanguage,
1725
+ });
1726
+ let finalResult;
1727
+ let quickRounds = 0;
1728
+ let terminationReason;
1729
+ let terminationMessage;
1730
+ // Quick path per-turn budget from env CLAUDE_QUICK_PER_TURN_MS (default 40s/turn).
1731
+ const timeoutMs = quickConfig.maxTurns * quickConfig.quickPathPerTurnMs;
1732
+ let timedOut = false;
1733
+ let safetyTimer;
1734
+ const timeoutPromise = new Promise((_, reject) => {
1735
+ safetyTimer = setTimeout(() => {
1736
+ timedOut = true;
1737
+ // Forcefully terminate SDK subprocess so queued MCP tool calls
1738
+ // stop running after analyzeQuick returns (prevents orphan queries).
1739
+ closeSdk();
1740
+ reject(new Error(`Quick analysis timeout after ${timeoutMs / 1000}s`));
1741
+ }, timeoutMs);
1742
+ });
1743
+ const processStream = async () => {
1744
+ for await (const msg of stream) {
1745
+ if (timedOut)
1746
+ break;
1747
+ const sdkResultError = getSdkResultErrorMessage(msg);
1748
+ if (sdkResultError)
1749
+ throw new Error(sdkResultError);
1750
+ try {
1751
+ bridge(msg);
1752
+ }
1753
+ catch { /* non-fatal */ }
1754
+ if (msg.type === 'result') {
1755
+ quickRounds = msg.num_turns || quickRounds;
1756
+ const resultSubtype = msg.subtype;
1757
+ if (resultSubtype === 'success') {
1758
+ finalResult = msg.result;
1759
+ }
1760
+ else if ((0, analysisTermination_1.isSdkMaxTurnsSubtype)(resultSubtype)) {
1761
+ terminationReason = analysisTermination_1.MAX_TURNS_TERMINATION_REASON;
1762
+ terminationMessage = (0, analysisTermination_1.buildMaxTurnsTerminationMessage)({
1763
+ mode: 'fast',
1764
+ turns: quickRounds,
1765
+ maxTurns: quickConfig.maxTurns,
1766
+ outputLanguage: this.config.outputLanguage,
1767
+ });
1768
+ }
1769
+ }
1770
+ }
1771
+ };
1772
+ try {
1773
+ await Promise.race([processStream(), timeoutPromise]);
1774
+ }
1775
+ catch (err) {
1776
+ if (timedOut) {
1777
+ console.warn('[ClaudeRuntime] Quick analysis timeout reached — SDK subprocess has been closed');
1778
+ }
1779
+ else {
1780
+ throw err;
1781
+ }
1782
+ }
1783
+ finally {
1784
+ if (safetyTimer)
1785
+ clearTimeout(safetyTimer);
1786
+ closeSdk();
1787
+ }
1788
+ let conclusionText = finalResult || getAccumulatedAnswer() || '';
1789
+ let mergedFindings = (0, claudeFindingExtractor_1.mergeFindings)([(0, claudeFindingExtractor_1.extractFindingsFromText)(conclusionText)]);
1790
+ const isPartialResult = terminationReason === analysisTermination_1.MAX_TURNS_TERMINATION_REASON;
1791
+ if (isPartialResult) {
1792
+ terminationMessage || (terminationMessage = (0, analysisTermination_1.buildMaxTurnsTerminationMessage)({
1793
+ mode: 'fast',
1794
+ turns: quickRounds,
1795
+ maxTurns: quickConfig.maxTurns,
1796
+ outputLanguage: this.config.outputLanguage,
1797
+ }));
1798
+ conclusionText = conclusionText.trim()
1799
+ ? (0, analysisTermination_1.prependPartialNotice)(conclusionText, terminationMessage, this.config.outputLanguage)
1800
+ : (0, analysisTermination_1.buildMaxTurnsFallbackConclusion)({
1801
+ mode: 'fast',
1802
+ turns: quickRounds,
1803
+ maxTurns: quickConfig.maxTurns,
1804
+ outputLanguage: this.config.outputLanguage,
1805
+ });
1806
+ mergedFindings = (0, claudeFindingExtractor_1.mergeFindings)([(0, claudeFindingExtractor_1.extractFindingsFromText)(conclusionText)]);
1807
+ this.emitUpdate({
1808
+ type: 'degraded',
1809
+ content: {
1810
+ module: 'claudeRuntime',
1811
+ fallback: 'partial_result_after_max_turns',
1812
+ error: analysisTermination_1.SDK_MAX_TURNS_SUBTYPE,
1813
+ message: terminationMessage,
1814
+ partial: true,
1815
+ terminationReason,
1816
+ turns: quickRounds,
1817
+ maxTurns: quickConfig.maxTurns,
1818
+ },
1819
+ timestamp: Date.now(),
1820
+ });
1821
+ }
1822
+ const quickConfidenceBase = mergedFindings.length > 0 ? 0.8 : 0.5;
1823
+ const quickConfidence = isPartialResult
1824
+ ? (0, analysisTermination_1.capPartialConfidence)(quickConfidenceBase, mergedFindings.length > 0)
1825
+ : quickConfidenceBase;
1826
+ if (conclusionText.length > 0 && conclusionText.length < 20) {
1827
+ console.warn(`[ClaudeRuntime] Quick: suspiciously short answer (${conclusionText.length} chars)`);
1828
+ }
1829
+ // Record turn in session context
1830
+ sessionContext.addTurn(query, {
1831
+ primaryGoal: query,
1832
+ aspects: [],
1833
+ expectedOutputType: 'summary',
1834
+ complexity: 'simple',
1835
+ followUpType: previousTurns.length > 0 ? 'extend' : 'initial',
1836
+ }, {
1837
+ agentId: 'claude-agent',
1838
+ success: true,
1839
+ findings: mergedFindings,
1840
+ confidence: quickConfidence,
1841
+ message: conclusionText,
1842
+ partial: isPartialResult || undefined,
1843
+ terminationReason,
1844
+ terminationMessage,
1845
+ }, mergedFindings);
1846
+ console.log(`[ClaudeRuntime] Quick analysis completed: ${quickRounds} rounds, ${Date.now() - startTime}ms, ${conclusionText.length} chars`);
1847
+ // Quick path writes to a separate 7-day bucket — see Self-Improving v3.3 §6.
1848
+ // Insights are weaker (no verifier, 10-turn budget), so they only surface
1849
+ // as fallbacks at injection time. A future full-path run on similar
1850
+ // features may promote the bucket entry to long-term memory.
1851
+ if (!isPartialResult && mergedFindings.length > 0) {
1852
+ const insights = (0, analysisPatternMemory_1.extractKeyInsights)(mergedFindings, conclusionText);
1853
+ const quickFeatures = (0, analysisPatternMemory_1.extractTraceFeatures)({
1854
+ architectureType: cachedArch?.type,
1855
+ sceneType,
1856
+ packageName: effectivePackageName,
1857
+ findingTitles: mergedFindings.map(f => f.title),
1858
+ findingCategories: mergedFindings.map(f => f.category).filter(Boolean),
1859
+ });
1860
+ (0, analysisPatternMemory_1.saveQuickPathPattern)(quickFeatures, insights, sceneType, cachedArch?.type, {
1861
+ status: 'provisional',
1862
+ provenance: { sessionId, turnIndex: previousTurns.length },
1863
+ knowledgeScope: knowledgeScopeFromOptions(options),
1864
+ }).catch(err => console.warn('[ClaudeRuntime] Quick pattern save failed:', err.message));
1865
+ }
1866
+ return {
1867
+ sessionId,
1868
+ success: true,
1869
+ findings: mergedFindings,
1870
+ hypotheses: [],
1871
+ conclusion: conclusionText,
1872
+ confidence: quickConfidence,
1873
+ rounds: quickRounds,
1874
+ totalDurationMs: Date.now() - startTime,
1875
+ partial: isPartialResult || undefined,
1876
+ terminationReason,
1877
+ terminationMessage,
1878
+ };
1879
+ }
1880
+ catch (error) {
1881
+ const rawErrorMessage = error.message || 'Unknown error';
1882
+ const errMsg = (0, claudeConfig_1.explainClaudeRuntimeError)(rawErrorMessage, this.config.outputLanguage, (0, claudeConfig_1.getCredentialSourceHint)(options.providerId, providerScopeFromOptions(options)));
1883
+ const quotaExceeded = (0, claudeConfig_1.isClaudeQuotaError)(rawErrorMessage);
1884
+ console.error('[ClaudeRuntime] Quick analysis failed:', errMsg);
1885
+ this.emitUpdate({
1886
+ type: 'error',
1887
+ content: {
1888
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, `快速问答失败: ${errMsg}`, `Fast Q&A failed: ${errMsg}`),
1889
+ },
1890
+ timestamp: Date.now(),
1891
+ });
1892
+ return {
1893
+ sessionId,
1894
+ success: false,
1895
+ findings: [],
1896
+ hypotheses: [],
1897
+ conclusion: (0, outputLanguage_1.localize)(this.config.outputLanguage, `快速问答过程中出错: ${errMsg}`, `An error occurred during fast Q&A: ${errMsg}`),
1898
+ confidence: 0,
1899
+ rounds: 0,
1900
+ totalDurationMs: Date.now() - startTime,
1901
+ terminationReason: quotaExceeded ? 'max_budget_usd' : 'execution_error',
1902
+ terminationMessage: errMsg,
1903
+ };
1904
+ }
1905
+ finally {
1906
+ this.activeAnalyses.delete(sessionId);
1907
+ try {
1908
+ if (!delegatedRetry) {
1909
+ metricsCollector.recordTurn();
1910
+ (0, agentMetrics_1.persistSessionMetrics)(metricsCollector.summarize());
1911
+ }
1912
+ }
1913
+ catch (metricsErr) {
1914
+ console.warn('[ClaudeRuntime] Failed to persist quick metrics:', metricsErr.message);
1915
+ }
1916
+ }
1917
+ }
1918
+ removeSession(sessionId) {
1919
+ // Cancel any pending debounced save to prevent stale write after sync save
1920
+ const pendingTimer = saveTimers.get(this.sessionMap);
1921
+ if (pendingTimer) {
1922
+ clearTimeout(pendingTimer);
1923
+ saveTimers.delete(this.sessionMap);
1924
+ }
1925
+ this.removeSessionMapEntries(sessionId);
1926
+ this.artifactStores.delete(sessionId);
1927
+ this.sessionNotes.delete(sessionId);
1928
+ this.sessionSqlErrors.delete(sessionId);
1929
+ this.sessionPlans.delete(sessionId);
1930
+ this.sessionHypotheses.delete(sessionId);
1931
+ this.sessionUncertaintyFlags.delete(sessionId);
1932
+ this.activeAnalyses.delete(sessionId);
1933
+ if (enterpriseSessionMapDbWritesEnabled()) {
1934
+ try {
1935
+ (0, runtimeSnapshotStore_1.deleteClaudeSessionMapRuntimeSnapshots)(sessionId);
1936
+ }
1937
+ catch (err) {
1938
+ console.warn('[ClaudeRuntime] Failed to delete runtime_snapshots session map:', err.message);
1939
+ }
1940
+ }
1941
+ if (legacySessionMapWritesEnabled()) {
1942
+ // Use immediate save — session is being removed, must persist before cleanup completes
1943
+ savePersistedSessionMapSync(this.sessionMap);
1944
+ }
1945
+ }
1946
+ /** Clean up all session-scoped state for a given session. */
1947
+ cleanupSession(sessionId) {
1948
+ this.removeSession(sessionId);
1949
+ }
1950
+ /** P1-R3: Public getter for session notes — used by report generation. */
1951
+ getSessionNotes(sessionId) {
1952
+ return this.sessionNotes.get(sessionId) || [];
1953
+ }
1954
+ /** P1-R3: Public getter for current analysis plan — used by report generation. */
1955
+ getSessionPlan(sessionId) {
1956
+ return this.sessionPlans.get(sessionId)?.current ?? null;
1957
+ }
1958
+ /** P1-R3: Public getter for uncertainty flags — used by report generation. */
1959
+ getSessionUncertaintyFlags(sessionId) {
1960
+ return this.sessionUncertaintyFlags.get(sessionId) || [];
1961
+ }
1962
+ /** P1-1: Public getter for plan history — used for persistence. */
1963
+ getSessionPlanHistory(sessionId) {
1964
+ return this.sessionPlans.get(sessionId)?.history || [];
1965
+ }
1966
+ // ===========================================================================
1967
+ // Snapshot — atomic serialization / deserialization boundary
1968
+ // ===========================================================================
1969
+ /**
1970
+ * Take a snapshot of all session state for atomic persistence.
1971
+ *
1972
+ * Reads from ClaudeRuntime's 7 internal Maps (notes, plans, hypotheses,
1973
+ * flags, artifacts, architectureCache, sessionMap) and merges with
1974
+ * session-level arrays provided by the route layer.
1975
+ *
1976
+ * @param sessionId - The SmartPerfetto session ID
1977
+ * @param traceId - The trace ID
1978
+ * @param sessionFields - Session-level arrays from AnalysisSession (route layer)
1979
+ */
1980
+ takeSnapshot(sessionId, traceId, sessionFields) {
1981
+ const notes = this.sessionNotes.get(sessionId) || [];
1982
+ const planState = this.sessionPlans.get(sessionId);
1983
+ const claudeHypotheses = this.sessionHypotheses.get(sessionId) || [];
1984
+ const flags = this.sessionUncertaintyFlags.get(sessionId) || [];
1985
+ const artifactStore = this.artifactStores.get(sessionId);
1986
+ const architecture = this.architectureCache.get(traceId);
1987
+ const sessionMapEntry = this.sessionMap.get(this.buildSessionMapKey(sessionId, sessionFields.referenceTraceId));
1988
+ const sdkSessionId = isFreshFullSdkSessionEntry(sessionMapEntry)
1989
+ ? sessionMapEntry.sdkSessionId
1990
+ : undefined;
1991
+ return {
1992
+ version: 1,
1993
+ snapshotTimestamp: Date.now(),
1994
+ sessionId,
1995
+ traceId,
1996
+ // Session fields (route layer) — fields match SessionFieldsForSnapshot exactly
1997
+ ...sessionFields,
1998
+ // ClaudeRuntime Maps
1999
+ analysisNotes: notes,
2000
+ analysisPlan: planState?.current ?? null,
2001
+ planHistory: planState?.history ?? [],
2002
+ uncertaintyFlags: flags,
2003
+ claudeHypotheses: claudeHypotheses.length > 0 ? claudeHypotheses : undefined,
2004
+ // Cached detection
2005
+ architecture,
2006
+ ...(sdkSessionId ? { sdkSessionId, sdkSessionMode: 'full' } : {}),
2007
+ agentRuntimeKind: 'claude-agent-sdk',
2008
+ agentRuntimeProviderId: sessionFields.agentRuntimeProviderId,
2009
+ agentRuntimeProviderSnapshotHash: sessionFields.agentRuntimeProviderSnapshotHash,
2010
+ // Artifacts
2011
+ artifacts: artifactStore?.serialize(),
2012
+ };
2013
+ }
2014
+ /**
2015
+ * Restore all ClaudeRuntime Maps from a persisted snapshot.
2016
+ *
2017
+ * Called during session resume to repopulate the 7 internal Maps
2018
+ * that are normally built up during analysis.
2019
+ *
2020
+ * @param sessionId - The SmartPerfetto session ID
2021
+ * @param traceId - The trace ID (for architectureCache key)
2022
+ * @param snapshot - The persisted snapshot to restore from
2023
+ */
2024
+ restoreFromSnapshot(sessionId, traceId, snapshot) {
2025
+ if (snapshot.analysisNotes.length > 0) {
2026
+ this.sessionNotes.set(sessionId, [...snapshot.analysisNotes]);
2027
+ }
2028
+ if (snapshot.analysisPlan || snapshot.planHistory.length > 0) {
2029
+ this.sessionPlans.set(sessionId, {
2030
+ current: snapshot.analysisPlan,
2031
+ history: snapshot.planHistory,
2032
+ });
2033
+ }
2034
+ if (snapshot.claudeHypotheses && snapshot.claudeHypotheses.length > 0) {
2035
+ this.sessionHypotheses.set(sessionId, [...snapshot.claudeHypotheses]);
2036
+ }
2037
+ if (snapshot.uncertaintyFlags.length > 0) {
2038
+ this.sessionUncertaintyFlags.set(sessionId, [...snapshot.uncertaintyFlags]);
2039
+ }
2040
+ if (snapshot.artifacts && snapshot.artifacts.length > 0) {
2041
+ this.artifactStores.set(sessionId, artifactStore_1.ArtifactStore.fromSnapshot(snapshot.artifacts));
2042
+ }
2043
+ if (snapshot.architecture) {
2044
+ this.architectureCache.set(traceId, snapshot.architecture);
2045
+ }
2046
+ if (snapshot.sdkSessionId && snapshot.sdkSessionMode === 'full') {
2047
+ this.sessionMap.set(this.buildSessionMapKey(sessionId, snapshot.referenceTraceId), {
2048
+ sdkSessionId: snapshot.sdkSessionId,
2049
+ updatedAt: snapshot.snapshotTimestamp || Date.now(),
2050
+ mode: 'full',
2051
+ });
2052
+ }
2053
+ }
2054
+ /** P0-1: Convert agentv3 Hypothesis to agentProtocol Hypothesis format for AnalysisResult. */
2055
+ toProtocolHypothesis(h) {
2056
+ const statusMap = {
2057
+ formed: 'proposed',
2058
+ confirmed: 'confirmed',
2059
+ rejected: 'rejected',
2060
+ };
2061
+ const confidenceMap = { formed: 0.5, confirmed: 0.85, rejected: 0.1 };
2062
+ return {
2063
+ id: h.id,
2064
+ description: h.statement,
2065
+ status: statusMap[h.status] || 'proposed',
2066
+ confidence: confidenceMap[h.status] ?? 0.5,
2067
+ supportingEvidence: h.evidence && h.status === 'confirmed' ? [{ id: `${h.id}-ev`, type: 'observation', description: h.evidence, source: 'claude', strength: 0.8 }] : [],
2068
+ contradictingEvidence: h.evidence && h.status === 'rejected' ? [{ id: `${h.id}-ev`, type: 'observation', description: h.evidence, source: 'claude', strength: 0.8 }] : [],
2069
+ proposedBy: 'claude',
2070
+ relevantAgents: ['claude'],
2071
+ createdAt: h.formedAt,
2072
+ updatedAt: h.resolvedAt || h.formedAt,
2073
+ };
2074
+ }
2075
+ reset() {
2076
+ this.architectureCache.clear();
2077
+ this.vendorCache.clear();
2078
+ this.completenessCache.clear();
2079
+ // Also clear all session-scoped stores to prevent unbounded growth
2080
+ this.artifactStores.clear();
2081
+ this.sessionNotes.clear();
2082
+ this.sessionSqlErrors.clear();
2083
+ this.sessionPlans.clear();
2084
+ this.sessionHypotheses.clear();
2085
+ this.sessionUncertaintyFlags.clear();
2086
+ this.activeAnalyses.clear();
2087
+ }
2088
+ emitUpdate(update) {
2089
+ this.emit('update', update);
2090
+ }
2091
+ /**
2092
+ * Collect the most recent findings from previous turns for system prompt injection.
2093
+ * Caps at 5 findings to prevent unbounded prompt growth.
2094
+ */
2095
+ collectPreviousFindings(sessionContext, maxTurns) {
2096
+ try {
2097
+ let turns = sessionContext.getAllTurns?.() || [];
2098
+ if (maxTurns && maxTurns > 0) {
2099
+ turns = turns.slice(-maxTurns);
2100
+ }
2101
+ return turns.flatMap((turn) => turn.findings || []).slice(-5);
2102
+ }
2103
+ catch {
2104
+ return [];
2105
+ }
2106
+ }
2107
+ /**
2108
+ * Build a compact entity context string for the system prompt.
2109
+ * Gives Claude awareness of known frames/sessions for drill-down resolution.
2110
+ */
2111
+ buildEntityContext(entityStore) {
2112
+ try {
2113
+ const stats = entityStore.getStats();
2114
+ if (stats.totalEntityCount === 0)
2115
+ return undefined;
2116
+ const lines = [];
2117
+ const frames = entityStore.getAllFrames?.() || [];
2118
+ if (frames.length > 0) {
2119
+ lines.push(`**帧 (${frames.length})**:`);
2120
+ for (const f of frames.slice(0, 15)) {
2121
+ const parts = [`frame_id=${f.frame_id}`];
2122
+ if (f.start_ts)
2123
+ parts.push(`ts=${f.start_ts}`);
2124
+ if (f.jank_type)
2125
+ parts.push(`jank=${f.jank_type}`);
2126
+ if (f.dur_ms)
2127
+ parts.push(`dur=${f.dur_ms}ms`);
2128
+ if (f.process_name)
2129
+ parts.push(`proc=${f.process_name}`);
2130
+ lines.push(`- ${parts.join(', ')}`);
2131
+ }
2132
+ if (frames.length > 15)
2133
+ lines.push(`- ...及其他 ${frames.length - 15} 帧`);
2134
+ }
2135
+ const sessions = entityStore.getAllSessions?.() || [];
2136
+ if (sessions.length > 0) {
2137
+ lines.push(`**滑动会话 (${sessions.length})**:`);
2138
+ for (const s of sessions.slice(0, 8)) {
2139
+ const parts = [`session_id=${s.session_id}`];
2140
+ if (s.start_ts)
2141
+ parts.push(`ts=${s.start_ts}`);
2142
+ if (s.jank_count)
2143
+ parts.push(`janks=${s.jank_count}`);
2144
+ if (s.process_name)
2145
+ parts.push(`proc=${s.process_name}`);
2146
+ lines.push(`- ${parts.join(', ')}`);
2147
+ }
2148
+ }
2149
+ return lines.length > 0 ? lines.join('\n') : undefined;
2150
+ }
2151
+ catch {
2152
+ return undefined;
2153
+ }
2154
+ }
2155
+ /**
2156
+ * Prepare all context needed for a Claude analysis run.
2157
+ * Extracts focus app detection, architecture detection, session context,
2158
+ * scene classification, MCP server creation, and system prompt building
2159
+ * into a single cohesive preparation phase.
2160
+ */
2161
+ async prepareAnalysisContext(query, sessionId, traceId, options, precomputed) {
2162
+ // Phase 0: Selection context logging
2163
+ if (options.selectionContext) {
2164
+ const sc = options.selectionContext;
2165
+ const detail = sc.kind === 'area'
2166
+ ? `startNs=${sc.startNs}, endNs=${sc.endNs}`
2167
+ : `eventId=${sc.eventId}, ts=${sc.ts}`;
2168
+ console.log(`[ClaudeRuntime] Selection context received: kind=${sc.kind}, ${detail}`);
2169
+ }
2170
+ // Phase 0.5: Detect focus apps from trace data (reuse precomputed if available)
2171
+ let effectivePackageName = options.packageName;
2172
+ const focusResult = precomputed?.focusResult ?? await (0, focusAppDetector_1.detectFocusApps)(this.traceProcessorService, traceId);
2173
+ if (focusResult.primaryApp) {
2174
+ if (!effectivePackageName) {
2175
+ effectivePackageName = focusResult.primaryApp;
2176
+ console.log(`[ClaudeRuntime] Auto-detected focus app: ${effectivePackageName} (via ${focusResult.method})`);
2177
+ }
2178
+ else {
2179
+ console.log(`[ClaudeRuntime] User-provided packageName: ${effectivePackageName}, also detected: ${focusResult.apps.map(a => a.packageName).join(', ')}`);
2180
+ }
2181
+ this.emitUpdate({
2182
+ type: 'progress',
2183
+ content: {
2184
+ phase: 'starting',
2185
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, `检测到焦点应用: ${focusResult.primaryApp} (${focusResult.method})`, `Detected focus app: ${focusResult.primaryApp} (${focusResult.method})`),
2186
+ },
2187
+ timestamp: Date.now(),
2188
+ });
2189
+ }
2190
+ // Phase 1: Skill executor setup
2191
+ const skillExecutor = (0, skillExecutor_1.createSkillExecutor)(this.traceProcessorService);
2192
+ await (0, skillLoader_1.ensureSkillRegistryInitialized)();
2193
+ skillExecutor.registerSkills(skillLoader_1.skillRegistry.getAllSkills());
2194
+ skillExecutor.setFragmentRegistry(skillLoader_1.skillRegistry.getFragmentCache());
2195
+ // Phase 2: Architecture detection (LRU cached per traceId)
2196
+ let architecture = this.architectureCache.get(traceId);
2197
+ if (architecture) {
2198
+ // LRU touch: delete and re-insert to move to end of Map iteration order
2199
+ this.architectureCache.delete(traceId);
2200
+ this.architectureCache.set(traceId, architecture);
2201
+ }
2202
+ else {
2203
+ try {
2204
+ const detector = (0, architectureDetector_1.createArchitectureDetector)();
2205
+ architecture = await detector.detect({
2206
+ traceId,
2207
+ traceProcessorService: this.traceProcessorService,
2208
+ packageName: effectivePackageName,
2209
+ });
2210
+ if (architecture) {
2211
+ this.architectureCache.set(traceId, architecture);
2212
+ // LRU eviction: remove oldest entry (first key in Map)
2213
+ if (this.architectureCache.size > 50) {
2214
+ const firstKey = this.architectureCache.keys().next().value;
2215
+ if (firstKey)
2216
+ this.architectureCache.delete(firstKey);
2217
+ }
2218
+ }
2219
+ this.emitUpdate({ type: 'architecture_detected', content: { architecture }, timestamp: Date.now() });
2220
+ }
2221
+ catch (err) {
2222
+ console.warn('[ClaudeRuntime] Architecture detection failed:', err.message);
2223
+ }
2224
+ }
2225
+ // Phase 2.5: Vendor detection (LRU cached per traceId, reuses SkillAnalysisAdapter.detectVendor)
2226
+ let detectedVendor = this.vendorCache.get(traceId) ?? null;
2227
+ if (!detectedVendor) {
2228
+ try {
2229
+ const adapter = (0, skillAnalysisAdapter_1.getSkillAnalysisAdapter)(this.traceProcessorService);
2230
+ await adapter.ensureInitialized();
2231
+ const vendorResult = await adapter.detectVendor(traceId);
2232
+ detectedVendor = vendorResult.vendor;
2233
+ if (detectedVendor && detectedVendor !== 'aosp') {
2234
+ this.vendorCache.set(traceId, detectedVendor);
2235
+ // LRU eviction: match architectureCache limit
2236
+ if (this.vendorCache.size > 50) {
2237
+ const firstKey = this.vendorCache.keys().next().value;
2238
+ if (firstKey)
2239
+ this.vendorCache.delete(firstKey);
2240
+ }
2241
+ }
2242
+ }
2243
+ catch (err) {
2244
+ console.warn('[ClaudeRuntime] Vendor detection failed:', err.message);
2245
+ }
2246
+ }
2247
+ // Phase 2.8: Comparison context (dual-trace mode)
2248
+ let comparisonContext;
2249
+ const referenceTraceId = options.referenceTraceId;
2250
+ if (referenceTraceId) {
2251
+ console.log(`[ClaudeRuntime] Comparison mode: current=${traceId}, reference=${referenceTraceId}`);
2252
+ this.emitUpdate({
2253
+ type: 'progress',
2254
+ content: {
2255
+ phase: 'starting',
2256
+ message: (0, outputLanguage_1.localize)(this.config.outputLanguage, '对比模式:正在检测参考 Trace...', 'Comparison mode: detecting the reference trace...'),
2257
+ },
2258
+ timestamp: Date.now(),
2259
+ });
2260
+ // Detect reference trace focus app, architecture, AND capability handshake in parallel
2261
+ const capSql = "SELECT name FROM sqlite_master WHERE type IN ('table', 'view') AND (name LIKE 'android_%' OR name LIKE 'linux_%' OR name LIKE 'sched_%' OR name LIKE 'slices_%')";
2262
+ const [refFocusResult, refArchitecture, currentTables, refTables] = await Promise.all([
2263
+ (0, focusAppDetector_1.detectFocusApps)(this.traceProcessorService, referenceTraceId).catch(() => ({ apps: [], method: 'none', primaryApp: undefined })),
2264
+ (async () => {
2265
+ let refArch = this.architectureCache.get(referenceTraceId);
2266
+ if (!refArch) {
2267
+ try {
2268
+ const detector = (0, architectureDetector_1.createArchitectureDetector)();
2269
+ refArch = await detector.detect({
2270
+ traceId: referenceTraceId,
2271
+ traceProcessorService: this.traceProcessorService,
2272
+ packageName: undefined,
2273
+ }) ?? undefined;
2274
+ if (refArch)
2275
+ this.architectureCache.set(referenceTraceId, refArch);
2276
+ }
2277
+ catch { /* non-fatal */ }
2278
+ }
2279
+ return refArch;
2280
+ })(),
2281
+ this.traceProcessorService.query(traceId, capSql).catch((e) => { console.warn('[ClaudeRuntime] Capability query failed for current trace:', e.message); return null; }),
2282
+ this.traceProcessorService.query(referenceTraceId, capSql).catch((e) => { console.warn('[ClaudeRuntime] Capability query failed for reference trace:', e.message); return null; }),
2283
+ ]);
2284
+ // Capability handshake: compute intersection of available tables on both trace processors
2285
+ // null = query failed (unhealthy processor), non-null = actual result
2286
+ let commonCapabilities = [];
2287
+ let capabilityDiff;
2288
+ if (currentTables && refTables) {
2289
+ const currentSet = new Set(currentTables.rows.map((r) => r[0]));
2290
+ const refSet = new Set(refTables.rows.map((r) => r[0]));
2291
+ commonCapabilities = [...currentSet].filter(t => refSet.has(t));
2292
+ const currentOnly = [...currentSet].filter(t => !refSet.has(t));
2293
+ const referenceOnly = [...refSet].filter(t => !currentSet.has(t));
2294
+ if (currentOnly.length > 0 || referenceOnly.length > 0) {
2295
+ capabilityDiff = { currentOnly, referenceOnly };
2296
+ }
2297
+ }
2298
+ else {
2299
+ console.warn('[ClaudeRuntime] Capability handshake incomplete — one or both trace processors unhealthy');
2300
+ }
2301
+ comparisonContext = {
2302
+ referenceTraceId,
2303
+ referencePackageName: refFocusResult.primaryApp,
2304
+ referenceFocusApps: refFocusResult.apps.length > 0 ? refFocusResult.apps : undefined,
2305
+ referenceArchitecture: refArchitecture,
2306
+ commonCapabilities,
2307
+ capabilityDiff,
2308
+ };
2309
+ console.log(`[ClaudeRuntime] Comparison context built: refApp=${refFocusResult.primaryApp || 'unknown'}, ` +
2310
+ `refArch=${refArchitecture?.type || 'unknown'}, commonCaps=${commonCapabilities.length}, ` +
2311
+ `capDiff=${capabilityDiff ? `cur=${capabilityDiff.currentOnly.length}/ref=${capabilityDiff.referenceOnly.length}` : 'none'}`);
2312
+ }
2313
+ // Phase 2.9: Trace data completeness probe (cached per traceId, ~50ms first run)
2314
+ let traceCompleteness = this.completenessCache.get(traceId);
2315
+ if (!traceCompleteness) {
2316
+ try {
2317
+ traceCompleteness = await (0, traceCompletenessProber_1.probeTraceCompleteness)(this.traceProcessorService, traceId, architecture?.type);
2318
+ this.completenessCache.set(traceId, traceCompleteness);
2319
+ if (this.completenessCache.size > 50) {
2320
+ const firstKey = this.completenessCache.keys().next().value;
2321
+ if (firstKey)
2322
+ this.completenessCache.delete(firstKey);
2323
+ }
2324
+ }
2325
+ catch (err) {
2326
+ console.warn('[ClaudeRuntime] Trace completeness probe failed (non-fatal):', err.message);
2327
+ }
2328
+ }
2329
+ // Phase 3: Session context + conversation history (reuse precomputed if available)
2330
+ const sessionContext = precomputed?.sessionContext ?? enhancedSessionContext_1.sessionContextManager.getOrCreate(sessionId, traceId);
2331
+ const previousTurns = precomputed?.previousTurns ?? (sessionContext.getAllTurns?.() || []);
2332
+ // Composite key for comparison mode session identity isolation
2333
+ const sessionMapKey = this.buildSessionMapKey(sessionId, referenceTraceId);
2334
+ const sessionMapEntry = this.sessionMap.get(sessionMapKey);
2335
+ const existingSdkSession = isFreshFullSdkSessionEntry(sessionMapEntry)
2336
+ ? sessionMapEntry.sdkSessionId
2337
+ : undefined;
2338
+ // P0-3: SDK sessions on Anthropic's side expire after ~4 hours.
2339
+ // If the local sessionMap entry is stale, treat it as expired and inject full manual context.
2340
+ // Without this check, `hasActiveResume` stays true for stale entries, causing the system
2341
+ // to skip both SDK context (expired) AND manual context injection → silent context loss.
2342
+ const hasActiveResume = !!existingSdkSession;
2343
+ const previousFindings = hasActiveResume
2344
+ ? [] // SDK already has these in conversation history
2345
+ : this.collectPreviousFindings(sessionContext);
2346
+ const conversationSummary = previousTurns.length > 0 && !hasActiveResume
2347
+ ? sessionContext.generatePromptContext(2000)
2348
+ : undefined;
2349
+ // Phase 4: Entity store + entity context for drill-down
2350
+ const entityStore = sessionContext.getEntityStore();
2351
+ const entityContext = this.buildEntityContext(entityStore);
2352
+ // Phase 5: Scene classification + effort resolution (reuse precomputed if available)
2353
+ const sceneType = precomputed?.sceneType ?? (0, sceneClassifier_1.classifyScene)(query);
2354
+ const effectiveEffort = (0, claudeConfig_1.resolveEffort)(this.config, sceneType);
2355
+ // Phase 5.5: Pattern memory — match similar historical traces (P2-2)
2356
+ const traceFeatures = (0, analysisPatternMemory_1.extractTraceFeatures)({
2357
+ architectureType: architecture?.type,
2358
+ sceneType,
2359
+ packageName: effectivePackageName,
2360
+ });
2361
+ const patternContext = (0, analysisPatternMemory_1.buildPatternContextSection)(traceFeatures, knowledgeScopeFromOptions(options));
2362
+ const negativePatternContext = (0, analysisPatternMemory_1.buildNegativePatternSection)(traceFeatures, knowledgeScopeFromOptions(options));
2363
+ // Phase 6: Session-scoped artifact store + analysis notes
2364
+ if (!this.artifactStores.has(sessionId)) {
2365
+ this.artifactStores.set(sessionId, new artifactStore_1.ArtifactStore());
2366
+ }
2367
+ const artifactStore = this.artifactStores.get(sessionId);
2368
+ // Notes restored from SessionStateSnapshot on resume — no separate disk I/O.
2369
+ let notes = this.sessionNotes.get(sessionId);
2370
+ if (!notes) {
2371
+ notes = [];
2372
+ this.sessionNotes.set(sessionId, notes);
2373
+ }
2374
+ // Phase 6.5: Session-scoped analysis plan (P0-1: Planning capability)
2375
+ if (!this.sessionPlans.has(sessionId)) {
2376
+ this.sessionPlans.set(sessionId, { current: null, history: [] });
2377
+ }
2378
+ const analysisPlan = this.sessionPlans.get(sessionId);
2379
+ // P1-B1: Preserve plan history (max 3 recent plans) for deeper cross-turn context
2380
+ if (analysisPlan.current) {
2381
+ analysisPlan.history.push(analysisPlan.current);
2382
+ if (analysisPlan.history.length > 3)
2383
+ analysisPlan.history.shift();
2384
+ }
2385
+ const previousPlan = analysisPlan.current ?? undefined;
2386
+ analysisPlan.current = null;
2387
+ // Phase 6.6: Watchdog feedback ref — shared between runtime watchdog and MCP tools
2388
+ const watchdogWarning = { current: null };
2389
+ // Phase 6.7: Session-scoped hypotheses for hypothesis-verify cycle (P0-G4)
2390
+ if (!this.sessionHypotheses.has(sessionId)) {
2391
+ this.sessionHypotheses.set(sessionId, []);
2392
+ }
2393
+ const hypotheses = this.sessionHypotheses.get(sessionId);
2394
+ // Reset for new turn (hypotheses are per-turn, resolved within each analysis cycle)
2395
+ hypotheses.splice(0);
2396
+ // Phase 6.8: Session-scoped uncertainty flags (P1-G1)
2397
+ if (!this.sessionUncertaintyFlags.has(sessionId)) {
2398
+ this.sessionUncertaintyFlags.set(sessionId, []);
2399
+ }
2400
+ const uncertaintyFlags = this.sessionUncertaintyFlags.get(sessionId);
2401
+ uncertaintyFlags.splice(0); // Reset per turn
2402
+ // Phase 7: SQL error tracking for in-context learning
2403
+ // Seed new sessions with previously learned fix pairs from disk (cross-session learning)
2404
+ let sqlErrors = this.sessionSqlErrors.get(sessionId);
2405
+ if (!sqlErrors) {
2406
+ sqlErrors = (0, claudeMcpServer_1.loadLearnedSqlFixPairs)(5, knowledgeScopeFromOptions(options));
2407
+ this.sessionSqlErrors.set(sessionId, sqlErrors);
2408
+ }
2409
+ // Phase 8: MCP server with all session-scoped state
2410
+ // P2-G1: Destructure to get both server and auto-derived allowedTools
2411
+ const fullNotesBudget = process.env.SELF_IMPROVE_NOTES_INJECT_ENABLED === '1'
2412
+ ? new skillNotesInjector_1.SkillNotesBudget({ mode: 'full' })
2413
+ : undefined;
2414
+ const { server: mcpServer, allowedTools } = (0, claudeMcpServer_1.createClaudeMcpServer)({
2415
+ traceId,
2416
+ traceProcessorService: this.traceProcessorService,
2417
+ skillExecutor,
2418
+ packageName: effectivePackageName,
2419
+ emitUpdate: (update) => this.emitUpdate(update),
2420
+ onSkillResult: (result) => {
2421
+ if (result.displayResults) {
2422
+ this.captureEntitiesFromSkillDisplayResults(result.displayResults, entityStore);
2423
+ }
2424
+ },
2425
+ analysisNotes: notes,
2426
+ artifactStore,
2427
+ cachedArchitecture: architecture,
2428
+ cachedVendor: detectedVendor,
2429
+ recentSqlErrors: sqlErrors,
2430
+ analysisPlan,
2431
+ watchdogWarning,
2432
+ hypotheses,
2433
+ sceneType,
2434
+ uncertaintyFlags,
2435
+ referenceTraceId,
2436
+ comparisonContext,
2437
+ skillNotesBudget: fullNotesBudget,
2438
+ outputLanguage: this.config.outputLanguage,
2439
+ knowledgeScope: knowledgeScopeFromOptions(options),
2440
+ });
2441
+ // Phase 9: (removed — skillCatalog was populated but never used in prompt;
2442
+ // Claude uses list_skills MCP tool on demand instead)
2443
+ // Phase 10: Knowledge base context (non-fatal — Claude can use lookup_sql_schema tool)
2444
+ let knowledgeBaseContext;
2445
+ try {
2446
+ const kb = await (0, sqlKnowledgeBase_1.getExtendedKnowledgeBase)();
2447
+ knowledgeBaseContext = kb.getContextForAI(query, 8);
2448
+ }
2449
+ catch {
2450
+ // Non-fatal
2451
+ }
2452
+ // Phase 11: Sub-agent definitions (feature-gated)
2453
+ let agents;
2454
+ if (this.config.enableSubAgents && sceneType !== 'anr') {
2455
+ agents = (0, claudeAgentDefinitions_1.buildAgentDefinitions)(sceneType, {
2456
+ architecture,
2457
+ packageName: effectivePackageName,
2458
+ allowedTools,
2459
+ subAgentModel: this.config.subAgentModel,
2460
+ });
2461
+ }
2462
+ // Phase 12: SQL error-fix pairs for prompt injection
2463
+ const sqlErrorFixPairs = sqlErrors
2464
+ .filter((e) => e.fixedSql)
2465
+ .slice(-3)
2466
+ .map((e) => ({ errorSql: e.errorSql, errorMessage: e.errorMessage, fixedSql: e.fixedSql }));
2467
+ // Phase 13: System prompt assembly
2468
+ const traceInfo = this.traceProcessorService.getTrace(traceId);
2469
+ const analysisContextForRebuild = {
2470
+ query,
2471
+ architecture,
2472
+ packageName: effectivePackageName,
2473
+ focusApps: focusResult.apps.length > 0 ? focusResult.apps : undefined,
2474
+ focusMethod: focusResult.method,
2475
+ previousFindings,
2476
+ conversationSummary,
2477
+ knowledgeBaseContext,
2478
+ entityContext,
2479
+ sceneType,
2480
+ analysisNotes: notes.length > 0 ? notes : undefined,
2481
+ availableAgents: agents ? Object.keys(agents) : undefined,
2482
+ sqlErrorFixPairs: sqlErrorFixPairs.length > 0 ? sqlErrorFixPairs : undefined,
2483
+ patternContext,
2484
+ negativePatternContext,
2485
+ previousPlan,
2486
+ planHistory: analysisPlan.history.length > 0 ? analysisPlan.history : undefined,
2487
+ selectionContext: options.selectionContext,
2488
+ comparison: comparisonContext,
2489
+ traceCompleteness,
2490
+ traceOs: traceInfo?.traceOs,
2491
+ traceFormat: traceInfo?.traceFormat,
2492
+ outputLanguage: this.config.outputLanguage,
2493
+ };
2494
+ const systemPrompt = (0, claudeSystemPrompt_1.buildSystemPrompt)(analysisContextForRebuild);
2495
+ return {
2496
+ mcpServer,
2497
+ systemPrompt,
2498
+ effectiveEffort,
2499
+ agents,
2500
+ sessionContext,
2501
+ previousTurns,
2502
+ entityStore,
2503
+ analysisPlan,
2504
+ architecture,
2505
+ watchdogWarning,
2506
+ hypotheses,
2507
+ sceneType,
2508
+ allowedTools, // P2-G1: auto-derived from MCP server registration
2509
+ analysisContextForRebuild, // Used by correction retry to rebuild prompt with reduced budget
2510
+ sessionMapKey, // Composite key for comparison mode session identity isolation
2511
+ };
2512
+ }
2513
+ estimateConfidence(findings) {
2514
+ if (findings.length === 0)
2515
+ return 0.3;
2516
+ const avg = findings.reduce((sum, f) => sum + (f.confidence ?? 0.5), 0) / findings.length;
2517
+ return Math.min(1, Math.max(0, avg));
2518
+ }
2519
+ /** Capture entities from skill displayResults into EntityStore for multi-turn drill-down. */
2520
+ captureEntitiesFromSkillDisplayResults(displayResults, entityStore) {
2521
+ try {
2522
+ const data = {};
2523
+ for (const dr of displayResults) {
2524
+ if (dr.stepId && dr.data) {
2525
+ data[dr.stepId] = dr.data;
2526
+ }
2527
+ }
2528
+ const captured = (0, entityCapture_1.captureEntitiesFromResponses)([{
2529
+ agentId: 'claude-agent',
2530
+ success: true,
2531
+ toolResults: [{ toolName: 'invoke_skill', data }],
2532
+ }]);
2533
+ (0, entityCapture_1.applyCapturedEntities)(entityStore, captured);
2534
+ }
2535
+ catch (err) {
2536
+ console.warn('[ClaudeRuntime] Entity capture failed:', err.message);
2537
+ }
2538
+ }
2539
+ }
2540
+ exports.ClaudeRuntime = ClaudeRuntime;
2541
+ //# sourceMappingURL=claudeRuntime.js.map