@uns-kit/assistant-workflow 2.0.79 → 2.0.81
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/dist/decision.d.ts +1 -0
- package/dist/decision.d.ts.map +1 -1
- package/dist/decision.js +5 -0
- package/dist/decision.js.map +1 -1
- package/dist/definition-diagnostics.js +14 -5
- package/dist/definition-diagnostics.js.map +1 -1
- package/dist/definition.d.ts +2 -0
- package/dist/definition.d.ts.map +1 -1
- package/dist/definition.js +12 -3
- package/dist/definition.js.map +1 -1
- package/dist/tool-selection-policy.d.ts +1 -1
- package/dist/tool-selection-policy.d.ts.map +1 -1
- package/dist/tool-selection-policy.js +5 -0
- package/dist/tool-selection-policy.js.map +1 -1
- package/dist/trace-replay.js +3 -1
- package/dist/trace-replay.js.map +1 -1
- package/package.json +1 -1
package/dist/decision.d.ts
CHANGED
package/dist/decision.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,4CAA4C,EACjD,KAAK,yCAAyC,EAC/C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,8BAA8B,EACnC,KAAK,mCAAmC,EACxC,KAAK,0BAA0B,EAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,KAAK,qCAAqC,EAC3C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,yCAAyC,CAAC,UAAU,CAAC,CAAC;IACjE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACrD,kBAAkB,EAAE,mCAAmC,GAAG,IAAI,CAAC;IAC/D,SAAS,EAAE,0BAA0B,EAAE,CAAC;IACxC,YAAY,EAAE,qCAAqC,CAAC;IACpD,mBAAmB,EAAE,4CAA4C,CAAC;IAClE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAEF,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACrE,cAAc,EAAE,8BAA8B,GAAG,IAAI,GAAG,SAAS,EACjE,kBAAkB,GAAE,SAAS,MAAM,EAAO,GACzC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,4CAA4C,EACjD,KAAK,yCAAyC,EAC/C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,8BAA8B,EACnC,KAAK,mCAAmC,EACxC,KAAK,0BAA0B,EAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,KAAK,qCAAqC,EAC3C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,yCAAyC,CAAC,UAAU,CAAC,CAAC;IACjE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACrD,kBAAkB,EAAE,mCAAmC,GAAG,IAAI,CAAC;IAC/D,SAAS,EAAE,0BAA0B,EAAE,CAAC;IACxC,YAAY,EAAE,qCAAqC,CAAC;IACpD,mBAAmB,EAAE,4CAA4C,CAAC;IAClE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAEF,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACrE,cAAc,EAAE,8BAA8B,GAAG,IAAI,GAAG,SAAS,EACjE,kBAAkB,GAAE,SAAS,MAAM,EAAO,GACzC,yBAAyB,CAyD3B;AAED,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,yBAAyB,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBzB;AAED,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACrE,QAAQ,EAAE,OAAO,GAChB,OAAO,CAET"}
|
package/dist/decision.js
CHANGED
|
@@ -6,6 +6,9 @@ export function buildAssistantWorkflowDecision(workflow, classification, availab
|
|
|
6
6
|
const intent = typeof classification?.intent === "string" && classification.intent.trim().length
|
|
7
7
|
? classification.intent.trim().toLowerCase()
|
|
8
8
|
: null;
|
|
9
|
+
const subintent = typeof classification?.subintent === "string" && classification.subintent.trim().length
|
|
10
|
+
? classification.subintent.trim().toLowerCase()
|
|
11
|
+
: null;
|
|
9
12
|
const intentDefinition = intent ? findAssistantWorkflowIntent(workflow, intent) : null;
|
|
10
13
|
const availableSet = new Set(availableToolNames);
|
|
11
14
|
const classifierTools = uniqueNonEmptyStrings(classification?.toolsToExpose ?? [])
|
|
@@ -29,6 +32,7 @@ export function buildAssistantWorkflowDecision(workflow, classification, availab
|
|
|
29
32
|
});
|
|
30
33
|
return {
|
|
31
34
|
intent,
|
|
35
|
+
subintent,
|
|
32
36
|
matchedIntent: intentDefinition !== null,
|
|
33
37
|
defaultPresentation: intentDefinition?.defaultPresentation ?? null,
|
|
34
38
|
effectivePresentation: typeof classification?.presentation === "string" && classification.presentation.trim().length
|
|
@@ -52,6 +56,7 @@ export function buildAssistantWorkflowDecision(workflow, classification, availab
|
|
|
52
56
|
export function buildAssistantWorkflowDecisionTracePayload(decision) {
|
|
53
57
|
return {
|
|
54
58
|
intent: decision.intent,
|
|
59
|
+
subintent: decision.subintent,
|
|
55
60
|
matchedIntent: decision.matchedIntent,
|
|
56
61
|
defaultPresentation: decision.defaultPresentation,
|
|
57
62
|
effectivePresentation: decision.effectivePresentation,
|
package/dist/decision.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision.js","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n buildAssistantWorkflowClarificationPolicy,\n type AssistantWorkflowResolvedClarificationPolicy,\n type AssistantWorkflowClarificationPolicyInput,\n} from \"./clarification-policy.js\";\nimport {\n findAssistantWorkflowIntent,\n type AssistantWorkflowDefinition,\n type AssistantWorkflowExecutionBias,\n type AssistantWorkflowFirstHopToolPolicy,\n type AssistantWorkflowMemoryUse,\n} from \"./definition.js\";\nimport {\n buildAssistantWorkflowMemoryPolicy,\n type AssistantWorkflowResolvedMemoryPolicy,\n} from \"./memory-policy.js\";\nimport {\n buildAssistantWorkflowPlan,\n type AssistantWorkflowPlan,\n} from \"./planning.js\";\n\nexport type AssistantWorkflowDecisionInput = {\n intent?: string | null;\n subintent?: string | null;\n presentation?: string | null;\n toolsToExpose?: readonly string[] | null;\n confidence?: number | null;\n resolvedScope?: boolean;\n entities?: AssistantWorkflowClarificationPolicyInput[\"entities\"];\n timeWindowHint?: string | null;\n};\n\nexport type AssistantWorkflowDecision = {\n intent: string | null;\n matchedIntent: boolean;\n defaultPresentation: string | null;\n effectivePresentation: string | null;\n executionBias: AssistantWorkflowExecutionBias | null;\n firstHopToolPolicy: AssistantWorkflowFirstHopToolPolicy | null;\n memoryUse: AssistantWorkflowMemoryUse[];\n memoryPolicy: AssistantWorkflowResolvedMemoryPolicy;\n clarificationPolicy: AssistantWorkflowResolvedClarificationPolicy;\n plan: AssistantWorkflowPlan;\n requiredToolHints: string[];\n missingRequiredToolHints: string[];\n toolHints: string[];\n missingToolHints: string[];\n classifierTools: string[];\n workflowSuggestedTools: string[];\n extraClassifierTools: string[];\n};\n\nexport function buildAssistantWorkflowDecision(\n workflow: AssistantWorkflowDefinition<string, string, string, string>,\n classification: AssistantWorkflowDecisionInput | null | undefined,\n availableToolNames: readonly string[] = [],\n): AssistantWorkflowDecision {\n const intent = typeof classification?.intent === \"string\" && classification.intent.trim().length\n ? classification.intent.trim().toLowerCase()\n : null;\n const intentDefinition = intent ? findAssistantWorkflowIntent(workflow, intent) : null;\n const availableSet = new Set(availableToolNames);\n const classifierTools = uniqueNonEmptyStrings(classification?.toolsToExpose ?? [])\n .filter((tool) => availableSet.size === 0 || availableSet.has(tool));\n const toolHintsRaw = uniqueNonEmptyStrings(intentDefinition?.toolHints ?? []);\n const requiredToolHintsRaw = uniqueNonEmptyStrings(intentDefinition?.requiredToolHints ?? []);\n const toolHints = toolHintsRaw.filter((tool) => availableSet.size === 0 || availableSet.has(tool));\n const requiredToolHints = requiredToolHintsRaw.filter((tool) => availableSet.size === 0 || availableSet.has(tool));\n const missingToolHints = availableSet.size === 0 ? [] : toolHintsRaw.filter((tool) => !availableSet.has(tool));\n const missingRequiredToolHints =\n availableSet.size === 0 ? [] : requiredToolHintsRaw.filter((tool) => !availableSet.has(tool));\n const workflowSuggestedTools = uniqueNonEmptyStrings([...classifierTools, ...requiredToolHints, ...toolHints]);\n const workflowHintSet = new Set([...requiredToolHints, ...toolHints]);\n const memoryPolicy = buildAssistantWorkflowMemoryPolicy(workflow, intent);\n const clarificationPolicy = buildAssistantWorkflowClarificationPolicy(\n workflow,\n intent,\n buildClarificationPolicyInput(classification),\n );\n const plan = buildAssistantWorkflowPlan(workflow, intent, availableToolNames, {\n ...(typeof classification?.subintent === \"string\" ? { subintent: classification.subintent } : {}),\n ...(typeof classification?.presentation === \"string\" ? { presentation: classification.presentation } : {}),\n ...(typeof classification?.timeWindowHint === \"string\" ? { timeWindowHint: classification.timeWindowHint } : {}),\n ...(Array.isArray(classification?.toolsToExpose) ? { toolsToExpose: classification.toolsToExpose } : {}),\n ...(typeof classification?.confidence === \"number\" ? { confidence: classification.confidence } : {}),\n });\n\n return {\n intent,\n matchedIntent: intentDefinition !== null,\n defaultPresentation: intentDefinition?.defaultPresentation ?? null,\n effectivePresentation:\n typeof classification?.presentation === \"string\" && classification.presentation.trim().length\n ? classification.presentation.trim().toLowerCase()\n : intentDefinition?.defaultPresentation ?? null,\n executionBias: intentDefinition?.executionBias ?? null,\n firstHopToolPolicy: intentDefinition ? intentDefinition.firstHopToolPolicy ?? \"auto\" : null,\n memoryUse: uniqueNonEmptyStrings(intentDefinition?.memoryUse ?? []) as AssistantWorkflowMemoryUse[],\n memoryPolicy,\n clarificationPolicy,\n plan,\n requiredToolHints,\n missingRequiredToolHints,\n toolHints,\n missingToolHints,\n classifierTools,\n workflowSuggestedTools,\n extraClassifierTools: classifierTools.filter((tool) => !workflowHintSet.has(tool)),\n };\n}\n\nexport function buildAssistantWorkflowDecisionTracePayload(\n decision: AssistantWorkflowDecision,\n): Record<string, unknown> {\n return {\n intent: decision.intent,\n matchedIntent: decision.matchedIntent,\n defaultPresentation: decision.defaultPresentation,\n effectivePresentation: decision.effectivePresentation,\n executionBias: decision.executionBias,\n firstHopToolPolicy: decision.firstHopToolPolicy,\n memoryUse: decision.memoryUse,\n memoryPolicy: decision.memoryPolicy,\n clarificationPolicy: decision.clarificationPolicy,\n plan: decision.plan,\n classifierTools: decision.classifierTools,\n requiredToolHints: decision.requiredToolHints,\n missingRequiredToolHints: decision.missingRequiredToolHints,\n toolHints: decision.toolHints,\n missingToolHints: decision.missingToolHints,\n workflowSuggestedTools: decision.workflowSuggestedTools,\n extraClassifierTools: decision.extraClassifierTools,\n };\n}\n\nexport function shouldRequireAssistantWorkflowFirstHopTool(\n workflow: AssistantWorkflowDefinition<string, string, string, string>,\n intentId: unknown,\n): boolean {\n return findAssistantWorkflowIntent(workflow, intentId)?.firstHopToolPolicy === \"require-tool\";\n}\n\nfunction uniqueNonEmptyStrings(values: readonly unknown[]): string[] {\n const out: string[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n if (typeof value !== \"string\") continue;\n const trimmed = value.trim();\n if (!trimmed.length || seen.has(trimmed)) continue;\n seen.add(trimmed);\n out.push(trimmed);\n }\n return out;\n}\n\nfunction buildClarificationPolicyInput(\n classification: AssistantWorkflowDecisionInput | null | undefined,\n): AssistantWorkflowClarificationPolicyInput {\n if (!classification) return {};\n return {\n ...(typeof classification.confidence === \"number\" ? { confidence: classification.confidence } : {}),\n ...(classification.resolvedScope === true ? { resolvedScope: true } : {}),\n ...(classification.entities !== undefined ? { entities: classification.entities } : {}),\n ...(classification.timeWindowHint !== undefined ? { timeWindowHint: classification.timeWindowHint } : {}),\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"decision.js","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n buildAssistantWorkflowClarificationPolicy,\n type AssistantWorkflowResolvedClarificationPolicy,\n type AssistantWorkflowClarificationPolicyInput,\n} from \"./clarification-policy.js\";\nimport {\n findAssistantWorkflowIntent,\n type AssistantWorkflowDefinition,\n type AssistantWorkflowExecutionBias,\n type AssistantWorkflowFirstHopToolPolicy,\n type AssistantWorkflowMemoryUse,\n} from \"./definition.js\";\nimport {\n buildAssistantWorkflowMemoryPolicy,\n type AssistantWorkflowResolvedMemoryPolicy,\n} from \"./memory-policy.js\";\nimport {\n buildAssistantWorkflowPlan,\n type AssistantWorkflowPlan,\n} from \"./planning.js\";\n\nexport type AssistantWorkflowDecisionInput = {\n intent?: string | null;\n subintent?: string | null;\n presentation?: string | null;\n toolsToExpose?: readonly string[] | null;\n confidence?: number | null;\n resolvedScope?: boolean;\n entities?: AssistantWorkflowClarificationPolicyInput[\"entities\"];\n timeWindowHint?: string | null;\n};\n\nexport type AssistantWorkflowDecision = {\n intent: string | null;\n subintent: string | null;\n matchedIntent: boolean;\n defaultPresentation: string | null;\n effectivePresentation: string | null;\n executionBias: AssistantWorkflowExecutionBias | null;\n firstHopToolPolicy: AssistantWorkflowFirstHopToolPolicy | null;\n memoryUse: AssistantWorkflowMemoryUse[];\n memoryPolicy: AssistantWorkflowResolvedMemoryPolicy;\n clarificationPolicy: AssistantWorkflowResolvedClarificationPolicy;\n plan: AssistantWorkflowPlan;\n requiredToolHints: string[];\n missingRequiredToolHints: string[];\n toolHints: string[];\n missingToolHints: string[];\n classifierTools: string[];\n workflowSuggestedTools: string[];\n extraClassifierTools: string[];\n};\n\nexport function buildAssistantWorkflowDecision(\n workflow: AssistantWorkflowDefinition<string, string, string, string>,\n classification: AssistantWorkflowDecisionInput | null | undefined,\n availableToolNames: readonly string[] = [],\n): AssistantWorkflowDecision {\n const intent = typeof classification?.intent === \"string\" && classification.intent.trim().length\n ? classification.intent.trim().toLowerCase()\n : null;\n const subintent = typeof classification?.subintent === \"string\" && classification.subintent.trim().length\n ? classification.subintent.trim().toLowerCase()\n : null;\n const intentDefinition = intent ? findAssistantWorkflowIntent(workflow, intent) : null;\n const availableSet = new Set(availableToolNames);\n const classifierTools = uniqueNonEmptyStrings(classification?.toolsToExpose ?? [])\n .filter((tool) => availableSet.size === 0 || availableSet.has(tool));\n const toolHintsRaw = uniqueNonEmptyStrings(intentDefinition?.toolHints ?? []);\n const requiredToolHintsRaw = uniqueNonEmptyStrings(intentDefinition?.requiredToolHints ?? []);\n const toolHints = toolHintsRaw.filter((tool) => availableSet.size === 0 || availableSet.has(tool));\n const requiredToolHints = requiredToolHintsRaw.filter((tool) => availableSet.size === 0 || availableSet.has(tool));\n const missingToolHints = availableSet.size === 0 ? [] : toolHintsRaw.filter((tool) => !availableSet.has(tool));\n const missingRequiredToolHints =\n availableSet.size === 0 ? [] : requiredToolHintsRaw.filter((tool) => !availableSet.has(tool));\n const workflowSuggestedTools = uniqueNonEmptyStrings([...classifierTools, ...requiredToolHints, ...toolHints]);\n const workflowHintSet = new Set([...requiredToolHints, ...toolHints]);\n const memoryPolicy = buildAssistantWorkflowMemoryPolicy(workflow, intent);\n const clarificationPolicy = buildAssistantWorkflowClarificationPolicy(\n workflow,\n intent,\n buildClarificationPolicyInput(classification),\n );\n const plan = buildAssistantWorkflowPlan(workflow, intent, availableToolNames, {\n ...(typeof classification?.subintent === \"string\" ? { subintent: classification.subintent } : {}),\n ...(typeof classification?.presentation === \"string\" ? { presentation: classification.presentation } : {}),\n ...(typeof classification?.timeWindowHint === \"string\" ? { timeWindowHint: classification.timeWindowHint } : {}),\n ...(Array.isArray(classification?.toolsToExpose) ? { toolsToExpose: classification.toolsToExpose } : {}),\n ...(typeof classification?.confidence === \"number\" ? { confidence: classification.confidence } : {}),\n });\n\n return {\n intent,\n subintent,\n matchedIntent: intentDefinition !== null,\n defaultPresentation: intentDefinition?.defaultPresentation ?? null,\n effectivePresentation:\n typeof classification?.presentation === \"string\" && classification.presentation.trim().length\n ? classification.presentation.trim().toLowerCase()\n : intentDefinition?.defaultPresentation ?? null,\n executionBias: intentDefinition?.executionBias ?? null,\n firstHopToolPolicy: intentDefinition ? intentDefinition.firstHopToolPolicy ?? \"auto\" : null,\n memoryUse: uniqueNonEmptyStrings(intentDefinition?.memoryUse ?? []) as AssistantWorkflowMemoryUse[],\n memoryPolicy,\n clarificationPolicy,\n plan,\n requiredToolHints,\n missingRequiredToolHints,\n toolHints,\n missingToolHints,\n classifierTools,\n workflowSuggestedTools,\n extraClassifierTools: classifierTools.filter((tool) => !workflowHintSet.has(tool)),\n };\n}\n\nexport function buildAssistantWorkflowDecisionTracePayload(\n decision: AssistantWorkflowDecision,\n): Record<string, unknown> {\n return {\n intent: decision.intent,\n subintent: decision.subintent,\n matchedIntent: decision.matchedIntent,\n defaultPresentation: decision.defaultPresentation,\n effectivePresentation: decision.effectivePresentation,\n executionBias: decision.executionBias,\n firstHopToolPolicy: decision.firstHopToolPolicy,\n memoryUse: decision.memoryUse,\n memoryPolicy: decision.memoryPolicy,\n clarificationPolicy: decision.clarificationPolicy,\n plan: decision.plan,\n classifierTools: decision.classifierTools,\n requiredToolHints: decision.requiredToolHints,\n missingRequiredToolHints: decision.missingRequiredToolHints,\n toolHints: decision.toolHints,\n missingToolHints: decision.missingToolHints,\n workflowSuggestedTools: decision.workflowSuggestedTools,\n extraClassifierTools: decision.extraClassifierTools,\n };\n}\n\nexport function shouldRequireAssistantWorkflowFirstHopTool(\n workflow: AssistantWorkflowDefinition<string, string, string, string>,\n intentId: unknown,\n): boolean {\n return findAssistantWorkflowIntent(workflow, intentId)?.firstHopToolPolicy === \"require-tool\";\n}\n\nfunction uniqueNonEmptyStrings(values: readonly unknown[]): string[] {\n const out: string[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n if (typeof value !== \"string\") continue;\n const trimmed = value.trim();\n if (!trimmed.length || seen.has(trimmed)) continue;\n seen.add(trimmed);\n out.push(trimmed);\n }\n return out;\n}\n\nfunction buildClarificationPolicyInput(\n classification: AssistantWorkflowDecisionInput | null | undefined,\n): AssistantWorkflowClarificationPolicyInput {\n if (!classification) return {};\n return {\n ...(typeof classification.confidence === \"number\" ? { confidence: classification.confidence } : {}),\n ...(classification.resolvedScope === true ? { resolvedScope: true } : {}),\n ...(classification.entities !== undefined ? { entities: classification.entities } : {}),\n ...(classification.timeWindowHint !== undefined ? { timeWindowHint: classification.timeWindowHint } : {}),\n };\n}\n"]}
|
|
@@ -199,7 +199,7 @@ function validateReferences(workflow, diagnostics) {
|
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
for (const [index, intent] of workflow.intents.entries()) {
|
|
202
|
-
validateIntentToolSelectionProfiles(intent, index, toolNames, diagnostics);
|
|
202
|
+
validateIntentToolSelectionProfiles(intent, index, toolNames, subintentIds, diagnostics);
|
|
203
203
|
validateIntentPlanningStepProfiles(intent, index, planningStepIds, toolNames, subintentIds, presentationIds, diagnostics);
|
|
204
204
|
if (intent.defaultPresentation && !presentationIds.has(intent.defaultPresentation)) {
|
|
205
205
|
addDiagnostic(diagnostics, "error", "unknown_presentation", `intents[${index}].defaultPresentation`, `Assistant workflow intent ${intent.id} references unknown presentation: ${intent.defaultPresentation}.`);
|
|
@@ -275,7 +275,7 @@ function validateIntentPlanningStepProfiles(intent, intentIndex, planningStepIds
|
|
|
275
275
|
validatePlanningStepProfileCondition(intent.id, profile, profilePath, diagnostics);
|
|
276
276
|
}
|
|
277
277
|
}
|
|
278
|
-
function validateIntentToolSelectionProfiles(intent, intentIndex, toolNames, diagnostics) {
|
|
278
|
+
function validateIntentToolSelectionProfiles(intent, intentIndex, toolNames, subintentIds, diagnostics) {
|
|
279
279
|
const seen = new Map();
|
|
280
280
|
for (const [profileIndex, profile] of (intent.toolSelectionProfiles ?? []).entries()) {
|
|
281
281
|
const profilePath = `intents[${intentIndex}].toolSelectionProfiles[${profileIndex}]`;
|
|
@@ -305,7 +305,7 @@ function validateIntentToolSelectionProfiles(intent, intentIndex, toolNames, dia
|
|
|
305
305
|
addDiagnostic(diagnostics, "error", "unknown_tool_capability", `${profilePath}.toolHints`, `Assistant workflow intent ${intent.id} tool selection profile ${normalized} references unknown tool capability: ${toolName}.`);
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
|
-
validateToolSelectionProfileCondition(intent.id, profile, profilePath, diagnostics);
|
|
308
|
+
validateToolSelectionProfileCondition(intent.id, profile, profilePath, subintentIds, diagnostics);
|
|
309
309
|
}
|
|
310
310
|
}
|
|
311
311
|
function validatePlanningStepProfileCondition(intentId, profile, profilePath, diagnostics) {
|
|
@@ -332,8 +332,8 @@ function validatePlanningStepProfileCondition(intentId, profile, profilePath, di
|
|
|
332
332
|
addDiagnostic(diagnostics, "error", "invalid_planning_step_profile_condition", `${profilePath}.condition.requiredTools`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} requiredTools must not be empty.`);
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
|
-
function validateToolSelectionProfileCondition(intentId, profile, profilePath, diagnostics) {
|
|
336
|
-
const { minHop, maxHop, selectedReason } = profile.condition ?? {};
|
|
335
|
+
function validateToolSelectionProfileCondition(intentId, profile, profilePath, subintentIds, diagnostics) {
|
|
336
|
+
const { minHop, maxHop, selectedReason, subintent } = profile.condition ?? {};
|
|
337
337
|
if (minHop !== undefined && (!Number.isInteger(minHop) || minHop < 0)) {
|
|
338
338
|
addDiagnostic(diagnostics, "error", "invalid_tool_selection_profile_condition", `${profilePath}.condition.minHop`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} minHop must be a non-negative integer.`);
|
|
339
339
|
}
|
|
@@ -343,6 +343,15 @@ function validateToolSelectionProfileCondition(intentId, profile, profilePath, d
|
|
|
343
343
|
if (minHop !== undefined && maxHop !== undefined && minHop > maxHop) {
|
|
344
344
|
addDiagnostic(diagnostics, "error", "invalid_tool_selection_profile_condition", `${profilePath}.condition`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} minHop must not exceed maxHop.`);
|
|
345
345
|
}
|
|
346
|
+
if (subintent !== undefined && subintent !== null) {
|
|
347
|
+
const normalizedSubintent = subintent.trim();
|
|
348
|
+
if (!normalizedSubintent.length) {
|
|
349
|
+
addDiagnostic(diagnostics, "error", "invalid_tool_selection_profile_condition", `${profilePath}.condition.subintent`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} subintent must not be empty.`);
|
|
350
|
+
}
|
|
351
|
+
else if (subintentIds.size > 0 && !subintentIds.has(normalizedSubintent)) {
|
|
352
|
+
addDiagnostic(diagnostics, "error", "missing_id", `${profilePath}.condition.subintent`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} references unknown subintent: ${normalizedSubintent}.`);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
346
355
|
if (selectedReason !== undefined && !selectedReason.trim().length) {
|
|
347
356
|
addDiagnostic(diagnostics, "error", "invalid_tool_selection_profile_condition", `${profilePath}.condition.selectedReason`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} selectedReason must not be empty.`);
|
|
348
357
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-diagnostics.js","sourceRoot":"","sources":["../src/definition-diagnostics.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n normalizeAssistantWorkflowId,\n type AssistantWorkflowClarificationRuleDefinition,\n type AssistantWorkflowDefinition,\n type AssistantWorkflowDirectRouteDefinition,\n type AssistantWorkflowMemorySlotDefinition,\n type AssistantWorkflowPlanningStepDefinition,\n type AssistantWorkflowToolBindingDefinition,\n type AssistantWorkflowToolCapabilityDefinition,\n type AssistantWorkflowVocabularyItem,\n} from \"./definition.js\";\n\nexport type AssistantWorkflowDefinitionDiagnosticSeverity = \"error\" | \"warning\";\n\nexport type AssistantWorkflowDefinitionDiagnosticCode =\n | \"missing_workflow_id\"\n | \"invalid_workflow_version\"\n | \"missing_intents\"\n | \"missing_id\"\n | \"unnormalized_id\"\n | \"duplicate_id\"\n | \"missing_description\"\n | \"missing_tool_hints\"\n | \"missing_tool_output_kinds\"\n | \"missing_binding_field\"\n | \"invalid_http_method\"\n | \"invalid_tool_selection_profile_condition\"\n | \"invalid_planning_step_profile_condition\"\n | \"missing_repl_target\"\n | \"unknown_tool_capability\"\n | \"tool_provider_mismatch\"\n | \"unknown_presentation\"\n | \"unknown_memory_slot\"\n | \"unknown_planning_step\"\n | \"unknown_clarification_rule\"\n | \"invalid_confidence_threshold\"\n | \"unbound_tool_capability\"\n | \"binding_without_capability\";\n\nexport type AssistantWorkflowDefinitionDiagnostic = {\n severity: AssistantWorkflowDefinitionDiagnosticSeverity;\n code: AssistantWorkflowDefinitionDiagnosticCode;\n path: string;\n message: string;\n};\n\nexport type AssistantWorkflowDefinitionValidationResult = {\n valid: boolean;\n errorCount: number;\n warningCount: number;\n diagnostics: AssistantWorkflowDefinitionDiagnostic[];\n};\n\nexport function validateAssistantWorkflowDefinition(\n workflow: AssistantWorkflowDefinition<string, string, string, string>,\n): AssistantWorkflowDefinitionValidationResult {\n const diagnostics: AssistantWorkflowDefinitionDiagnostic[] = [];\n\n validateHeader(workflow, diagnostics);\n validateVocabulary(\"intent\", \"intents\", workflow.intents, diagnostics);\n validateVocabulary(\"subintent\", \"subintents\", workflow.subintents ?? [], diagnostics);\n validateVocabulary(\"presentation\", \"presentations\", workflow.presentations ?? [], diagnostics);\n validateVocabulary(\"derived transform\", \"derivedTransforms\", workflow.derivedTransforms ?? [], diagnostics);\n validateToolCapabilities(workflow.tools ?? [], diagnostics);\n validateToolBindings(workflow.toolBindings ?? [], diagnostics);\n validateMemorySlots(workflow.memorySlots ?? [], diagnostics);\n validatePlanningSteps(workflow.planningSteps ?? [], diagnostics);\n validateClarificationRules(workflow.clarificationRules ?? [], diagnostics);\n validateDirectRoutes(workflow.directRoutes ?? [], diagnostics);\n validateReferences(workflow, diagnostics);\n\n const errorCount = diagnostics.filter((diagnostic) => diagnostic.severity === \"error\").length;\n const warningCount = diagnostics.filter((diagnostic) => diagnostic.severity === \"warning\").length;\n return {\n valid: errorCount === 0,\n errorCount,\n warningCount,\n diagnostics,\n };\n}\n\nfunction validateHeader(\n workflow: AssistantWorkflowDefinition<string, string, string, string>,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n if (!workflow.id.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_workflow_id\", \"id\", \"Assistant workflow id is required.\");\n }\n if (!Number.isInteger(workflow.version) || workflow.version < 1) {\n addDiagnostic(diagnostics, \"error\", \"invalid_workflow_version\", \"version\", \"Assistant workflow version must be a positive integer.\");\n }\n if (!workflow.intents.length) {\n addDiagnostic(diagnostics, \"error\", \"missing_intents\", \"intents\", \"Assistant workflow must define at least one intent.\");\n }\n}\n\nfunction validateVocabulary(\n kind: string,\n path: string,\n items: readonly AssistantWorkflowVocabularyItem[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const seen = new Map<string, number>();\n for (const [index, item] of items.entries()) {\n const itemPath = `${path}[${index}]`;\n const normalized = normalizeAssistantWorkflowId(item.id);\n if (!normalized) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${itemPath}.id`, `Assistant workflow ${kind} id is required.`);\n continue;\n }\n if (normalized !== item.id) {\n addDiagnostic(diagnostics, \"error\", \"unnormalized_id\", `${itemPath}.id`, `Assistant workflow ${kind} id must already be normalized: ${item.id}.`);\n }\n const firstIndex = seen.get(normalized);\n if (firstIndex !== undefined) {\n addDiagnostic(diagnostics, \"error\", \"duplicate_id\", `${itemPath}.id`, `Duplicate assistant workflow ${kind} id: ${normalized}; first seen at ${path}[${firstIndex}].`);\n } else {\n seen.set(normalized, index);\n }\n if (!item.description.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_description\", `${itemPath}.description`, `Assistant workflow ${kind} ${normalized} description is required.`);\n }\n }\n}\n\nfunction validateToolCapabilities(\n tools: readonly AssistantWorkflowToolCapabilityDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const seen = new Map<string, number>();\n for (const [index, tool] of tools.entries()) {\n const path = `tools[${index}]`;\n const normalized = normalizeAssistantWorkflowId(tool.name);\n if (!normalized) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${path}.name`, \"Assistant workflow tool capability name is required.\");\n continue;\n }\n if (normalized !== tool.name) {\n addDiagnostic(diagnostics, \"error\", \"unnormalized_id\", `${path}.name`, `Assistant workflow tool capability name must already be normalized: ${tool.name}.`);\n }\n const firstIndex = seen.get(normalized);\n if (firstIndex !== undefined) {\n addDiagnostic(diagnostics, \"error\", \"duplicate_id\", `${path}.name`, `Duplicate assistant workflow tool capability: ${normalized}; first seen at tools[${firstIndex}].`);\n } else {\n seen.set(normalized, index);\n }\n if (!tool.outputKinds.length) {\n addDiagnostic(diagnostics, \"error\", \"missing_tool_output_kinds\", `${path}.outputKinds`, `Assistant workflow tool capability ${normalized} must define at least one output kind.`);\n }\n }\n}\n\nfunction validateToolBindings(\n bindings: readonly AssistantWorkflowToolBindingDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const seen = new Map<string, number>();\n for (const [index, binding] of bindings.entries()) {\n const path = `toolBindings[${index}]`;\n const normalized = normalizeAssistantWorkflowId(binding.name);\n if (!normalized) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${path}.name`, \"Assistant workflow tool binding name is required.\");\n continue;\n }\n if (normalized !== binding.name) {\n addDiagnostic(diagnostics, \"error\", \"unnormalized_id\", `${path}.name`, `Assistant workflow tool binding name must already be normalized: ${binding.name}.`);\n }\n const firstIndex = seen.get(normalized);\n if (firstIndex !== undefined) {\n addDiagnostic(diagnostics, \"error\", \"duplicate_id\", `${path}.name`, `Duplicate assistant workflow tool binding: ${normalized}; first seen at toolBindings[${firstIndex}].`);\n } else {\n seen.set(normalized, index);\n }\n validateToolBindingTarget(binding, path, diagnostics);\n }\n}\n\nfunction validateToolBindingTarget(\n binding: AssistantWorkflowToolBindingDefinition,\n path: string,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n switch (binding.provider) {\n case \"local-function\":\n validateRequiredField(binding.handlerId, `${path}.handlerId`, binding.name, \"handlerId\", diagnostics);\n return;\n case \"http\":\n validateRequiredField(binding.path, `${path}.path`, binding.name, \"path\", diagnostics);\n if (binding.method !== undefined && binding.method !== binding.method.toUpperCase()) {\n addDiagnostic(diagnostics, \"error\", \"invalid_http_method\", `${path}.method`, `Assistant workflow tool binding ${binding.name} HTTP method must be uppercase.`);\n }\n return;\n case \"openai-hosted\":\n validateRequiredField(binding.hostedToolType, `${path}.hostedToolType`, binding.name, \"hostedToolType\", diagnostics);\n return;\n case \"mcp\":\n validateRequiredField(binding.serverId, `${path}.serverId`, binding.name, \"serverId\", diagnostics);\n validateRequiredField(binding.toolName, `${path}.toolName`, binding.name, \"toolName\", diagnostics);\n return;\n case \"repl\":\n validateRequiredField(binding.runtimeId, `${path}.runtimeId`, binding.name, \"runtimeId\", diagnostics);\n if (!binding.functionName?.trim().length && !binding.commandTemplate?.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_repl_target\", path, `Assistant workflow tool binding ${binding.name} must define functionName or commandTemplate.`);\n }\n return;\n }\n}\n\nfunction validateRequiredField(\n value: string,\n path: string,\n toolName: string,\n fieldName: string,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n if (!value.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_binding_field\", path, `Assistant workflow tool binding ${toolName} ${fieldName} is required.`);\n }\n}\n\nfunction validateMemorySlots(\n slots: readonly AssistantWorkflowMemorySlotDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n validateVocabulary(\"memory slot\", \"memorySlots\", slots, diagnostics);\n}\n\nfunction validatePlanningSteps(\n steps: readonly AssistantWorkflowPlanningStepDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n validateVocabulary(\"planning step\", \"planningSteps\", steps, diagnostics);\n}\n\nfunction validateClarificationRules(\n rules: readonly AssistantWorkflowClarificationRuleDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n validateVocabulary(\"clarification rule\", \"clarificationRules\", rules, diagnostics);\n for (const [index, rule] of rules.entries()) {\n if (\n rule.condition === \"low_confidence\" &&\n rule.confidenceBelow !== undefined &&\n (!Number.isFinite(rule.confidenceBelow) || rule.confidenceBelow < 0 || rule.confidenceBelow > 1)\n ) {\n addDiagnostic(diagnostics, \"error\", \"invalid_confidence_threshold\", `clarificationRules[${index}].confidenceBelow`, `Assistant workflow clarification rule ${rule.id} confidenceBelow must be between 0 and 1.`);\n }\n }\n}\n\nfunction validateDirectRoutes(\n routes: readonly AssistantWorkflowDirectRouteDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n validateVocabulary(\"direct route\", \"directRoutes\", routes, diagnostics);\n for (const [routeIndex, route] of routes.entries()) {\n validateVocabulary(\n `direct route ${route.id} strategy`,\n `directRoutes[${routeIndex}].strategies`,\n route.strategies ?? [],\n diagnostics,\n );\n }\n}\n\nfunction validateReferences(\n workflow: AssistantWorkflowDefinition<string, string, string, string>,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const toolCapabilities = new Map((workflow.tools ?? []).map((tool) => [tool.name, tool] as const));\n const toolBindings = new Map((workflow.toolBindings ?? []).map((binding) => [binding.name, binding] as const));\n const toolNames = new Set(toolCapabilities.keys());\n const presentationIds = new Set((workflow.presentations ?? []).map((presentation) => presentation.id));\n const subintentIds = new Set((workflow.subintents ?? []).map((subintent) => subintent.id));\n const memorySlotIds = new Set((workflow.memorySlots ?? []).map((slot) => slot.id));\n const planningStepIds = new Set((workflow.planningSteps ?? []).map((step) => step.id));\n const clarificationRuleIds = new Set((workflow.clarificationRules ?? []).map((rule) => rule.id));\n\n for (const [index, binding] of (workflow.toolBindings ?? []).entries()) {\n const capability = toolCapabilities.get(binding.name);\n if (toolCapabilities.size > 0 && !capability) {\n addDiagnostic(diagnostics, \"error\", \"binding_without_capability\", `toolBindings[${index}].name`, `Assistant workflow tool binding references unknown tool capability: ${binding.name}.`);\n }\n if (capability && capability.provider !== binding.provider) {\n addDiagnostic(diagnostics, \"error\", \"tool_provider_mismatch\", `toolBindings[${index}].provider`, `Assistant workflow tool binding ${binding.name} provider ${binding.provider} does not match capability provider ${capability.provider}.`);\n }\n }\n for (const [index, tool] of (workflow.tools ?? []).entries()) {\n if (!toolBindings.has(tool.name)) {\n addDiagnostic(diagnostics, \"warning\", \"unbound_tool_capability\", `tools[${index}].name`, `Assistant workflow tool capability ${tool.name} has no binding.`);\n }\n }\n\n for (const [index, step] of (workflow.planningSteps ?? []).entries()) {\n for (const toolName of [...(step.toolHints ?? []), ...(step.requiredToolHints ?? [])]) {\n if (toolNames.size > 0 && !toolNames.has(toolName)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_tool_capability\", `planningSteps[${index}].toolHints`, `Assistant workflow planning step ${step.id} references unknown tool capability: ${toolName}.`);\n }\n }\n for (const slotId of [...(step.readsMemory ?? []), ...(step.writesMemory ?? [])]) {\n if (memorySlotIds.size > 0 && !memorySlotIds.has(slotId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_memory_slot\", `planningSteps[${index}].readsMemory`, `Assistant workflow planning step ${step.id} references unknown memory slot: ${slotId}.`);\n }\n }\n }\n\n for (const [index, rule] of (workflow.clarificationRules ?? []).entries()) {\n for (const slotId of [...(rule.readsMemory ?? []), ...(rule.writesMemory ?? [])]) {\n if (memorySlotIds.size > 0 && !memorySlotIds.has(slotId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_memory_slot\", `clarificationRules[${index}].readsMemory`, `Assistant workflow clarification rule ${rule.id} references unknown memory slot: ${slotId}.`);\n }\n }\n }\n\n for (const [index, intent] of workflow.intents.entries()) {\n validateIntentToolSelectionProfiles(intent, index, toolNames, diagnostics);\n validateIntentPlanningStepProfiles(intent, index, planningStepIds, toolNames, subintentIds, presentationIds, diagnostics);\n if (intent.defaultPresentation && !presentationIds.has(intent.defaultPresentation)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_presentation\", `intents[${index}].defaultPresentation`, `Assistant workflow intent ${intent.id} references unknown presentation: ${intent.defaultPresentation}.`);\n }\n for (const toolName of [...(intent.toolHints ?? []), ...(intent.requiredToolHints ?? [])]) {\n if (toolNames.size > 0 && !toolNames.has(toolName)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_tool_capability\", `intents[${index}].toolHints`, `Assistant workflow intent ${intent.id} references unknown tool capability: ${toolName}.`);\n }\n }\n for (const slotId of [\n ...(intent.memoryPolicy?.read ?? []),\n ...(intent.memoryPolicy?.write ?? []),\n ...(intent.memoryPolicy?.inject ?? []),\n ]) {\n if (memorySlotIds.size > 0 && !memorySlotIds.has(slotId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_memory_slot\", `intents[${index}].memoryPolicy`, `Assistant workflow intent ${intent.id} references unknown memory slot: ${slotId}.`);\n }\n }\n for (const stepId of intent.planningSteps ?? []) {\n if (planningStepIds.size > 0 && !planningStepIds.has(stepId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_planning_step\", `intents[${index}].planningSteps`, `Assistant workflow intent ${intent.id} references unknown planning step: ${stepId}.`);\n }\n }\n for (const ruleId of intent.clarificationRules ?? []) {\n if (clarificationRuleIds.size > 0 && !clarificationRuleIds.has(ruleId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_clarification_rule\", `intents[${index}].clarificationRules`, `Assistant workflow intent ${intent.id} references unknown clarification rule: ${ruleId}.`);\n }\n }\n }\n}\n\nfunction validateIntentPlanningStepProfiles(\n intent: AssistantWorkflowDefinition<string, string, string, string>[\"intents\"][number],\n intentIndex: number,\n planningStepIds: ReadonlySet<string>,\n toolNames: ReadonlySet<string>,\n subintentIds: ReadonlySet<string>,\n presentationIds: ReadonlySet<string>,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const seen = new Map<string, number>();\n for (const [profileIndex, profile] of (intent.planningStepProfiles ?? []).entries()) {\n const profilePath = `intents[${intentIndex}].planningStepProfiles[${profileIndex}]`;\n const normalized = normalizeAssistantWorkflowId(profile.id);\n if (!normalized) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${profilePath}.id`, `Assistant workflow intent ${intent.id} planning step profile id is required.`);\n continue;\n }\n if (normalized !== profile.id) {\n addDiagnostic(diagnostics, \"error\", \"unnormalized_id\", `${profilePath}.id`, `Assistant workflow intent ${intent.id} planning step profile id must already be normalized: ${profile.id}.`);\n }\n const firstIndex = seen.get(normalized);\n if (firstIndex !== undefined) {\n addDiagnostic(diagnostics, \"error\", \"duplicate_id\", `${profilePath}.id`, `Duplicate assistant workflow intent ${intent.id} planning step profile: ${normalized}; first seen at intents[${intentIndex}].planningStepProfiles[${firstIndex}].`);\n } else {\n seen.set(normalized, profileIndex);\n }\n if (!profile.description.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_description\", `${profilePath}.description`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} description is required.`);\n }\n if (!profile.planningSteps.length) {\n addDiagnostic(diagnostics, \"error\", \"unknown_planning_step\", `${profilePath}.planningSteps`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} must define at least one planning step.`);\n }\n for (const stepId of profile.planningSteps) {\n if (planningStepIds.size > 0 && !planningStepIds.has(stepId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_planning_step\", `${profilePath}.planningSteps`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} references unknown planning step: ${stepId}.`);\n }\n }\n for (const toolName of profile.condition?.requiredTools ?? []) {\n if (toolNames.size > 0 && !toolNames.has(toolName)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_tool_capability\", `${profilePath}.condition.requiredTools`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} references unknown required tool: ${toolName}.`);\n }\n }\n const condition = profile.condition;\n if (condition?.subintent && subintentIds.size > 0 && !subintentIds.has(condition.subintent)) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${profilePath}.condition.subintent`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} references unknown subintent: ${condition.subintent}.`);\n }\n if (condition?.presentation && presentationIds.size > 0 && !presentationIds.has(condition.presentation)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_presentation\", `${profilePath}.condition.presentation`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} references unknown presentation: ${condition.presentation}.`);\n }\n validatePlanningStepProfileCondition(intent.id, profile, profilePath, diagnostics);\n }\n}\n\nfunction validateIntentToolSelectionProfiles(\n intent: AssistantWorkflowDefinition<string, string, string, string>[\"intents\"][number],\n intentIndex: number,\n toolNames: ReadonlySet<string>,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const seen = new Map<string, number>();\n for (const [profileIndex, profile] of (intent.toolSelectionProfiles ?? []).entries()) {\n const profilePath = `intents[${intentIndex}].toolSelectionProfiles[${profileIndex}]`;\n const normalized = normalizeAssistantWorkflowId(profile.id);\n if (!normalized) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${profilePath}.id`, `Assistant workflow intent ${intent.id} tool selection profile id is required.`);\n continue;\n }\n if (normalized !== profile.id) {\n addDiagnostic(diagnostics, \"error\", \"unnormalized_id\", `${profilePath}.id`, `Assistant workflow intent ${intent.id} tool selection profile id must already be normalized: ${profile.id}.`);\n }\n const firstIndex = seen.get(normalized);\n if (firstIndex !== undefined) {\n addDiagnostic(diagnostics, \"error\", \"duplicate_id\", `${profilePath}.id`, `Duplicate assistant workflow intent ${intent.id} tool selection profile: ${normalized}; first seen at intents[${intentIndex}].toolSelectionProfiles[${firstIndex}].`);\n } else {\n seen.set(normalized, profileIndex);\n }\n if (!profile.description.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_description\", `${profilePath}.description`, `Assistant workflow intent ${intent.id} tool selection profile ${normalized} description is required.`);\n }\n if (!profile.toolHints.length) {\n addDiagnostic(diagnostics, \"error\", \"missing_tool_hints\", `${profilePath}.toolHints`, `Assistant workflow intent ${intent.id} tool selection profile ${normalized} must define at least one tool hint.`);\n }\n for (const toolName of profile.toolHints) {\n if (toolNames.size > 0 && !toolNames.has(toolName)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_tool_capability\", `${profilePath}.toolHints`, `Assistant workflow intent ${intent.id} tool selection profile ${normalized} references unknown tool capability: ${toolName}.`);\n }\n }\n validateToolSelectionProfileCondition(intent.id, profile, profilePath, diagnostics);\n }\n}\n\nfunction validatePlanningStepProfileCondition(\n intentId: string,\n profile: NonNullable<AssistantWorkflowDefinition<string, string, string, string>[\"intents\"][number][\"planningStepProfiles\"]>[number],\n profilePath: string,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const { minConfidence, maxConfidence, subintent, presentation, timeWindowHint, requiredTools } = profile.condition ?? {};\n if (minConfidence !== undefined && (!Number.isFinite(minConfidence) || minConfidence < 0 || minConfidence > 1)) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.minConfidence`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} minConfidence must be between 0 and 1.`);\n }\n if (maxConfidence !== undefined && (!Number.isFinite(maxConfidence) || maxConfidence < 0 || maxConfidence > 1)) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.maxConfidence`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} maxConfidence must be between 0 and 1.`);\n }\n if (minConfidence !== undefined && maxConfidence !== undefined && minConfidence > maxConfidence) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} minConfidence must not exceed maxConfidence.`);\n }\n if (subintent !== undefined && !subintent.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.subintent`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} subintent must not be empty.`);\n }\n if (presentation !== undefined && !presentation.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.presentation`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} presentation must not be empty.`);\n }\n if (timeWindowHint !== undefined && !timeWindowHint.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.timeWindowHint`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} timeWindowHint must not be empty.`);\n }\n if (requiredTools !== undefined && requiredTools.length === 0) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.requiredTools`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} requiredTools must not be empty.`);\n }\n}\n\nfunction validateToolSelectionProfileCondition(\n intentId: string,\n profile: NonNullable<AssistantWorkflowDefinition<string, string, string, string>[\"intents\"][number][\"toolSelectionProfiles\"]>[number],\n profilePath: string,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const { minHop, maxHop, selectedReason } = profile.condition ?? {};\n if (minHop !== undefined && (!Number.isInteger(minHop) || minHop < 0)) {\n addDiagnostic(diagnostics, \"error\", \"invalid_tool_selection_profile_condition\", `${profilePath}.condition.minHop`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} minHop must be a non-negative integer.`);\n }\n if (maxHop !== undefined && (!Number.isInteger(maxHop) || maxHop < 0)) {\n addDiagnostic(diagnostics, \"error\", \"invalid_tool_selection_profile_condition\", `${profilePath}.condition.maxHop`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} maxHop must be a non-negative integer.`);\n }\n if (minHop !== undefined && maxHop !== undefined && minHop > maxHop) {\n addDiagnostic(diagnostics, \"error\", \"invalid_tool_selection_profile_condition\", `${profilePath}.condition`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} minHop must not exceed maxHop.`);\n }\n if (selectedReason !== undefined && !selectedReason.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"invalid_tool_selection_profile_condition\", `${profilePath}.condition.selectedReason`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} selectedReason must not be empty.`);\n }\n}\n\nfunction addDiagnostic(\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n severity: AssistantWorkflowDefinitionDiagnosticSeverity,\n code: AssistantWorkflowDefinitionDiagnosticCode,\n path: string,\n message: string,\n): void {\n diagnostics.push({ severity, code, path, message });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"definition-diagnostics.js","sourceRoot":"","sources":["../src/definition-diagnostics.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n normalizeAssistantWorkflowId,\n type AssistantWorkflowClarificationRuleDefinition,\n type AssistantWorkflowDefinition,\n type AssistantWorkflowDirectRouteDefinition,\n type AssistantWorkflowMemorySlotDefinition,\n type AssistantWorkflowPlanningStepDefinition,\n type AssistantWorkflowToolBindingDefinition,\n type AssistantWorkflowToolCapabilityDefinition,\n type AssistantWorkflowVocabularyItem,\n} from \"./definition.js\";\n\nexport type AssistantWorkflowDefinitionDiagnosticSeverity = \"error\" | \"warning\";\n\nexport type AssistantWorkflowDefinitionDiagnosticCode =\n | \"missing_workflow_id\"\n | \"invalid_workflow_version\"\n | \"missing_intents\"\n | \"missing_id\"\n | \"unnormalized_id\"\n | \"duplicate_id\"\n | \"missing_description\"\n | \"missing_tool_hints\"\n | \"missing_tool_output_kinds\"\n | \"missing_binding_field\"\n | \"invalid_http_method\"\n | \"invalid_tool_selection_profile_condition\"\n | \"invalid_planning_step_profile_condition\"\n | \"missing_repl_target\"\n | \"unknown_tool_capability\"\n | \"tool_provider_mismatch\"\n | \"unknown_presentation\"\n | \"unknown_memory_slot\"\n | \"unknown_planning_step\"\n | \"unknown_clarification_rule\"\n | \"invalid_confidence_threshold\"\n | \"unbound_tool_capability\"\n | \"binding_without_capability\";\n\nexport type AssistantWorkflowDefinitionDiagnostic = {\n severity: AssistantWorkflowDefinitionDiagnosticSeverity;\n code: AssistantWorkflowDefinitionDiagnosticCode;\n path: string;\n message: string;\n};\n\nexport type AssistantWorkflowDefinitionValidationResult = {\n valid: boolean;\n errorCount: number;\n warningCount: number;\n diagnostics: AssistantWorkflowDefinitionDiagnostic[];\n};\n\nexport function validateAssistantWorkflowDefinition(\n workflow: AssistantWorkflowDefinition<string, string, string, string>,\n): AssistantWorkflowDefinitionValidationResult {\n const diagnostics: AssistantWorkflowDefinitionDiagnostic[] = [];\n\n validateHeader(workflow, diagnostics);\n validateVocabulary(\"intent\", \"intents\", workflow.intents, diagnostics);\n validateVocabulary(\"subintent\", \"subintents\", workflow.subintents ?? [], diagnostics);\n validateVocabulary(\"presentation\", \"presentations\", workflow.presentations ?? [], diagnostics);\n validateVocabulary(\"derived transform\", \"derivedTransforms\", workflow.derivedTransforms ?? [], diagnostics);\n validateToolCapabilities(workflow.tools ?? [], diagnostics);\n validateToolBindings(workflow.toolBindings ?? [], diagnostics);\n validateMemorySlots(workflow.memorySlots ?? [], diagnostics);\n validatePlanningSteps(workflow.planningSteps ?? [], diagnostics);\n validateClarificationRules(workflow.clarificationRules ?? [], diagnostics);\n validateDirectRoutes(workflow.directRoutes ?? [], diagnostics);\n validateReferences(workflow, diagnostics);\n\n const errorCount = diagnostics.filter((diagnostic) => diagnostic.severity === \"error\").length;\n const warningCount = diagnostics.filter((diagnostic) => diagnostic.severity === \"warning\").length;\n return {\n valid: errorCount === 0,\n errorCount,\n warningCount,\n diagnostics,\n };\n}\n\nfunction validateHeader(\n workflow: AssistantWorkflowDefinition<string, string, string, string>,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n if (!workflow.id.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_workflow_id\", \"id\", \"Assistant workflow id is required.\");\n }\n if (!Number.isInteger(workflow.version) || workflow.version < 1) {\n addDiagnostic(diagnostics, \"error\", \"invalid_workflow_version\", \"version\", \"Assistant workflow version must be a positive integer.\");\n }\n if (!workflow.intents.length) {\n addDiagnostic(diagnostics, \"error\", \"missing_intents\", \"intents\", \"Assistant workflow must define at least one intent.\");\n }\n}\n\nfunction validateVocabulary(\n kind: string,\n path: string,\n items: readonly AssistantWorkflowVocabularyItem[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const seen = new Map<string, number>();\n for (const [index, item] of items.entries()) {\n const itemPath = `${path}[${index}]`;\n const normalized = normalizeAssistantWorkflowId(item.id);\n if (!normalized) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${itemPath}.id`, `Assistant workflow ${kind} id is required.`);\n continue;\n }\n if (normalized !== item.id) {\n addDiagnostic(diagnostics, \"error\", \"unnormalized_id\", `${itemPath}.id`, `Assistant workflow ${kind} id must already be normalized: ${item.id}.`);\n }\n const firstIndex = seen.get(normalized);\n if (firstIndex !== undefined) {\n addDiagnostic(diagnostics, \"error\", \"duplicate_id\", `${itemPath}.id`, `Duplicate assistant workflow ${kind} id: ${normalized}; first seen at ${path}[${firstIndex}].`);\n } else {\n seen.set(normalized, index);\n }\n if (!item.description.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_description\", `${itemPath}.description`, `Assistant workflow ${kind} ${normalized} description is required.`);\n }\n }\n}\n\nfunction validateToolCapabilities(\n tools: readonly AssistantWorkflowToolCapabilityDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const seen = new Map<string, number>();\n for (const [index, tool] of tools.entries()) {\n const path = `tools[${index}]`;\n const normalized = normalizeAssistantWorkflowId(tool.name);\n if (!normalized) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${path}.name`, \"Assistant workflow tool capability name is required.\");\n continue;\n }\n if (normalized !== tool.name) {\n addDiagnostic(diagnostics, \"error\", \"unnormalized_id\", `${path}.name`, `Assistant workflow tool capability name must already be normalized: ${tool.name}.`);\n }\n const firstIndex = seen.get(normalized);\n if (firstIndex !== undefined) {\n addDiagnostic(diagnostics, \"error\", \"duplicate_id\", `${path}.name`, `Duplicate assistant workflow tool capability: ${normalized}; first seen at tools[${firstIndex}].`);\n } else {\n seen.set(normalized, index);\n }\n if (!tool.outputKinds.length) {\n addDiagnostic(diagnostics, \"error\", \"missing_tool_output_kinds\", `${path}.outputKinds`, `Assistant workflow tool capability ${normalized} must define at least one output kind.`);\n }\n }\n}\n\nfunction validateToolBindings(\n bindings: readonly AssistantWorkflowToolBindingDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const seen = new Map<string, number>();\n for (const [index, binding] of bindings.entries()) {\n const path = `toolBindings[${index}]`;\n const normalized = normalizeAssistantWorkflowId(binding.name);\n if (!normalized) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${path}.name`, \"Assistant workflow tool binding name is required.\");\n continue;\n }\n if (normalized !== binding.name) {\n addDiagnostic(diagnostics, \"error\", \"unnormalized_id\", `${path}.name`, `Assistant workflow tool binding name must already be normalized: ${binding.name}.`);\n }\n const firstIndex = seen.get(normalized);\n if (firstIndex !== undefined) {\n addDiagnostic(diagnostics, \"error\", \"duplicate_id\", `${path}.name`, `Duplicate assistant workflow tool binding: ${normalized}; first seen at toolBindings[${firstIndex}].`);\n } else {\n seen.set(normalized, index);\n }\n validateToolBindingTarget(binding, path, diagnostics);\n }\n}\n\nfunction validateToolBindingTarget(\n binding: AssistantWorkflowToolBindingDefinition,\n path: string,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n switch (binding.provider) {\n case \"local-function\":\n validateRequiredField(binding.handlerId, `${path}.handlerId`, binding.name, \"handlerId\", diagnostics);\n return;\n case \"http\":\n validateRequiredField(binding.path, `${path}.path`, binding.name, \"path\", diagnostics);\n if (binding.method !== undefined && binding.method !== binding.method.toUpperCase()) {\n addDiagnostic(diagnostics, \"error\", \"invalid_http_method\", `${path}.method`, `Assistant workflow tool binding ${binding.name} HTTP method must be uppercase.`);\n }\n return;\n case \"openai-hosted\":\n validateRequiredField(binding.hostedToolType, `${path}.hostedToolType`, binding.name, \"hostedToolType\", diagnostics);\n return;\n case \"mcp\":\n validateRequiredField(binding.serverId, `${path}.serverId`, binding.name, \"serverId\", diagnostics);\n validateRequiredField(binding.toolName, `${path}.toolName`, binding.name, \"toolName\", diagnostics);\n return;\n case \"repl\":\n validateRequiredField(binding.runtimeId, `${path}.runtimeId`, binding.name, \"runtimeId\", diagnostics);\n if (!binding.functionName?.trim().length && !binding.commandTemplate?.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_repl_target\", path, `Assistant workflow tool binding ${binding.name} must define functionName or commandTemplate.`);\n }\n return;\n }\n}\n\nfunction validateRequiredField(\n value: string,\n path: string,\n toolName: string,\n fieldName: string,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n if (!value.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_binding_field\", path, `Assistant workflow tool binding ${toolName} ${fieldName} is required.`);\n }\n}\n\nfunction validateMemorySlots(\n slots: readonly AssistantWorkflowMemorySlotDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n validateVocabulary(\"memory slot\", \"memorySlots\", slots, diagnostics);\n}\n\nfunction validatePlanningSteps(\n steps: readonly AssistantWorkflowPlanningStepDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n validateVocabulary(\"planning step\", \"planningSteps\", steps, diagnostics);\n}\n\nfunction validateClarificationRules(\n rules: readonly AssistantWorkflowClarificationRuleDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n validateVocabulary(\"clarification rule\", \"clarificationRules\", rules, diagnostics);\n for (const [index, rule] of rules.entries()) {\n if (\n rule.condition === \"low_confidence\" &&\n rule.confidenceBelow !== undefined &&\n (!Number.isFinite(rule.confidenceBelow) || rule.confidenceBelow < 0 || rule.confidenceBelow > 1)\n ) {\n addDiagnostic(diagnostics, \"error\", \"invalid_confidence_threshold\", `clarificationRules[${index}].confidenceBelow`, `Assistant workflow clarification rule ${rule.id} confidenceBelow must be between 0 and 1.`);\n }\n }\n}\n\nfunction validateDirectRoutes(\n routes: readonly AssistantWorkflowDirectRouteDefinition[],\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n validateVocabulary(\"direct route\", \"directRoutes\", routes, diagnostics);\n for (const [routeIndex, route] of routes.entries()) {\n validateVocabulary(\n `direct route ${route.id} strategy`,\n `directRoutes[${routeIndex}].strategies`,\n route.strategies ?? [],\n diagnostics,\n );\n }\n}\n\nfunction validateReferences(\n workflow: AssistantWorkflowDefinition<string, string, string, string>,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const toolCapabilities = new Map((workflow.tools ?? []).map((tool) => [tool.name, tool] as const));\n const toolBindings = new Map((workflow.toolBindings ?? []).map((binding) => [binding.name, binding] as const));\n const toolNames = new Set(toolCapabilities.keys());\n const presentationIds = new Set((workflow.presentations ?? []).map((presentation) => presentation.id));\n const subintentIds = new Set((workflow.subintents ?? []).map((subintent) => subintent.id));\n const memorySlotIds = new Set((workflow.memorySlots ?? []).map((slot) => slot.id));\n const planningStepIds = new Set((workflow.planningSteps ?? []).map((step) => step.id));\n const clarificationRuleIds = new Set((workflow.clarificationRules ?? []).map((rule) => rule.id));\n\n for (const [index, binding] of (workflow.toolBindings ?? []).entries()) {\n const capability = toolCapabilities.get(binding.name);\n if (toolCapabilities.size > 0 && !capability) {\n addDiagnostic(diagnostics, \"error\", \"binding_without_capability\", `toolBindings[${index}].name`, `Assistant workflow tool binding references unknown tool capability: ${binding.name}.`);\n }\n if (capability && capability.provider !== binding.provider) {\n addDiagnostic(diagnostics, \"error\", \"tool_provider_mismatch\", `toolBindings[${index}].provider`, `Assistant workflow tool binding ${binding.name} provider ${binding.provider} does not match capability provider ${capability.provider}.`);\n }\n }\n for (const [index, tool] of (workflow.tools ?? []).entries()) {\n if (!toolBindings.has(tool.name)) {\n addDiagnostic(diagnostics, \"warning\", \"unbound_tool_capability\", `tools[${index}].name`, `Assistant workflow tool capability ${tool.name} has no binding.`);\n }\n }\n\n for (const [index, step] of (workflow.planningSteps ?? []).entries()) {\n for (const toolName of [...(step.toolHints ?? []), ...(step.requiredToolHints ?? [])]) {\n if (toolNames.size > 0 && !toolNames.has(toolName)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_tool_capability\", `planningSteps[${index}].toolHints`, `Assistant workflow planning step ${step.id} references unknown tool capability: ${toolName}.`);\n }\n }\n for (const slotId of [...(step.readsMemory ?? []), ...(step.writesMemory ?? [])]) {\n if (memorySlotIds.size > 0 && !memorySlotIds.has(slotId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_memory_slot\", `planningSteps[${index}].readsMemory`, `Assistant workflow planning step ${step.id} references unknown memory slot: ${slotId}.`);\n }\n }\n }\n\n for (const [index, rule] of (workflow.clarificationRules ?? []).entries()) {\n for (const slotId of [...(rule.readsMemory ?? []), ...(rule.writesMemory ?? [])]) {\n if (memorySlotIds.size > 0 && !memorySlotIds.has(slotId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_memory_slot\", `clarificationRules[${index}].readsMemory`, `Assistant workflow clarification rule ${rule.id} references unknown memory slot: ${slotId}.`);\n }\n }\n }\n\n for (const [index, intent] of workflow.intents.entries()) {\n validateIntentToolSelectionProfiles(intent, index, toolNames, subintentIds, diagnostics);\n validateIntentPlanningStepProfiles(intent, index, planningStepIds, toolNames, subintentIds, presentationIds, diagnostics);\n if (intent.defaultPresentation && !presentationIds.has(intent.defaultPresentation)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_presentation\", `intents[${index}].defaultPresentation`, `Assistant workflow intent ${intent.id} references unknown presentation: ${intent.defaultPresentation}.`);\n }\n for (const toolName of [...(intent.toolHints ?? []), ...(intent.requiredToolHints ?? [])]) {\n if (toolNames.size > 0 && !toolNames.has(toolName)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_tool_capability\", `intents[${index}].toolHints`, `Assistant workflow intent ${intent.id} references unknown tool capability: ${toolName}.`);\n }\n }\n for (const slotId of [\n ...(intent.memoryPolicy?.read ?? []),\n ...(intent.memoryPolicy?.write ?? []),\n ...(intent.memoryPolicy?.inject ?? []),\n ]) {\n if (memorySlotIds.size > 0 && !memorySlotIds.has(slotId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_memory_slot\", `intents[${index}].memoryPolicy`, `Assistant workflow intent ${intent.id} references unknown memory slot: ${slotId}.`);\n }\n }\n for (const stepId of intent.planningSteps ?? []) {\n if (planningStepIds.size > 0 && !planningStepIds.has(stepId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_planning_step\", `intents[${index}].planningSteps`, `Assistant workflow intent ${intent.id} references unknown planning step: ${stepId}.`);\n }\n }\n for (const ruleId of intent.clarificationRules ?? []) {\n if (clarificationRuleIds.size > 0 && !clarificationRuleIds.has(ruleId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_clarification_rule\", `intents[${index}].clarificationRules`, `Assistant workflow intent ${intent.id} references unknown clarification rule: ${ruleId}.`);\n }\n }\n }\n}\n\nfunction validateIntentPlanningStepProfiles(\n intent: AssistantWorkflowDefinition<string, string, string, string>[\"intents\"][number],\n intentIndex: number,\n planningStepIds: ReadonlySet<string>,\n toolNames: ReadonlySet<string>,\n subintentIds: ReadonlySet<string>,\n presentationIds: ReadonlySet<string>,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const seen = new Map<string, number>();\n for (const [profileIndex, profile] of (intent.planningStepProfiles ?? []).entries()) {\n const profilePath = `intents[${intentIndex}].planningStepProfiles[${profileIndex}]`;\n const normalized = normalizeAssistantWorkflowId(profile.id);\n if (!normalized) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${profilePath}.id`, `Assistant workflow intent ${intent.id} planning step profile id is required.`);\n continue;\n }\n if (normalized !== profile.id) {\n addDiagnostic(diagnostics, \"error\", \"unnormalized_id\", `${profilePath}.id`, `Assistant workflow intent ${intent.id} planning step profile id must already be normalized: ${profile.id}.`);\n }\n const firstIndex = seen.get(normalized);\n if (firstIndex !== undefined) {\n addDiagnostic(diagnostics, \"error\", \"duplicate_id\", `${profilePath}.id`, `Duplicate assistant workflow intent ${intent.id} planning step profile: ${normalized}; first seen at intents[${intentIndex}].planningStepProfiles[${firstIndex}].`);\n } else {\n seen.set(normalized, profileIndex);\n }\n if (!profile.description.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_description\", `${profilePath}.description`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} description is required.`);\n }\n if (!profile.planningSteps.length) {\n addDiagnostic(diagnostics, \"error\", \"unknown_planning_step\", `${profilePath}.planningSteps`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} must define at least one planning step.`);\n }\n for (const stepId of profile.planningSteps) {\n if (planningStepIds.size > 0 && !planningStepIds.has(stepId)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_planning_step\", `${profilePath}.planningSteps`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} references unknown planning step: ${stepId}.`);\n }\n }\n for (const toolName of profile.condition?.requiredTools ?? []) {\n if (toolNames.size > 0 && !toolNames.has(toolName)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_tool_capability\", `${profilePath}.condition.requiredTools`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} references unknown required tool: ${toolName}.`);\n }\n }\n const condition = profile.condition;\n if (condition?.subintent && subintentIds.size > 0 && !subintentIds.has(condition.subintent)) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${profilePath}.condition.subintent`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} references unknown subintent: ${condition.subintent}.`);\n }\n if (condition?.presentation && presentationIds.size > 0 && !presentationIds.has(condition.presentation)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_presentation\", `${profilePath}.condition.presentation`, `Assistant workflow intent ${intent.id} planning step profile ${normalized} references unknown presentation: ${condition.presentation}.`);\n }\n validatePlanningStepProfileCondition(intent.id, profile, profilePath, diagnostics);\n }\n}\n\nfunction validateIntentToolSelectionProfiles(\n intent: AssistantWorkflowDefinition<string, string, string, string>[\"intents\"][number],\n intentIndex: number,\n toolNames: ReadonlySet<string>,\n subintentIds: ReadonlySet<string>,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const seen = new Map<string, number>();\n for (const [profileIndex, profile] of (intent.toolSelectionProfiles ?? []).entries()) {\n const profilePath = `intents[${intentIndex}].toolSelectionProfiles[${profileIndex}]`;\n const normalized = normalizeAssistantWorkflowId(profile.id);\n if (!normalized) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${profilePath}.id`, `Assistant workflow intent ${intent.id} tool selection profile id is required.`);\n continue;\n }\n if (normalized !== profile.id) {\n addDiagnostic(diagnostics, \"error\", \"unnormalized_id\", `${profilePath}.id`, `Assistant workflow intent ${intent.id} tool selection profile id must already be normalized: ${profile.id}.`);\n }\n const firstIndex = seen.get(normalized);\n if (firstIndex !== undefined) {\n addDiagnostic(diagnostics, \"error\", \"duplicate_id\", `${profilePath}.id`, `Duplicate assistant workflow intent ${intent.id} tool selection profile: ${normalized}; first seen at intents[${intentIndex}].toolSelectionProfiles[${firstIndex}].`);\n } else {\n seen.set(normalized, profileIndex);\n }\n if (!profile.description.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"missing_description\", `${profilePath}.description`, `Assistant workflow intent ${intent.id} tool selection profile ${normalized} description is required.`);\n }\n if (!profile.toolHints.length) {\n addDiagnostic(diagnostics, \"error\", \"missing_tool_hints\", `${profilePath}.toolHints`, `Assistant workflow intent ${intent.id} tool selection profile ${normalized} must define at least one tool hint.`);\n }\n for (const toolName of profile.toolHints) {\n if (toolNames.size > 0 && !toolNames.has(toolName)) {\n addDiagnostic(diagnostics, \"error\", \"unknown_tool_capability\", `${profilePath}.toolHints`, `Assistant workflow intent ${intent.id} tool selection profile ${normalized} references unknown tool capability: ${toolName}.`);\n }\n }\n validateToolSelectionProfileCondition(intent.id, profile, profilePath, subintentIds, diagnostics);\n }\n}\n\nfunction validatePlanningStepProfileCondition(\n intentId: string,\n profile: NonNullable<AssistantWorkflowDefinition<string, string, string, string>[\"intents\"][number][\"planningStepProfiles\"]>[number],\n profilePath: string,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const { minConfidence, maxConfidence, subintent, presentation, timeWindowHint, requiredTools } = profile.condition ?? {};\n if (minConfidence !== undefined && (!Number.isFinite(minConfidence) || minConfidence < 0 || minConfidence > 1)) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.minConfidence`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} minConfidence must be between 0 and 1.`);\n }\n if (maxConfidence !== undefined && (!Number.isFinite(maxConfidence) || maxConfidence < 0 || maxConfidence > 1)) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.maxConfidence`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} maxConfidence must be between 0 and 1.`);\n }\n if (minConfidence !== undefined && maxConfidence !== undefined && minConfidence > maxConfidence) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} minConfidence must not exceed maxConfidence.`);\n }\n if (subintent !== undefined && !subintent.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.subintent`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} subintent must not be empty.`);\n }\n if (presentation !== undefined && !presentation.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.presentation`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} presentation must not be empty.`);\n }\n if (timeWindowHint !== undefined && !timeWindowHint.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.timeWindowHint`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} timeWindowHint must not be empty.`);\n }\n if (requiredTools !== undefined && requiredTools.length === 0) {\n addDiagnostic(diagnostics, \"error\", \"invalid_planning_step_profile_condition\", `${profilePath}.condition.requiredTools`, `Assistant workflow intent ${intentId} planning step profile ${profile.id} requiredTools must not be empty.`);\n }\n}\n\nfunction validateToolSelectionProfileCondition(\n intentId: string,\n profile: NonNullable<AssistantWorkflowDefinition<string, string, string, string>[\"intents\"][number][\"toolSelectionProfiles\"]>[number],\n profilePath: string,\n subintentIds: ReadonlySet<string>,\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n): void {\n const { minHop, maxHop, selectedReason, subintent } = profile.condition ?? {};\n if (minHop !== undefined && (!Number.isInteger(minHop) || minHop < 0)) {\n addDiagnostic(diagnostics, \"error\", \"invalid_tool_selection_profile_condition\", `${profilePath}.condition.minHop`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} minHop must be a non-negative integer.`);\n }\n if (maxHop !== undefined && (!Number.isInteger(maxHop) || maxHop < 0)) {\n addDiagnostic(diagnostics, \"error\", \"invalid_tool_selection_profile_condition\", `${profilePath}.condition.maxHop`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} maxHop must be a non-negative integer.`);\n }\n if (minHop !== undefined && maxHop !== undefined && minHop > maxHop) {\n addDiagnostic(diagnostics, \"error\", \"invalid_tool_selection_profile_condition\", `${profilePath}.condition`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} minHop must not exceed maxHop.`);\n }\n if (subintent !== undefined && subintent !== null) {\n const normalizedSubintent = subintent.trim();\n if (!normalizedSubintent.length) {\n addDiagnostic(diagnostics, \"error\", \"invalid_tool_selection_profile_condition\", `${profilePath}.condition.subintent`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} subintent must not be empty.`);\n } else if (subintentIds.size > 0 && !subintentIds.has(normalizedSubintent)) {\n addDiagnostic(diagnostics, \"error\", \"missing_id\", `${profilePath}.condition.subintent`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} references unknown subintent: ${normalizedSubintent}.`);\n }\n }\n if (selectedReason !== undefined && !selectedReason.trim().length) {\n addDiagnostic(diagnostics, \"error\", \"invalid_tool_selection_profile_condition\", `${profilePath}.condition.selectedReason`, `Assistant workflow intent ${intentId} tool selection profile ${profile.id} selectedReason must not be empty.`);\n }\n}\n\nfunction addDiagnostic(\n diagnostics: AssistantWorkflowDefinitionDiagnostic[],\n severity: AssistantWorkflowDefinitionDiagnosticSeverity,\n code: AssistantWorkflowDefinitionDiagnosticCode,\n path: string,\n message: string,\n): void {\n diagnostics.push({ severity, code, path, message });\n}\n"]}
|
package/dist/definition.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export type AssistantWorkflowToolSelectionProfileCondition = {
|
|
|
5
5
|
minHop?: number;
|
|
6
6
|
maxHop?: number;
|
|
7
7
|
selectedReason?: string;
|
|
8
|
+
/** `null` explicitly matches classifications without a subintent. */
|
|
9
|
+
subintent?: string | null;
|
|
8
10
|
resolvedScope?: boolean;
|
|
9
11
|
minAttributeCount?: number;
|
|
10
12
|
maxAttributeCount?: number;
|
package/dist/definition.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"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"}
|
package/dist/definition.js
CHANGED
|
@@ -151,7 +151,7 @@ function assertIntentReferences(workflow) {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
for (const [profileIndex, profile] of (intent.toolSelectionProfiles ?? []).entries()) {
|
|
154
|
-
assertToolSelectionProfileCondition(intent.id, profile, toolNames);
|
|
154
|
+
assertToolSelectionProfileCondition(intent.id, profile, toolNames, subintentIds);
|
|
155
155
|
for (const toolName of profile.toolHints) {
|
|
156
156
|
if (toolNames.size > 0 && !toolNames.has(toolName)) {
|
|
157
157
|
throw new Error(`Assistant workflow intent ${intent.id} tool selection profile ${profile.id} references unknown tool capability: ${toolName}.`);
|
|
@@ -265,8 +265,8 @@ function assertUniquePlanningStepProfiles(intent) {
|
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
|
-
function assertToolSelectionProfileCondition(intentId, profile, knownToolNames) {
|
|
269
|
-
const { minHop, maxHop, selectedReason, minAttributeCount, maxAttributeCount, requiredClassifierTools, } = profile.condition ?? {};
|
|
268
|
+
function assertToolSelectionProfileCondition(intentId, profile, knownToolNames, knownSubintentIds) {
|
|
269
|
+
const { minHop, maxHop, selectedReason, subintent, minAttributeCount, maxAttributeCount, requiredClassifierTools, } = profile.condition ?? {};
|
|
270
270
|
if (profile.toolExclusions !== undefined) {
|
|
271
271
|
const normalizedExcludedTools = profile.toolExclusions
|
|
272
272
|
.filter((toolName) => typeof toolName === "string")
|
|
@@ -294,6 +294,15 @@ function assertToolSelectionProfileCondition(intentId, profile, knownToolNames)
|
|
|
294
294
|
if (minHop !== undefined && maxHop !== undefined && minHop > maxHop) {
|
|
295
295
|
throw new Error(`Assistant workflow intent ${intentId} tool selection profile ${profile.id} minHop must not exceed maxHop.`);
|
|
296
296
|
}
|
|
297
|
+
if (subintent !== undefined && subintent !== null) {
|
|
298
|
+
const normalizedSubintent = subintent.trim();
|
|
299
|
+
if (!normalizedSubintent.length) {
|
|
300
|
+
throw new Error(`Assistant workflow intent ${intentId} tool selection profile ${profile.id} subintent must not be empty.`);
|
|
301
|
+
}
|
|
302
|
+
if (knownSubintentIds.size > 0 && !knownSubintentIds.has(normalizedSubintent)) {
|
|
303
|
+
throw new Error(`Assistant workflow intent ${intentId} tool selection profile ${profile.id} references unknown subintent: ${normalizedSubintent}.`);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
297
306
|
if (minAttributeCount !== undefined && (!Number.isInteger(minAttributeCount) || minAttributeCount < 0)) {
|
|
298
307
|
throw new Error(`Assistant workflow intent ${intentId} tool selection profile ${profile.id} minAttributeCount must be a non-negative integer.`);
|
|
299
308
|
}
|