@uns-kit/assistant-workflow 2.0.72

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 (295) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -0
  3. package/dist/clarification-policy.d.ts +64 -0
  4. package/dist/clarification-policy.d.ts.map +1 -0
  5. package/dist/clarification-policy.js +174 -0
  6. package/dist/clarification-policy.js.map +1 -0
  7. package/dist/decision.d.ts +37 -0
  8. package/dist/decision.d.ts.map +1 -0
  9. package/dist/decision.js +100 -0
  10. package/dist/decision.js.map +1 -0
  11. package/dist/definition-catalog-replay.d.ts +25 -0
  12. package/dist/definition-catalog-replay.d.ts.map +1 -0
  13. package/dist/definition-catalog-replay.js +54 -0
  14. package/dist/definition-catalog-replay.js.map +1 -0
  15. package/dist/definition-catalog.d.ts +45 -0
  16. package/dist/definition-catalog.d.ts.map +1 -0
  17. package/dist/definition-catalog.js +97 -0
  18. package/dist/definition-catalog.js.map +1 -0
  19. package/dist/definition-diagnostics.d.ts +17 -0
  20. package/dist/definition-diagnostics.d.ts.map +1 -0
  21. package/dist/definition-diagnostics.js +353 -0
  22. package/dist/definition-diagnostics.js.map +1 -0
  23. package/dist/definition-diff.d.ts +51 -0
  24. package/dist/definition-diff.d.ts.map +1 -0
  25. package/dist/definition-diff.js +172 -0
  26. package/dist/definition-diff.js.map +1 -0
  27. package/dist/definition-json.d.ts +53 -0
  28. package/dist/definition-json.d.ts.map +1 -0
  29. package/dist/definition-json.js +186 -0
  30. package/dist/definition-json.js.map +1 -0
  31. package/dist/definition-manifest.d.ts +41 -0
  32. package/dist/definition-manifest.d.ts.map +1 -0
  33. package/dist/definition-manifest.js +119 -0
  34. package/dist/definition-manifest.js.map +1 -0
  35. package/dist/definition-package-execution-json.d.ts +64 -0
  36. package/dist/definition-package-execution-json.d.ts.map +1 -0
  37. package/dist/definition-package-execution-json.js +245 -0
  38. package/dist/definition-package-execution-json.js.map +1 -0
  39. package/dist/definition-package-execution-replay.d.ts +14 -0
  40. package/dist/definition-package-execution-replay.d.ts.map +1 -0
  41. package/dist/definition-package-execution-replay.js +47 -0
  42. package/dist/definition-package-execution-replay.js.map +1 -0
  43. package/dist/definition-package-executor.d.ts +52 -0
  44. package/dist/definition-package-executor.d.ts.map +1 -0
  45. package/dist/definition-package-executor.js +70 -0
  46. package/dist/definition-package-executor.js.map +1 -0
  47. package/dist/definition-package-loader.d.ts +36 -0
  48. package/dist/definition-package-loader.d.ts.map +1 -0
  49. package/dist/definition-package-loader.js +56 -0
  50. package/dist/definition-package-loader.js.map +1 -0
  51. package/dist/definition-package-replay.d.ts +28 -0
  52. package/dist/definition-package-replay.d.ts.map +1 -0
  53. package/dist/definition-package-replay.js +74 -0
  54. package/dist/definition-package-replay.js.map +1 -0
  55. package/dist/definition-package-resolver.d.ts +31 -0
  56. package/dist/definition-package-resolver.d.ts.map +1 -0
  57. package/dist/definition-package-resolver.js +60 -0
  58. package/dist/definition-package-resolver.js.map +1 -0
  59. package/dist/definition-package-review.d.ts +29 -0
  60. package/dist/definition-package-review.d.ts.map +1 -0
  61. package/dist/definition-package-review.js +74 -0
  62. package/dist/definition-package-review.js.map +1 -0
  63. package/dist/definition-package-run-report.d.ts +25 -0
  64. package/dist/definition-package-run-report.d.ts.map +1 -0
  65. package/dist/definition-package-run-report.js +37 -0
  66. package/dist/definition-package-run-report.js.map +1 -0
  67. package/dist/definition-package-run.d.ts +20 -0
  68. package/dist/definition-package-run.d.ts.map +1 -0
  69. package/dist/definition-package-run.js +41 -0
  70. package/dist/definition-package-run.js.map +1 -0
  71. package/dist/definition-package-selection.d.ts +29 -0
  72. package/dist/definition-package-selection.d.ts.map +1 -0
  73. package/dist/definition-package-selection.js +68 -0
  74. package/dist/definition-package-selection.js.map +1 -0
  75. package/dist/definition-package-smoke.d.ts +74 -0
  76. package/dist/definition-package-smoke.d.ts.map +1 -0
  77. package/dist/definition-package-smoke.js +184 -0
  78. package/dist/definition-package-smoke.js.map +1 -0
  79. package/dist/definition-package.d.ts +36 -0
  80. package/dist/definition-package.d.ts.map +1 -0
  81. package/dist/definition-package.js +114 -0
  82. package/dist/definition-package.js.map +1 -0
  83. package/dist/definition-tuning-approval.d.ts +39 -0
  84. package/dist/definition-tuning-approval.d.ts.map +1 -0
  85. package/dist/definition-tuning-approval.js +207 -0
  86. package/dist/definition-tuning-approval.js.map +1 -0
  87. package/dist/definition-tuning-json.d.ts +58 -0
  88. package/dist/definition-tuning-json.d.ts.map +1 -0
  89. package/dist/definition-tuning-json.js +276 -0
  90. package/dist/definition-tuning-json.js.map +1 -0
  91. package/dist/definition-tuning-promotion.d.ts +120 -0
  92. package/dist/definition-tuning-promotion.d.ts.map +1 -0
  93. package/dist/definition-tuning-promotion.js +460 -0
  94. package/dist/definition-tuning-promotion.js.map +1 -0
  95. package/dist/definition-tuning-replay.d.ts +14 -0
  96. package/dist/definition-tuning-replay.d.ts.map +1 -0
  97. package/dist/definition-tuning-replay.js +50 -0
  98. package/dist/definition-tuning-replay.js.map +1 -0
  99. package/dist/definition-tuning-review-artifact.d.ts +56 -0
  100. package/dist/definition-tuning-review-artifact.d.ts.map +1 -0
  101. package/dist/definition-tuning-review-artifact.js +302 -0
  102. package/dist/definition-tuning-review-artifact.js.map +1 -0
  103. package/dist/definition-tuning-review.d.ts +59 -0
  104. package/dist/definition-tuning-review.d.ts.map +1 -0
  105. package/dist/definition-tuning-review.js +213 -0
  106. package/dist/definition-tuning-review.js.map +1 -0
  107. package/dist/definition-tuning-source-patch.d.ts +43 -0
  108. package/dist/definition-tuning-source-patch.d.ts.map +1 -0
  109. package/dist/definition-tuning-source-patch.js +214 -0
  110. package/dist/definition-tuning-source-patch.js.map +1 -0
  111. package/dist/definition-tuning.d.ts +73 -0
  112. package/dist/definition-tuning.d.ts.map +1 -0
  113. package/dist/definition-tuning.js +426 -0
  114. package/dist/definition-tuning.js.map +1 -0
  115. package/dist/definition.d.ts +189 -0
  116. package/dist/definition.d.ts.map +1 -0
  117. package/dist/definition.js +494 -0
  118. package/dist/definition.js.map +1 -0
  119. package/dist/direct-route-invocation.d.ts +132 -0
  120. package/dist/direct-route-invocation.d.ts.map +1 -0
  121. package/dist/direct-route-invocation.js +325 -0
  122. package/dist/direct-route-invocation.js.map +1 -0
  123. package/dist/direct-route-policy.d.ts +25 -0
  124. package/dist/direct-route-policy.d.ts.map +1 -0
  125. package/dist/direct-route-policy.js +106 -0
  126. package/dist/direct-route-policy.js.map +1 -0
  127. package/dist/eval-case.d.ts +85 -0
  128. package/dist/eval-case.d.ts.map +1 -0
  129. package/dist/eval-case.js +366 -0
  130. package/dist/eval-case.js.map +1 -0
  131. package/dist/eval-replay.d.ts +18 -0
  132. package/dist/eval-replay.d.ts.map +1 -0
  133. package/dist/eval-replay.js +41 -0
  134. package/dist/eval-replay.js.map +1 -0
  135. package/dist/eval-result.d.ts +46 -0
  136. package/dist/eval-result.d.ts.map +1 -0
  137. package/dist/eval-result.js +183 -0
  138. package/dist/eval-result.js.map +1 -0
  139. package/dist/eval-runner.d.ts +30 -0
  140. package/dist/eval-runner.d.ts.map +1 -0
  141. package/dist/eval-runner.js +57 -0
  142. package/dist/eval-runner.js.map +1 -0
  143. package/dist/eval-suite.d.ts +43 -0
  144. package/dist/eval-suite.d.ts.map +1 -0
  145. package/dist/eval-suite.js +101 -0
  146. package/dist/eval-suite.js.map +1 -0
  147. package/dist/execution-plan.d.ts +43 -0
  148. package/dist/execution-plan.d.ts.map +1 -0
  149. package/dist/execution-plan.js +187 -0
  150. package/dist/execution-plan.js.map +1 -0
  151. package/dist/hosted-tool-policy.d.ts +70 -0
  152. package/dist/hosted-tool-policy.d.ts.map +1 -0
  153. package/dist/hosted-tool-policy.js +228 -0
  154. package/dist/hosted-tool-policy.js.map +1 -0
  155. package/dist/index.d.ts +73 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +73 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/memory-policy.d.ts +55 -0
  160. package/dist/memory-policy.d.ts.map +1 -0
  161. package/dist/memory-policy.js +187 -0
  162. package/dist/memory-policy.js.map +1 -0
  163. package/dist/memory-updates.d.ts +39 -0
  164. package/dist/memory-updates.d.ts.map +1 -0
  165. package/dist/memory-updates.js +110 -0
  166. package/dist/memory-updates.js.map +1 -0
  167. package/dist/outcome-trace.d.ts +79 -0
  168. package/dist/outcome-trace.d.ts.map +1 -0
  169. package/dist/outcome-trace.js +117 -0
  170. package/dist/outcome-trace.js.map +1 -0
  171. package/dist/outcome.d.ts +97 -0
  172. package/dist/outcome.d.ts.map +1 -0
  173. package/dist/outcome.js +160 -0
  174. package/dist/outcome.js.map +1 -0
  175. package/dist/planner-compiler.d.ts +14 -0
  176. package/dist/planner-compiler.d.ts.map +1 -0
  177. package/dist/planner-compiler.js +26 -0
  178. package/dist/planner-compiler.js.map +1 -0
  179. package/dist/planning.d.ts +36 -0
  180. package/dist/planning.d.ts.map +1 -0
  181. package/dist/planning.js +141 -0
  182. package/dist/planning.js.map +1 -0
  183. package/dist/policy-resolution.d.ts +10 -0
  184. package/dist/policy-resolution.d.ts.map +1 -0
  185. package/dist/policy-resolution.js +30 -0
  186. package/dist/policy-resolution.js.map +1 -0
  187. package/dist/run-evaluation.d.ts +29 -0
  188. package/dist/run-evaluation.d.ts.map +1 -0
  189. package/dist/run-evaluation.js +128 -0
  190. package/dist/run-evaluation.js.map +1 -0
  191. package/dist/run-parity.d.ts +24 -0
  192. package/dist/run-parity.d.ts.map +1 -0
  193. package/dist/run-parity.js +36 -0
  194. package/dist/run-parity.js.map +1 -0
  195. package/dist/run-report-batch.d.ts +150 -0
  196. package/dist/run-report-batch.d.ts.map +1 -0
  197. package/dist/run-report-batch.js +391 -0
  198. package/dist/run-report-batch.js.map +1 -0
  199. package/dist/run-report-json.d.ts +76 -0
  200. package/dist/run-report-json.d.ts.map +1 -0
  201. package/dist/run-report-json.js +451 -0
  202. package/dist/run-report-json.js.map +1 -0
  203. package/dist/run-report.d.ts +22 -0
  204. package/dist/run-report.d.ts.map +1 -0
  205. package/dist/run-report.js +46 -0
  206. package/dist/run-report.js.map +1 -0
  207. package/dist/run.d.ts +20 -0
  208. package/dist/run.d.ts.map +1 -0
  209. package/dist/run.js +36 -0
  210. package/dist/run.js.map +1 -0
  211. package/dist/tool-bindings.d.ts +42 -0
  212. package/dist/tool-bindings.d.ts.map +1 -0
  213. package/dist/tool-bindings.js +124 -0
  214. package/dist/tool-bindings.js.map +1 -0
  215. package/dist/tool-capabilities.d.ts +37 -0
  216. package/dist/tool-capabilities.d.ts.map +1 -0
  217. package/dist/tool-capabilities.js +91 -0
  218. package/dist/tool-capabilities.js.map +1 -0
  219. package/dist/tool-executor.d.ts +63 -0
  220. package/dist/tool-executor.d.ts.map +1 -0
  221. package/dist/tool-executor.js +176 -0
  222. package/dist/tool-executor.js.map +1 -0
  223. package/dist/tool-fixtures.d.ts +18 -0
  224. package/dist/tool-fixtures.d.ts.map +1 -0
  225. package/dist/tool-fixtures.js +52 -0
  226. package/dist/tool-fixtures.js.map +1 -0
  227. package/dist/tool-invocations.d.ts +31 -0
  228. package/dist/tool-invocations.d.ts.map +1 -0
  229. package/dist/tool-invocations.js +79 -0
  230. package/dist/tool-invocations.js.map +1 -0
  231. package/dist/tool-provider-executors.d.ts +43 -0
  232. package/dist/tool-provider-executors.d.ts.map +1 -0
  233. package/dist/tool-provider-executors.js +59 -0
  234. package/dist/tool-provider-executors.js.map +1 -0
  235. package/dist/tool-result-cache.d.ts +37 -0
  236. package/dist/tool-result-cache.d.ts.map +1 -0
  237. package/dist/tool-result-cache.js +173 -0
  238. package/dist/tool-result-cache.js.map +1 -0
  239. package/dist/tool-results.d.ts +41 -0
  240. package/dist/tool-results.d.ts.map +1 -0
  241. package/dist/tool-results.js +137 -0
  242. package/dist/tool-results.js.map +1 -0
  243. package/dist/tool-runtime.d.ts +46 -0
  244. package/dist/tool-runtime.d.ts.map +1 -0
  245. package/dist/tool-runtime.js +163 -0
  246. package/dist/tool-runtime.js.map +1 -0
  247. package/dist/tool-selection-evaluation.d.ts +214 -0
  248. package/dist/tool-selection-evaluation.d.ts.map +1 -0
  249. package/dist/tool-selection-evaluation.js +773 -0
  250. package/dist/tool-selection-evaluation.js.map +1 -0
  251. package/dist/tool-selection-json.d.ts +71 -0
  252. package/dist/tool-selection-json.d.ts.map +1 -0
  253. package/dist/tool-selection-json.js +284 -0
  254. package/dist/tool-selection-json.js.map +1 -0
  255. package/dist/tool-selection-policy.d.ts +81 -0
  256. package/dist/tool-selection-policy.d.ts.map +1 -0
  257. package/dist/tool-selection-policy.js +376 -0
  258. package/dist/tool-selection-policy.js.map +1 -0
  259. package/dist/tool-selection-replay.d.ts +26 -0
  260. package/dist/tool-selection-replay.d.ts.map +1 -0
  261. package/dist/tool-selection-replay.js +88 -0
  262. package/dist/tool-selection-replay.js.map +1 -0
  263. package/dist/tool-selection-rules.d.ts +46 -0
  264. package/dist/tool-selection-rules.d.ts.map +1 -0
  265. package/dist/tool-selection-rules.js +183 -0
  266. package/dist/tool-selection-rules.js.map +1 -0
  267. package/dist/tool-selection-trace-export.d.ts +37 -0
  268. package/dist/tool-selection-trace-export.d.ts.map +1 -0
  269. package/dist/tool-selection-trace-export.js +324 -0
  270. package/dist/tool-selection-trace-export.js.map +1 -0
  271. package/dist/trace-events.d.ts +14 -0
  272. package/dist/trace-events.d.ts.map +1 -0
  273. package/dist/trace-events.js +65 -0
  274. package/dist/trace-events.js.map +1 -0
  275. package/dist/trace-payload.d.ts +24 -0
  276. package/dist/trace-payload.d.ts.map +1 -0
  277. package/dist/trace-payload.js +113 -0
  278. package/dist/trace-payload.js.map +1 -0
  279. package/dist/trace-replay.d.ts +276 -0
  280. package/dist/trace-replay.d.ts.map +1 -0
  281. package/dist/trace-replay.js +685 -0
  282. package/dist/trace-replay.js.map +1 -0
  283. package/dist/trace-report.d.ts +320 -0
  284. package/dist/trace-report.d.ts.map +1 -0
  285. package/dist/trace-report.js +1394 -0
  286. package/dist/trace-report.js.map +1 -0
  287. package/dist/trace-stages.d.ts +70 -0
  288. package/dist/trace-stages.d.ts.map +1 -0
  289. package/dist/trace-stages.js +103 -0
  290. package/dist/trace-stages.js.map +1 -0
  291. package/dist/value-readers.d.ts +20 -0
  292. package/dist/value-readers.d.ts.map +1 -0
  293. package/dist/value-readers.js +82 -0
  294. package/dist/value-readers.js.map +1 -0
  295. package/package.json +341 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-report.js","sourceRoot":"","sources":["../src/trace-report.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n buildAssistantWorkflowTraceEvalCandidate,\n buildAssistantWorkflowTraceSummary,\n collectAssistantWorkflowTraceTuningSignals,\n getAssistantWorkflowUnmodeledToolCalls,\n getMissingWorkflowSelectionCandidateTools,\n hasAssistantWorkflowConstrainedToolSelectionEvidence,\n type AssistantWorkflowTraceEvalCandidate,\n type AssistantWorkflowTraceSummary,\n type AssistantWorkflowTraceTuningSignal,\n type AssistantWorkflowTraceTuningSignalName,\n} from \"./trace-replay.js\";\nimport {\n readAssistantWorkflowTraceString as normalizeNullableString,\n type AssistantWorkflowTraceEvent,\n} from \"./trace-events.js\";\nimport {\n ASSISTANT_WORKFLOW_RUN_REPORT_JSON_SCHEMA_VERSION,\n type AssistantWorkflowSerializedRunReport,\n} from \"./run-report-json.js\";\nimport { ASSISTANT_WORKFLOW_TRACE_STAGE } from \"./trace-stages.js\";\nimport type { AssistantWorkflowRunEvaluationSignal } from \"./run-evaluation.js\";\nimport type { AssistantWorkflowRunReportStatus } from \"./run-report.js\";\nimport type {\n AssistantWorkflowDefinition,\n AssistantWorkflowDirectRouteDefinition,\n} from \"./definition.js\";\nimport { buildAssistantWorkflowToolSelectionProfileKey } from \"./tool-selection-policy.js\";\n\nexport type AssistantWorkflowTraceReportSourceRow = {\n debugId?: string | null;\n requestId: string;\n threadId?: string | null;\n userId?: string | null;\n provider?: string | null;\n model?: string | null;\n feedback?: string | null;\n feedbackAt?: string | null;\n createdAt?: string | null;\n traceEvents: readonly AssistantWorkflowTraceEvent[];\n};\n\nexport type AssistantWorkflowTraceReportOptions = {\n onlyInteresting?: boolean;\n workflow?: AssistantWorkflowDefinition | null;\n /**\n * Restrict all report aggregates, suggestions, tuning candidates, and\n * serialized run-report inputs to trace rows emitted by these workflow ids.\n * Rows without a recorded workflow identity are excluded when a scope is set.\n */\n workflowIds?: readonly string[] | null;\n /**\n * Restrict all report aggregates, suggestions, tuning candidates, and\n * serialized run-report inputs to trace rows emitted by these workflow versions.\n * Rows without a recorded workflow identity are excluded when a scope is set.\n */\n workflowVersions?: readonly number[] | null;\n};\n\nexport type AssistantWorkflowTraceReportRow = {\n debugId: string | null;\n requestId: string;\n threadId: string | null;\n userId: string | null;\n provider: string | null;\n model: string | null;\n feedback: string | null;\n feedbackAt: string | null;\n createdAt: string | null;\n summary: AssistantWorkflowTraceSummary;\n evalCandidate: AssistantWorkflowTraceEvalCandidate | null;\n tuningSignals: AssistantWorkflowTraceTuningSignal[];\n directRouteStrategies: AssistantWorkflowTraceReportDirectRouteStrategy[];\n};\n\nexport type AssistantWorkflowTraceReportCount = {\n key: string;\n count: number;\n};\n\n/**\n * Aggregates actual provider tool sets rather than pre-runtime candidates.\n * Numeric totals are accompanied by observation counts because older trace\n * records may not include every metric.\n */\nexport type AssistantWorkflowTraceReportToolSelectionSegment = {\n segmentKey: string;\n workflowId: string | null;\n workflowVersion: number | null;\n workflowProfileKey: string | null;\n intentId: string;\n hop: number | null;\n mode: string | null;\n selectionReason: string | null;\n pruningEnabled: boolean | null;\n /** Order-insensitive signature of the actual provider tool definitions. */\n toolSignature: string;\n toolNames: string[];\n authoritySource: string | null;\n authorityReason: string | null;\n selectionCount: number;\n toolCountObservationCount: number;\n toolCountTotal: number;\n averageToolCount: number | null;\n totalToolCountObservationCount: number;\n totalToolCountTotal: number;\n averageTotalToolCount: number | null;\n schemaCostSource: string | null;\n schemaCharsObservationCount: number;\n schemaCharsTotal: number;\n averageSchemaChars: number | null;\n savedCharsObservationCount: number;\n savedCharsTotal: number;\n averageSavedChars: number | null;\n};\n\nexport type AssistantWorkflowTraceReportTuningSignalCount = {\n name: AssistantWorkflowTraceTuningSignalName;\n severity: \"info\" | \"warning\";\n count: number;\n};\n\nexport type AssistantWorkflowTraceReportDirectRouteStrategyStatus =\n | \"declared\"\n | \"workflow_not_provided\"\n | \"route_not_declared\"\n | \"strategy_not_declared\";\n\nexport type AssistantWorkflowTraceReportDirectRouteStrategy = {\n route: string;\n strategy: string;\n definitionRouteId: string | null;\n declared: boolean | null;\n status: AssistantWorkflowTraceReportDirectRouteStrategyStatus;\n};\n\nexport type AssistantWorkflowTraceReportSuggestionKind =\n | \"review_missing_required_tool\"\n | \"review_workflow_tool_selection_gap\"\n | \"review_unmodeled_selected_tool\"\n | \"review_classifier_extra_tool\"\n | \"review_clarification_policy\"\n | \"review_memory_patch_equivalence\"\n | \"review_direct_route_strategy\"\n | \"review_trace_error\"\n | \"review_quality_signal\"\n | \"promote_bad_feedback_eval\";\n\nexport type AssistantWorkflowTraceReportSuggestion = {\n id: string;\n kind: AssistantWorkflowTraceReportSuggestionKind;\n severity: \"info\" | \"warning\";\n intent: string | null;\n tool: string | null;\n signal: string | null;\n count: number;\n requestIds: string[];\n rationale: string;\n suggestedAction: string;\n};\n\nexport type AssistantWorkflowTraceReport = {\n generatedAt: string;\n /** Requested workflow-id scope, normalized and sorted. */\n workflowIds: string[];\n /** Requested workflow-version scope, normalized and sorted. */\n workflowVersions: number[];\n rowCount: number;\n /** Source rows remaining after a requested workflow scope, before `onlyInteresting`. */\n scopedSourceRowCount: number;\n sourceRowCount: number;\n evalCandidateCount: number;\n interestingRowCount: number;\n qualityFlaggedRowCount: number;\n errorRowCount: number;\n feedbackCounts: AssistantWorkflowTraceReportCount[];\n intentCounts: AssistantWorkflowTraceReportCount[];\n authorityCounts: AssistantWorkflowTraceReportCount[];\n authorityReasonCounts: AssistantWorkflowTraceReportCount[];\n workflowSelectionOptionalToolModeCounts: AssistantWorkflowTraceReportCount[];\n workflowSelectionExcludedOptionalToolCounts: AssistantWorkflowTraceReportCount[];\n workflowSelectionActiveProfileCounts: AssistantWorkflowTraceReportCount[];\n workflowSelectionProfileToolCounts: AssistantWorkflowTraceReportCount[];\n activePlanningStepProfileCounts: AssistantWorkflowTraceReportCount[];\n profileStepCounts: AssistantWorkflowTraceReportCount[];\n outcomeKindCounts: AssistantWorkflowTraceReportCount[];\n handledOutcomeKindCounts: AssistantWorkflowTraceReportCount[];\n clarificationComparisonMatchedCounts: AssistantWorkflowTraceReportCount[];\n clarificationComparisonMissingRuleCounts: AssistantWorkflowTraceReportCount[];\n clarificationComparisonUnexpectedRuleCounts: AssistantWorkflowTraceReportCount[];\n directRoutePolicyEnabledCounts: AssistantWorkflowTraceReportCount[];\n directRoutePolicyDisabledReasonCounts: AssistantWorkflowTraceReportCount[];\n directRouteGapReasonCounts: AssistantWorkflowTraceReportCount[];\n directRouteObservedStrategyCounts: AssistantWorkflowTraceReportCount[];\n directRouteUndeclaredStrategyCounts: AssistantWorkflowTraceReportCount[];\n directRouteDoneCounts: AssistantWorkflowTraceReportCount[];\n directRouteRecoveredCounts: AssistantWorkflowTraceReportCount[];\n directRouteErrorCounts: AssistantWorkflowTraceReportCount[];\n directRouteSkipReasonCounts: AssistantWorkflowTraceReportCount[];\n memoryChangedSlotCounts: AssistantWorkflowTraceReportCount[];\n memoryChangedProfileFieldCounts: AssistantWorkflowTraceReportCount[];\n memorySkippedPatchReasonCounts: AssistantWorkflowTraceReportCount[];\n memoryPatchEquivalenceCounts: AssistantWorkflowTraceReportCount[];\n memoryPatchDerivationCounts: AssistantWorkflowTraceReportCount[];\n memoryPatchMismatchedProfileFieldCounts: AssistantWorkflowTraceReportCount[];\n memoryPatchWriteSourceCounts: AssistantWorkflowTraceReportCount[];\n memoryPatchWriteReasonCounts: AssistantWorkflowTraceReportCount[];\n memoryIntentWritePolicyIntentCounts: AssistantWorkflowTraceReportCount[];\n memoryIntentWritePolicyEquivalenceCounts: AssistantWorkflowTraceReportCount[];\n memoryIntentWritePolicySkippedPatchReasonCounts: AssistantWorkflowTraceReportCount[];\n memoryIntentWritePolicyMismatchedProfileFieldCounts: AssistantWorkflowTraceReportCount[];\n threadProfileWriteChangedFieldCounts: AssistantWorkflowTraceReportCount[];\n threadProfileWriteSourceCounts: AssistantWorkflowTraceReportCount[];\n threadProfileWriteReasonCounts: AssistantWorkflowTraceReportCount[];\n toolRuntimeBindingStatusCounts: AssistantWorkflowTraceReportCount[];\n toolRuntimeBindingAdapterCounts: AssistantWorkflowTraceReportCount[];\n toolRuntimeBindingPolicyMismatchCounts: AssistantWorkflowTraceReportCount[];\n effectiveToolSelectionModeCounts: AssistantWorkflowTraceReportCount[];\n effectiveToolSelectionReasonCounts: AssistantWorkflowTraceReportCount[];\n effectiveToolSelectionToolCounts: AssistantWorkflowTraceReportCount[];\n effectiveToolSelectionSegments: AssistantWorkflowTraceReportToolSelectionSegment[];\n toolCallCounts: AssistantWorkflowTraceReportCount[];\n tuningSignalCounts: AssistantWorkflowTraceReportTuningSignalCount[];\n suggestions: AssistantWorkflowTraceReportSuggestion[];\n rows: AssistantWorkflowTraceReportRow[];\n};\n\nexport type AssistantWorkflowMemoryPatchReadinessStatus =\n | \"ready\"\n | \"blocked\"\n | \"insufficient_evidence\";\n\nexport type AssistantWorkflowMemoryPatchReadinessOptions = {\n /** Restrict evidence to trace rows emitted by these workflow ids. */\n workflowIds?: readonly string[] | null;\n /** Restrict evidence to trace rows emitted by these workflow versions. */\n workflowVersions?: readonly number[] | null;\n minEquivalentPatchCount?: number | null;\n minGuardedWorkflowWriteCount?: number | null;\n minWorkflowPatchWriteCount?: number | null;\n minWorkflowModePatchWriteCount?: number | null;\n minPatchDerivationCounts?: readonly AssistantWorkflowMemoryPatchDerivationReadinessRequirement[] | null;\n};\n\nexport type AssistantWorkflowMemoryPatchDerivationReadinessRequirement = {\n key: string;\n minCount: number;\n};\n\nexport type AssistantWorkflowMemoryPatchReadiness = {\n status: AssistantWorkflowMemoryPatchReadinessStatus;\n ready: boolean;\n workflowIds: string[];\n workflowVersions: number[];\n scopedRowCount: number;\n minEquivalentPatchCount: number;\n equivalentPatchCount: number;\n mismatchPatchCount: number;\n unknownPatchCount: number;\n totalPatchCount: number;\n guardedWorkflowWriteCount: number;\n workflowModePatchWriteCount: number;\n minWorkflowModePatchWriteCount: number;\n workflowPatchWriteCount: number;\n minWorkflowPatchWriteCount: number;\n guardedLegacyFallbackCount: number;\n patchDerivationCounts: AssistantWorkflowTraceReportCount[];\n requiredPatchDerivationCounts: AssistantWorkflowTraceReportCount[];\n mismatchedProfileFieldCounts: AssistantWorkflowTraceReportCount[];\n writeSourceCounts: AssistantWorkflowTraceReportCount[];\n writeReasonCounts: AssistantWorkflowTraceReportCount[];\n blockingReasons: string[];\n};\n\nexport type AssistantWorkflowIntentMemoryPolicyReadinessStatus =\n | \"ready\"\n | \"blocked\"\n | \"insufficient_evidence\";\n\nexport type AssistantWorkflowIntentMemoryPolicyReadinessOptions = {\n /** Restrict evidence to trace rows emitted by these workflow ids. */\n workflowIds?: readonly string[] | null;\n /** Restrict evidence to trace rows emitted by these workflow versions. */\n workflowVersions?: readonly number[] | null;\n minObservedPolicyCount?: number | null;\n minEquivalentPolicyCount?: number | null;\n maxMismatchPolicyCount?: number | null;\n maxUnknownPolicyCount?: number | null;\n maxWriteNotAllowedCount?: number | null;\n};\n\nexport type AssistantWorkflowIntentMemoryPolicyReadiness = {\n status: AssistantWorkflowIntentMemoryPolicyReadinessStatus;\n ready: boolean;\n workflowIds: string[];\n workflowVersions: number[];\n scopedRowCount: number;\n minObservedPolicyCount: number;\n minEquivalentPolicyCount: number;\n maxMismatchPolicyCount: number;\n maxUnknownPolicyCount: number;\n maxWriteNotAllowedCount: number;\n observedPolicyCount: number;\n equivalentPolicyCount: number;\n mismatchPolicyCount: number;\n unknownPolicyCount: number;\n writeNotAllowedCount: number;\n intentCounts: AssistantWorkflowTraceReportCount[];\n mismatchedProfileFieldCounts: AssistantWorkflowTraceReportCount[];\n skippedPatchReasonCounts: AssistantWorkflowTraceReportCount[];\n blockingReasons: string[];\n};\n\nexport type AssistantWorkflowToolSelectionMetricReadinessStatus =\n | \"ready_for_review\"\n | \"blocked\"\n | \"insufficient_evidence\";\n\n/**\n * Evidence requirements for actual tool sets delivered to a model provider.\n * The caller may scope the gate to one intent or exact trace segment before\n * reviewing a runtime policy change.\n */\nexport type AssistantWorkflowToolSelectionMetricReadinessOptions = {\n workflowIds?: readonly string[] | null;\n workflowVersions?: readonly number[] | null;\n workflowProfileKeys?: readonly string[] | null;\n authoritySources?: readonly string[] | null;\n intentIds?: readonly string[] | null;\n segmentKeys?: readonly string[] | null;\n schemaCostSource?: string | null;\n minSelectionCount?: number | null;\n maxQualityFlaggedSelectionCount?: number | null;\n maxErrorSelectionCount?: number | null;\n maxBadFeedbackSelectionCount?: number | null;\n maxUnavailableOutcomeSelectionCount?: number | null;\n};\n\nexport type AssistantWorkflowToolSelectionMetricReadinessSegment =\n AssistantWorkflowTraceReportToolSelectionSegment & {\n qualityFlaggedSelectionCount: number;\n errorSelectionCount: number;\n badFeedbackSelectionCount: number;\n unavailableOutcomeSelectionCount: number;\n status: AssistantWorkflowToolSelectionMetricReadinessStatus;\n readyForReview: boolean;\n blockingReasons: string[];\n };\n\n/**\n * A review-only gate for actual provider tool-selection evidence. A ready\n * segment is eligible for human policy review, not an automatic runtime\n * change. Older or incompatible schema-cost sources are reported separately.\n */\nexport type AssistantWorkflowToolSelectionMetricReadiness = {\n status: AssistantWorkflowToolSelectionMetricReadinessStatus;\n readyForReview: boolean;\n workflowIds: string[];\n workflowVersions: number[];\n workflowProfileKeys: string[];\n authoritySources: string[];\n intentIds: string[];\n segmentKeys: string[];\n requiredSchemaCostSource: string | null;\n minSelectionCount: number;\n maxQualityFlaggedSelectionCount: number;\n maxErrorSelectionCount: number;\n maxBadFeedbackSelectionCount: number;\n maxUnavailableOutcomeSelectionCount: number;\n evaluatedSelectionCount: number;\n readySegmentCount: number;\n blockedSegmentCount: number;\n insufficientEvidenceSegmentCount: number;\n ignoredSchemaCostSourceSegmentCount: number;\n ignoredSchemaCostSourceSelectionCount: number;\n ignoredSchemaCostSourceCounts: AssistantWorkflowTraceReportCount[];\n segments: AssistantWorkflowToolSelectionMetricReadinessSegment[];\n blockingReasons: string[];\n};\n\nexport type AssistantWorkflowTraceReportRunReportExportOptions = {\n workflowId?: string | null;\n workflowVersion?: number | null;\n};\n\nexport function buildAssistantWorkflowMemoryPatchReadiness(\n report: AssistantWorkflowTraceReport,\n options: AssistantWorkflowMemoryPatchReadinessOptions = {},\n): AssistantWorkflowMemoryPatchReadiness {\n const workflowIds = normalizeStringScope(options.workflowIds);\n const workflowVersions = normalizeNumberScope(options.workflowVersions);\n const scopedRows = selectWorkflowScopedTraceRows(report.rows, workflowIds, workflowVersions);\n const scopedPatches = scopedRows.flatMap((row) => row.summary.memoryPatches);\n const minEquivalentPatchCount = normalizePositiveInt(options.minEquivalentPatchCount, 1);\n const minGuardedWorkflowWriteCount = normalizeNonNegativeInt(options.minGuardedWorkflowWriteCount, 0);\n const minWorkflowPatchWriteCount = normalizeNonNegativeInt(options.minWorkflowPatchWriteCount, 0);\n const minWorkflowModePatchWriteCount = normalizeNonNegativeInt(options.minWorkflowModePatchWriteCount, 0);\n const requiredPatchDerivationCounts = normalizePatchDerivationRequirements(options.minPatchDerivationCounts);\n const equivalenceCounts = buildStringCounts(scopedPatches.map(buildMemoryPatchEquivalenceKey));\n const derivationCounts = buildStringCounts(scopedPatches.map(buildMemoryPatchDerivationKey));\n const mismatchedProfileFieldCounts = buildStringCounts(\n scopedPatches.flatMap((patch) => patch.profilePatchMismatchedFields),\n );\n const writeSourceCounts = buildStringCounts(scopedPatches.map(buildMemoryPatchWriteSourceKey));\n const writeReasonCounts = buildStringCounts(scopedPatches.map(buildMemoryPatchWriteReasonKey));\n const equivalentPatchCount = findReportCount(equivalenceCounts, \"equivalent\");\n const mismatchPatchCount = findReportCount(equivalenceCounts, \"mismatch\");\n const unknownPatchCount = findReportCount(equivalenceCounts, \"unknown\");\n const totalPatchCount = equivalenceCounts.reduce((sum, item) => sum + item.count, 0);\n const guardedWorkflowWriteCount = findReportCount(writeSourceCounts, \"guarded:workflow_patch\");\n const workflowModePatchWriteCount = findReportCount(writeSourceCounts, \"workflow:workflow_patch\");\n const workflowPatchWriteCount = sumWriteSourceCountsBySource(writeSourceCounts, \"workflow_patch\");\n const guardedLegacyFallbackCount = findReportCount(writeSourceCounts, \"guarded:legacy_fallback\");\n const blockingReasons: string[] = [];\n\n if (equivalentPatchCount < minEquivalentPatchCount) {\n blockingReasons.push(`equivalent_patch_count_below_minimum:${equivalentPatchCount}/${minEquivalentPatchCount}`);\n }\n if (mismatchPatchCount > 0) {\n blockingReasons.push(`profile_patch_mismatch:${mismatchPatchCount}`);\n }\n if (unknownPatchCount > 0) {\n blockingReasons.push(`profile_patch_equivalence_unknown:${unknownPatchCount}`);\n }\n if (guardedLegacyFallbackCount > 0) {\n blockingReasons.push(`guarded_legacy_fallback:${guardedLegacyFallbackCount}`);\n }\n if (guardedWorkflowWriteCount < minGuardedWorkflowWriteCount) {\n blockingReasons.push(`guarded_workflow_write_count_below_minimum:${guardedWorkflowWriteCount}/${minGuardedWorkflowWriteCount}`);\n }\n if (workflowPatchWriteCount < minWorkflowPatchWriteCount) {\n blockingReasons.push(`workflow_patch_write_count_below_minimum:${workflowPatchWriteCount}/${minWorkflowPatchWriteCount}`);\n }\n if (workflowModePatchWriteCount < minWorkflowModePatchWriteCount) {\n blockingReasons.push(`workflow_mode_patch_write_count_below_minimum:${workflowModePatchWriteCount}/${minWorkflowModePatchWriteCount}`);\n }\n for (const requirement of requiredPatchDerivationCounts) {\n const observedCount = findReportCount(derivationCounts, requirement.key);\n if (observedCount < requirement.count) {\n blockingReasons.push(`patch_derivation_count_below_minimum:${requirement.key}:${observedCount}/${requirement.count}`);\n }\n }\n\n const status: AssistantWorkflowMemoryPatchReadinessStatus =\n mismatchPatchCount > 0 || unknownPatchCount > 0 || guardedLegacyFallbackCount > 0\n ? \"blocked\"\n : blockingReasons.length > 0\n ? \"insufficient_evidence\"\n : \"ready\";\n\n return {\n status,\n ready: status === \"ready\",\n workflowIds,\n workflowVersions,\n scopedRowCount: scopedRows.length,\n minEquivalentPatchCount,\n equivalentPatchCount,\n mismatchPatchCount,\n unknownPatchCount,\n totalPatchCount,\n guardedWorkflowWriteCount,\n workflowModePatchWriteCount,\n minWorkflowModePatchWriteCount,\n workflowPatchWriteCount,\n minWorkflowPatchWriteCount,\n guardedLegacyFallbackCount,\n patchDerivationCounts: derivationCounts,\n requiredPatchDerivationCounts,\n mismatchedProfileFieldCounts,\n writeSourceCounts,\n writeReasonCounts,\n blockingReasons,\n };\n}\n\nexport function buildAssistantWorkflowIntentMemoryPolicyReadiness(\n report: AssistantWorkflowTraceReport,\n options: AssistantWorkflowIntentMemoryPolicyReadinessOptions = {},\n): AssistantWorkflowIntentMemoryPolicyReadiness {\n const workflowIds = normalizeStringScope(options.workflowIds);\n const workflowVersions = normalizeNumberScope(options.workflowVersions);\n const scopedRows = selectWorkflowScopedTraceRows(report.rows, workflowIds, workflowVersions);\n const scopedIntentPolicies = scopedRows.flatMap((row) => row.summary.memoryPatches.flatMap((patch) =>\n patch.intentWritePolicy ? [patch.intentWritePolicy] : []\n ));\n const minObservedPolicyCount = normalizePositiveInt(options.minObservedPolicyCount, 3);\n const minEquivalentPolicyCount = options.minEquivalentPolicyCount === null || options.minEquivalentPolicyCount === undefined\n ? minObservedPolicyCount\n : normalizeNonNegativeInt(options.minEquivalentPolicyCount, minObservedPolicyCount);\n const maxMismatchPolicyCount = normalizeNonNegativeInt(options.maxMismatchPolicyCount, 0);\n const maxUnknownPolicyCount = normalizeNonNegativeInt(options.maxUnknownPolicyCount, 0);\n const maxWriteNotAllowedCount = normalizeNonNegativeInt(options.maxWriteNotAllowedCount, 0);\n const intentCounts = buildStringCounts(scopedIntentPolicies.flatMap((policy) => policy.intentId ? [policy.intentId] : []));\n const equivalenceCounts = buildStringCounts(scopedIntentPolicies.map(buildMemoryPatchEquivalenceKey));\n const skippedPatchReasonCounts = buildStringCounts(\n scopedIntentPolicies.flatMap((policy) => policy.skippedPatches.map(buildMemorySkippedPatchReasonKey)),\n );\n const mismatchedProfileFieldCounts = buildStringCounts(\n scopedIntentPolicies.flatMap((policy) => policy.profilePatchMismatchedFields),\n );\n const equivalentPolicyCount = findReportCount(equivalenceCounts, \"equivalent\");\n const mismatchPolicyCount = findReportCount(equivalenceCounts, \"mismatch\");\n const unknownPolicyCount = findReportCount(equivalenceCounts, \"unknown\");\n const observedPolicyCount = equivalenceCounts\n .reduce((sum, item) => sum + item.count, 0);\n const writeNotAllowedCount = skippedPatchReasonCounts\n .filter((item) => item.key.endsWith(\":write-not-allowed\"))\n .reduce((sum, item) => sum + item.count, 0);\n const blockingReasons: string[] = [];\n\n if (mismatchPolicyCount > maxMismatchPolicyCount) {\n blockingReasons.push(`intent_write_policy_mismatch:${mismatchPolicyCount}/${maxMismatchPolicyCount}`);\n }\n if (unknownPolicyCount > maxUnknownPolicyCount) {\n blockingReasons.push(`intent_write_policy_equivalence_unknown:${unknownPolicyCount}/${maxUnknownPolicyCount}`);\n }\n if (writeNotAllowedCount > maxWriteNotAllowedCount) {\n blockingReasons.push(`intent_write_policy_write_not_allowed:${writeNotAllowedCount}/${maxWriteNotAllowedCount}`);\n }\n if (observedPolicyCount < minObservedPolicyCount) {\n blockingReasons.push(`intent_write_policy_observed_count_below_minimum:${observedPolicyCount}/${minObservedPolicyCount}`);\n }\n if (equivalentPolicyCount < minEquivalentPolicyCount) {\n blockingReasons.push(`intent_write_policy_equivalent_count_below_minimum:${equivalentPolicyCount}/${minEquivalentPolicyCount}`);\n }\n\n const hardBlock = mismatchPolicyCount > maxMismatchPolicyCount ||\n unknownPolicyCount > maxUnknownPolicyCount ||\n writeNotAllowedCount > maxWriteNotAllowedCount;\n const status: AssistantWorkflowIntentMemoryPolicyReadinessStatus =\n hardBlock\n ? \"blocked\"\n : blockingReasons.length > 0\n ? \"insufficient_evidence\"\n : \"ready\";\n\n return {\n status,\n ready: status === \"ready\",\n workflowIds,\n workflowVersions,\n scopedRowCount: scopedRows.length,\n minObservedPolicyCount,\n minEquivalentPolicyCount,\n maxMismatchPolicyCount,\n maxUnknownPolicyCount,\n maxWriteNotAllowedCount,\n observedPolicyCount,\n equivalentPolicyCount,\n mismatchPolicyCount,\n unknownPolicyCount,\n writeNotAllowedCount,\n intentCounts,\n mismatchedProfileFieldCounts,\n skippedPatchReasonCounts,\n blockingReasons,\n };\n}\n\nexport function buildAssistantWorkflowToolSelectionMetricReadiness(\n report: AssistantWorkflowTraceReport,\n options: AssistantWorkflowToolSelectionMetricReadinessOptions = {},\n): AssistantWorkflowToolSelectionMetricReadiness {\n const workflowIds = normalizeStringScope(options.workflowIds);\n const workflowVersions = normalizeNumberScope(options.workflowVersions);\n const workflowProfileKeys = normalizeStringScope(options.workflowProfileKeys);\n const authoritySources = normalizeStringScope(options.authoritySources);\n const intentIds = normalizeStringScope(options.intentIds);\n const segmentKeys = normalizeStringScope(options.segmentKeys);\n const requiredSchemaCostSource = normalizeOptionalString(options.schemaCostSource);\n const minSelectionCount = normalizePositiveInt(options.minSelectionCount, 3);\n const maxQualityFlaggedSelectionCount = normalizeNonNegativeInt(options.maxQualityFlaggedSelectionCount, 0);\n const maxErrorSelectionCount = normalizeNonNegativeInt(options.maxErrorSelectionCount, 0);\n const maxBadFeedbackSelectionCount = normalizeNonNegativeInt(options.maxBadFeedbackSelectionCount, 0);\n const maxUnavailableOutcomeSelectionCount = normalizeNonNegativeInt(options.maxUnavailableOutcomeSelectionCount, 0);\n const scopedSegments = report.effectiveToolSelectionSegments.filter((segment) =>\n isToolSelectionMetricSegmentInScope(\n segment,\n workflowIds,\n workflowVersions,\n workflowProfileKeys,\n authoritySources,\n intentIds,\n segmentKeys,\n )\n );\n const ignoredSchemaCostSourceSegments = requiredSchemaCostSource\n ? scopedSegments.filter((segment) => segment.schemaCostSource !== requiredSchemaCostSource)\n : [];\n const evaluatedSegments = requiredSchemaCostSource\n ? scopedSegments.filter((segment) => segment.schemaCostSource === requiredSchemaCostSource)\n : scopedSegments;\n const evidenceCounters = buildToolSelectionMetricEvidenceCounters(report.rows);\n const segments = evaluatedSegments.map((segment) => {\n const counters = evidenceCounters.get(segment.segmentKey) ?? EMPTY_TOOL_SELECTION_METRIC_EVIDENCE_COUNTERS;\n const blockingReasons: string[] = [];\n if (counters.qualityFlaggedSelectionCount > maxQualityFlaggedSelectionCount) {\n blockingReasons.push(\n `quality_flagged_selection_count_exceeds_maximum:${counters.qualityFlaggedSelectionCount}/${maxQualityFlaggedSelectionCount}`,\n );\n }\n if (counters.errorSelectionCount > maxErrorSelectionCount) {\n blockingReasons.push(\n `error_selection_count_exceeds_maximum:${counters.errorSelectionCount}/${maxErrorSelectionCount}`,\n );\n }\n if (counters.badFeedbackSelectionCount > maxBadFeedbackSelectionCount) {\n blockingReasons.push(\n `bad_feedback_selection_count_exceeds_maximum:${counters.badFeedbackSelectionCount}/${maxBadFeedbackSelectionCount}`,\n );\n }\n if (counters.unavailableOutcomeSelectionCount > maxUnavailableOutcomeSelectionCount) {\n blockingReasons.push(\n `unavailable_outcome_selection_count_exceeds_maximum:${counters.unavailableOutcomeSelectionCount}/${maxUnavailableOutcomeSelectionCount}`,\n );\n }\n if (segment.selectionCount < minSelectionCount) {\n blockingReasons.push(`selection_count_below_minimum:${segment.selectionCount}/${minSelectionCount}`);\n }\n const hardBlock = counters.qualityFlaggedSelectionCount > maxQualityFlaggedSelectionCount ||\n counters.errorSelectionCount > maxErrorSelectionCount ||\n counters.badFeedbackSelectionCount > maxBadFeedbackSelectionCount ||\n counters.unavailableOutcomeSelectionCount > maxUnavailableOutcomeSelectionCount;\n const status: AssistantWorkflowToolSelectionMetricReadinessStatus = hardBlock\n ? \"blocked\"\n : segment.selectionCount < minSelectionCount\n ? \"insufficient_evidence\"\n : \"ready_for_review\";\n return {\n ...segment,\n ...counters,\n status,\n readyForReview: status === \"ready_for_review\",\n blockingReasons,\n };\n });\n const readySegmentCount = segments.filter((segment) => segment.status === \"ready_for_review\").length;\n const blockedSegmentCount = segments.filter((segment) => segment.status === \"blocked\").length;\n const insufficientEvidenceSegmentCount = segments.filter((segment) => segment.status === \"insufficient_evidence\").length;\n const blockingReasons: string[] = [];\n if (!segments.length) {\n blockingReasons.push(\"no_tool_selection_segments_in_scope\");\n }\n if (blockedSegmentCount > 0) {\n blockingReasons.push(`blocked_segments:${blockedSegmentCount}`);\n }\n if (insufficientEvidenceSegmentCount > 0) {\n blockingReasons.push(`insufficient_evidence_segments:${insufficientEvidenceSegmentCount}`);\n }\n const status: AssistantWorkflowToolSelectionMetricReadinessStatus = blockedSegmentCount > 0\n ? \"blocked\"\n : !segments.length || insufficientEvidenceSegmentCount > 0\n ? \"insufficient_evidence\"\n : \"ready_for_review\";\n\n return {\n status,\n readyForReview: status === \"ready_for_review\",\n workflowIds,\n workflowVersions,\n workflowProfileKeys,\n authoritySources,\n intentIds,\n segmentKeys,\n requiredSchemaCostSource,\n minSelectionCount,\n maxQualityFlaggedSelectionCount,\n maxErrorSelectionCount,\n maxBadFeedbackSelectionCount,\n maxUnavailableOutcomeSelectionCount,\n evaluatedSelectionCount: segments.reduce((sum, segment) => sum + segment.selectionCount, 0),\n readySegmentCount,\n blockedSegmentCount,\n insufficientEvidenceSegmentCount,\n ignoredSchemaCostSourceSegmentCount: ignoredSchemaCostSourceSegments.length,\n ignoredSchemaCostSourceSelectionCount: ignoredSchemaCostSourceSegments\n .reduce((sum, segment) => sum + segment.selectionCount, 0),\n ignoredSchemaCostSourceCounts: buildStringCounts(\n ignoredSchemaCostSourceSegments.map((segment) => segment.schemaCostSource ?? \"unknown\"),\n ),\n segments,\n blockingReasons,\n };\n}\n\nexport function buildAssistantWorkflowTraceReport(\n sourceRows: readonly AssistantWorkflowTraceReportSourceRow[],\n options: AssistantWorkflowTraceReportOptions = {},\n): AssistantWorkflowTraceReport {\n const directRouteDefinitionLookup = buildDirectRouteDefinitionLookup(options.workflow ?? null);\n const workflowIds = normalizeStringScope(options.workflowIds);\n const workflowVersions = normalizeNumberScope(options.workflowVersions);\n const allRows = sourceRows.map((row) => {\n const summary = buildAssistantWorkflowTraceSummary(row.traceEvents);\n const tuningSignals = collectAssistantWorkflowTraceTuningSignals(summary);\n return {\n debugId: normalizeNullableString(row.debugId),\n requestId: row.requestId,\n threadId: normalizeNullableString(row.threadId),\n userId: normalizeNullableString(row.userId),\n provider: normalizeNullableString(row.provider),\n model: normalizeNullableString(row.model),\n feedback: normalizeNullableString(row.feedback),\n feedbackAt: normalizeNullableString(row.feedbackAt),\n createdAt: normalizeNullableString(row.createdAt),\n summary,\n evalCandidate: buildAssistantWorkflowTraceEvalCandidate(summary),\n tuningSignals,\n directRouteStrategies: buildDirectRouteStrategySummaries(summary, directRouteDefinitionLookup),\n };\n });\n\n const workflowScopedRows = selectWorkflowScopedTraceRows(allRows, workflowIds, workflowVersions);\n const rows = options.onlyInteresting === true\n ? workflowScopedRows.filter((row) => isInterestingReportRow(row))\n : workflowScopedRows;\n\n return {\n generatedAt: new Date().toISOString(),\n workflowIds,\n workflowVersions,\n rowCount: rows.length,\n scopedSourceRowCount: workflowScopedRows.length,\n sourceRowCount: sourceRows.length,\n evalCandidateCount: rows.filter((row) => row.evalCandidate !== null).length,\n interestingRowCount: rows.filter(isInterestingReportRow).length,\n qualityFlaggedRowCount: rows.filter((row) => row.summary.quality.flagged).length,\n errorRowCount: rows.filter((row) => row.summary.errorStages.length > 0).length,\n feedbackCounts: buildStringCounts(rows.map((row) => row.feedback ?? \"none\")),\n intentCounts: buildStringCounts(rows.map((row) => row.summary.classifier?.intent ?? row.summary.workflow?.intent ?? \"unknown\")),\n authorityCounts: buildStringCounts(rows.map((row) => row.summary.workflow?.authority?.source ?? \"none\")),\n authorityReasonCounts: buildStringCounts(rows.map((row) => row.summary.workflow?.authority?.reason ?? \"none\")),\n workflowSelectionOptionalToolModeCounts: buildStringCounts(\n rows.map((row) => row.summary.workflow?.workflowSelectionOptionalToolMode ?? \"none\"),\n ),\n workflowSelectionExcludedOptionalToolCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.workflow?.workflowSelectionExcludedOptionalTools ?? []),\n ),\n workflowSelectionActiveProfileCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.workflow?.workflowSelectionActiveProfileIds ?? []),\n ),\n workflowSelectionProfileToolCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.workflow?.workflowSelectionProfileTools ?? []),\n ),\n activePlanningStepProfileCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.workflow?.plan?.activePlanningStepProfileIds ?? []),\n ),\n profileStepCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.workflow?.plan?.profileStepIds ?? []),\n ),\n outcomeKindCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.outcomes.map((outcome) => outcome.kind)),\n ),\n handledOutcomeKindCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.outcomes.filter((outcome) => outcome.handled).map((outcome) => outcome.kind)),\n ),\n clarificationComparisonMatchedCounts: buildStringCounts(\n rows.flatMap((row) =>\n row.summary.clarificationComparisons\n .filter((comparison) => comparison.matched === true)\n .map(buildClarificationComparisonMatchedKey),\n ),\n ),\n clarificationComparisonMissingRuleCounts: buildStringCounts(\n rows.flatMap((row) =>\n row.summary.clarificationComparisons.flatMap((comparison) => comparison.missingExpectedRuleIds),\n ),\n ),\n clarificationComparisonUnexpectedRuleCounts: buildStringCounts(\n rows.flatMap((row) =>\n row.summary.clarificationComparisons\n .map((comparison) => comparison.unexpectedObservedRuleId)\n .filter((ruleId): ruleId is string => ruleId !== null),\n ),\n ),\n directRoutePolicyEnabledCounts: buildStringCounts(\n rows.flatMap((row) =>\n row.summary.directRoutePolicies\n .filter((policy) => policy.enabled === true)\n .map((policy) => policy.route ?? \"unknown\"),\n ),\n ),\n directRoutePolicyDisabledReasonCounts: buildStringCounts(\n rows.flatMap((row) =>\n row.summary.directRoutePolicies\n .filter((policy) => policy.enabled === false)\n .map(buildDirectRoutePolicyDisabledReasonKey),\n ),\n ),\n directRouteGapReasonCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.directRouteGaps.map(buildDirectRouteGapReasonKey)),\n ),\n directRouteObservedStrategyCounts: buildStringCounts(\n rows.flatMap((row) => row.directRouteStrategies.map(buildDirectRouteStrategyKey)),\n ),\n directRouteUndeclaredStrategyCounts: buildStringCounts(\n rows.flatMap((row) =>\n row.directRouteStrategies\n .filter((strategy) => strategy.declared === false)\n .map(buildDirectRouteStrategyKey),\n ),\n ),\n directRouteDoneCounts: buildStringCounts(\n rows.flatMap((row) =>\n row.summary.directRoutes\n .filter((route) => route.outcome === \"done\")\n .map((route) => route.route),\n ),\n ),\n directRouteRecoveredCounts: buildStringCounts(\n rows.flatMap((row) =>\n row.summary.directRoutes\n .filter((route) => route.outcome === \"recovered\")\n .map((route) => route.route),\n ),\n ),\n directRouteErrorCounts: buildStringCounts(\n rows.flatMap((row) =>\n row.summary.directRoutes\n .filter((route) => route.outcome === \"error\")\n .map((route) => route.route),\n ),\n ),\n directRouteSkipReasonCounts: buildStringCounts(\n rows.flatMap((row) =>\n row.summary.directRoutes\n .filter((route) => route.outcome === \"skip\")\n .map(buildDirectRouteSkipReasonKey)\n .filter((key): key is string => key !== null),\n ),\n ),\n memoryChangedSlotCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.flatMap((patch) => patch.changedSlots)),\n ),\n memoryChangedProfileFieldCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.flatMap((patch) => patch.changedProfileFields)),\n ),\n memorySkippedPatchReasonCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.flatMap((patch) => patch.skippedPatches.map(buildMemorySkippedPatchReasonKey))),\n ),\n memoryPatchEquivalenceCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.map(buildMemoryPatchEquivalenceKey)),\n ),\n memoryPatchDerivationCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.map(buildMemoryPatchDerivationKey)),\n ),\n memoryPatchMismatchedProfileFieldCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.flatMap((patch) => patch.profilePatchMismatchedFields)),\n ),\n memoryPatchWriteSourceCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.map(buildMemoryPatchWriteSourceKey)),\n ),\n memoryPatchWriteReasonCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.map(buildMemoryPatchWriteReasonKey)),\n ),\n memoryIntentWritePolicyIntentCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.flatMap((patch) =>\n patch.intentWritePolicy?.intentId ? [patch.intentWritePolicy.intentId] : [],\n )),\n ),\n memoryIntentWritePolicyEquivalenceCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.flatMap((patch) =>\n patch.intentWritePolicy ? [buildMemoryPatchEquivalenceKey(patch.intentWritePolicy)] : [],\n )),\n ),\n memoryIntentWritePolicySkippedPatchReasonCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.flatMap((patch) =>\n patch.intentWritePolicy?.skippedPatches.map(buildMemorySkippedPatchReasonKey) ?? [],\n )),\n ),\n memoryIntentWritePolicyMismatchedProfileFieldCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.memoryPatches.flatMap((patch) =>\n patch.intentWritePolicy?.profilePatchMismatchedFields ?? [],\n )),\n ),\n threadProfileWriteChangedFieldCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.threadProfileWrites.flatMap((write) => write.changedFields)),\n ),\n threadProfileWriteSourceCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.threadProfileWrites.map(buildThreadProfileWriteSourceKey)),\n ),\n threadProfileWriteReasonCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.threadProfileWrites.map(buildThreadProfileWriteReasonKey)),\n ),\n toolRuntimeBindingStatusCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.toolRuntimeBindings.map((binding) => binding.status ?? \"unknown\")),\n ),\n toolRuntimeBindingAdapterCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.toolRuntimeBindings.map((binding) => binding.runtimeAdapterId ?? \"unknown\")),\n ),\n toolRuntimeBindingPolicyMismatchCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.toolRuntimeBindings.flatMap((binding) =>\n binding.policyMismatchFields.map((field) => `${binding.toolName ?? \"unknown\"}:${field}`),\n )),\n ),\n effectiveToolSelectionModeCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.toolSelections.map((selection) => selection.mode ?? \"unknown\")),\n ),\n effectiveToolSelectionReasonCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.toolSelections.map((selection) => selection.reason ?? \"unknown\")),\n ),\n effectiveToolSelectionToolCounts: buildStringCounts(\n rows.flatMap((row) => row.summary.toolSelections.flatMap((selection) => selection.toolNames)),\n ),\n effectiveToolSelectionSegments: buildEffectiveToolSelectionSegments(rows),\n toolCallCounts: buildStringCounts(rows.flatMap((row) => row.summary.toolCallNames)),\n tuningSignalCounts: buildTuningSignalCounts(rows.flatMap((row) => row.tuningSignals)),\n suggestions: buildReportSuggestions(rows),\n rows,\n };\n}\n\nexport function buildAssistantWorkflowSerializedRunReportFromTraceReportRow(\n row: AssistantWorkflowTraceReportRow,\n options: AssistantWorkflowTraceReportRunReportExportOptions = {},\n): AssistantWorkflowSerializedRunReport {\n const signals = buildTraceDerivedRunEvaluationSignals(row);\n const warningCount = signals.filter((signal) => signal.severity === \"warning\").length;\n const status = buildTraceDerivedRunReportStatus(row, warningCount);\n const intent = row.summary.classifier?.intent ?? row.summary.workflow?.intent ?? null;\n const handledOutcome = row.summary.handledOutcome;\n const outcomeKind = handledOutcome?.kind ?? \"trace_summary\";\n const outcomeHandled = handledOutcome?.handled ?? status !== \"not_handled\";\n const outcomeReason = handledOutcome?.reason ?? buildTraceDerivedOutcomeReason(row, status);\n const directRouteDoneRoutes = row.summary.directRoutes\n .filter((route) => route.outcome === \"done\")\n .map((route) => route.route);\n const directRouteRecoveredRoutes = row.summary.directRoutes\n .filter((route) => route.outcome === \"recovered\")\n .map((route) => route.route);\n const directRouteErrorRoutes = row.summary.directRoutes\n .filter((route) => route.outcome === \"error\")\n .map((route) => route.route);\n const directRouteSkipReasons = row.summary.directRoutes\n .filter((route) => route.outcome === \"skip\")\n .map(buildDirectRouteSkipReasonKey)\n .filter((key): key is string => key !== null);\n const directRoutePolicyEnabledRoutes = row.summary.directRoutePolicies\n .filter((policy) => policy.enabled === true)\n .map((policy) => policy.route ?? \"unknown\");\n const directRoutePolicyDisabledReasons = row.summary.directRoutePolicies\n .filter((policy) => policy.enabled === false)\n .map(buildDirectRoutePolicyDisabledReasonKey);\n const directRouteGapReasons = row.summary.directRouteGaps.map(buildDirectRouteGapReasonKey);\n const directRouteObservedStrategies = row.directRouteStrategies.map(buildDirectRouteStrategyKey);\n const directRouteUndeclaredStrategies = row.directRouteStrategies\n .filter((strategy) => strategy.declared === false)\n .map(buildDirectRouteStrategyKey);\n const memoryChangedSlots = uniqueStrings(row.summary.memoryPatches.flatMap((patch) => patch.changedSlots));\n const memoryChangedProfileFields = uniqueStrings(\n row.summary.memoryPatches.flatMap((patch) => patch.changedProfileFields),\n );\n const memorySkippedPatchReasons = row.summary.memoryPatches.flatMap((patch) =>\n patch.skippedPatches.map(buildMemorySkippedPatchReasonKey)\n );\n const memoryPatchEquivalence = uniqueStrings(row.summary.memoryPatches.map(buildMemoryPatchEquivalenceKey));\n const memoryPatchDerivations = uniqueStrings(row.summary.memoryPatches.map(buildMemoryPatchDerivationKey));\n const memoryPatchMismatchedProfileFields = uniqueStrings(\n row.summary.memoryPatches.flatMap((patch) => patch.profilePatchMismatchedFields),\n );\n const memoryPatchWriteSources = uniqueStrings(row.summary.memoryPatches.map(buildMemoryPatchWriteSourceKey));\n const memoryPatchWriteReasons = uniqueStrings(row.summary.memoryPatches.map(buildMemoryPatchWriteReasonKey));\n const threadProfileWriteSources = uniqueStrings(row.summary.threadProfileWrites.map(buildThreadProfileWriteSourceKey));\n const threadProfileWriteReasons = uniqueStrings(row.summary.threadProfileWrites.map(buildThreadProfileWriteReasonKey));\n const threadProfileWriteChangedFields = uniqueStrings(\n row.summary.threadProfileWrites.flatMap((write) => write.changedFields),\n );\n const clarificationMatchedRules = row.summary.clarificationComparisons\n .filter((comparison) => comparison.matched === true)\n .map(buildClarificationComparisonMatchedKey);\n const clarificationMissingRules = row.summary.clarificationComparisons.flatMap((comparison) =>\n comparison.missingExpectedRuleIds\n );\n const clarificationUnexpectedRules = row.summary.clarificationComparisons\n .map((comparison) => comparison.unexpectedObservedRuleId)\n .filter((ruleId): ruleId is string => ruleId !== null);\n const toolResultStatus = row.summary.errorStages.length > 0\n ? \"failed\"\n : row.summary.toolCalls.length > 0\n ? \"complete\"\n : null;\n\n return {\n schemaVersion: ASSISTANT_WORKFLOW_RUN_REPORT_JSON_SCHEMA_VERSION,\n workflowId: normalizeRunReportWorkflowId(options.workflowId),\n workflowVersion: normalizeRunReportWorkflowVersion(options.workflowVersion),\n status,\n run: {\n source: \"trace_report\",\n requestId: row.requestId,\n debugId: row.debugId,\n threadId: row.threadId,\n createdAt: row.createdAt,\n status: status === \"not_handled\" ? \"blocked\" : status === \"failed\" ? \"partial\" : \"ready\",\n decision: {\n intent,\n presentation: row.summary.classifier?.presentation ?? row.summary.workflow?.effectivePresentation ?? null,\n confidence: row.summary.classifier?.confidence ?? null,\n toolsToExpose: row.summary.classifier?.toolsToExpose ?? [],\n plan: row.summary.workflow?.plan ?? null,\n authority: row.summary.workflow?.authority ?? null,\n },\n toolInvocationQueue: {\n invocationCount: row.summary.toolCalls.length,\n toolNames: row.summary.toolCallNames,\n },\n directRoutes: row.summary.directRoutes.map((route) => ({\n route: route.route,\n outcome: route.outcome,\n reason: route.reason ?? null,\n strategy: route.strategy ?? null,\n topic: route.topic ?? null,\n tool: route.tool ?? null,\n mode: route.mode ?? null,\n handled: route.handled ?? null,\n contentChars: route.contentChars ?? null,\n tookMs: route.tookMs ?? null,\n })),\n directRoutePolicies: row.summary.directRoutePolicies.map((policy) => ({\n intent: policy.intent ?? null,\n route: policy.route ?? null,\n enabled: policy.enabled ?? null,\n reason: policy.reason ?? null,\n policyRouteIds: policy.policyRouteIds,\n })),\n directRouteGaps: row.summary.directRouteGaps.map((gap) => ({\n handlerId: gap.handlerId ?? null,\n layer: gap.layer ?? null,\n route: gap.route ?? null,\n reason: gap.reason ?? null,\n })),\n directRouteStrategies: row.directRouteStrategies.map((strategy) => ({\n route: strategy.route,\n strategy: strategy.strategy,\n definitionRouteId: strategy.definitionRouteId,\n declared: strategy.declared,\n status: strategy.status,\n })),\n memoryPatches: row.summary.memoryPatches.map((patch) => ({\n changedSlots: patch.changedSlots,\n changedProfileFields: patch.changedProfileFields,\n appliedPatchCount: patch.appliedPatchCount,\n skippedPatchCount: patch.skippedPatchCount,\n appliedPatches: patch.appliedPatches.map((appliedPatch) => ({ ...appliedPatch })),\n skippedPatches: patch.skippedPatches.map((skippedPatch) => ({ ...skippedPatch })),\n profilePatchEquivalent: patch.profilePatchEquivalent,\n profilePatchComparedFields: patch.profilePatchComparedFields,\n profilePatchMismatchedFields: patch.profilePatchMismatchedFields,\n patchDerivation: patch.patchDerivation,\n profileWriteMode: patch.profileWriteMode,\n profileWriteSource: patch.profileWriteSource,\n profileWriteReason: patch.profileWriteReason,\n intentWritePolicy: patch.intentWritePolicy ? {\n intentId: patch.intentWritePolicy.intentId,\n writeSlots: patch.intentWritePolicy.writeSlots,\n missingMemorySlots: patch.intentWritePolicy.missingMemorySlots,\n changedSlots: patch.intentWritePolicy.changedSlots,\n appliedPatchCount: patch.intentWritePolicy.appliedPatchCount,\n skippedPatchCount: patch.intentWritePolicy.skippedPatchCount,\n skippedPatches: patch.intentWritePolicy.skippedPatches.map((skippedPatch) => ({ ...skippedPatch })),\n profilePatchEquivalent: patch.intentWritePolicy.profilePatchEquivalent,\n profilePatchComparedFields: patch.intentWritePolicy.profilePatchComparedFields,\n profilePatchMismatchedFields: patch.intentWritePolicy.profilePatchMismatchedFields,\n } : null,\n })),\n threadProfileWrites: row.summary.threadProfileWrites.map((write) => ({\n changed: write.changed,\n changedFields: write.changedFields,\n writeMode: write.writeMode,\n writeSource: write.writeSource,\n writeReason: write.writeReason,\n })),\n outcomes: row.summary.outcomes.map((outcome) => ({\n kind: outcome.kind,\n handled: outcome.handled,\n contentChars: outcome.contentChars ?? null,\n reason: outcome.reason ?? null,\n delivery: outcome.delivery ?? null,\n artifactKind: outcome.artifactKind ?? null,\n route: outcome.route ?? null,\n source: outcome.source ?? null,\n layer: outcome.layer ?? null,\n skipEvent: outcome.skipEvent ?? null,\n mode: outcome.mode ?? null,\n submode: outcome.submode ?? null,\n tool: outcome.tool ?? null,\n ruleId: outcome.ruleId ?? null,\n streamed: outcome.streamed ?? null,\n })),\n clarificationComparisons: row.summary.clarificationComparisons.map((comparison) => ({\n intent: comparison.intent ?? null,\n expectedRuleIds: comparison.expectedRuleIds,\n expectedBlockingRuleIds: comparison.expectedBlockingRuleIds,\n expectedSuggestedRuleIds: comparison.expectedSuggestedRuleIds,\n produced: comparison.produced ?? null,\n observedRuleId: comparison.observedRuleId ?? null,\n equivalentRuleIds: comparison.equivalentRuleIds,\n matched: comparison.matched ?? null,\n missingExpectedRuleIds: comparison.missingExpectedRuleIds,\n unexpectedObservedRuleId: comparison.unexpectedObservedRuleId ?? null,\n source: comparison.source ?? null,\n layer: comparison.layer ?? null,\n reason: comparison.reason ?? null,\n })),\n },\n toolExecution: toolResultStatus === null\n ? null\n : {\n status: toolResultStatus,\n totalInvocations: row.summary.toolCalls.length,\n successCount: row.summary.toolCalls.filter((call) => call.success).length,\n errorCount: row.summary.toolCalls.filter((call) => !call.success).length,\n },\n outcome: {\n kind: outcomeKind,\n handled: outcomeHandled,\n reason: outcomeReason,\n delivery: handledOutcome?.delivery ?? null,\n artifactKind: handledOutcome?.artifactKind ?? null,\n route: handledOutcome?.route ?? null,\n contentChars: handledOutcome?.contentChars ?? null,\n source: handledOutcome?.source ?? \"trace_summary\",\n layer: handledOutcome?.layer ?? null,\n mode: handledOutcome?.mode ?? null,\n submode: handledOutcome?.submode ?? null,\n tool: handledOutcome?.tool ?? null,\n ruleId: handledOutcome?.ruleId ?? null,\n streamed: handledOutcome?.streamed ?? null,\n qualityFlagged: row.summary.quality.flagged,\n feedback: row.feedback,\n },\n evaluation: {\n workflowId: normalizeRunReportWorkflowId(options.workflowId),\n workflowVersion: normalizeRunReportWorkflowVersion(options.workflowVersion),\n status,\n intent,\n outcomeKind,\n handled: outcomeHandled,\n toolResultStatus,\n readyToolCount: row.summary.workflow?.workflowSelectionCandidateTools.length ?? 0,\n invokedToolCount: row.summary.toolCalls.length,\n activePlanningStepProfileIds: row.summary.workflow?.plan?.activePlanningStepProfileIds ?? [],\n profileStepIds: row.summary.workflow?.plan?.profileStepIds ?? [],\n directRouteDoneRoutes,\n directRouteRecoveredRoutes,\n directRouteErrorRoutes,\n directRouteSkipReasons,\n directRoutePolicyEnabledRoutes,\n directRoutePolicyDisabledReasons,\n directRouteGapReasons,\n directRouteObservedStrategies,\n directRouteUndeclaredStrategies,\n memoryChangedSlots,\n memoryChangedProfileFields,\n memorySkippedPatchReasons,\n memoryPatchEquivalence,\n memoryPatchDerivations,\n memoryPatchMismatchedProfileFields,\n memoryPatchWriteSources,\n memoryPatchWriteReasons,\n threadProfileWriteSources,\n threadProfileWriteReasons,\n threadProfileWriteChangedFields,\n clarificationMatchedRules,\n clarificationMissingRules,\n clarificationUnexpectedRules,\n signalCount: signals.length,\n warningCount,\n signals,\n },\n };\n}\n\nexport function buildAssistantWorkflowSerializedRunReportsFromTraceReport(\n report: AssistantWorkflowTraceReport,\n options: AssistantWorkflowTraceReportRunReportExportOptions = {},\n): AssistantWorkflowSerializedRunReport[] {\n return report.rows.map((row) => buildAssistantWorkflowSerializedRunReportFromTraceReportRow(row, options));\n}\n\nfunction isInterestingReportRow(row: AssistantWorkflowTraceReportRow): boolean {\n return row.feedback === \"bad\" ||\n row.summary.quality.flagged ||\n row.summary.errorStages.length > 0 ||\n row.tuningSignals.some((signal) => signal.severity === \"warning\");\n}\n\nfunction buildStringCounts(values: readonly string[]): AssistantWorkflowTraceReportCount[] {\n const counts = new Map<string, number>();\n for (const value of values) {\n if (!value.length) continue;\n counts.set(value, (counts.get(value) ?? 0) + 1);\n }\n return [...counts.entries()]\n .map(([key, count]) => ({ key, count }))\n .sort((left, right) => {\n if (right.count !== left.count) return right.count - left.count;\n return left.key.localeCompare(right.key);\n });\n}\n\nfunction buildEffectiveToolSelectionSegments(\n rows: readonly AssistantWorkflowTraceReportRow[],\n): AssistantWorkflowTraceReportToolSelectionSegment[] {\n type Aggregate = Omit<AssistantWorkflowTraceReportToolSelectionSegment,\n \"averageToolCount\" | \"averageTotalToolCount\" | \"averageSchemaChars\" | \"averageSavedChars\">;\n const aggregates = new Map<string, Aggregate>();\n\n for (const row of rows) {\n const workflowId = row.summary.workflow?.workflowId ?? null;\n const workflowVersion = row.summary.workflow?.workflowVersion ?? null;\n const intentId = row.summary.classifier?.intent ?? row.summary.workflow?.intent ?? \"unknown\";\n const workflowProfileKey = buildAssistantWorkflowToolSelectionProfileKey({\n intentId: row.summary.workflow?.intent ?? intentId,\n profileIds: row.summary.workflow?.workflowSelectionActiveProfileIds ?? [],\n });\n const authoritySource = row.summary.workflow?.authority?.source ?? null;\n const authorityReason = row.summary.workflow?.authority?.reason ?? null;\n for (const selection of row.summary.toolSelections) {\n const toolSet = buildEffectiveToolSelectionToolSet(selection.toolNames);\n const segmentKey = buildEffectiveToolSelectionSegmentKey({\n workflowId,\n workflowVersion,\n workflowProfileKey,\n intentId,\n hop: selection.hop,\n mode: selection.mode,\n selectionReason: selection.reason,\n pruningEnabled: selection.pruningEnabled,\n toolSignature: toolSet.signature,\n schemaCostSource: selection.schemaCostSource,\n authoritySource,\n authorityReason,\n });\n const aggregate = aggregates.get(segmentKey) ?? {\n segmentKey,\n workflowId,\n workflowVersion,\n workflowProfileKey,\n intentId,\n hop: selection.hop,\n mode: selection.mode,\n selectionReason: selection.reason,\n pruningEnabled: selection.pruningEnabled,\n toolSignature: toolSet.signature,\n toolNames: toolSet.toolNames,\n schemaCostSource: selection.schemaCostSource,\n authoritySource,\n authorityReason,\n selectionCount: 0,\n toolCountObservationCount: 0,\n toolCountTotal: 0,\n totalToolCountObservationCount: 0,\n totalToolCountTotal: 0,\n schemaCharsObservationCount: 0,\n schemaCharsTotal: 0,\n savedCharsObservationCount: 0,\n savedCharsTotal: 0,\n };\n aggregate.selectionCount += 1;\n addToolSelectionMetric(aggregate, \"toolCount\", selection.toolCount);\n addToolSelectionMetric(aggregate, \"totalToolCount\", selection.totalToolCount);\n addToolSelectionMetric(aggregate, \"schemaChars\", selection.approxSchemaChars);\n addToolSelectionMetric(aggregate, \"savedChars\", selection.approxSavedChars);\n aggregates.set(segmentKey, aggregate);\n }\n }\n\n return [...aggregates.values()]\n .map((aggregate) => ({\n ...aggregate,\n averageToolCount: calculateAverage(aggregate.toolCountTotal, aggregate.toolCountObservationCount),\n averageTotalToolCount: calculateAverage(aggregate.totalToolCountTotal, aggregate.totalToolCountObservationCount),\n averageSchemaChars: calculateAverage(aggregate.schemaCharsTotal, aggregate.schemaCharsObservationCount),\n averageSavedChars: calculateAverage(aggregate.savedCharsTotal, aggregate.savedCharsObservationCount),\n }))\n .sort((left, right) => {\n if (right.selectionCount !== left.selectionCount) return right.selectionCount - left.selectionCount;\n return left.segmentKey.localeCompare(right.segmentKey);\n });\n}\n\nfunction buildEffectiveToolSelectionSegmentKey(input: {\n workflowId: string | null;\n workflowVersion: number | null;\n workflowProfileKey: string | null;\n intentId: string;\n hop: number | null;\n mode: string | null;\n selectionReason: string | null;\n pruningEnabled: boolean | null;\n toolSignature: string;\n schemaCostSource: string | null;\n authoritySource: string | null;\n authorityReason: string | null;\n}): string {\n return [\n `workflow_id:${input.workflowId ?? \"unknown\"}`,\n `workflow_version:${input.workflowVersion ?? \"unknown\"}`,\n `workflow_profile:${input.workflowProfileKey ?? \"none\"}`,\n `intent:${input.intentId}`,\n `hop:${input.hop ?? \"unknown\"}`,\n `mode:${input.mode ?? \"unknown\"}`,\n `reason:${input.selectionReason ?? \"unknown\"}`,\n `pruning:${input.pruningEnabled === null ? \"unknown\" : String(input.pruningEnabled)}`,\n `tools:${input.toolSignature}`,\n `schema_cost:${input.schemaCostSource ?? \"unknown\"}`,\n `authority:${input.authoritySource ?? \"unknown\"}`,\n `authority_reason:${input.authorityReason ?? \"unknown\"}`,\n ].join(\"|\");\n}\n\nfunction addToolSelectionMetric(\n aggregate: {\n toolCountObservationCount: number;\n toolCountTotal: number;\n totalToolCountObservationCount: number;\n totalToolCountTotal: number;\n schemaCharsObservationCount: number;\n schemaCharsTotal: number;\n savedCharsObservationCount: number;\n savedCharsTotal: number;\n },\n metric: \"toolCount\" | \"totalToolCount\" | \"schemaChars\" | \"savedChars\",\n value: number | null,\n): void {\n if (value === null || !Number.isFinite(value)) return;\n const normalized = Math.max(0, value);\n switch (metric) {\n case \"toolCount\":\n aggregate.toolCountObservationCount += 1;\n aggregate.toolCountTotal += normalized;\n return;\n case \"totalToolCount\":\n aggregate.totalToolCountObservationCount += 1;\n aggregate.totalToolCountTotal += normalized;\n return;\n case \"schemaChars\":\n aggregate.schemaCharsObservationCount += 1;\n aggregate.schemaCharsTotal += normalized;\n return;\n case \"savedChars\":\n aggregate.savedCharsObservationCount += 1;\n aggregate.savedCharsTotal += normalized;\n }\n}\n\nfunction calculateAverage(total: number, count: number): number | null {\n return count > 0 ? total / count : null;\n}\n\ntype AssistantWorkflowToolSelectionMetricEvidenceCounters = {\n qualityFlaggedSelectionCount: number;\n errorSelectionCount: number;\n badFeedbackSelectionCount: number;\n unavailableOutcomeSelectionCount: number;\n};\n\nconst EMPTY_TOOL_SELECTION_METRIC_EVIDENCE_COUNTERS: AssistantWorkflowToolSelectionMetricEvidenceCounters = {\n qualityFlaggedSelectionCount: 0,\n errorSelectionCount: 0,\n badFeedbackSelectionCount: 0,\n unavailableOutcomeSelectionCount: 0,\n};\n\nfunction buildToolSelectionMetricEvidenceCounters(\n rows: readonly AssistantWorkflowTraceReportRow[],\n): Map<string, AssistantWorkflowToolSelectionMetricEvidenceCounters> {\n const counters = new Map<string, AssistantWorkflowToolSelectionMetricEvidenceCounters>();\n for (const row of rows) {\n const workflowId = row.summary.workflow?.workflowId ?? null;\n const workflowVersion = row.summary.workflow?.workflowVersion ?? null;\n const intentId = row.summary.classifier?.intent ?? row.summary.workflow?.intent ?? \"unknown\";\n const workflowProfileKey = buildAssistantWorkflowToolSelectionProfileKey({\n intentId: row.summary.workflow?.intent ?? intentId,\n profileIds: row.summary.workflow?.workflowSelectionActiveProfileIds ?? [],\n });\n const authoritySource = row.summary.workflow?.authority?.source ?? null;\n const authorityReason = row.summary.workflow?.authority?.reason ?? null;\n for (const selection of row.summary.toolSelections) {\n const toolSet = buildEffectiveToolSelectionToolSet(selection.toolNames);\n const segmentKey = buildEffectiveToolSelectionSegmentKey({\n workflowId,\n workflowVersion,\n workflowProfileKey,\n intentId,\n hop: selection.hop,\n mode: selection.mode,\n selectionReason: selection.reason,\n pruningEnabled: selection.pruningEnabled,\n toolSignature: toolSet.signature,\n schemaCostSource: selection.schemaCostSource,\n authoritySource,\n authorityReason,\n });\n const current = counters.get(segmentKey) ?? {\n qualityFlaggedSelectionCount: 0,\n errorSelectionCount: 0,\n badFeedbackSelectionCount: 0,\n unavailableOutcomeSelectionCount: 0,\n };\n if (row.summary.quality.flagged) current.qualityFlaggedSelectionCount += 1;\n if (row.summary.errorStages.length > 0) current.errorSelectionCount += 1;\n if (row.feedback === \"bad\") current.badFeedbackSelectionCount += 1;\n if (row.summary.handledOutcome?.kind === \"unavailable\") {\n current.unavailableOutcomeSelectionCount += 1;\n }\n counters.set(segmentKey, current);\n }\n }\n return counters;\n}\n\nfunction buildEffectiveToolSelectionToolSet(toolNames: readonly string[]): {\n signature: string;\n toolNames: string[];\n} {\n const normalized = uniqueStrings(toolNames\n .map((toolName) => toolName.trim())\n .filter((toolName) => toolName.length > 0))\n .sort((left, right) => left.localeCompare(right));\n return {\n signature: normalized.length ? normalized.join(\",\") : \"none\",\n toolNames: normalized,\n };\n}\n\nfunction isToolSelectionMetricSegmentInScope(\n segment: AssistantWorkflowTraceReportToolSelectionSegment,\n workflowIds: readonly string[],\n workflowVersions: readonly number[],\n workflowProfileKeys: readonly string[],\n authoritySources: readonly string[],\n intentIds: readonly string[],\n segmentKeys: readonly string[],\n): boolean {\n return (!workflowIds.length || (segment.workflowId !== null && workflowIds.includes(segment.workflowId))) &&\n (!workflowVersions.length || (segment.workflowVersion !== null && workflowVersions.includes(segment.workflowVersion))) &&\n (!workflowProfileKeys.length || (\n segment.workflowProfileKey !== null && workflowProfileKeys.includes(segment.workflowProfileKey)\n )) &&\n (!authoritySources.length || (\n segment.authoritySource !== null && authoritySources.includes(segment.authoritySource)\n )) &&\n (!intentIds.length || intentIds.includes(segment.intentId)) &&\n (!segmentKeys.length || segmentKeys.includes(segment.segmentKey));\n}\n\nfunction selectWorkflowScopedTraceRows(\n rows: readonly AssistantWorkflowTraceReportRow[],\n workflowIds: readonly string[],\n workflowVersions: readonly number[],\n): AssistantWorkflowTraceReportRow[] {\n if (!workflowIds.length && !workflowVersions.length) return [...rows];\n return rows.filter((row) => {\n const workflow = row.summary.workflow;\n if (!workflow) return false;\n return (!workflowIds.length || (\n workflow.workflowId !== null && workflowIds.includes(workflow.workflowId)\n )) && (!workflowVersions.length || (\n workflow.workflowVersion !== null && workflowVersions.includes(workflow.workflowVersion)\n ));\n });\n}\n\nfunction normalizeStringScope(values: readonly string[] | null | undefined): string[] {\n const normalized = new Set<string>();\n for (const value of values ?? []) {\n const trimmed = value.trim();\n if (trimmed.length) normalized.add(trimmed);\n }\n return [...normalized].sort();\n}\n\nfunction normalizeNumberScope(values: readonly number[] | null | undefined): number[] {\n const normalized = new Set<number>();\n for (const value of values ?? []) {\n if (Number.isInteger(value) && value > 0) normalized.add(value);\n }\n return [...normalized].sort((left, right) => left - right);\n}\n\nfunction normalizeOptionalString(value: string | null | undefined): string | null {\n const trimmed = value?.trim();\n return trimmed?.length ? trimmed : null;\n}\n\nfunction findReportCount(counts: readonly AssistantWorkflowTraceReportCount[], key: string): number {\n return counts.find((item) => item.key === key)?.count ?? 0;\n}\n\nfunction sumWriteSourceCountsBySource(counts: readonly AssistantWorkflowTraceReportCount[], source: string): number {\n const suffix = `:${source}`;\n return counts.reduce((sum, item) => item.key.endsWith(suffix) ? sum + item.count : sum, 0);\n}\n\nfunction normalizePositiveInt(value: number | null | undefined, fallback: number): number {\n if (typeof value !== \"number\" || !Number.isFinite(value)) return fallback;\n const normalized = Math.floor(value);\n return normalized > 0 ? normalized : fallback;\n}\n\nfunction normalizeNonNegativeInt(value: number | null | undefined, fallback: number): number {\n if (typeof value !== \"number\" || !Number.isFinite(value)) return fallback;\n const normalized = Math.floor(value);\n return normalized >= 0 ? normalized : fallback;\n}\n\nfunction normalizePatchDerivationRequirements(\n requirements: readonly AssistantWorkflowMemoryPatchDerivationReadinessRequirement[] | null | undefined,\n): AssistantWorkflowTraceReportCount[] {\n if (!requirements?.length) return [];\n const out = new Map<string, number>();\n for (const requirement of requirements) {\n const key = requirement.key.trim();\n if (!key.length) continue;\n const minCount = normalizePositiveInt(requirement.minCount, 1);\n out.set(key, Math.max(out.get(key) ?? 0, minCount));\n }\n return [...out.entries()]\n .map(([key, count]) => ({ key, count }))\n .sort((left, right) => left.key.localeCompare(right.key));\n}\n\nfunction buildTuningSignalCounts(\n values: readonly AssistantWorkflowTraceTuningSignal[],\n): AssistantWorkflowTraceReportTuningSignalCount[] {\n const counts = new Map<string, AssistantWorkflowTraceReportTuningSignalCount>();\n for (const signal of values) {\n const current = counts.get(signal.name);\n if (current) {\n current.count += 1;\n if (signal.severity === \"warning\") current.severity = \"warning\";\n continue;\n }\n counts.set(signal.name, {\n name: signal.name,\n severity: signal.severity,\n count: 1,\n });\n }\n return [...counts.values()].sort((left, right) => {\n if (right.count !== left.count) return right.count - left.count;\n if (left.severity !== right.severity) return left.severity === \"warning\" ? -1 : 1;\n return left.name.localeCompare(right.name);\n });\n}\n\nfunction buildDirectRouteSkipReasonKey(input: {\n route: string;\n reason: string | null;\n}): string | null {\n if (input.reason === \"runtime_policy_disabled\" || input.reason === \"runtime_disabled\") return null;\n return input.reason ? `${input.route}:${input.reason}` : `${input.route}:unknown`;\n}\n\nfunction buildDirectRoutePolicyDisabledReasonKey(input: {\n route: string | null;\n reason: string | null;\n}): string {\n return `${input.route ?? \"unknown\"}:${input.reason ?? \"unknown\"}`;\n}\n\nfunction buildDirectRouteGapReasonKey(input: {\n route: string | null;\n reason: string | null;\n}): string {\n return `${input.route ?? \"unknown\"}:${input.reason ?? \"unknown\"}`;\n}\n\nfunction buildMemorySkippedPatchReasonKey(input: {\n slotId: string | null;\n operation: string | null;\n reason: string;\n}): string {\n return `${input.slotId ?? \"unknown\"}:${input.operation ?? \"unknown\"}:${input.reason}`;\n}\n\nfunction buildMemoryPatchEquivalenceKey(input: {\n profilePatchEquivalent: boolean | null;\n}): string {\n if (input.profilePatchEquivalent === true) return \"equivalent\";\n if (input.profilePatchEquivalent === false) return \"mismatch\";\n return \"unknown\";\n}\n\nfunction buildMemoryPatchDerivationKey(input: {\n patchDerivation: string | null;\n}): string {\n return input.patchDerivation ?? \"unknown\";\n}\n\nfunction buildMemoryPatchWriteSourceKey(input: {\n profileWriteMode: string | null;\n profileWriteSource: string | null;\n}): string {\n const mode = input.profileWriteMode ?? \"unknown\";\n const source = input.profileWriteSource ?? \"unknown\";\n return `${mode}:${source}`;\n}\n\nfunction buildMemoryPatchWriteReasonKey(input: {\n profileWriteReason: string | null;\n}): string {\n return input.profileWriteReason ?? \"unknown\";\n}\n\nfunction buildThreadProfileWriteSourceKey(input: {\n writeMode: string | null;\n writeSource: string | null;\n}): string {\n const mode = input.writeMode ?? \"unknown\";\n const source = input.writeSource ?? \"unknown\";\n return `${mode}:${source}`;\n}\n\nfunction buildThreadProfileWriteReasonKey(input: {\n writeReason: string | null;\n}): string {\n return input.writeReason ?? \"unknown\";\n}\n\ntype DirectRouteDefinitionLookup = Map<string, AssistantWorkflowDirectRouteDefinition> | null;\n\nfunction buildDirectRouteDefinitionLookup(\n workflow: AssistantWorkflowDefinition | null,\n): DirectRouteDefinitionLookup {\n if (!workflow) return null;\n const lookup = new Map<string, AssistantWorkflowDirectRouteDefinition>();\n for (const directRoute of workflow.directRoutes ?? []) {\n addDirectRouteLookupEntry(lookup, directRoute.id, directRoute);\n if (directRoute.outcomeRoute) {\n addDirectRouteLookupEntry(lookup, directRoute.outcomeRoute, directRoute);\n }\n }\n return lookup;\n}\n\nfunction addDirectRouteLookupEntry(\n lookup: Map<string, AssistantWorkflowDirectRouteDefinition>,\n routeId: string,\n definition: AssistantWorkflowDirectRouteDefinition,\n): void {\n const normalized = routeId.trim();\n if (!normalized.length || lookup.has(normalized)) return;\n lookup.set(normalized, definition);\n}\n\nfunction buildDirectRouteStrategySummaries(\n summary: AssistantWorkflowTraceSummary,\n directRouteDefinitionLookup: DirectRouteDefinitionLookup,\n): AssistantWorkflowTraceReportDirectRouteStrategy[] {\n return summary.directRoutes.flatMap((route): AssistantWorkflowTraceReportDirectRouteStrategy[] => {\n const strategy = route.strategy?.trim();\n if (!strategy) return [];\n if (directRouteDefinitionLookup === null) {\n return [{\n route: route.route,\n strategy,\n definitionRouteId: null,\n declared: null,\n status: \"workflow_not_provided\",\n }];\n }\n\n const definition = directRouteDefinitionLookup.get(route.route);\n if (!definition) {\n return [{\n route: route.route,\n strategy,\n definitionRouteId: null,\n declared: false,\n status: \"route_not_declared\",\n }];\n }\n\n const declaredStrategyIds = new Set((definition.strategies ?? []).map((item) => item.id));\n const declared = declaredStrategyIds.has(strategy);\n return [{\n route: route.route,\n strategy,\n definitionRouteId: definition.id,\n declared,\n status: declared ? \"declared\" : \"strategy_not_declared\",\n }];\n });\n}\n\nfunction buildDirectRouteStrategyKey(input: {\n route: string;\n strategy: string;\n}): string {\n return `${input.route}:${input.strategy}`;\n}\n\nfunction uniqueStrings(values: readonly string[]): string[] {\n const out: string[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n if (!value.length || seen.has(value)) continue;\n seen.add(value);\n out.push(value);\n }\n return out;\n}\n\nfunction buildClarificationComparisonMatchedKey(input: {\n observedRuleId: string | null;\n}): string {\n return input.observedRuleId ?? \"none\";\n}\n\nfunction isClarificationBlockingRuleSatisfiedByRuntime(\n row: AssistantWorkflowTraceReportRow,\n ruleId: string,\n): boolean {\n return row.summary.clarificationComparisons.some((comparison) =>\n comparison.matched === true &&\n comparison.produced === true &&\n (\n comparison.expectedBlockingRuleIds.includes(ruleId) ||\n comparison.expectedRuleIds.includes(ruleId)\n ),\n );\n}\n\nfunction buildReportSuggestions(\n rows: readonly AssistantWorkflowTraceReportRow[],\n): AssistantWorkflowTraceReportSuggestion[] {\n const builder = new SuggestionBuilder();\n for (const row of rows) {\n const intent = row.summary.classifier?.intent ?? row.summary.workflow?.intent ?? null;\n const workflow = row.summary.workflow;\n\n for (const tool of workflow?.missingRequiredToolHints ?? []) {\n builder.add({\n kind: \"review_missing_required_tool\",\n severity: \"warning\",\n intent,\n tool,\n signal: null,\n requestId: row.requestId,\n });\n }\n if (workflow && hasAssistantWorkflowConstrainedToolSelectionEvidence(workflow)) {\n for (const tool of getMissingWorkflowSelectionCandidateTools(workflow)) {\n builder.add({\n kind: \"review_workflow_tool_selection_gap\",\n severity: \"info\",\n intent,\n tool,\n signal: null,\n requestId: row.requestId,\n });\n }\n for (const tool of getAssistantWorkflowUnmodeledToolCalls(workflow, row.summary.toolCallNames)) {\n builder.add({\n kind: \"review_unmodeled_selected_tool\",\n severity: \"info\",\n intent,\n tool,\n signal: null,\n requestId: row.requestId,\n });\n }\n }\n for (const tool of workflow?.extraClassifierTools ?? []) {\n builder.add({\n kind: \"review_classifier_extra_tool\",\n severity: \"info\",\n intent,\n tool,\n signal: null,\n requestId: row.requestId,\n });\n }\n for (const ruleId of workflow?.clarification?.blockingRuleIds ?? []) {\n if (isClarificationBlockingRuleSatisfiedByRuntime(row, ruleId)) continue;\n builder.add({\n kind: \"review_clarification_policy\",\n severity: \"warning\",\n intent,\n tool: null,\n signal: ruleId,\n requestId: row.requestId,\n });\n }\n for (const comparison of row.summary.clarificationComparisons) {\n for (const ruleId of comparison.missingExpectedRuleIds) {\n builder.add({\n kind: \"review_clarification_policy\",\n severity: \"warning\",\n intent: comparison.intent ?? intent,\n tool: null,\n signal: ruleId,\n requestId: row.requestId,\n });\n }\n if (comparison.unexpectedObservedRuleId) {\n builder.add({\n kind: \"review_clarification_policy\",\n severity: \"warning\",\n intent: comparison.intent ?? intent,\n tool: null,\n signal: comparison.unexpectedObservedRuleId,\n requestId: row.requestId,\n });\n }\n }\n for (const patch of row.summary.memoryPatches) {\n if (patch.profilePatchEquivalent !== false) continue;\n builder.add({\n kind: \"review_memory_patch_equivalence\",\n severity: \"warning\",\n intent,\n tool: null,\n signal: patch.profilePatchMismatchedFields.join(\", \") || \"profile_patch_mismatch\",\n requestId: row.requestId,\n });\n }\n for (const strategy of row.directRouteStrategies) {\n if (strategy.declared !== false) continue;\n builder.add({\n kind: \"review_direct_route_strategy\",\n severity: \"info\",\n intent: strategy.definitionRouteId ?? strategy.route,\n tool: null,\n signal: buildDirectRouteStrategyKey(strategy),\n requestId: row.requestId,\n });\n }\n for (const stage of row.summary.errorStages) {\n builder.add({\n kind: \"review_trace_error\",\n severity: \"warning\",\n intent,\n tool: null,\n signal: stage,\n requestId: row.requestId,\n });\n }\n for (const signal of row.summary.quality.signalNames) {\n builder.add({\n kind: \"review_quality_signal\",\n severity: \"warning\",\n intent,\n tool: null,\n signal,\n requestId: row.requestId,\n });\n }\n if (row.feedback === \"bad\" && row.evalCandidate) {\n builder.add({\n kind: \"promote_bad_feedback_eval\",\n severity: \"warning\",\n intent,\n tool: null,\n signal: \"bad_feedback\",\n requestId: row.requestId,\n });\n }\n }\n return builder.toSuggestions();\n}\n\nfunction buildTraceDerivedRunReportStatus(\n row: AssistantWorkflowTraceReportRow,\n warningCount: number,\n): AssistantWorkflowRunReportStatus {\n if (row.summary.handledOutcome?.kind === \"clarification\") return \"clarification\";\n if (row.summary.handledOutcome?.kind === \"degraded\") return \"degraded\";\n if (row.summary.errorStages.length > 0) return \"failed\";\n if (warningCount > 0 || row.feedback === \"bad\" || row.summary.quality.flagged) return \"degraded\";\n if (row.summary.handledOutcome) return \"completed\";\n if (!row.summary.workflow) return \"not_handled\";\n return \"completed\";\n}\n\nfunction buildTraceDerivedRunEvaluationSignals(\n row: AssistantWorkflowTraceReportRow,\n): AssistantWorkflowRunEvaluationSignal[] {\n const signals: AssistantWorkflowRunEvaluationSignal[] = [];\n const workflow = row.summary.workflow;\n\n if (!workflow && !row.summary.handledOutcome) {\n signals.push({\n name: \"run_not_handled\",\n severity: \"warning\",\n detail: \"trace did not include a workflow decision\",\n });\n }\n if (row.summary.errorStages.length > 0) {\n signals.push({\n name: \"run_failed\",\n severity: \"warning\",\n detail: row.summary.errorStages.join(\", \"),\n });\n }\n if (workflow?.missingRequiredToolHints.length) {\n signals.push({\n name: \"missing_required_tools\",\n severity: \"warning\",\n detail: workflow.missingRequiredToolHints.join(\", \"),\n });\n }\n if (workflow?.plan?.missingRequiredToolHints.length) {\n signals.push({\n name: \"missing_required_tools\",\n severity: \"warning\",\n detail: workflow.plan.missingRequiredToolHints.join(\", \"),\n });\n }\n if (row.summary.errorStages.some((stage) => stage === ASSISTANT_WORKFLOW_TRACE_STAGE.toolCallError)) {\n signals.push({\n name: \"tool_execution_failed\",\n severity: \"warning\",\n detail: row.summary.errorStages.join(\", \"),\n });\n }\n if (row.feedback === \"bad\" || row.summary.quality.flagged) {\n signals.push({\n name: \"run_degraded\",\n severity: \"warning\",\n detail: row.summary.quality.flagged\n ? row.summary.quality.signalNames.join(\", \") || \"quality flagged\"\n : \"bad feedback\",\n });\n }\n for (const comparison of row.summary.clarificationComparisons) {\n if (comparison.matched !== false) continue;\n signals.push({\n name: \"clarification_policy_mismatch\",\n severity: \"warning\",\n detail: buildClarificationPolicyMismatchDetail(comparison),\n });\n }\n\n return dedupeRunEvaluationSignals(signals);\n}\n\nfunction buildClarificationPolicyMismatchDetail(input: {\n missingExpectedRuleIds: readonly string[];\n unexpectedObservedRuleId: string | null;\n observedRuleId: string | null;\n}): string {\n if (input.missingExpectedRuleIds.length) return `missing ${input.missingExpectedRuleIds.join(\", \")}`;\n if (input.unexpectedObservedRuleId) return `unexpected ${input.unexpectedObservedRuleId}`;\n if (input.observedRuleId) return `unmatched ${input.observedRuleId}`;\n return \"clarification policy mismatch\";\n}\n\nfunction dedupeRunEvaluationSignals(\n signals: readonly AssistantWorkflowRunEvaluationSignal[],\n): AssistantWorkflowRunEvaluationSignal[] {\n const out: AssistantWorkflowRunEvaluationSignal[] = [];\n const seen = new Set<string>();\n for (const signal of signals) {\n const key = `${signal.name}:${signal.detail ?? \"\"}`;\n if (seen.has(key)) continue;\n seen.add(key);\n out.push(signal);\n }\n return out;\n}\n\nfunction buildTraceDerivedOutcomeReason(\n row: AssistantWorkflowTraceReportRow,\n status: AssistantWorkflowRunReportStatus,\n): string | null {\n if (status === \"completed\") return null;\n if (!row.summary.workflow) return \"trace did not include a workflow decision\";\n if (row.summary.errorStages.length > 0) return row.summary.errorStages.join(\", \");\n if (row.summary.quality.flagged) return row.summary.quality.signalNames.join(\", \") || \"quality flagged\";\n if (row.feedback === \"bad\") return \"bad feedback\";\n return \"trace-derived warning\";\n}\n\nfunction normalizeRunReportWorkflowId(value: string | null | undefined): string {\n const normalized = value?.trim();\n return normalized?.length ? normalized : \"trace-derived-assistant-workflow\";\n}\n\nfunction normalizeRunReportWorkflowVersion(value: number | null | undefined): number {\n if (typeof value !== \"number\" || !Number.isFinite(value)) return 1;\n return Math.max(1, Math.floor(value));\n}\n\ntype PendingSuggestion = {\n kind: AssistantWorkflowTraceReportSuggestionKind;\n severity: \"info\" | \"warning\";\n intent: string | null;\n tool: string | null;\n signal: string | null;\n requestId: string;\n};\n\ntype SuggestionAccumulator = Omit<PendingSuggestion, \"requestId\"> & {\n count: number;\n requestIds: string[];\n};\n\nclass SuggestionBuilder {\n private readonly suggestions = new Map<string, SuggestionAccumulator>();\n\n add(input: PendingSuggestion): void {\n const id = buildSuggestionId(input);\n const existing = this.suggestions.get(id);\n if (existing) {\n existing.count += 1;\n if (!existing.requestIds.includes(input.requestId) && existing.requestIds.length < 5) {\n existing.requestIds.push(input.requestId);\n }\n if (input.severity === \"warning\") existing.severity = \"warning\";\n return;\n }\n this.suggestions.set(id, {\n kind: input.kind,\n severity: input.severity,\n intent: input.intent,\n tool: input.tool,\n signal: input.signal,\n count: 1,\n requestIds: [input.requestId],\n });\n }\n\n toSuggestions(): AssistantWorkflowTraceReportSuggestion[] {\n return [...this.suggestions.entries()]\n .map(([id, item]) => ({\n id,\n kind: item.kind,\n severity: item.severity,\n intent: item.intent,\n tool: item.tool,\n signal: item.signal,\n count: item.count,\n requestIds: item.requestIds,\n ...describeSuggestion(item),\n }))\n .sort((left, right) => {\n if (left.severity !== right.severity) return left.severity === \"warning\" ? -1 : 1;\n if (right.count !== left.count) return right.count - left.count;\n return left.id.localeCompare(right.id);\n });\n }\n}\n\nfunction buildSuggestionId(input: Omit<PendingSuggestion, \"requestId\">): string {\n return [\n input.kind,\n input.intent ?? \"unknown\",\n input.tool ?? input.signal ?? \"all\",\n ].map((part) => part.replace(/[^a-zA-Z0-9_.-]+/g, \"_\").toLowerCase()).join(\":\");\n}\n\nfunction describeSuggestion(\n item: Omit<SuggestionAccumulator, \"count\" | \"requestIds\">,\n): Pick<AssistantWorkflowTraceReportSuggestion, \"rationale\" | \"suggestedAction\"> {\n const intent = item.intent ?? \"unknown intent\";\n const tool = item.tool ?? \"unknown tool\";\n const signal = item.signal ?? \"unknown signal\";\n switch (item.kind) {\n case \"review_missing_required_tool\":\n return {\n rationale: `Workflow required ${tool} for ${intent}, but the tool was not available in these traces.`,\n suggestedAction: \"Check tool registration/policy or relax the requiredToolHint/planning-step requirement if it is no longer valid.\",\n };\n case \"review_workflow_tool_selection_gap\":\n return {\n rationale: `Workflow suggested ${tool} for ${intent}, but existing tool pruning did not select it.`,\n suggestedAction: \"Compare pruning rules against workflow hints before migrating this route to workflow-owned selection.\",\n };\n case \"review_unmodeled_selected_tool\":\n return {\n rationale: `Existing runtime selected ${tool} for ${intent}, but the workflow did not suggest it.`,\n suggestedAction: \"If this is intentional, add a tool hint or conditional planning step; otherwise tighten the runtime pruning path.\",\n };\n case \"review_classifier_extra_tool\":\n return {\n rationale: `Classifier exposed ${tool} for ${intent} outside the workflow hint set.`,\n suggestedAction: \"Add an explicit workflow hint/condition or update classifier prompt facts so the contract stays consistent.\",\n };\n case \"review_clarification_policy\":\n return {\n rationale: `Clarification rule ${signal} blocked confident execution for ${intent}.`,\n suggestedAction: \"Check whether the runtime already clarified correctly; if repeated, promote examples into evals before changing the clarification rule.\",\n };\n case \"review_memory_patch_equivalence\":\n return {\n rationale: `Workflow memory patches did not reproduce legacy profile fields (${signal}) for ${intent}.`,\n suggestedAction: \"Keep memory writes in shadow mode; inspect the slot mapping/coercion before cutting over profile persistence.\",\n };\n case \"review_direct_route_strategy\":\n return {\n rationale: `Runtime direct-route strategy ${signal} was observed for ${intent}, but it is not declared in the workflow route catalog.`,\n suggestedAction: \"Review whether this branch should be added to route strategy metadata or split into a narrower direct-route definition.\",\n };\n case \"review_trace_error\":\n return {\n rationale: `Trace stage ${signal} occurred for ${intent}.`,\n suggestedAction: \"Debug the request path first; tune workflow only after the implementation error is understood.\",\n };\n case \"review_quality_signal\":\n return {\n rationale: `Quality signal ${signal} fired for ${intent}.`,\n suggestedAction: \"Promote representative prompts to eval cases, then adjust intent, tool, artifact, or clarification policy if repeated.\",\n };\n case \"promote_bad_feedback_eval\":\n return {\n rationale: `Bad user feedback was recorded for ${intent}.`,\n suggestedAction: \"Review the trace and promote the prompt into an eval case before changing workflow definitions.\",\n };\n }\n}\n"]}
