@openapi-flow/langchain 0.0.0-stage → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +152 -2
  3. package/THIRD_PARTY_NOTICES.md +3 -0
  4. package/dist/arguments/analyze-api-input-answers.d.ts +3 -0
  5. package/dist/arguments/analyze-api-input-answers.js +87 -0
  6. package/dist/arguments/analyze-api-request-media-type.d.ts +4 -0
  7. package/dist/arguments/analyze-api-request-media-type.js +50 -0
  8. package/dist/arguments/extract-api-input-answers.d.ts +3 -0
  9. package/dist/arguments/extract-api-input-answers.js +4 -0
  10. package/dist/arguments/generate-api-arguments.d.ts +3 -0
  11. package/dist/arguments/generate-api-arguments.js +60 -0
  12. package/dist/arguments/select-api-request-media-type.d.ts +2 -0
  13. package/dist/arguments/select-api-request-media-type.js +10 -0
  14. package/dist/bindings/plan-api-bindings.d.ts +3 -0
  15. package/dist/bindings/plan-api-bindings.js +50 -0
  16. package/dist/draft/analyze-workflow-draft-edit.d.ts +4 -0
  17. package/dist/draft/analyze-workflow-draft-edit.js +84 -0
  18. package/dist/draft/generate-workflow-draft-api-call-arguments.d.ts +3 -0
  19. package/dist/draft/generate-workflow-draft-api-call-arguments.js +88 -0
  20. package/dist/draft/generate-workflow-draft-api-input-edits.d.ts +4 -0
  21. package/dist/draft/generate-workflow-draft-api-input-edits.js +58 -0
  22. package/dist/draft/generate-workflow-draft-native-node-addition.d.ts +4 -0
  23. package/dist/draft/generate-workflow-draft-native-node-addition.js +137 -0
  24. package/dist/draft/generate-workflow-draft-native-parameter-edits.d.ts +3 -0
  25. package/dist/draft/generate-workflow-draft-native-parameter-edits.js +71 -0
  26. package/dist/draft/plan-workflow-draft-api-binding-edit.d.ts +4 -0
  27. package/dist/draft/plan-workflow-draft-api-binding-edit.js +103 -0
  28. package/dist/draft/plan-workflow-draft-api-call-bindings.d.ts +3 -0
  29. package/dist/draft/plan-workflow-draft-api-call-bindings.js +114 -0
  30. package/dist/draft/plan-workflow-draft-clarification-scopes.d.ts +4 -0
  31. package/dist/draft/plan-workflow-draft-clarification-scopes.js +77 -0
  32. package/dist/draft/plan-workflow-draft-connection-edit.d.ts +4 -0
  33. package/dist/draft/plan-workflow-draft-connection-edit.js +79 -0
  34. package/dist/draft/plan-workflow-draft-native-dependencies.d.ts +4 -0
  35. package/dist/draft/plan-workflow-draft-native-dependencies.js +45 -0
  36. package/dist/draft/plan-workflow-draft-native-reference-repair.d.ts +4 -0
  37. package/dist/draft/plan-workflow-draft-native-reference-repair.js +68 -0
  38. package/dist/draft/resolve-workflow-draft-edit-proposal.d.ts +3 -0
  39. package/dist/draft/resolve-workflow-draft-edit-proposal.js +39 -0
  40. package/dist/draft/select-workflow-draft-api-binding-inputs.d.ts +4 -0
  41. package/dist/draft/select-workflow-draft-api-binding-inputs.js +83 -0
  42. package/dist/draft/select-workflow-draft-api-input-edit-targets.d.ts +4 -0
  43. package/dist/draft/select-workflow-draft-api-input-edit-targets.js +55 -0
  44. package/dist/draft/select-workflow-draft-native-node-parameter-ownership.d.ts +4 -0
  45. package/dist/draft/select-workflow-draft-native-node-parameter-ownership.js +81 -0
  46. package/dist/draft/select-workflow-draft-native-parameter-edit-targets.d.ts +3 -0
  47. package/dist/draft/select-workflow-draft-native-parameter-edit-targets.js +51 -0
  48. package/dist/draft/workflow-draft-api-binding-edit-planning-error.d.ts +5 -0
  49. package/dist/draft/workflow-draft-api-binding-edit-planning-error.js +10 -0
  50. package/dist/draft/workflow-draft-api-call-planning-error.d.ts +5 -0
  51. package/dist/draft/workflow-draft-api-call-planning-error.js +10 -0
  52. package/dist/draft/workflow-draft-api-input-edit-planning-error.d.ts +5 -0
  53. package/dist/draft/workflow-draft-api-input-edit-planning-error.js +10 -0
  54. package/dist/draft/workflow-draft-clarification-scope-planning-error.d.ts +5 -0
  55. package/dist/draft/workflow-draft-clarification-scope-planning-error.js +8 -0
  56. package/dist/draft/workflow-draft-connection-edit-planning-error.d.ts +5 -0
  57. package/dist/draft/workflow-draft-connection-edit-planning-error.js +10 -0
  58. package/dist/draft/workflow-draft-edit-planning-error.d.ts +5 -0
  59. package/dist/draft/workflow-draft-edit-planning-error.js +8 -0
  60. package/dist/draft/workflow-draft-native-node-addition-planning-error.d.ts +5 -0
  61. package/dist/draft/workflow-draft-native-node-addition-planning-error.js +10 -0
  62. package/dist/draft/workflow-draft-native-parameter-edit-planning-error.d.ts +5 -0
  63. package/dist/draft/workflow-draft-native-parameter-edit-planning-error.js +8 -0
  64. package/dist/draft/workflow-draft-native-reference-repair-planning-error.d.ts +5 -0
  65. package/dist/draft/workflow-draft-native-reference-repair-planning-error.js +8 -0
  66. package/dist/legacy/planning/operation-plan-inputs.d.ts +3 -0
  67. package/dist/legacy/planning/operation-plan-inputs.js +17 -0
  68. package/dist/legacy/planning/parse-structured-output.d.ts +2 -0
  69. package/dist/legacy/planning/parse-structured-output.js +9 -0
  70. package/dist/legacy/planning/propose-catalog-scenario.d.ts +3 -0
  71. package/dist/legacy/planning/propose-catalog-scenario.js +136 -0
  72. package/dist/legacy/planning/select-operation.d.ts +4 -0
  73. package/dist/legacy/planning/select-operation.js +43 -0
  74. package/dist/legacy/schemas/catalog-selection-schema.d.ts +19 -0
  75. package/dist/legacy/schemas/catalog-selection-schema.js +39 -0
  76. package/dist/legacy/schemas/catalog-step-schema.d.ts +16 -0
  77. package/dist/legacy/schemas/catalog-step-schema.js +39 -0
  78. package/dist/legacy/schemas/operation-selection-schema.d.ts +6 -0
  79. package/dist/legacy/schemas/operation-selection-schema.js +14 -0
  80. package/dist/legacy-api.d.ts +9 -0
  81. package/dist/legacy-api.js +7 -0
  82. package/dist/prompts/api-arguments-prompt.d.ts +1 -0
  83. package/dist/prompts/api-arguments-prompt.js +1 -0
  84. package/dist/prompts/api-bindings-prompt.d.ts +1 -0
  85. package/dist/prompts/api-bindings-prompt.js +13 -0
  86. package/dist/prompts/api-input-answers-prompt.d.ts +1 -0
  87. package/dist/prompts/api-input-answers-prompt.js +7 -0
  88. package/dist/prompts/api-request-media-type-prompt.d.ts +1 -0
  89. package/dist/prompts/api-request-media-type-prompt.js +1 -0
  90. package/dist/prompts/api-selection-analysis-prompt.d.ts +1 -0
  91. package/dist/prompts/api-selection-analysis-prompt.js +5 -0
  92. package/dist/prompts/api-selection-explanation-prompt.d.ts +1 -0
  93. package/dist/prompts/api-selection-explanation-prompt.js +1 -0
  94. package/dist/prompts/native-instance-dependencies-prompt.d.ts +1 -0
  95. package/dist/prompts/native-instance-dependencies-prompt.js +8 -0
  96. package/dist/prompts/native-node-planning-prompt.d.ts +3 -0
  97. package/dist/prompts/native-node-planning-prompt.js +22 -0
  98. package/dist/prompts/operation-selection-prompt.d.ts +1 -0
  99. package/dist/prompts/operation-selection-prompt.js +1 -0
  100. package/dist/prompts/reviewable-workflow-graph-prompt.d.ts +1 -0
  101. package/dist/prompts/reviewable-workflow-graph-prompt.js +7 -0
  102. package/dist/prompts/workflow-connections-prompt.d.ts +1 -0
  103. package/dist/prompts/workflow-connections-prompt.js +11 -0
  104. package/dist/prompts/workflow-draft-api-binding-edit-prompt.d.ts +1 -0
  105. package/dist/prompts/workflow-draft-api-binding-edit-prompt.js +9 -0
  106. package/dist/prompts/workflow-draft-api-call-planning-prompt.d.ts +3 -0
  107. package/dist/prompts/workflow-draft-api-call-planning-prompt.js +39 -0
  108. package/dist/prompts/workflow-draft-api-input-edit-prompt.d.ts +2 -0
  109. package/dist/prompts/workflow-draft-api-input-edit-prompt.js +14 -0
  110. package/dist/prompts/workflow-draft-clarification-scope-prompt.d.ts +1 -0
  111. package/dist/prompts/workflow-draft-clarification-scope-prompt.js +10 -0
  112. package/dist/prompts/workflow-draft-connection-edit-prompt.d.ts +1 -0
  113. package/dist/prompts/workflow-draft-connection-edit-prompt.js +7 -0
  114. package/dist/prompts/workflow-draft-edit-prompt.d.ts +1 -0
  115. package/dist/prompts/workflow-draft-edit-prompt.js +15 -0
  116. package/dist/prompts/workflow-draft-native-dependencies-prompt.d.ts +1 -0
  117. package/dist/prompts/workflow-draft-native-dependencies-prompt.js +5 -0
  118. package/dist/prompts/workflow-draft-native-node-addition-prompt.d.ts +2 -0
  119. package/dist/prompts/workflow-draft-native-node-addition-prompt.js +6 -0
  120. package/dist/prompts/workflow-draft-native-parameter-edit-prompt.d.ts +2 -0
  121. package/dist/prompts/workflow-draft-native-parameter-edit-prompt.js +2 -0
  122. package/dist/prompts/workflow-draft-native-reference-repair-prompt.d.ts +1 -0
  123. package/dist/prompts/workflow-draft-native-reference-repair-prompt.js +7 -0
  124. package/dist/prompts/workflow-graph-prompt.d.ts +1 -0
  125. package/dist/prompts/workflow-graph-prompt.js +15 -0
  126. package/dist/prompts/workflow-requirements-prompt.d.ts +1 -0
  127. package/dist/prompts/workflow-requirements-prompt.js +14 -0
  128. package/dist/prompts/workflow-review-suggestions-prompt.d.ts +1 -0
  129. package/dist/prompts/workflow-review-suggestions-prompt.js +4 -0
  130. package/dist/prompts/workflow-user-action-evidence-prompt.d.ts +1 -0
  131. package/dist/prompts/workflow-user-action-evidence-prompt.js +1 -0
  132. package/dist/public-api.d.ts +67 -0
  133. package/dist/public-api.js +46 -0
  134. package/dist/requirements/clarify-workflow-requirements.d.ts +4 -0
  135. package/dist/requirements/clarify-workflow-requirements.js +53 -0
  136. package/dist/requirements/resolve-workflow-requirements-evidence.d.ts +4 -0
  137. package/dist/requirements/resolve-workflow-requirements-evidence.js +58 -0
  138. package/dist/review/suggest-workflow-review-follow-ups.d.ts +4 -0
  139. package/dist/review/suggest-workflow-review-follow-ups.js +87 -0
  140. package/dist/review/workflow-review-suggestion-planning-error.d.ts +5 -0
  141. package/dist/review/workflow-review-suggestion-planning-error.js +8 -0
  142. package/dist/schemas/api-binding-plan-schema.d.ts +8 -0
  143. package/dist/schemas/api-binding-plan-schema.js +59 -0
  144. package/dist/schemas/api-input-answer-source-schema.d.ts +16 -0
  145. package/dist/schemas/api-input-answer-source-schema.js +28 -0
  146. package/dist/schemas/api-literal-generation-output-schema.d.ts +11 -0
  147. package/dist/schemas/api-literal-generation-output-schema.js +20 -0
  148. package/dist/schemas/api-request-media-type-schema.d.ts +6 -0
  149. package/dist/schemas/api-request-media-type-schema.js +23 -0
  150. package/dist/schemas/api-selection-analysis-schema.d.ts +41 -0
  151. package/dist/schemas/api-selection-analysis-schema.js +23 -0
  152. package/dist/schemas/api-selection-options-schema.d.ts +4 -0
  153. package/dist/schemas/api-selection-options-schema.js +4 -0
  154. package/dist/schemas/api-selection-schema.d.ts +25 -0
  155. package/dist/schemas/api-selection-schema.js +31 -0
  156. package/dist/schemas/create-workflow-message-evidence-selection-schema.d.ts +16 -0
  157. package/dist/schemas/create-workflow-message-evidence-selection-schema.js +22 -0
  158. package/dist/schemas/native-node-explanation-schema.d.ts +5 -0
  159. package/dist/schemas/native-node-explanation-schema.js +9 -0
  160. package/dist/schemas/native-node-parameter-contract.d.ts +3 -0
  161. package/dist/schemas/native-node-parameter-contract.js +30 -0
  162. package/dist/schemas/native-node-planning-contract.d.ts +3 -0
  163. package/dist/schemas/native-node-planning-contract.js +44 -0
  164. package/dist/schemas/request-media-selection-options-schema.d.ts +4 -0
  165. package/dist/schemas/request-media-selection-options-schema.js +4 -0
  166. package/dist/schemas/reviewable-workflow-graph-schema.d.ts +6 -0
  167. package/dist/schemas/reviewable-workflow-graph-schema.js +75 -0
  168. package/dist/schemas/serialize-structured-output-schema.d.ts +5 -0
  169. package/dist/schemas/serialize-structured-output-schema.js +10 -0
  170. package/dist/schemas/serialize-workflow-requirements-schema.d.ts +4 -0
  171. package/dist/schemas/serialize-workflow-requirements-schema.js +5 -0
  172. package/dist/schemas/with-api-selection-explanation.d.ts +10 -0
  173. package/dist/schemas/with-api-selection-explanation.js +15 -0
  174. package/dist/schemas/workflow-connection-explanation-schema.d.ts +5 -0
  175. package/dist/schemas/workflow-connection-explanation-schema.js +9 -0
  176. package/dist/schemas/workflow-draft-edit-schema.d.ts +3 -0
  177. package/dist/schemas/workflow-draft-edit-schema.js +17 -0
  178. package/dist/schemas/workflow-graph-explanation-schema.d.ts +5 -0
  179. package/dist/schemas/workflow-graph-explanation-schema.js +9 -0
  180. package/dist/schemas/workflow-graph-proposal-schema.d.ts +4 -0
  181. package/dist/schemas/workflow-graph-proposal-schema.js +45 -0
  182. package/dist/schemas/workflow-planning-evidence-schemas.d.ts +20 -0
  183. package/dist/schemas/workflow-planning-evidence-schemas.js +44 -0
  184. package/dist/schemas/workflow-requirements-schema.d.ts +3 -0
  185. package/dist/schemas/workflow-requirements-schema.js +6 -0
  186. package/dist/schemas/workflow-review-suggestions-schema.d.ts +4 -0
  187. package/dist/schemas/workflow-review-suggestions-schema.js +18 -0
  188. package/dist/selection/analyze-api-selection.d.ts +4 -0
  189. package/dist/selection/analyze-api-selection.js +117 -0
  190. package/dist/selection/resolve-api-selection-options.d.ts +3 -0
  191. package/dist/selection/resolve-api-selection-options.js +6 -0
  192. package/dist/selection/select-api-operations.d.ts +3 -0
  193. package/dist/selection/select-api-operations.js +84 -0
  194. package/dist/types/api-input-answers.d.ts +16 -0
  195. package/dist/types/api-input-answers.js +1 -0
  196. package/dist/types/api-selection-analysis.d.ts +3 -0
  197. package/dist/types/api-selection-analysis.js +1 -0
  198. package/dist/types/argument-generation.d.ts +13 -0
  199. package/dist/types/argument-generation.js +1 -0
  200. package/dist/types/binding-planning.d.ts +10 -0
  201. package/dist/types/binding-planning.js +1 -0
  202. package/dist/types/legacy/catalog-planning.d.ts +16 -0
  203. package/dist/types/legacy/catalog-planning.js +1 -0
  204. package/dist/types/legacy/planning.d.ts +5 -0
  205. package/dist/types/legacy/planning.js +1 -0
  206. package/dist/types/native-node-planning.d.ts +76 -0
  207. package/dist/types/native-node-planning.js +1 -0
  208. package/dist/types/operation-selection.d.ts +14 -0
  209. package/dist/types/operation-selection.js +1 -0
  210. package/dist/types/request-media-selection.d.ts +15 -0
  211. package/dist/types/request-media-selection.js +1 -0
  212. package/dist/types/reviewable-workflow-planning.d.ts +28 -0
  213. package/dist/types/reviewable-workflow-planning.js +1 -0
  214. package/dist/types/structured-output-schema.d.ts +3 -0
  215. package/dist/types/structured-output-schema.js +1 -0
  216. package/dist/types/workflow-clarification.d.ts +23 -0
  217. package/dist/types/workflow-clarification.js +1 -0
  218. package/dist/types/workflow-draft-api-binding-edit.d.ts +9 -0
  219. package/dist/types/workflow-draft-api-binding-edit.js +1 -0
  220. package/dist/types/workflow-draft-api-call-planning.d.ts +15 -0
  221. package/dist/types/workflow-draft-api-call-planning.js +1 -0
  222. package/dist/types/workflow-draft-api-input-edit.d.ts +13 -0
  223. package/dist/types/workflow-draft-api-input-edit.js +1 -0
  224. package/dist/types/workflow-draft-clarification.d.ts +9 -0
  225. package/dist/types/workflow-draft-clarification.js +1 -0
  226. package/dist/types/workflow-draft-connection-edit.d.ts +9 -0
  227. package/dist/types/workflow-draft-connection-edit.js +1 -0
  228. package/dist/types/workflow-draft-edit.d.ts +16 -0
  229. package/dist/types/workflow-draft-edit.js +1 -0
  230. package/dist/types/workflow-draft-native-node-addition.d.ts +18 -0
  231. package/dist/types/workflow-draft-native-node-addition.js +1 -0
  232. package/dist/types/workflow-draft-native-parameter-edit.d.ts +13 -0
  233. package/dist/types/workflow-draft-native-parameter-edit.js +1 -0
  234. package/dist/types/workflow-draft-native-reference-repair.d.ts +9 -0
  235. package/dist/types/workflow-draft-native-reference-repair.js +1 -0
  236. package/dist/types/workflow-message-evidence-selection.d.ts +6 -0
  237. package/dist/types/workflow-message-evidence-selection.js +1 -0
  238. package/dist/types/workflow-orchestration.d.ts +21 -0
  239. package/dist/types/workflow-orchestration.js +1 -0
  240. package/dist/types/workflow-planning.d.ts +35 -0
  241. package/dist/types/workflow-planning.js +1 -0
  242. package/dist/types/workflow-review-suggestions.d.ts +12 -0
  243. package/dist/types/workflow-review-suggestions.js +1 -0
  244. package/dist/workflow/complete-reviewable-workflow-graph-proposal.d.ts +4 -0
  245. package/dist/workflow/complete-reviewable-workflow-graph-proposal.js +13 -0
  246. package/dist/workflow/generate-native-node-parameters.d.ts +4 -0
  247. package/dist/workflow/generate-native-node-parameters.js +87 -0
  248. package/dist/workflow/native-node-planning-error.d.ts +5 -0
  249. package/dist/workflow/native-node-planning-error.js +10 -0
  250. package/dist/workflow/orchestrate-workflow.d.ts +4 -0
  251. package/dist/workflow/orchestrate-workflow.js +31 -0
  252. package/dist/workflow/plan-native-instance-dependencies.d.ts +4 -0
  253. package/dist/workflow/plan-native-instance-dependencies.js +45 -0
  254. package/dist/workflow/plan-native-nodes.d.ts +2 -0
  255. package/dist/workflow/plan-native-nodes.js +96 -0
  256. package/dist/workflow/plan-reviewable-workflow-graph.d.ts +3 -0
  257. package/dist/workflow/plan-reviewable-workflow-graph.js +70 -0
  258. package/dist/workflow/plan-workflow-connections.d.ts +3 -0
  259. package/dist/workflow/plan-workflow-connections.js +67 -0
  260. package/dist/workflow/plan-workflow-graph.d.ts +3 -0
  261. package/dist/workflow/plan-workflow-graph.js +80 -0
  262. package/dist/workflow/resolve-native-node-parameter-source.d.ts +4 -0
  263. package/dist/workflow/resolve-native-node-parameter-source.js +7 -0
  264. package/dist/workflow/resolve-native-node-planning-output.d.ts +3 -0
  265. package/dist/workflow/resolve-native-node-planning-output.js +33 -0
  266. package/dist/workflow/resolve-workflow-connection-output.d.ts +3 -0
  267. package/dist/workflow/resolve-workflow-connection-output.js +22 -0
  268. package/dist/workflow/resolve-workflow-graph-output.d.ts +5 -0
  269. package/dist/workflow/resolve-workflow-graph-output.js +69 -0
  270. package/dist/workflow/reviewable-workflow-graph-planning-error.d.ts +5 -0
  271. package/dist/workflow/reviewable-workflow-graph-planning-error.js +8 -0
  272. package/dist/workflow/select-native-node-instances.d.ts +4 -0
  273. package/dist/workflow/select-native-node-instances.js +57 -0
  274. package/dist/workflow/workflow-graph-planning-error.d.ts +5 -0
  275. package/dist/workflow/workflow-graph-planning-error.js +10 -0
  276. package/package.json +47 -4
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ export declare function createApiSelectionSchema(candidateIds: string[], includeExplanations?: boolean): z.ZodObject<{
3
+ operations: z.ZodArray<z.ZodObject<{
4
+ candidateId: z.ZodEnum<{
5
+ [x: string]: string;
6
+ }>;
7
+ purpose: z.ZodString;
8
+ }, z.core.$strict> | z.ZodObject<{
9
+ candidateId: z.ZodEnum<{
10
+ [x: string]: string;
11
+ }>;
12
+ purpose: z.ZodString;
13
+ explanation: z.ZodObject<{
14
+ reason: z.ZodString;
15
+ }, z.core.$strict>;
16
+ }, z.core.$strict>>;
17
+ gaps: z.ZodArray<z.ZodObject<{
18
+ description: z.ZodString;
19
+ }, z.core.$strict> | z.ZodObject<{
20
+ description: z.ZodString;
21
+ explanation: z.ZodObject<{
22
+ reason: z.ZodString;
23
+ }, z.core.$strict>;
24
+ }, z.core.$strict>>;
25
+ }, z.core.$strict>;
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ import { withApiSelectionExplanation } from './with-api-selection-explanation.js';
3
+ export function createApiSelectionSchema(candidateIds, includeExplanations = false) {
4
+ if (candidateIds.length === 0)
5
+ throw new Error('operations must contain candidates for model selection');
6
+ return z
7
+ .object({
8
+ operations: z
9
+ .array(withApiSelectionExplanation(z
10
+ .object({
11
+ candidateId: z
12
+ .enum(candidateIds)
13
+ .describe('Exact identifier from supplied candidates; the same candidate may be used by multiple required call instances.'),
14
+ purpose: z
15
+ .string()
16
+ .min(1)
17
+ .describe('The scenario role of this one API call instance. Describe separate required calls separately; this is not an execution order.'),
18
+ })
19
+ .strict(), includeExplanations))
20
+ .describe('One entry per required API call instance, not a deduplicated API catalog. Repeat a candidateId only when the scenario requires separate calls to that API.'),
21
+ gaps: z.array(withApiSelectionExplanation(z
22
+ .object({
23
+ description: z
24
+ .string()
25
+ .min(1)
26
+ .describe('Required API capability that no supplied discovery candidate matches. Do not judge missing parameters, response fields or security without a full contract.'),
27
+ })
28
+ .strict(), includeExplanations)),
29
+ })
30
+ .strict();
31
+ }
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ import type { WorkflowSourceMessage } from '@openapi-flow/core';
3
+ /** Resolve only an explicitly selected current source ID, from a captured immutable snapshot. */
4
+ export declare function createWorkflowMessageEvidenceSelectionSchema(supplied: WorkflowSourceMessage[]): z.ZodPipe<z.ZodObject<{
5
+ kind: z.ZodLiteral<"message">;
6
+ messageId: z.ZodEnum<{
7
+ [x: string]: string;
8
+ }>;
9
+ }, z.core.$strict>, z.ZodTransform<{
10
+ quote: string;
11
+ kind: "message";
12
+ messageId: string;
13
+ }, {
14
+ kind: "message";
15
+ messageId: string;
16
+ }>>;
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ /** Resolve only an explicitly selected current source ID, from a captured immutable snapshot. */
3
+ export function createWorkflowMessageEvidenceSelectionSchema(supplied) {
4
+ const messages = z
5
+ .array(z.strictObject({ id: z.string().min(1), text: z.string().min(1) }))
6
+ .min(1)
7
+ .refine((items) => new Set(items.map((item) => item.id)).size === items.length)
8
+ .parse(supplied);
9
+ return z
10
+ .strictObject({
11
+ kind: z.literal('message'),
12
+ messageId: z
13
+ .enum(messages.map((message) => message.id))
14
+ .describe('Select a supplied message ID only. Code attaches its unchanged original text; never generate a quote.'),
15
+ })
16
+ .transform((selection) => {
17
+ const message = messages.find((item) => item.id === selection.messageId);
18
+ if (!message)
19
+ throw new Error(`Message evidence selection references unavailable source ${selection.messageId}`);
20
+ return { ...selection, quote: message.text };
21
+ });
22
+ }
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ export declare const nativeNodeExplanationOptionsSchema: z.ZodObject<{
3
+ includeExplanations: z.ZodOptional<z.ZodBoolean>;
4
+ }, z.core.$strict>;
5
+ export declare const nativeNodePlanningReasonSchema: z.ZodString;
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export const nativeNodeExplanationOptionsSchema = z.strictObject({
3
+ includeExplanations: z.boolean().optional(),
4
+ });
5
+ export const nativeNodePlanningReasonSchema = z
6
+ .string()
7
+ .min(1)
8
+ .refine((value) => value.trim().length > 0)
9
+ .describe('Brief user-facing reason in the scenario language for this proposed native instance and its requested parameter values, or for adding no new instance. Explain the proposal, not private chain-of-thought. Code attaches the actual supplied scenario, API roles, prepared nodes and capability schemas. Never generate evidence, ports, output schemas, source quotes, slot IDs or n8n JSON.');
@@ -0,0 +1,3 @@
1
+ import type { WorkflowCapability } from '@openapi-flow/core';
2
+ import type { NativeNodeParameterContract } from '../types/native-node-planning.js';
3
+ export declare function createNativeNodeParameterContract(capability: WorkflowCapability, allowRuntimeParameters: boolean): NativeNodeParameterContract;
@@ -0,0 +1,30 @@
1
+ import { z } from 'zod';
2
+ import { createNativePlanningCapabilityMaterial } from '@openapi-flow/core';
3
+ export function createNativeNodeParameterContract(capability, allowRuntimeParameters) {
4
+ const identity = {
5
+ id: z
6
+ .string()
7
+ .min(1)
8
+ .describe('Unique native instance ID, distinct from every supplied API, prepared native and gap ID.'),
9
+ capability: z.literal(capability.name).describe(capability.description),
10
+ };
11
+ const schemas = [];
12
+ const material = createNativePlanningCapabilityMaterial(capability, allowRuntimeParameters);
13
+ if (allowRuntimeParameters && capability.supportsRuntimeParameters === true) {
14
+ schemas.push(z.strictObject({
15
+ ...identity,
16
+ parameterSource: z
17
+ .literal('literal')
18
+ .describe('Choose only actual values supplied in the scenario, never placeholders or invented defaults.'),
19
+ parameters: capability.parametersSchema,
20
+ }), z.strictObject({
21
+ ...identity,
22
+ parameterSource: z
23
+ .literal('workflow-input')
24
+ .describe('Choose when actual complete parameter values must be supplied at execution and this capability has runtime-independent ports, references and output schema. Never generate any parameters, placeholders or runtime flags here. Code derives the empty parameter object, runtime flag, slot ID and original schema.'),
25
+ }));
26
+ }
27
+ else
28
+ schemas.push(z.strictObject({ ...identity, parameters: capability.parametersSchema }));
29
+ return { schemas, material };
30
+ }
@@ -0,0 +1,3 @@
1
+ import type { WorkflowCapability } from '@openapi-flow/core';
2
+ import type { NativeNodePlanningContract } from '../types/native-node-planning.js';
3
+ export declare function createNativeNodePlanningContract(capabilities: WorkflowCapability[], allowRuntimeParameters?: boolean, includeExplanations?: boolean): NativeNodePlanningContract;
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import { createNativeNodeParameterContract } from './native-node-parameter-contract.js';
3
+ import { nativeNodePlanningReasonSchema } from './native-node-explanation-schema.js';
4
+ export function createNativeNodePlanningContract(capabilities, allowRuntimeParameters = false, includeExplanations = false) {
5
+ if (!capabilities.length)
6
+ throw new Error('native planning schema requires supplied capabilities');
7
+ const contracts = capabilities.map((capability) => createNativeNodeParameterContract(capability, allowRuntimeParameters));
8
+ const nodes = contracts.flatMap((contract) => contract.schemas);
9
+ const nodeSchema = z.union([nodes[0], ...nodes.slice(1)]);
10
+ const gaps = z
11
+ .array(z.strictObject({
12
+ description: nativeNodePlanningReasonSchema.describe('Describe a requested native behavior that cannot be represented and the missing capability or contract. Never a reminder to generate API requests, bindings or connections later.'),
13
+ }))
14
+ .describe('Blocking unmet native behavior only. Return [] when requested native behavior is representable. Selected OAS API calls are implemented separately; their bindings, request arguments and connections belong to later stages, not these gaps. Never invent missing data or substitute a capability.');
15
+ const schema = includeExplanations
16
+ ? z.strictObject({
17
+ decision: z.union([
18
+ z.strictObject({
19
+ additions: z
20
+ .array(z.strictObject({
21
+ node: nodeSchema,
22
+ reason: nativeNodePlanningReasonSchema,
23
+ }))
24
+ .min(1)
25
+ .describe('Only NEW native instances required by the scenario. Code extracts node data and keeps the reason outside executable parameters.'),
26
+ gaps,
27
+ }),
28
+ z.strictObject({
29
+ noAdditionalNodesReason: nativeNodePlanningReasonSchema.describe('Why no NEW native instance is proposed, including when prepared nodes suffice or only unmet native requirements remain. Do not repeat supplied nodes or generate a fixed empty node array.'),
30
+ gaps,
31
+ }),
32
+ ]),
33
+ })
34
+ : z.strictObject({
35
+ nativeNodes: z
36
+ .array(nodeSchema)
37
+ .describe('Only new instances required by the scenario, with values following the supplied implementation schema. No ports, output schemas, code or n8n JSON.'),
38
+ gaps,
39
+ });
40
+ return {
41
+ schema,
42
+ capabilities: contracts.map((contract) => contract.material),
43
+ };
44
+ }
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const requestMediaSelectionOptionsSchema: z.ZodObject<{
3
+ includeExplanations: z.ZodOptional<z.ZodBoolean>;
4
+ }, z.core.$strict>;
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export const requestMediaSelectionOptionsSchema = z.strictObject({
3
+ includeExplanations: z.boolean().optional(),
4
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import type { WorkflowCapability } from '@openapi-flow/core';
3
+ import type { WorkflowConnectionPlanningOutput } from '../types/workflow-orchestration.js';
4
+ import type { ReviewableWorkflowGraphModelOutput } from '../types/reviewable-workflow-planning.js';
5
+ import type { WorkflowGraphExplanationMode } from '../types/workflow-planning.js';
6
+ export declare function createReviewableWorkflowGraphSchema(capabilities: WorkflowCapability[], readyCallIds: string[], explanationMode?: WorkflowGraphExplanationMode): z.ZodType<WorkflowConnectionPlanningOutput | ReviewableWorkflowGraphModelOutput>;
@@ -0,0 +1,75 @@
1
+ import { z } from 'zod';
2
+ import { workflowConnectionReasonSchema } from './workflow-connection-explanation-schema.js';
3
+ import { workflowGraphReasonSchema } from './workflow-graph-explanation-schema.js';
4
+ export function createReviewableWorkflowGraphSchema(capabilities, readyCallIds, explanationMode = 'none') {
5
+ const includeExplanations = explanationMode !== 'none';
6
+ const reasonSchema = explanationMode === 'graph'
7
+ ? workflowGraphReasonSchema
8
+ : workflowConnectionReasonSchema;
9
+ const natives = capabilities.map((capability) => z.strictObject({
10
+ ...(explanationMode === 'graph'
11
+ ? { reason: workflowGraphReasonSchema }
12
+ : {}),
13
+ id: z
14
+ .string()
15
+ .min(1)
16
+ .describe('Unique native node ID, distinct from API callIds and all gap IDs.'),
17
+ capability: z.literal(capability.name).describe(capability.description),
18
+ parameters: capability.parametersSchema,
19
+ }));
20
+ const additionalNativeNodes = natives.length === 0
21
+ ? undefined
22
+ : z
23
+ .array(z.union([natives[0], ...natives.slice(1)]))
24
+ .describe('NEW native nodes only, with typed parameters. Existing preparedNativeNodes and API materials are already present. Never repeat their IDs or parameters. Return [] when no new native node is needed. Never refer to an unavailable response.');
25
+ const blockedCalls = readyCallIds.length === 0
26
+ ? undefined
27
+ : z.array(z.strictObject({
28
+ ...(includeExplanations ? { reason: reasonSchema } : {}),
29
+ callId: z
30
+ .enum(readyCallIds)
31
+ .describe('A supplied ready call that must instead be a failing placeholder because a scenario dependency remains unresolved. Do not repeat already blocked calls.'),
32
+ gapIds: z
33
+ .array(z.string().min(1))
34
+ .min(1)
35
+ .describe('IDs of supplied or additional gaps that prevent this API call. Never fabricate a response binding.'),
36
+ }));
37
+ const base = z.strictObject({
38
+ ...(includeExplanations ? { reason: reasonSchema } : {}),
39
+ edges: z
40
+ .array(z.strictObject({
41
+ ...(includeExplanations ? { reason: reasonSchema } : {}),
42
+ from: z
43
+ .string()
44
+ .min(1)
45
+ .describe('Exact API callId, native ID, supplied gap ID or additional gap ID.'),
46
+ output: z
47
+ .string()
48
+ .min(1)
49
+ .describe('Declared source port. API and gap placeholders expose main.'),
50
+ to: z.string().min(1).describe('Exact target node ID.'),
51
+ input: z
52
+ .string()
53
+ .min(1)
54
+ .describe('Declared target port. API and gap placeholders accept main.'),
55
+ }))
56
+ .describe('Scenario-grounded internal DAG, including unresolved steps. Array order is never execution order.'),
57
+ additionalGaps: z.array(z.strictObject({
58
+ id: z
59
+ .string()
60
+ .min(1)
61
+ .describe('Unique graph gap node ID, referenced directly by edges. Never duplicate a supplied gap.'),
62
+ description: z
63
+ .string()
64
+ .min(1)
65
+ .describe('Explicit unmet scenario requirement and why supplied materials/capabilities cannot implement it.'),
66
+ })),
67
+ });
68
+ if (additionalNativeNodes && blockedCalls)
69
+ return base.extend({ additionalNativeNodes, blockedCalls });
70
+ if (additionalNativeNodes)
71
+ return base.extend({ additionalNativeNodes });
72
+ if (blockedCalls)
73
+ return base.extend({ blockedCalls });
74
+ return base;
75
+ }
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ import type { JsonObject } from '@openapi-flow/core';
3
+ import type { StructuredOutputSchemaDialect, StructuredOutputSchemaDirection, StructuredOutputSchemaReuse } from '../types/structured-output-schema.js';
4
+ /** Send JSON data, not Zod's non-enumerable Standard Schema re-serialization hook. */
5
+ export declare function serializeStructuredOutputSchema(schema: z.ZodType, target: StructuredOutputSchemaDialect, io?: StructuredOutputSchemaDirection, reused?: StructuredOutputSchemaReuse): JsonObject;
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ /** Send JSON data, not Zod's non-enumerable Standard Schema re-serialization hook. */
3
+ export function serializeStructuredOutputSchema(schema, target, io = 'output', reused = 'inline') {
4
+ return JSON.parse(JSON.stringify(z.toJSONSchema(schema, {
5
+ target,
6
+ io,
7
+ reused,
8
+ cycles: 'ref',
9
+ })));
10
+ }
@@ -0,0 +1,4 @@
1
+ import type { z } from 'zod';
2
+ import type { WorkflowRequirementsModelOutput } from '../types/workflow-clarification.js';
3
+ /** Own wire serialization; retain descriptions and avoid framework ref/title rewrites. */
4
+ export declare function serializeWorkflowRequirementsSchema(schema: z.ZodType<WorkflowRequirementsModelOutput>): import("@openapi-flow/core").JsonObject;
@@ -0,0 +1,5 @@
1
+ import { serializeStructuredOutputSchema } from './serialize-structured-output-schema.js';
2
+ /** Own wire serialization; retain descriptions and avoid framework ref/title rewrites. */
3
+ export function serializeWorkflowRequirementsSchema(schema) {
4
+ return serializeStructuredOutputSchema(schema, 'draft-7', 'input', 'ref');
5
+ }
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export declare function withApiSelectionExplanation<Shape extends z.ZodRawShape>(schema: z.ZodObject<Shape, z.core.$strict>, includeExplanations: boolean): z.ZodObject<Shape, z.core.$strict> | z.ZodObject<(keyof Shape & "explanation" extends never ? Shape & {
3
+ explanation: z.ZodObject<{
4
+ reason: z.ZodString;
5
+ }, z.core.$strict>;
6
+ } : { [K in keyof Shape as K extends "explanation" ? never : K]: Shape[K]; } & {
7
+ explanation: z.ZodObject<{
8
+ reason: z.ZodString;
9
+ }, z.core.$strict>;
10
+ }) extends infer T ? { [k in keyof T]: T[k]; } : never, z.core.$strict>;
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ export function withApiSelectionExplanation(schema, includeExplanations) {
3
+ z.boolean().parse(includeExplanations);
4
+ return includeExplanations
5
+ ? schema.extend({
6
+ explanation: z.strictObject({
7
+ reason: z
8
+ .string()
9
+ .min(1)
10
+ .refine((value) => value.trim().length > 0)
11
+ .describe('Short user-facing reason in the scenario language for this selection, missing capability or consequential API choice. Use only the supplied scenario and discovery metadata; code attaches those unchanged sources. Do not claim request, response or security contract validation, or expose private chain-of-thought.'),
12
+ }),
13
+ })
14
+ : schema;
15
+ }
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ export declare const workflowConnectionExplanationOptionsSchema: z.ZodObject<{
3
+ includeExplanations: z.ZodOptional<z.ZodBoolean>;
4
+ }, z.core.$strict>;
5
+ export declare const workflowConnectionReasonSchema: z.ZodString;
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export const workflowConnectionExplanationOptionsSchema = z.strictObject({
3
+ includeExplanations: z.boolean().optional(),
4
+ });
5
+ export const workflowConnectionReasonSchema = z
6
+ .string()
7
+ .min(1)
8
+ .refine((value) => value.trim().length > 0)
9
+ .describe('Brief user-facing reason in the scenario language for this graph strategy, new edge or newly blocked call. Use only supplied roles, immutable node parameters, actual ports, declared dependencies and gaps. Explain no-new-edge/independent-root decisions in the top-level reason. Code retains original source contracts and derives starts and verification. Never generate evidence, quoted source copies or private chain-of-thought.');
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ import type { ResolvedWorkflowDraftEditOptions, WorkflowDraftEditContextDescription } from '@openapi-flow/core';
3
+ export declare function createWorkflowDraftEditSchema(context: WorkflowDraftEditContextDescription, options: ResolvedWorkflowDraftEditOptions, candidateIds: string[]): z.ZodType<import("@openapi-flow/core").WorkflowDraftEditProposal<string, import("../types/workflow-clarification.js").ProposedWorkflowPlanningEvidence>, unknown, z.core.$ZodTypeInternals<import("@openapi-flow/core").WorkflowDraftEditProposal<string, import("../types/workflow-clarification.js").ProposedWorkflowPlanningEvidence>, unknown>>;
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { createWorkflowDraftEditProposalSchema } from '@openapi-flow/core';
3
+ import { createWorkflowPlanningEvidenceSchemas } from './workflow-planning-evidence-schemas.js';
4
+ export function createWorkflowDraftEditSchema(context, options, candidateIds) {
5
+ const evidence = createWorkflowPlanningEvidenceSchemas(context.planning, candidateIds, context.requestMessageIds);
6
+ return createWorkflowDraftEditProposalSchema(options, {
7
+ ...(candidateIds.length ? { operationSchema: z.enum(candidateIds) } : {}),
8
+ apiNodeIds: context.draft.apiCalls.map((call) => call.id),
9
+ nativeNodeIds: context.draft.nativeNodes.map((node) => node.id),
10
+ gapNodeIds: context.draft.gapNodes?.map((node) => node.id),
11
+ capabilityNames: context.planning.capabilities.map((capability) => capability.name),
12
+ requirementIds: context.draft.requirements.map((requirement) => requirement.id),
13
+ removedRequirementIds: context.removedRequirements.map((requirement) => requirement.id),
14
+ messageSchema: evidence.message,
15
+ evidenceSchema: evidence.evidence,
16
+ });
17
+ }
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ export declare const workflowGraphExplanationOptionsSchema: z.ZodObject<{
3
+ includeExplanations: z.ZodOptional<z.ZodBoolean>;
4
+ }, z.core.$strict>;
5
+ export declare const workflowGraphReasonSchema: z.ZodString;
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export const workflowGraphExplanationOptionsSchema = z.strictObject({
3
+ includeExplanations: z.boolean().optional(),
4
+ });
5
+ export const workflowGraphReasonSchema = z
6
+ .string()
7
+ .min(1)
8
+ .refine((value) => value.trim().length > 0)
9
+ .describe('Brief user-facing reason in the scenario language for this graph strategy, NEW native instance, edge or newly blocked call. Use only the scenario, supplied API roles/contracts, prepared instances and offered native schemas. Explain no new native nodes or independent roots in the overall reason. Code preserves source evidence and derives ports, starts and validation. Do not generate source copies, evidence, quotes or private chain-of-thought.');
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import type { WorkflowCapability } from '@openapi-flow/core';
3
+ import type { WorkflowGraphModelOutput } from '../types/workflow-planning.js';
4
+ export declare function createWorkflowGraphProposalSchema(capabilities: WorkflowCapability[], includeExplanations?: boolean): z.ZodType<WorkflowGraphModelOutput>;
@@ -0,0 +1,45 @@
1
+ import { z } from 'zod';
2
+ import { workflowGraphReasonSchema } from './workflow-graph-explanation-schema.js';
3
+ export function createWorkflowGraphProposalSchema(capabilities, includeExplanations = false) {
4
+ const nativeSchemas = capabilities.map((capability) => z.strictObject({
5
+ ...(includeExplanations ? { reason: workflowGraphReasonSchema } : {}),
6
+ id: z
7
+ .string()
8
+ .min(1)
9
+ .describe('Unique native node ID. Must not collide with API callIds.'),
10
+ capability: z.literal(capability.name).describe(capability.description),
11
+ parameters: capability.parametersSchema,
12
+ }));
13
+ const base = z.strictObject({
14
+ ...(includeExplanations ? { reason: workflowGraphReasonSchema } : {}),
15
+ edges: z
16
+ .array(z.strictObject({
17
+ ...(includeExplanations ? { reason: workflowGraphReasonSchema } : {}),
18
+ from: z
19
+ .string()
20
+ .min(1)
21
+ .describe('Exact API callId or native node ID.'),
22
+ output: z
23
+ .string()
24
+ .min(1)
25
+ .describe('Declared source output port, e.g. main, true or false.'),
26
+ to: z.string().min(1).describe('Exact API callId or native node ID.'),
27
+ input: z
28
+ .string()
29
+ .min(1)
30
+ .describe('Declared target input port, e.g. main or input1.'),
31
+ }))
32
+ .describe('Explicit DAG connections; array order never defines execution order.'),
33
+ gaps: z
34
+ .array(z.strictObject({ description: z.string().min(1) }))
35
+ .describe('Only explicitly requested requirements that cannot be met. Do not invent a success/end/display requirement; a terminal node completes normally. Never invent a capability, API, or executable code.'),
36
+ });
37
+ if (!nativeSchemas.length)
38
+ return base;
39
+ return z.strictObject({
40
+ additionalNativeNodes: z
41
+ .array(z.union([nativeSchemas[0], ...nativeSchemas.slice(1)]))
42
+ .describe('NEW native nodes only. Existing preparedNativeNodes and API materials are already present. Never repeat their IDs or parameters. Return [] when no new native node is needed.'),
43
+ ...base.shape,
44
+ });
45
+ }
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ import type { WorkflowPlanningContextDescription } from '@openapi-flow/core';
3
+ import type { ProposedWorkflowPlanningEvidence } from '../types/workflow-clarification.js';
4
+ /** Model candidates are code-owned references, not model-built OAS keys or pointers. */
5
+ export declare function createWorkflowPlanningEvidenceSchemas(context: WorkflowPlanningContextDescription, candidateIds: string[], sourceMessageIds: string[]): {
6
+ message: z.ZodPipe<z.ZodObject<{
7
+ kind: z.ZodLiteral<"message">;
8
+ messageId: z.ZodEnum<{
9
+ [x: string]: string;
10
+ }>;
11
+ }, z.core.$strict>, z.ZodTransform<{
12
+ quote: string;
13
+ kind: "message";
14
+ messageId: string;
15
+ }, {
16
+ kind: "message";
17
+ messageId: string;
18
+ }>>;
19
+ evidence: z.ZodType<ProposedWorkflowPlanningEvidence, unknown, z.core.$ZodTypeInternals<ProposedWorkflowPlanningEvidence, unknown>>;
20
+ };
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import { createWorkflowMessageEvidenceSelectionSchema } from './create-workflow-message-evidence-selection-schema.js';
3
+ /** Model candidates are code-owned references, not model-built OAS keys or pointers. */
4
+ export function createWorkflowPlanningEvidenceSchemas(context, candidateIds, sourceMessageIds) {
5
+ const message = (ids) => {
6
+ const selected = ids.map((id) => {
7
+ const source = context.messages.find((item) => item.id === id);
8
+ if (!source)
9
+ throw new Error(`Planning evidence references unavailable message ${id}`);
10
+ return source;
11
+ });
12
+ return createWorkflowMessageEvidenceSelectionSchema(selected);
13
+ };
14
+ const evidence = z.union([
15
+ message(context.messages.map((item) => item.id)),
16
+ ...(context.entrypoint === undefined
17
+ ? []
18
+ : [
19
+ z.strictObject({
20
+ kind: z.literal('entrypoint'),
21
+ entrypoint: z.literal(context.entrypoint.kind),
22
+ }),
23
+ ]),
24
+ ...(candidateIds.length
25
+ ? [
26
+ z.strictObject({
27
+ kind: z.literal('oas'),
28
+ candidateId: z
29
+ .enum(candidateIds)
30
+ .describe('Select a supplied operation; code attaches its original identity and root location.'),
31
+ }),
32
+ ]
33
+ : []),
34
+ ...(context.capabilities.length
35
+ ? [
36
+ z.strictObject({
37
+ kind: z.literal('native'),
38
+ capability: z.enum(context.capabilities.map((item) => item.name)),
39
+ }),
40
+ ]
41
+ : []),
42
+ ]);
43
+ return { message: message(sourceMessageIds), evidence };
44
+ }
@@ -0,0 +1,3 @@
1
+ import type { ClarificationQuestionLimits, ResolvedWorkflowClarificationOptions, WorkflowPlanningContextDescription } from '@openapi-flow/core';
2
+ import type { WorkflowClarificationOasCandidate } from '../types/workflow-clarification.js';
3
+ export declare function createWorkflowRequirementsSchema(limits: ClarificationQuestionLimits, options: ResolvedWorkflowClarificationOptions, context: WorkflowPlanningContextDescription, candidates: WorkflowClarificationOasCandidate[]): import("zod").ZodType<import("@openapi-flow/core").WorkflowRequirementsProposal<import("../types/workflow-clarification.js").ProposedWorkflowPlanningEvidence>, unknown, import("zod/v4/core").$ZodTypeInternals<import("@openapi-flow/core").WorkflowRequirementsProposal<import("../types/workflow-clarification.js").ProposedWorkflowPlanningEvidence>, unknown>>;
@@ -0,0 +1,6 @@
1
+ import { createWorkflowRequirementsProposalSchema } from '@openapi-flow/core';
2
+ import { createWorkflowPlanningEvidenceSchemas } from './workflow-planning-evidence-schemas.js';
3
+ export function createWorkflowRequirementsSchema(limits, options, context, candidates) {
4
+ const { message, evidence } = createWorkflowPlanningEvidenceSchemas(context, candidates.map((candidate) => candidate.candidateId), context.messages.map((item) => item.id));
5
+ return createWorkflowRequirementsProposalSchema(limits, options, evidence, message);
6
+ }
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import type { WorkflowReviewSuggestionsDescription } from '@openapi-flow/core';
3
+ import type { ProposedWorkflowReviewSuggestionEvidence } from '../types/workflow-review-suggestions.js';
4
+ export declare function createWorkflowReviewSuggestionsSchema(description: WorkflowReviewSuggestionsDescription, candidateIds: string[]): z.ZodType<import("@openapi-flow/core").WorkflowReviewSuggestionsProposal<ProposedWorkflowReviewSuggestionEvidence>, unknown, z.core.$ZodTypeInternals<import("@openapi-flow/core").WorkflowReviewSuggestionsProposal<ProposedWorkflowReviewSuggestionEvidence>, unknown>>;
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { createWorkflowReviewSuggestionsProposalSchema } from '@openapi-flow/core';
3
+ import { createWorkflowPlanningEvidenceSchemas } from './workflow-planning-evidence-schemas.js';
4
+ export function createWorkflowReviewSuggestionsSchema(description, candidateIds) {
5
+ const original = createWorkflowPlanningEvidenceSchemas(description.context, candidateIds, description.context.messages.map((message) => message.id));
6
+ const evidence = z.union([
7
+ original.evidence,
8
+ ...(description.boundary.questions.length
9
+ ? [
10
+ z.strictObject({
11
+ kind: z.literal('review-question'),
12
+ questionId: z.enum(description.boundary.questions.map((question) => question.id)),
13
+ }),
14
+ ]
15
+ : []),
16
+ ]);
17
+ return createWorkflowReviewSuggestionsProposalSchema(description, evidence);
18
+ }
@@ -0,0 +1,4 @@
1
+ import type { ApiSelectionAnalysis } from '@openapi-flow/core';
2
+ import type { SelectApiOperationsInput } from '../types/operation-selection.js';
3
+ /** Additive clarification boundary; the existing selector keeps its output contract. */
4
+ export declare function analyzeApiSelection(input: SelectApiOperationsInput): Promise<ApiSelectionAnalysis>;