@cognigy/plugin-engine 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +245 -0
  3. package/dist/api/client.d.ts +21 -0
  4. package/dist/api/client.d.ts.map +1 -0
  5. package/dist/api/client.js +123 -0
  6. package/dist/api/client.js.map +1 -0
  7. package/dist/config.d.ts +19 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +141 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/index.d.ts +3 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +93 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/instructions.d.ts +2 -0
  16. package/dist/instructions.d.ts.map +1 -0
  17. package/dist/instructions.js +36 -0
  18. package/dist/instructions.js.map +1 -0
  19. package/dist/schemas/tools.d.ts +1846 -0
  20. package/dist/schemas/tools.d.ts.map +1 -0
  21. package/dist/schemas/tools.js +581 -0
  22. package/dist/schemas/tools.js.map +1 -0
  23. package/dist/tools/definitions.d.ts +12 -0
  24. package/dist/tools/definitions.d.ts.map +1 -0
  25. package/dist/tools/definitions.js +1522 -0
  26. package/dist/tools/definitions.js.map +1 -0
  27. package/dist/tools/filters.d.ts +13 -0
  28. package/dist/tools/filters.d.ts.map +1 -0
  29. package/dist/tools/filters.js +107 -0
  30. package/dist/tools/filters.js.map +1 -0
  31. package/dist/tools/handlers.d.ts +71 -0
  32. package/dist/tools/handlers.d.ts.map +1 -0
  33. package/dist/tools/handlers.js +3603 -0
  34. package/dist/tools/handlers.js.map +1 -0
  35. package/dist/tools/nodeRegistry.d.ts +37 -0
  36. package/dist/tools/nodeRegistry.d.ts.map +1 -0
  37. package/dist/tools/nodeRegistry.js +175 -0
  38. package/dist/tools/nodeRegistry.js.map +1 -0
  39. package/dist/tools/packageManagement.d.ts +140 -0
  40. package/dist/tools/packageManagement.d.ts.map +1 -0
  41. package/dist/tools/packageManagement.js +455 -0
  42. package/dist/tools/packageManagement.js.map +1 -0
  43. package/dist/tools/voiceChecklist.d.ts +80 -0
  44. package/dist/tools/voiceChecklist.d.ts.map +1 -0
  45. package/dist/tools/voiceChecklist.js +635 -0
  46. package/dist/tools/voiceChecklist.js.map +1 -0
  47. package/dist/tools/webchatSettings.d.ts +14 -0
  48. package/dist/tools/webchatSettings.d.ts.map +1 -0
  49. package/dist/tools/webchatSettings.js +462 -0
  50. package/dist/tools/webchatSettings.js.map +1 -0
  51. package/dist/utils/logger.d.ts +19 -0
  52. package/dist/utils/logger.d.ts.map +1 -0
  53. package/dist/utils/logger.js +52 -0
  54. package/dist/utils/logger.js.map +1 -0
  55. package/dist/utils/rateLimiter.d.ts +33 -0
  56. package/dist/utils/rateLimiter.d.ts.map +1 -0
  57. package/dist/utils/rateLimiter.js +68 -0
  58. package/dist/utils/rateLimiter.js.map +1 -0
  59. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageManagement.d.ts","sourceRoot":"","sources":["../../src/tools/packageManagement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,455 @@