@@ -0,0 +1,70 @@
1
+ export declare const ASSISTANT_WORKFLOW_TRACE_STAGE: {
2
+ readonly chatRequestStart: "chat.request.start";
3
+ readonly userMessage: "user.message";
4
+ readonly contextSelected: "context.selected";
5
+ readonly modelSelection: "model.selection";
6
+ readonly modelSelectionFallback: "model.selection.fallback";
7
+ readonly modelSelectionRuntimeMismatch: "model.selection.runtime_mismatch";
8
+ readonly llmCompletion: "llm.completion";
9
+ readonly llmUsage: "llm.usage";
10
+ readonly schemaAdvisoryRequest: "schema_advisory.request";
11
+ readonly routePlannerDecision: "route_planner.decision";
12
+ readonly plannerClassifierDone: "planner_classifier.done";
13
+ readonly plannerWorkflowDecision: "planner_classifier.workflow_decision";
14
+ readonly toolCall: "tool.call";
15
+ readonly toolCallError: "tool.call.error";
16
+ readonly toolGuardrailHit: "tool.guardrail.hit";
17
+ readonly toolSelectionApplied: "tools.selected";
18
+ readonly toolSelectionSignalsLegacy: "tool_selection.signals.legacy";
19
+ readonly toolSelectionWorkflowComparison: "tool_selection.workflow_comparison";
20
+ readonly responseGuardrailHit: "response.guardrail.hit";
21
+ readonly responsesStateConfig: "responses.state.config";
22
+ readonly responsesStatefulPilotConfig: "responses.stateful_pilot.config";
23
+ readonly responsesStateRequest: "responses.state.request";
24
+ readonly responsesStatePersisted: "responses.state.persisted";
25
+ readonly responsesStateHistoryCompacted: "responses.state.history_compacted";
26
+ readonly responsesCreated: "responses.created";
27
+ readonly responsesOutputItem: "responses.output.item";
28
+ readonly responsesReasoningSummary: "responses.reasoning.summary";
29
+ readonly responsesFunctionCall: "responses.function_call";
30
+ readonly responsesHostedToolsConfig: "responses.hosted_tools.config";
31
+ readonly responsesHostedToolsRequest: "responses.hosted_tools.request";
32
+ readonly responsesHostedToolsIntentSkipped: "responses.hosted_tools.intent_skipped";
33
+ readonly responsesHostedToolsIntent: "responses.hosted_tools.intent";
34
+ readonly qualitySignalsFlagged: "quality.signals.flagged";
35
+ readonly qualitySignalsOk: "quality.signals.ok";
36
+ readonly outcome: "assistant_workflow.outcome";
37
+ readonly memoryPatch: "assistant_workflow.memory_patch";
38
+ readonly toolBindingRuntime: "assistant_workflow.tool_binding_runtime";
39
+ readonly threadProfileInjected: "thread.profile.injected";
40
+ readonly threadProfileInjectionSkipped: "thread.profile.injection_skipped";
41
+ readonly threadProfileUpdated: "thread.profile.updated";
42
+ readonly directRoutePolicy: "assistant_workflow.direct_route_policy";
43
+ readonly directRouteGap: "assistant_workflow.direct_route_gap";
44
+ readonly turnShortCircuit: "turn.shortcircuit";
45
+ };
46
+ export type AssistantWorkflowTraceStage = typeof ASSISTANT_WORKFLOW_TRACE_STAGE[keyof typeof ASSISTANT_WORKFLOW_TRACE_STAGE];
47
+ export declare const ASSISTANT_WORKFLOW_TRACE_STAGES: ("chat.request.start" | "user.message" | "context.selected" | "model.selection" | "model.selection.fallback" | "model.selection.runtime_mismatch" | "llm.completion" | "llm.usage" | "schema_advisory.request" | "route_planner.decision" | "planner_classifier.done" | "planner_classifier.workflow_decision" | "tool.call" | "tool.call.error" | "tool.guardrail.hit" | "tools.selected" | "tool_selection.signals.legacy" | "tool_selection.workflow_comparison" | "response.guardrail.hit" | "responses.state.config" | "responses.stateful_pilot.config" | "responses.state.request" | "responses.state.persisted" | "responses.state.history_compacted" | "responses.created" | "responses.output.item" | "responses.reasoning.summary" | "responses.function_call" | "responses.hosted_tools.config" | "responses.hosted_tools.request" | "responses.hosted_tools.intent_skipped" | "responses.hosted_tools.intent" | "quality.signals.flagged" | "quality.signals.ok" | "assistant_workflow.outcome" | "assistant_workflow.memory_patch" | "assistant_workflow.tool_binding_runtime" | "thread.profile.injected" | "thread.profile.injection_skipped" | "thread.profile.updated" | "assistant_workflow.direct_route_policy" | "assistant_workflow.direct_route_gap" | "turn.shortcircuit")[];
48
+ /**
49
+ * Marks schema-cost traces computed from the final tool definitions sent to
50
+ * the provider. Older traces without this marker may describe a pre-authority
51
+ * candidate and must not be mixed into cost comparisons.
52
+ */
53
+ export declare const ASSISTANT_WORKFLOW_TOOL_SELECTION_SCHEMA_COST_SOURCE: {
54
+ readonly effectiveSelectedToolDefinitionsV1: "effective_selected_tool_definitions_v1";
55
+ };
56
+ export declare const ASSISTANT_WORKFLOW_REPLAY_CANDIDATE_TRACE_STAGES: readonly ["planner_classifier.workflow_decision", "tool_selection.workflow_comparison", "assistant_workflow.outcome", "assistant_workflow.memory_patch", "assistant_workflow.tool_binding_runtime", "thread.profile.updated"];
57
+ export declare const ASSISTANT_WORKFLOW_DIRECT_ROUTE_TRACE_OUTCOMES: readonly ["done", "skip", "recovered", "error"];
58
+ export type AssistantWorkflowDirectRouteTraceOutcome = typeof ASSISTANT_WORKFLOW_DIRECT_ROUTE_TRACE_OUTCOMES[number];
59
+ export type AssistantWorkflowDirectRouteTraceStage = `direct.${string}.route.${AssistantWorkflowDirectRouteTraceOutcome}`;
60
+ export type AssistantWorkflowDirectRouteTraceStageParts = {
61
+ stage: AssistantWorkflowDirectRouteTraceStage;
62
+ route: string;
63
+ outcome: AssistantWorkflowDirectRouteTraceOutcome;
64
+ };
65
+ export declare function isAssistantWorkflowTraceStage(value: unknown): value is AssistantWorkflowTraceStage;
66
+ export declare function isAssistantWorkflowReplayCandidateTraceStage(value: unknown): value is typeof ASSISTANT_WORKFLOW_REPLAY_CANDIDATE_TRACE_STAGES[number];
67
+ export declare function isAssistantWorkflowDirectRouteTraceOutcome(value: unknown): value is AssistantWorkflowDirectRouteTraceOutcome;
68
+ export declare function buildAssistantWorkflowDirectRouteTraceStage(route: unknown, outcome: unknown): AssistantWorkflowDirectRouteTraceStage | null;
69
+ export declare function parseAssistantWorkflowDirectRouteTraceStage(stage: unknown): AssistantWorkflowDirectRouteTraceStageParts | null;
70
+ //# sourceMappingURL=trace-stages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-stages.d.ts","sourceRoot":"","sources":["../src/trace-stages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CjC,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACrC,OAAO,8BAA8B,CAAC,MAAM,OAAO,8BAA8B,CAAC,CAAC;AAErF,eAAO,MAAM,+BAA+B,suCAAgD,CAAC;AAE7F;;;;GAIG;AACH,eAAO,MAAM,oDAAoD;;CAEvD,CAAC;AAEX,eAAO,MAAM,gDAAgD,+NAOF,CAAC;AAE5D,eAAO,MAAM,8CAA8C,iDAKjD,CAAC;AAEX,MAAM,MAAM,wCAAwC,GAClD,OAAO,8CAA8C,CAAC,MAAM,CAAC,CAAC;AAEhE,MAAM,MAAM,sCAAsC,GAChD,UAAU,MAAM,UAAU,wCAAwC,EAAE,CAAC;AAEvE,MAAM,MAAM,2CAA2C,GAAG;IACxD,KAAK,EAAE,sCAAsC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,wCAAwC,CAAC;CACnD,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,2BAA2B,CAGlG;AAED,wBAAgB,4CAA4C,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IACjF,OAAO,gDAAgD,CAAC,MAAM,CAAC,CAKhE;AAED,wBAAgB,0CAA0C,CACxD,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,wCAAwC,CAGnD;AAED,wBAAgB,2CAA2C,CACzD,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,GACf,sCAAsC,GAAG,IAAI,CAI/C;AAED,wBAAgB,2CAA2C,CACzD,KAAK,EAAE,OAAO,GACb,2CAA2C,GAAG,IAAI,CAYpD"}
@@ -0,0 +1,103 @@
1
+ export const ASSISTANT_WORKFLOW_TRACE_STAGE = {
2
+ chatRequestStart: "chat.request.start",
3
+ userMessage: "user.message",
4
+ contextSelected: "context.selected",
5
+ modelSelection: "model.selection",
6
+ modelSelectionFallback: "model.selection.fallback",
7
+ modelSelectionRuntimeMismatch: "model.selection.runtime_mismatch",
8
+ llmCompletion: "llm.completion",
9
+ llmUsage: "llm.usage",
10
+ schemaAdvisoryRequest: "schema_advisory.request",
11
+ routePlannerDecision: "route_planner.decision",
12
+ plannerClassifierDone: "planner_classifier.done",
13
+ plannerWorkflowDecision: "planner_classifier.workflow_decision",
14
+ toolCall: "tool.call",
15
+ toolCallError: "tool.call.error",
16
+ toolGuardrailHit: "tool.guardrail.hit",
17
+ toolSelectionApplied: "tools.selected",
18
+ toolSelectionSignalsLegacy: "tool_selection.signals.legacy",
19
+ toolSelectionWorkflowComparison: "tool_selection.workflow_comparison",
20
+ responseGuardrailHit: "response.guardrail.hit",
21
+ responsesStateConfig: "responses.state.config",
22
+ responsesStatefulPilotConfig: "responses.stateful_pilot.config",
23
+ responsesStateRequest: "responses.state.request",
24
+ responsesStatePersisted: "responses.state.persisted",
25
+ responsesStateHistoryCompacted: "responses.state.history_compacted",
26
+ responsesCreated: "responses.created",
27
+ responsesOutputItem: "responses.output.item",
28
+ responsesReasoningSummary: "responses.reasoning.summary",
29
+ responsesFunctionCall: "responses.function_call",
30
+ responsesHostedToolsConfig: "responses.hosted_tools.config",
31
+ responsesHostedToolsRequest: "responses.hosted_tools.request",
32
+ responsesHostedToolsIntentSkipped: "responses.hosted_tools.intent_skipped",
33
+ responsesHostedToolsIntent: "responses.hosted_tools.intent",
34
+ qualitySignalsFlagged: "quality.signals.flagged",
35
+ qualitySignalsOk: "quality.signals.ok",
36
+ outcome: "assistant_workflow.outcome",
37
+ memoryPatch: "assistant_workflow.memory_patch",
38
+ toolBindingRuntime: "assistant_workflow.tool_binding_runtime",
39
+ threadProfileInjected: "thread.profile.injected",
40
+ threadProfileInjectionSkipped: "thread.profile.injection_skipped",
41
+ threadProfileUpdated: "thread.profile.updated",
42
+ directRoutePolicy: "assistant_workflow.direct_route_policy",
43
+ directRouteGap: "assistant_workflow.direct_route_gap",
44
+ turnShortCircuit: "turn.shortcircuit",
45
+ };
46
+ export const ASSISTANT_WORKFLOW_TRACE_STAGES = Object.values(ASSISTANT_WORKFLOW_TRACE_STAGE);
47
+ /**
48
+ * Marks schema-cost traces computed from the final tool definitions sent to
49
+ * the provider. Older traces without this marker may describe a pre-authority
50
+ * candidate and must not be mixed into cost comparisons.
51
+ */
52
+ export const ASSISTANT_WORKFLOW_TOOL_SELECTION_SCHEMA_COST_SOURCE = {
53
+ effectiveSelectedToolDefinitionsV1: "effective_selected_tool_definitions_v1",
54
+ };
55
+ export const ASSISTANT_WORKFLOW_REPLAY_CANDIDATE_TRACE_STAGES = [
56
+ ASSISTANT_WORKFLOW_TRACE_STAGE.plannerWorkflowDecision,
57
+ ASSISTANT_WORKFLOW_TRACE_STAGE.toolSelectionWorkflowComparison,
58
+ ASSISTANT_WORKFLOW_TRACE_STAGE.outcome,
59
+ ASSISTANT_WORKFLOW_TRACE_STAGE.memoryPatch,
60
+ ASSISTANT_WORKFLOW_TRACE_STAGE.toolBindingRuntime,
61
+ ASSISTANT_WORKFLOW_TRACE_STAGE.threadProfileUpdated,
62
+ ];
63
+ export const ASSISTANT_WORKFLOW_DIRECT_ROUTE_TRACE_OUTCOMES = [
64
+ "done",
65
+ "skip",
66
+ "recovered",
67
+ "error",
68
+ ];
69
+ export function isAssistantWorkflowTraceStage(value) {
70
+ return typeof value === "string" &&
71
+ ASSISTANT_WORKFLOW_TRACE_STAGES.includes(value);
72
+ }
73
+ export function isAssistantWorkflowReplayCandidateTraceStage(value) {
74
+ return typeof value === "string" &&
75
+ ASSISTANT_WORKFLOW_REPLAY_CANDIDATE_TRACE_STAGES.includes(value);
76
+ }
77
+ export function isAssistantWorkflowDirectRouteTraceOutcome(value) {
78
+ return typeof value === "string" &&
79
+ ASSISTANT_WORKFLOW_DIRECT_ROUTE_TRACE_OUTCOMES.includes(value);
80
+ }
81
+ export function buildAssistantWorkflowDirectRouteTraceStage(route, outcome) {
82
+ const normalizedRoute = typeof route === "string" ? route.trim() : "";
83
+ if (!normalizedRoute || !isAssistantWorkflowDirectRouteTraceOutcome(outcome))
84
+ return null;
85
+ return `direct.${normalizedRoute}.route.${outcome}`;
86
+ }
87
+ export function parseAssistantWorkflowDirectRouteTraceStage(stage) {
88
+ if (typeof stage !== "string")
89
+ return null;
90
+ const match = /^direct\.(.+)\.route\.(done|skip|recovered|error)$/.exec(stage);
91
+ if (!match)
92
+ return null;
93
+ const route = match[1]?.trim() ?? "";
94
+ const outcome = match[2];
95
+ if (!route || !isAssistantWorkflowDirectRouteTraceOutcome(outcome))
96
+ return null;
97
+ return {
98
+ stage: stage,
99
+ route,
100
+ outcome,
101
+ };
102
+ }
103
+ //# sourceMappingURL=trace-stages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-stages.js","sourceRoot":"","sources":["../src/trace-stages.ts"],"names":[],"mappings":"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","sourcesContent":["export const ASSISTANT_WORKFLOW_TRACE_STAGE = {\n chatRequestStart: \"chat.request.start\",\n userMessage: \"user.message\",\n contextSelected: \"context.selected\",\n modelSelection: \"model.selection\",\n modelSelectionFallback: \"model.selection.fallback\",\n modelSelectionRuntimeMismatch: \"model.selection.runtime_mismatch\",\n llmCompletion: \"llm.completion\",\n llmUsage: \"llm.usage\",\n schemaAdvisoryRequest: \"schema_advisory.request\",\n routePlannerDecision: \"route_planner.decision\",\n plannerClassifierDone: \"planner_classifier.done\",\n plannerWorkflowDecision: \"planner_classifier.workflow_decision\",\n toolCall: \"tool.call\",\n toolCallError: \"tool.call.error\",\n toolGuardrailHit: \"tool.guardrail.hit\",\n toolSelectionApplied: \"tools.selected\",\n toolSelectionSignalsLegacy: \"tool_selection.signals.legacy\",\n toolSelectionWorkflowComparison: \"tool_selection.workflow_comparison\",\n responseGuardrailHit: \"response.guardrail.hit\",\n responsesStateConfig: \"responses.state.config\",\n responsesStatefulPilotConfig: \"responses.stateful_pilot.config\",\n responsesStateRequest: \"responses.state.request\",\n responsesStatePersisted: \"responses.state.persisted\",\n responsesStateHistoryCompacted: \"responses.state.history_compacted\",\n responsesCreated: \"responses.created\",\n responsesOutputItem: \"responses.output.item\",\n responsesReasoningSummary: \"responses.reasoning.summary\",\n responsesFunctionCall: \"responses.function_call\",\n responsesHostedToolsConfig: \"responses.hosted_tools.config\",\n responsesHostedToolsRequest: \"responses.hosted_tools.request\",\n responsesHostedToolsIntentSkipped: \"responses.hosted_tools.intent_skipped\",\n responsesHostedToolsIntent: \"responses.hosted_tools.intent\",\n qualitySignalsFlagged: \"quality.signals.flagged\",\n qualitySignalsOk: \"quality.signals.ok\",\n outcome: \"assistant_workflow.outcome\",\n memoryPatch: \"assistant_workflow.memory_patch\",\n toolBindingRuntime: \"assistant_workflow.tool_binding_runtime\",\n threadProfileInjected: \"thread.profile.injected\",\n threadProfileInjectionSkipped: \"thread.profile.injection_skipped\",\n threadProfileUpdated: \"thread.profile.updated\",\n directRoutePolicy: \"assistant_workflow.direct_route_policy\",\n directRouteGap: \"assistant_workflow.direct_route_gap\",\n turnShortCircuit: \"turn.shortcircuit\",\n} as const;\n\nexport type AssistantWorkflowTraceStage =\n typeof ASSISTANT_WORKFLOW_TRACE_STAGE[keyof typeof ASSISTANT_WORKFLOW_TRACE_STAGE];\n\nexport const ASSISTANT_WORKFLOW_TRACE_STAGES = Object.values(ASSISTANT_WORKFLOW_TRACE_STAGE);\n\n/**\n * Marks schema-cost traces computed from the final tool definitions sent to\n * the provider. Older traces without this marker may describe a pre-authority\n * candidate and must not be mixed into cost comparisons.\n */\nexport const ASSISTANT_WORKFLOW_TOOL_SELECTION_SCHEMA_COST_SOURCE = {\n effectiveSelectedToolDefinitionsV1: \"effective_selected_tool_definitions_v1\",\n} as const;\n\nexport const ASSISTANT_WORKFLOW_REPLAY_CANDIDATE_TRACE_STAGES = [\n ASSISTANT_WORKFLOW_TRACE_STAGE.plannerWorkflowDecision,\n ASSISTANT_WORKFLOW_TRACE_STAGE.toolSelectionWorkflowComparison,\n ASSISTANT_WORKFLOW_TRACE_STAGE.outcome,\n ASSISTANT_WORKFLOW_TRACE_STAGE.memoryPatch,\n ASSISTANT_WORKFLOW_TRACE_STAGE.toolBindingRuntime,\n ASSISTANT_WORKFLOW_TRACE_STAGE.threadProfileUpdated,\n] as const satisfies readonly AssistantWorkflowTraceStage[];\n\nexport const ASSISTANT_WORKFLOW_DIRECT_ROUTE_TRACE_OUTCOMES = [\n \"done\",\n \"skip\",\n \"recovered\",\n \"error\",\n] as const;\n\nexport type AssistantWorkflowDirectRouteTraceOutcome =\n typeof ASSISTANT_WORKFLOW_DIRECT_ROUTE_TRACE_OUTCOMES[number];\n\nexport type AssistantWorkflowDirectRouteTraceStage =\n `direct.${string}.route.${AssistantWorkflowDirectRouteTraceOutcome}`;\n\nexport type AssistantWorkflowDirectRouteTraceStageParts = {\n stage: AssistantWorkflowDirectRouteTraceStage;\n route: string;\n outcome: AssistantWorkflowDirectRouteTraceOutcome;\n};\n\nexport function isAssistantWorkflowTraceStage(value: unknown): value is AssistantWorkflowTraceStage {\n return typeof value === \"string\" &&\n ASSISTANT_WORKFLOW_TRACE_STAGES.includes(value as AssistantWorkflowTraceStage);\n}\n\nexport function isAssistantWorkflowReplayCandidateTraceStage(value: unknown): value is\n typeof ASSISTANT_WORKFLOW_REPLAY_CANDIDATE_TRACE_STAGES[number] {\n return typeof value === \"string\" &&\n ASSISTANT_WORKFLOW_REPLAY_CANDIDATE_TRACE_STAGES.includes(\n value as typeof ASSISTANT_WORKFLOW_REPLAY_CANDIDATE_TRACE_STAGES[number],\n );\n}\n\nexport function isAssistantWorkflowDirectRouteTraceOutcome(\n value: unknown,\n): value is AssistantWorkflowDirectRouteTraceOutcome {\n return typeof value === \"string\" &&\n ASSISTANT_WORKFLOW_DIRECT_ROUTE_TRACE_OUTCOMES.includes(value as AssistantWorkflowDirectRouteTraceOutcome);\n}\n\nexport function buildAssistantWorkflowDirectRouteTraceStage(\n route: unknown,\n outcome: unknown,\n): AssistantWorkflowDirectRouteTraceStage | null {\n const normalizedRoute = typeof route === \"string\" ? route.trim() : \"\";\n if (!normalizedRoute || !isAssistantWorkflowDirectRouteTraceOutcome(outcome)) return null;\n return `direct.${normalizedRoute}.route.${outcome}`;\n}\n\nexport function parseAssistantWorkflowDirectRouteTraceStage(\n stage: unknown,\n): AssistantWorkflowDirectRouteTraceStageParts | null {\n if (typeof stage !== \"string\") return null;\n const match = /^direct\\.(.+)\\.route\\.(done|skip|recovered|error)$/.exec(stage);\n if (!match) return null;\n const route = match[1]?.trim() ?? \"\";\n const outcome = match[2];\n if (!route || !isAssistantWorkflowDirectRouteTraceOutcome(outcome)) return null;\n return {\n stage: stage as AssistantWorkflowDirectRouteTraceStage,\n route,\n outcome,\n };\n}\n"]}
@@ -0,0 +1,20 @@
1
+ export type AssistantWorkflowStringReadOptions = {
2
+ trim?: boolean;
3
+ allowEmpty?: boolean;
4
+ };
5
+ export type AssistantWorkflowStringArrayReadOptions = AssistantWorkflowStringReadOptions & {
6
+ unique?: boolean;
7
+ requireAllStrings?: boolean;
8
+ };
9
+ export declare function readAssistantWorkflowRecord<T extends Record<string, unknown> = Record<string, unknown>>(value: unknown): T | null;
10
+ export declare function readAssistantWorkflowString(value: unknown, options?: AssistantWorkflowStringReadOptions): string | null;
11
+ export declare function readAssistantWorkflowStringOrDefault(value: unknown, fallback: string, options?: AssistantWorkflowStringReadOptions): string;
12
+ export declare function readAssistantWorkflowStringArray(value: unknown, options?: AssistantWorkflowStringArrayReadOptions): string[];
13
+ export declare function readAssistantWorkflowNumber(value: unknown): number | null;
14
+ export declare function readAssistantWorkflowNumberOrDefault(value: unknown, fallback: number): number;
15
+ export declare function readAssistantWorkflowBoolean(value: unknown): boolean | null;
16
+ export declare function readAssistantWorkflowBooleanOrDefault(value: unknown, fallback: boolean): boolean;
17
+ export declare function readAssistantWorkflowBooleanRecord(value: unknown): Record<string, boolean>;
18
+ export declare function readAssistantWorkflowNestedArray(value: unknown, path: readonly string[]): unknown[];
19
+ export declare function readAssistantWorkflowNestedString(value: unknown, path: readonly string[], options?: AssistantWorkflowStringReadOptions): string | null;
20
+ //# sourceMappingURL=value-readers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-readers.d.ts","sourceRoot":"","sources":["../src/value-readers.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kCAAkC,GAAG;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uCAAuC,GAAG,kCAAkC,GAAG;IACzF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrG,KAAK,EAAE,OAAO,GACb,CAAC,GAAG,IAAI,CAIV;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,kCAAuC,GAC/C,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kCAAuC,GAC/C,MAAM,CAER;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,uCAA4C,GACpD,MAAM,EAAE,CAiBV;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEzE;AAED,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7F;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAE3E;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAEhG;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQ1F;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,EAAE,CAQnG;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,kCAAuC,GAC/C,MAAM,GAAG,IAAI,CAQf"}