@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.
@@ -14,6 +14,7 @@ export type AssistantWorkflowDecisionInput = {
14
14
  };
15
15
  export type AssistantWorkflowDecision = {
16
16
  intent: string | null;
17
+ subintent: string | null;
17
18
  matchedIntent: boolean;
18
19
  defaultPresentation: string | null;
19
20
  effectivePresentation: string | null;
@@ -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,CAqD3B;AAED,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,yBAAyB,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB;AAED,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACrE,QAAQ,EAAE,OAAO,GAChB,OAAO,CAET"}
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,
@@ -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"]}
@@ -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;
@@ -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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"}
@@ -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
  }