@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.
- package/LICENSE +21 -0
- package/README.md +37 -0
- package/dist/clarification-policy.d.ts +64 -0
- package/dist/clarification-policy.d.ts.map +1 -0
- package/dist/clarification-policy.js +174 -0
- package/dist/clarification-policy.js.map +1 -0
- package/dist/decision.d.ts +37 -0
- package/dist/decision.d.ts.map +1 -0
- package/dist/decision.js +100 -0
- package/dist/decision.js.map +1 -0
- package/dist/definition-catalog-replay.d.ts +25 -0
- package/dist/definition-catalog-replay.d.ts.map +1 -0
- package/dist/definition-catalog-replay.js +54 -0
- package/dist/definition-catalog-replay.js.map +1 -0
- package/dist/definition-catalog.d.ts +45 -0
- package/dist/definition-catalog.d.ts.map +1 -0
- package/dist/definition-catalog.js +97 -0
- package/dist/definition-catalog.js.map +1 -0
- package/dist/definition-diagnostics.d.ts +17 -0
- package/dist/definition-diagnostics.d.ts.map +1 -0
- package/dist/definition-diagnostics.js +353 -0
- package/dist/definition-diagnostics.js.map +1 -0
- package/dist/definition-diff.d.ts +51 -0
- package/dist/definition-diff.d.ts.map +1 -0
- package/dist/definition-diff.js +172 -0
- package/dist/definition-diff.js.map +1 -0
- package/dist/definition-json.d.ts +53 -0
- package/dist/definition-json.d.ts.map +1 -0
- package/dist/definition-json.js +186 -0
- package/dist/definition-json.js.map +1 -0
- package/dist/definition-manifest.d.ts +41 -0
- package/dist/definition-manifest.d.ts.map +1 -0
- package/dist/definition-manifest.js +119 -0
- package/dist/definition-manifest.js.map +1 -0
- package/dist/definition-package-execution-json.d.ts +64 -0
- package/dist/definition-package-execution-json.d.ts.map +1 -0
- package/dist/definition-package-execution-json.js +245 -0
- package/dist/definition-package-execution-json.js.map +1 -0
- package/dist/definition-package-execution-replay.d.ts +14 -0
- package/dist/definition-package-execution-replay.d.ts.map +1 -0
- package/dist/definition-package-execution-replay.js +47 -0
- package/dist/definition-package-execution-replay.js.map +1 -0
- package/dist/definition-package-executor.d.ts +52 -0
- package/dist/definition-package-executor.d.ts.map +1 -0
- package/dist/definition-package-executor.js +70 -0
- package/dist/definition-package-executor.js.map +1 -0
- package/dist/definition-package-loader.d.ts +36 -0
- package/dist/definition-package-loader.d.ts.map +1 -0
- package/dist/definition-package-loader.js +56 -0
- package/dist/definition-package-loader.js.map +1 -0
- package/dist/definition-package-replay.d.ts +28 -0
- package/dist/definition-package-replay.d.ts.map +1 -0
- package/dist/definition-package-replay.js +74 -0
- package/dist/definition-package-replay.js.map +1 -0
- package/dist/definition-package-resolver.d.ts +31 -0
- package/dist/definition-package-resolver.d.ts.map +1 -0
- package/dist/definition-package-resolver.js +60 -0
- package/dist/definition-package-resolver.js.map +1 -0
- package/dist/definition-package-review.d.ts +29 -0
- package/dist/definition-package-review.d.ts.map +1 -0
- package/dist/definition-package-review.js +74 -0
- package/dist/definition-package-review.js.map +1 -0
- package/dist/definition-package-run-report.d.ts +25 -0
- package/dist/definition-package-run-report.d.ts.map +1 -0
- package/dist/definition-package-run-report.js +37 -0
- package/dist/definition-package-run-report.js.map +1 -0
- package/dist/definition-package-run.d.ts +20 -0
- package/dist/definition-package-run.d.ts.map +1 -0
- package/dist/definition-package-run.js +41 -0
- package/dist/definition-package-run.js.map +1 -0
- package/dist/definition-package-selection.d.ts +29 -0
- package/dist/definition-package-selection.d.ts.map +1 -0
- package/dist/definition-package-selection.js +68 -0
- package/dist/definition-package-selection.js.map +1 -0
- package/dist/definition-package-smoke.d.ts +74 -0
- package/dist/definition-package-smoke.d.ts.map +1 -0
- package/dist/definition-package-smoke.js +184 -0
- package/dist/definition-package-smoke.js.map +1 -0
- package/dist/definition-package.d.ts +36 -0
- package/dist/definition-package.d.ts.map +1 -0
- package/dist/definition-package.js +114 -0
- package/dist/definition-package.js.map +1 -0
- package/dist/definition-tuning-approval.d.ts +39 -0
- package/dist/definition-tuning-approval.d.ts.map +1 -0
- package/dist/definition-tuning-approval.js +207 -0
- package/dist/definition-tuning-approval.js.map +1 -0
- package/dist/definition-tuning-json.d.ts +58 -0
- package/dist/definition-tuning-json.d.ts.map +1 -0
- package/dist/definition-tuning-json.js +276 -0
- package/dist/definition-tuning-json.js.map +1 -0
- package/dist/definition-tuning-promotion.d.ts +120 -0
- package/dist/definition-tuning-promotion.d.ts.map +1 -0
- package/dist/definition-tuning-promotion.js +460 -0
- package/dist/definition-tuning-promotion.js.map +1 -0
- package/dist/definition-tuning-replay.d.ts +14 -0
- package/dist/definition-tuning-replay.d.ts.map +1 -0
- package/dist/definition-tuning-replay.js +50 -0
- package/dist/definition-tuning-replay.js.map +1 -0
- package/dist/definition-tuning-review-artifact.d.ts +56 -0
- package/dist/definition-tuning-review-artifact.d.ts.map +1 -0
- package/dist/definition-tuning-review-artifact.js +302 -0
- package/dist/definition-tuning-review-artifact.js.map +1 -0
- package/dist/definition-tuning-review.d.ts +59 -0
- package/dist/definition-tuning-review.d.ts.map +1 -0
- package/dist/definition-tuning-review.js +213 -0
- package/dist/definition-tuning-review.js.map +1 -0
- package/dist/definition-tuning-source-patch.d.ts +43 -0
- package/dist/definition-tuning-source-patch.d.ts.map +1 -0
- package/dist/definition-tuning-source-patch.js +214 -0
- package/dist/definition-tuning-source-patch.js.map +1 -0
- package/dist/definition-tuning.d.ts +73 -0
- package/dist/definition-tuning.d.ts.map +1 -0
- package/dist/definition-tuning.js +426 -0
- package/dist/definition-tuning.js.map +1 -0
- package/dist/definition.d.ts +189 -0
- package/dist/definition.d.ts.map +1 -0
- package/dist/definition.js +494 -0
- package/dist/definition.js.map +1 -0
- package/dist/direct-route-invocation.d.ts +132 -0
- package/dist/direct-route-invocation.d.ts.map +1 -0
- package/dist/direct-route-invocation.js +325 -0
- package/dist/direct-route-invocation.js.map +1 -0
- package/dist/direct-route-policy.d.ts +25 -0
- package/dist/direct-route-policy.d.ts.map +1 -0
- package/dist/direct-route-policy.js +106 -0
- package/dist/direct-route-policy.js.map +1 -0
- package/dist/eval-case.d.ts +85 -0
- package/dist/eval-case.d.ts.map +1 -0
- package/dist/eval-case.js +366 -0
- package/dist/eval-case.js.map +1 -0
- package/dist/eval-replay.d.ts +18 -0
- package/dist/eval-replay.d.ts.map +1 -0
- package/dist/eval-replay.js +41 -0
- package/dist/eval-replay.js.map +1 -0
- package/dist/eval-result.d.ts +46 -0
- package/dist/eval-result.d.ts.map +1 -0
- package/dist/eval-result.js +183 -0
- package/dist/eval-result.js.map +1 -0
- package/dist/eval-runner.d.ts +30 -0
- package/dist/eval-runner.d.ts.map +1 -0
- package/dist/eval-runner.js +57 -0
- package/dist/eval-runner.js.map +1 -0
- package/dist/eval-suite.d.ts +43 -0
- package/dist/eval-suite.d.ts.map +1 -0
- package/dist/eval-suite.js +101 -0
- package/dist/eval-suite.js.map +1 -0
- package/dist/execution-plan.d.ts +43 -0
- package/dist/execution-plan.d.ts.map +1 -0
- package/dist/execution-plan.js +187 -0
- package/dist/execution-plan.js.map +1 -0
- package/dist/hosted-tool-policy.d.ts +70 -0
- package/dist/hosted-tool-policy.d.ts.map +1 -0
- package/dist/hosted-tool-policy.js +228 -0
- package/dist/hosted-tool-policy.js.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/memory-policy.d.ts +55 -0
- package/dist/memory-policy.d.ts.map +1 -0
- package/dist/memory-policy.js +187 -0
- package/dist/memory-policy.js.map +1 -0
- package/dist/memory-updates.d.ts +39 -0
- package/dist/memory-updates.d.ts.map +1 -0
- package/dist/memory-updates.js +110 -0
- package/dist/memory-updates.js.map +1 -0
- package/dist/outcome-trace.d.ts +79 -0
- package/dist/outcome-trace.d.ts.map +1 -0
- package/dist/outcome-trace.js +117 -0
- package/dist/outcome-trace.js.map +1 -0
- package/dist/outcome.d.ts +97 -0
- package/dist/outcome.d.ts.map +1 -0
- package/dist/outcome.js +160 -0
- package/dist/outcome.js.map +1 -0
- package/dist/planner-compiler.d.ts +14 -0
- package/dist/planner-compiler.d.ts.map +1 -0
- package/dist/planner-compiler.js +26 -0
- package/dist/planner-compiler.js.map +1 -0
- package/dist/planning.d.ts +36 -0
- package/dist/planning.d.ts.map +1 -0
- package/dist/planning.js +141 -0
- package/dist/planning.js.map +1 -0
- package/dist/policy-resolution.d.ts +10 -0
- package/dist/policy-resolution.d.ts.map +1 -0
- package/dist/policy-resolution.js +30 -0
- package/dist/policy-resolution.js.map +1 -0
- package/dist/run-evaluation.d.ts +29 -0
- package/dist/run-evaluation.d.ts.map +1 -0
- package/dist/run-evaluation.js +128 -0
- package/dist/run-evaluation.js.map +1 -0
- package/dist/run-parity.d.ts +24 -0
- package/dist/run-parity.d.ts.map +1 -0
- package/dist/run-parity.js +36 -0
- package/dist/run-parity.js.map +1 -0
- package/dist/run-report-batch.d.ts +150 -0
- package/dist/run-report-batch.d.ts.map +1 -0
- package/dist/run-report-batch.js +391 -0
- package/dist/run-report-batch.js.map +1 -0
- package/dist/run-report-json.d.ts +76 -0
- package/dist/run-report-json.d.ts.map +1 -0
- package/dist/run-report-json.js +451 -0
- package/dist/run-report-json.js.map +1 -0
- package/dist/run-report.d.ts +22 -0
- package/dist/run-report.d.ts.map +1 -0
- package/dist/run-report.js +46 -0
- package/dist/run-report.js.map +1 -0
- package/dist/run.d.ts +20 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +36 -0
- package/dist/run.js.map +1 -0
- package/dist/tool-bindings.d.ts +42 -0
- package/dist/tool-bindings.d.ts.map +1 -0
- package/dist/tool-bindings.js +124 -0
- package/dist/tool-bindings.js.map +1 -0
- package/dist/tool-capabilities.d.ts +37 -0
- package/dist/tool-capabilities.d.ts.map +1 -0
- package/dist/tool-capabilities.js +91 -0
- package/dist/tool-capabilities.js.map +1 -0
- package/dist/tool-executor.d.ts +63 -0
- package/dist/tool-executor.d.ts.map +1 -0
- package/dist/tool-executor.js +176 -0
- package/dist/tool-executor.js.map +1 -0
- package/dist/tool-fixtures.d.ts +18 -0
- package/dist/tool-fixtures.d.ts.map +1 -0
- package/dist/tool-fixtures.js +52 -0
- package/dist/tool-fixtures.js.map +1 -0
- package/dist/tool-invocations.d.ts +31 -0
- package/dist/tool-invocations.d.ts.map +1 -0
- package/dist/tool-invocations.js +79 -0
- package/dist/tool-invocations.js.map +1 -0
- package/dist/tool-provider-executors.d.ts +43 -0
- package/dist/tool-provider-executors.d.ts.map +1 -0
- package/dist/tool-provider-executors.js +59 -0
- package/dist/tool-provider-executors.js.map +1 -0
- package/dist/tool-result-cache.d.ts +37 -0
- package/dist/tool-result-cache.d.ts.map +1 -0
- package/dist/tool-result-cache.js +173 -0
- package/dist/tool-result-cache.js.map +1 -0
- package/dist/tool-results.d.ts +41 -0
- package/dist/tool-results.d.ts.map +1 -0
- package/dist/tool-results.js +137 -0
- package/dist/tool-results.js.map +1 -0
- package/dist/tool-runtime.d.ts +46 -0
- package/dist/tool-runtime.d.ts.map +1 -0
- package/dist/tool-runtime.js +163 -0
- package/dist/tool-runtime.js.map +1 -0
- package/dist/tool-selection-evaluation.d.ts +214 -0
- package/dist/tool-selection-evaluation.d.ts.map +1 -0
- package/dist/tool-selection-evaluation.js +773 -0
- package/dist/tool-selection-evaluation.js.map +1 -0
- package/dist/tool-selection-json.d.ts +71 -0
- package/dist/tool-selection-json.d.ts.map +1 -0
- package/dist/tool-selection-json.js +284 -0
- package/dist/tool-selection-json.js.map +1 -0
- package/dist/tool-selection-policy.d.ts +81 -0
- package/dist/tool-selection-policy.d.ts.map +1 -0
- package/dist/tool-selection-policy.js +376 -0
- package/dist/tool-selection-policy.js.map +1 -0
- package/dist/tool-selection-replay.d.ts +26 -0
- package/dist/tool-selection-replay.d.ts.map +1 -0
- package/dist/tool-selection-replay.js +88 -0
- package/dist/tool-selection-replay.js.map +1 -0
- package/dist/tool-selection-rules.d.ts +46 -0
- package/dist/tool-selection-rules.d.ts.map +1 -0
- package/dist/tool-selection-rules.js +183 -0
- package/dist/tool-selection-rules.js.map +1 -0
- package/dist/tool-selection-trace-export.d.ts +37 -0
- package/dist/tool-selection-trace-export.d.ts.map +1 -0
- package/dist/tool-selection-trace-export.js +324 -0
- package/dist/tool-selection-trace-export.js.map +1 -0
- package/dist/trace-events.d.ts +14 -0
- package/dist/trace-events.d.ts.map +1 -0
- package/dist/trace-events.js +65 -0
- package/dist/trace-events.js.map +1 -0
- package/dist/trace-payload.d.ts +24 -0
- package/dist/trace-payload.d.ts.map +1 -0
- package/dist/trace-payload.js +113 -0
- package/dist/trace-payload.js.map +1 -0
- package/dist/trace-replay.d.ts +276 -0
- package/dist/trace-replay.d.ts.map +1 -0
- package/dist/trace-replay.js +685 -0
- package/dist/trace-replay.js.map +1 -0
- package/dist/trace-report.d.ts +320 -0
- package/dist/trace-report.d.ts.map +1 -0
- package/dist/trace-report.js +1394 -0
- package/dist/trace-report.js.map +1 -0
- package/dist/trace-stages.d.ts +70 -0
- package/dist/trace-stages.d.ts.map +1 -0
- package/dist/trace-stages.js +103 -0
- package/dist/trace-stages.js.map +1 -0
- package/dist/value-readers.d.ts +20 -0
- package/dist/value-readers.d.ts.map +1 -0
- package/dist/value-readers.js +82 -0
- package/dist/value-readers.js.map +1 -0
- 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":"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","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"}
|