@uns-kit/assistant-workflow 3.0.3 → 3.0.4

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.
@@ -1,7 +1,10 @@
1
- import type { AssistantWorkflowDefinition } from "./definition.js";
1
+ import type { AssistantWorkflowDefinition, AssistantWorkflowFirstHopToolPolicy } from "./definition.js";
2
2
  import type { AssistantWorkflowJsonValue } from "./run-report-json.js";
3
3
  export type AssistantWorkflowDefinitionIntentDiff = {
4
4
  intentId: string;
5
+ fromFirstHopToolPolicy: AssistantWorkflowFirstHopToolPolicy;
6
+ toFirstHopToolPolicy: AssistantWorkflowFirstHopToolPolicy;
7
+ firstHopToolPolicyChanged: boolean;
5
8
  addedToolHints: string[];
6
9
  removedToolHints: string[];
7
10
  addedRequiredToolHints: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"definition-diff.d.ts","sourceRoot":"","sources":["../src/definition-diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,2BAA2B,EAE5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,MAAM,qCAAqC,GAAG;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,8BAA8B,EAAE,MAAM,EAAE,CAAC;IACzC,2BAA2B,EAAE,MAAM,EAAE,CAAC;IACtC,6BAA6B,EAAE,MAAM,EAAE,CAAC;IACxC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,0CAA0C,GAAG;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,2CAA2C,GAAG;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;IAChC,sBAAsB,EAAE,OAAO,CAAC;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,2BAA2B,EAAE,MAAM,EAAE,CAAC;IACtC,WAAW,EAAE,qCAAqC,EAAE,CAAC;IACrD,gBAAgB,EAAE,0CAA0C,EAAE,CAAC;IAC/D,iBAAiB,EAAE,2CAA2C,EAAE,CAAC;CAClE,CAAC;AAEF,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,2BAA2B,EACnC,KAAK,EAAE,2BAA2B,GACjC,+BAA+B,CAoFjC;AAED,wBAAgB,gDAAgD,CAC9D,IAAI,EAAE,+BAA+B,GACpC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAqD5C"}
1
+ {"version":3,"file":"definition-diff.d.ts","sourceRoot":"","sources":["../src/definition-diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,2BAA2B,EAC3B,mCAAmC,EAEpC,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,MAAM,qCAAqC,GAAG;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,EAAE,mCAAmC,CAAC;IAC5D,oBAAoB,EAAE,mCAAmC,CAAC;IAC1D,yBAAyB,EAAE,OAAO,CAAC;IACnC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,8BAA8B,EAAE,MAAM,EAAE,CAAC;IACzC,2BAA2B,EAAE,MAAM,EAAE,CAAC;IACtC,6BAA6B,EAAE,MAAM,EAAE,CAAC;IACxC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,0CAA0C,GAAG;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,2CAA2C,GAAG;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;IAChC,sBAAsB,EAAE,OAAO,CAAC;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,2BAA2B,EAAE,MAAM,EAAE,CAAC;IACtC,WAAW,EAAE,qCAAqC,EAAE,CAAC;IACrD,gBAAgB,EAAE,0CAA0C,EAAE,CAAC;IAC/D,iBAAiB,EAAE,2CAA2C,EAAE,CAAC;CAClE,CAAC;AAEF,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,2BAA2B,EACnC,KAAK,EAAE,2BAA2B,GACjC,+BAA+B,CAoFjC;AAED,wBAAgB,gDAAgD,CAC9D,IAAI,EAAE,+BAA+B,GACpC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAwD5C"}
@@ -79,6 +79,9 @@ export function buildAssistantWorkflowDefinitionDiffTracePayload(diff) {
79
79
  removedClarificationRuleIds: diff.removedClarificationRuleIds,
80
80
  intentDiffs: diff.intentDiffs.map((intentDiff) => ({
81
81
  intentId: intentDiff.intentId,
82
+ fromFirstHopToolPolicy: intentDiff.fromFirstHopToolPolicy,
83
+ toFirstHopToolPolicy: intentDiff.toFirstHopToolPolicy,
84
+ firstHopToolPolicyChanged: intentDiff.firstHopToolPolicyChanged,
82
85
  addedToolHints: intentDiff.addedToolHints,
83
86
  removedToolHints: intentDiff.removedToolHints,
84
87
  addedRequiredToolHints: intentDiff.addedRequiredToolHints,
@@ -166,8 +169,13 @@ function buildIntentDiffs(beforeIntents, afterIntents) {
166
169
  return diffs.sort((left, right) => left.intentId.localeCompare(right.intentId));
167
170
  }
168
171
  function buildIntentDiff(before, after) {
172
+ const fromFirstHopToolPolicy = before.firstHopToolPolicy ?? "auto";
173
+ const toFirstHopToolPolicy = after.firstHopToolPolicy ?? "auto";
169
174
  const diff = {
170
175
  intentId: after.id,
176
+ fromFirstHopToolPolicy,
177
+ toFirstHopToolPolicy,
178
+ firstHopToolPolicyChanged: fromFirstHopToolPolicy !== toFirstHopToolPolicy,
171
179
  addedToolHints: diffStrings(before.toolHints ?? [], after.toolHints ?? []),
172
180
  removedToolHints: diffStrings(after.toolHints ?? [], before.toolHints ?? []),
173
181
  addedRequiredToolHints: diffStrings(before.requiredToolHints ?? [], after.requiredToolHints ?? []),
@@ -184,7 +192,8 @@ function buildIntentDiff(before, after) {
184
192
  };
185
193
  return {
186
194
  ...diff,
187
- changed: diff.addedToolHints.length > 0 ||
195
+ changed: diff.firstHopToolPolicyChanged ||
196
+ diff.addedToolHints.length > 0 ||
188
197
  diff.removedToolHints.length > 0 ||
189
198
  diff.addedRequiredToolHints.length > 0 ||
190
199
  diff.removedRequiredToolHints.length > 0 ||
@@ -1 +1 @@
1
- {"version":3,"file":"definition-diff.js","sourceRoot":"","sources":["../src/definition-diff.ts"],"names":[],"mappings":"AAkEA,MAAM,UAAU,oCAAoC,CAClD,MAAmC,EACnC,KAAkC;IAElC,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACpG,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IACxG,MAAM,IAAI,GAAoC;QAC5C,cAAc,EAAE,MAAM,CAAC,EAAE;QACzB,YAAY,EAAE,KAAK,CAAC,EAAE;QACtB,WAAW,EAAE,MAAM,CAAC,OAAO;QAC3B,SAAS,EAAE,KAAK,CAAC,OAAO;QACxB,OAAO,EAAE,KAAK;QACd,cAAc,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;QAChD,sBAAsB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC;QAChG,sBAAsB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC;QAChG,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChH,gBAAgB,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClH,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtH,gBAAgB,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACxH,qBAAqB,EAAE,WAAW,CAChC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EACzD,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CACzD;QACD,uBAAuB,EAAE,WAAW,CAClC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EACxD,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAC1D;QACD,kBAAkB,EAAE,WAAW,CAC7B,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAChD,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAChD;QACD,oBAAoB,EAAE,WAAW,CAC/B,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAC/C,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CACjD;QACD,mBAAmB,EAAE,WAAW,CAC9B,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EACnD,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CACnD;QACD,qBAAqB,EAAE,WAAW,CAChC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAClD,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CACpD;QACD,oBAAoB,EAAE,WAAW,CAC/B,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAClD,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAClD;QACD,sBAAsB,EAAE,WAAW,CACjC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EACjD,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CACnD;QACD,yBAAyB,EAAE,WAAW,CACpC,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EACvD,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CACvD;QACD,2BAA2B,EAAE,WAAW,CACtC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EACtD,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CACxD;QACD,WAAW;QACX,gBAAgB;QAChB,iBAAiB;KAClB,CAAC;IACF,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,IAAI,CAAC,cAAc;YAC1B,IAAI,CAAC,sBAAsB;YAC3B,IAAI,CAAC,sBAAsB;YAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAChC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC;YACrC,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC;YACvC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;YAClC,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;YACpC,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC;YACnC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC;YACrC,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;YACpC,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC;YACtC,IAAI,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC;YACzC,IAAI,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YACzD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gDAAgD,CAC9D,IAAqC;IAErC,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;QACnD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;QACnD,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;QACrD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;QAC/C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;QAC/C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;QACnD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;QACzD,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;QAC7D,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACjD,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;YACzD,wBAAwB,EAAE,UAAU,CAAC,wBAAwB;YAC7D,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;YACrD,4BAA4B,EAAE,UAAU,CAAC,4BAA4B;YACrE,8BAA8B,EAAE,UAAU,CAAC,8BAA8B;YACzE,2BAA2B,EAAE,UAAU,CAAC,2BAA2B;YACnE,6BAA6B,EAAE,UAAU,CAAC,6BAA6B;YACvE,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;YAC3D,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;YAC/D,OAAO,EAAE,UAAU,CAAC,OAAO;SAC5B,CAAC,CAAC;QACH,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;YAC5C,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B,CAAC,CAAC;QACH,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3D,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB;YACvD,wBAAwB,EAAE,QAAQ,CAAC,wBAAwB;YAC3D,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,WAAyF,EACzF,UAAwF;IAExF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAU,CAAC,CAAC,CAAC;IAChF,MAAM,KAAK,GAAkD,EAAE,CAAC;IAChE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,MAAM,sBAAsB,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,EAAE,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAClG,MAAM,wBAAwB,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,EAAE,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACpG,IAAI,sBAAsB,CAAC,MAAM,IAAI,wBAAwB,CAAC,MAAM,EAAE,CAAC;YACrE,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,SAAS,CAAC,EAAE;gBACpB,sBAAsB;gBACtB,wBAAwB;gBACxB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,qBAAqB,CAC5B,YAA+D,EAC/D,WAA8D;IAE9D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAiD,EAAE,CAAC;IAE/D,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,MAAM,IAAI,GAAG,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAA8C,EAC9C,KAA6C;IAE7C,MAAM,IAAI,GAA+C;QACvD,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,gBAAgB,EAAE,WAAW,CAC3B,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EACvD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CACvD;QACD,kBAAkB,EAAE,WAAW,CAC7B,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EACtD,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CACxD;QACD,OAAO,EAAE,KAAK;KACf,CAAC;IACF,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;KAChF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,aAA2D,EAC3D,YAA0D;IAE1D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,KAAK,GAA4C,EAAE,CAAC;IAE1D,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY;YAAE,SAAS;QAC5B,MAAM,IAAI,GAAG,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,eAAe,CACtB,MAAyC,EACzC,KAAwC;IAExC,MAAM,IAAI,GAA0C;QAClD,QAAQ,EAAE,KAAK,CAAC,EAAE;QAClB,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;QAC1E,gBAAgB,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QAC5E,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,EAAE,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAClG,wBAAwB,EAAE,WAAW,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACpG,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;QACtF,oBAAoB,EAAE,WAAW,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;QACxF,4BAA4B,EAAE,WAAW,CACvC,MAAM,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAChE,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAChE;QACD,8BAA8B,EAAE,WAAW,CACzC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAC/D,MAAM,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CACjE;QACD,2BAA2B,EAAE,WAAW,CACtC,MAAM,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAC/D,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAC/D;QACD,6BAA6B,EAAE,WAAW,CACxC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAC9D,MAAM,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAChE;QACD,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,EAAE,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC;QACrG,yBAAyB,EAAE,WAAW,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,EAAE,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC;QACvG,OAAO,EAAE,KAAK;KACf,CAAC;IACF,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAChC,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC;YACtC,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;YAClC,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;YACpC,IAAI,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC;YAC5C,IAAI,CAAC,8BAA8B,CAAC,MAAM,GAAG,CAAC;YAC9C,IAAI,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC;YAC3C,IAAI,CAAC,6BAA6B,CAAC,MAAM,GAAG,CAAC;YAC7C,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC;YACvC,IAAI,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAyB,EAAE,KAAwB;IACtE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;SACvB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC5D,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa,EAAE,KAAc;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC","sourcesContent":["import type {\n AssistantWorkflowDirectRouteDefinition,\n AssistantWorkflowDefinition,\n AssistantWorkflowIntentDefinition,\n} from \"./definition.js\";\nimport type { AssistantWorkflowJsonValue } from \"./run-report-json.js\";\n\nexport type AssistantWorkflowDefinitionIntentDiff = {\n intentId: string;\n addedToolHints: string[];\n removedToolHints: string[];\n addedRequiredToolHints: string[];\n removedRequiredToolHints: string[];\n addedPlanningSteps: string[];\n removedPlanningSteps: string[];\n addedToolSelectionProfileIds: string[];\n removedToolSelectionProfileIds: string[];\n addedPlanningStepProfileIds: string[];\n removedPlanningStepProfileIds: string[];\n addedClarificationRules: string[];\n removedClarificationRules: string[];\n changed: boolean;\n};\n\nexport type AssistantWorkflowDefinitionDirectRouteDiff = {\n routeId: string;\n addedStrategyIds: string[];\n removedStrategyIds: string[];\n changed: boolean;\n};\n\nexport type AssistantWorkflowDefinitionPlanningStepDiff = {\n stepId: string;\n addedDependencyStepIds: string[];\n removedDependencyStepIds: string[];\n changed: boolean;\n};\n\nexport type AssistantWorkflowDefinitionDiff = {\n fromWorkflowId: string;\n toWorkflowId: string;\n fromVersion: number;\n toVersion: number;\n changed: boolean;\n versionChanged: boolean;\n executionBudgetChanged: boolean;\n executionPolicyChanged: boolean;\n addedIntentIds: string[];\n removedIntentIds: string[];\n addedToolNames: string[];\n removedToolNames: string[];\n addedToolBindingNames: string[];\n removedToolBindingNames: string[];\n addedMemorySlotIds: string[];\n removedMemorySlotIds: string[];\n addedDirectRouteIds: string[];\n removedDirectRouteIds: string[];\n addedPlanningStepIds: string[];\n removedPlanningStepIds: string[];\n addedClarificationRuleIds: string[];\n removedClarificationRuleIds: string[];\n intentDiffs: AssistantWorkflowDefinitionIntentDiff[];\n directRouteDiffs: AssistantWorkflowDefinitionDirectRouteDiff[];\n planningStepDiffs: AssistantWorkflowDefinitionPlanningStepDiff[];\n};\n\nexport function buildAssistantWorkflowDefinitionDiff(\n before: AssistantWorkflowDefinition,\n after: AssistantWorkflowDefinition,\n): AssistantWorkflowDefinitionDiff {\n const intentDiffs = buildIntentDiffs(before.intents, after.intents);\n const directRouteDiffs = buildDirectRouteDiffs(before.directRoutes ?? [], after.directRoutes ?? []);\n const planningStepDiffs = buildPlanningStepDiffs(before.planningSteps ?? [], after.planningSteps ?? []);\n const diff: AssistantWorkflowDefinitionDiff = {\n fromWorkflowId: before.id,\n toWorkflowId: after.id,\n fromVersion: before.version,\n toVersion: after.version,\n changed: false,\n versionChanged: before.version !== after.version,\n executionBudgetChanged: !sameJson(before.executionBudget ?? null, after.executionBudget ?? null),\n executionPolicyChanged: !sameJson(before.executionPolicy ?? null, after.executionPolicy ?? null),\n addedIntentIds: diffStrings(before.intents.map((intent) => intent.id), after.intents.map((intent) => intent.id)),\n removedIntentIds: diffStrings(after.intents.map((intent) => intent.id), before.intents.map((intent) => intent.id)),\n addedToolNames: diffStrings(before.tools?.map((tool) => tool.name) ?? [], after.tools?.map((tool) => tool.name) ?? []),\n removedToolNames: diffStrings(after.tools?.map((tool) => tool.name) ?? [], before.tools?.map((tool) => tool.name) ?? []),\n addedToolBindingNames: diffStrings(\n before.toolBindings?.map((binding) => binding.name) ?? [],\n after.toolBindings?.map((binding) => binding.name) ?? [],\n ),\n removedToolBindingNames: diffStrings(\n after.toolBindings?.map((binding) => binding.name) ?? [],\n before.toolBindings?.map((binding) => binding.name) ?? [],\n ),\n addedMemorySlotIds: diffStrings(\n before.memorySlots?.map((slot) => slot.id) ?? [],\n after.memorySlots?.map((slot) => slot.id) ?? [],\n ),\n removedMemorySlotIds: diffStrings(\n after.memorySlots?.map((slot) => slot.id) ?? [],\n before.memorySlots?.map((slot) => slot.id) ?? [],\n ),\n addedDirectRouteIds: diffStrings(\n before.directRoutes?.map((route) => route.id) ?? [],\n after.directRoutes?.map((route) => route.id) ?? [],\n ),\n removedDirectRouteIds: diffStrings(\n after.directRoutes?.map((route) => route.id) ?? [],\n before.directRoutes?.map((route) => route.id) ?? [],\n ),\n addedPlanningStepIds: diffStrings(\n before.planningSteps?.map((step) => step.id) ?? [],\n after.planningSteps?.map((step) => step.id) ?? [],\n ),\n removedPlanningStepIds: diffStrings(\n after.planningSteps?.map((step) => step.id) ?? [],\n before.planningSteps?.map((step) => step.id) ?? [],\n ),\n addedClarificationRuleIds: diffStrings(\n before.clarificationRules?.map((rule) => rule.id) ?? [],\n after.clarificationRules?.map((rule) => rule.id) ?? [],\n ),\n removedClarificationRuleIds: diffStrings(\n after.clarificationRules?.map((rule) => rule.id) ?? [],\n before.clarificationRules?.map((rule) => rule.id) ?? [],\n ),\n intentDiffs,\n directRouteDiffs,\n planningStepDiffs,\n };\n return {\n ...diff,\n changed: diff.versionChanged ||\n diff.executionBudgetChanged ||\n diff.executionPolicyChanged ||\n diff.addedIntentIds.length > 0 ||\n diff.removedIntentIds.length > 0 ||\n diff.addedToolNames.length > 0 ||\n diff.removedToolNames.length > 0 ||\n diff.addedToolBindingNames.length > 0 ||\n diff.removedToolBindingNames.length > 0 ||\n diff.addedMemorySlotIds.length > 0 ||\n diff.removedMemorySlotIds.length > 0 ||\n diff.addedDirectRouteIds.length > 0 ||\n diff.removedDirectRouteIds.length > 0 ||\n diff.addedPlanningStepIds.length > 0 ||\n diff.removedPlanningStepIds.length > 0 ||\n diff.addedClarificationRuleIds.length > 0 ||\n diff.removedClarificationRuleIds.length > 0 ||\n diff.intentDiffs.some((intentDiff) => intentDiff.changed) ||\n diff.directRouteDiffs.some((routeDiff) => routeDiff.changed) ||\n diff.planningStepDiffs.some((stepDiff) => stepDiff.changed),\n };\n}\n\nexport function buildAssistantWorkflowDefinitionDiffTracePayload(\n diff: AssistantWorkflowDefinitionDiff,\n): Record<string, AssistantWorkflowJsonValue> {\n return {\n fromWorkflowId: diff.fromWorkflowId,\n toWorkflowId: diff.toWorkflowId,\n fromVersion: diff.fromVersion,\n toVersion: diff.toVersion,\n changed: diff.changed,\n versionChanged: diff.versionChanged,\n executionBudgetChanged: diff.executionBudgetChanged,\n executionPolicyChanged: diff.executionPolicyChanged,\n addedIntentIds: diff.addedIntentIds,\n removedIntentIds: diff.removedIntentIds,\n addedToolNames: diff.addedToolNames,\n removedToolNames: diff.removedToolNames,\n addedToolBindingNames: diff.addedToolBindingNames,\n removedToolBindingNames: diff.removedToolBindingNames,\n addedMemorySlotIds: diff.addedMemorySlotIds,\n removedMemorySlotIds: diff.removedMemorySlotIds,\n addedDirectRouteIds: diff.addedDirectRouteIds,\n removedDirectRouteIds: diff.removedDirectRouteIds,\n addedPlanningStepIds: diff.addedPlanningStepIds,\n removedPlanningStepIds: diff.removedPlanningStepIds,\n addedClarificationRuleIds: diff.addedClarificationRuleIds,\n removedClarificationRuleIds: diff.removedClarificationRuleIds,\n intentDiffs: diff.intentDiffs.map((intentDiff) => ({\n intentId: intentDiff.intentId,\n addedToolHints: intentDiff.addedToolHints,\n removedToolHints: intentDiff.removedToolHints,\n addedRequiredToolHints: intentDiff.addedRequiredToolHints,\n removedRequiredToolHints: intentDiff.removedRequiredToolHints,\n addedPlanningSteps: intentDiff.addedPlanningSteps,\n removedPlanningSteps: intentDiff.removedPlanningSteps,\n addedToolSelectionProfileIds: intentDiff.addedToolSelectionProfileIds,\n removedToolSelectionProfileIds: intentDiff.removedToolSelectionProfileIds,\n addedPlanningStepProfileIds: intentDiff.addedPlanningStepProfileIds,\n removedPlanningStepProfileIds: intentDiff.removedPlanningStepProfileIds,\n addedClarificationRules: intentDiff.addedClarificationRules,\n removedClarificationRules: intentDiff.removedClarificationRules,\n changed: intentDiff.changed,\n })),\n directRouteDiffs: diff.directRouteDiffs.map((routeDiff) => ({\n routeId: routeDiff.routeId,\n addedStrategyIds: routeDiff.addedStrategyIds,\n removedStrategyIds: routeDiff.removedStrategyIds,\n changed: routeDiff.changed,\n })),\n planningStepDiffs: diff.planningStepDiffs.map((stepDiff) => ({\n stepId: stepDiff.stepId,\n addedDependencyStepIds: stepDiff.addedDependencyStepIds,\n removedDependencyStepIds: stepDiff.removedDependencyStepIds,\n changed: stepDiff.changed,\n })),\n };\n}\n\nfunction buildPlanningStepDiffs(\n beforeSteps: readonly NonNullable<AssistantWorkflowDefinition[\"planningSteps\"]>[number][],\n afterSteps: readonly NonNullable<AssistantWorkflowDefinition[\"planningSteps\"]>[number][],\n): AssistantWorkflowDefinitionPlanningStepDiff[] {\n const beforeById = new Map(beforeSteps.map((step) => [step.id, step] as const));\n const diffs: AssistantWorkflowDefinitionPlanningStepDiff[] = [];\n for (const afterStep of afterSteps) {\n const beforeStep = beforeById.get(afterStep.id);\n if (!beforeStep) continue;\n const addedDependencyStepIds = diffStrings(beforeStep.dependsOn ?? [], afterStep.dependsOn ?? []);\n const removedDependencyStepIds = diffStrings(afterStep.dependsOn ?? [], beforeStep.dependsOn ?? []);\n if (addedDependencyStepIds.length || removedDependencyStepIds.length) {\n diffs.push({\n stepId: afterStep.id,\n addedDependencyStepIds,\n removedDependencyStepIds,\n changed: true,\n });\n }\n }\n return diffs.sort((left, right) => left.stepId.localeCompare(right.stepId));\n}\n\nfunction buildDirectRouteDiffs(\n beforeRoutes: readonly AssistantWorkflowDirectRouteDefinition[],\n afterRoutes: readonly AssistantWorkflowDirectRouteDefinition[],\n): AssistantWorkflowDefinitionDirectRouteDiff[] {\n const beforeById = new Map(beforeRoutes.map((route) => [route.id, route]));\n const diffs: AssistantWorkflowDefinitionDirectRouteDiff[] = [];\n\n for (const afterRoute of afterRoutes) {\n const beforeRoute = beforeById.get(afterRoute.id);\n if (!beforeRoute) continue;\n const diff = buildDirectRouteDiff(beforeRoute, afterRoute);\n if (diff.changed) diffs.push(diff);\n }\n return diffs.sort((left, right) => left.routeId.localeCompare(right.routeId));\n}\n\nfunction buildDirectRouteDiff(\n before: AssistantWorkflowDirectRouteDefinition,\n after: AssistantWorkflowDirectRouteDefinition,\n): AssistantWorkflowDefinitionDirectRouteDiff {\n const diff: AssistantWorkflowDefinitionDirectRouteDiff = {\n routeId: after.id,\n addedStrategyIds: diffStrings(\n before.strategies?.map((strategy) => strategy.id) ?? [],\n after.strategies?.map((strategy) => strategy.id) ?? [],\n ),\n removedStrategyIds: diffStrings(\n after.strategies?.map((strategy) => strategy.id) ?? [],\n before.strategies?.map((strategy) => strategy.id) ?? [],\n ),\n changed: false,\n };\n return {\n ...diff,\n changed: diff.addedStrategyIds.length > 0 || diff.removedStrategyIds.length > 0,\n };\n}\n\nfunction buildIntentDiffs(\n beforeIntents: readonly AssistantWorkflowIntentDefinition[],\n afterIntents: readonly AssistantWorkflowIntentDefinition[],\n): AssistantWorkflowDefinitionIntentDiff[] {\n const beforeById = new Map(beforeIntents.map((intent) => [intent.id, intent]));\n const diffs: AssistantWorkflowDefinitionIntentDiff[] = [];\n\n for (const afterIntent of afterIntents) {\n const beforeIntent = beforeById.get(afterIntent.id);\n if (!beforeIntent) continue;\n const diff = buildIntentDiff(beforeIntent, afterIntent);\n if (diff.changed) diffs.push(diff);\n }\n return diffs.sort((left, right) => left.intentId.localeCompare(right.intentId));\n}\n\nfunction buildIntentDiff(\n before: AssistantWorkflowIntentDefinition,\n after: AssistantWorkflowIntentDefinition,\n): AssistantWorkflowDefinitionIntentDiff {\n const diff: AssistantWorkflowDefinitionIntentDiff = {\n intentId: after.id,\n addedToolHints: diffStrings(before.toolHints ?? [], after.toolHints ?? []),\n removedToolHints: diffStrings(after.toolHints ?? [], before.toolHints ?? []),\n addedRequiredToolHints: diffStrings(before.requiredToolHints ?? [], after.requiredToolHints ?? []),\n removedRequiredToolHints: diffStrings(after.requiredToolHints ?? [], before.requiredToolHints ?? []),\n addedPlanningSteps: diffStrings(before.planningSteps ?? [], after.planningSteps ?? []),\n removedPlanningSteps: diffStrings(after.planningSteps ?? [], before.planningSteps ?? []),\n addedToolSelectionProfileIds: diffStrings(\n before.toolSelectionProfiles?.map((profile) => profile.id) ?? [],\n after.toolSelectionProfiles?.map((profile) => profile.id) ?? [],\n ),\n removedToolSelectionProfileIds: diffStrings(\n after.toolSelectionProfiles?.map((profile) => profile.id) ?? [],\n before.toolSelectionProfiles?.map((profile) => profile.id) ?? [],\n ),\n addedPlanningStepProfileIds: diffStrings(\n before.planningStepProfiles?.map((profile) => profile.id) ?? [],\n after.planningStepProfiles?.map((profile) => profile.id) ?? [],\n ),\n removedPlanningStepProfileIds: diffStrings(\n after.planningStepProfiles?.map((profile) => profile.id) ?? [],\n before.planningStepProfiles?.map((profile) => profile.id) ?? [],\n ),\n addedClarificationRules: diffStrings(before.clarificationRules ?? [], after.clarificationRules ?? []),\n removedClarificationRules: diffStrings(after.clarificationRules ?? [], before.clarificationRules ?? []),\n changed: false,\n };\n return {\n ...diff,\n changed: diff.addedToolHints.length > 0 ||\n diff.removedToolHints.length > 0 ||\n diff.addedRequiredToolHints.length > 0 ||\n diff.removedRequiredToolHints.length > 0 ||\n diff.addedPlanningSteps.length > 0 ||\n diff.removedPlanningSteps.length > 0 ||\n diff.addedToolSelectionProfileIds.length > 0 ||\n diff.removedToolSelectionProfileIds.length > 0 ||\n diff.addedPlanningStepProfileIds.length > 0 ||\n diff.removedPlanningStepProfileIds.length > 0 ||\n diff.addedClarificationRules.length > 0 ||\n diff.removedClarificationRules.length > 0,\n };\n}\n\nfunction diffStrings(before: readonly string[], after: readonly string[]): string[] {\n const beforeSet = new Set(before);\n return [...new Set(after)]\n .filter((value) => value.length > 0 && !beforeSet.has(value))\n .sort();\n}\n\nfunction sameJson(left: unknown, right: unknown): boolean {\n return JSON.stringify(left) === JSON.stringify(right);\n}\n"]}
1
+ {"version":3,"file":"definition-diff.js","sourceRoot":"","sources":["../src/definition-diff.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n AssistantWorkflowDirectRouteDefinition,\n AssistantWorkflowDefinition,\n AssistantWorkflowFirstHopToolPolicy,\n AssistantWorkflowIntentDefinition,\n} from \"./definition.js\";\nimport type { AssistantWorkflowJsonValue } from \"./run-report-json.js\";\n\nexport type AssistantWorkflowDefinitionIntentDiff = {\n intentId: string;\n fromFirstHopToolPolicy: AssistantWorkflowFirstHopToolPolicy;\n toFirstHopToolPolicy: AssistantWorkflowFirstHopToolPolicy;\n firstHopToolPolicyChanged: boolean;\n addedToolHints: string[];\n removedToolHints: string[];\n addedRequiredToolHints: string[];\n removedRequiredToolHints: string[];\n addedPlanningSteps: string[];\n removedPlanningSteps: string[];\n addedToolSelectionProfileIds: string[];\n removedToolSelectionProfileIds: string[];\n addedPlanningStepProfileIds: string[];\n removedPlanningStepProfileIds: string[];\n addedClarificationRules: string[];\n removedClarificationRules: string[];\n changed: boolean;\n};\n\nexport type AssistantWorkflowDefinitionDirectRouteDiff = {\n routeId: string;\n addedStrategyIds: string[];\n removedStrategyIds: string[];\n changed: boolean;\n};\n\nexport type AssistantWorkflowDefinitionPlanningStepDiff = {\n stepId: string;\n addedDependencyStepIds: string[];\n removedDependencyStepIds: string[];\n changed: boolean;\n};\n\nexport type AssistantWorkflowDefinitionDiff = {\n fromWorkflowId: string;\n toWorkflowId: string;\n fromVersion: number;\n toVersion: number;\n changed: boolean;\n versionChanged: boolean;\n executionBudgetChanged: boolean;\n executionPolicyChanged: boolean;\n addedIntentIds: string[];\n removedIntentIds: string[];\n addedToolNames: string[];\n removedToolNames: string[];\n addedToolBindingNames: string[];\n removedToolBindingNames: string[];\n addedMemorySlotIds: string[];\n removedMemorySlotIds: string[];\n addedDirectRouteIds: string[];\n removedDirectRouteIds: string[];\n addedPlanningStepIds: string[];\n removedPlanningStepIds: string[];\n addedClarificationRuleIds: string[];\n removedClarificationRuleIds: string[];\n intentDiffs: AssistantWorkflowDefinitionIntentDiff[];\n directRouteDiffs: AssistantWorkflowDefinitionDirectRouteDiff[];\n planningStepDiffs: AssistantWorkflowDefinitionPlanningStepDiff[];\n};\n\nexport function buildAssistantWorkflowDefinitionDiff(\n before: AssistantWorkflowDefinition,\n after: AssistantWorkflowDefinition,\n): AssistantWorkflowDefinitionDiff {\n const intentDiffs = buildIntentDiffs(before.intents, after.intents);\n const directRouteDiffs = buildDirectRouteDiffs(before.directRoutes ?? [], after.directRoutes ?? []);\n const planningStepDiffs = buildPlanningStepDiffs(before.planningSteps ?? [], after.planningSteps ?? []);\n const diff: AssistantWorkflowDefinitionDiff = {\n fromWorkflowId: before.id,\n toWorkflowId: after.id,\n fromVersion: before.version,\n toVersion: after.version,\n changed: false,\n versionChanged: before.version !== after.version,\n executionBudgetChanged: !sameJson(before.executionBudget ?? null, after.executionBudget ?? null),\n executionPolicyChanged: !sameJson(before.executionPolicy ?? null, after.executionPolicy ?? null),\n addedIntentIds: diffStrings(before.intents.map((intent) => intent.id), after.intents.map((intent) => intent.id)),\n removedIntentIds: diffStrings(after.intents.map((intent) => intent.id), before.intents.map((intent) => intent.id)),\n addedToolNames: diffStrings(before.tools?.map((tool) => tool.name) ?? [], after.tools?.map((tool) => tool.name) ?? []),\n removedToolNames: diffStrings(after.tools?.map((tool) => tool.name) ?? [], before.tools?.map((tool) => tool.name) ?? []),\n addedToolBindingNames: diffStrings(\n before.toolBindings?.map((binding) => binding.name) ?? [],\n after.toolBindings?.map((binding) => binding.name) ?? [],\n ),\n removedToolBindingNames: diffStrings(\n after.toolBindings?.map((binding) => binding.name) ?? [],\n before.toolBindings?.map((binding) => binding.name) ?? [],\n ),\n addedMemorySlotIds: diffStrings(\n before.memorySlots?.map((slot) => slot.id) ?? [],\n after.memorySlots?.map((slot) => slot.id) ?? [],\n ),\n removedMemorySlotIds: diffStrings(\n after.memorySlots?.map((slot) => slot.id) ?? [],\n before.memorySlots?.map((slot) => slot.id) ?? [],\n ),\n addedDirectRouteIds: diffStrings(\n before.directRoutes?.map((route) => route.id) ?? [],\n after.directRoutes?.map((route) => route.id) ?? [],\n ),\n removedDirectRouteIds: diffStrings(\n after.directRoutes?.map((route) => route.id) ?? [],\n before.directRoutes?.map((route) => route.id) ?? [],\n ),\n addedPlanningStepIds: diffStrings(\n before.planningSteps?.map((step) => step.id) ?? [],\n after.planningSteps?.map((step) => step.id) ?? [],\n ),\n removedPlanningStepIds: diffStrings(\n after.planningSteps?.map((step) => step.id) ?? [],\n before.planningSteps?.map((step) => step.id) ?? [],\n ),\n addedClarificationRuleIds: diffStrings(\n before.clarificationRules?.map((rule) => rule.id) ?? [],\n after.clarificationRules?.map((rule) => rule.id) ?? [],\n ),\n removedClarificationRuleIds: diffStrings(\n after.clarificationRules?.map((rule) => rule.id) ?? [],\n before.clarificationRules?.map((rule) => rule.id) ?? [],\n ),\n intentDiffs,\n directRouteDiffs,\n planningStepDiffs,\n };\n return {\n ...diff,\n changed: diff.versionChanged ||\n diff.executionBudgetChanged ||\n diff.executionPolicyChanged ||\n diff.addedIntentIds.length > 0 ||\n diff.removedIntentIds.length > 0 ||\n diff.addedToolNames.length > 0 ||\n diff.removedToolNames.length > 0 ||\n diff.addedToolBindingNames.length > 0 ||\n diff.removedToolBindingNames.length > 0 ||\n diff.addedMemorySlotIds.length > 0 ||\n diff.removedMemorySlotIds.length > 0 ||\n diff.addedDirectRouteIds.length > 0 ||\n diff.removedDirectRouteIds.length > 0 ||\n diff.addedPlanningStepIds.length > 0 ||\n diff.removedPlanningStepIds.length > 0 ||\n diff.addedClarificationRuleIds.length > 0 ||\n diff.removedClarificationRuleIds.length > 0 ||\n diff.intentDiffs.some((intentDiff) => intentDiff.changed) ||\n diff.directRouteDiffs.some((routeDiff) => routeDiff.changed) ||\n diff.planningStepDiffs.some((stepDiff) => stepDiff.changed),\n };\n}\n\nexport function buildAssistantWorkflowDefinitionDiffTracePayload(\n diff: AssistantWorkflowDefinitionDiff,\n): Record<string, AssistantWorkflowJsonValue> {\n return {\n fromWorkflowId: diff.fromWorkflowId,\n toWorkflowId: diff.toWorkflowId,\n fromVersion: diff.fromVersion,\n toVersion: diff.toVersion,\n changed: diff.changed,\n versionChanged: diff.versionChanged,\n executionBudgetChanged: diff.executionBudgetChanged,\n executionPolicyChanged: diff.executionPolicyChanged,\n addedIntentIds: diff.addedIntentIds,\n removedIntentIds: diff.removedIntentIds,\n addedToolNames: diff.addedToolNames,\n removedToolNames: diff.removedToolNames,\n addedToolBindingNames: diff.addedToolBindingNames,\n removedToolBindingNames: diff.removedToolBindingNames,\n addedMemorySlotIds: diff.addedMemorySlotIds,\n removedMemorySlotIds: diff.removedMemorySlotIds,\n addedDirectRouteIds: diff.addedDirectRouteIds,\n removedDirectRouteIds: diff.removedDirectRouteIds,\n addedPlanningStepIds: diff.addedPlanningStepIds,\n removedPlanningStepIds: diff.removedPlanningStepIds,\n addedClarificationRuleIds: diff.addedClarificationRuleIds,\n removedClarificationRuleIds: diff.removedClarificationRuleIds,\n intentDiffs: diff.intentDiffs.map((intentDiff) => ({\n intentId: intentDiff.intentId,\n fromFirstHopToolPolicy: intentDiff.fromFirstHopToolPolicy,\n toFirstHopToolPolicy: intentDiff.toFirstHopToolPolicy,\n firstHopToolPolicyChanged: intentDiff.firstHopToolPolicyChanged,\n addedToolHints: intentDiff.addedToolHints,\n removedToolHints: intentDiff.removedToolHints,\n addedRequiredToolHints: intentDiff.addedRequiredToolHints,\n removedRequiredToolHints: intentDiff.removedRequiredToolHints,\n addedPlanningSteps: intentDiff.addedPlanningSteps,\n removedPlanningSteps: intentDiff.removedPlanningSteps,\n addedToolSelectionProfileIds: intentDiff.addedToolSelectionProfileIds,\n removedToolSelectionProfileIds: intentDiff.removedToolSelectionProfileIds,\n addedPlanningStepProfileIds: intentDiff.addedPlanningStepProfileIds,\n removedPlanningStepProfileIds: intentDiff.removedPlanningStepProfileIds,\n addedClarificationRules: intentDiff.addedClarificationRules,\n removedClarificationRules: intentDiff.removedClarificationRules,\n changed: intentDiff.changed,\n })),\n directRouteDiffs: diff.directRouteDiffs.map((routeDiff) => ({\n routeId: routeDiff.routeId,\n addedStrategyIds: routeDiff.addedStrategyIds,\n removedStrategyIds: routeDiff.removedStrategyIds,\n changed: routeDiff.changed,\n })),\n planningStepDiffs: diff.planningStepDiffs.map((stepDiff) => ({\n stepId: stepDiff.stepId,\n addedDependencyStepIds: stepDiff.addedDependencyStepIds,\n removedDependencyStepIds: stepDiff.removedDependencyStepIds,\n changed: stepDiff.changed,\n })),\n };\n}\n\nfunction buildPlanningStepDiffs(\n beforeSteps: readonly NonNullable<AssistantWorkflowDefinition[\"planningSteps\"]>[number][],\n afterSteps: readonly NonNullable<AssistantWorkflowDefinition[\"planningSteps\"]>[number][],\n): AssistantWorkflowDefinitionPlanningStepDiff[] {\n const beforeById = new Map(beforeSteps.map((step) => [step.id, step] as const));\n const diffs: AssistantWorkflowDefinitionPlanningStepDiff[] = [];\n for (const afterStep of afterSteps) {\n const beforeStep = beforeById.get(afterStep.id);\n if (!beforeStep) continue;\n const addedDependencyStepIds = diffStrings(beforeStep.dependsOn ?? [], afterStep.dependsOn ?? []);\n const removedDependencyStepIds = diffStrings(afterStep.dependsOn ?? [], beforeStep.dependsOn ?? []);\n if (addedDependencyStepIds.length || removedDependencyStepIds.length) {\n diffs.push({\n stepId: afterStep.id,\n addedDependencyStepIds,\n removedDependencyStepIds,\n changed: true,\n });\n }\n }\n return diffs.sort((left, right) => left.stepId.localeCompare(right.stepId));\n}\n\nfunction buildDirectRouteDiffs(\n beforeRoutes: readonly AssistantWorkflowDirectRouteDefinition[],\n afterRoutes: readonly AssistantWorkflowDirectRouteDefinition[],\n): AssistantWorkflowDefinitionDirectRouteDiff[] {\n const beforeById = new Map(beforeRoutes.map((route) => [route.id, route]));\n const diffs: AssistantWorkflowDefinitionDirectRouteDiff[] = [];\n\n for (const afterRoute of afterRoutes) {\n const beforeRoute = beforeById.get(afterRoute.id);\n if (!beforeRoute) continue;\n const diff = buildDirectRouteDiff(beforeRoute, afterRoute);\n if (diff.changed) diffs.push(diff);\n }\n return diffs.sort((left, right) => left.routeId.localeCompare(right.routeId));\n}\n\nfunction buildDirectRouteDiff(\n before: AssistantWorkflowDirectRouteDefinition,\n after: AssistantWorkflowDirectRouteDefinition,\n): AssistantWorkflowDefinitionDirectRouteDiff {\n const diff: AssistantWorkflowDefinitionDirectRouteDiff = {\n routeId: after.id,\n addedStrategyIds: diffStrings(\n before.strategies?.map((strategy) => strategy.id) ?? [],\n after.strategies?.map((strategy) => strategy.id) ?? [],\n ),\n removedStrategyIds: diffStrings(\n after.strategies?.map((strategy) => strategy.id) ?? [],\n before.strategies?.map((strategy) => strategy.id) ?? [],\n ),\n changed: false,\n };\n return {\n ...diff,\n changed: diff.addedStrategyIds.length > 0 || diff.removedStrategyIds.length > 0,\n };\n}\n\nfunction buildIntentDiffs(\n beforeIntents: readonly AssistantWorkflowIntentDefinition[],\n afterIntents: readonly AssistantWorkflowIntentDefinition[],\n): AssistantWorkflowDefinitionIntentDiff[] {\n const beforeById = new Map(beforeIntents.map((intent) => [intent.id, intent]));\n const diffs: AssistantWorkflowDefinitionIntentDiff[] = [];\n\n for (const afterIntent of afterIntents) {\n const beforeIntent = beforeById.get(afterIntent.id);\n if (!beforeIntent) continue;\n const diff = buildIntentDiff(beforeIntent, afterIntent);\n if (diff.changed) diffs.push(diff);\n }\n return diffs.sort((left, right) => left.intentId.localeCompare(right.intentId));\n}\n\nfunction buildIntentDiff(\n before: AssistantWorkflowIntentDefinition,\n after: AssistantWorkflowIntentDefinition,\n): AssistantWorkflowDefinitionIntentDiff {\n const fromFirstHopToolPolicy = before.firstHopToolPolicy ?? \"auto\";\n const toFirstHopToolPolicy = after.firstHopToolPolicy ?? \"auto\";\n const diff: AssistantWorkflowDefinitionIntentDiff = {\n intentId: after.id,\n fromFirstHopToolPolicy,\n toFirstHopToolPolicy,\n firstHopToolPolicyChanged: fromFirstHopToolPolicy !== toFirstHopToolPolicy,\n addedToolHints: diffStrings(before.toolHints ?? [], after.toolHints ?? []),\n removedToolHints: diffStrings(after.toolHints ?? [], before.toolHints ?? []),\n addedRequiredToolHints: diffStrings(before.requiredToolHints ?? [], after.requiredToolHints ?? []),\n removedRequiredToolHints: diffStrings(after.requiredToolHints ?? [], before.requiredToolHints ?? []),\n addedPlanningSteps: diffStrings(before.planningSteps ?? [], after.planningSteps ?? []),\n removedPlanningSteps: diffStrings(after.planningSteps ?? [], before.planningSteps ?? []),\n addedToolSelectionProfileIds: diffStrings(\n before.toolSelectionProfiles?.map((profile) => profile.id) ?? [],\n after.toolSelectionProfiles?.map((profile) => profile.id) ?? [],\n ),\n removedToolSelectionProfileIds: diffStrings(\n after.toolSelectionProfiles?.map((profile) => profile.id) ?? [],\n before.toolSelectionProfiles?.map((profile) => profile.id) ?? [],\n ),\n addedPlanningStepProfileIds: diffStrings(\n before.planningStepProfiles?.map((profile) => profile.id) ?? [],\n after.planningStepProfiles?.map((profile) => profile.id) ?? [],\n ),\n removedPlanningStepProfileIds: diffStrings(\n after.planningStepProfiles?.map((profile) => profile.id) ?? [],\n before.planningStepProfiles?.map((profile) => profile.id) ?? [],\n ),\n addedClarificationRules: diffStrings(before.clarificationRules ?? [], after.clarificationRules ?? []),\n removedClarificationRules: diffStrings(after.clarificationRules ?? [], before.clarificationRules ?? []),\n changed: false,\n };\n return {\n ...diff,\n changed: diff.firstHopToolPolicyChanged ||\n diff.addedToolHints.length > 0 ||\n diff.removedToolHints.length > 0 ||\n diff.addedRequiredToolHints.length > 0 ||\n diff.removedRequiredToolHints.length > 0 ||\n diff.addedPlanningSteps.length > 0 ||\n diff.removedPlanningSteps.length > 0 ||\n diff.addedToolSelectionProfileIds.length > 0 ||\n diff.removedToolSelectionProfileIds.length > 0 ||\n diff.addedPlanningStepProfileIds.length > 0 ||\n diff.removedPlanningStepProfileIds.length > 0 ||\n diff.addedClarificationRules.length > 0 ||\n diff.removedClarificationRules.length > 0,\n };\n}\n\nfunction diffStrings(before: readonly string[], after: readonly string[]): string[] {\n const beforeSet = new Set(before);\n return [...new Set(after)]\n .filter((value) => value.length > 0 && !beforeSet.has(value))\n .sort();\n}\n\nfunction sameJson(left: unknown, right: unknown): boolean {\n return JSON.stringify(left) === JSON.stringify(right);\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uns-kit/assistant-workflow",
3
- "version": "3.0.3",
3
+ "version": "3.0.4",
4
4
  "description": "Typed, provider-neutral workflow definitions, policies, execution plans, and trace helpers for assistants.",
5
5
  "author": "Aljosa Vister",
6
6
  "license": "MIT",