@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.
Files changed (122) hide show
  1. package/README.md +1 -1
  2. package/dist/agent-profiles.js +0 -1
  3. package/dist/agent-registry.d.ts +43 -0
  4. package/dist/agent-registry.d.ts.map +1 -0
  5. package/dist/agent-registry.js +309 -0
  6. package/dist/agent-registry.js.map +1 -0
  7. package/dist/audit.js +0 -1
  8. package/dist/authority-promotion.js +0 -1
  9. package/dist/bootstrap-foundation.js +0 -1
  10. package/dist/chat-control-authority.js +0 -1
  11. package/dist/chat-hook-authority-probe.js +0 -1
  12. package/dist/chat-routing.js +0 -1
  13. package/dist/command-manifest.js +0 -1
  14. package/dist/config-policy.js +0 -1
  15. package/dist/connector-gateway.js +0 -1
  16. package/dist/connector-profile.js +0 -1
  17. package/dist/controlled-conformance-doc-write.js +0 -1
  18. package/dist/controlled-redacted-audit-export-write.js +0 -1
  19. package/dist/controlled-workspace-file-write.d.ts +36 -0
  20. package/dist/controlled-workspace-file-write.d.ts.map +1 -0
  21. package/dist/controlled-workspace-file-write.js +130 -0
  22. package/dist/controlled-workspace-file-write.js.map +1 -0
  23. package/dist/core-completion-safety-contracts.js +0 -1
  24. package/dist/dispatch-attempt-manifest.js +0 -1
  25. package/dist/dispatch-idempotency.js +0 -1
  26. package/dist/external-auth-policy.js +0 -1
  27. package/dist/fake-remote-connector-adapter.js +0 -1
  28. package/dist/fake-runtime.js +0 -1
  29. package/dist/fallback-decision.js +0 -1
  30. package/dist/fallback-regate-plan.js +0 -1
  31. package/dist/fds1-schema-probe-result.js +0 -1
  32. package/dist/guard-boundary.js +0 -1
  33. package/dist/guarded-dry-run.js +0 -1
  34. package/dist/hook-harness.js +0 -1
  35. package/dist/index.d.ts +9 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +9 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/lane-heartbeat.js +0 -1
  40. package/dist/lane-lifecycle-record.js +0 -1
  41. package/dist/lane-observability.js +0 -1
  42. package/dist/lane-stall-projection.d.ts +2 -1
  43. package/dist/lane-stall-projection.d.ts.map +1 -1
  44. package/dist/lane-stall-projection.js +66 -9
  45. package/dist/lane-stall-projection.js.map +1 -1
  46. package/dist/managed-dispatch-evidence-shape.js +0 -1
  47. package/dist/model-availability-cache.js +0 -1
  48. package/dist/operational-intelligence.js +0 -1
  49. package/dist/pending-abort.js +0 -1
  50. package/dist/plan.js +0 -1
  51. package/dist/planning-evidence-common.d.ts +18 -0
  52. package/dist/planning-evidence-common.d.ts.map +1 -0
  53. package/dist/planning-evidence-common.js +95 -0
  54. package/dist/planning-evidence-common.js.map +1 -0
  55. package/dist/pre-dispatch-audit-record.js +0 -1
  56. package/dist/production-approval-source.js +0 -1
  57. package/dist/production-enablement.js +0 -1
  58. package/dist/production-verification.js +0 -1
  59. package/dist/provider-failures.js +0 -1
  60. package/dist/provider-usage-collector.d.ts +1 -0
  61. package/dist/provider-usage-collector.d.ts.map +1 -1
  62. package/dist/provider-usage-collector.js +179 -29
  63. package/dist/provider-usage-collector.js.map +1 -1
  64. package/dist/redaction.js +0 -1
  65. package/dist/release1-contracts.js +0 -1
  66. package/dist/remote-write-connector-gate.js +0 -1
  67. package/dist/retry-plan.d.ts +20 -2
  68. package/dist/retry-plan.d.ts.map +1 -1
  69. package/dist/retry-plan.js +57 -3
  70. package/dist/retry-plan.js.map +1 -1
  71. package/dist/retry.js +0 -1
  72. package/dist/reviewer-lane-conformance.js +0 -1
  73. package/dist/runtime-lane-productization.js +0 -1
  74. package/dist/sanitized-auth-capture.js +0 -1
  75. package/dist/schema-artifacts.js +0 -1
  76. package/dist/schema-registry.d.ts.map +1 -1
  77. package/dist/schema-registry.js +5 -1
  78. package/dist/schema-registry.js.map +1 -1
  79. package/dist/session-evidence.d.ts.map +1 -1
  80. package/dist/session-evidence.js +44 -3
  81. package/dist/session-evidence.js.map +1 -1
  82. package/dist/state-paths.d.ts +1 -1
  83. package/dist/state-paths.d.ts.map +1 -1
  84. package/dist/state-paths.js +24 -0
  85. package/dist/state-paths.js.map +1 -1
  86. package/dist/state-store.js +0 -1
  87. package/dist/status.js +0 -1
  88. package/dist/task-agent-assignment.d.ts +30 -0
  89. package/dist/task-agent-assignment.d.ts.map +1 -0
  90. package/dist/task-agent-assignment.js +77 -0
  91. package/dist/task-agent-assignment.js.map +1 -0
  92. package/dist/task-graph.d.ts +31 -0
  93. package/dist/task-graph.d.ts.map +1 -0
  94. package/dist/task-graph.js +122 -0
  95. package/dist/task-graph.js.map +1 -0
  96. package/dist/task-model-selection.d.ts +36 -0
  97. package/dist/task-model-selection.d.ts.map +1 -0
  98. package/dist/task-model-selection.js +99 -0
  99. package/dist/task-model-selection.js.map +1 -0
  100. package/dist/task-result.d.ts +38 -1
  101. package/dist/task-result.d.ts.map +1 -1
  102. package/dist/task-result.js +148 -1
  103. package/dist/task-result.js.map +1 -1
  104. package/dist/tool-contract-fixtures.js +0 -1
  105. package/dist/top-tier-reviewer-lane-probe.js +0 -1
  106. package/dist/usage-health.js +0 -1
  107. package/dist/validators.d.ts.map +1 -1
  108. package/dist/validators.js +10 -2
  109. package/dist/validators.js.map +1 -1
  110. package/dist/workflow-authoring-result.d.ts +25 -0
  111. package/dist/workflow-authoring-result.d.ts.map +1 -0
  112. package/dist/workflow-authoring-result.js +63 -0
  113. package/dist/workflow-authoring-result.js.map +1 -0
  114. package/dist/workflow-dispatch-plan.d.ts +65 -0
  115. package/dist/workflow-dispatch-plan.d.ts.map +1 -0
  116. package/dist/workflow-dispatch-plan.js +228 -0
  117. package/dist/workflow-dispatch-plan.js.map +1 -0
  118. package/dist/workflow-synthesis.d.ts +18 -0
  119. package/dist/workflow-synthesis.d.ts.map +1 -0
  120. package/dist/workflow-synthesis.js +40 -0
  121. package/dist/workflow-synthesis.js.map +1 -0
  122. 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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"}