1
+ const EXCLUDED_REFERENCE_CONFLICT_TYPES = new Set([
2
+ "extension",
3
+ "endpoint",
4
+ "file",
5
+ "playbook",
6
+ ]);
7
+ const EXPORTABLE_PACKAGE_TYPES = new Set([
8
+ "connection",
9
+ "endpoint",
10
+ "flow",
11
+ "function",
12
+ "lexicon",
13
+ "nluconnector",
14
+ "largeLanguageModel",
15
+ "goal",
16
+ "knowledgeStore",
17
+ "playbook",
18
+ "agentAssistConfig",
19
+ "aiAgent",
20
+ "handoverProvider",
21
+ "simulation",
22
+ ]);
23
+ const UI_SKIPPED_EXPORT_TYPES = new Set(["function"]);
24
+ const RETIRED_LLM_MODELS = new Set([
25
+ "gpt-3.5-turbo",
26
+ "gpt-3.5-turbo-instruct",
27
+ "gpt-4",
28
+ "claude-v1-100k",
29
+ "claude-3-opus-20240229",
30
+ "claude-3-sonnet-20240229",
31
+ "claude-3-5-sonnet-20241022",
32
+ "claude-3-5-sonnet-latest",
33
+ "claude-3-7-sonnet-latest",
34
+ "claude-3-7-sonnet-20250219",
35
+ "claude-instant-v1",
36
+ "text-bison@001",
37
+ "gemini-1.0-pro",
38
+ "gemini-1.5-pro",
39
+ "gemini-1.5-flash",
40
+ "text-davinci-003",
41
+ ]);
42
+ function resourceId(resource) {
43
+ return String(resource._id ?? resource.id ?? "");
44
+ }
45
+ function resourceName(resource) {
46
+ return resource.name || resourceId(resource);
47
+ }
48
+ function isLocale(resource) {
49
+ return resource.type === "locale";
50
+ }
51
+ function isExportablePackageResource(resource) {
52
+ return !!resource.type && EXPORTABLE_PACKAGE_TYPES.has(resource.type);
53
+ }
54
+ function isRetiredLlmModel(modelType) {
55
+ return !!modelType && RETIRED_LLM_MODELS.has(modelType);
56
+ }
57
+ function buildReferenceMap(resources) {
58
+ const map = new Map();
59
+ for (const resource of resources) {
60
+ if (!resource.referenceId)
61
+ continue;
62
+ if (!resource.type || EXCLUDED_REFERENCE_CONFLICT_TYPES.has(resource.type))
63
+ continue;
64
+ if (!map.has(resource.referenceId)) {
65
+ map.set(resource.referenceId, resource);
66
+ }
67
+ }
68
+ return map;
69
+ }
70
+ function buildLocalePreview(locale) {
71
+ return {
72
+ id: resourceId(locale),
73
+ name: resourceName(locale),
74
+ nluLanguage: locale.properties?.nluLanguage ?? null,
75
+ isPrimary: !!locale.properties?.primary,
76
+ };
77
+ }
78
+ export function getTaskProgress(task) {
79
+ if (!task)
80
+ return 0;
81
+ switch (task.status) {
82
+ case "queued":
83
+ case "cancelled":
84
+ case "cancelling":
85
+ case "error":
86
+ return 0;
87
+ default:
88
+ break;
89
+ }
90
+ if (!task.totalStep || task.totalStep <= 0) {
91
+ return task.status === "done" ? 1 : 0;
92
+ }
93
+ if (task.currentStep === task.totalStep && task.status === "active") {
94
+ return task.currentStep / (task.totalStep + 1);
95
+ }
96
+ return task.currentStep / task.totalStep;
97
+ }
98
+ export function normalizeTask(task) {
99
+ return {
100
+ id: task?._id ?? task?.id ?? null,
101
+ name: task?.name ?? null,
102
+ status: task?.status ?? null,
103
+ currentStep: Number(task?.currentStep ?? 0),
104
+ totalStep: Number(task?.totalStep ?? 0),
105
+ progress: getTaskProgress(task),
106
+ failReason: task?.failReason ?? null,
107
+ data: task?.data ?? null,
108
+ };
109
+ }
110
+ export function buildPackageImportPreview(projectId, packageId, graph) {
111
+ const projectGraph = graph[projectId];
112
+ const packageGraph = graph[packageId];
113
+ if (!projectGraph) {
114
+ throw new Error(`Project graph not found for ${projectId}`);
115
+ }
116
+ if (!packageGraph) {
117
+ throw new Error(`Package graph not found for ${packageId}`);
118
+ }
119
+ const projectResources = Array.isArray(projectGraph.resources)
120
+ ? projectGraph.resources
121
+ : [];
122
+ const packageResources = Array.isArray(packageGraph.resources)
123
+ ? packageGraph.resources
124
+ : [];
125
+ const projectLocales = projectResources
126
+ .filter(isLocale)
127
+ .map(buildLocalePreview);
128
+ const packageLocales = packageResources
129
+ .filter(isLocale)
130
+ .map(buildLocalePreview);
131
+ const importableResources = packageResources.filter((resource) => !isLocale(resource));
132
+ const targetByReferenceId = buildReferenceMap(projectResources);
133
+ const defaultProjectPrimaryLocale = projectLocales.find((locale) => locale.isPrimary);
134
+ const resources = importableResources.map((resource) => {
135
+ const conflictResource = resource.referenceId
136
+ ? targetByReferenceId.get(resource.referenceId)
137
+ : undefined;
138
+ const disabledReason = resource.type === "largeLanguageModel" &&
139
+ isRetiredLlmModel(resource.properties?.modelType)
140
+ ? "retired_model"
141
+ : undefined;
142
+ return {
143
+ id: resourceId(resource),
144
+ type: resource.type || "unknown",
145
+ name: resourceName(resource),
146
+ ...(resource.referenceId ? { referenceId: resource.referenceId } : {}),
147
+ selectedByDefault: !disabledReason,
148
+ defaultStrategy: resource.type === "knowledgeStore" ? "replace" : "re-identify",
149
+ ...(disabledReason ? { disabledReason } : {}),
150
+ ...(conflictResource
151
+ ? {
152
+ conflict: {
153
+ type: "referenceId",
154
+ targetResourceId: resourceId(conflictResource),
155
+ targetResourceName: resourceName(conflictResource),
156
+ },
157
+ }
158
+ : {}),
159
+ };
160
+ });
161
+ const defaultLocaleMapping = packageLocales
162
+ .filter((locale) => locale.isPrimary)
163
+ .flatMap((locale) => defaultProjectPrimaryLocale
164
+ ? [
165
+ {
166
+ packageLocaleId: locale.id,
167
+ agentLocaleId: defaultProjectPrimaryLocale.id,
168
+ },
169
+ ]
170
+ : []);
171
+ return {
172
+ project: {
173
+ id: projectId,
174
+ name: projectGraph.name ?? null,
175
+ },
176
+ package: {
177
+ id: packageId,
178
+ name: packageGraph.name ?? null,
179
+ },
180
+ resources,
181
+ locales: {
182
+ packageLocales,
183
+ projectLocales,
184
+ defaultLocaleMapping,
185
+ },
186
+ summary: {
187
+ resourceCount: resources.length,
188
+ selectedByDefaultCount: resources.filter((resource) => resource.selectedByDefault).length,
189
+ disabledResourceCount: resources.filter((resource) => !!resource.disabledReason).length,
190
+ hasFlows: resources.some((resource) => resource.type === "flow"),
191
+ hasDuplicateKnowledgeStore: resources.some((resource) => resource.type === "knowledgeStore" && !!resource.conflict),
192
+ },
193
+ };
194
+ }
195
+ function buildExportSelection(resource, input) {
196
+ return {
197
+ id: resourceId(resource),
198
+ type: resource.type || "unknown",
199
+ name: resourceName(resource),
200
+ ...(resource.referenceId ? { referenceId: resource.referenceId } : {}),
201
+ selectedExplicitly: input.selectedExplicitly,
202
+ includedAsDependency: input.includedAsDependency,
203
+ };
204
+ }
205
+ function getExportDisabledReason(resource) {
206
+ if (UI_SKIPPED_EXPORT_TYPES.has(resource.type || "")) {
207
+ return "function_export_not_supported";
208
+ }
209
+ if (resource.type === "largeLanguageModel" &&
210
+ isRetiredLlmModel(resource.properties?.modelType)) {
211
+ return "retired_model";
212
+ }
213
+ return undefined;
214
+ }
215
+ function buildExportSkippedResource(resource, requestedId, reason) {
216
+ return {
217
+ id: resource ? resourceId(resource) : requestedId,
218
+ type: resource?.type || "unknown",
219
+ name: resource ? resourceName(resource) : requestedId,
220
+ reason,
221
+ };
222
+ }
223
+ function collectDependencies(resourcesById, resource, collected) {
224
+ const dependencies = Array.isArray(resource?.dependencies)
225
+ ? resource.dependencies
226
+ : [];
227
+ for (const dependency of dependencies) {
228
+ const dependencyId = resourceId(dependency);
229
+ if (!dependencyId || collected.has(dependencyId))
230
+ continue;
231
+ const fullDependency = resourcesById.get(dependencyId) ?? dependency;
232
+ collected.set(dependencyId, fullDependency);
233
+ collectDependencies(resourcesById, fullDependency, collected);
234
+ }
235
+ }
236
+ function buildResourcesByReferenceId(resources) {
237
+ return new Map(resources
238
+ .filter((resource) => typeof resource.referenceId === "string" &&
239
+ resource.referenceId.length > 0)
240
+ .map((resource) => [resource.referenceId, resource]));
241
+ }
242
+ export function buildPackageExportPlan(projectId, graph, requestedResourceIds, options) {
243
+ const projectGraph = graph[projectId];
244
+ if (!projectGraph) {
245
+ throw new Error(`Project graph not found for ${projectId}`);
246
+ }
247
+ if (!requestedResourceIds.length) {
248
+ throw new Error("At least one resourceId is required for export");
249
+ }
250
+ const graphResources = Array.isArray(projectGraph.resources)
251
+ ? projectGraph.resources
252
+ : [];
253
+ const allResourcesById = new Map(graphResources.map((resource) => [resourceId(resource), resource]));
254
+ const exportableResources = graphResources.filter(isExportablePackageResource);
255
+ const resourcesById = new Map(exportableResources.map((resource) => [resourceId(resource), resource]));
256
+ const resourcesByReferenceId = buildResourcesByReferenceId(exportableResources);
257
+ const skippedResources = [];
258
+ const skippedResourceIds = new Set();
259
+ const selectedExplicitResources = new Map();
260
+ for (const requestedId of requestedResourceIds) {
261
+ const resource = allResourcesById.get(requestedId);
262
+ if (!resource) {
263
+ skippedResources.push(buildExportSkippedResource(undefined, requestedId, "missing_from_graph"));
264
+ skippedResourceIds.add(requestedId);
265
+ continue;
266
+ }
267
+ if (!isExportablePackageResource(resource)) {
268
+ skippedResources.push(buildExportSkippedResource(resource, requestedId, "unsupported_resource_type"));
269
+ skippedResourceIds.add(requestedId);
270
+ continue;
271
+ }
272
+ const disabledReason = getExportDisabledReason(resource);
273
+ if (disabledReason === "function_export_not_supported") {
274
+ skippedResources.push(buildExportSkippedResource(resource, requestedId, "function_export_not_supported"));
275
+ skippedResourceIds.add(requestedId);
276
+ continue;
277
+ }
278
+ if (disabledReason === "retired_model") {
279
+ skippedResources.push(buildExportSkippedResource(resource, requestedId, "retired_model"));
280
+ skippedResourceIds.add(requestedId);
281
+ continue;
282
+ }
283
+ selectedExplicitResources.set(requestedId, resource);
284
+ }
285
+ const dependencyCandidates = new Map();
286
+ if (options?.includeDependencies !== false) {
287
+ for (const resource of selectedExplicitResources.values()) {
288
+ collectDependencies(resourcesById, resource, dependencyCandidates);
289
+ }
290
+ // Auto-include connections referenced by selected largeLanguageModel resources.
291
+ // The graph dependency tree may not link LLM → connection explicitly,
292
+ // but an LLM without its connection is non-functional after import.
293
+ for (const resource of selectedExplicitResources.values()) {
294
+ if (resource.type !== "largeLanguageModel")
295
+ continue;
296
+ const connId = resource.properties?.connectionId ??
297
+ resource.connectionId ??
298
+ undefined;
299
+ if (!connId)
300
+ continue;
301
+ const connResource = resourcesById.get(connId) ?? resourcesByReferenceId.get(connId);
302
+ const resolvedConnId = connResource ? resourceId(connResource) : connId;
303
+ if (!connResource ||
304
+ selectedExplicitResources.has(resolvedConnId) ||
305
+ dependencyCandidates.has(resolvedConnId)) {
306
+ continue;
307
+ }
308
+ dependencyCandidates.set(resolvedConnId, connResource);
309
+ }
310
+ }
311
+ for (const selectedId of selectedExplicitResources.keys()) {
312
+ dependencyCandidates.delete(selectedId);
313
+ }
314
+ const requestedDependencyIds = options?.dependencyResourceIds;
315
+ const selectedDependencyResources = new Map();
316
+ const dependencyIdsToInclude = requestedDependencyIds && requestedDependencyIds.length > 0
317
+ ? requestedDependencyIds
318
+ : Array.from(dependencyCandidates.keys());
319
+ for (const dependencyId of dependencyIdsToInclude) {
320
+ const dependency = dependencyCandidates.get(dependencyId);
321
+ if (!dependency) {
322
+ skippedResources.push(buildExportSkippedResource(allResourcesById.get(dependencyId), dependencyId, "missing_from_graph"));
323
+ skippedResourceIds.add(dependencyId);
324
+ continue;
325
+ }
326
+ if (!isExportablePackageResource(dependency)) {
327
+ skippedResources.push(buildExportSkippedResource(dependency, dependencyId, "unsupported_resource_type"));
328
+ skippedResourceIds.add(dependencyId);
329
+ continue;
330
+ }
331
+ const disabledReason = getExportDisabledReason(dependency);
332
+ if (disabledReason === "function_export_not_supported") {
333
+ skippedResources.push(buildExportSkippedResource(dependency, dependencyId, "function_export_not_supported"));
334
+ skippedResourceIds.add(dependencyId);
335
+ continue;
336
+ }
337
+ if (disabledReason === "retired_model") {
338
+ skippedResources.push(buildExportSkippedResource(dependency, dependencyId, "retired_model"));
339
+ skippedResourceIds.add(dependencyId);
340
+ continue;
341
+ }
342
+ selectedDependencyResources.set(dependencyId, dependency);
343
+ }
344
+ const selectedResources = Array.from(selectedExplicitResources.values()).map((resource) => buildExportSelection(resource, {
345
+ selectedExplicitly: true,
346
+ includedAsDependency: false,
347
+ }));
348
+ const dependencyResources = Array.from(selectedDependencyResources.values()).map((resource) => buildExportSelection(resource, {
349
+ selectedExplicitly: false,
350
+ includedAsDependency: true,
351
+ }));
352
+ const resourceIds = [
353
+ ...selectedResources.map((resource) => resource.id),
354
+ ...dependencyResources.map((resource) => resource.id),
355
+ ];
356
+ if (resourceIds.length === 0) {
357
+ const skippedReason = skippedResources.length > 0
358
+ ? ` All requested resources were skipped: ${Array.from(new Set(skippedResources.map((resource) => resource.reason))).join(", ")}.`
359
+ : "";
360
+ throw new Error(`At least one exportable resource must be selected.${skippedReason}`);
361
+ }
362
+ return {
363
+ project: {
364
+ id: projectId,
365
+ name: projectGraph.name ?? null,
366
+ },
367
+ requestedResourceIds,
368
+ resourceIds,
369
+ selectedResources,
370
+ dependencyResources,
371
+ skippedResources: skippedResources.filter((resource, index, all) => !skippedResourceIds.has(resource.id) ||
372
+ all.findIndex((candidate) => candidate.id === resource.id &&
373
+ candidate.reason === resource.reason) === index),
374
+ summary: {
375
+ selectedResourceCount: selectedResources.length,
376
+ dependencyResourceCount: dependencyResources.length,
377
+ skippedResourceCount: skippedResources.length,
378
+ },
379
+ };
380
+ }
381
+ export function buildPackageExportablePreview(projectId, graph) {
382
+ const projectGraph = graph[projectId];
383
+ if (!projectGraph) {
384
+ throw new Error(`Project graph not found for ${projectId}`);
385
+ }
386
+ const graphResources = Array.isArray(projectGraph.resources)
387
+ ? projectGraph.resources
388
+ : [];
389
+ const resources = graphResources
390
+ .filter(isExportablePackageResource)
391
+ .sort((a, b) => {
392
+ const typeCompare = (a.type || "").localeCompare(b.type || "");
393
+ return typeCompare !== 0
394
+ ? typeCompare
395
+ : resourceName(a).localeCompare(resourceName(b));
396
+ })
397
+ .map((resource) => {
398
+ const disabledReason = getExportDisabledReason(resource);
399
+ return {
400
+ id: resourceId(resource),
401
+ type: resource.type || "unknown",
402
+ name: resourceName(resource),
403
+ ...(resource.referenceId ? { referenceId: resource.referenceId } : {}),
404
+ canExport: !disabledReason,
405
+ ...(disabledReason ? { disabledReason } : {}),
406
+ dependencyCount: Array.isArray(resource?.dependencies)
407
+ ? resource.dependencies.length
408
+ : 0,
409
+ ...(resource.type === "largeLanguageModel"
410
+ ? {
411
+ ...(resource.properties?.modelType
412
+ ? { modelType: resource.properties.modelType }
413
+ : {}),
414
+ ...((resource.properties?.connectionId ??
415
+ resource.connectionId) != null
416
+ ? {
417
+ connectionId: resource.properties?.connectionId ??
418
+ resource.connectionId,
419
+ }
420
+ : {}),
421
+ }
422
+ : {}),
423
+ };
424
+ });
425
+ const typeCounts = Array.from(resources
426
+ .reduce((acc, resource) => {
427
+ const current = acc.get(resource.type) ?? {
428
+ type: resource.type,
429
+ count: 0,
430
+ exportableNowCount: 0,
431
+ };
432
+ current.count += 1;
433
+ if (resource.canExport)
434
+ current.exportableNowCount += 1;
435
+ acc.set(resource.type, current);
436
+ return acc;
437
+ }, new Map())
438
+ .values());
439
+ return {
440
+ project: {
441
+ id: projectId,
442
+ name: projectGraph.name ?? null,
443
+ },
444
+ resources,
445
+ summary: {
446
+ resourceCount: resources.length,
447
+ exportableNowCount: resources.filter((resource) => resource.canExport)
448
+ .length,
449
+ disabledResourceCount: resources.filter((resource) => !resource.canExport)
450
+ .length,
451
+ typeCounts,
452
+ },
453
+ };
454
+ }
455
+ //# sourceMappingURL=packageManagement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageManagement.js","sourceRoot":"","sources":["../../src/tools/packageManagement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Voice AI Go-Live checklist evaluator.
3
+ *
4
+ * Implements the deterministic ("Tier A") subset of the Voice AI guidebook
5
+ * Go-Live Checklist (section 3) that the Cognigy REST API can both READ and
6
+ * FIX. Each check inspects the flow's Set Session Config node, the AI Agent
7
+ * Job node, and (optionally) the endpoint / LLM resource, and reports a
8
+ * pass / fail / warn / na status. Auto-fixable checks carry a `fix` descriptor
9
+ * that the handler applies via the chart / endpoint REST routes.
10
+ *
11
+ * The evaluation is a pure function of the fetched resources so it can be
12
+ * unit-tested without a live Cognigy instance.
13
+ */
14
+ export type CheckStatus = "pass" | "fail" | "warn" | "na";
15
+ /** A fix the handler can apply. Pure data — no side effects here. */
16
+ export type VoiceFix = {
17
+ kind: "patchNode";
18
+ nodeId: string;
19
+ /** Fields to merge into the node's existing config. */
20
+ config: Record<string, any>;
21
+ } | {
22
+ kind: "createSessionConfig";
23
+ /** Node the new Set Session Config node is inserted before. */
24
+ targetNodeId: string;
25
+ label: string;
26
+ config: Record<string, any>;
27
+ };
28
+ export interface VoiceCheck {
29
+ /** Stable identifier, e.g. "vg.barge-in-off". */
30
+ id: string;
31
+ /** Checklist section, e.g. "3.1 Flow Configuration". */
32
+ section: string;
33
+ title: string;
34
+ status: CheckStatus;
35
+ detail: string;
36
+ autoFixable: boolean;
37
+ fix?: VoiceFix;
38
+ }
39
+ export interface AuditContext {
40
+ /**
41
+ * Chart nodes, each enriched by the handler with its full `config` via the
42
+ * per-node read (the `/chart/nodes` index carries NO config). Shape per node:
43
+ * `{ type, config, _id/id, ... }`.
44
+ */
45
+ nodes: any[];
46
+ /**
47
+ * Id of the flow's true first node — the node the `start` node points at in
48
+ * the chart `next` chain, resolved by the handler. `isEntryPoint` is a
49
+ * per-descriptor flag (every `aiAgentJob` reports `true`) and MUST NOT be used
50
+ * for ordering, so the evaluator relies on this instead. `undefined` when the
51
+ * handler could not derive ordering.
52
+ */
53
+ firstNodeId?: string;
54
+ /**
55
+ * Endpoint resource. Tri-state: `undefined` = not requested (no endpointId),
56
+ * `null` = requested but the fetch failed, object = resolved.
57
+ */
58
+ endpoint?: any | null;
59
+ /**
60
+ * LLM model resource. Tri-state: `undefined` = not requested (no projectId),
61
+ * `null` = requested but could not be resolved, object = resolved.
62
+ */
63
+ llm?: any | null;
64
+ }
65
+ /**
66
+ * Sane voice defaults applied to a freshly created Set Session Config node.
67
+ * These values already satisfy every Set-Session-Config config check below.
68
+ */
69
+ export declare const RECOMMENDED_SESSION_CONFIG: Record<string, any>;
70
+ export declare function nodeId(n: any): string;
71
+ export declare function evaluateChecks(ctx: AuditContext): VoiceCheck[];
72
+ export declare function summarize(checks: VoiceCheck[]): {
73
+ pass: number;
74
+ fail: number;
75
+ warn: number;
76
+ na: number;
77
+ total: number;
78
+ fixable: number;
79
+ };
80
+ //# sourceMappingURL=voiceChecklist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voiceChecklist.d.ts","sourceRoot":"","sources":["../../src/tools/voiceChecklist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAE1D,qEAAqE;AACrE,MAAM,MAAM,QAAQ,GAChB;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,KAAK,EAAE,GAAG,EAAE,CAAC;IACb;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACtB;;;OAGG;IACH,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CAClB;AAgBD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAW1D,CAAC;AAMF,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAErC;AAiBD,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,UAAU,EAAE,CA8iB9D;AAqCD,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAcA"}