@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,132 @@
1
+ import { type AssistantWorkflowDirectRouteRuntimeDecision, type AssistantWorkflowDirectRouteRuntimeDecisionScope } from "./direct-route-policy.js";
2
+ import { type AssistantWorkflowDefinition, type AssistantWorkflowDirectRouteDefinition } from "./definition.js";
3
+ export type AssistantWorkflowDirectRouteInvocationStatus = "ready" | "disabled" | "missing-route";
4
+ export type AssistantWorkflowDirectRouteStrategyInvocation = {
5
+ id: string;
6
+ requiredToolHints: string[];
7
+ };
8
+ export type AssistantWorkflowDirectRouteInvocation = {
9
+ workflowId: string;
10
+ workflowVersion: number;
11
+ intentId: string | null;
12
+ routeId: string;
13
+ status: AssistantWorkflowDirectRouteInvocationStatus;
14
+ enabled: boolean;
15
+ reason: AssistantWorkflowDirectRouteRuntimeDecision["reason"];
16
+ policyRouteIds: string[];
17
+ effect: AssistantWorkflowDirectRouteDefinition["effect"] | null;
18
+ outcomeRoute: string | null;
19
+ requiredToolHints: string[];
20
+ strategyIds: string[];
21
+ strategies: AssistantWorkflowDirectRouteStrategyInvocation[];
22
+ };
23
+ export type AssistantWorkflowDirectRouteExecutionDecisionReason = "ready" | "invocation_not_ready" | "route_mismatch" | "intent_mismatch";
24
+ export type AssistantWorkflowDirectRouteExecutionDecision = {
25
+ execute: boolean;
26
+ reason: AssistantWorkflowDirectRouteExecutionDecisionReason;
27
+ routeId: string;
28
+ expectedRouteId: string | null;
29
+ intentId: string | null;
30
+ observedIntentId: string | null;
31
+ invocationStatus: AssistantWorkflowDirectRouteInvocationStatus;
32
+ enabled: boolean;
33
+ };
34
+ export type AssistantWorkflowDirectRouteStrategyDecisionReason = "ready" | "route_not_executable" | "strategy_missing" | "strategy_not_declared";
35
+ export type AssistantWorkflowDirectRouteStrategyDecision = {
36
+ execute: boolean;
37
+ reason: AssistantWorkflowDirectRouteStrategyDecisionReason;
38
+ routeId: string;
39
+ strategyId: string | null;
40
+ declaredStrategyIds: string[];
41
+ routeExecutionReason: AssistantWorkflowDirectRouteExecutionDecisionReason;
42
+ invocationStatus: AssistantWorkflowDirectRouteInvocationStatus;
43
+ enabled: boolean;
44
+ };
45
+ export type AssistantWorkflowDirectRouteToolDecisionReason = "ready" | "route_not_executable" | "strategy_not_executable" | "tool_missing" | "tool_not_allowed";
46
+ export type AssistantWorkflowDirectRouteToolDecision = {
47
+ execute: boolean;
48
+ reason: AssistantWorkflowDirectRouteToolDecisionReason;
49
+ routeId: string;
50
+ strategyId: string | null;
51
+ toolName: string | null;
52
+ allowedToolHints: string[];
53
+ routeRequiredToolHints: string[];
54
+ strategyRequiredToolHints: string[];
55
+ routeExecutionReason: AssistantWorkflowDirectRouteExecutionDecisionReason;
56
+ strategyReason: AssistantWorkflowDirectRouteStrategyDecisionReason | null;
57
+ invocationStatus: AssistantWorkflowDirectRouteInvocationStatus;
58
+ enabled: boolean;
59
+ };
60
+ /**
61
+ * The complete workflow authorization result for a concrete direct-route
62
+ * handler. Route planners remain domain-specific, while this contract keeps
63
+ * route, strategy, and tool authorization together at the execution boundary.
64
+ */
65
+ export type AssistantWorkflowDirectRouteHandlerDecision = {
66
+ execute: boolean;
67
+ reason: "ready" | "route_not_executable" | "strategy_not_executable" | "tool_not_executable";
68
+ routeExecution: AssistantWorkflowDirectRouteExecutionDecision;
69
+ strategyDecision: AssistantWorkflowDirectRouteStrategyDecision | null;
70
+ toolDecision: AssistantWorkflowDirectRouteToolDecision | null;
71
+ };
72
+ /**
73
+ * Authorization result for a direct-route strategy that needs several tools.
74
+ * Every listed tool must be declared by the selected route/strategy before a
75
+ * controller-local handler can begin executing its domain-specific plan.
76
+ */
77
+ export type AssistantWorkflowDirectRouteHandlerPlanDecision = {
78
+ execute: boolean;
79
+ reason: "ready" | "route_not_executable" | "strategy_not_executable" | "tool_not_executable";
80
+ routeExecution: AssistantWorkflowDirectRouteExecutionDecision;
81
+ strategyDecision: AssistantWorkflowDirectRouteStrategyDecision | null;
82
+ toolDecisions: AssistantWorkflowDirectRouteToolDecision[];
83
+ };
84
+ export type AssistantWorkflowDirectRouteInvocationInput = {
85
+ workflow: AssistantWorkflowDefinition<string, string, string, string>;
86
+ routeId: unknown;
87
+ runtimeEnabled: boolean;
88
+ intentId?: unknown;
89
+ policyScope?: AssistantWorkflowDirectRouteRuntimeDecisionScope;
90
+ };
91
+ export declare function buildAssistantWorkflowDirectRouteInvocation(input: AssistantWorkflowDirectRouteInvocationInput): AssistantWorkflowDirectRouteInvocation;
92
+ export declare function buildAssistantWorkflowDirectRouteInvocationTracePayload(invocation: AssistantWorkflowDirectRouteInvocation): Record<string, unknown>;
93
+ export declare function buildAssistantWorkflowDirectRouteInvocationPolicyTracePayload(invocation: AssistantWorkflowDirectRouteInvocation): Record<string, unknown>;
94
+ export declare function buildAssistantWorkflowDirectRouteExecutionDecision(input: {
95
+ invocation: AssistantWorkflowDirectRouteInvocation;
96
+ expectedRouteId?: unknown;
97
+ observedIntentId?: unknown;
98
+ requireIntentMatch?: boolean;
99
+ }): AssistantWorkflowDirectRouteExecutionDecision;
100
+ export declare function buildAssistantWorkflowDirectRouteExecutionDecisionTracePayload(decision: AssistantWorkflowDirectRouteExecutionDecision): Record<string, unknown>;
101
+ export declare function buildAssistantWorkflowDirectRouteStrategyDecision(input: {
102
+ invocation: AssistantWorkflowDirectRouteInvocation;
103
+ strategyId?: unknown;
104
+ routeExecution?: AssistantWorkflowDirectRouteExecutionDecision;
105
+ }): AssistantWorkflowDirectRouteStrategyDecision;
106
+ export declare function buildAssistantWorkflowDirectRouteStrategyDecisionTracePayload(decision: AssistantWorkflowDirectRouteStrategyDecision): Record<string, unknown>;
107
+ export declare function buildAssistantWorkflowDirectRouteToolDecision(input: {
108
+ invocation: AssistantWorkflowDirectRouteInvocation;
109
+ toolName?: unknown;
110
+ routeExecution?: AssistantWorkflowDirectRouteExecutionDecision;
111
+ strategyDecision?: AssistantWorkflowDirectRouteStrategyDecision | null;
112
+ }): AssistantWorkflowDirectRouteToolDecision;
113
+ export declare function buildAssistantWorkflowDirectRouteHandlerDecision(input: {
114
+ invocation: AssistantWorkflowDirectRouteInvocation;
115
+ expectedRouteId: unknown;
116
+ observedIntentId?: unknown;
117
+ requireIntentMatch?: boolean;
118
+ strategyId?: unknown;
119
+ toolName?: unknown;
120
+ }): AssistantWorkflowDirectRouteHandlerDecision;
121
+ export declare function buildAssistantWorkflowDirectRouteHandlerPlanDecision(input: {
122
+ invocation: AssistantWorkflowDirectRouteInvocation;
123
+ expectedRouteId: unknown;
124
+ observedIntentId?: unknown;
125
+ requireIntentMatch?: boolean;
126
+ strategyId?: unknown;
127
+ toolNames?: readonly unknown[];
128
+ }): AssistantWorkflowDirectRouteHandlerPlanDecision;
129
+ export declare function buildAssistantWorkflowDirectRouteHandlerDecisionTracePayload(decision: AssistantWorkflowDirectRouteHandlerDecision): Record<string, unknown>;
130
+ export declare function buildAssistantWorkflowDirectRouteHandlerPlanDecisionTracePayload(decision: AssistantWorkflowDirectRouteHandlerPlanDecision): Record<string, unknown>;
131
+ export declare function buildAssistantWorkflowDirectRouteToolDecisionTracePayload(decision: AssistantWorkflowDirectRouteToolDecision): Record<string, unknown>;
132
+ //# sourceMappingURL=direct-route-invocation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-route-invocation.d.ts","sourceRoot":"","sources":["../src/direct-route-invocation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,325 @@
1
+ import { buildAssistantWorkflowDirectRouteRuntimeDecision, } from "./direct-route-policy.js";
2
+ import { normalizeAssistantWorkflowId, } from "./definition.js";
3
+ export function buildAssistantWorkflowDirectRouteInvocation(input) {
4
+ const routeId = normalizeAssistantWorkflowId(input.routeId) ?? "";
5
+ const route = findDirectRoute(input.workflow, routeId);
6
+ const decision = buildAssistantWorkflowDirectRouteRuntimeDecision({
7
+ workflow: input.workflow,
8
+ routeId,
9
+ runtimeEnabled: input.runtimeEnabled,
10
+ ...(input.intentId !== undefined ? { intentId: input.intentId } : {}),
11
+ ...(input.policyScope ? { policyScope: input.policyScope } : {}),
12
+ });
13
+ const status = !route ? "missing-route" : decision.enabled ? "ready" : "disabled";
14
+ return {
15
+ workflowId: input.workflow.id,
16
+ workflowVersion: input.workflow.version,
17
+ intentId: decision.intentId,
18
+ routeId,
19
+ status,
20
+ enabled: decision.enabled,
21
+ reason: decision.reason,
22
+ policyRouteIds: [...decision.policyRouteIds],
23
+ effect: route?.effect ?? null,
24
+ outcomeRoute: route?.outcomeRoute ?? null,
25
+ requiredToolHints: [...(route?.requiredToolHints ?? [])],
26
+ strategyIds: (route?.strategies ?? []).map((strategy) => strategy.id),
27
+ strategies: (route?.strategies ?? []).map((strategy) => ({
28
+ id: strategy.id,
29
+ requiredToolHints: [...(strategy.requiredToolHints ?? [])],
30
+ })),
31
+ };
32
+ }
33
+ export function buildAssistantWorkflowDirectRouteInvocationTracePayload(invocation) {
34
+ return {
35
+ workflowId: invocation.workflowId,
36
+ workflowVersion: invocation.workflowVersion,
37
+ intent: invocation.intentId,
38
+ route: invocation.routeId,
39
+ status: invocation.status,
40
+ enabled: invocation.enabled,
41
+ reason: invocation.reason,
42
+ policyRouteIds: invocation.policyRouteIds,
43
+ effect: invocation.effect,
44
+ outcomeRoute: invocation.outcomeRoute,
45
+ requiredToolHints: invocation.requiredToolHints,
46
+ strategyIds: invocation.strategyIds,
47
+ strategies: invocation.strategies,
48
+ };
49
+ }
50
+ export function buildAssistantWorkflowDirectRouteInvocationPolicyTracePayload(invocation) {
51
+ return {
52
+ intent: invocation.intentId,
53
+ route: invocation.routeId,
54
+ enabled: invocation.enabled,
55
+ reason: invocation.reason,
56
+ policyRouteIds: [...invocation.policyRouteIds],
57
+ };
58
+ }
59
+ export function buildAssistantWorkflowDirectRouteExecutionDecision(input) {
60
+ const expectedRouteId = normalizeAssistantWorkflowId(input.expectedRouteId) ?? null;
61
+ const observedIntentId = normalizeAssistantWorkflowId(input.observedIntentId) ?? null;
62
+ const requireIntentMatch = input.requireIntentMatch ?? input.invocation.intentId !== null;
63
+ const base = {
64
+ routeId: input.invocation.routeId,
65
+ expectedRouteId,
66
+ intentId: input.invocation.intentId,
67
+ observedIntentId,
68
+ invocationStatus: input.invocation.status,
69
+ enabled: input.invocation.enabled,
70
+ };
71
+ if (input.invocation.status !== "ready" || !input.invocation.enabled) {
72
+ return { ...base, execute: false, reason: "invocation_not_ready" };
73
+ }
74
+ if (expectedRouteId && input.invocation.routeId !== expectedRouteId) {
75
+ return { ...base, execute: false, reason: "route_mismatch" };
76
+ }
77
+ if (requireIntentMatch && input.invocation.intentId !== null && observedIntentId !== input.invocation.intentId) {
78
+ return { ...base, execute: false, reason: "intent_mismatch" };
79
+ }
80
+ return { ...base, execute: true, reason: "ready" };
81
+ }
82
+ export function buildAssistantWorkflowDirectRouteExecutionDecisionTracePayload(decision) {
83
+ return {
84
+ execute: decision.execute,
85
+ reason: decision.reason,
86
+ route: decision.routeId,
87
+ expectedRoute: decision.expectedRouteId,
88
+ intent: decision.intentId,
89
+ observedIntent: decision.observedIntentId,
90
+ invocationStatus: decision.invocationStatus,
91
+ enabled: decision.enabled,
92
+ };
93
+ }
94
+ export function buildAssistantWorkflowDirectRouteStrategyDecision(input) {
95
+ const strategyId = normalizeAssistantWorkflowId(input.strategyId) ?? null;
96
+ const routeExecution = input.routeExecution ?? buildAssistantWorkflowDirectRouteExecutionDecision({
97
+ invocation: input.invocation,
98
+ });
99
+ const base = {
100
+ routeId: input.invocation.routeId,
101
+ strategyId,
102
+ declaredStrategyIds: [...input.invocation.strategyIds],
103
+ routeExecutionReason: routeExecution.reason,
104
+ invocationStatus: input.invocation.status,
105
+ enabled: input.invocation.enabled,
106
+ };
107
+ if (!routeExecution.execute) {
108
+ return { ...base, execute: false, reason: "route_not_executable" };
109
+ }
110
+ if (!strategyId) {
111
+ return { ...base, execute: false, reason: "strategy_missing" };
112
+ }
113
+ if (!input.invocation.strategyIds.includes(strategyId)) {
114
+ return { ...base, execute: false, reason: "strategy_not_declared" };
115
+ }
116
+ return { ...base, execute: true, reason: "ready" };
117
+ }
118
+ export function buildAssistantWorkflowDirectRouteStrategyDecisionTracePayload(decision) {
119
+ return {
120
+ execute: decision.execute,
121
+ reason: decision.reason,
122
+ route: decision.routeId,
123
+ strategy: decision.strategyId,
124
+ declaredStrategies: decision.declaredStrategyIds,
125
+ routeExecutionReason: decision.routeExecutionReason,
126
+ invocationStatus: decision.invocationStatus,
127
+ enabled: decision.enabled,
128
+ };
129
+ }
130
+ export function buildAssistantWorkflowDirectRouteToolDecision(input) {
131
+ const toolName = normalizeAssistantWorkflowId(input.toolName) ?? null;
132
+ const routeExecution = input.routeExecution ?? buildAssistantWorkflowDirectRouteExecutionDecision({
133
+ invocation: input.invocation,
134
+ });
135
+ const strategyDecision = input.strategyDecision ?? null;
136
+ const strategy = strategyDecision?.strategyId
137
+ ? findInvocationStrategy(input.invocation, strategyDecision.strategyId)
138
+ : null;
139
+ const strategyRequiredToolHints = strategy?.requiredToolHints ?? [];
140
+ const routeRequiredToolHints = [...input.invocation.requiredToolHints];
141
+ const allowedToolHints = normalizeToolHints(strategyRequiredToolHints.length > 0 ? strategyRequiredToolHints : routeRequiredToolHints);
142
+ const base = {
143
+ routeId: input.invocation.routeId,
144
+ strategyId: strategyDecision?.strategyId ?? null,
145
+ toolName,
146
+ allowedToolHints,
147
+ routeRequiredToolHints,
148
+ strategyRequiredToolHints,
149
+ routeExecutionReason: routeExecution.reason,
150
+ strategyReason: strategyDecision?.reason ?? null,
151
+ invocationStatus: input.invocation.status,
152
+ enabled: input.invocation.enabled,
153
+ };
154
+ if (!routeExecution.execute) {
155
+ return { ...base, execute: false, reason: "route_not_executable" };
156
+ }
157
+ if (strategyDecision && !strategyDecision.execute) {
158
+ return { ...base, execute: false, reason: "strategy_not_executable" };
159
+ }
160
+ if (!toolName) {
161
+ return { ...base, execute: false, reason: "tool_missing" };
162
+ }
163
+ if (!allowedToolHints.includes(toolName)) {
164
+ return { ...base, execute: false, reason: "tool_not_allowed" };
165
+ }
166
+ return { ...base, execute: true, reason: "ready" };
167
+ }
168
+ export function buildAssistantWorkflowDirectRouteHandlerDecision(input) {
169
+ const routeExecution = buildAssistantWorkflowDirectRouteExecutionDecision({
170
+ invocation: input.invocation,
171
+ expectedRouteId: input.expectedRouteId,
172
+ ...(input.observedIntentId !== undefined ? { observedIntentId: input.observedIntentId } : {}),
173
+ ...(input.requireIntentMatch !== undefined ? { requireIntentMatch: input.requireIntentMatch } : {}),
174
+ });
175
+ if (!routeExecution.execute) {
176
+ return {
177
+ execute: false,
178
+ reason: "route_not_executable",
179
+ routeExecution,
180
+ strategyDecision: null,
181
+ toolDecision: null,
182
+ };
183
+ }
184
+ const strategyDecision = input.strategyId === undefined
185
+ ? null
186
+ : buildAssistantWorkflowDirectRouteStrategyDecision({
187
+ invocation: input.invocation,
188
+ strategyId: input.strategyId,
189
+ routeExecution,
190
+ });
191
+ if (strategyDecision && !strategyDecision.execute) {
192
+ return {
193
+ execute: false,
194
+ reason: "strategy_not_executable",
195
+ routeExecution,
196
+ strategyDecision,
197
+ toolDecision: null,
198
+ };
199
+ }
200
+ const toolDecision = input.toolName === undefined
201
+ ? null
202
+ : buildAssistantWorkflowDirectRouteToolDecision({
203
+ invocation: input.invocation,
204
+ toolName: input.toolName,
205
+ routeExecution,
206
+ ...(strategyDecision ? { strategyDecision } : {}),
207
+ });
208
+ if (toolDecision && !toolDecision.execute) {
209
+ return {
210
+ execute: false,
211
+ reason: "tool_not_executable",
212
+ routeExecution,
213
+ strategyDecision,
214
+ toolDecision,
215
+ };
216
+ }
217
+ return {
218
+ execute: true,
219
+ reason: "ready",
220
+ routeExecution,
221
+ strategyDecision,
222
+ toolDecision,
223
+ };
224
+ }
225
+ export function buildAssistantWorkflowDirectRouteHandlerPlanDecision(input) {
226
+ const handler = buildAssistantWorkflowDirectRouteHandlerDecision({
227
+ invocation: input.invocation,
228
+ expectedRouteId: input.expectedRouteId,
229
+ ...(input.observedIntentId !== undefined ? { observedIntentId: input.observedIntentId } : {}),
230
+ ...(input.requireIntentMatch !== undefined ? { requireIntentMatch: input.requireIntentMatch } : {}),
231
+ ...(input.strategyId !== undefined ? { strategyId: input.strategyId } : {}),
232
+ });
233
+ if (!handler.execute) {
234
+ return {
235
+ execute: false,
236
+ reason: handler.reason,
237
+ routeExecution: handler.routeExecution,
238
+ strategyDecision: handler.strategyDecision,
239
+ toolDecisions: [],
240
+ };
241
+ }
242
+ const toolDecisions = (input.toolNames ?? []).map((toolName) => buildAssistantWorkflowDirectRouteToolDecision({
243
+ invocation: input.invocation,
244
+ toolName,
245
+ routeExecution: handler.routeExecution,
246
+ ...(handler.strategyDecision ? { strategyDecision: handler.strategyDecision } : {}),
247
+ }));
248
+ if (toolDecisions.some((decision) => !decision.execute)) {
249
+ return {
250
+ execute: false,
251
+ reason: "tool_not_executable",
252
+ routeExecution: handler.routeExecution,
253
+ strategyDecision: handler.strategyDecision,
254
+ toolDecisions,
255
+ };
256
+ }
257
+ return {
258
+ execute: true,
259
+ reason: "ready",
260
+ routeExecution: handler.routeExecution,
261
+ strategyDecision: handler.strategyDecision,
262
+ toolDecisions,
263
+ };
264
+ }
265
+ export function buildAssistantWorkflowDirectRouteHandlerDecisionTracePayload(decision) {
266
+ return {
267
+ execute: decision.execute,
268
+ reason: decision.reason,
269
+ routeExecution: buildAssistantWorkflowDirectRouteExecutionDecisionTracePayload(decision.routeExecution),
270
+ strategyDecision: decision.strategyDecision
271
+ ? buildAssistantWorkflowDirectRouteStrategyDecisionTracePayload(decision.strategyDecision)
272
+ : null,
273
+ toolDecision: decision.toolDecision
274
+ ? buildAssistantWorkflowDirectRouteToolDecisionTracePayload(decision.toolDecision)
275
+ : null,
276
+ };
277
+ }
278
+ export function buildAssistantWorkflowDirectRouteHandlerPlanDecisionTracePayload(decision) {
279
+ return {
280
+ execute: decision.execute,
281
+ reason: decision.reason,
282
+ routeExecution: buildAssistantWorkflowDirectRouteExecutionDecisionTracePayload(decision.routeExecution),
283
+ strategyDecision: decision.strategyDecision
284
+ ? buildAssistantWorkflowDirectRouteStrategyDecisionTracePayload(decision.strategyDecision)
285
+ : null,
286
+ toolDecisions: decision.toolDecisions.map(buildAssistantWorkflowDirectRouteToolDecisionTracePayload),
287
+ };
288
+ }
289
+ export function buildAssistantWorkflowDirectRouteToolDecisionTracePayload(decision) {
290
+ return {
291
+ execute: decision.execute,
292
+ reason: decision.reason,
293
+ route: decision.routeId,
294
+ strategy: decision.strategyId,
295
+ tool: decision.toolName,
296
+ allowedTools: decision.allowedToolHints,
297
+ routeRequiredTools: decision.routeRequiredToolHints,
298
+ strategyRequiredTools: decision.strategyRequiredToolHints,
299
+ routeExecutionReason: decision.routeExecutionReason,
300
+ strategyReason: decision.strategyReason,
301
+ invocationStatus: decision.invocationStatus,
302
+ enabled: decision.enabled,
303
+ };
304
+ }
305
+ function findDirectRoute(workflow, routeId) {
306
+ if (!routeId)
307
+ return null;
308
+ return workflow.directRoutes?.find((route) => route.id === routeId) ?? null;
309
+ }
310
+ function findInvocationStrategy(invocation, strategyId) {
311
+ return (invocation.strategies ?? []).find((strategy) => strategy.id === strategyId) ?? null;
312
+ }
313
+ function normalizeToolHints(values) {
314
+ const out = [];
315
+ const seen = new Set();
316
+ for (const value of values) {
317
+ const normalized = normalizeAssistantWorkflowId(value);
318
+ if (!normalized || seen.has(normalized))
319
+ continue;
320
+ seen.add(normalized);
321
+ out.push(normalized);
322
+ }
323
+ return out;
324
+ }
325
+ //# sourceMappingURL=direct-route-invocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-route-invocation.js","sourceRoot":"","sources":["../src/direct-route-invocation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gDAAgD,GAGjD,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,4BAA4B,GAG7B,MAAM,iBAAiB,CAAC;AA8HzB,MAAM,UAAU,2CAA2C,CACzD,KAAkD;IAElD,MAAM,OAAO,GAAG,4BAA4B,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAClE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,gDAAgD,CAAC;QAChE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO;QACP,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC,CAAC;IACH,MAAM,MAAM,GACV,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;IAErE,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;QAC7B,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;QACvC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,OAAO;QACP,MAAM;QACN,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,cAAc,EAAE,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC;QAC5C,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI;QAC7B,YAAY,EAAE,KAAK,EAAE,YAAY,IAAI,IAAI;QACzC,iBAAiB,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;QACxD,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrE,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvD,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,iBAAiB,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;SAC3D,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uDAAuD,CACrE,UAAkD;IAElD,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,MAAM,EAAE,UAAU,CAAC,QAAQ;QAC3B,KAAK,EAAE,UAAU,CAAC,OAAO;QACzB,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;QAC/C,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,UAAU,EAAE,UAAU,CAAC,UAAU;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6DAA6D,CAC3E,UAAkD;IAElD,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,QAAQ;QAC3B,KAAK,EAAE,UAAU,CAAC,OAAO;QACzB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,cAAc,EAAE,CAAC,GAAG,UAAU,CAAC,cAAc,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kDAAkD,CAAC,KAKlE;IACC,MAAM,eAAe,GAAG,4BAA4B,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;IACpF,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC;IACtF,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC1F,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;QACjC,eAAe;QACf,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ;QACnC,gBAAgB;QAChB,gBAAgB,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;QACzC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;KAClC,CAAC;IAEF,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACrE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,eAAe,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;QACpE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC/D,CAAC;IACD,IAAI,kBAAkB,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI,IAAI,gBAAgB,KAAK,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC/G,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,8DAA8D,CAC5E,QAAuD;IAEvD,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,QAAQ,CAAC,OAAO;QACvB,aAAa,EAAE,QAAQ,CAAC,eAAe;QACvC,MAAM,EAAE,QAAQ,CAAC,QAAQ;QACzB,cAAc,EAAE,QAAQ,CAAC,gBAAgB;QACzC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iDAAiD,CAAC,KAIjE;IACC,MAAM,UAAU,GAAG,4BAA4B,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAC1E,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,kDAAkD,CAAC;QAChG,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;QACjC,UAAU;QACV,mBAAmB,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;QACtD,oBAAoB,EAAE,cAAc,CAAC,MAAM;QAC3C,gBAAgB,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;QACzC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;KAClC,CAAC;IAEF,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,6DAA6D,CAC3E,QAAsD;IAEtD,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,QAAQ,CAAC,OAAO;QACvB,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,kBAAkB,EAAE,QAAQ,CAAC,mBAAmB;QAChD,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;QACnD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6CAA6C,CAAC,KAK7D;IACC,MAAM,QAAQ,GAAG,4BAA4B,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IACtE,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,kDAAkD,CAAC;QAChG,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;IACxD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,UAAU;QAC3C,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;QACvE,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,yBAAyB,GAAG,QAAQ,EAAE,iBAAiB,IAAI,EAAE,CAAC;IACpE,MAAM,sBAAsB,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,kBAAkB,CACzC,yBAAyB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,sBAAsB,CAC1F,CAAC;IACF,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;QACjC,UAAU,EAAE,gBAAgB,EAAE,UAAU,IAAI,IAAI;QAChD,QAAQ;QACR,gBAAgB;QAChB,sBAAsB;QACtB,yBAAyB;QACzB,oBAAoB,EAAE,cAAc,CAAC,MAAM;QAC3C,cAAc,EAAE,gBAAgB,EAAE,MAAM,IAAI,IAAI;QAChD,gBAAgB,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;QACzC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;KAClC,CAAC;IAEF,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAClD,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,gDAAgD,CAAC,KAOhE;IACC,MAAM,cAAc,GAAG,kDAAkD,CAAC;QACxE,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpG,CAAC,CAAC;IACH,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,sBAAsB;YAC9B,cAAc;YACd,gBAAgB,EAAE,IAAI;YACtB,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS;QACrD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,iDAAiD,CAAC;YAClD,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc;SACf,CAAC,CAAC;IACL,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAClD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,yBAAyB;YACjC,cAAc;YACd,gBAAgB;YAChB,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC/C,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,6CAA6C,CAAC;YAC9C,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,cAAc;YACd,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;IACL,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,qBAAqB;YAC7B,cAAc;YACd,gBAAgB;YAChB,YAAY;SACb,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,OAAO;QACf,cAAc;QACd,gBAAgB;QAChB,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oDAAoD,CAAC,KAOpE;IACC,MAAM,OAAO,GAAG,gDAAgD,CAAC;QAC/D,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnG,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,aAAa,EAAE,EAAE;SAClB,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC7D,6CAA6C,CAAC;QAC5C,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ;QACR,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpF,CAAC,CACH,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,qBAAqB;YAC7B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,aAAa;SACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,OAAO;QACf,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,aAAa;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4DAA4D,CAC1E,QAAqD;IAErD,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,cAAc,EAAE,8DAA8D,CAAC,QAAQ,CAAC,cAAc,CAAC;QACvG,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YACzC,CAAC,CAAC,6DAA6D,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC1F,CAAC,CAAC,IAAI;QACR,YAAY,EAAE,QAAQ,CAAC,YAAY;YACjC,CAAC,CAAC,yDAAyD,CAAC,QAAQ,CAAC,YAAY,CAAC;YAClF,CAAC,CAAC,IAAI;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gEAAgE,CAC9E,QAAyD;IAEzD,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,cAAc,EAAE,8DAA8D,CAAC,QAAQ,CAAC,cAAc,CAAC;QACvG,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YACzC,CAAC,CAAC,6DAA6D,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC1F,CAAC,CAAC,IAAI;QACR,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,yDAAyD,CAAC;KACrG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yDAAyD,CACvE,QAAkD;IAElD,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,QAAQ,CAAC,OAAO;QACvB,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,IAAI,EAAE,QAAQ,CAAC,QAAQ;QACvB,YAAY,EAAE,QAAQ,CAAC,gBAAgB;QACvC,kBAAkB,EAAE,QAAQ,CAAC,sBAAsB;QACnD,qBAAqB,EAAE,QAAQ,CAAC,yBAAyB;QACzD,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;QACnD,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,QAAqE,EACrE,OAAe;IAEf,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC;AAC9E,CAAC;AAED,SAAS,sBAAsB,CAC7B,UAAkD,EAClD,UAAkB;IAElB,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC;AAC9F,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAyB;IACnD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAS;QAClD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["import {\n buildAssistantWorkflowDirectRouteRuntimeDecision,\n type AssistantWorkflowDirectRouteRuntimeDecision,\n type AssistantWorkflowDirectRouteRuntimeDecisionScope,\n} from \"./direct-route-policy.js\";\nimport {\n normalizeAssistantWorkflowId,\n type AssistantWorkflowDefinition,\n type AssistantWorkflowDirectRouteDefinition,\n} from \"./definition.js\";\n\nexport type AssistantWorkflowDirectRouteInvocationStatus =\n | \"ready\"\n | \"disabled\"\n | \"missing-route\";\n\nexport type AssistantWorkflowDirectRouteStrategyInvocation = {\n id: string;\n requiredToolHints: string[];\n};\n\nexport type AssistantWorkflowDirectRouteInvocation = {\n workflowId: string;\n workflowVersion: number;\n intentId: string | null;\n routeId: string;\n status: AssistantWorkflowDirectRouteInvocationStatus;\n enabled: boolean;\n reason: AssistantWorkflowDirectRouteRuntimeDecision[\"reason\"];\n policyRouteIds: string[];\n effect: AssistantWorkflowDirectRouteDefinition[\"effect\"] | null;\n outcomeRoute: string | null;\n requiredToolHints: string[];\n strategyIds: string[];\n strategies: AssistantWorkflowDirectRouteStrategyInvocation[];\n};\n\nexport type AssistantWorkflowDirectRouteExecutionDecisionReason =\n | \"ready\"\n | \"invocation_not_ready\"\n | \"route_mismatch\"\n | \"intent_mismatch\";\n\nexport type AssistantWorkflowDirectRouteExecutionDecision = {\n execute: boolean;\n reason: AssistantWorkflowDirectRouteExecutionDecisionReason;\n routeId: string;\n expectedRouteId: string | null;\n intentId: string | null;\n observedIntentId: string | null;\n invocationStatus: AssistantWorkflowDirectRouteInvocationStatus;\n enabled: boolean;\n};\n\nexport type AssistantWorkflowDirectRouteStrategyDecisionReason =\n | \"ready\"\n | \"route_not_executable\"\n | \"strategy_missing\"\n | \"strategy_not_declared\";\n\nexport type AssistantWorkflowDirectRouteStrategyDecision = {\n execute: boolean;\n reason: AssistantWorkflowDirectRouteStrategyDecisionReason;\n routeId: string;\n strategyId: string | null;\n declaredStrategyIds: string[];\n routeExecutionReason: AssistantWorkflowDirectRouteExecutionDecisionReason;\n invocationStatus: AssistantWorkflowDirectRouteInvocationStatus;\n enabled: boolean;\n};\n\nexport type AssistantWorkflowDirectRouteToolDecisionReason =\n | \"ready\"\n | \"route_not_executable\"\n | \"strategy_not_executable\"\n | \"tool_missing\"\n | \"tool_not_allowed\";\n\nexport type AssistantWorkflowDirectRouteToolDecision = {\n execute: boolean;\n reason: AssistantWorkflowDirectRouteToolDecisionReason;\n routeId: string;\n strategyId: string | null;\n toolName: string | null;\n allowedToolHints: string[];\n routeRequiredToolHints: string[];\n strategyRequiredToolHints: string[];\n routeExecutionReason: AssistantWorkflowDirectRouteExecutionDecisionReason;\n strategyReason: AssistantWorkflowDirectRouteStrategyDecisionReason | null;\n invocationStatus: AssistantWorkflowDirectRouteInvocationStatus;\n enabled: boolean;\n};\n\n/**\n * The complete workflow authorization result for a concrete direct-route\n * handler. Route planners remain domain-specific, while this contract keeps\n * route, strategy, and tool authorization together at the execution boundary.\n */\nexport type AssistantWorkflowDirectRouteHandlerDecision = {\n execute: boolean;\n reason:\n | \"ready\"\n | \"route_not_executable\"\n | \"strategy_not_executable\"\n | \"tool_not_executable\";\n routeExecution: AssistantWorkflowDirectRouteExecutionDecision;\n strategyDecision: AssistantWorkflowDirectRouteStrategyDecision | null;\n toolDecision: AssistantWorkflowDirectRouteToolDecision | null;\n};\n\n/**\n * Authorization result for a direct-route strategy that needs several tools.\n * Every listed tool must be declared by the selected route/strategy before a\n * controller-local handler can begin executing its domain-specific plan.\n */\nexport type AssistantWorkflowDirectRouteHandlerPlanDecision = {\n execute: boolean;\n reason:\n | \"ready\"\n | \"route_not_executable\"\n | \"strategy_not_executable\"\n | \"tool_not_executable\";\n routeExecution: AssistantWorkflowDirectRouteExecutionDecision;\n strategyDecision: AssistantWorkflowDirectRouteStrategyDecision | null;\n toolDecisions: AssistantWorkflowDirectRouteToolDecision[];\n};\n\nexport type AssistantWorkflowDirectRouteInvocationInput = {\n workflow: AssistantWorkflowDefinition<string, string, string, string>;\n routeId: unknown;\n runtimeEnabled: boolean;\n intentId?: unknown;\n policyScope?: AssistantWorkflowDirectRouteRuntimeDecisionScope;\n};\n\nexport function buildAssistantWorkflowDirectRouteInvocation(\n input: AssistantWorkflowDirectRouteInvocationInput,\n): AssistantWorkflowDirectRouteInvocation {\n const routeId = normalizeAssistantWorkflowId(input.routeId) ?? \"\";\n const route = findDirectRoute(input.workflow, routeId);\n const decision = buildAssistantWorkflowDirectRouteRuntimeDecision({\n workflow: input.workflow,\n routeId,\n runtimeEnabled: input.runtimeEnabled,\n ...(input.intentId !== undefined ? { intentId: input.intentId } : {}),\n ...(input.policyScope ? { policyScope: input.policyScope } : {}),\n });\n const status: AssistantWorkflowDirectRouteInvocationStatus =\n !route ? \"missing-route\" : decision.enabled ? \"ready\" : \"disabled\";\n\n return {\n workflowId: input.workflow.id,\n workflowVersion: input.workflow.version,\n intentId: decision.intentId,\n routeId,\n status,\n enabled: decision.enabled,\n reason: decision.reason,\n policyRouteIds: [...decision.policyRouteIds],\n effect: route?.effect ?? null,\n outcomeRoute: route?.outcomeRoute ?? null,\n requiredToolHints: [...(route?.requiredToolHints ?? [])],\n strategyIds: (route?.strategies ?? []).map((strategy) => strategy.id),\n strategies: (route?.strategies ?? []).map((strategy) => ({\n id: strategy.id,\n requiredToolHints: [...(strategy.requiredToolHints ?? [])],\n })),\n };\n}\n\nexport function buildAssistantWorkflowDirectRouteInvocationTracePayload(\n invocation: AssistantWorkflowDirectRouteInvocation,\n): Record<string, unknown> {\n return {\n workflowId: invocation.workflowId,\n workflowVersion: invocation.workflowVersion,\n intent: invocation.intentId,\n route: invocation.routeId,\n status: invocation.status,\n enabled: invocation.enabled,\n reason: invocation.reason,\n policyRouteIds: invocation.policyRouteIds,\n effect: invocation.effect,\n outcomeRoute: invocation.outcomeRoute,\n requiredToolHints: invocation.requiredToolHints,\n strategyIds: invocation.strategyIds,\n strategies: invocation.strategies,\n };\n}\n\nexport function buildAssistantWorkflowDirectRouteInvocationPolicyTracePayload(\n invocation: AssistantWorkflowDirectRouteInvocation,\n): Record<string, unknown> {\n return {\n intent: invocation.intentId,\n route: invocation.routeId,\n enabled: invocation.enabled,\n reason: invocation.reason,\n policyRouteIds: [...invocation.policyRouteIds],\n };\n}\n\nexport function buildAssistantWorkflowDirectRouteExecutionDecision(input: {\n invocation: AssistantWorkflowDirectRouteInvocation;\n expectedRouteId?: unknown;\n observedIntentId?: unknown;\n requireIntentMatch?: boolean;\n}): AssistantWorkflowDirectRouteExecutionDecision {\n const expectedRouteId = normalizeAssistantWorkflowId(input.expectedRouteId) ?? null;\n const observedIntentId = normalizeAssistantWorkflowId(input.observedIntentId) ?? null;\n const requireIntentMatch = input.requireIntentMatch ?? input.invocation.intentId !== null;\n const base = {\n routeId: input.invocation.routeId,\n expectedRouteId,\n intentId: input.invocation.intentId,\n observedIntentId,\n invocationStatus: input.invocation.status,\n enabled: input.invocation.enabled,\n };\n\n if (input.invocation.status !== \"ready\" || !input.invocation.enabled) {\n return { ...base, execute: false, reason: \"invocation_not_ready\" };\n }\n if (expectedRouteId && input.invocation.routeId !== expectedRouteId) {\n return { ...base, execute: false, reason: \"route_mismatch\" };\n }\n if (requireIntentMatch && input.invocation.intentId !== null && observedIntentId !== input.invocation.intentId) {\n return { ...base, execute: false, reason: \"intent_mismatch\" };\n }\n return { ...base, execute: true, reason: \"ready\" };\n}\n\nexport function buildAssistantWorkflowDirectRouteExecutionDecisionTracePayload(\n decision: AssistantWorkflowDirectRouteExecutionDecision,\n): Record<string, unknown> {\n return {\n execute: decision.execute,\n reason: decision.reason,\n route: decision.routeId,\n expectedRoute: decision.expectedRouteId,\n intent: decision.intentId,\n observedIntent: decision.observedIntentId,\n invocationStatus: decision.invocationStatus,\n enabled: decision.enabled,\n };\n}\n\nexport function buildAssistantWorkflowDirectRouteStrategyDecision(input: {\n invocation: AssistantWorkflowDirectRouteInvocation;\n strategyId?: unknown;\n routeExecution?: AssistantWorkflowDirectRouteExecutionDecision;\n}): AssistantWorkflowDirectRouteStrategyDecision {\n const strategyId = normalizeAssistantWorkflowId(input.strategyId) ?? null;\n const routeExecution = input.routeExecution ?? buildAssistantWorkflowDirectRouteExecutionDecision({\n invocation: input.invocation,\n });\n const base = {\n routeId: input.invocation.routeId,\n strategyId,\n declaredStrategyIds: [...input.invocation.strategyIds],\n routeExecutionReason: routeExecution.reason,\n invocationStatus: input.invocation.status,\n enabled: input.invocation.enabled,\n };\n\n if (!routeExecution.execute) {\n return { ...base, execute: false, reason: \"route_not_executable\" };\n }\n if (!strategyId) {\n return { ...base, execute: false, reason: \"strategy_missing\" };\n }\n if (!input.invocation.strategyIds.includes(strategyId)) {\n return { ...base, execute: false, reason: \"strategy_not_declared\" };\n }\n return { ...base, execute: true, reason: \"ready\" };\n}\n\nexport function buildAssistantWorkflowDirectRouteStrategyDecisionTracePayload(\n decision: AssistantWorkflowDirectRouteStrategyDecision,\n): Record<string, unknown> {\n return {\n execute: decision.execute,\n reason: decision.reason,\n route: decision.routeId,\n strategy: decision.strategyId,\n declaredStrategies: decision.declaredStrategyIds,\n routeExecutionReason: decision.routeExecutionReason,\n invocationStatus: decision.invocationStatus,\n enabled: decision.enabled,\n };\n}\n\nexport function buildAssistantWorkflowDirectRouteToolDecision(input: {\n invocation: AssistantWorkflowDirectRouteInvocation;\n toolName?: unknown;\n routeExecution?: AssistantWorkflowDirectRouteExecutionDecision;\n strategyDecision?: AssistantWorkflowDirectRouteStrategyDecision | null;\n}): AssistantWorkflowDirectRouteToolDecision {\n const toolName = normalizeAssistantWorkflowId(input.toolName) ?? null;\n const routeExecution = input.routeExecution ?? buildAssistantWorkflowDirectRouteExecutionDecision({\n invocation: input.invocation,\n });\n const strategyDecision = input.strategyDecision ?? null;\n const strategy = strategyDecision?.strategyId\n ? findInvocationStrategy(input.invocation, strategyDecision.strategyId)\n : null;\n const strategyRequiredToolHints = strategy?.requiredToolHints ?? [];\n const routeRequiredToolHints = [...input.invocation.requiredToolHints];\n const allowedToolHints = normalizeToolHints(\n strategyRequiredToolHints.length > 0 ? strategyRequiredToolHints : routeRequiredToolHints,\n );\n const base = {\n routeId: input.invocation.routeId,\n strategyId: strategyDecision?.strategyId ?? null,\n toolName,\n allowedToolHints,\n routeRequiredToolHints,\n strategyRequiredToolHints,\n routeExecutionReason: routeExecution.reason,\n strategyReason: strategyDecision?.reason ?? null,\n invocationStatus: input.invocation.status,\n enabled: input.invocation.enabled,\n };\n\n if (!routeExecution.execute) {\n return { ...base, execute: false, reason: \"route_not_executable\" };\n }\n if (strategyDecision && !strategyDecision.execute) {\n return { ...base, execute: false, reason: \"strategy_not_executable\" };\n }\n if (!toolName) {\n return { ...base, execute: false, reason: \"tool_missing\" };\n }\n if (!allowedToolHints.includes(toolName)) {\n return { ...base, execute: false, reason: \"tool_not_allowed\" };\n }\n return { ...base, execute: true, reason: \"ready\" };\n}\n\nexport function buildAssistantWorkflowDirectRouteHandlerDecision(input: {\n invocation: AssistantWorkflowDirectRouteInvocation;\n expectedRouteId: unknown;\n observedIntentId?: unknown;\n requireIntentMatch?: boolean;\n strategyId?: unknown;\n toolName?: unknown;\n}): AssistantWorkflowDirectRouteHandlerDecision {\n const routeExecution = buildAssistantWorkflowDirectRouteExecutionDecision({\n invocation: input.invocation,\n expectedRouteId: input.expectedRouteId,\n ...(input.observedIntentId !== undefined ? { observedIntentId: input.observedIntentId } : {}),\n ...(input.requireIntentMatch !== undefined ? { requireIntentMatch: input.requireIntentMatch } : {}),\n });\n if (!routeExecution.execute) {\n return {\n execute: false,\n reason: \"route_not_executable\",\n routeExecution,\n strategyDecision: null,\n toolDecision: null,\n };\n }\n\n const strategyDecision = input.strategyId === undefined\n ? null\n : buildAssistantWorkflowDirectRouteStrategyDecision({\n invocation: input.invocation,\n strategyId: input.strategyId,\n routeExecution,\n });\n if (strategyDecision && !strategyDecision.execute) {\n return {\n execute: false,\n reason: \"strategy_not_executable\",\n routeExecution,\n strategyDecision,\n toolDecision: null,\n };\n }\n\n const toolDecision = input.toolName === undefined\n ? null\n : buildAssistantWorkflowDirectRouteToolDecision({\n invocation: input.invocation,\n toolName: input.toolName,\n routeExecution,\n ...(strategyDecision ? { strategyDecision } : {}),\n });\n if (toolDecision && !toolDecision.execute) {\n return {\n execute: false,\n reason: \"tool_not_executable\",\n routeExecution,\n strategyDecision,\n toolDecision,\n };\n }\n\n return {\n execute: true,\n reason: \"ready\",\n routeExecution,\n strategyDecision,\n toolDecision,\n };\n}\n\nexport function buildAssistantWorkflowDirectRouteHandlerPlanDecision(input: {\n invocation: AssistantWorkflowDirectRouteInvocation;\n expectedRouteId: unknown;\n observedIntentId?: unknown;\n requireIntentMatch?: boolean;\n strategyId?: unknown;\n toolNames?: readonly unknown[];\n}): AssistantWorkflowDirectRouteHandlerPlanDecision {\n const handler = buildAssistantWorkflowDirectRouteHandlerDecision({\n invocation: input.invocation,\n expectedRouteId: input.expectedRouteId,\n ...(input.observedIntentId !== undefined ? { observedIntentId: input.observedIntentId } : {}),\n ...(input.requireIntentMatch !== undefined ? { requireIntentMatch: input.requireIntentMatch } : {}),\n ...(input.strategyId !== undefined ? { strategyId: input.strategyId } : {}),\n });\n if (!handler.execute) {\n return {\n execute: false,\n reason: handler.reason,\n routeExecution: handler.routeExecution,\n strategyDecision: handler.strategyDecision,\n toolDecisions: [],\n };\n }\n\n const toolDecisions = (input.toolNames ?? []).map((toolName) =>\n buildAssistantWorkflowDirectRouteToolDecision({\n invocation: input.invocation,\n toolName,\n routeExecution: handler.routeExecution,\n ...(handler.strategyDecision ? { strategyDecision: handler.strategyDecision } : {}),\n })\n );\n if (toolDecisions.some((decision) => !decision.execute)) {\n return {\n execute: false,\n reason: \"tool_not_executable\",\n routeExecution: handler.routeExecution,\n strategyDecision: handler.strategyDecision,\n toolDecisions,\n };\n }\n\n return {\n execute: true,\n reason: \"ready\",\n routeExecution: handler.routeExecution,\n strategyDecision: handler.strategyDecision,\n toolDecisions,\n };\n}\n\nexport function buildAssistantWorkflowDirectRouteHandlerDecisionTracePayload(\n decision: AssistantWorkflowDirectRouteHandlerDecision,\n): Record<string, unknown> {\n return {\n execute: decision.execute,\n reason: decision.reason,\n routeExecution: buildAssistantWorkflowDirectRouteExecutionDecisionTracePayload(decision.routeExecution),\n strategyDecision: decision.strategyDecision\n ? buildAssistantWorkflowDirectRouteStrategyDecisionTracePayload(decision.strategyDecision)\n : null,\n toolDecision: decision.toolDecision\n ? buildAssistantWorkflowDirectRouteToolDecisionTracePayload(decision.toolDecision)\n : null,\n };\n}\n\nexport function buildAssistantWorkflowDirectRouteHandlerPlanDecisionTracePayload(\n decision: AssistantWorkflowDirectRouteHandlerPlanDecision,\n): Record<string, unknown> {\n return {\n execute: decision.execute,\n reason: decision.reason,\n routeExecution: buildAssistantWorkflowDirectRouteExecutionDecisionTracePayload(decision.routeExecution),\n strategyDecision: decision.strategyDecision\n ? buildAssistantWorkflowDirectRouteStrategyDecisionTracePayload(decision.strategyDecision)\n : null,\n toolDecisions: decision.toolDecisions.map(buildAssistantWorkflowDirectRouteToolDecisionTracePayload),\n };\n}\n\nexport function buildAssistantWorkflowDirectRouteToolDecisionTracePayload(\n decision: AssistantWorkflowDirectRouteToolDecision,\n): Record<string, unknown> {\n return {\n execute: decision.execute,\n reason: decision.reason,\n route: decision.routeId,\n strategy: decision.strategyId,\n tool: decision.toolName,\n allowedTools: decision.allowedToolHints,\n routeRequiredTools: decision.routeRequiredToolHints,\n strategyRequiredTools: decision.strategyRequiredToolHints,\n routeExecutionReason: decision.routeExecutionReason,\n strategyReason: decision.strategyReason,\n invocationStatus: decision.invocationStatus,\n enabled: decision.enabled,\n };\n}\n\nfunction findDirectRoute(\n workflow: AssistantWorkflowDefinition<string, string, string, string>,\n routeId: string,\n): AssistantWorkflowDirectRouteDefinition | null {\n if (!routeId) return null;\n return workflow.directRoutes?.find((route) => route.id === routeId) ?? null;\n}\n\nfunction findInvocationStrategy(\n invocation: AssistantWorkflowDirectRouteInvocation,\n strategyId: string,\n): AssistantWorkflowDirectRouteStrategyInvocation | null {\n return (invocation.strategies ?? []).find((strategy) => strategy.id === strategyId) ?? null;\n}\n\nfunction normalizeToolHints(values: readonly string[]): string[] {\n const out: string[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n const normalized = normalizeAssistantWorkflowId(value);\n if (!normalized || seen.has(normalized)) continue;\n seen.add(normalized);\n out.push(normalized);\n }\n return out;\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { type AssistantWorkflowDefinition, type AssistantWorkflowDirectRouteDefinition } from "./definition.js";
2
+ export type AssistantWorkflowDirectRoutePolicy = {
3
+ intentId: string | null;
4
+ routeIds: string[];
5
+ routes: AssistantWorkflowDirectRouteDefinition[];
6
+ missingRouteIds: string[];
7
+ };
8
+ export type AssistantWorkflowDirectRouteRuntimeDecision = {
9
+ intentId: string | null;
10
+ routeId: string;
11
+ enabled: boolean;
12
+ reason: "enabled" | "runtime_disabled" | "intent_not_found" | "route_not_declared";
13
+ policyRouteIds: string[];
14
+ };
15
+ export type AssistantWorkflowDirectRouteRuntimeDecisionScope = "intent" | "catalog";
16
+ export declare function buildAssistantWorkflowDirectRoutePolicy(workflow: AssistantWorkflowDefinition<string, string, string, string>, intentId: unknown): AssistantWorkflowDirectRoutePolicy;
17
+ export declare function buildAssistantWorkflowDirectRouteRuntimeDecision(input: {
18
+ workflow: AssistantWorkflowDefinition<string, string, string, string>;
19
+ intentId?: unknown;
20
+ routeId: unknown;
21
+ runtimeEnabled: boolean;
22
+ policyScope?: AssistantWorkflowDirectRouteRuntimeDecisionScope;
23
+ }): AssistantWorkflowDirectRouteRuntimeDecision;
24
+ export declare function buildAssistantWorkflowDirectRouteRuntimeDecisionTracePayload(decision: AssistantWorkflowDirectRouteRuntimeDecision): Record<string, unknown>;
25
+ //# sourceMappingURL=direct-route-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-route-policy.d.ts","sourceRoot":"","sources":["../src/direct-route-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,2BAA2B,EAChC,KAAK,sCAAsC,EAC5C,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,sCAAsC,EAAE,CAAC;IACjD,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,2CAA2C,GAAG;IACxD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;IACnF,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gDAAgD,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpF,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACrE,QAAQ,EAAE,OAAO,GAChB,kCAAkC,CAiBpC;AAED,wBAAgB,gDAAgD,CAAC,KAAK,EAAE;IACtE,QAAQ,EAAE,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,gDAAgD,CAAC;CAChE,GAAG,2CAA2C,CAiE9C;AAED,wBAAgB,4DAA4D,CAC1E,QAAQ,EAAE,2CAA2C,GACpD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB"}