@@ -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,aAMxC,CAAC;AAwCH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAsC7E;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CA+B7E"}
1
+ {"version":3,"file":"task-result.d.ts","sourceRoot":"","sources":["../src/task-result.ts"],"names":[],"mappings":"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"}
@@ -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
- errors.push(...validateNoForbiddenRawPayloads(record, "task_result").errors);
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
@@ -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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"}
@@ -386,4 +386,3 @@ export function validateFlowDeskFds1UnsupportedControlStubsComplete(stubs = FLOW
386
386
  ...stubs.map((stub) => validateFlowDeskFds1UnsupportedControlStub(stub))
387
387
  ]);
388
388
  }
389
- //# sourceMappingURL=tool-contract-fixtures.js.map
@@ -73,4 +73,3 @@ export function evaluateFlowDeskTopTierReviewerLaneProbeV1(request, context = {}
73
73
  evidenceRefs: Object.values(evidenceMap)
74
74
  });
75
75
  }
76
- //# sourceMappingURL=top-tier-reviewer-lane-probe.js.map
@@ -102,4 +102,3 @@ export function rejectMergedUsageProviderAuthorityV1(value) {
102
102
  };
103
103
  return visit(value) ? invalid("usage and provider health must not be merged into one authority object") : valid();
104
104
  }
105
- //# sourceMappingURL=usage-health.js.map