@flowdesk/core 0.1.12 → 0.1.14
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/README.md +1 -1
- package/dist/agent-profiles.js +0 -1
- package/dist/agent-registry.d.ts +43 -0
- package/dist/agent-registry.d.ts.map +1 -0
- package/dist/agent-registry.js +309 -0
- package/dist/agent-registry.js.map +1 -0
- package/dist/audit.js +0 -1
- package/dist/authority-promotion.js +0 -1
- package/dist/bootstrap-foundation.js +0 -1
- package/dist/chat-control-authority.js +0 -1
- package/dist/chat-hook-authority-probe.js +0 -1
- package/dist/chat-routing.js +0 -1
- package/dist/command-manifest.js +0 -1
- package/dist/config-policy.js +0 -1
- package/dist/connector-gateway.js +0 -1
- package/dist/connector-profile.js +0 -1
- package/dist/controlled-conformance-doc-write.js +0 -1
- package/dist/controlled-redacted-audit-export-write.js +0 -1
- package/dist/controlled-workspace-file-write.d.ts +36 -0
- package/dist/controlled-workspace-file-write.d.ts.map +1 -0
- package/dist/controlled-workspace-file-write.js +130 -0
- package/dist/controlled-workspace-file-write.js.map +1 -0
- package/dist/core-completion-safety-contracts.js +0 -1
- package/dist/dispatch-attempt-manifest.js +0 -1
- package/dist/dispatch-idempotency.js +0 -1
- package/dist/external-auth-policy.js +0 -1
- package/dist/fake-remote-connector-adapter.js +0 -1
- package/dist/fake-runtime.js +0 -1
- package/dist/fallback-decision.js +0 -1
- package/dist/fallback-regate-plan.js +0 -1
- package/dist/fds1-schema-probe-result.js +0 -1
- package/dist/guard-boundary.js +0 -1
- package/dist/guarded-dry-run.js +0 -1
- package/dist/hook-harness.js +0 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/lane-heartbeat.js +0 -1
- package/dist/lane-lifecycle-record.js +0 -1
- package/dist/lane-observability.js +0 -1
- package/dist/lane-stall-projection.d.ts +2 -1
- package/dist/lane-stall-projection.d.ts.map +1 -1
- package/dist/lane-stall-projection.js +66 -9
- package/dist/lane-stall-projection.js.map +1 -1
- package/dist/managed-dispatch-evidence-shape.js +0 -1
- package/dist/model-availability-cache.js +0 -1
- package/dist/operational-intelligence.js +0 -1
- package/dist/pending-abort.js +0 -1
- package/dist/plan.js +0 -1
- package/dist/planning-evidence-common.d.ts +18 -0
- package/dist/planning-evidence-common.d.ts.map +1 -0
- package/dist/planning-evidence-common.js +95 -0
- package/dist/planning-evidence-common.js.map +1 -0
- package/dist/pre-dispatch-audit-record.js +0 -1
- package/dist/production-approval-source.js +0 -1
- package/dist/production-enablement.js +0 -1
- package/dist/production-verification.js +0 -1
- package/dist/provider-failures.js +0 -1
- package/dist/provider-usage-collector.d.ts +1 -0
- package/dist/provider-usage-collector.d.ts.map +1 -1
- package/dist/provider-usage-collector.js +179 -29
- package/dist/provider-usage-collector.js.map +1 -1
- package/dist/redaction.js +0 -1
- package/dist/release1-contracts.js +0 -1
- package/dist/remote-write-connector-gate.js +0 -1
- package/dist/retry-plan.d.ts +20 -2
- package/dist/retry-plan.d.ts.map +1 -1
- package/dist/retry-plan.js +57 -3
- package/dist/retry-plan.js.map +1 -1
- package/dist/retry.js +0 -1
- package/dist/reviewer-lane-conformance.js +0 -1
- package/dist/runtime-lane-productization.js +0 -1
- package/dist/sanitized-auth-capture.js +0 -1
- package/dist/schema-artifacts.js +0 -1
- package/dist/schema-registry.d.ts.map +1 -1
- package/dist/schema-registry.js +5 -1
- package/dist/schema-registry.js.map +1 -1
- package/dist/session-evidence.d.ts.map +1 -1
- package/dist/session-evidence.js +44 -3
- package/dist/session-evidence.js.map +1 -1
- package/dist/state-paths.d.ts +1 -1
- package/dist/state-paths.d.ts.map +1 -1
- package/dist/state-paths.js +24 -0
- package/dist/state-paths.js.map +1 -1
- package/dist/state-store.js +0 -1
- package/dist/status.js +0 -1
- package/dist/task-agent-assignment.d.ts +30 -0
- package/dist/task-agent-assignment.d.ts.map +1 -0
- package/dist/task-agent-assignment.js +77 -0
- package/dist/task-agent-assignment.js.map +1 -0
- package/dist/task-graph.d.ts +31 -0
- package/dist/task-graph.d.ts.map +1 -0
- package/dist/task-graph.js +122 -0
- package/dist/task-graph.js.map +1 -0
- package/dist/task-model-selection.d.ts +36 -0
- package/dist/task-model-selection.d.ts.map +1 -0
- package/dist/task-model-selection.js +99 -0
- package/dist/task-model-selection.js.map +1 -0
- package/dist/task-result.d.ts +38 -1
- package/dist/task-result.d.ts.map +1 -1
- package/dist/task-result.js +148 -1
- package/dist/task-result.js.map +1 -1
- package/dist/tool-contract-fixtures.js +0 -1
- package/dist/top-tier-reviewer-lane-probe.js +0 -1
- package/dist/usage-health.js +0 -1
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +10 -2
- package/dist/validators.js.map +1 -1
- package/dist/workflow-authoring-result.d.ts +25 -0
- package/dist/workflow-authoring-result.d.ts.map +1 -0
- package/dist/workflow-authoring-result.js +63 -0
- package/dist/workflow-authoring-result.js.map +1 -0
- package/dist/workflow-dispatch-plan.d.ts +65 -0
- package/dist/workflow-dispatch-plan.d.ts.map +1 -0
- package/dist/workflow-dispatch-plan.js +228 -0
- package/dist/workflow-dispatch-plan.js.map +1 -0
- package/dist/workflow-synthesis.d.ts +18 -0
- package/dist/workflow-synthesis.d.ts.map +1 -0
- package/dist/workflow-synthesis.js +40 -0
- package/dist/workflow-synthesis.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { FLOWDESK_PLANNING_AUTHORITY_KEYS_V1, invalid, isPlanningEvidenceRecord, rejectUnknownPlanningProperties, requirePlanningKeys, valid, validatePlanningAuthorityFalse, validatePlanningNoForbiddenPayloads, validatePlanningOpaqueId, validatePlanningSafeText, validatePlanningTimestamp, } from "./planning-evidence-common.js";
|
|
2
|
+
export const FLOWDESK_TASK_GRAPH_SCHEMA_VERSION_V1 = "flowdesk.task_graph.v1";
|
|
3
|
+
const GRAPH_ALLOWED_KEYS = new Set([
|
|
4
|
+
"schema_version",
|
|
5
|
+
"workflow_id",
|
|
6
|
+
"task_graph_id",
|
|
7
|
+
"nodes",
|
|
8
|
+
"edges",
|
|
9
|
+
"graph_summary",
|
|
10
|
+
"created_at",
|
|
11
|
+
"release_gate",
|
|
12
|
+
...FLOWDESK_PLANNING_AUTHORITY_KEYS_V1,
|
|
13
|
+
"redaction_version",
|
|
14
|
+
]);
|
|
15
|
+
const NODE_ALLOWED_KEYS = new Set(["task_id", "title", "summary"]);
|
|
16
|
+
const EDGE_ALLOWED_KEYS = new Set(["from_task_id", "to_task_id", "relation"]);
|
|
17
|
+
function validateNode(value, label) {
|
|
18
|
+
if (!isPlanningEvidenceRecord(value))
|
|
19
|
+
return invalid(`${label} must be an object`);
|
|
20
|
+
const errors = [];
|
|
21
|
+
errors.push(...rejectUnknownPlanningProperties(value, NODE_ALLOWED_KEYS, label));
|
|
22
|
+
errors.push(...requirePlanningKeys(value, ["task_id", "title", "summary"], label));
|
|
23
|
+
errors.push(...validatePlanningOpaqueId(value.task_id, `${label}.task_id`).errors);
|
|
24
|
+
errors.push(...validatePlanningSafeText(value.title, `${label}.title`, 160).errors);
|
|
25
|
+
errors.push(...validatePlanningSafeText(value.summary, `${label}.summary`, 500).errors);
|
|
26
|
+
errors.push(...validatePlanningNoForbiddenPayloads(value, label).errors);
|
|
27
|
+
return errors.length === 0 ? valid() : invalid(...errors);
|
|
28
|
+
}
|
|
29
|
+
function validateEdge(value, label) {
|
|
30
|
+
if (!isPlanningEvidenceRecord(value))
|
|
31
|
+
return invalid(`${label} must be an object`);
|
|
32
|
+
const errors = [];
|
|
33
|
+
errors.push(...rejectUnknownPlanningProperties(value, EDGE_ALLOWED_KEYS, label));
|
|
34
|
+
errors.push(...requirePlanningKeys(value, ["from_task_id", "to_task_id", "relation"], label));
|
|
35
|
+
errors.push(...validatePlanningOpaqueId(value.from_task_id, `${label}.from_task_id`).errors);
|
|
36
|
+
errors.push(...validatePlanningOpaqueId(value.to_task_id, `${label}.to_task_id`).errors);
|
|
37
|
+
if (value.relation !== "depends_on")
|
|
38
|
+
errors.push(`${label}.relation must be depends_on`);
|
|
39
|
+
if (value.from_task_id === value.to_task_id)
|
|
40
|
+
errors.push(`${label} self dependency is not allowed`);
|
|
41
|
+
errors.push(...validatePlanningNoForbiddenPayloads(value, label).errors);
|
|
42
|
+
return errors.length === 0 ? valid() : invalid(...errors);
|
|
43
|
+
}
|
|
44
|
+
function validateDag(nodes, edges) {
|
|
45
|
+
const errors = [];
|
|
46
|
+
const nodeIds = new Set();
|
|
47
|
+
for (const node of nodes) {
|
|
48
|
+
if (nodeIds.has(node.task_id))
|
|
49
|
+
errors.push(`duplicate task id: ${node.task_id}`);
|
|
50
|
+
nodeIds.add(node.task_id);
|
|
51
|
+
}
|
|
52
|
+
const outgoing = new Map();
|
|
53
|
+
for (const edge of edges) {
|
|
54
|
+
if (!nodeIds.has(edge.from_task_id))
|
|
55
|
+
errors.push(`missing dependency task id: ${edge.from_task_id}`);
|
|
56
|
+
if (!nodeIds.has(edge.to_task_id))
|
|
57
|
+
errors.push(`missing dependent task id: ${edge.to_task_id}`);
|
|
58
|
+
if (edge.from_task_id === edge.to_task_id)
|
|
59
|
+
errors.push(`self dependency is not allowed: ${edge.from_task_id}`);
|
|
60
|
+
const list = outgoing.get(edge.from_task_id) ?? [];
|
|
61
|
+
list.push(edge.to_task_id);
|
|
62
|
+
outgoing.set(edge.from_task_id, list);
|
|
63
|
+
}
|
|
64
|
+
const visiting = new Set();
|
|
65
|
+
const visited = new Set();
|
|
66
|
+
const visit = (id) => {
|
|
67
|
+
if (visiting.has(id))
|
|
68
|
+
return true;
|
|
69
|
+
if (visited.has(id))
|
|
70
|
+
return false;
|
|
71
|
+
visiting.add(id);
|
|
72
|
+
for (const next of outgoing.get(id) ?? [])
|
|
73
|
+
if (visit(next))
|
|
74
|
+
return true;
|
|
75
|
+
visiting.delete(id);
|
|
76
|
+
visited.add(id);
|
|
77
|
+
return false;
|
|
78
|
+
};
|
|
79
|
+
for (const id of nodeIds) {
|
|
80
|
+
if (visit(id)) {
|
|
81
|
+
errors.push("task graph contains a cycle");
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return errors;
|
|
86
|
+
}
|
|
87
|
+
export function validateFlowDeskTaskGraphV1(value) {
|
|
88
|
+
if (!isPlanningEvidenceRecord(value))
|
|
89
|
+
return invalid("task graph must be an object");
|
|
90
|
+
const errors = [];
|
|
91
|
+
errors.push(...rejectUnknownPlanningProperties(value, GRAPH_ALLOWED_KEYS, "task graph"));
|
|
92
|
+
errors.push(...requirePlanningKeys(value, ["schema_version", "workflow_id", "task_graph_id", "nodes", "edges", "graph_summary", "created_at", "release_gate", ...FLOWDESK_PLANNING_AUTHORITY_KEYS_V1, "redaction_version"], "task graph"));
|
|
93
|
+
if (value.schema_version !== FLOWDESK_TASK_GRAPH_SCHEMA_VERSION_V1)
|
|
94
|
+
errors.push(`schema_version must be ${FLOWDESK_TASK_GRAPH_SCHEMA_VERSION_V1}`);
|
|
95
|
+
errors.push(...validatePlanningOpaqueId(value.workflow_id, "workflow_id").errors);
|
|
96
|
+
errors.push(...validatePlanningOpaqueId(value.task_graph_id, "task_graph_id").errors);
|
|
97
|
+
if (!Array.isArray(value.nodes))
|
|
98
|
+
errors.push("nodes must be an array");
|
|
99
|
+
else {
|
|
100
|
+
if (value.nodes.length === 0 || value.nodes.length > 64)
|
|
101
|
+
errors.push("nodes must contain 1..64 items");
|
|
102
|
+
errors.push(...value.nodes.flatMap((node, index) => validateNode(node, `nodes[${index}]`).errors));
|
|
103
|
+
}
|
|
104
|
+
if (!Array.isArray(value.edges))
|
|
105
|
+
errors.push("edges must be an array");
|
|
106
|
+
else {
|
|
107
|
+
if (value.edges.length > 128)
|
|
108
|
+
errors.push("edges exceeds 128 items");
|
|
109
|
+
errors.push(...value.edges.flatMap((edge, index) => validateEdge(edge, `edges[${index}]`).errors));
|
|
110
|
+
}
|
|
111
|
+
if (Array.isArray(value.nodes) && Array.isArray(value.edges))
|
|
112
|
+
errors.push(...validateDag(value.nodes, value.edges));
|
|
113
|
+
errors.push(...validatePlanningSafeText(value.graph_summary, "graph_summary", 500).errors);
|
|
114
|
+
errors.push(...validatePlanningTimestamp(value.created_at, "created_at").errors);
|
|
115
|
+
if (value.release_gate !== "release1_planning_only")
|
|
116
|
+
errors.push("release_gate must be release1_planning_only");
|
|
117
|
+
if (value.redaction_version !== "v1")
|
|
118
|
+
errors.push("redaction_version must be v1");
|
|
119
|
+
errors.push(...validatePlanningAuthorityFalse(value, "task_graph"));
|
|
120
|
+
errors.push(...validatePlanningNoForbiddenPayloads(value, "task_graph").errors);
|
|
121
|
+
return errors.length === 0 ? valid() : invalid(...errors);
|
|
122
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-graph.js","sourceRoot":"","sources":["../src/task-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { OpaqueId, OpaqueRef, ProviderFamily } from "./release1-contracts.js";
|
|
2
|
+
import { type ValidationResult } from "./planning-evidence-common.js";
|
|
3
|
+
export declare const FLOWDESK_TASK_MODEL_SELECTION_SCHEMA_VERSION_V1: "flowdesk.task_model_selection.v1";
|
|
4
|
+
export type FlowDeskTaskModelSelectionStatusV1 = "selected" | "blocked" | "non_dispatchable";
|
|
5
|
+
export type FlowDeskTaskModelAvailabilityLabelV1 = "available" | "unavailable" | "unknown" | "non_dispatchable";
|
|
6
|
+
export type FlowDeskTaskModelFreshnessV1 = "fresh" | "stale" | "unknown";
|
|
7
|
+
export interface FlowDeskTaskModelSelectionV1 {
|
|
8
|
+
schema_version: typeof FLOWDESK_TASK_MODEL_SELECTION_SCHEMA_VERSION_V1;
|
|
9
|
+
workflow_id: OpaqueId;
|
|
10
|
+
task_id: OpaqueId;
|
|
11
|
+
selection_id: OpaqueId;
|
|
12
|
+
provider_family: ProviderFamily;
|
|
13
|
+
provider_qualified_model_id: string;
|
|
14
|
+
usage_snapshot_ref: OpaqueRef;
|
|
15
|
+
usage_snapshot_freshness: FlowDeskTaskModelFreshnessV1;
|
|
16
|
+
provider_health_ref: OpaqueRef;
|
|
17
|
+
provider_health_label: "ok" | "warning" | "critical" | "exhausted" | "unknown";
|
|
18
|
+
exact_model_availability_ref: OpaqueRef;
|
|
19
|
+
exact_model_availability_label: FlowDeskTaskModelAvailabilityLabelV1;
|
|
20
|
+
fit_label: string;
|
|
21
|
+
performance_label: string;
|
|
22
|
+
selection_status: FlowDeskTaskModelSelectionStatusV1;
|
|
23
|
+
blocked_labels: string[];
|
|
24
|
+
fallback_allowed: false;
|
|
25
|
+
reselection_allowed: false;
|
|
26
|
+
created_at: string;
|
|
27
|
+
release_gate: "release1_planning_only";
|
|
28
|
+
dispatch_authority_enabled: false;
|
|
29
|
+
provider_call_made: false;
|
|
30
|
+
runtime_execution: false;
|
|
31
|
+
actual_lane_launch: false;
|
|
32
|
+
write_authority_enabled: false;
|
|
33
|
+
redaction_version: "v1";
|
|
34
|
+
}
|
|
35
|
+
export declare function validateFlowDeskTaskModelSelectionV1(value: unknown): ValidationResult;
|
|
36
|
+
//# sourceMappingURL=task-model-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-model-selection.d.ts","sourceRoot":"","sources":["../src/task-model-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAMN,KAAK,gBAAgB,EAUrB,MAAM,+BAA+B,CAAC;AAGvC,eAAO,MAAM,+CAA+C,EAAG,kCAA2C,CAAC;AAE3G,MAAM,MAAM,kCAAkC,GAAG,UAAU,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAC7F,MAAM,MAAM,oCAAoC,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAChH,MAAM,MAAM,4BAA4B,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,4BAA4B;IAC5C,cAAc,EAAE,OAAO,+CAA+C,CAAC;IACvE,WAAW,EAAE,QAAQ,CAAC;IACtB,OAAO,EAAE,QAAQ,CAAC;IAClB,YAAY,EAAE,QAAQ,CAAC;IACvB,eAAe,EAAE,cAAc,CAAC;IAChC,2BAA2B,EAAE,MAAM,CAAC;IACpC,kBAAkB,EAAE,SAAS,CAAC;IAC9B,wBAAwB,EAAE,4BAA4B,CAAC;IACvD,mBAAmB,EAAE,SAAS,CAAC;IAC/B,qBAAqB,EAAE,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC/E,4BAA4B,EAAE,SAAS,CAAC;IACxC,8BAA8B,EAAE,oCAAoC,CAAC;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,kCAAkC,CAAC;IACrD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,KAAK,CAAC;IACxB,mBAAmB,EAAE,KAAK,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,wBAAwB,CAAC;IACvC,0BAA0B,EAAE,KAAK,CAAC;IAClC,kBAAkB,EAAE,KAAK,CAAC;IAC1B,iBAAiB,EAAE,KAAK,CAAC;IACzB,kBAAkB,EAAE,KAAK,CAAC;IAC1B,uBAAuB,EAAE,KAAK,CAAC;IAC/B,iBAAiB,EAAE,IAAI,CAAC;CACxB;AAyDD,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CA+BrF"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { FLOWDESK_PLANNING_AUTHORITY_KEYS_V1, invalid, isPlanningEvidenceRecord, rejectUnknownPlanningProperties, requirePlanningKeys, valid, validatePlanningAuthorityFalse, validatePlanningNoForbiddenPayloads, validatePlanningOpaqueId, validatePlanningOpaqueRef, validatePlanningSafeLabelArray, validatePlanningSafeText, validatePlanningTimestamp, } from "./planning-evidence-common.js";
|
|
2
|
+
import { validateConcreteProviderQualifiedModelId, validateProviderFamily } from "./validators.js";
|
|
3
|
+
export const FLOWDESK_TASK_MODEL_SELECTION_SCHEMA_VERSION_V1 = "flowdesk.task_model_selection.v1";
|
|
4
|
+
const ALLOWED_KEYS = new Set([
|
|
5
|
+
"schema_version",
|
|
6
|
+
"workflow_id",
|
|
7
|
+
"task_id",
|
|
8
|
+
"selection_id",
|
|
9
|
+
"provider_family",
|
|
10
|
+
"provider_qualified_model_id",
|
|
11
|
+
"usage_snapshot_ref",
|
|
12
|
+
"usage_snapshot_freshness",
|
|
13
|
+
"provider_health_ref",
|
|
14
|
+
"provider_health_label",
|
|
15
|
+
"exact_model_availability_ref",
|
|
16
|
+
"exact_model_availability_label",
|
|
17
|
+
"fit_label",
|
|
18
|
+
"performance_label",
|
|
19
|
+
"selection_status",
|
|
20
|
+
"blocked_labels",
|
|
21
|
+
"fallback_allowed",
|
|
22
|
+
"reselection_allowed",
|
|
23
|
+
"created_at",
|
|
24
|
+
"release_gate",
|
|
25
|
+
...FLOWDESK_PLANNING_AUTHORITY_KEYS_V1,
|
|
26
|
+
"redaction_version",
|
|
27
|
+
]);
|
|
28
|
+
const REQUIRED_KEYS = [
|
|
29
|
+
"schema_version",
|
|
30
|
+
"workflow_id",
|
|
31
|
+
"task_id",
|
|
32
|
+
"selection_id",
|
|
33
|
+
"provider_family",
|
|
34
|
+
"provider_qualified_model_id",
|
|
35
|
+
"usage_snapshot_ref",
|
|
36
|
+
"usage_snapshot_freshness",
|
|
37
|
+
"provider_health_ref",
|
|
38
|
+
"provider_health_label",
|
|
39
|
+
"exact_model_availability_ref",
|
|
40
|
+
"exact_model_availability_label",
|
|
41
|
+
"fit_label",
|
|
42
|
+
"performance_label",
|
|
43
|
+
"selection_status",
|
|
44
|
+
"blocked_labels",
|
|
45
|
+
"fallback_allowed",
|
|
46
|
+
"reselection_allowed",
|
|
47
|
+
"created_at",
|
|
48
|
+
"release_gate",
|
|
49
|
+
...FLOWDESK_PLANNING_AUTHORITY_KEYS_V1,
|
|
50
|
+
"redaction_version",
|
|
51
|
+
];
|
|
52
|
+
const FRESHNESS = new Set(["fresh", "stale", "unknown"]);
|
|
53
|
+
const HEALTH = new Set(["ok", "warning", "critical", "exhausted", "unknown"]);
|
|
54
|
+
const AVAILABILITY = new Set(["available", "unavailable", "unknown", "non_dispatchable"]);
|
|
55
|
+
const STATUSES = new Set(["selected", "blocked", "non_dispatchable"]);
|
|
56
|
+
export function validateFlowDeskTaskModelSelectionV1(value) {
|
|
57
|
+
if (!isPlanningEvidenceRecord(value))
|
|
58
|
+
return invalid("task model selection must be an object");
|
|
59
|
+
const errors = [];
|
|
60
|
+
errors.push(...rejectUnknownPlanningProperties(value, ALLOWED_KEYS, "task model selection"));
|
|
61
|
+
errors.push(...requirePlanningKeys(value, REQUIRED_KEYS, "task model selection"));
|
|
62
|
+
if (value.schema_version !== FLOWDESK_TASK_MODEL_SELECTION_SCHEMA_VERSION_V1)
|
|
63
|
+
errors.push(`schema_version must be ${FLOWDESK_TASK_MODEL_SELECTION_SCHEMA_VERSION_V1}`);
|
|
64
|
+
errors.push(...validatePlanningOpaqueId(value.workflow_id, "workflow_id").errors);
|
|
65
|
+
errors.push(...validatePlanningOpaqueId(value.task_id, "task_id").errors);
|
|
66
|
+
errors.push(...validatePlanningOpaqueId(value.selection_id, "selection_id").errors);
|
|
67
|
+
errors.push(...validateProviderFamily(value.provider_family).errors);
|
|
68
|
+
errors.push(...validateConcreteProviderQualifiedModelId(value.provider_qualified_model_id, "provider_qualified_model_id").errors);
|
|
69
|
+
if (typeof value.provider_family === "string" && typeof value.provider_qualified_model_id === "string" && !value.provider_qualified_model_id.startsWith(`${value.provider_family}/`))
|
|
70
|
+
errors.push("provider_qualified_model_id must match provider_family");
|
|
71
|
+
errors.push(...validatePlanningOpaqueRef(value.usage_snapshot_ref, "usage_snapshot_ref").errors);
|
|
72
|
+
if (!FRESHNESS.has(value.usage_snapshot_freshness))
|
|
73
|
+
errors.push("usage_snapshot_freshness is invalid");
|
|
74
|
+
errors.push(...validatePlanningOpaqueRef(value.provider_health_ref, "provider_health_ref").errors);
|
|
75
|
+
if (!HEALTH.has(value.provider_health_label))
|
|
76
|
+
errors.push("provider_health_label is invalid");
|
|
77
|
+
errors.push(...validatePlanningOpaqueRef(value.exact_model_availability_ref, "exact_model_availability_ref").errors);
|
|
78
|
+
if (!AVAILABILITY.has(value.exact_model_availability_label))
|
|
79
|
+
errors.push("exact_model_availability_label is invalid");
|
|
80
|
+
errors.push(...validatePlanningSafeText(value.fit_label, "fit_label", 120).errors);
|
|
81
|
+
errors.push(...validatePlanningSafeText(value.performance_label, "performance_label", 120).errors);
|
|
82
|
+
if (!STATUSES.has(value.selection_status))
|
|
83
|
+
errors.push("selection_status is invalid");
|
|
84
|
+
errors.push(...validatePlanningSafeLabelArray(value.blocked_labels, "blocked_labels", 16).errors);
|
|
85
|
+
if (value.fallback_allowed !== false)
|
|
86
|
+
errors.push("fallback_allowed must be false");
|
|
87
|
+
if (value.reselection_allowed !== false)
|
|
88
|
+
errors.push("reselection_allowed must be false");
|
|
89
|
+
if (value.provider_family === "gemini" && value.exact_model_availability_label === "non_dispatchable" && value.selection_status !== "blocked" && value.selection_status !== "non_dispatchable")
|
|
90
|
+
errors.push("non-dispatchable Gemini must be represented as blocked or non_dispatchable");
|
|
91
|
+
errors.push(...validatePlanningTimestamp(value.created_at, "created_at").errors);
|
|
92
|
+
if (value.release_gate !== "release1_planning_only")
|
|
93
|
+
errors.push("release_gate must be release1_planning_only");
|
|
94
|
+
if (value.redaction_version !== "v1")
|
|
95
|
+
errors.push("redaction_version must be v1");
|
|
96
|
+
errors.push(...validatePlanningAuthorityFalse(value, "task_model_selection"));
|
|
97
|
+
errors.push(...validatePlanningNoForbiddenPayloads(value, "task_model_selection").errors);
|
|
98
|
+
return errors.length === 0 ? valid() : invalid(...errors);
|
|
99
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-model-selection.js","sourceRoot":"","sources":["../src/task-model-selection.ts"],"names":[],"mappings":"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"}
|
package/dist/task-result.d.ts
CHANGED
|
@@ -10,6 +10,10 @@ export interface FlowDeskTaskResultV1 {
|
|
|
10
10
|
result_text: string;
|
|
11
11
|
result_text_truncated: boolean;
|
|
12
12
|
result_text_sha256: string;
|
|
13
|
+
completion_status?: "final" | "partial";
|
|
14
|
+
output_kind?: "final_answer" | "partial_findings" | "process_notes" | "tool_trace_only" | "empty";
|
|
15
|
+
usable_for_synthesis?: boolean;
|
|
16
|
+
missing_contract?: boolean;
|
|
13
17
|
created_at: string;
|
|
14
18
|
dispatch_authority_enabled: false;
|
|
15
19
|
}
|
|
@@ -20,12 +24,45 @@ export interface FlowDeskTaskFailedV1 {
|
|
|
20
24
|
task_id: string;
|
|
21
25
|
agent_ref: string;
|
|
22
26
|
provider_qualified_model_id: string;
|
|
23
|
-
failure_category: "sdk_create_failed" | "sdk_prompt_timeout" | "no_response" | "response_too_large" | "unknown";
|
|
27
|
+
failure_category: "sdk_create_failed" | "sdk_prompt_timeout" | "network_interrupted" | "no_response" | "response_too_large" | "unknown";
|
|
24
28
|
redacted_reason: string;
|
|
25
29
|
created_at: string;
|
|
26
30
|
dispatch_authority_enabled: false;
|
|
27
31
|
}
|
|
32
|
+
export interface FlowDeskAgentTaskProgressV1 {
|
|
33
|
+
schema_version: "flowdesk.agent_task_progress.v1";
|
|
34
|
+
workflow_id: string;
|
|
35
|
+
lane_id: string;
|
|
36
|
+
task_id: string;
|
|
37
|
+
agent_ref: string;
|
|
38
|
+
provider_qualified_model_id: string;
|
|
39
|
+
progress_seq: number;
|
|
40
|
+
observed_at: string;
|
|
41
|
+
phase: "started" | "waiting" | "nudged" | "awaiting_permission" | "retrying" | "finalizing" | "failed";
|
|
42
|
+
progress_label: string;
|
|
43
|
+
progress_ref: string;
|
|
44
|
+
redaction_version: "v1";
|
|
45
|
+
dispatch_authority_enabled: false;
|
|
46
|
+
}
|
|
47
|
+
export interface FlowDeskAgentTaskInconsistencyV1 {
|
|
48
|
+
schema_version: "flowdesk.agent_task_inconsistency.v1";
|
|
49
|
+
workflow_id: string;
|
|
50
|
+
attempt_id: string;
|
|
51
|
+
lane_id: string;
|
|
52
|
+
task_id: string;
|
|
53
|
+
last_progress_seq: number;
|
|
54
|
+
last_progress_observed_at: string;
|
|
55
|
+
inconsistency_kind: "finalizing_without_terminal";
|
|
56
|
+
grace_window_ms: number;
|
|
57
|
+
grace_source_label: string;
|
|
58
|
+
observed_at: string;
|
|
59
|
+
safe_next_actions: readonly ("/flowdesk-status" | "/flowdesk-abort" | "/flowdesk-retry" | "/flowdesk-doctor" | "/flowdesk-export-debug")[];
|
|
60
|
+
redaction_version: "v1";
|
|
61
|
+
dispatch_authority_enabled: false;
|
|
62
|
+
}
|
|
28
63
|
export declare const VALID_TASK_FAILURE_CATEGORIES: Set<string>;
|
|
29
64
|
export declare function validateFlowDeskTaskResultV1(value: unknown): ValidationResult;
|
|
30
65
|
export declare function validateFlowDeskTaskFailedV1(value: unknown): ValidationResult;
|
|
66
|
+
export declare function validateFlowDeskAgentTaskProgressV1(value: unknown): ValidationResult;
|
|
67
|
+
export declare function validateFlowDeskAgentTaskInconsistencyV1(value: unknown): ValidationResult;
|
|
31
68
|
//# sourceMappingURL=task-result.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-result.d.ts","sourceRoot":"","sources":["../src/task-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,gBAAgB,EAIrB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,oBAAoB;IACpC,cAAc,EAAE,yBAAyB,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B,EAAE,MAAM,CAAC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B,EAAE,KAAK,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACpC,cAAc,EAAE,yBAAyB,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B,EAAE,MAAM,CAAC;IACpC,gBAAgB,EACb,mBAAmB,GACnB,oBAAoB,GACpB,aAAa,GACb,oBAAoB,GACpB,SAAS,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B,EAAE,KAAK,CAAC;CAClC;AAED,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"task-result.d.ts","sourceRoot":"","sources":["../src/task-result.ts"],"names":[],"mappings":"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"}
|
package/dist/task-result.js
CHANGED
|
@@ -2,11 +2,35 @@ import { invalid, valid, validateNoForbiddenRawPayloads, validateOpaqueId, } fro
|
|
|
2
2
|
export const VALID_TASK_FAILURE_CATEGORIES = new Set([
|
|
3
3
|
"sdk_create_failed",
|
|
4
4
|
"sdk_prompt_timeout",
|
|
5
|
+
"network_interrupted",
|
|
5
6
|
"no_response",
|
|
6
7
|
"response_too_large",
|
|
7
8
|
"unknown",
|
|
8
9
|
]);
|
|
9
10
|
const TASK_RESULT_MAX_TEXT = 32_768;
|
|
11
|
+
const AGENT_TASK_PROGRESS_MAX_LABEL = 120;
|
|
12
|
+
const AGENT_TASK_INCONSISTENCY_MAX_GRACE_LABEL = 120;
|
|
13
|
+
const VALID_AGENT_TASK_PROGRESS_PHASES = new Set([
|
|
14
|
+
"started",
|
|
15
|
+
"waiting",
|
|
16
|
+
"nudged",
|
|
17
|
+
"awaiting_permission",
|
|
18
|
+
"retrying",
|
|
19
|
+
"finalizing",
|
|
20
|
+
"failed",
|
|
21
|
+
]);
|
|
22
|
+
const VALID_AGENT_TASK_INCONSISTENCY_KINDS = new Set([
|
|
23
|
+
"finalizing_without_terminal",
|
|
24
|
+
]);
|
|
25
|
+
const VALID_AGENT_TASK_INCONSISTENCY_ACTIONS = new Set([
|
|
26
|
+
"/flowdesk-status",
|
|
27
|
+
"/flowdesk-abort",
|
|
28
|
+
"/flowdesk-retry",
|
|
29
|
+
"/flowdesk-doctor",
|
|
30
|
+
"/flowdesk-export-debug",
|
|
31
|
+
]);
|
|
32
|
+
const VALID_TASK_RESULT_COMPLETION_STATUS = new Set(["final", "partial"]);
|
|
33
|
+
const VALID_TASK_RESULT_OUTPUT_KIND = new Set(["final_answer", "partial_findings", "process_notes", "tool_trace_only", "empty"]);
|
|
10
34
|
// ---------------------------------------------------------------------------
|
|
11
35
|
// Local helpers
|
|
12
36
|
// ---------------------------------------------------------------------------
|
|
@@ -33,6 +57,26 @@ function idStartsWith(value, prefix, label) {
|
|
|
33
57
|
? valid()
|
|
34
58
|
: invalid(`${label} must start with "${prefix}"`);
|
|
35
59
|
}
|
|
60
|
+
function boundedString(value, label, max) {
|
|
61
|
+
if (typeof value !== "string" || value.trim().length === 0)
|
|
62
|
+
return invalid(`${label} must be a non-empty string`);
|
|
63
|
+
if (value.length > max)
|
|
64
|
+
return invalid(`${label} exceeds ${max} chars`);
|
|
65
|
+
return valid();
|
|
66
|
+
}
|
|
67
|
+
function safeNextActions(value) {
|
|
68
|
+
if (!Array.isArray(value))
|
|
69
|
+
return invalid("safe_next_actions must be an array");
|
|
70
|
+
if (value.length === 0 || value.length > 5)
|
|
71
|
+
return invalid("safe_next_actions must contain 1-5 actions");
|
|
72
|
+
const errors = [];
|
|
73
|
+
for (const action of value) {
|
|
74
|
+
if (typeof action !== "string" ||
|
|
75
|
+
!VALID_AGENT_TASK_INCONSISTENCY_ACTIONS.has(action))
|
|
76
|
+
errors.push("safe_next_actions contains an invalid action");
|
|
77
|
+
}
|
|
78
|
+
return errors.length === 0 ? valid() : invalid(...errors);
|
|
79
|
+
}
|
|
36
80
|
// ---------------------------------------------------------------------------
|
|
37
81
|
// Validators
|
|
38
82
|
// ---------------------------------------------------------------------------
|
|
@@ -52,6 +96,10 @@ export function validateFlowDeskTaskResultV1(value) {
|
|
|
52
96
|
"result_text",
|
|
53
97
|
"result_text_truncated",
|
|
54
98
|
"result_text_sha256",
|
|
99
|
+
"completion_status",
|
|
100
|
+
"output_kind",
|
|
101
|
+
"usable_for_synthesis",
|
|
102
|
+
"missing_contract",
|
|
55
103
|
"created_at",
|
|
56
104
|
"dispatch_authority_enabled",
|
|
57
105
|
]);
|
|
@@ -72,10 +120,19 @@ export function validateFlowDeskTaskResultV1(value) {
|
|
|
72
120
|
if (typeof record.result_text_truncated !== "boolean")
|
|
73
121
|
errors.push("result_text_truncated must be a boolean");
|
|
74
122
|
errors.push(...nonEmptyString(record.result_text_sha256, "result_text_sha256").errors);
|
|
123
|
+
if (record.completion_status !== undefined && !VALID_TASK_RESULT_COMPLETION_STATUS.has(record.completion_status))
|
|
124
|
+
errors.push("completion_status must be final or partial");
|
|
125
|
+
if (record.output_kind !== undefined && !VALID_TASK_RESULT_OUTPUT_KIND.has(record.output_kind))
|
|
126
|
+
errors.push("output_kind is invalid");
|
|
127
|
+
if (record.usable_for_synthesis !== undefined && typeof record.usable_for_synthesis !== "boolean")
|
|
128
|
+
errors.push("usable_for_synthesis must be a boolean");
|
|
129
|
+
if (record.missing_contract !== undefined && typeof record.missing_contract !== "boolean")
|
|
130
|
+
errors.push("missing_contract must be a boolean");
|
|
75
131
|
errors.push(...timestamp(record.created_at, "created_at").errors);
|
|
76
132
|
if (record.dispatch_authority_enabled !== false)
|
|
77
133
|
errors.push("task result cannot enable dispatch authority");
|
|
78
|
-
|
|
134
|
+
const { result_text: _resultText, ...metadataForRawPayloadValidation } = record;
|
|
135
|
+
errors.push(...validateNoForbiddenRawPayloads(metadataForRawPayloadValidation, "task_result").errors);
|
|
79
136
|
return errors.length === 0 ? valid() : invalid(...errors);
|
|
80
137
|
}
|
|
81
138
|
export function validateFlowDeskTaskFailedV1(value) {
|
|
@@ -113,4 +170,94 @@ export function validateFlowDeskTaskFailedV1(value) {
|
|
|
113
170
|
errors.push(...validateNoForbiddenRawPayloads(record, "task_failed").errors);
|
|
114
171
|
return errors.length === 0 ? valid() : invalid(...errors);
|
|
115
172
|
}
|
|
173
|
+
export function validateFlowDeskAgentTaskProgressV1(value) {
|
|
174
|
+
if (!isRecord(value))
|
|
175
|
+
return invalid("agent task progress must be an object");
|
|
176
|
+
const record = value;
|
|
177
|
+
const errors = [];
|
|
178
|
+
const allowed = new Set([
|
|
179
|
+
"schema_version",
|
|
180
|
+
"workflow_id",
|
|
181
|
+
"lane_id",
|
|
182
|
+
"task_id",
|
|
183
|
+
"agent_ref",
|
|
184
|
+
"provider_qualified_model_id",
|
|
185
|
+
"progress_seq",
|
|
186
|
+
"observed_at",
|
|
187
|
+
"phase",
|
|
188
|
+
"progress_label",
|
|
189
|
+
"progress_ref",
|
|
190
|
+
"redaction_version",
|
|
191
|
+
"dispatch_authority_enabled",
|
|
192
|
+
]);
|
|
193
|
+
for (const key of Object.keys(record))
|
|
194
|
+
if (!allowed.has(key))
|
|
195
|
+
errors.push(`unknown property: ${key}`);
|
|
196
|
+
errors.push(...exactString(record.schema_version, "flowdesk.agent_task_progress.v1", "schema_version").errors);
|
|
197
|
+
errors.push(...validateOpaqueId(record.workflow_id, "workflow_id").errors);
|
|
198
|
+
errors.push(...validateOpaqueId(record.lane_id, "lane_id").errors);
|
|
199
|
+
errors.push(...idStartsWith(record.task_id, "task-", "task_id").errors);
|
|
200
|
+
errors.push(...nonEmptyString(record.agent_ref, "agent_ref").errors);
|
|
201
|
+
errors.push(...nonEmptyString(record.provider_qualified_model_id, "provider_qualified_model_id").errors);
|
|
202
|
+
if (typeof record.progress_seq !== "number" || !Number.isInteger(record.progress_seq) || record.progress_seq < 1)
|
|
203
|
+
errors.push("progress_seq must be a positive integer");
|
|
204
|
+
errors.push(...timestamp(record.observed_at, "observed_at").errors);
|
|
205
|
+
if (!VALID_AGENT_TASK_PROGRESS_PHASES.has(record.phase ?? ""))
|
|
206
|
+
errors.push("phase is invalid");
|
|
207
|
+
if (typeof record.progress_label !== "string" || record.progress_label.trim().length === 0)
|
|
208
|
+
errors.push("progress_label must be a non-empty string");
|
|
209
|
+
else if (record.progress_label.length > AGENT_TASK_PROGRESS_MAX_LABEL)
|
|
210
|
+
errors.push(`progress_label exceeds ${AGENT_TASK_PROGRESS_MAX_LABEL} chars`);
|
|
211
|
+
errors.push(...idStartsWith(record.progress_ref, "progress-", "progress_ref").errors);
|
|
212
|
+
errors.push(...exactString(record.redaction_version, "v1", "redaction_version").errors);
|
|
213
|
+
if (record.dispatch_authority_enabled !== false)
|
|
214
|
+
errors.push("agent task progress cannot enable dispatch authority");
|
|
215
|
+
errors.push(...validateNoForbiddenRawPayloads(record, "agent_task_progress").errors);
|
|
216
|
+
return errors.length === 0 ? valid() : invalid(...errors);
|
|
217
|
+
}
|
|
218
|
+
export function validateFlowDeskAgentTaskInconsistencyV1(value) {
|
|
219
|
+
if (!isRecord(value))
|
|
220
|
+
return invalid("agent task inconsistency must be an object");
|
|
221
|
+
const record = value;
|
|
222
|
+
const errors = [];
|
|
223
|
+
const allowed = new Set([
|
|
224
|
+
"schema_version",
|
|
225
|
+
"workflow_id",
|
|
226
|
+
"attempt_id",
|
|
227
|
+
"lane_id",
|
|
228
|
+
"task_id",
|
|
229
|
+
"last_progress_seq",
|
|
230
|
+
"last_progress_observed_at",
|
|
231
|
+
"inconsistency_kind",
|
|
232
|
+
"grace_window_ms",
|
|
233
|
+
"grace_source_label",
|
|
234
|
+
"observed_at",
|
|
235
|
+
"safe_next_actions",
|
|
236
|
+
"redaction_version",
|
|
237
|
+
"dispatch_authority_enabled",
|
|
238
|
+
]);
|
|
239
|
+
for (const key of Object.keys(record))
|
|
240
|
+
if (!allowed.has(key))
|
|
241
|
+
errors.push(`unknown property: ${key}`);
|
|
242
|
+
errors.push(...exactString(record.schema_version, "flowdesk.agent_task_inconsistency.v1", "schema_version").errors);
|
|
243
|
+
errors.push(...validateOpaqueId(record.workflow_id, "workflow_id").errors);
|
|
244
|
+
errors.push(...validateOpaqueId(record.attempt_id, "attempt_id").errors);
|
|
245
|
+
errors.push(...validateOpaqueId(record.lane_id, "lane_id").errors);
|
|
246
|
+
errors.push(...idStartsWith(record.task_id, "task-", "task_id").errors);
|
|
247
|
+
if (typeof record.last_progress_seq !== "number" || !Number.isInteger(record.last_progress_seq) || record.last_progress_seq < 1)
|
|
248
|
+
errors.push("last_progress_seq must be a positive integer");
|
|
249
|
+
errors.push(...timestamp(record.last_progress_observed_at, "last_progress_observed_at").errors);
|
|
250
|
+
if (!VALID_AGENT_TASK_INCONSISTENCY_KINDS.has(record.inconsistency_kind ?? ""))
|
|
251
|
+
errors.push("inconsistency_kind is invalid");
|
|
252
|
+
if (typeof record.grace_window_ms !== "number" || !Number.isInteger(record.grace_window_ms) || record.grace_window_ms < 30_000 || record.grace_window_ms > 600_000)
|
|
253
|
+
errors.push("grace_window_ms must be an integer between 30000 and 600000");
|
|
254
|
+
errors.push(...boundedString(record.grace_source_label, "grace_source_label", AGENT_TASK_INCONSISTENCY_MAX_GRACE_LABEL).errors);
|
|
255
|
+
errors.push(...timestamp(record.observed_at, "observed_at").errors);
|
|
256
|
+
errors.push(...safeNextActions(record.safe_next_actions).errors);
|
|
257
|
+
errors.push(...exactString(record.redaction_version, "v1", "redaction_version").errors);
|
|
258
|
+
if (record.dispatch_authority_enabled !== false)
|
|
259
|
+
errors.push("agent task inconsistency cannot enable dispatch authority");
|
|
260
|
+
errors.push(...validateNoForbiddenRawPayloads(record, "agent_task_inconsistency").errors);
|
|
261
|
+
return errors.length === 0 ? valid() : invalid(...errors);
|
|
262
|
+
}
|
|
116
263
|
//# sourceMappingURL=task-result.js.map
|
package/dist/task-result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-result.js","sourceRoot":"","sources":["../src/task-result.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-result.js","sourceRoot":"","sources":["../src/task-result.ts"],"names":[],"mappings":"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"}
|
package/dist/usage-health.js
CHANGED