@uns-kit/assistant-workflow 2.0.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +37 -0
- package/dist/clarification-policy.d.ts +64 -0
- package/dist/clarification-policy.d.ts.map +1 -0
- package/dist/clarification-policy.js +174 -0
- package/dist/clarification-policy.js.map +1 -0
- package/dist/decision.d.ts +37 -0
- package/dist/decision.d.ts.map +1 -0
- package/dist/decision.js +100 -0
- package/dist/decision.js.map +1 -0
- package/dist/definition-catalog-replay.d.ts +25 -0
- package/dist/definition-catalog-replay.d.ts.map +1 -0
- package/dist/definition-catalog-replay.js +54 -0
- package/dist/definition-catalog-replay.js.map +1 -0
- package/dist/definition-catalog.d.ts +45 -0
- package/dist/definition-catalog.d.ts.map +1 -0
- package/dist/definition-catalog.js +97 -0
- package/dist/definition-catalog.js.map +1 -0
- package/dist/definition-diagnostics.d.ts +17 -0
- package/dist/definition-diagnostics.d.ts.map +1 -0
- package/dist/definition-diagnostics.js +353 -0
- package/dist/definition-diagnostics.js.map +1 -0
- package/dist/definition-diff.d.ts +51 -0
- package/dist/definition-diff.d.ts.map +1 -0
- package/dist/definition-diff.js +172 -0
- package/dist/definition-diff.js.map +1 -0
- package/dist/definition-json.d.ts +53 -0
- package/dist/definition-json.d.ts.map +1 -0
- package/dist/definition-json.js +186 -0
- package/dist/definition-json.js.map +1 -0
- package/dist/definition-manifest.d.ts +41 -0
- package/dist/definition-manifest.d.ts.map +1 -0
- package/dist/definition-manifest.js +119 -0
- package/dist/definition-manifest.js.map +1 -0
- package/dist/definition-package-execution-json.d.ts +64 -0
- package/dist/definition-package-execution-json.d.ts.map +1 -0
- package/dist/definition-package-execution-json.js +245 -0
- package/dist/definition-package-execution-json.js.map +1 -0
- package/dist/definition-package-execution-replay.d.ts +14 -0
- package/dist/definition-package-execution-replay.d.ts.map +1 -0
- package/dist/definition-package-execution-replay.js +47 -0
- package/dist/definition-package-execution-replay.js.map +1 -0
- package/dist/definition-package-executor.d.ts +52 -0
- package/dist/definition-package-executor.d.ts.map +1 -0
- package/dist/definition-package-executor.js +70 -0
- package/dist/definition-package-executor.js.map +1 -0
- package/dist/definition-package-loader.d.ts +36 -0
- package/dist/definition-package-loader.d.ts.map +1 -0
- package/dist/definition-package-loader.js +56 -0
- package/dist/definition-package-loader.js.map +1 -0
- package/dist/definition-package-replay.d.ts +28 -0
- package/dist/definition-package-replay.d.ts.map +1 -0
- package/dist/definition-package-replay.js +74 -0
- package/dist/definition-package-replay.js.map +1 -0
- package/dist/definition-package-resolver.d.ts +31 -0
- package/dist/definition-package-resolver.d.ts.map +1 -0
- package/dist/definition-package-resolver.js +60 -0
- package/dist/definition-package-resolver.js.map +1 -0
- package/dist/definition-package-review.d.ts +29 -0
- package/dist/definition-package-review.d.ts.map +1 -0
- package/dist/definition-package-review.js +74 -0
- package/dist/definition-package-review.js.map +1 -0
- package/dist/definition-package-run-report.d.ts +25 -0
- package/dist/definition-package-run-report.d.ts.map +1 -0
- package/dist/definition-package-run-report.js +37 -0
- package/dist/definition-package-run-report.js.map +1 -0
- package/dist/definition-package-run.d.ts +20 -0
- package/dist/definition-package-run.d.ts.map +1 -0
- package/dist/definition-package-run.js +41 -0
- package/dist/definition-package-run.js.map +1 -0
- package/dist/definition-package-selection.d.ts +29 -0
- package/dist/definition-package-selection.d.ts.map +1 -0
- package/dist/definition-package-selection.js +68 -0
- package/dist/definition-package-selection.js.map +1 -0
- package/dist/definition-package-smoke.d.ts +74 -0
- package/dist/definition-package-smoke.d.ts.map +1 -0
- package/dist/definition-package-smoke.js +184 -0
- package/dist/definition-package-smoke.js.map +1 -0
- package/dist/definition-package.d.ts +36 -0
- package/dist/definition-package.d.ts.map +1 -0
- package/dist/definition-package.js +114 -0
- package/dist/definition-package.js.map +1 -0
- package/dist/definition-tuning-approval.d.ts +39 -0
- package/dist/definition-tuning-approval.d.ts.map +1 -0
- package/dist/definition-tuning-approval.js +207 -0
- package/dist/definition-tuning-approval.js.map +1 -0
- package/dist/definition-tuning-json.d.ts +58 -0
- package/dist/definition-tuning-json.d.ts.map +1 -0
- package/dist/definition-tuning-json.js +276 -0
- package/dist/definition-tuning-json.js.map +1 -0
- package/dist/definition-tuning-promotion.d.ts +120 -0
- package/dist/definition-tuning-promotion.d.ts.map +1 -0
- package/dist/definition-tuning-promotion.js +460 -0
- package/dist/definition-tuning-promotion.js.map +1 -0
- package/dist/definition-tuning-replay.d.ts +14 -0
- package/dist/definition-tuning-replay.d.ts.map +1 -0
- package/dist/definition-tuning-replay.js +50 -0
- package/dist/definition-tuning-replay.js.map +1 -0
- package/dist/definition-tuning-review-artifact.d.ts +56 -0
- package/dist/definition-tuning-review-artifact.d.ts.map +1 -0
- package/dist/definition-tuning-review-artifact.js +302 -0
- package/dist/definition-tuning-review-artifact.js.map +1 -0
- package/dist/definition-tuning-review.d.ts +59 -0
- package/dist/definition-tuning-review.d.ts.map +1 -0
- package/dist/definition-tuning-review.js +213 -0
- package/dist/definition-tuning-review.js.map +1 -0
- package/dist/definition-tuning-source-patch.d.ts +43 -0
- package/dist/definition-tuning-source-patch.d.ts.map +1 -0
- package/dist/definition-tuning-source-patch.js +214 -0
- package/dist/definition-tuning-source-patch.js.map +1 -0
- package/dist/definition-tuning.d.ts +73 -0
- package/dist/definition-tuning.d.ts.map +1 -0
- package/dist/definition-tuning.js +426 -0
- package/dist/definition-tuning.js.map +1 -0
- package/dist/definition.d.ts +189 -0
- package/dist/definition.d.ts.map +1 -0
- package/dist/definition.js +494 -0
- package/dist/definition.js.map +1 -0
- package/dist/direct-route-invocation.d.ts +132 -0
- package/dist/direct-route-invocation.d.ts.map +1 -0
- package/dist/direct-route-invocation.js +325 -0
- package/dist/direct-route-invocation.js.map +1 -0
- package/dist/direct-route-policy.d.ts +25 -0
- package/dist/direct-route-policy.d.ts.map +1 -0
- package/dist/direct-route-policy.js +106 -0
- package/dist/direct-route-policy.js.map +1 -0
- package/dist/eval-case.d.ts +85 -0
- package/dist/eval-case.d.ts.map +1 -0
- package/dist/eval-case.js +366 -0
- package/dist/eval-case.js.map +1 -0
- package/dist/eval-replay.d.ts +18 -0
- package/dist/eval-replay.d.ts.map +1 -0
- package/dist/eval-replay.js +41 -0
- package/dist/eval-replay.js.map +1 -0
- package/dist/eval-result.d.ts +46 -0
- package/dist/eval-result.d.ts.map +1 -0
- package/dist/eval-result.js +183 -0
- package/dist/eval-result.js.map +1 -0
- package/dist/eval-runner.d.ts +30 -0
- package/dist/eval-runner.d.ts.map +1 -0
- package/dist/eval-runner.js +57 -0
- package/dist/eval-runner.js.map +1 -0
- package/dist/eval-suite.d.ts +43 -0
- package/dist/eval-suite.d.ts.map +1 -0
- package/dist/eval-suite.js +101 -0
- package/dist/eval-suite.js.map +1 -0
- package/dist/execution-plan.d.ts +43 -0
- package/dist/execution-plan.d.ts.map +1 -0
- package/dist/execution-plan.js +187 -0
- package/dist/execution-plan.js.map +1 -0
- package/dist/hosted-tool-policy.d.ts +70 -0
- package/dist/hosted-tool-policy.d.ts.map +1 -0
- package/dist/hosted-tool-policy.js +228 -0
- package/dist/hosted-tool-policy.js.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/memory-policy.d.ts +55 -0
- package/dist/memory-policy.d.ts.map +1 -0
- package/dist/memory-policy.js +187 -0
- package/dist/memory-policy.js.map +1 -0
- package/dist/memory-updates.d.ts +39 -0
- package/dist/memory-updates.d.ts.map +1 -0
- package/dist/memory-updates.js +110 -0
- package/dist/memory-updates.js.map +1 -0
- package/dist/outcome-trace.d.ts +79 -0
- package/dist/outcome-trace.d.ts.map +1 -0
- package/dist/outcome-trace.js +117 -0
- package/dist/outcome-trace.js.map +1 -0
- package/dist/outcome.d.ts +97 -0
- package/dist/outcome.d.ts.map +1 -0
- package/dist/outcome.js +160 -0
- package/dist/outcome.js.map +1 -0
- package/dist/planner-compiler.d.ts +14 -0
- package/dist/planner-compiler.d.ts.map +1 -0
- package/dist/planner-compiler.js +26 -0
- package/dist/planner-compiler.js.map +1 -0
- package/dist/planning.d.ts +36 -0
- package/dist/planning.d.ts.map +1 -0
- package/dist/planning.js +141 -0
- package/dist/planning.js.map +1 -0
- package/dist/policy-resolution.d.ts +10 -0
- package/dist/policy-resolution.d.ts.map +1 -0
- package/dist/policy-resolution.js +30 -0
- package/dist/policy-resolution.js.map +1 -0
- package/dist/run-evaluation.d.ts +29 -0
- package/dist/run-evaluation.d.ts.map +1 -0
- package/dist/run-evaluation.js +128 -0
- package/dist/run-evaluation.js.map +1 -0
- package/dist/run-parity.d.ts +24 -0
- package/dist/run-parity.d.ts.map +1 -0
- package/dist/run-parity.js +36 -0
- package/dist/run-parity.js.map +1 -0
- package/dist/run-report-batch.d.ts +150 -0
- package/dist/run-report-batch.d.ts.map +1 -0
- package/dist/run-report-batch.js +391 -0
- package/dist/run-report-batch.js.map +1 -0
- package/dist/run-report-json.d.ts +76 -0
- package/dist/run-report-json.d.ts.map +1 -0
- package/dist/run-report-json.js +451 -0
- package/dist/run-report-json.js.map +1 -0
- package/dist/run-report.d.ts +22 -0
- package/dist/run-report.d.ts.map +1 -0
- package/dist/run-report.js +46 -0
- package/dist/run-report.js.map +1 -0
- package/dist/run.d.ts +20 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +36 -0
- package/dist/run.js.map +1 -0
- package/dist/tool-bindings.d.ts +42 -0
- package/dist/tool-bindings.d.ts.map +1 -0
- package/dist/tool-bindings.js +124 -0
- package/dist/tool-bindings.js.map +1 -0
- package/dist/tool-capabilities.d.ts +37 -0
- package/dist/tool-capabilities.d.ts.map +1 -0
- package/dist/tool-capabilities.js +91 -0
- package/dist/tool-capabilities.js.map +1 -0
- package/dist/tool-executor.d.ts +63 -0
- package/dist/tool-executor.d.ts.map +1 -0
- package/dist/tool-executor.js +176 -0
- package/dist/tool-executor.js.map +1 -0
- package/dist/tool-fixtures.d.ts +18 -0
- package/dist/tool-fixtures.d.ts.map +1 -0
- package/dist/tool-fixtures.js +52 -0
- package/dist/tool-fixtures.js.map +1 -0
- package/dist/tool-invocations.d.ts +31 -0
- package/dist/tool-invocations.d.ts.map +1 -0
- package/dist/tool-invocations.js +79 -0
- package/dist/tool-invocations.js.map +1 -0
- package/dist/tool-provider-executors.d.ts +43 -0
- package/dist/tool-provider-executors.d.ts.map +1 -0
- package/dist/tool-provider-executors.js +59 -0
- package/dist/tool-provider-executors.js.map +1 -0
- package/dist/tool-result-cache.d.ts +37 -0
- package/dist/tool-result-cache.d.ts.map +1 -0
- package/dist/tool-result-cache.js +173 -0
- package/dist/tool-result-cache.js.map +1 -0
- package/dist/tool-results.d.ts +41 -0
- package/dist/tool-results.d.ts.map +1 -0
- package/dist/tool-results.js +137 -0
- package/dist/tool-results.js.map +1 -0
- package/dist/tool-runtime.d.ts +46 -0
- package/dist/tool-runtime.d.ts.map +1 -0
- package/dist/tool-runtime.js +163 -0
- package/dist/tool-runtime.js.map +1 -0
- package/dist/tool-selection-evaluation.d.ts +214 -0
- package/dist/tool-selection-evaluation.d.ts.map +1 -0
- package/dist/tool-selection-evaluation.js +773 -0
- package/dist/tool-selection-evaluation.js.map +1 -0
- package/dist/tool-selection-json.d.ts +71 -0
- package/dist/tool-selection-json.d.ts.map +1 -0
- package/dist/tool-selection-json.js +284 -0
- package/dist/tool-selection-json.js.map +1 -0
- package/dist/tool-selection-policy.d.ts +81 -0
- package/dist/tool-selection-policy.d.ts.map +1 -0
- package/dist/tool-selection-policy.js +376 -0
- package/dist/tool-selection-policy.js.map +1 -0
- package/dist/tool-selection-replay.d.ts +26 -0
- package/dist/tool-selection-replay.d.ts.map +1 -0
- package/dist/tool-selection-replay.js +88 -0
- package/dist/tool-selection-replay.js.map +1 -0
- package/dist/tool-selection-rules.d.ts +46 -0
- package/dist/tool-selection-rules.d.ts.map +1 -0
- package/dist/tool-selection-rules.js +183 -0
- package/dist/tool-selection-rules.js.map +1 -0
- package/dist/tool-selection-trace-export.d.ts +37 -0
- package/dist/tool-selection-trace-export.d.ts.map +1 -0
- package/dist/tool-selection-trace-export.js +324 -0
- package/dist/tool-selection-trace-export.js.map +1 -0
- package/dist/trace-events.d.ts +14 -0
- package/dist/trace-events.d.ts.map +1 -0
- package/dist/trace-events.js +65 -0
- package/dist/trace-events.js.map +1 -0
- package/dist/trace-payload.d.ts +24 -0
- package/dist/trace-payload.d.ts.map +1 -0
- package/dist/trace-payload.js +113 -0
- package/dist/trace-payload.js.map +1 -0
- package/dist/trace-replay.d.ts +276 -0
- package/dist/trace-replay.d.ts.map +1 -0
- package/dist/trace-replay.js +685 -0
- package/dist/trace-replay.js.map +1 -0
- package/dist/trace-report.d.ts +320 -0
- package/dist/trace-report.d.ts.map +1 -0
- package/dist/trace-report.js +1394 -0
- package/dist/trace-report.js.map +1 -0
- package/dist/trace-stages.d.ts +70 -0
- package/dist/trace-stages.d.ts.map +1 -0
- package/dist/trace-stages.js +103 -0
- package/dist/trace-stages.js.map +1 -0
- package/dist/value-readers.d.ts +20 -0
- package/dist/value-readers.d.ts.map +1 -0
- package/dist/value-readers.js +82 -0
- package/dist/value-readers.js.map +1 -0
- package/package.json +341 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { validateAssistantWorkflowDefinition, } from "./definition-diagnostics.js";
|
|
2
|
+
export const ASSISTANT_WORKFLOW_DEFINITION_JSON_SCHEMA_VERSION = 1;
|
|
3
|
+
export function serializeAssistantWorkflowDefinition(definition) {
|
|
4
|
+
const validation = validateAssistantWorkflowDefinition(definition);
|
|
5
|
+
return {
|
|
6
|
+
schemaVersion: ASSISTANT_WORKFLOW_DEFINITION_JSON_SCHEMA_VERSION,
|
|
7
|
+
workflowId: definition.id,
|
|
8
|
+
workflowVersion: definition.version,
|
|
9
|
+
summary: buildAssistantWorkflowDefinitionSummary(definition, validation.diagnostics),
|
|
10
|
+
diagnostics: validation.diagnostics,
|
|
11
|
+
definition,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export function stringifyAssistantWorkflowDefinition(definition, space) {
|
|
15
|
+
return JSON.stringify(serializeAssistantWorkflowDefinition(definition), null, space);
|
|
16
|
+
}
|
|
17
|
+
export function stringifyAssistantWorkflowDefinitionLines(definitions, options = {}) {
|
|
18
|
+
const lines = definitions.map((definition) => JSON.stringify(serializeAssistantWorkflowDefinition(definition)));
|
|
19
|
+
if (!lines.length)
|
|
20
|
+
return "";
|
|
21
|
+
return options.trailingNewline === true ? `${lines.join("\n")}\n` : lines.join("\n");
|
|
22
|
+
}
|
|
23
|
+
export function parseAssistantWorkflowSerializedDefinition(value) {
|
|
24
|
+
if (!isRecord(value))
|
|
25
|
+
return null;
|
|
26
|
+
if (value["schemaVersion"] !== ASSISTANT_WORKFLOW_DEFINITION_JSON_SCHEMA_VERSION)
|
|
27
|
+
return null;
|
|
28
|
+
if (typeof value["workflowId"] !== "string" || !value["workflowId"].trim().length)
|
|
29
|
+
return null;
|
|
30
|
+
if (typeof value["workflowVersion"] !== "number" || !Number.isFinite(value["workflowVersion"]))
|
|
31
|
+
return null;
|
|
32
|
+
if (!isDefinitionSummary(value["summary"]))
|
|
33
|
+
return null;
|
|
34
|
+
if (!isDiagnosticArray(value["diagnostics"]))
|
|
35
|
+
return null;
|
|
36
|
+
if (!isSerializedDefinitionBody(value["definition"]))
|
|
37
|
+
return null;
|
|
38
|
+
return {
|
|
39
|
+
schemaVersion: ASSISTANT_WORKFLOW_DEFINITION_JSON_SCHEMA_VERSION,
|
|
40
|
+
workflowId: value["workflowId"],
|
|
41
|
+
workflowVersion: value["workflowVersion"],
|
|
42
|
+
summary: value["summary"],
|
|
43
|
+
diagnostics: value["diagnostics"],
|
|
44
|
+
definition: value["definition"],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function parseAssistantWorkflowSerializedDefinitionLines(input) {
|
|
48
|
+
const definitions = [];
|
|
49
|
+
const errors = [];
|
|
50
|
+
let lineCount = 0;
|
|
51
|
+
for (const [index, line] of input.split(/\r?\n/).entries()) {
|
|
52
|
+
const trimmed = line.trim();
|
|
53
|
+
if (!trimmed.length)
|
|
54
|
+
continue;
|
|
55
|
+
const lineNumber = index + 1;
|
|
56
|
+
lineCount += 1;
|
|
57
|
+
let parsed;
|
|
58
|
+
try {
|
|
59
|
+
parsed = JSON.parse(trimmed);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
errors.push({
|
|
63
|
+
lineNumber,
|
|
64
|
+
reason: "invalid_json",
|
|
65
|
+
preview: previewLine(trimmed),
|
|
66
|
+
});
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const definition = parseAssistantWorkflowSerializedDefinition(parsed);
|
|
70
|
+
if (!definition) {
|
|
71
|
+
errors.push({
|
|
72
|
+
lineNumber,
|
|
73
|
+
reason: "invalid_definition",
|
|
74
|
+
preview: previewLine(trimmed),
|
|
75
|
+
});
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
definitions.push(definition);
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
lineCount,
|
|
82
|
+
definitionCount: definitions.length,
|
|
83
|
+
errorCount: errors.length,
|
|
84
|
+
definitions,
|
|
85
|
+
errors,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export function buildAssistantWorkflowDefinitionSummary(definition, diagnostics = validateAssistantWorkflowDefinition(definition).diagnostics) {
|
|
89
|
+
return {
|
|
90
|
+
workflowId: definition.id,
|
|
91
|
+
workflowVersion: definition.version,
|
|
92
|
+
valid: diagnostics.every((diagnostic) => diagnostic.severity !== "error"),
|
|
93
|
+
errorCount: diagnostics.filter((diagnostic) => diagnostic.severity === "error").length,
|
|
94
|
+
warningCount: diagnostics.filter((diagnostic) => diagnostic.severity === "warning").length,
|
|
95
|
+
intentCount: definition.intents.length,
|
|
96
|
+
toolCapabilityCount: definition.tools?.length ?? 0,
|
|
97
|
+
toolBindingCount: definition.toolBindings?.length ?? 0,
|
|
98
|
+
memorySlotCount: definition.memorySlots?.length ?? 0,
|
|
99
|
+
planningStepCount: definition.planningSteps?.length ?? 0,
|
|
100
|
+
clarificationRuleCount: definition.clarificationRules?.length ?? 0,
|
|
101
|
+
presentationCount: definition.presentations?.length ?? 0,
|
|
102
|
+
unboundToolNames: collectDiagnosticNames(diagnostics, "unbound_tool_capability"),
|
|
103
|
+
bindingWithoutCapabilityNames: collectDiagnosticNames(diagnostics, "binding_without_capability"),
|
|
104
|
+
providerMismatchToolNames: collectDiagnosticNames(diagnostics, "tool_provider_mismatch"),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
export function buildAssistantWorkflowDefinitionTracePayload(serialized) {
|
|
108
|
+
return {
|
|
109
|
+
schemaVersion: serialized.schemaVersion,
|
|
110
|
+
workflowId: serialized.workflowId,
|
|
111
|
+
workflowVersion: serialized.workflowVersion,
|
|
112
|
+
summary: serialized.summary,
|
|
113
|
+
diagnostics: serialized.diagnostics.map((diagnostic) => ({
|
|
114
|
+
severity: diagnostic.severity,
|
|
115
|
+
code: diagnostic.code,
|
|
116
|
+
path: diagnostic.path,
|
|
117
|
+
message: diagnostic.message,
|
|
118
|
+
})),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function collectDiagnosticNames(diagnostics, code) {
|
|
122
|
+
const names = diagnostics
|
|
123
|
+
.filter((diagnostic) => diagnostic.code === code)
|
|
124
|
+
.map((diagnostic) => {
|
|
125
|
+
const toolMatch = /tool capability ([a-zA-Z0-9_-]+)/.exec(diagnostic.message);
|
|
126
|
+
if (toolMatch?.[1])
|
|
127
|
+
return toolMatch[1];
|
|
128
|
+
const bindingMatch = /tool capability: ([a-zA-Z0-9_-]+)/.exec(diagnostic.message);
|
|
129
|
+
if (bindingMatch?.[1])
|
|
130
|
+
return bindingMatch[1];
|
|
131
|
+
const providerMatch = /tool binding ([a-zA-Z0-9_-]+) provider/.exec(diagnostic.message);
|
|
132
|
+
return providerMatch?.[1] ?? null;
|
|
133
|
+
})
|
|
134
|
+
.filter((name) => name !== null);
|
|
135
|
+
return [...new Set(names)].sort();
|
|
136
|
+
}
|
|
137
|
+
function isDefinitionSummary(value) {
|
|
138
|
+
if (!isRecord(value))
|
|
139
|
+
return false;
|
|
140
|
+
return (typeof value["workflowId"] === "string" &&
|
|
141
|
+
typeof value["workflowVersion"] === "number" &&
|
|
142
|
+
typeof value["valid"] === "boolean" &&
|
|
143
|
+
isNonNegativeNumber(value["errorCount"]) &&
|
|
144
|
+
isNonNegativeNumber(value["warningCount"]) &&
|
|
145
|
+
isNonNegativeNumber(value["intentCount"]) &&
|
|
146
|
+
isNonNegativeNumber(value["toolCapabilityCount"]) &&
|
|
147
|
+
isNonNegativeNumber(value["toolBindingCount"]) &&
|
|
148
|
+
isNonNegativeNumber(value["memorySlotCount"]) &&
|
|
149
|
+
isNonNegativeNumber(value["planningStepCount"]) &&
|
|
150
|
+
isNonNegativeNumber(value["clarificationRuleCount"]) &&
|
|
151
|
+
isNonNegativeNumber(value["presentationCount"]) &&
|
|
152
|
+
isStringArray(value["unboundToolNames"]) &&
|
|
153
|
+
isStringArray(value["bindingWithoutCapabilityNames"]) &&
|
|
154
|
+
isStringArray(value["providerMismatchToolNames"]));
|
|
155
|
+
}
|
|
156
|
+
function isDiagnosticArray(value) {
|
|
157
|
+
return Array.isArray(value) && value.every(isDiagnostic);
|
|
158
|
+
}
|
|
159
|
+
function isDiagnostic(value) {
|
|
160
|
+
if (!isRecord(value))
|
|
161
|
+
return false;
|
|
162
|
+
return ((value["severity"] === "error" || value["severity"] === "warning") &&
|
|
163
|
+
typeof value["code"] === "string" &&
|
|
164
|
+
typeof value["path"] === "string" &&
|
|
165
|
+
typeof value["message"] === "string");
|
|
166
|
+
}
|
|
167
|
+
function isSerializedDefinitionBody(value) {
|
|
168
|
+
if (!isRecord(value))
|
|
169
|
+
return false;
|
|
170
|
+
return (typeof value["id"] === "string" &&
|
|
171
|
+
typeof value["version"] === "number" &&
|
|
172
|
+
Array.isArray(value["intents"]));
|
|
173
|
+
}
|
|
174
|
+
function isStringArray(value) {
|
|
175
|
+
return Array.isArray(value) && value.every((entry) => typeof entry === "string");
|
|
176
|
+
}
|
|
177
|
+
function isNonNegativeNumber(value) {
|
|
178
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0;
|
|
179
|
+
}
|
|
180
|
+
function isRecord(value) {
|
|
181
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
182
|
+
}
|
|
183
|
+
function previewLine(line) {
|
|
184
|
+
return line.length <= 160 ? line : `${line.slice(0, 157)}...`;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=definition-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition-json.js","sourceRoot":"","sources":["../src/definition-json.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantWorkflowDefinition } from \"./definition.js\";\nimport {\n validateAssistantWorkflowDefinition,\n type AssistantWorkflowDefinitionDiagnostic,\n} from \"./definition-diagnostics.js\";\nimport type { AssistantWorkflowJsonValue } from \"./run-report-json.js\";\n\nexport const ASSISTANT_WORKFLOW_DEFINITION_JSON_SCHEMA_VERSION = 1;\n\nexport type AssistantWorkflowDefinitionSummary = {\n workflowId: string;\n workflowVersion: number;\n valid: boolean;\n errorCount: number;\n warningCount: number;\n intentCount: number;\n toolCapabilityCount: number;\n toolBindingCount: number;\n memorySlotCount: number;\n planningStepCount: number;\n clarificationRuleCount: number;\n presentationCount: number;\n unboundToolNames: string[];\n bindingWithoutCapabilityNames: string[];\n providerMismatchToolNames: string[];\n};\n\nexport type AssistantWorkflowSerializedDefinition = {\n schemaVersion: typeof ASSISTANT_WORKFLOW_DEFINITION_JSON_SCHEMA_VERSION;\n workflowId: string;\n workflowVersion: number;\n summary: AssistantWorkflowDefinitionSummary;\n diagnostics: AssistantWorkflowDefinitionDiagnostic[];\n definition: AssistantWorkflowDefinition<string, string, string, string>;\n};\n\nexport type AssistantWorkflowSerializedDefinitionLinesOptions = {\n trailingNewline?: boolean;\n};\n\nexport type AssistantWorkflowSerializedDefinitionLineErrorReason =\n | \"invalid_json\"\n | \"invalid_definition\";\n\nexport type AssistantWorkflowSerializedDefinitionLineError = {\n lineNumber: number;\n reason: AssistantWorkflowSerializedDefinitionLineErrorReason;\n preview: string;\n};\n\nexport type AssistantWorkflowSerializedDefinitionLinesParseResult = {\n lineCount: number;\n definitionCount: number;\n errorCount: number;\n definitions: AssistantWorkflowSerializedDefinition[];\n errors: AssistantWorkflowSerializedDefinitionLineError[];\n};\n\nexport function serializeAssistantWorkflowDefinition(\n definition: AssistantWorkflowDefinition<string, string, string, string>,\n): AssistantWorkflowSerializedDefinition {\n const validation = validateAssistantWorkflowDefinition(definition);\n return {\n schemaVersion: ASSISTANT_WORKFLOW_DEFINITION_JSON_SCHEMA_VERSION,\n workflowId: definition.id,\n workflowVersion: definition.version,\n summary: buildAssistantWorkflowDefinitionSummary(definition, validation.diagnostics),\n diagnostics: validation.diagnostics,\n definition,\n };\n}\n\nexport function stringifyAssistantWorkflowDefinition(\n definition: AssistantWorkflowDefinition<string, string, string, string>,\n space?: number,\n): string {\n return JSON.stringify(serializeAssistantWorkflowDefinition(definition), null, space);\n}\n\nexport function stringifyAssistantWorkflowDefinitionLines(\n definitions: readonly AssistantWorkflowDefinition<string, string, string, string>[],\n options: AssistantWorkflowSerializedDefinitionLinesOptions = {},\n): string {\n const lines = definitions.map((definition) => JSON.stringify(serializeAssistantWorkflowDefinition(definition)));\n if (!lines.length) return \"\";\n return options.trailingNewline === true ? `${lines.join(\"\\n\")}\\n` : lines.join(\"\\n\");\n}\n\nexport function parseAssistantWorkflowSerializedDefinition(\n value: unknown,\n): AssistantWorkflowSerializedDefinition | null {\n if (!isRecord(value)) return null;\n if (value[\"schemaVersion\"] !== ASSISTANT_WORKFLOW_DEFINITION_JSON_SCHEMA_VERSION) return null;\n if (typeof value[\"workflowId\"] !== \"string\" || !value[\"workflowId\"].trim().length) return null;\n if (typeof value[\"workflowVersion\"] !== \"number\" || !Number.isFinite(value[\"workflowVersion\"])) return null;\n if (!isDefinitionSummary(value[\"summary\"])) return null;\n if (!isDiagnosticArray(value[\"diagnostics\"])) return null;\n if (!isSerializedDefinitionBody(value[\"definition\"])) return null;\n\n return {\n schemaVersion: ASSISTANT_WORKFLOW_DEFINITION_JSON_SCHEMA_VERSION,\n workflowId: value[\"workflowId\"],\n workflowVersion: value[\"workflowVersion\"],\n summary: value[\"summary\"],\n diagnostics: value[\"diagnostics\"],\n definition: value[\"definition\"],\n };\n}\n\nexport function parseAssistantWorkflowSerializedDefinitionLines(\n input: string,\n): AssistantWorkflowSerializedDefinitionLinesParseResult {\n const definitions: AssistantWorkflowSerializedDefinition[] = [];\n const errors: AssistantWorkflowSerializedDefinitionLineError[] = [];\n let lineCount = 0;\n\n for (const [index, line] of input.split(/\\r?\\n/).entries()) {\n const trimmed = line.trim();\n if (!trimmed.length) continue;\n const lineNumber = index + 1;\n lineCount += 1;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(trimmed);\n } catch {\n errors.push({\n lineNumber,\n reason: \"invalid_json\",\n preview: previewLine(trimmed),\n });\n continue;\n }\n\n const definition = parseAssistantWorkflowSerializedDefinition(parsed);\n if (!definition) {\n errors.push({\n lineNumber,\n reason: \"invalid_definition\",\n preview: previewLine(trimmed),\n });\n continue;\n }\n definitions.push(definition);\n }\n\n return {\n lineCount,\n definitionCount: definitions.length,\n errorCount: errors.length,\n definitions,\n errors,\n };\n}\n\nexport function buildAssistantWorkflowDefinitionSummary(\n definition: AssistantWorkflowDefinition<string, string, string, string>,\n diagnostics: readonly AssistantWorkflowDefinitionDiagnostic[] = validateAssistantWorkflowDefinition(definition).diagnostics,\n): AssistantWorkflowDefinitionSummary {\n return {\n workflowId: definition.id,\n workflowVersion: definition.version,\n valid: diagnostics.every((diagnostic) => diagnostic.severity !== \"error\"),\n errorCount: diagnostics.filter((diagnostic) => diagnostic.severity === \"error\").length,\n warningCount: diagnostics.filter((diagnostic) => diagnostic.severity === \"warning\").length,\n intentCount: definition.intents.length,\n toolCapabilityCount: definition.tools?.length ?? 0,\n toolBindingCount: definition.toolBindings?.length ?? 0,\n memorySlotCount: definition.memorySlots?.length ?? 0,\n planningStepCount: definition.planningSteps?.length ?? 0,\n clarificationRuleCount: definition.clarificationRules?.length ?? 0,\n presentationCount: definition.presentations?.length ?? 0,\n unboundToolNames: collectDiagnosticNames(diagnostics, \"unbound_tool_capability\"),\n bindingWithoutCapabilityNames: collectDiagnosticNames(diagnostics, \"binding_without_capability\"),\n providerMismatchToolNames: collectDiagnosticNames(diagnostics, \"tool_provider_mismatch\"),\n };\n}\n\nexport function buildAssistantWorkflowDefinitionTracePayload(\n serialized: AssistantWorkflowSerializedDefinition,\n): Record<string, AssistantWorkflowJsonValue> {\n return {\n schemaVersion: serialized.schemaVersion,\n workflowId: serialized.workflowId,\n workflowVersion: serialized.workflowVersion,\n summary: serialized.summary,\n diagnostics: serialized.diagnostics.map((diagnostic) => ({\n severity: diagnostic.severity,\n code: diagnostic.code,\n path: diagnostic.path,\n message: diagnostic.message,\n })),\n };\n}\n\nfunction collectDiagnosticNames(\n diagnostics: readonly AssistantWorkflowDefinitionDiagnostic[],\n code: AssistantWorkflowDefinitionDiagnostic[\"code\"],\n): string[] {\n const names = diagnostics\n .filter((diagnostic) => diagnostic.code === code)\n .map((diagnostic) => {\n const toolMatch = /tool capability ([a-zA-Z0-9_-]+)/.exec(diagnostic.message);\n if (toolMatch?.[1]) return toolMatch[1];\n const bindingMatch = /tool capability: ([a-zA-Z0-9_-]+)/.exec(diagnostic.message);\n if (bindingMatch?.[1]) return bindingMatch[1];\n const providerMatch = /tool binding ([a-zA-Z0-9_-]+) provider/.exec(diagnostic.message);\n return providerMatch?.[1] ?? null;\n })\n .filter((name): name is string => name !== null);\n return [...new Set(names)].sort();\n}\n\nfunction isDefinitionSummary(value: unknown): value is AssistantWorkflowDefinitionSummary {\n if (!isRecord(value)) return false;\n return (\n typeof value[\"workflowId\"] === \"string\" &&\n typeof value[\"workflowVersion\"] === \"number\" &&\n typeof value[\"valid\"] === \"boolean\" &&\n isNonNegativeNumber(value[\"errorCount\"]) &&\n isNonNegativeNumber(value[\"warningCount\"]) &&\n isNonNegativeNumber(value[\"intentCount\"]) &&\n isNonNegativeNumber(value[\"toolCapabilityCount\"]) &&\n isNonNegativeNumber(value[\"toolBindingCount\"]) &&\n isNonNegativeNumber(value[\"memorySlotCount\"]) &&\n isNonNegativeNumber(value[\"planningStepCount\"]) &&\n isNonNegativeNumber(value[\"clarificationRuleCount\"]) &&\n isNonNegativeNumber(value[\"presentationCount\"]) &&\n isStringArray(value[\"unboundToolNames\"]) &&\n isStringArray(value[\"bindingWithoutCapabilityNames\"]) &&\n isStringArray(value[\"providerMismatchToolNames\"])\n );\n}\n\nfunction isDiagnosticArray(value: unknown): value is AssistantWorkflowDefinitionDiagnostic[] {\n return Array.isArray(value) && value.every(isDiagnostic);\n}\n\nfunction isDiagnostic(value: unknown): value is AssistantWorkflowDefinitionDiagnostic {\n if (!isRecord(value)) return false;\n return (\n (value[\"severity\"] === \"error\" || value[\"severity\"] === \"warning\") &&\n typeof value[\"code\"] === \"string\" &&\n typeof value[\"path\"] === \"string\" &&\n typeof value[\"message\"] === \"string\"\n );\n}\n\nfunction isSerializedDefinitionBody(\n value: unknown,\n): value is AssistantWorkflowDefinition<string, string, string, string> {\n if (!isRecord(value)) return false;\n return (\n typeof value[\"id\"] === \"string\" &&\n typeof value[\"version\"] === \"number\" &&\n Array.isArray(value[\"intents\"])\n );\n}\n\nfunction isStringArray(value: unknown): value is string[] {\n return Array.isArray(value) && value.every((entry) => typeof entry === \"string\");\n}\n\nfunction isNonNegativeNumber(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value) && value >= 0;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction previewLine(line: string): string {\n return line.length <= 160 ? line : `${line.slice(0, 157)}...`;\n}\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { AssistantWorkflowDefinition } from "./definition.js";
|
|
2
|
+
import { type AssistantWorkflowSerializedDefinition } from "./definition-json.js";
|
|
3
|
+
import type { AssistantWorkflowJsonValue } from "./run-report-json.js";
|
|
4
|
+
export declare const ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_FORMAT = "assistant.workflow.definition";
|
|
5
|
+
export declare const ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_VERSION = 1;
|
|
6
|
+
export type AssistantWorkflowDefinitionManifest = {
|
|
7
|
+
format: typeof ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_FORMAT;
|
|
8
|
+
formatVersion: typeof ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_VERSION;
|
|
9
|
+
generatedAt: string;
|
|
10
|
+
workflowId: string;
|
|
11
|
+
workflowVersion: number;
|
|
12
|
+
valid: boolean;
|
|
13
|
+
serializedDefinition: AssistantWorkflowSerializedDefinition;
|
|
14
|
+
};
|
|
15
|
+
export type AssistantWorkflowDefinitionManifestOptions = {
|
|
16
|
+
generatedAt?: string;
|
|
17
|
+
};
|
|
18
|
+
export type AssistantWorkflowDefinitionManifestLinesOptions = AssistantWorkflowDefinitionManifestOptions & {
|
|
19
|
+
trailingNewline?: boolean;
|
|
20
|
+
};
|
|
21
|
+
export type AssistantWorkflowDefinitionManifestLineErrorReason = "invalid_json" | "invalid_manifest";
|
|
22
|
+
export type AssistantWorkflowDefinitionManifestLineError = {
|
|
23
|
+
lineNumber: number;
|
|
24
|
+
reason: AssistantWorkflowDefinitionManifestLineErrorReason;
|
|
25
|
+
preview: string;
|
|
26
|
+
};
|
|
27
|
+
export type AssistantWorkflowDefinitionManifestLinesParseResult = {
|
|
28
|
+
lineCount: number;
|
|
29
|
+
manifestCount: number;
|
|
30
|
+
errorCount: number;
|
|
31
|
+
manifests: AssistantWorkflowDefinitionManifest[];
|
|
32
|
+
errors: AssistantWorkflowDefinitionManifestLineError[];
|
|
33
|
+
};
|
|
34
|
+
export declare function buildAssistantWorkflowDefinitionManifest(definition: AssistantWorkflowDefinition<string, string, string, string>, options?: AssistantWorkflowDefinitionManifestOptions): AssistantWorkflowDefinitionManifest;
|
|
35
|
+
export declare function buildAssistantWorkflowSerializedDefinitionManifest(serializedDefinition: AssistantWorkflowSerializedDefinition, options?: AssistantWorkflowDefinitionManifestOptions): AssistantWorkflowDefinitionManifest;
|
|
36
|
+
export declare function stringifyAssistantWorkflowDefinitionManifest(definition: AssistantWorkflowDefinition<string, string, string, string>, space?: number, options?: AssistantWorkflowDefinitionManifestOptions): string;
|
|
37
|
+
export declare function stringifyAssistantWorkflowDefinitionManifestLines(definitions: readonly AssistantWorkflowDefinition<string, string, string, string>[], options?: AssistantWorkflowDefinitionManifestLinesOptions): string;
|
|
38
|
+
export declare function parseAssistantWorkflowDefinitionManifest(value: unknown): AssistantWorkflowDefinitionManifest | null;
|
|
39
|
+
export declare function parseAssistantWorkflowDefinitionManifestLines(input: string): AssistantWorkflowDefinitionManifestLinesParseResult;
|
|
40
|
+
export declare function buildAssistantWorkflowDefinitionManifestTracePayload(manifest: AssistantWorkflowDefinitionManifest): Record<string, AssistantWorkflowJsonValue>;
|
|
41
|
+
//# sourceMappingURL=definition-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition-manifest.d.ts","sourceRoot":"","sources":["../src/definition-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAIL,KAAK,qCAAqC,EAC3C,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,eAAO,MAAM,6CAA6C,kCAAkC,CAAC;AAC7F,eAAO,MAAM,8CAA8C,IAAI,CAAC;AAEhE,MAAM,MAAM,mCAAmC,GAAG;IAChD,MAAM,EAAE,OAAO,6CAA6C,CAAC;IAC7D,aAAa,EAAE,OAAO,8CAA8C,CAAC;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,oBAAoB,EAAE,qCAAqC,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,0CAA0C,GAAG;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,+CAA+C,GACzD,0CAA0C,GAAG;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEJ,MAAM,MAAM,kDAAkD,GAC1D,cAAc,GACd,kBAAkB,CAAC;AAEvB,MAAM,MAAM,4CAA4C,GAAG;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kDAAkD,CAAC;IAC3D,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mDAAmD,GAAG;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,mCAAmC,EAAE,CAAC;IACjD,MAAM,EAAE,4CAA4C,EAAE,CAAC;CACxD,CAAC;AAEF,wBAAgB,wCAAwC,CACtD,UAAU,EAAE,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACvE,OAAO,GAAE,0CAA+C,GACvD,mCAAmC,CAKrC;AAED,wBAAgB,kDAAkD,CAChE,oBAAoB,EAAE,qCAAqC,EAC3D,OAAO,GAAE,0CAA+C,GACvD,mCAAmC,CAUrC;AAED,wBAAgB,4CAA4C,CAC1D,UAAU,EAAE,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACvE,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,GAAE,0CAA+C,GACvD,MAAM,CAER;AAED,wBAAgB,iDAAiD,CAC/D,WAAW,EAAE,SAAS,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EACnF,OAAO,GAAE,+CAAoD,GAC5D,MAAM,CAMR;AAED,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,OAAO,GACb,mCAAmC,GAAG,IAAI,CAwB5C;AAED,wBAAgB,6CAA6C,CAC3D,KAAK,EAAE,MAAM,GACZ,mDAAmD,CA0CrD;AAED,wBAAgB,oDAAoD,CAClE,QAAQ,EAAE,mCAAmC,GAC5C,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAU5C"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { buildAssistantWorkflowDefinitionTracePayload, parseAssistantWorkflowSerializedDefinition, serializeAssistantWorkflowDefinition, } from "./definition-json.js";
|
|
2
|
+
export const ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_FORMAT = "assistant.workflow.definition";
|
|
3
|
+
export const ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_VERSION = 1;
|
|
4
|
+
export function buildAssistantWorkflowDefinitionManifest(definition, options = {}) {
|
|
5
|
+
return buildAssistantWorkflowSerializedDefinitionManifest(serializeAssistantWorkflowDefinition(definition), options);
|
|
6
|
+
}
|
|
7
|
+
export function buildAssistantWorkflowSerializedDefinitionManifest(serializedDefinition, options = {}) {
|
|
8
|
+
return {
|
|
9
|
+
format: ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_FORMAT,
|
|
10
|
+
formatVersion: ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_VERSION,
|
|
11
|
+
generatedAt: options.generatedAt ?? new Date().toISOString(),
|
|
12
|
+
workflowId: serializedDefinition.workflowId,
|
|
13
|
+
workflowVersion: serializedDefinition.workflowVersion,
|
|
14
|
+
valid: serializedDefinition.summary.valid,
|
|
15
|
+
serializedDefinition,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function stringifyAssistantWorkflowDefinitionManifest(definition, space, options = {}) {
|
|
19
|
+
return JSON.stringify(buildAssistantWorkflowDefinitionManifest(definition, options), null, space);
|
|
20
|
+
}
|
|
21
|
+
export function stringifyAssistantWorkflowDefinitionManifestLines(definitions, options = {}) {
|
|
22
|
+
const lines = definitions.map((definition) => JSON.stringify(buildAssistantWorkflowDefinitionManifest(definition, options)));
|
|
23
|
+
if (!lines.length)
|
|
24
|
+
return "";
|
|
25
|
+
return options.trailingNewline === true ? `${lines.join("\n")}\n` : lines.join("\n");
|
|
26
|
+
}
|
|
27
|
+
export function parseAssistantWorkflowDefinitionManifest(value) {
|
|
28
|
+
if (!isRecord(value))
|
|
29
|
+
return null;
|
|
30
|
+
if (value["format"] !== ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_FORMAT)
|
|
31
|
+
return null;
|
|
32
|
+
if (value["formatVersion"] !== ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_VERSION)
|
|
33
|
+
return null;
|
|
34
|
+
if (typeof value["generatedAt"] !== "string" || !value["generatedAt"].trim().length)
|
|
35
|
+
return null;
|
|
36
|
+
if (typeof value["workflowId"] !== "string" || !value["workflowId"].trim().length)
|
|
37
|
+
return null;
|
|
38
|
+
if (typeof value["workflowVersion"] !== "number" || !Number.isFinite(value["workflowVersion"]))
|
|
39
|
+
return null;
|
|
40
|
+
if (typeof value["valid"] !== "boolean")
|
|
41
|
+
return null;
|
|
42
|
+
const serializedDefinition = parseAssistantWorkflowSerializedDefinition(value["serializedDefinition"]);
|
|
43
|
+
if (!serializedDefinition)
|
|
44
|
+
return null;
|
|
45
|
+
if (serializedDefinition.workflowId !== value["workflowId"])
|
|
46
|
+
return null;
|
|
47
|
+
if (serializedDefinition.workflowVersion !== value["workflowVersion"])
|
|
48
|
+
return null;
|
|
49
|
+
if (serializedDefinition.summary.valid !== value["valid"])
|
|
50
|
+
return null;
|
|
51
|
+
return {
|
|
52
|
+
format: ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_FORMAT,
|
|
53
|
+
formatVersion: ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_VERSION,
|
|
54
|
+
generatedAt: value["generatedAt"],
|
|
55
|
+
workflowId: value["workflowId"],
|
|
56
|
+
workflowVersion: value["workflowVersion"],
|
|
57
|
+
valid: value["valid"],
|
|
58
|
+
serializedDefinition,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export function parseAssistantWorkflowDefinitionManifestLines(input) {
|
|
62
|
+
const manifests = [];
|
|
63
|
+
const errors = [];
|
|
64
|
+
let lineCount = 0;
|
|
65
|
+
for (const [index, line] of input.split(/\r?\n/).entries()) {
|
|
66
|
+
const trimmed = line.trim();
|
|
67
|
+
if (!trimmed.length)
|
|
68
|
+
continue;
|
|
69
|
+
const lineNumber = index + 1;
|
|
70
|
+
lineCount += 1;
|
|
71
|
+
let parsed;
|
|
72
|
+
try {
|
|
73
|
+
parsed = JSON.parse(trimmed);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
errors.push({
|
|
77
|
+
lineNumber,
|
|
78
|
+
reason: "invalid_json",
|
|
79
|
+
preview: previewLine(trimmed),
|
|
80
|
+
});
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const manifest = parseAssistantWorkflowDefinitionManifest(parsed);
|
|
84
|
+
if (!manifest) {
|
|
85
|
+
errors.push({
|
|
86
|
+
lineNumber,
|
|
87
|
+
reason: "invalid_manifest",
|
|
88
|
+
preview: previewLine(trimmed),
|
|
89
|
+
});
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
manifests.push(manifest);
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
lineCount,
|
|
96
|
+
manifestCount: manifests.length,
|
|
97
|
+
errorCount: errors.length,
|
|
98
|
+
manifests,
|
|
99
|
+
errors,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export function buildAssistantWorkflowDefinitionManifestTracePayload(manifest) {
|
|
103
|
+
return {
|
|
104
|
+
format: manifest.format,
|
|
105
|
+
formatVersion: manifest.formatVersion,
|
|
106
|
+
generatedAt: manifest.generatedAt,
|
|
107
|
+
workflowId: manifest.workflowId,
|
|
108
|
+
workflowVersion: manifest.workflowVersion,
|
|
109
|
+
valid: manifest.valid,
|
|
110
|
+
serializedDefinition: buildAssistantWorkflowDefinitionTracePayload(manifest.serializedDefinition),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function isRecord(value) {
|
|
114
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
115
|
+
}
|
|
116
|
+
function previewLine(value) {
|
|
117
|
+
return value.length <= 160 ? value : `${value.slice(0, 157)}...`;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=definition-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition-manifest.js","sourceRoot":"","sources":["../src/definition-manifest.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantWorkflowDefinition } from \"./definition.js\";\nimport {\n buildAssistantWorkflowDefinitionTracePayload,\n parseAssistantWorkflowSerializedDefinition,\n serializeAssistantWorkflowDefinition,\n type AssistantWorkflowSerializedDefinition,\n} from \"./definition-json.js\";\nimport type { AssistantWorkflowJsonValue } from \"./run-report-json.js\";\n\nexport const ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_FORMAT = \"assistant.workflow.definition\";\nexport const ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_VERSION = 1;\n\nexport type AssistantWorkflowDefinitionManifest = {\n format: typeof ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_FORMAT;\n formatVersion: typeof ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_VERSION;\n generatedAt: string;\n workflowId: string;\n workflowVersion: number;\n valid: boolean;\n serializedDefinition: AssistantWorkflowSerializedDefinition;\n};\n\nexport type AssistantWorkflowDefinitionManifestOptions = {\n generatedAt?: string;\n};\n\nexport type AssistantWorkflowDefinitionManifestLinesOptions =\n AssistantWorkflowDefinitionManifestOptions & {\n trailingNewline?: boolean;\n };\n\nexport type AssistantWorkflowDefinitionManifestLineErrorReason =\n | \"invalid_json\"\n | \"invalid_manifest\";\n\nexport type AssistantWorkflowDefinitionManifestLineError = {\n lineNumber: number;\n reason: AssistantWorkflowDefinitionManifestLineErrorReason;\n preview: string;\n};\n\nexport type AssistantWorkflowDefinitionManifestLinesParseResult = {\n lineCount: number;\n manifestCount: number;\n errorCount: number;\n manifests: AssistantWorkflowDefinitionManifest[];\n errors: AssistantWorkflowDefinitionManifestLineError[];\n};\n\nexport function buildAssistantWorkflowDefinitionManifest(\n definition: AssistantWorkflowDefinition<string, string, string, string>,\n options: AssistantWorkflowDefinitionManifestOptions = {},\n): AssistantWorkflowDefinitionManifest {\n return buildAssistantWorkflowSerializedDefinitionManifest(\n serializeAssistantWorkflowDefinition(definition),\n options,\n );\n}\n\nexport function buildAssistantWorkflowSerializedDefinitionManifest(\n serializedDefinition: AssistantWorkflowSerializedDefinition,\n options: AssistantWorkflowDefinitionManifestOptions = {},\n): AssistantWorkflowDefinitionManifest {\n return {\n format: ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_FORMAT,\n formatVersion: ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_VERSION,\n generatedAt: options.generatedAt ?? new Date().toISOString(),\n workflowId: serializedDefinition.workflowId,\n workflowVersion: serializedDefinition.workflowVersion,\n valid: serializedDefinition.summary.valid,\n serializedDefinition,\n };\n}\n\nexport function stringifyAssistantWorkflowDefinitionManifest(\n definition: AssistantWorkflowDefinition<string, string, string, string>,\n space?: number,\n options: AssistantWorkflowDefinitionManifestOptions = {},\n): string {\n return JSON.stringify(buildAssistantWorkflowDefinitionManifest(definition, options), null, space);\n}\n\nexport function stringifyAssistantWorkflowDefinitionManifestLines(\n definitions: readonly AssistantWorkflowDefinition<string, string, string, string>[],\n options: AssistantWorkflowDefinitionManifestLinesOptions = {},\n): string {\n const lines = definitions.map((definition) =>\n JSON.stringify(buildAssistantWorkflowDefinitionManifest(definition, options)),\n );\n if (!lines.length) return \"\";\n return options.trailingNewline === true ? `${lines.join(\"\\n\")}\\n` : lines.join(\"\\n\");\n}\n\nexport function parseAssistantWorkflowDefinitionManifest(\n value: unknown,\n): AssistantWorkflowDefinitionManifest | null {\n if (!isRecord(value)) return null;\n if (value[\"format\"] !== ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_FORMAT) return null;\n if (value[\"formatVersion\"] !== ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_VERSION) return null;\n if (typeof value[\"generatedAt\"] !== \"string\" || !value[\"generatedAt\"].trim().length) return null;\n if (typeof value[\"workflowId\"] !== \"string\" || !value[\"workflowId\"].trim().length) return null;\n if (typeof value[\"workflowVersion\"] !== \"number\" || !Number.isFinite(value[\"workflowVersion\"])) return null;\n if (typeof value[\"valid\"] !== \"boolean\") return null;\n\n const serializedDefinition = parseAssistantWorkflowSerializedDefinition(value[\"serializedDefinition\"]);\n if (!serializedDefinition) return null;\n if (serializedDefinition.workflowId !== value[\"workflowId\"]) return null;\n if (serializedDefinition.workflowVersion !== value[\"workflowVersion\"]) return null;\n if (serializedDefinition.summary.valid !== value[\"valid\"]) return null;\n\n return {\n format: ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_FORMAT,\n formatVersion: ASSISTANT_WORKFLOW_DEFINITION_MANIFEST_VERSION,\n generatedAt: value[\"generatedAt\"],\n workflowId: value[\"workflowId\"],\n workflowVersion: value[\"workflowVersion\"],\n valid: value[\"valid\"],\n serializedDefinition,\n };\n}\n\nexport function parseAssistantWorkflowDefinitionManifestLines(\n input: string,\n): AssistantWorkflowDefinitionManifestLinesParseResult {\n const manifests: AssistantWorkflowDefinitionManifest[] = [];\n const errors: AssistantWorkflowDefinitionManifestLineError[] = [];\n let lineCount = 0;\n\n for (const [index, line] of input.split(/\\r?\\n/).entries()) {\n const trimmed = line.trim();\n if (!trimmed.length) continue;\n const lineNumber = index + 1;\n lineCount += 1;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(trimmed);\n } catch {\n errors.push({\n lineNumber,\n reason: \"invalid_json\",\n preview: previewLine(trimmed),\n });\n continue;\n }\n\n const manifest = parseAssistantWorkflowDefinitionManifest(parsed);\n if (!manifest) {\n errors.push({\n lineNumber,\n reason: \"invalid_manifest\",\n preview: previewLine(trimmed),\n });\n continue;\n }\n manifests.push(manifest);\n }\n\n return {\n lineCount,\n manifestCount: manifests.length,\n errorCount: errors.length,\n manifests,\n errors,\n };\n}\n\nexport function buildAssistantWorkflowDefinitionManifestTracePayload(\n manifest: AssistantWorkflowDefinitionManifest,\n): Record<string, AssistantWorkflowJsonValue> {\n return {\n format: manifest.format,\n formatVersion: manifest.formatVersion,\n generatedAt: manifest.generatedAt,\n workflowId: manifest.workflowId,\n workflowVersion: manifest.workflowVersion,\n valid: manifest.valid,\n serializedDefinition: buildAssistantWorkflowDefinitionTracePayload(manifest.serializedDefinition),\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction previewLine(value: string): string {\n return value.length <= 160 ? value : `${value.slice(0, 157)}...`;\n}\n"]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type AssistantWorkflowDefinitionPackageExecutionResult, type AssistantWorkflowDefinitionPackageExecutionStatus } from "./definition-package-executor.js";
|
|
2
|
+
import { type AssistantWorkflowJsonValue, type AssistantWorkflowSerializedRunReport } from "./run-report-json.js";
|
|
3
|
+
export declare const ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_EXECUTION_JSON_SCHEMA_VERSION = 1;
|
|
4
|
+
export type AssistantWorkflowSerializedDefinitionPackageExecution = {
|
|
5
|
+
schemaVersion: typeof ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_EXECUTION_JSON_SCHEMA_VERSION;
|
|
6
|
+
executed: boolean;
|
|
7
|
+
status: AssistantWorkflowDefinitionPackageExecutionStatus;
|
|
8
|
+
reason: string | null;
|
|
9
|
+
packageRun: Record<string, AssistantWorkflowJsonValue>;
|
|
10
|
+
toolExecution: Record<string, AssistantWorkflowJsonValue> | null;
|
|
11
|
+
report: AssistantWorkflowSerializedRunReport | null;
|
|
12
|
+
};
|
|
13
|
+
export type AssistantWorkflowSerializedDefinitionPackageExecutionLineErrorReason = "invalid_json" | "invalid_execution";
|
|
14
|
+
export type AssistantWorkflowSerializedDefinitionPackageExecutionLineError = {
|
|
15
|
+
lineNumber: number;
|
|
16
|
+
reason: AssistantWorkflowSerializedDefinitionPackageExecutionLineErrorReason;
|
|
17
|
+
preview: string;
|
|
18
|
+
};
|
|
19
|
+
export type AssistantWorkflowSerializedDefinitionPackageExecutionLinesParseResult = {
|
|
20
|
+
lineCount: number;
|
|
21
|
+
executionCount: number;
|
|
22
|
+
errorCount: number;
|
|
23
|
+
executions: AssistantWorkflowSerializedDefinitionPackageExecution[];
|
|
24
|
+
errors: AssistantWorkflowSerializedDefinitionPackageExecutionLineError[];
|
|
25
|
+
};
|
|
26
|
+
export type AssistantWorkflowSerializedDefinitionPackageExecutionLinesOptions = {
|
|
27
|
+
trailingNewline?: boolean;
|
|
28
|
+
};
|
|
29
|
+
export type AssistantWorkflowSerializedDefinitionPackageExecutionBatchOptions = {
|
|
30
|
+
generatedAt?: string;
|
|
31
|
+
onlyInteresting?: boolean;
|
|
32
|
+
};
|
|
33
|
+
export type AssistantWorkflowSerializedDefinitionPackageExecutionBatchCount = {
|
|
34
|
+
key: string;
|
|
35
|
+
count: number;
|
|
36
|
+
};
|
|
37
|
+
export type AssistantWorkflowSerializedDefinitionPackageExecutionBatchSummary = {
|
|
38
|
+
generatedAt: string;
|
|
39
|
+
sourceExecutionCount: number;
|
|
40
|
+
executionCount: number;
|
|
41
|
+
interestingExecutionCount: number;
|
|
42
|
+
executedCount: number;
|
|
43
|
+
failedExecutionCount: number;
|
|
44
|
+
statusCounts: AssistantWorkflowSerializedDefinitionPackageExecutionBatchCount[];
|
|
45
|
+
reportStatusCounts: AssistantWorkflowSerializedDefinitionPackageExecutionBatchCount[];
|
|
46
|
+
};
|
|
47
|
+
export type AssistantWorkflowSerializedDefinitionPackageExecutionBatch = {
|
|
48
|
+
schemaVersion: typeof ASSISTANT_WORKFLOW_DEFINITION_PACKAGE_EXECUTION_JSON_SCHEMA_VERSION;
|
|
49
|
+
generatedAt: string;
|
|
50
|
+
sourceExecutionCount: number;
|
|
51
|
+
executionCount: number;
|
|
52
|
+
summary: AssistantWorkflowSerializedDefinitionPackageExecutionBatchSummary;
|
|
53
|
+
executions: AssistantWorkflowSerializedDefinitionPackageExecution[];
|
|
54
|
+
};
|
|
55
|
+
export declare function serializeAssistantWorkflowDefinitionPackageExecutionResult(result: AssistantWorkflowDefinitionPackageExecutionResult): AssistantWorkflowSerializedDefinitionPackageExecution;
|
|
56
|
+
export declare function stringifyAssistantWorkflowDefinitionPackageExecutionResult(result: AssistantWorkflowDefinitionPackageExecutionResult, space?: number): string;
|
|
57
|
+
export declare function stringifyAssistantWorkflowDefinitionPackageExecutionResultLines(results: readonly AssistantWorkflowDefinitionPackageExecutionResult[], options?: AssistantWorkflowSerializedDefinitionPackageExecutionLinesOptions): string;
|
|
58
|
+
export declare function serializeAssistantWorkflowDefinitionPackageExecutionResults(results: readonly AssistantWorkflowDefinitionPackageExecutionResult[], options?: AssistantWorkflowSerializedDefinitionPackageExecutionBatchOptions): AssistantWorkflowSerializedDefinitionPackageExecutionBatch;
|
|
59
|
+
export declare function buildAssistantWorkflowSerializedDefinitionPackageExecutionBatch(allExecutions: readonly AssistantWorkflowSerializedDefinitionPackageExecution[], options?: AssistantWorkflowSerializedDefinitionPackageExecutionBatchOptions): AssistantWorkflowSerializedDefinitionPackageExecutionBatch;
|
|
60
|
+
export declare function stringifyAssistantWorkflowDefinitionPackageExecutionResults(results: readonly AssistantWorkflowDefinitionPackageExecutionResult[], options?: AssistantWorkflowSerializedDefinitionPackageExecutionBatchOptions, space?: number): string;
|
|
61
|
+
export declare function parseAssistantWorkflowSerializedDefinitionPackageExecution(value: unknown): AssistantWorkflowSerializedDefinitionPackageExecution | null;
|
|
62
|
+
export declare function parseAssistantWorkflowSerializedDefinitionPackageExecutionLines(input: string): AssistantWorkflowSerializedDefinitionPackageExecutionLinesParseResult;
|
|
63
|
+
export declare function parseAssistantWorkflowSerializedDefinitionPackageExecutionBatch(value: unknown): AssistantWorkflowSerializedDefinitionPackageExecutionBatch | null;
|
|
64
|
+
//# sourceMappingURL=definition-package-execution-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition-package-execution-json.d.ts","sourceRoot":"","sources":["../src/definition-package-execution-json.ts"],"names":[],"mappings":"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"}
|