@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,68 @@
1
+ import { findAssistantWorkflowDefinitionPackageDefinition, findLatestAssistantWorkflowDefinitionPackageDefinition, } from "./definition-package-loader.js";
2
+ export function selectAssistantWorkflowDefinitionFromPackage(definitionPackage, request = {}) {
3
+ const candidateWorkflowIds = listPackageWorkflowIds(definitionPackage);
4
+ if (!candidateWorkflowIds.length) {
5
+ return selectionFailure("empty_package", null, request.version ?? null, "Package does not contain any workflow definitions.", candidateWorkflowIds);
6
+ }
7
+ const workflowId = request.workflowId ?? inferSingleWorkflowId(candidateWorkflowIds);
8
+ if (!workflowId) {
9
+ return selectionFailure("ambiguous_workflow", null, request.version ?? null, "Package contains multiple workflow ids; workflowId is required.", candidateWorkflowIds);
10
+ }
11
+ const definition = request.version === undefined
12
+ ? findLatestAssistantWorkflowDefinitionPackageDefinition(definitionPackage, workflowId, {
13
+ ...(request.includeInvalid !== undefined ? { includeInvalid: request.includeInvalid } : {}),
14
+ })
15
+ : findAssistantWorkflowDefinitionPackageDefinition(definitionPackage, workflowId, request.version, {
16
+ ...(request.includeInvalid !== undefined ? { includeInvalid: request.includeInvalid } : {}),
17
+ });
18
+ if (!definition) {
19
+ return selectionFailure("not_found", workflowId, request.version ?? null, request.version === undefined
20
+ ? `No valid workflow definition found for ${workflowId}.`
21
+ : `No valid workflow definition found for ${workflowId}@${request.version}.`, candidateWorkflowIds);
22
+ }
23
+ return {
24
+ selected: true,
25
+ status: "selected",
26
+ workflowId: definition.workflowId,
27
+ workflowVersion: definition.workflowVersion,
28
+ definition,
29
+ reason: null,
30
+ candidateWorkflowIds,
31
+ };
32
+ }
33
+ export function buildAssistantWorkflowDefinitionPackageSelectionTracePayload(result) {
34
+ return {
35
+ selected: result.selected,
36
+ status: result.status,
37
+ workflowId: result.workflowId,
38
+ workflowVersion: result.workflowVersion,
39
+ reason: result.reason,
40
+ candidateWorkflowIds: result.candidateWorkflowIds,
41
+ definition: result.definition
42
+ ? {
43
+ schemaVersion: result.definition.schemaVersion,
44
+ workflowId: result.definition.workflowId,
45
+ workflowVersion: result.definition.workflowVersion,
46
+ summary: result.definition.summary,
47
+ }
48
+ : null,
49
+ };
50
+ }
51
+ function listPackageWorkflowIds(definitionPackage) {
52
+ return [...new Set(definitionPackage.catalog.entries.map((entry) => entry.workflowId))].sort();
53
+ }
54
+ function inferSingleWorkflowId(candidateWorkflowIds) {
55
+ return candidateWorkflowIds.length === 1 ? candidateWorkflowIds[0] ?? null : null;
56
+ }
57
+ function selectionFailure(status, workflowId, workflowVersion, reason, candidateWorkflowIds) {
58
+ return {
59
+ selected: false,
60
+ status,
61
+ workflowId,
62
+ workflowVersion,
63
+ definition: null,
64
+ reason,
65
+ candidateWorkflowIds,
66
+ };
67
+ }
68
+ //# sourceMappingURL=definition-package-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-package-selection.js","sourceRoot":"","sources":["../src/definition-package-selection.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantWorkflowSerializedDefinition } from \"./definition-json.js\";\nimport type { AssistantWorkflowDefinitionPackage } from \"./definition-package.js\";\nimport {\n findAssistantWorkflowDefinitionPackageDefinition,\n findLatestAssistantWorkflowDefinitionPackageDefinition,\n} from \"./definition-package-loader.js\";\nimport type { AssistantWorkflowJsonValue } from \"./run-report-json.js\";\n\nexport type AssistantWorkflowDefinitionPackageSelectionStatus =\n | \"selected\"\n | \"empty_package\"\n | \"ambiguous_workflow\"\n | \"not_found\";\n\nexport type AssistantWorkflowDefinitionPackageSelectionRequest = {\n workflowId?: string;\n version?: number;\n includeInvalid?: boolean;\n};\n\nexport type AssistantWorkflowDefinitionPackageSelectionResult =\n | {\n selected: true;\n status: \"selected\";\n workflowId: string;\n workflowVersion: number;\n definition: AssistantWorkflowSerializedDefinition;\n reason: string | null;\n candidateWorkflowIds: string[];\n }\n | {\n selected: false;\n status: \"empty_package\" | \"ambiguous_workflow\" | \"not_found\";\n workflowId: string | null;\n workflowVersion: number | null;\n definition: null;\n reason: string;\n candidateWorkflowIds: string[];\n };\n\nexport function selectAssistantWorkflowDefinitionFromPackage(\n definitionPackage: AssistantWorkflowDefinitionPackage,\n request: AssistantWorkflowDefinitionPackageSelectionRequest = {},\n): AssistantWorkflowDefinitionPackageSelectionResult {\n const candidateWorkflowIds = listPackageWorkflowIds(definitionPackage);\n if (!candidateWorkflowIds.length) {\n return selectionFailure(\"empty_package\", null, request.version ?? null, \"Package does not contain any workflow definitions.\", candidateWorkflowIds);\n }\n\n const workflowId = request.workflowId ?? inferSingleWorkflowId(candidateWorkflowIds);\n if (!workflowId) {\n return selectionFailure(\n \"ambiguous_workflow\",\n null,\n request.version ?? null,\n \"Package contains multiple workflow ids; workflowId is required.\",\n candidateWorkflowIds,\n );\n }\n\n const definition = request.version === undefined\n ? findLatestAssistantWorkflowDefinitionPackageDefinition(definitionPackage, workflowId, {\n ...(request.includeInvalid !== undefined ? { includeInvalid: request.includeInvalid } : {}),\n })\n : findAssistantWorkflowDefinitionPackageDefinition(definitionPackage, workflowId, request.version, {\n ...(request.includeInvalid !== undefined ? { includeInvalid: request.includeInvalid } : {}),\n });\n\n if (!definition) {\n return selectionFailure(\n \"not_found\",\n workflowId,\n request.version ?? null,\n request.version === undefined\n ? `No valid workflow definition found for ${workflowId}.`\n : `No valid workflow definition found for ${workflowId}@${request.version}.`,\n candidateWorkflowIds,\n );\n }\n\n return {\n selected: true,\n status: \"selected\",\n workflowId: definition.workflowId,\n workflowVersion: definition.workflowVersion,\n definition,\n reason: null,\n candidateWorkflowIds,\n };\n}\n\nexport function buildAssistantWorkflowDefinitionPackageSelectionTracePayload(\n result: AssistantWorkflowDefinitionPackageSelectionResult,\n): Record<string, AssistantWorkflowJsonValue> {\n return {\n selected: result.selected,\n status: result.status,\n workflowId: result.workflowId,\n workflowVersion: result.workflowVersion,\n reason: result.reason,\n candidateWorkflowIds: result.candidateWorkflowIds,\n definition: result.definition\n ? {\n schemaVersion: result.definition.schemaVersion,\n workflowId: result.definition.workflowId,\n workflowVersion: result.definition.workflowVersion,\n summary: result.definition.summary,\n }\n : null,\n };\n}\n\nfunction listPackageWorkflowIds(definitionPackage: AssistantWorkflowDefinitionPackage): string[] {\n return [...new Set(definitionPackage.catalog.entries.map((entry) => entry.workflowId))].sort();\n}\n\nfunction inferSingleWorkflowId(candidateWorkflowIds: readonly string[]): string | null {\n return candidateWorkflowIds.length === 1 ? candidateWorkflowIds[0] ?? null : null;\n}\n\nfunction selectionFailure(\n status: \"empty_package\" | \"ambiguous_workflow\" | \"not_found\",\n workflowId: string | null,\n workflowVersion: number | null,\n reason: string,\n candidateWorkflowIds: string[],\n): AssistantWorkflowDefinitionPackageSelectionResult {\n return {\n selected: false,\n status,\n workflowId,\n workflowVersion,\n definition: null,\n reason,\n candidateWorkflowIds,\n };\n}\n"]}
@@ -0,0 +1,74 @@
1
+ import { type AssistantWorkflowDefinitionPackageExecutionResult, type AssistantWorkflowDefinitionPackageExecutionStatus } from "./definition-package-executor.js";
2
+ import { type AssistantWorkflowDefinitionPackageRunInput, type AssistantWorkflowDefinitionPackageRunResult } from "./definition-package-run.js";
3
+ import type { AssistantWorkflowExecutionPlanStatus } from "./execution-plan.js";
4
+ import { type AssistantWorkflowOutcome } from "./outcome.js";
5
+ import type { AssistantWorkflowRunReportStatus } from "./run-report.js";
6
+ import { type AssistantWorkflowFixtureToolExecutorOptions, type AssistantWorkflowToolFixtureMap } from "./tool-fixtures.js";
7
+ import type { AssistantWorkflowToolExecutionOptions } from "./tool-executor.js";
8
+ import type { AssistantWorkflowToolResultSummaryStatus } from "./tool-results.js";
9
+ export type AssistantWorkflowDefinitionPackageSmokeRunCase = AssistantWorkflowDefinitionPackageRunInput & {
10
+ id: string;
11
+ required?: boolean;
12
+ expectedRunStatus?: AssistantWorkflowExecutionPlanStatus;
13
+ expectedActivePlanningStepProfileIds?: readonly string[];
14
+ expectedProfileStepIds?: readonly string[];
15
+ };
16
+ export type AssistantWorkflowDefinitionPackageSmokeExecutionCase = AssistantWorkflowDefinitionPackageRunInput & {
17
+ id: string;
18
+ required?: boolean;
19
+ fixtures?: AssistantWorkflowToolFixtureMap;
20
+ fixtureOptions?: AssistantWorkflowFixtureToolExecutorOptions;
21
+ toolExecutionOptions?: AssistantWorkflowToolExecutionOptions;
22
+ outcome?: AssistantWorkflowOutcome;
23
+ expectedExecutionStatus?: AssistantWorkflowDefinitionPackageExecutionStatus;
24
+ expectedReportStatus?: AssistantWorkflowRunReportStatus;
25
+ expectedToolResultStatus?: AssistantWorkflowToolResultSummaryStatus;
26
+ expectedActivePlanningStepProfileIds?: readonly string[];
27
+ expectedProfileStepIds?: readonly string[];
28
+ };
29
+ export type AssistantWorkflowDefinitionPackageSmokeSuiteInput = {
30
+ runCases?: readonly AssistantWorkflowDefinitionPackageSmokeRunCase[];
31
+ executionCases?: readonly AssistantWorkflowDefinitionPackageSmokeExecutionCase[];
32
+ };
33
+ export type AssistantWorkflowDefinitionPackageSmokeCheck = {
34
+ id: string;
35
+ expected: string | number | boolean | null;
36
+ actual: string | number | boolean | null;
37
+ passed: boolean;
38
+ };
39
+ export type AssistantWorkflowDefinitionPackageSmokeRunCaseResult = {
40
+ id: string;
41
+ kind: "run";
42
+ required: boolean;
43
+ passed: boolean;
44
+ checks: AssistantWorkflowDefinitionPackageSmokeCheck[];
45
+ packageRun: AssistantWorkflowDefinitionPackageRunResult;
46
+ };
47
+ export type AssistantWorkflowDefinitionPackageSmokeExecutionCaseResult = {
48
+ id: string;
49
+ kind: "execution";
50
+ required: boolean;
51
+ passed: boolean;
52
+ checks: AssistantWorkflowDefinitionPackageSmokeCheck[];
53
+ execution: AssistantWorkflowDefinitionPackageExecutionResult;
54
+ };
55
+ export type AssistantWorkflowDefinitionPackageSmokeCaseResult = AssistantWorkflowDefinitionPackageSmokeRunCaseResult | AssistantWorkflowDefinitionPackageSmokeExecutionCaseResult;
56
+ export type AssistantWorkflowDefinitionPackageSmokeSummary = {
57
+ caseCount: number;
58
+ runCaseCount: number;
59
+ executionCaseCount: number;
60
+ passCount: number;
61
+ failCount: number;
62
+ requiredFailCount: number;
63
+ failedCaseIds: string[];
64
+ requiredFailedCaseIds: string[];
65
+ };
66
+ export type AssistantWorkflowDefinitionPackageSmokeSuiteResult = {
67
+ summary: AssistantWorkflowDefinitionPackageSmokeSummary;
68
+ cases: AssistantWorkflowDefinitionPackageSmokeCaseResult[];
69
+ };
70
+ export declare function runAssistantWorkflowDefinitionPackageSmokeSuite(value: unknown, input: AssistantWorkflowDefinitionPackageSmokeSuiteInput): Promise<AssistantWorkflowDefinitionPackageSmokeSuiteResult>;
71
+ export declare function runAssistantWorkflowDefinitionPackageSmokeRunCase(value: unknown, runCase: AssistantWorkflowDefinitionPackageSmokeRunCase): AssistantWorkflowDefinitionPackageSmokeRunCaseResult;
72
+ export declare function runAssistantWorkflowDefinitionPackageSmokeExecutionCase(value: unknown, executionCase: AssistantWorkflowDefinitionPackageSmokeExecutionCase): Promise<AssistantWorkflowDefinitionPackageSmokeExecutionCaseResult>;
73
+ export declare function buildAssistantWorkflowDefinitionPackageSmokeSuiteTracePayload(result: AssistantWorkflowDefinitionPackageSmokeSuiteResult): Record<string, unknown>;
74
+ //# sourceMappingURL=definition-package-smoke.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-package-smoke.d.ts","sourceRoot":"","sources":["../src/definition-package-smoke.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ import { executeAssistantWorkflowRunFromPackage, } from "./definition-package-executor.js";
2
+ import { buildAssistantWorkflowRunFromPackage, } from "./definition-package-run.js";
3
+ import { assistantWorkflowNotHandled } from "./outcome.js";
4
+ import { buildAssistantWorkflowFixtureToolExecutor, } from "./tool-fixtures.js";
5
+ export async function runAssistantWorkflowDefinitionPackageSmokeSuite(value, input) {
6
+ const cases = [];
7
+ for (const runCase of input.runCases ?? []) {
8
+ cases.push(runAssistantWorkflowDefinitionPackageSmokeRunCase(value, runCase));
9
+ }
10
+ for (const executionCase of input.executionCases ?? []) {
11
+ cases.push(await runAssistantWorkflowDefinitionPackageSmokeExecutionCase(value, executionCase));
12
+ }
13
+ return {
14
+ summary: buildSmokeSummary(cases),
15
+ cases,
16
+ };
17
+ }
18
+ export function runAssistantWorkflowDefinitionPackageSmokeRunCase(value, runCase) {
19
+ const packageRun = buildAssistantWorkflowRunFromPackage(value, runCase);
20
+ const checks = [
21
+ smokeCheck("package_run_built", true, packageRun.built),
22
+ ...(runCase.expectedRunStatus
23
+ ? [smokeCheck("run_status", runCase.expectedRunStatus, packageRun.run?.status ?? null)]
24
+ : []),
25
+ ...optionalStringSetCheck("active_planning_step_profiles", runCase.expectedActivePlanningStepProfileIds, packageRun.run?.decision.plan.activePlanningStepProfileIds ?? null),
26
+ ...optionalStringSetCheck("profile_steps", runCase.expectedProfileStepIds, packageRun.run?.decision.plan.profileStepIds ?? null),
27
+ ];
28
+ return {
29
+ id: normalizeCaseId(runCase.id),
30
+ kind: "run",
31
+ required: runCase.required !== false,
32
+ passed: checks.every((check) => check.passed),
33
+ checks,
34
+ packageRun,
35
+ };
36
+ }
37
+ export async function runAssistantWorkflowDefinitionPackageSmokeExecutionCase(value, executionCase) {
38
+ const execution = await executeAssistantWorkflowRunFromPackage(value, {
39
+ ...executionCase,
40
+ toolExecutor: buildAssistantWorkflowFixtureToolExecutor(executionCase.fixtures ?? {}, executionCase.fixtureOptions ?? {}),
41
+ outcome: executionCase.outcome ?? assistantWorkflowNotHandled("package smoke execution did not produce an outcome"),
42
+ ...(executionCase.toolExecutionOptions ? { toolExecutionOptions: executionCase.toolExecutionOptions } : {}),
43
+ });
44
+ const checks = [
45
+ smokeCheck("package_execution_executed", true, execution.executed),
46
+ ...(executionCase.expectedExecutionStatus
47
+ ? [smokeCheck("execution_status", executionCase.expectedExecutionStatus, execution.status)]
48
+ : []),
49
+ ...(executionCase.expectedReportStatus
50
+ ? [smokeCheck("report_status", executionCase.expectedReportStatus, execution.report?.status ?? null)]
51
+ : []),
52
+ ...(executionCase.expectedToolResultStatus
53
+ ? [smokeCheck("tool_result_status", executionCase.expectedToolResultStatus, execution.toolExecution?.summary.status ?? null)]
54
+ : []),
55
+ ...optionalStringSetCheck("active_planning_step_profiles", executionCase.expectedActivePlanningStepProfileIds, execution.report?.evaluation.activePlanningStepProfileIds ?? null),
56
+ ...optionalStringSetCheck("profile_steps", executionCase.expectedProfileStepIds, execution.report?.evaluation.profileStepIds ?? null),
57
+ ];
58
+ return {
59
+ id: normalizeCaseId(executionCase.id),
60
+ kind: "execution",
61
+ required: executionCase.required !== false,
62
+ passed: checks.every((check) => check.passed),
63
+ checks,
64
+ execution,
65
+ };
66
+ }
67
+ export function buildAssistantWorkflowDefinitionPackageSmokeSuiteTracePayload(result) {
68
+ return {
69
+ summary: result.summary,
70
+ cases: result.cases.map((smokeCase) => ({
71
+ id: smokeCase.id,
72
+ kind: smokeCase.kind,
73
+ required: smokeCase.required,
74
+ passed: smokeCase.passed,
75
+ checks: smokeCase.checks.map((check) => ({ ...check })),
76
+ ...(smokeCase.kind === "run"
77
+ ? { packageRun: buildCompactPackageRunTracePayload(smokeCase.packageRun) }
78
+ : { execution: buildCompactExecutionTracePayload(smokeCase.execution) }),
79
+ })),
80
+ };
81
+ }
82
+ function buildSmokeSummary(cases) {
83
+ const failedCases = cases.filter((smokeCase) => !smokeCase.passed);
84
+ const requiredFailedCases = failedCases.filter((smokeCase) => smokeCase.required);
85
+ return {
86
+ caseCount: cases.length,
87
+ runCaseCount: cases.filter((smokeCase) => smokeCase.kind === "run").length,
88
+ executionCaseCount: cases.filter((smokeCase) => smokeCase.kind === "execution").length,
89
+ passCount: cases.length - failedCases.length,
90
+ failCount: failedCases.length,
91
+ requiredFailCount: requiredFailedCases.length,
92
+ failedCaseIds: failedCases.map((smokeCase) => smokeCase.id),
93
+ requiredFailedCaseIds: requiredFailedCases.map((smokeCase) => smokeCase.id),
94
+ };
95
+ }
96
+ function smokeCheck(id, expected, actual) {
97
+ return {
98
+ id,
99
+ expected,
100
+ actual,
101
+ passed: expected === actual,
102
+ };
103
+ }
104
+ function optionalStringSetCheck(id, expected, actual) {
105
+ if (expected === undefined)
106
+ return [];
107
+ return [smokeCheck(id, normalizeStringSet(expected).join(","), normalizeStringSet(actual ?? []).join(","))];
108
+ }
109
+ function normalizeStringSet(values) {
110
+ return [...new Set(values.map((value) => value.trim()).filter((value) => value.length > 0))].sort();
111
+ }
112
+ function buildCompactPackageRunTracePayload(result) {
113
+ return {
114
+ built: result.built,
115
+ status: result.status,
116
+ reason: result.reason,
117
+ resolve: {
118
+ resolved: result.resolve.resolved,
119
+ status: result.resolve.status,
120
+ reason: result.resolve.reason,
121
+ definition: result.resolve.definition
122
+ ? {
123
+ schemaVersion: result.resolve.definition.schemaVersion,
124
+ workflowId: result.resolve.definition.workflowId,
125
+ workflowVersion: result.resolve.definition.workflowVersion,
126
+ summary: result.resolve.definition.summary,
127
+ }
128
+ : null,
129
+ },
130
+ run: result.run
131
+ ? {
132
+ workflowId: result.run.workflowId,
133
+ workflowVersion: result.run.workflowVersion,
134
+ status: result.run.status,
135
+ intent: result.run.decision.intent,
136
+ matchedIntent: result.run.decision.matchedIntent,
137
+ activePlanningStepProfileIds: result.run.decision.plan.activePlanningStepProfileIds,
138
+ profileStepIds: result.run.decision.plan.profileStepIds,
139
+ toolInvocationCount: result.run.toolInvocationQueue.invocations.length,
140
+ blockingReasons: result.run.executionPlan.blockingReasons,
141
+ warnings: result.run.executionPlan.warnings,
142
+ }
143
+ : null,
144
+ };
145
+ }
146
+ function buildCompactExecutionTracePayload(result) {
147
+ return {
148
+ executed: result.executed,
149
+ status: result.status,
150
+ reason: result.reason,
151
+ packageRun: buildCompactPackageRunTracePayload(result.packageRun),
152
+ toolExecution: result.toolExecution
153
+ ? {
154
+ status: result.toolExecution.summary.status,
155
+ totalInvocations: result.toolExecution.summary.totalInvocations,
156
+ resultCount: result.toolExecution.summary.resultCount,
157
+ successCount: result.toolExecution.summary.successCount,
158
+ errorCount: result.toolExecution.summary.errorCount,
159
+ skippedCount: result.toolExecution.summary.skippedCount,
160
+ }
161
+ : null,
162
+ report: result.report
163
+ ? {
164
+ workflowId: result.report.workflowId,
165
+ workflowVersion: result.report.workflowVersion,
166
+ status: result.report.status,
167
+ outcomeKind: result.report.outcomeSummary.kind,
168
+ handled: result.report.outcomeSummary.handled,
169
+ activePlanningStepProfileIds: result.report.evaluation.activePlanningStepProfileIds,
170
+ profileStepIds: result.report.evaluation.profileStepIds,
171
+ warningCount: result.report.evaluation.warningCount,
172
+ signalCount: result.report.evaluation.signalCount,
173
+ }
174
+ : null,
175
+ };
176
+ }
177
+ function normalizeCaseId(id) {
178
+ const trimmed = id.trim();
179
+ if (!trimmed.length) {
180
+ throw new Error("Assistant workflow package smoke case id is required.");
181
+ }
182
+ return trimmed;
183
+ }
184
+ //# sourceMappingURL=definition-package-smoke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-package-smoke.js","sourceRoot":"","sources":["../src/definition-package-smoke.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n executeAssistantWorkflowRunFromPackage,\n type AssistantWorkflowDefinitionPackageExecutionResult,\n type AssistantWorkflowDefinitionPackageExecutionStatus,\n} from \"./definition-package-executor.js\";\nimport {\n buildAssistantWorkflowRunFromPackage,\n type AssistantWorkflowDefinitionPackageRunInput,\n type AssistantWorkflowDefinitionPackageRunResult,\n} from \"./definition-package-run.js\";\nimport type { AssistantWorkflowExecutionPlanStatus } from \"./execution-plan.js\";\nimport { assistantWorkflowNotHandled, type AssistantWorkflowOutcome } from \"./outcome.js\";\nimport type { AssistantWorkflowRunReportStatus } from \"./run-report.js\";\nimport {\n buildAssistantWorkflowFixtureToolExecutor,\n type AssistantWorkflowFixtureToolExecutorOptions,\n type AssistantWorkflowToolFixtureMap,\n} from \"./tool-fixtures.js\";\nimport type { AssistantWorkflowToolExecutionOptions } from \"./tool-executor.js\";\nimport type { AssistantWorkflowToolResultSummaryStatus } from \"./tool-results.js\";\n\nexport type AssistantWorkflowDefinitionPackageSmokeRunCase = AssistantWorkflowDefinitionPackageRunInput & {\n id: string;\n required?: boolean;\n expectedRunStatus?: AssistantWorkflowExecutionPlanStatus;\n expectedActivePlanningStepProfileIds?: readonly string[];\n expectedProfileStepIds?: readonly string[];\n};\n\nexport type AssistantWorkflowDefinitionPackageSmokeExecutionCase = AssistantWorkflowDefinitionPackageRunInput & {\n id: string;\n required?: boolean;\n fixtures?: AssistantWorkflowToolFixtureMap;\n fixtureOptions?: AssistantWorkflowFixtureToolExecutorOptions;\n toolExecutionOptions?: AssistantWorkflowToolExecutionOptions;\n outcome?: AssistantWorkflowOutcome;\n expectedExecutionStatus?: AssistantWorkflowDefinitionPackageExecutionStatus;\n expectedReportStatus?: AssistantWorkflowRunReportStatus;\n expectedToolResultStatus?: AssistantWorkflowToolResultSummaryStatus;\n expectedActivePlanningStepProfileIds?: readonly string[];\n expectedProfileStepIds?: readonly string[];\n};\n\nexport type AssistantWorkflowDefinitionPackageSmokeSuiteInput = {\n runCases?: readonly AssistantWorkflowDefinitionPackageSmokeRunCase[];\n executionCases?: readonly AssistantWorkflowDefinitionPackageSmokeExecutionCase[];\n};\n\nexport type AssistantWorkflowDefinitionPackageSmokeCheck = {\n id: string;\n expected: string | number | boolean | null;\n actual: string | number | boolean | null;\n passed: boolean;\n};\n\nexport type AssistantWorkflowDefinitionPackageSmokeRunCaseResult = {\n id: string;\n kind: \"run\";\n required: boolean;\n passed: boolean;\n checks: AssistantWorkflowDefinitionPackageSmokeCheck[];\n packageRun: AssistantWorkflowDefinitionPackageRunResult;\n};\n\nexport type AssistantWorkflowDefinitionPackageSmokeExecutionCaseResult = {\n id: string;\n kind: \"execution\";\n required: boolean;\n passed: boolean;\n checks: AssistantWorkflowDefinitionPackageSmokeCheck[];\n execution: AssistantWorkflowDefinitionPackageExecutionResult;\n};\n\nexport type AssistantWorkflowDefinitionPackageSmokeCaseResult =\n | AssistantWorkflowDefinitionPackageSmokeRunCaseResult\n | AssistantWorkflowDefinitionPackageSmokeExecutionCaseResult;\n\nexport type AssistantWorkflowDefinitionPackageSmokeSummary = {\n caseCount: number;\n runCaseCount: number;\n executionCaseCount: number;\n passCount: number;\n failCount: number;\n requiredFailCount: number;\n failedCaseIds: string[];\n requiredFailedCaseIds: string[];\n};\n\nexport type AssistantWorkflowDefinitionPackageSmokeSuiteResult = {\n summary: AssistantWorkflowDefinitionPackageSmokeSummary;\n cases: AssistantWorkflowDefinitionPackageSmokeCaseResult[];\n};\n\nexport async function runAssistantWorkflowDefinitionPackageSmokeSuite(\n value: unknown,\n input: AssistantWorkflowDefinitionPackageSmokeSuiteInput,\n): Promise<AssistantWorkflowDefinitionPackageSmokeSuiteResult> {\n const cases: AssistantWorkflowDefinitionPackageSmokeCaseResult[] = [];\n\n for (const runCase of input.runCases ?? []) {\n cases.push(runAssistantWorkflowDefinitionPackageSmokeRunCase(value, runCase));\n }\n\n for (const executionCase of input.executionCases ?? []) {\n cases.push(await runAssistantWorkflowDefinitionPackageSmokeExecutionCase(value, executionCase));\n }\n\n return {\n summary: buildSmokeSummary(cases),\n cases,\n };\n}\n\nexport function runAssistantWorkflowDefinitionPackageSmokeRunCase(\n value: unknown,\n runCase: AssistantWorkflowDefinitionPackageSmokeRunCase,\n): AssistantWorkflowDefinitionPackageSmokeRunCaseResult {\n const packageRun = buildAssistantWorkflowRunFromPackage(value, runCase);\n const checks = [\n smokeCheck(\"package_run_built\", true, packageRun.built),\n ...(runCase.expectedRunStatus\n ? [smokeCheck(\"run_status\", runCase.expectedRunStatus, packageRun.run?.status ?? null)]\n : []),\n ...optionalStringSetCheck(\n \"active_planning_step_profiles\",\n runCase.expectedActivePlanningStepProfileIds,\n packageRun.run?.decision.plan.activePlanningStepProfileIds ?? null,\n ),\n ...optionalStringSetCheck(\n \"profile_steps\",\n runCase.expectedProfileStepIds,\n packageRun.run?.decision.plan.profileStepIds ?? null,\n ),\n ];\n\n return {\n id: normalizeCaseId(runCase.id),\n kind: \"run\",\n required: runCase.required !== false,\n passed: checks.every((check) => check.passed),\n checks,\n packageRun,\n };\n}\n\nexport async function runAssistantWorkflowDefinitionPackageSmokeExecutionCase(\n value: unknown,\n executionCase: AssistantWorkflowDefinitionPackageSmokeExecutionCase,\n): Promise<AssistantWorkflowDefinitionPackageSmokeExecutionCaseResult> {\n const execution = await executeAssistantWorkflowRunFromPackage(value, {\n ...executionCase,\n toolExecutor: buildAssistantWorkflowFixtureToolExecutor(\n executionCase.fixtures ?? {},\n executionCase.fixtureOptions ?? {},\n ),\n outcome: executionCase.outcome ?? assistantWorkflowNotHandled(\"package smoke execution did not produce an outcome\"),\n ...(executionCase.toolExecutionOptions ? { toolExecutionOptions: executionCase.toolExecutionOptions } : {}),\n });\n const checks = [\n smokeCheck(\"package_execution_executed\", true, execution.executed),\n ...(executionCase.expectedExecutionStatus\n ? [smokeCheck(\"execution_status\", executionCase.expectedExecutionStatus, execution.status)]\n : []),\n ...(executionCase.expectedReportStatus\n ? [smokeCheck(\"report_status\", executionCase.expectedReportStatus, execution.report?.status ?? null)]\n : []),\n ...(executionCase.expectedToolResultStatus\n ? [smokeCheck(\"tool_result_status\", executionCase.expectedToolResultStatus, execution.toolExecution?.summary.status ?? null)]\n : []),\n ...optionalStringSetCheck(\n \"active_planning_step_profiles\",\n executionCase.expectedActivePlanningStepProfileIds,\n execution.report?.evaluation.activePlanningStepProfileIds ?? null,\n ),\n ...optionalStringSetCheck(\n \"profile_steps\",\n executionCase.expectedProfileStepIds,\n execution.report?.evaluation.profileStepIds ?? null,\n ),\n ];\n\n return {\n id: normalizeCaseId(executionCase.id),\n kind: \"execution\",\n required: executionCase.required !== false,\n passed: checks.every((check) => check.passed),\n checks,\n execution,\n };\n}\n\nexport function buildAssistantWorkflowDefinitionPackageSmokeSuiteTracePayload(\n result: AssistantWorkflowDefinitionPackageSmokeSuiteResult,\n): Record<string, unknown> {\n return {\n summary: result.summary,\n cases: result.cases.map((smokeCase) => ({\n id: smokeCase.id,\n kind: smokeCase.kind,\n required: smokeCase.required,\n passed: smokeCase.passed,\n checks: smokeCase.checks.map((check) => ({ ...check })),\n ...(smokeCase.kind === \"run\"\n ? { packageRun: buildCompactPackageRunTracePayload(smokeCase.packageRun) }\n : { execution: buildCompactExecutionTracePayload(smokeCase.execution) }),\n })),\n };\n}\n\nfunction buildSmokeSummary(\n cases: readonly AssistantWorkflowDefinitionPackageSmokeCaseResult[],\n): AssistantWorkflowDefinitionPackageSmokeSummary {\n const failedCases = cases.filter((smokeCase) => !smokeCase.passed);\n const requiredFailedCases = failedCases.filter((smokeCase) => smokeCase.required);\n\n return {\n caseCount: cases.length,\n runCaseCount: cases.filter((smokeCase) => smokeCase.kind === \"run\").length,\n executionCaseCount: cases.filter((smokeCase) => smokeCase.kind === \"execution\").length,\n passCount: cases.length - failedCases.length,\n failCount: failedCases.length,\n requiredFailCount: requiredFailedCases.length,\n failedCaseIds: failedCases.map((smokeCase) => smokeCase.id),\n requiredFailedCaseIds: requiredFailedCases.map((smokeCase) => smokeCase.id),\n };\n}\n\nfunction smokeCheck(\n id: string,\n expected: string | number | boolean | null,\n actual: string | number | boolean | null,\n): AssistantWorkflowDefinitionPackageSmokeCheck {\n return {\n id,\n expected,\n actual,\n passed: expected === actual,\n };\n}\n\nfunction optionalStringSetCheck(\n id: string,\n expected: readonly string[] | undefined,\n actual: readonly string[] | null,\n): AssistantWorkflowDefinitionPackageSmokeCheck[] {\n if (expected === undefined) return [];\n return [smokeCheck(id, normalizeStringSet(expected).join(\",\"), normalizeStringSet(actual ?? []).join(\",\"))];\n}\n\nfunction normalizeStringSet(values: readonly string[]): string[] {\n return [...new Set(values.map((value) => value.trim()).filter((value) => value.length > 0))].sort();\n}\n\nfunction buildCompactPackageRunTracePayload(\n result: AssistantWorkflowDefinitionPackageRunResult,\n): Record<string, unknown> {\n return {\n built: result.built,\n status: result.status,\n reason: result.reason,\n resolve: {\n resolved: result.resolve.resolved,\n status: result.resolve.status,\n reason: result.resolve.reason,\n definition: result.resolve.definition\n ? {\n schemaVersion: result.resolve.definition.schemaVersion,\n workflowId: result.resolve.definition.workflowId,\n workflowVersion: result.resolve.definition.workflowVersion,\n summary: result.resolve.definition.summary,\n }\n : null,\n },\n run: result.run\n ? {\n workflowId: result.run.workflowId,\n workflowVersion: result.run.workflowVersion,\n status: result.run.status,\n intent: result.run.decision.intent,\n matchedIntent: result.run.decision.matchedIntent,\n activePlanningStepProfileIds: result.run.decision.plan.activePlanningStepProfileIds,\n profileStepIds: result.run.decision.plan.profileStepIds,\n toolInvocationCount: result.run.toolInvocationQueue.invocations.length,\n blockingReasons: result.run.executionPlan.blockingReasons,\n warnings: result.run.executionPlan.warnings,\n }\n : null,\n };\n}\n\nfunction buildCompactExecutionTracePayload(\n result: AssistantWorkflowDefinitionPackageExecutionResult,\n): Record<string, unknown> {\n return {\n executed: result.executed,\n status: result.status,\n reason: result.reason,\n packageRun: buildCompactPackageRunTracePayload(result.packageRun),\n toolExecution: result.toolExecution\n ? {\n status: result.toolExecution.summary.status,\n totalInvocations: result.toolExecution.summary.totalInvocations,\n resultCount: result.toolExecution.summary.resultCount,\n successCount: result.toolExecution.summary.successCount,\n errorCount: result.toolExecution.summary.errorCount,\n skippedCount: result.toolExecution.summary.skippedCount,\n }\n : null,\n report: result.report\n ? {\n workflowId: result.report.workflowId,\n workflowVersion: result.report.workflowVersion,\n status: result.report.status,\n outcomeKind: result.report.outcomeSummary.kind,\n handled: result.report.outcomeSummary.handled,\n activePlanningStepProfileIds: result.report.evaluation.activePlanningStepProfileIds,\n profileStepIds: result.report.evaluation.profileStepIds,\n warningCount: result.report.evaluation.warningCount,\n signalCount: result.report.evaluation.signalCount,\n }\n : null,\n };\n}\n\nfunction normalizeCaseId(id: string): string {\n const trimmed = id.trim();\n if (!trimmed.length) {\n throw new Error(\"Assistant workflow package smoke case id is required.\");\n }\n return trimmed;\n}\n"]}
@@ -0,0 +1,36 @@
1
+ import type { AssistantWorkflowDefinition } from "./definition.js";
2
+ import { type AssistantWorkflowDefinitionCatalog } from "./definition-catalog.js";
3
+ import { type AssistantWorkflowDefinitionManifest } from "./definition-manifest.js";
4
+ import type { AssistantWorkflowJsonValue } from "./run-report-json.js";
5
+ export declare const ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_FORMAT = "assistant.workflow.definition-package";
6
+ export declare const ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_VERSION = 1;
7
+ export type AssistantWorkflowDefinitionPackage = {
8
+ format: typeof ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_FORMAT;
9
+ formatVersion: typeof ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_VERSION;
10
+ generatedAt: string;
11
+ packageId: string;
12
+ packageVersion?: string;
13
+ description?: string;
14
+ tags: string[];
15
+ definitionCount: number;
16
+ workflowCount: number;
17
+ validDefinitionCount: number;
18
+ invalidDefinitionCount: number;
19
+ duplicateVersionCount: number;
20
+ catalog: AssistantWorkflowDefinitionCatalog;
21
+ manifests: AssistantWorkflowDefinitionManifest[];
22
+ };
23
+ export type AssistantWorkflowDefinitionPackageOptions = {
24
+ generatedAt?: string;
25
+ packageId?: string;
26
+ packageVersion?: string;
27
+ description?: string;
28
+ tags?: readonly string[];
29
+ };
30
+ export declare function buildAssistantWorkflowDefinitionPackage(definitions: readonly AssistantWorkflowDefinition<string, string, string, string>[], options?: AssistantWorkflowDefinitionPackageOptions): AssistantWorkflowDefinitionPackage;
31
+ export declare function buildAssistantWorkflowDefinitionManifestPackage(manifests: readonly AssistantWorkflowDefinitionManifest[], options?: AssistantWorkflowDefinitionPackageOptions): AssistantWorkflowDefinitionPackage;
32
+ export declare function stringifyAssistantWorkflowDefinitionPackage(definitions: readonly AssistantWorkflowDefinition<string, string, string, string>[], space?: number, options?: AssistantWorkflowDefinitionPackageOptions): string;
33
+ export declare function stringifyAssistantWorkflowDefinitionManifestPackage(manifests: readonly AssistantWorkflowDefinitionManifest[], space?: number, options?: AssistantWorkflowDefinitionPackageOptions): string;
34
+ export declare function parseAssistantWorkflowDefinitionPackage(value: unknown): AssistantWorkflowDefinitionPackage | null;
35
+ export declare function buildAssistantWorkflowDefinitionPackageTracePayload(definitionPackage: AssistantWorkflowDefinitionPackage): Record<string, AssistantWorkflowJsonValue>;
36
+ //# sourceMappingURL=definition-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-package.d.ts","sourceRoot":"","sources":["../src/definition-package.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAGL,KAAK,kCAAkC,EACxC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,KAAK,mCAAmC,EACzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,eAAO,MAAM,4CAA4C,0CAA0C,CAAC;AACpG,eAAO,MAAM,6CAA6C,IAAI,CAAC;AAE/D,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,OAAO,4CAA4C,CAAC;IAC5D,aAAa,EAAE,OAAO,6CAA6C,CAAC;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,OAAO,EAAE,kCAAkC,CAAC;IAC5C,SAAS,EAAE,mCAAmC,EAAE,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,yCAAyC,GAAG;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,wBAAgB,uCAAuC,CACrD,WAAW,EAAE,SAAS,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EACnF,OAAO,GAAE,yCAA8C,GACtD,kCAAkC,CAKpC;AAED,wBAAgB,+CAA+C,CAC7D,SAAS,EAAE,SAAS,mCAAmC,EAAE,EACzD,OAAO,GAAE,yCAA8C,GACtD,kCAAkC,CAsBpC;AAED,wBAAgB,2CAA2C,CACzD,WAAW,EAAE,SAAS,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EACnF,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,GAAE,yCAA8C,GACtD,MAAM,CAER;AAED,wBAAgB,mDAAmD,CACjE,SAAS,EAAE,SAAS,mCAAmC,EAAE,EACzD,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,GAAE,yCAA8C,GACtD,MAAM,CAER;AAED,wBAAgB,uCAAuC,CACrD,KAAK,EAAE,OAAO,GACb,kCAAkC,GAAG,IAAI,CAiC3C;AAED,wBAAgB,mDAAmD,CACjE,iBAAiB,EAAE,kCAAkC,GACpD,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAiB5C"}
@@ -0,0 +1,114 @@
1
+ import { buildAssistantWorkflowDefinitionCatalogTracePayload, buildAssistantWorkflowSerializedDefinitionCatalog, } from "./definition-catalog.js";
2
+ import { buildAssistantWorkflowDefinitionManifest, buildAssistantWorkflowDefinitionManifestTracePayload, parseAssistantWorkflowDefinitionManifest, } from "./definition-manifest.js";
3
+ export const ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_FORMAT = "assistant.workflow.definition-package";
4
+ export const ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_VERSION = 1;
5
+ export function buildAssistantWorkflowDefinitionPackage(definitions, options = {}) {
6
+ const manifests = definitions.map((definition) => buildAssistantWorkflowDefinitionManifest(definition, {
7
+ ...(options.generatedAt ? { generatedAt: options.generatedAt } : {}),
8
+ }));
9
+ return buildAssistantWorkflowDefinitionManifestPackage(manifests, options);
10
+ }
11
+ export function buildAssistantWorkflowDefinitionManifestPackage(manifests, options = {}) {
12
+ const catalog = buildAssistantWorkflowSerializedDefinitionCatalog(manifests.map((manifest) => manifest.serializedDefinition), { ...(options.generatedAt ? { generatedAt: options.generatedAt } : {}) });
13
+ const packageId = options.packageId ?? derivePackageId(manifests);
14
+ return {
15
+ format: ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_FORMAT,
16
+ formatVersion: ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_VERSION,
17
+ generatedAt: options.generatedAt ?? new Date().toISOString(),
18
+ packageId,
19
+ ...(options.packageVersion ? { packageVersion: options.packageVersion } : {}),
20
+ ...(options.description ? { description: options.description } : {}),
21
+ tags: [...new Set(options.tags ?? [])].sort(),
22
+ definitionCount: catalog.definitionCount,
23
+ workflowCount: catalog.workflowCount,
24
+ validDefinitionCount: catalog.validDefinitionCount,
25
+ invalidDefinitionCount: catalog.invalidDefinitionCount,
26
+ duplicateVersionCount: catalog.duplicateVersionCount,
27
+ catalog,
28
+ manifests: manifests.map((manifest) => ({ ...manifest })),
29
+ };
30
+ }
31
+ export function stringifyAssistantWorkflowDefinitionPackage(definitions, space, options = {}) {
32
+ return JSON.stringify(buildAssistantWorkflowDefinitionPackage(definitions, options), null, space);
33
+ }
34
+ export function stringifyAssistantWorkflowDefinitionManifestPackage(manifests, space, options = {}) {
35
+ return JSON.stringify(buildAssistantWorkflowDefinitionManifestPackage(manifests, options), null, space);
36
+ }
37
+ export function parseAssistantWorkflowDefinitionPackage(value) {
38
+ if (!isRecord(value))
39
+ return null;
40
+ if (value["format"] !== ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_FORMAT)
41
+ return null;
42
+ if (value["formatVersion"] !== ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_VERSION)
43
+ return null;
44
+ if (typeof value["generatedAt"] !== "string" || !value["generatedAt"].trim().length)
45
+ return null;
46
+ if (typeof value["packageId"] !== "string" || !value["packageId"].trim().length)
47
+ return null;
48
+ if (value["packageVersion"] !== undefined && typeof value["packageVersion"] !== "string")
49
+ return null;
50
+ if (value["description"] !== undefined && typeof value["description"] !== "string")
51
+ return null;
52
+ if (!isStringArray(value["tags"]))
53
+ return null;
54
+ if (!Array.isArray(value["manifests"]))
55
+ return null;
56
+ const manifests = value["manifests"].map(parseAssistantWorkflowDefinitionManifest);
57
+ if (manifests.some((manifest) => manifest === null))
58
+ return null;
59
+ const options = {
60
+ generatedAt: value["generatedAt"],
61
+ packageId: value["packageId"],
62
+ tags: value["tags"],
63
+ ...(value["packageVersion"] ? { packageVersion: value["packageVersion"] } : {}),
64
+ ...(value["description"] ? { description: value["description"] } : {}),
65
+ };
66
+ const rebuilt = buildAssistantWorkflowDefinitionManifestPackage(manifests.filter((manifest) => manifest !== null), options);
67
+ if (!matchesCount(value["definitionCount"], rebuilt.definitionCount))
68
+ return null;
69
+ if (!matchesCount(value["workflowCount"], rebuilt.workflowCount))
70
+ return null;
71
+ if (!matchesCount(value["validDefinitionCount"], rebuilt.validDefinitionCount))
72
+ return null;
73
+ if (!matchesCount(value["invalidDefinitionCount"], rebuilt.invalidDefinitionCount))
74
+ return null;
75
+ if (!matchesCount(value["duplicateVersionCount"], rebuilt.duplicateVersionCount))
76
+ return null;
77
+ return rebuilt;
78
+ }
79
+ export function buildAssistantWorkflowDefinitionPackageTracePayload(definitionPackage) {
80
+ return {
81
+ format: definitionPackage.format,
82
+ formatVersion: definitionPackage.formatVersion,
83
+ generatedAt: definitionPackage.generatedAt,
84
+ packageId: definitionPackage.packageId,
85
+ packageVersion: definitionPackage.packageVersion ?? null,
86
+ description: definitionPackage.description ?? null,
87
+ tags: definitionPackage.tags,
88
+ definitionCount: definitionPackage.definitionCount,
89
+ workflowCount: definitionPackage.workflowCount,
90
+ validDefinitionCount: definitionPackage.validDefinitionCount,
91
+ invalidDefinitionCount: definitionPackage.invalidDefinitionCount,
92
+ duplicateVersionCount: definitionPackage.duplicateVersionCount,
93
+ catalog: buildAssistantWorkflowDefinitionCatalogTracePayload(definitionPackage.catalog),
94
+ manifests: definitionPackage.manifests.map(buildAssistantWorkflowDefinitionManifestTracePayload),
95
+ };
96
+ }
97
+ function derivePackageId(manifests) {
98
+ const workflowIds = [...new Set(manifests.map((manifest) => manifest.workflowId))].sort();
99
+ if (workflowIds.length === 1 && workflowIds[0])
100
+ return workflowIds[0];
101
+ if (workflowIds.length > 1)
102
+ return `assistant-workflows-${workflowIds.length}`;
103
+ return "assistant-workflows";
104
+ }
105
+ function isRecord(value) {
106
+ return typeof value === "object" && value !== null && !Array.isArray(value);
107
+ }
108
+ function isStringArray(value) {
109
+ return Array.isArray(value) && value.every((item) => typeof item === "string");
110
+ }
111
+ function matchesCount(value, expected) {
112
+ return typeof value === "number" && Number.isFinite(value) && value === expected;
113
+ }
114
+ //# sourceMappingURL=definition-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-package.js","sourceRoot":"","sources":["../src/definition-package.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantWorkflowDefinition } from \"./definition.js\";\nimport {\n buildAssistantWorkflowDefinitionCatalogTracePayload,\n buildAssistantWorkflowSerializedDefinitionCatalog,\n type AssistantWorkflowDefinitionCatalog,\n} from \"./definition-catalog.js\";\nimport {\n buildAssistantWorkflowDefinitionManifest,\n buildAssistantWorkflowDefinitionManifestTracePayload,\n parseAssistantWorkflowDefinitionManifest,\n type AssistantWorkflowDefinitionManifest,\n} from \"./definition-manifest.js\";\nimport type { AssistantWorkflowJsonValue } from \"./run-report-json.js\";\n\nexport const ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_FORMAT = \"assistant.workflow.definition-package\";\nexport const ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_VERSION = 1;\n\nexport type AssistantWorkflowDefinitionPackage = {\n format: typeof ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_FORMAT;\n formatVersion: typeof ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_VERSION;\n generatedAt: string;\n packageId: string;\n packageVersion?: string;\n description?: string;\n tags: string[];\n definitionCount: number;\n workflowCount: number;\n validDefinitionCount: number;\n invalidDefinitionCount: number;\n duplicateVersionCount: number;\n catalog: AssistantWorkflowDefinitionCatalog;\n manifests: AssistantWorkflowDefinitionManifest[];\n};\n\nexport type AssistantWorkflowDefinitionPackageOptions = {\n generatedAt?: string;\n packageId?: string;\n packageVersion?: string;\n description?: string;\n tags?: readonly string[];\n};\n\nexport function buildAssistantWorkflowDefinitionPackage(\n definitions: readonly AssistantWorkflowDefinition<string, string, string, string>[],\n options: AssistantWorkflowDefinitionPackageOptions = {},\n): AssistantWorkflowDefinitionPackage {\n const manifests = definitions.map((definition) => buildAssistantWorkflowDefinitionManifest(definition, {\n ...(options.generatedAt ? { generatedAt: options.generatedAt } : {}),\n }));\n return buildAssistantWorkflowDefinitionManifestPackage(manifests, options);\n}\n\nexport function buildAssistantWorkflowDefinitionManifestPackage(\n manifests: readonly AssistantWorkflowDefinitionManifest[],\n options: AssistantWorkflowDefinitionPackageOptions = {},\n): AssistantWorkflowDefinitionPackage {\n const catalog = buildAssistantWorkflowSerializedDefinitionCatalog(\n manifests.map((manifest) => manifest.serializedDefinition),\n { ...(options.generatedAt ? { generatedAt: options.generatedAt } : {}) },\n );\n const packageId = options.packageId ?? derivePackageId(manifests);\n return {\n format: ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_FORMAT,\n formatVersion: ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_VERSION,\n generatedAt: options.generatedAt ?? new Date().toISOString(),\n packageId,\n ...(options.packageVersion ? { packageVersion: options.packageVersion } : {}),\n ...(options.description ? { description: options.description } : {}),\n tags: [...new Set(options.tags ?? [])].sort(),\n definitionCount: catalog.definitionCount,\n workflowCount: catalog.workflowCount,\n validDefinitionCount: catalog.validDefinitionCount,\n invalidDefinitionCount: catalog.invalidDefinitionCount,\n duplicateVersionCount: catalog.duplicateVersionCount,\n catalog,\n manifests: manifests.map((manifest) => ({ ...manifest })),\n };\n}\n\nexport function stringifyAssistantWorkflowDefinitionPackage(\n definitions: readonly AssistantWorkflowDefinition<string, string, string, string>[],\n space?: number,\n options: AssistantWorkflowDefinitionPackageOptions = {},\n): string {\n return JSON.stringify(buildAssistantWorkflowDefinitionPackage(definitions, options), null, space);\n}\n\nexport function stringifyAssistantWorkflowDefinitionManifestPackage(\n manifests: readonly AssistantWorkflowDefinitionManifest[],\n space?: number,\n options: AssistantWorkflowDefinitionPackageOptions = {},\n): string {\n return JSON.stringify(buildAssistantWorkflowDefinitionManifestPackage(manifests, options), null, space);\n}\n\nexport function parseAssistantWorkflowDefinitionPackage(\n value: unknown,\n): AssistantWorkflowDefinitionPackage | null {\n if (!isRecord(value)) return null;\n if (value[\"format\"] !== ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_FORMAT) return null;\n if (value[\"formatVersion\"] !== ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_VERSION) return null;\n if (typeof value[\"generatedAt\"] !== \"string\" || !value[\"generatedAt\"].trim().length) return null;\n if (typeof value[\"packageId\"] !== \"string\" || !value[\"packageId\"].trim().length) return null;\n if (value[\"packageVersion\"] !== undefined && typeof value[\"packageVersion\"] !== \"string\") return null;\n if (value[\"description\"] !== undefined && typeof value[\"description\"] !== \"string\") return null;\n if (!isStringArray(value[\"tags\"])) return null;\n if (!Array.isArray(value[\"manifests\"])) return null;\n\n const manifests = value[\"manifests\"].map(parseAssistantWorkflowDefinitionManifest);\n if (manifests.some((manifest) => manifest === null)) return null;\n\n const options: AssistantWorkflowDefinitionPackageOptions = {\n generatedAt: value[\"generatedAt\"],\n packageId: value[\"packageId\"],\n tags: value[\"tags\"],\n ...(value[\"packageVersion\"] ? { packageVersion: value[\"packageVersion\"] } : {}),\n ...(value[\"description\"] ? { description: value[\"description\"] } : {}),\n };\n const rebuilt = buildAssistantWorkflowDefinitionManifestPackage(\n manifests.filter((manifest): manifest is AssistantWorkflowDefinitionManifest => manifest !== null),\n options,\n );\n\n if (!matchesCount(value[\"definitionCount\"], rebuilt.definitionCount)) return null;\n if (!matchesCount(value[\"workflowCount\"], rebuilt.workflowCount)) return null;\n if (!matchesCount(value[\"validDefinitionCount\"], rebuilt.validDefinitionCount)) return null;\n if (!matchesCount(value[\"invalidDefinitionCount\"], rebuilt.invalidDefinitionCount)) return null;\n if (!matchesCount(value[\"duplicateVersionCount\"], rebuilt.duplicateVersionCount)) return null;\n\n return rebuilt;\n}\n\nexport function buildAssistantWorkflowDefinitionPackageTracePayload(\n definitionPackage: AssistantWorkflowDefinitionPackage,\n): Record<string, AssistantWorkflowJsonValue> {\n return {\n format: definitionPackage.format,\n formatVersion: definitionPackage.formatVersion,\n generatedAt: definitionPackage.generatedAt,\n packageId: definitionPackage.packageId,\n packageVersion: definitionPackage.packageVersion ?? null,\n description: definitionPackage.description ?? null,\n tags: definitionPackage.tags,\n definitionCount: definitionPackage.definitionCount,\n workflowCount: definitionPackage.workflowCount,\n validDefinitionCount: definitionPackage.validDefinitionCount,\n invalidDefinitionCount: definitionPackage.invalidDefinitionCount,\n duplicateVersionCount: definitionPackage.duplicateVersionCount,\n catalog: buildAssistantWorkflowDefinitionCatalogTracePayload(definitionPackage.catalog),\n manifests: definitionPackage.manifests.map(buildAssistantWorkflowDefinitionManifestTracePayload),\n };\n}\n\nfunction derivePackageId(manifests: readonly AssistantWorkflowDefinitionManifest[]): string {\n const workflowIds = [...new Set(manifests.map((manifest) => manifest.workflowId))].sort();\n if (workflowIds.length === 1 && workflowIds[0]) return workflowIds[0];\n if (workflowIds.length > 1) return `assistant-workflows-${workflowIds.length}`;\n return \"assistant-workflows\";\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction isStringArray(value: unknown): value is string[] {\n return Array.isArray(value) && value.every((item) => typeof item === \"string\");\n}\n\nfunction matchesCount(value: unknown, expected: number): boolean {\n return typeof value === \"number\" && Number.isFinite(value) && value === expected;\n}\n"]}
@@ -0,0 +1,39 @@
1
+ import type { AssistantWorkflowDefinitionTuningReviewArtifact } from "./definition-tuning-review-artifact.js";
2
+ import type { AssistantWorkflowJsonValue } from "./run-report-json.js";
3
+ export declare const ASSISTANT_WORKFLOW_DEFINITION_TUNING_APPROVAL_SCHEMA_VERSION = 1;
4
+ export type AssistantWorkflowDefinitionTuningApprovalDecisionKind = "pending" | "approved" | "rejected";
5
+ export type AssistantWorkflowDefinitionTuningApprovalDecision = {
6
+ suggestionId: string;
7
+ decision: AssistantWorkflowDefinitionTuningApprovalDecisionKind;
8
+ note?: string;
9
+ decidedBy?: string;
10
+ decidedAt?: string;
11
+ };
12
+ export type AssistantWorkflowDefinitionTuningApprovalArtifact = {
13
+ schemaVersion: typeof ASSISTANT_WORKFLOW_DEFINITION_TUNING_APPROVAL_SCHEMA_VERSION;
14
+ generatedAt: string;
15
+ workflowId: string | null;
16
+ workflowVersion: number | null;
17
+ sourceReviewArtifactGeneratedAt: string | null;
18
+ decisions: AssistantWorkflowDefinitionTuningApprovalDecision[];
19
+ };
20
+ export type AssistantWorkflowDefinitionTuningApprovalArtifactOptions = {
21
+ workflowId?: string | null;
22
+ workflowVersion?: number | null;
23
+ sourceReviewArtifactGeneratedAt?: string | null;
24
+ generatedAt?: string;
25
+ };
26
+ export type AssistantWorkflowDefinitionTuningApprovalTemplateOptions = Omit<AssistantWorkflowDefinitionTuningApprovalArtifactOptions, "workflowId" | "workflowVersion" | "sourceReviewArtifactGeneratedAt"> & {
27
+ defaultDecision?: AssistantWorkflowDefinitionTuningApprovalDecisionKind;
28
+ decidedBy?: string;
29
+ decidedAt?: string;
30
+ note?: string;
31
+ };
32
+ export declare function buildAssistantWorkflowDefinitionTuningApprovalArtifact(decisions: readonly AssistantWorkflowDefinitionTuningApprovalDecision[], options?: AssistantWorkflowDefinitionTuningApprovalArtifactOptions): AssistantWorkflowDefinitionTuningApprovalArtifact;
33
+ export declare function buildAssistantWorkflowDefinitionTuningApprovalArtifactFromReview(reviewArtifact: AssistantWorkflowDefinitionTuningReviewArtifact, decisions: readonly AssistantWorkflowDefinitionTuningApprovalDecision[], options?: Omit<AssistantWorkflowDefinitionTuningApprovalArtifactOptions, "workflowId" | "workflowVersion" | "sourceReviewArtifactGeneratedAt">): AssistantWorkflowDefinitionTuningApprovalArtifact;
34
+ export declare function buildAssistantWorkflowDefinitionTuningApprovalTemplateFromReview(reviewArtifact: AssistantWorkflowDefinitionTuningReviewArtifact, options?: AssistantWorkflowDefinitionTuningApprovalTemplateOptions): AssistantWorkflowDefinitionTuningApprovalArtifact;
35
+ export declare function readApprovedAssistantWorkflowDefinitionTuningSuggestionIds(artifact: AssistantWorkflowDefinitionTuningApprovalArtifact): string[];
36
+ export declare function buildAssistantWorkflowDefinitionTuningApprovalTracePayload(artifact: AssistantWorkflowDefinitionTuningApprovalArtifact): Record<string, AssistantWorkflowJsonValue>;
37
+ export declare function stringifyAssistantWorkflowDefinitionTuningApprovalArtifact(artifact: AssistantWorkflowDefinitionTuningApprovalArtifact, space?: number): string;
38
+ export declare function parseAssistantWorkflowDefinitionTuningApprovalArtifact(value: unknown): AssistantWorkflowDefinitionTuningApprovalArtifact | null;
39
+ //# sourceMappingURL=definition-tuning-approval.d.ts.map