jev-recipes 0.0.1 → 0.1.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 (561) hide show
  1. package/CHANGELOG.md +14 -2
  2. package/README.md +105 -106
  3. package/dist/catalog/groups/answers.d.ts +565 -0
  4. package/dist/catalog/groups/answers.js +82 -0
  5. package/dist/catalog/groups/conversation.d.ts +608 -0
  6. package/dist/catalog/groups/conversation.js +90 -0
  7. package/dist/catalog/groups/knowledge.d.ts +522 -0
  8. package/dist/catalog/groups/knowledge.js +82 -0
  9. package/dist/catalog/groups/retrieval.d.ts +664 -0
  10. package/dist/catalog/groups/retrieval.js +106 -0
  11. package/dist/catalog/groups/support.d.ts +522 -0
  12. package/dist/catalog/groups/support.js +82 -0
  13. package/dist/catalog/groups/workflow.d.ts +623 -0
  14. package/dist/catalog/groups/workflow.js +98 -0
  15. package/dist/catalog/index.d.ts +1770 -0
  16. package/dist/catalog/index.js +31 -0
  17. package/dist/catalog/recipes.d.ts +3488 -0
  18. package/dist/catalog/recipes.js +14 -0
  19. package/dist/catalog/schema.d.ts +83 -0
  20. package/dist/catalog/schema.js +9 -0
  21. package/dist/cli/index.js +32 -16
  22. package/dist/cli/schema.d.ts +213 -10
  23. package/dist/cli/schema.js +10 -10
  24. package/dist/examples/support/index.d.ts +1 -0
  25. package/dist/examples/support/index.js +37 -0
  26. package/dist/examples/support/schema.d.ts +566 -0
  27. package/dist/examples/support/schema.js +76 -0
  28. package/dist/examples/support/workflow.d.ts +3 -0
  29. package/dist/examples/support/workflow.js +85 -0
  30. package/dist/recipes/action-scope/index.d.ts +5 -0
  31. package/dist/recipes/action-scope/index.js +15 -0
  32. package/dist/recipes/action-scope/metadata.d.ts +8 -0
  33. package/dist/recipes/action-scope/metadata.js +10 -0
  34. package/dist/recipes/action-scope/schema.d.ts +37 -0
  35. package/dist/recipes/action-scope/schema.js +15 -0
  36. package/dist/recipes/answer-consistency/index.d.ts +5 -0
  37. package/dist/recipes/answer-consistency/index.js +16 -0
  38. package/dist/recipes/answer-consistency/metadata.d.ts +8 -0
  39. package/dist/recipes/answer-consistency/metadata.js +10 -0
  40. package/dist/recipes/answer-consistency/schema.d.ts +40 -0
  41. package/dist/recipes/answer-consistency/schema.js +20 -0
  42. package/dist/recipes/answer-coverage/index.d.ts +5 -0
  43. package/dist/recipes/answer-coverage/index.js +22 -0
  44. package/dist/recipes/answer-coverage/metadata.d.ts +8 -0
  45. package/dist/recipes/answer-coverage/metadata.js +11 -0
  46. package/dist/recipes/answer-coverage/schema.d.ts +50 -0
  47. package/dist/recipes/answer-coverage/schema.js +22 -0
  48. package/dist/recipes/answer-invalidation/index.d.ts +5 -0
  49. package/dist/recipes/answer-invalidation/index.js +15 -0
  50. package/dist/recipes/answer-invalidation/metadata.d.ts +8 -0
  51. package/dist/recipes/answer-invalidation/metadata.js +10 -0
  52. package/dist/recipes/answer-invalidation/schema.d.ts +37 -0
  53. package/dist/recipes/answer-invalidation/schema.js +19 -0
  54. package/dist/recipes/answer-relevance/index.d.ts +5 -0
  55. package/dist/recipes/answer-relevance/index.js +16 -0
  56. package/dist/recipes/answer-relevance/metadata.d.ts +8 -0
  57. package/dist/recipes/answer-relevance/metadata.js +10 -0
  58. package/dist/recipes/answer-relevance/schema.d.ts +39 -0
  59. package/dist/recipes/answer-relevance/schema.js +19 -0
  60. package/dist/recipes/answerability/index.d.ts +5 -0
  61. package/dist/recipes/answerability/index.js +20 -0
  62. package/dist/recipes/answerability/metadata.d.ts +8 -0
  63. package/dist/recipes/answerability/metadata.js +11 -0
  64. package/dist/recipes/answerability/schema.d.ts +47 -0
  65. package/dist/recipes/answerability/schema.js +25 -0
  66. package/dist/recipes/argument-fit/index.d.ts +5 -0
  67. package/dist/recipes/argument-fit/index.js +15 -0
  68. package/dist/recipes/argument-fit/metadata.d.ts +8 -0
  69. package/dist/recipes/argument-fit/metadata.js +10 -0
  70. package/dist/recipes/argument-fit/schema.d.ts +38 -0
  71. package/dist/recipes/argument-fit/schema.js +16 -0
  72. package/dist/recipes/attempted-step/index.d.ts +5 -0
  73. package/dist/recipes/attempted-step/index.js +15 -0
  74. package/dist/recipes/attempted-step/metadata.d.ts +8 -0
  75. package/dist/recipes/attempted-step/metadata.js +10 -0
  76. package/dist/recipes/attempted-step/schema.d.ts +36 -0
  77. package/dist/recipes/attempted-step/schema.js +14 -0
  78. package/dist/recipes/audience-fit/index.d.ts +5 -0
  79. package/dist/recipes/audience-fit/index.js +16 -0
  80. package/dist/recipes/audience-fit/metadata.d.ts +8 -0
  81. package/dist/recipes/audience-fit/metadata.js +10 -0
  82. package/dist/recipes/audience-fit/schema.d.ts +39 -0
  83. package/dist/recipes/audience-fit/schema.js +19 -0
  84. package/dist/recipes/cache-match/index.d.ts +5 -0
  85. package/dist/recipes/cache-match/index.js +15 -0
  86. package/dist/recipes/cache-match/metadata.d.ts +8 -0
  87. package/dist/recipes/cache-match/metadata.js +10 -0
  88. package/dist/recipes/cache-match/schema.d.ts +38 -0
  89. package/dist/recipes/cache-match/schema.js +16 -0
  90. package/dist/recipes/cancellation-check/index.d.ts +5 -0
  91. package/dist/recipes/cancellation-check/index.js +16 -0
  92. package/dist/recipes/cancellation-check/metadata.d.ts +8 -0
  93. package/dist/recipes/cancellation-check/metadata.js +10 -0
  94. package/dist/recipes/cancellation-check/schema.d.ts +40 -0
  95. package/dist/recipes/cancellation-check/schema.js +15 -0
  96. package/dist/recipes/certainty-match/index.d.ts +5 -0
  97. package/dist/recipes/certainty-match/index.js +16 -0
  98. package/dist/recipes/certainty-match/metadata.d.ts +8 -0
  99. package/dist/recipes/certainty-match/metadata.js +10 -0
  100. package/dist/recipes/certainty-match/schema.d.ts +39 -0
  101. package/dist/recipes/certainty-match/schema.js +19 -0
  102. package/dist/recipes/change-meaning/index.d.ts +5 -0
  103. package/dist/recipes/change-meaning/index.js +15 -0
  104. package/dist/recipes/change-meaning/metadata.d.ts +8 -0
  105. package/dist/recipes/change-meaning/metadata.js +10 -0
  106. package/dist/recipes/change-meaning/schema.d.ts +37 -0
  107. package/dist/recipes/change-meaning/schema.js +15 -0
  108. package/dist/recipes/citation-match/index.d.ts +5 -0
  109. package/dist/recipes/citation-match/index.js +21 -0
  110. package/dist/recipes/citation-match/metadata.d.ts +9 -0
  111. package/dist/recipes/citation-match/metadata.js +12 -0
  112. package/dist/recipes/citation-match/schema.d.ts +41 -0
  113. package/dist/recipes/citation-match/schema.js +13 -0
  114. package/dist/recipes/citation-needed/index.d.ts +5 -0
  115. package/dist/recipes/citation-needed/index.js +15 -0
  116. package/dist/recipes/citation-needed/metadata.d.ts +8 -0
  117. package/dist/recipes/citation-needed/metadata.js +10 -0
  118. package/dist/recipes/citation-needed/schema.d.ts +36 -0
  119. package/dist/recipes/citation-needed/schema.js +14 -0
  120. package/dist/recipes/clarify/index.d.ts +5 -0
  121. package/dist/recipes/clarify/index.js +27 -0
  122. package/dist/recipes/clarify/metadata.d.ts +8 -0
  123. package/dist/recipes/clarify/metadata.js +11 -0
  124. package/dist/recipes/clarify/schema.d.ts +55 -0
  125. package/dist/recipes/clarify/schema.js +27 -0
  126. package/dist/recipes/confirmation-match/index.d.ts +5 -0
  127. package/dist/recipes/confirmation-match/index.js +15 -0
  128. package/dist/recipes/confirmation-match/metadata.d.ts +8 -0
  129. package/dist/recipes/confirmation-match/metadata.js +10 -0
  130. package/dist/recipes/confirmation-match/schema.d.ts +37 -0
  131. package/dist/recipes/confirmation-match/schema.js +15 -0
  132. package/dist/recipes/context-role/index.d.ts +5 -0
  133. package/dist/recipes/context-role/index.js +16 -0
  134. package/dist/recipes/context-role/metadata.d.ts +8 -0
  135. package/dist/recipes/context-role/metadata.js +10 -0
  136. package/dist/recipes/context-role/schema.d.ts +39 -0
  137. package/dist/recipes/context-role/schema.js +19 -0
  138. package/dist/recipes/correction-target/index.d.ts +5 -0
  139. package/dist/recipes/correction-target/index.js +7 -0
  140. package/dist/recipes/correction-target/metadata.d.ts +8 -0
  141. package/dist/recipes/correction-target/metadata.js +11 -0
  142. package/dist/recipes/correction-target/schema.d.ts +36 -0
  143. package/dist/recipes/correction-target/schema.js +9 -0
  144. package/dist/recipes/document-role/index.d.ts +5 -0
  145. package/dist/recipes/document-role/index.js +19 -0
  146. package/dist/recipes/document-role/metadata.d.ts +8 -0
  147. package/dist/recipes/document-role/metadata.js +10 -0
  148. package/dist/recipes/document-role/schema.d.ts +47 -0
  149. package/dist/recipes/document-role/schema.js +21 -0
  150. package/dist/recipes/draft-compare/index.d.ts +5 -0
  151. package/dist/recipes/draft-compare/index.js +17 -0
  152. package/dist/recipes/draft-compare/metadata.d.ts +8 -0
  153. package/dist/recipes/draft-compare/metadata.js +10 -0
  154. package/dist/recipes/draft-compare/schema.d.ts +44 -0
  155. package/dist/recipes/draft-compare/schema.js +16 -0
  156. package/dist/recipes/evidence-conflict/index.d.ts +5 -0
  157. package/dist/recipes/evidence-conflict/index.js +16 -0
  158. package/dist/recipes/evidence-conflict/metadata.d.ts +8 -0
  159. package/dist/recipes/evidence-conflict/metadata.js +10 -0
  160. package/dist/recipes/evidence-conflict/schema.d.ts +40 -0
  161. package/dist/recipes/evidence-conflict/schema.js +20 -0
  162. package/dist/recipes/evidence-novelty/index.d.ts +5 -0
  163. package/dist/recipes/evidence-novelty/index.js +16 -0
  164. package/dist/recipes/evidence-novelty/metadata.d.ts +8 -0
  165. package/dist/recipes/evidence-novelty/metadata.js +11 -0
  166. package/dist/recipes/evidence-novelty/schema.d.ts +43 -0
  167. package/dist/recipes/evidence-novelty/schema.js +20 -0
  168. package/dist/recipes/fact-stability/index.d.ts +5 -0
  169. package/dist/recipes/fact-stability/index.js +15 -0
  170. package/dist/recipes/fact-stability/metadata.d.ts +8 -0
  171. package/dist/recipes/fact-stability/metadata.js +10 -0
  172. package/dist/recipes/fact-stability/schema.d.ts +36 -0
  173. package/dist/recipes/fact-stability/schema.js +14 -0
  174. package/dist/recipes/failure-kind/index.d.ts +5 -0
  175. package/dist/recipes/failure-kind/index.js +7 -0
  176. package/dist/recipes/failure-kind/metadata.d.ts +8 -0
  177. package/dist/recipes/failure-kind/metadata.js +11 -0
  178. package/dist/recipes/failure-kind/schema.d.ts +36 -0
  179. package/dist/recipes/failure-kind/schema.js +9 -0
  180. package/dist/recipes/feedback-kind/index.d.ts +5 -0
  181. package/dist/recipes/feedback-kind/index.js +19 -0
  182. package/dist/recipes/feedback-kind/metadata.d.ts +8 -0
  183. package/dist/recipes/feedback-kind/metadata.js +10 -0
  184. package/dist/recipes/feedback-kind/schema.d.ts +48 -0
  185. package/dist/recipes/feedback-kind/schema.js +22 -0
  186. package/dist/recipes/field-select/index.d.ts +5 -0
  187. package/dist/recipes/field-select/index.js +7 -0
  188. package/dist/recipes/field-select/metadata.d.ts +8 -0
  189. package/dist/recipes/field-select/metadata.js +11 -0
  190. package/dist/recipes/field-select/schema.d.ts +36 -0
  191. package/dist/recipes/field-select/schema.js +9 -0
  192. package/dist/recipes/followup-link/index.d.ts +5 -0
  193. package/dist/recipes/followup-link/index.js +7 -0
  194. package/dist/recipes/followup-link/metadata.d.ts +8 -0
  195. package/dist/recipes/followup-link/metadata.js +11 -0
  196. package/dist/recipes/followup-link/schema.d.ts +36 -0
  197. package/dist/recipes/followup-link/schema.js +9 -0
  198. package/dist/recipes/freshness-needed/index.d.ts +5 -0
  199. package/dist/recipes/freshness-needed/index.js +15 -0
  200. package/dist/recipes/freshness-needed/metadata.d.ts +8 -0
  201. package/dist/recipes/freshness-needed/metadata.js +10 -0
  202. package/dist/recipes/freshness-needed/schema.d.ts +35 -0
  203. package/dist/recipes/freshness-needed/schema.js +13 -0
  204. package/dist/recipes/frustration-signal/index.d.ts +5 -0
  205. package/dist/recipes/frustration-signal/index.js +15 -0
  206. package/dist/recipes/frustration-signal/metadata.d.ts +8 -0
  207. package/dist/recipes/frustration-signal/metadata.js +10 -0
  208. package/dist/recipes/frustration-signal/schema.d.ts +36 -0
  209. package/dist/recipes/frustration-signal/schema.js +14 -0
  210. package/dist/recipes/handoff/index.d.ts +5 -0
  211. package/dist/recipes/handoff/index.js +31 -0
  212. package/dist/recipes/handoff/metadata.d.ts +8 -0
  213. package/dist/recipes/handoff/metadata.js +11 -0
  214. package/dist/recipes/handoff/schema.d.ts +59 -0
  215. package/dist/recipes/handoff/schema.js +27 -0
  216. package/dist/recipes/incident-match/index.d.ts +5 -0
  217. package/dist/recipes/incident-match/index.js +7 -0
  218. package/dist/recipes/incident-match/metadata.d.ts +8 -0
  219. package/dist/recipes/incident-match/metadata.js +11 -0
  220. package/dist/recipes/incident-match/schema.d.ts +36 -0
  221. package/dist/recipes/incident-match/schema.js +9 -0
  222. package/dist/recipes/instruction-fit/index.d.ts +5 -0
  223. package/dist/recipes/instruction-fit/index.js +15 -0
  224. package/dist/recipes/instruction-fit/metadata.d.ts +8 -0
  225. package/dist/recipes/instruction-fit/metadata.js +10 -0
  226. package/dist/recipes/instruction-fit/schema.d.ts +37 -0
  227. package/dist/recipes/instruction-fit/schema.js +15 -0
  228. package/dist/recipes/intent-change/index.d.ts +5 -0
  229. package/dist/recipes/intent-change/index.js +16 -0
  230. package/dist/recipes/intent-change/metadata.d.ts +8 -0
  231. package/dist/recipes/intent-change/metadata.js +10 -0
  232. package/dist/recipes/intent-change/schema.d.ts +40 -0
  233. package/dist/recipes/intent-change/schema.js +15 -0
  234. package/dist/recipes/issue-impact/index.d.ts +5 -0
  235. package/dist/recipes/issue-impact/index.js +16 -0
  236. package/dist/recipes/issue-impact/metadata.d.ts +8 -0
  237. package/dist/recipes/issue-impact/metadata.js +10 -0
  238. package/dist/recipes/issue-impact/schema.d.ts +39 -0
  239. package/dist/recipes/issue-impact/schema.js +14 -0
  240. package/dist/recipes/memory-relation/index.d.ts +5 -0
  241. package/dist/recipes/memory-relation/index.js +18 -0
  242. package/dist/recipes/memory-relation/metadata.d.ts +8 -0
  243. package/dist/recipes/memory-relation/metadata.js +10 -0
  244. package/dist/recipes/memory-relation/schema.d.ts +46 -0
  245. package/dist/recipes/memory-relation/schema.js +22 -0
  246. package/dist/recipes/memory-scope/index.d.ts +5 -0
  247. package/dist/recipes/memory-scope/index.js +17 -0
  248. package/dist/recipes/memory-scope/metadata.d.ts +8 -0
  249. package/dist/recipes/memory-scope/metadata.js +10 -0
  250. package/dist/recipes/memory-scope/schema.d.ts +42 -0
  251. package/dist/recipes/memory-scope/schema.js +14 -0
  252. package/dist/recipes/memory-value/index.d.ts +5 -0
  253. package/dist/recipes/memory-value/index.js +16 -0
  254. package/dist/recipes/memory-value/metadata.d.ts +8 -0
  255. package/dist/recipes/memory-value/metadata.js +10 -0
  256. package/dist/recipes/memory-value/schema.d.ts +40 -0
  257. package/dist/recipes/memory-value/schema.js +20 -0
  258. package/dist/recipes/passage-duplicate/index.d.ts +5 -0
  259. package/dist/recipes/passage-duplicate/index.js +16 -0
  260. package/dist/recipes/passage-duplicate/metadata.d.ts +8 -0
  261. package/dist/recipes/passage-duplicate/metadata.js +10 -0
  262. package/dist/recipes/passage-duplicate/schema.d.ts +39 -0
  263. package/dist/recipes/passage-duplicate/schema.js +19 -0
  264. package/dist/recipes/preference-kind/index.d.ts +5 -0
  265. package/dist/recipes/preference-kind/index.js +16 -0
  266. package/dist/recipes/preference-kind/metadata.d.ts +8 -0
  267. package/dist/recipes/preference-kind/metadata.js +10 -0
  268. package/dist/recipes/preference-kind/schema.d.ts +39 -0
  269. package/dist/recipes/preference-kind/schema.js +19 -0
  270. package/dist/recipes/promise-check/index.d.ts +5 -0
  271. package/dist/recipes/promise-check/index.js +15 -0
  272. package/dist/recipes/promise-check/metadata.d.ts +8 -0
  273. package/dist/recipes/promise-check/metadata.js +10 -0
  274. package/dist/recipes/promise-check/schema.d.ts +36 -0
  275. package/dist/recipes/promise-check/schema.js +14 -0
  276. package/dist/recipes/query-equivalence/index.d.ts +5 -0
  277. package/dist/recipes/query-equivalence/index.js +16 -0
  278. package/dist/recipes/query-equivalence/metadata.d.ts +8 -0
  279. package/dist/recipes/query-equivalence/metadata.js +10 -0
  280. package/dist/recipes/query-equivalence/schema.d.ts +40 -0
  281. package/dist/recipes/query-equivalence/schema.js +20 -0
  282. package/dist/recipes/query-specificity/index.d.ts +5 -0
  283. package/dist/recipes/query-specificity/index.js +15 -0
  284. package/dist/recipes/query-specificity/metadata.d.ts +8 -0
  285. package/dist/recipes/query-specificity/metadata.js +10 -0
  286. package/dist/recipes/query-specificity/schema.d.ts +36 -0
  287. package/dist/recipes/query-specificity/schema.js +14 -0
  288. package/dist/recipes/reference-resolve/index.d.ts +5 -0
  289. package/dist/recipes/reference-resolve/index.js +7 -0
  290. package/dist/recipes/reference-resolve/metadata.d.ts +8 -0
  291. package/dist/recipes/reference-resolve/metadata.js +11 -0
  292. package/dist/recipes/reference-resolve/schema.d.ts +37 -0
  293. package/dist/recipes/reference-resolve/schema.js +10 -0
  294. package/dist/recipes/repeated-attempt/index.d.ts +5 -0
  295. package/dist/recipes/repeated-attempt/index.js +15 -0
  296. package/dist/recipes/repeated-attempt/metadata.d.ts +8 -0
  297. package/dist/recipes/repeated-attempt/metadata.js +10 -0
  298. package/dist/recipes/repeated-attempt/schema.d.ts +37 -0
  299. package/dist/recipes/repeated-attempt/schema.js +19 -0
  300. package/dist/recipes/reply-template-match/index.d.ts +5 -0
  301. package/dist/recipes/reply-template-match/index.js +7 -0
  302. package/dist/recipes/reply-template-match/metadata.d.ts +8 -0
  303. package/dist/recipes/reply-template-match/metadata.js +11 -0
  304. package/dist/recipes/reply-template-match/schema.d.ts +36 -0
  305. package/dist/recipes/reply-template-match/schema.js +9 -0
  306. package/dist/recipes/rerank/index.js +7 -7
  307. package/dist/recipes/rerank/metadata.d.ts +8 -0
  308. package/dist/recipes/rerank/metadata.js +11 -0
  309. package/dist/recipes/resolution-check/index.d.ts +5 -0
  310. package/dist/recipes/resolution-check/index.js +15 -0
  311. package/dist/recipes/resolution-check/metadata.d.ts +8 -0
  312. package/dist/recipes/resolution-check/metadata.js +10 -0
  313. package/dist/recipes/resolution-check/schema.d.ts +37 -0
  314. package/dist/recipes/resolution-check/schema.js +15 -0
  315. package/dist/recipes/response-needed/index.d.ts +5 -0
  316. package/dist/recipes/response-needed/index.js +15 -0
  317. package/dist/recipes/response-needed/metadata.d.ts +8 -0
  318. package/dist/recipes/response-needed/metadata.js +10 -0
  319. package/dist/recipes/response-needed/schema.d.ts +36 -0
  320. package/dist/recipes/response-needed/schema.js +14 -0
  321. package/dist/recipes/result-outcome/index.d.ts +5 -0
  322. package/dist/recipes/result-outcome/index.js +16 -0
  323. package/dist/recipes/result-outcome/metadata.d.ts +8 -0
  324. package/dist/recipes/result-outcome/metadata.js +10 -0
  325. package/dist/recipes/result-outcome/schema.d.ts +39 -0
  326. package/dist/recipes/result-outcome/schema.js +19 -0
  327. package/dist/recipes/result-usefulness/index.d.ts +5 -0
  328. package/dist/recipes/result-usefulness/index.js +16 -0
  329. package/dist/recipes/result-usefulness/metadata.d.ts +8 -0
  330. package/dist/recipes/result-usefulness/metadata.js +10 -0
  331. package/dist/recipes/result-usefulness/schema.d.ts +39 -0
  332. package/dist/recipes/result-usefulness/schema.js +19 -0
  333. package/dist/recipes/retrieval-needed/index.d.ts +5 -0
  334. package/dist/recipes/retrieval-needed/index.js +15 -0
  335. package/dist/recipes/retrieval-needed/metadata.d.ts +8 -0
  336. package/dist/recipes/retrieval-needed/metadata.js +10 -0
  337. package/dist/recipes/retrieval-needed/schema.d.ts +36 -0
  338. package/dist/recipes/retrieval-needed/schema.js +14 -0
  339. package/dist/recipes/route/index.js +12 -21
  340. package/dist/recipes/route/metadata.d.ts +8 -0
  341. package/dist/recipes/route/metadata.js +11 -0
  342. package/dist/recipes/source-applicability/index.d.ts +5 -0
  343. package/dist/recipes/source-applicability/index.js +15 -0
  344. package/dist/recipes/source-applicability/metadata.d.ts +8 -0
  345. package/dist/recipes/source-applicability/metadata.js +10 -0
  346. package/dist/recipes/source-applicability/schema.d.ts +36 -0
  347. package/dist/recipes/source-applicability/schema.js +14 -0
  348. package/dist/recipes/step-complete/index.d.ts +5 -0
  349. package/dist/recipes/step-complete/index.js +15 -0
  350. package/dist/recipes/step-complete/metadata.d.ts +8 -0
  351. package/dist/recipes/step-complete/metadata.js +10 -0
  352. package/dist/recipes/step-complete/schema.d.ts +36 -0
  353. package/dist/recipes/step-complete/schema.js +14 -0
  354. package/dist/recipes/step-progress/index.d.ts +5 -0
  355. package/dist/recipes/step-progress/index.js +16 -0
  356. package/dist/recipes/step-progress/metadata.d.ts +8 -0
  357. package/dist/recipes/step-progress/metadata.js +10 -0
  358. package/dist/recipes/step-progress/schema.d.ts +40 -0
  359. package/dist/recipes/step-progress/schema.js +15 -0
  360. package/dist/recipes/summary-coverage/index.d.ts +5 -0
  361. package/dist/recipes/summary-coverage/index.js +22 -0
  362. package/dist/recipes/summary-coverage/metadata.d.ts +8 -0
  363. package/dist/recipes/summary-coverage/metadata.js +11 -0
  364. package/dist/recipes/summary-coverage/schema.d.ts +50 -0
  365. package/dist/recipes/summary-coverage/schema.js +22 -0
  366. package/dist/recipes/ticket-match/index.d.ts +5 -0
  367. package/dist/recipes/ticket-match/index.js +16 -0
  368. package/dist/recipes/ticket-match/metadata.d.ts +8 -0
  369. package/dist/recipes/ticket-match/metadata.js +10 -0
  370. package/dist/recipes/ticket-match/schema.d.ts +40 -0
  371. package/dist/recipes/ticket-match/schema.js +15 -0
  372. package/dist/recipes/tone-check/index.d.ts +5 -0
  373. package/dist/recipes/tone-check/index.js +21 -0
  374. package/dist/recipes/tone-check/metadata.d.ts +8 -0
  375. package/dist/recipes/tone-check/metadata.js +11 -0
  376. package/dist/recipes/tone-check/schema.d.ts +47 -0
  377. package/dist/recipes/tone-check/schema.js +22 -0
  378. package/dist/recipes/tool-fit/index.d.ts +5 -0
  379. package/dist/recipes/tool-fit/index.js +15 -0
  380. package/dist/recipes/tool-fit/metadata.d.ts +8 -0
  381. package/dist/recipes/tool-fit/metadata.js +10 -0
  382. package/dist/recipes/tool-fit/schema.d.ts +37 -0
  383. package/dist/recipes/tool-fit/schema.js +15 -0
  384. package/dist/recipes/topic-shift/index.d.ts +5 -0
  385. package/dist/recipes/topic-shift/index.js +16 -0
  386. package/dist/recipes/topic-shift/metadata.d.ts +8 -0
  387. package/dist/recipes/topic-shift/metadata.js +10 -0
  388. package/dist/recipes/topic-shift/schema.d.ts +40 -0
  389. package/dist/recipes/topic-shift/schema.js +15 -0
  390. package/dist/recipes/troubleshooting-fit/index.d.ts +5 -0
  391. package/dist/recipes/troubleshooting-fit/index.js +15 -0
  392. package/dist/recipes/troubleshooting-fit/metadata.d.ts +8 -0
  393. package/dist/recipes/troubleshooting-fit/metadata.js +10 -0
  394. package/dist/recipes/troubleshooting-fit/schema.d.ts +37 -0
  395. package/dist/recipes/troubleshooting-fit/schema.js +15 -0
  396. package/dist/recipes/turn-intent/index.d.ts +5 -0
  397. package/dist/recipes/turn-intent/index.js +19 -0
  398. package/dist/recipes/turn-intent/metadata.d.ts +8 -0
  399. package/dist/recipes/turn-intent/metadata.js +10 -0
  400. package/dist/recipes/turn-intent/schema.d.ts +48 -0
  401. package/dist/recipes/turn-intent/schema.js +22 -0
  402. package/dist/recipes/urgency-signal/index.d.ts +5 -0
  403. package/dist/recipes/urgency-signal/index.js +15 -0
  404. package/dist/recipes/urgency-signal/metadata.d.ts +8 -0
  405. package/dist/recipes/urgency-signal/metadata.js +10 -0
  406. package/dist/recipes/urgency-signal/schema.d.ts +36 -0
  407. package/dist/recipes/urgency-signal/schema.js +14 -0
  408. package/dist/recipes/verify/index.js +11 -31
  409. package/dist/recipes/verify/metadata.d.ts +8 -0
  410. package/dist/recipes/verify/metadata.js +11 -0
  411. package/dist/recipes/workaround-fit/index.d.ts +5 -0
  412. package/dist/recipes/workaround-fit/index.js +15 -0
  413. package/dist/recipes/workaround-fit/metadata.d.ts +8 -0
  414. package/dist/recipes/workaround-fit/metadata.js +10 -0
  415. package/dist/recipes/workaround-fit/schema.d.ts +37 -0
  416. package/dist/recipes/workaround-fit/schema.js +15 -0
  417. package/dist/src/checks.d.ts +14 -0
  418. package/dist/src/checks.js +21 -0
  419. package/dist/src/decisions.d.ts +13 -0
  420. package/dist/src/decisions.js +26 -0
  421. package/dist/src/index.d.ts +128 -0
  422. package/dist/src/index.js +64 -0
  423. package/dist/src/schema.d.ts +67 -0
  424. package/dist/src/schema.js +38 -0
  425. package/dist/src/selection.d.ts +2 -0
  426. package/dist/src/selection.js +30 -0
  427. package/examples/support/README.md +60 -0
  428. package/examples/support/demo.json +156 -0
  429. package/package.json +267 -7
  430. package/recipes/README.md +128 -0
  431. package/recipes/action-scope/README.md +49 -0
  432. package/recipes/action-scope/demo.json +25 -0
  433. package/recipes/answer-consistency/README.md +50 -0
  434. package/recipes/answer-consistency/demo.json +26 -0
  435. package/recipes/answer-coverage/README.md +60 -0
  436. package/recipes/answer-coverage/demo.json +46 -0
  437. package/recipes/answer-invalidation/README.md +50 -0
  438. package/recipes/answer-invalidation/demo.json +26 -0
  439. package/recipes/answer-relevance/README.md +49 -0
  440. package/recipes/answer-relevance/demo.json +26 -0
  441. package/recipes/answerability/README.md +54 -0
  442. package/recipes/answerability/demo.json +31 -0
  443. package/recipes/argument-fit/README.md +51 -0
  444. package/recipes/argument-fit/demo.json +26 -0
  445. package/recipes/attempted-step/README.md +48 -0
  446. package/recipes/attempted-step/demo.json +25 -0
  447. package/recipes/audience-fit/README.md +50 -0
  448. package/recipes/audience-fit/demo.json +26 -0
  449. package/recipes/cache-match/README.md +51 -0
  450. package/recipes/cache-match/demo.json +26 -0
  451. package/recipes/cancellation-check/README.md +50 -0
  452. package/recipes/cancellation-check/demo.json +26 -0
  453. package/recipes/certainty-match/README.md +49 -0
  454. package/recipes/certainty-match/demo.json +26 -0
  455. package/recipes/change-meaning/README.md +49 -0
  456. package/recipes/change-meaning/demo.json +25 -0
  457. package/recipes/citation-match/README.md +51 -0
  458. package/recipes/citation-match/demo.json +44 -0
  459. package/recipes/citation-needed/README.md +49 -0
  460. package/recipes/citation-needed/demo.json +25 -0
  461. package/recipes/clarify/README.md +61 -0
  462. package/recipes/clarify/demo.json +45 -0
  463. package/recipes/confirmation-match/README.md +49 -0
  464. package/recipes/confirmation-match/demo.json +25 -0
  465. package/recipes/context-role/README.md +49 -0
  466. package/recipes/context-role/demo.json +26 -0
  467. package/recipes/correction-target/README.md +52 -0
  468. package/recipes/correction-target/demo.json +35 -0
  469. package/recipes/document-role/README.md +51 -0
  470. package/recipes/document-role/demo.json +28 -0
  471. package/recipes/draft-compare/README.md +54 -0
  472. package/recipes/draft-compare/demo.json +29 -0
  473. package/recipes/evidence-conflict/README.md +51 -0
  474. package/recipes/evidence-conflict/demo.json +27 -0
  475. package/recipes/evidence-novelty/README.md +56 -0
  476. package/recipes/evidence-novelty/demo.json +32 -0
  477. package/recipes/fact-stability/README.md +47 -0
  478. package/recipes/fact-stability/demo.json +24 -0
  479. package/recipes/failure-kind/README.md +52 -0
  480. package/recipes/failure-kind/demo.json +35 -0
  481. package/recipes/feedback-kind/README.md +51 -0
  482. package/recipes/feedback-kind/demo.json +28 -0
  483. package/recipes/field-select/README.md +53 -0
  484. package/recipes/field-select/demo.json +36 -0
  485. package/recipes/followup-link/README.md +52 -0
  486. package/recipes/followup-link/demo.json +35 -0
  487. package/recipes/freshness-needed/README.md +46 -0
  488. package/recipes/freshness-needed/demo.json +24 -0
  489. package/recipes/frustration-signal/README.md +47 -0
  490. package/recipes/frustration-signal/demo.json +24 -0
  491. package/recipes/handoff/README.md +56 -0
  492. package/recipes/handoff/demo.json +30 -0
  493. package/recipes/incident-match/README.md +52 -0
  494. package/recipes/incident-match/demo.json +35 -0
  495. package/recipes/instruction-fit/README.md +49 -0
  496. package/recipes/instruction-fit/demo.json +25 -0
  497. package/recipes/intent-change/README.md +50 -0
  498. package/recipes/intent-change/demo.json +26 -0
  499. package/recipes/issue-impact/README.md +48 -0
  500. package/recipes/issue-impact/demo.json +25 -0
  501. package/recipes/memory-relation/README.md +52 -0
  502. package/recipes/memory-relation/demo.json +28 -0
  503. package/recipes/memory-scope/README.md +50 -0
  504. package/recipes/memory-scope/demo.json +27 -0
  505. package/recipes/memory-value/README.md +50 -0
  506. package/recipes/memory-value/demo.json +26 -0
  507. package/recipes/passage-duplicate/README.md +49 -0
  508. package/recipes/passage-duplicate/demo.json +26 -0
  509. package/recipes/preference-kind/README.md +48 -0
  510. package/recipes/preference-kind/demo.json +25 -0
  511. package/recipes/promise-check/README.md +48 -0
  512. package/recipes/promise-check/demo.json +25 -0
  513. package/recipes/query-equivalence/README.md +50 -0
  514. package/recipes/query-equivalence/demo.json +26 -0
  515. package/recipes/query-specificity/README.md +47 -0
  516. package/recipes/query-specificity/demo.json +24 -0
  517. package/recipes/reference-resolve/README.md +54 -0
  518. package/recipes/reference-resolve/demo.json +36 -0
  519. package/recipes/repeated-attempt/README.md +50 -0
  520. package/recipes/repeated-attempt/demo.json +26 -0
  521. package/recipes/reply-template-match/README.md +52 -0
  522. package/recipes/reply-template-match/demo.json +35 -0
  523. package/recipes/rerank/README.md +40 -10
  524. package/recipes/resolution-check/README.md +49 -0
  525. package/recipes/resolution-check/demo.json +25 -0
  526. package/recipes/response-needed/README.md +48 -0
  527. package/recipes/response-needed/demo.json +25 -0
  528. package/recipes/result-outcome/README.md +49 -0
  529. package/recipes/result-outcome/demo.json +26 -0
  530. package/recipes/result-usefulness/README.md +49 -0
  531. package/recipes/result-usefulness/demo.json +26 -0
  532. package/recipes/retrieval-needed/README.md +48 -0
  533. package/recipes/retrieval-needed/demo.json +25 -0
  534. package/recipes/route/README.md +30 -7
  535. package/recipes/source-applicability/README.md +48 -0
  536. package/recipes/source-applicability/demo.json +25 -0
  537. package/recipes/step-complete/README.md +48 -0
  538. package/recipes/step-complete/demo.json +25 -0
  539. package/recipes/step-progress/README.md +51 -0
  540. package/recipes/step-progress/demo.json +27 -0
  541. package/recipes/summary-coverage/README.md +60 -0
  542. package/recipes/summary-coverage/demo.json +46 -0
  543. package/recipes/ticket-match/README.md +50 -0
  544. package/recipes/ticket-match/demo.json +26 -0
  545. package/recipes/tone-check/README.md +55 -0
  546. package/recipes/tone-check/demo.json +30 -0
  547. package/recipes/tool-fit/README.md +49 -0
  548. package/recipes/tool-fit/demo.json +25 -0
  549. package/recipes/topic-shift/README.md +50 -0
  550. package/recipes/topic-shift/demo.json +26 -0
  551. package/recipes/troubleshooting-fit/README.md +49 -0
  552. package/recipes/troubleshooting-fit/demo.json +25 -0
  553. package/recipes/turn-intent/README.md +52 -0
  554. package/recipes/turn-intent/demo.json +29 -0
  555. package/recipes/urgency-signal/README.md +47 -0
  556. package/recipes/urgency-signal/demo.json +24 -0
  557. package/recipes/verify/README.md +37 -13
  558. package/recipes/workaround-fit/README.md +50 -0
  559. package/recipes/workaround-fit/demo.json +26 -0
  560. package/dist/cli/recipes.d.ts +0 -53
  561. package/dist/cli/recipes.js +0 -20
package/CHANGELOG.md CHANGED
@@ -2,9 +2,21 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
- ### Added
5
+ - Unify recipe execution helpers, result validation, subject registration, and documentation across the catalog.
6
6
 
7
- - Initial 0.0.1 foundation with route, rerank, and verify recipes.
7
+ - Expand the catalog to 66 focused recipes across answer quality, retrieval, conversation, tools, support, memory, and knowledge maintenance.
8
+ - Add shared choice, candidate-selection, and item-check helpers; keep recipe criteria and schemas in their own folders.
9
+ - Register every new recipe for root and subpath imports, discovery, CLI input examples, and offline demos.
10
+ - Document the complete catalog, explicit internal reuse, and Cool projects that compose small decisions.
11
+
12
+ - Add independent `answerability`, `clarify`, and `handoff` recipes with Zod schemas, inferred types, documentation, and offline fixtures.
13
+ - Add recipe-owned metadata, a searchable catalog, and CLI `describe` with JSON schemas and example input.
14
+ - Add `demo all` and a support-assistant example that composes six recipes, accepts an application draft callback, and verifies claims against selected evidence.
15
+ - Extend package exports and release checks without adding dependencies.
16
+
17
+ ## 0.0.1
18
+
19
+ - Initial foundation with route, rerank, and verify recipes.
8
20
  - TypeScript library with Zod schemas and inferred types.
9
21
  - CLI with offline demos, editable example input, and live Jev calls.
10
22
  - Build, formatting, and package checks for manual npm releases.
package/README.md CHANGED
@@ -1,159 +1,158 @@
1
- # jev recipes
1
+ # jev-recipes
2
2
 
3
- Small, composable recipes for [Jev](https://docs.typesafe.ai/introduction/coding-agents): choose a handler, rank useful passages, and check claims against evidence.
3
+ [![npm version](https://img.shields.io/npm/v/jev-recipes?logo=npm)](https://www.npmjs.com/package/jev-recipes)
4
4
 
5
- **Version 0.0.1.** A TypeScript library and a small command-line runner. Each recipe owns its implementation, Zod schemas, example, and documentation. Public data types are inferred from those schemas.
5
+ Small TypeScript recipes for the decisions inside an AI application. Use [Jev](https://docs.typesafe.ai/introduction/coding-agents) to choose a handler, select useful evidence, check an answer, or decide when to ask for help.
6
6
 
7
- | Recipe | Input | Result |
8
- | ------------------------------------ | ------------------------------ | ------------------------------------------ |
9
- | [`route`](recipes/route/README.md) | A request and named handlers | A selected handler or a review decision |
10
- | [`rerank`](recipes/rerank/README.md) | A query and candidate passages | Relevant passages, ordered by relevance |
11
- | [`verify`](recipes/verify/README.md) | Claims paired with evidence | A verdict and review status for each claim |
7
+ Each recipe is a function you can use on its own. Your application supplies the context and acts on the result.
12
8
 
13
- ## Try it locally
9
+ ## Recipes
14
10
 
15
- Requires Node.js 22.9 or newer. From this repository:
11
+ [Browse all 66 recipes](recipes/README.md). Each handles a focused decision and has its own schemas, example, and usage guide.
16
12
 
17
- ```sh
18
- npm ci
19
- npm run build
20
- npm run jev -- list
21
- npm run jev -- demo rerank
22
- ```
13
+ | Group | Recipes | Examples |
14
+ | ------------------------------------------------------------------ | ------- | ------------------------------------------------------- |
15
+ | [Answer quality](recipes/README.md#answer-quality) | 10 | `answer-coverage`, `answer-relevance`, `citation-match` |
16
+ | [Retrieval and evidence](recipes/README.md#retrieval-and-evidence) | 13 | `rerank`, `verify`, `answerability` |
17
+ | [Conversation](recipes/README.md#conversation) | 11 | `clarify`, `turn-intent`, `followup-link` |
18
+ | [Tools and tasks](recipes/README.md#tools-and-tasks) | 12 | `route`, `handoff`, `tool-fit` |
19
+ | [Customer support](recipes/README.md#customer-support) | 10 | `issue-impact`, `attempted-step`, `workaround-fit` |
20
+ | [Memory](recipes/README.md#memory) | 5 | `memory-value`, `memory-scope`, `memory-relation` |
21
+ | [Knowledge maintenance](recipes/README.md#knowledge-maintenance) | 5 | `document-role`, `audience-fit`, `change-meaning` |
22
+
23
+ ## Use in an app
23
24
 
24
- All three demos work without a key. Each recipe's `README.md` explains its API and limits; `demo.json` supplies executable example input and a saved response for the CLI. The demos run the recipe's validation and decision handling without calling Jev or measuring model accuracy.
25
+ Requires Node.js 22.9 or newer.
25
26
 
26
27
  ```sh
27
- npm run jev -- demo route
28
- npm run jev -- demo verify
28
+ npm install jev-recipes
29
29
  ```
30
30
 
31
- ## Run your own input
31
+ Set `TYPESAFE_API_KEY` in your server's environment, then call a recipe:
32
32
 
33
- Copy `.env.example` to `.env`, then set `TYPESAFE_API_KEY` from your TypeSafe account. Keep the key out of source control.
33
+ ```ts
34
+ import { rerank } from 'jev-recipes/rerank';
34
35
 
35
- ```sh
36
- cp .env.example .env
37
- node dist/cli/index.js example rerank > input.json
36
+ const result = await rerank({
37
+ query: 'How do I reset my password?',
38
+ items: [
39
+ { id: 'billing', text: 'Invoices appear on the Billing page.' },
40
+ { id: 'reset', text: 'Select Forgot password to receive a reset link.' },
41
+ ],
42
+ topK: 1,
43
+ });
44
+
45
+ if (result.status === 'ready') {
46
+ console.log(result.items);
47
+ }
38
48
  ```
39
49
 
40
- Edit `input.json` with your query and passages, then run:
50
+ You can also import recipes from `jev-recipes`. Every recipe accepts an optional second argument with `client`, `model`, and `signal`. Use `createClient` to configure the official TypeSafe SDK's timeouts and retries.
41
51
 
42
- ```sh
43
- npm run jev -- run rerank input.json
44
- ```
52
+ Live calls send the supplied input to TypeSafe and use API quota. Keep your API key on the server.
45
53
 
46
- Use `-` in place of the filename to read JSON from stdin. The `npm run jev` script loads `.env`; direct `jev-recipes` or `node` invocations use the process environment unless you explicitly load an env file. Use the direct command when piping JSON so npm's script banner is not included:
54
+ ## Try the demos
55
+
56
+ From this repository:
47
57
 
48
58
  ```sh
49
- node --env-file-if-exists=.env dist/cli/index.js run rerank input.json
59
+ npm ci
60
+ npm run build
61
+ npm run jev -- demo all
50
62
  ```
51
63
 
52
- Live runs send the recipe's input to TypeSafe and consume API quota. Jev performs inference remotely; the recipe's filtering and review rules run in your process. This project does not store inputs or add telemetry.
64
+ Demos use saved responses and need no API key. They show how each recipe handles a decision; they do not measure model accuracy. To run one, replace `all` with its name.
53
65
 
54
- ## Use from an app
66
+ The repository may contain additions that are not yet in the [published npm package](https://www.npmjs.com/package/jev-recipes). Use this checkout to try all the recipes shown here.
55
67
 
56
- The package exposes the same functions used by the command-line runner. In this checkout, package self-references work after `npm run build`:
68
+ ## Find a recipe
57
69
 
58
- ```ts
59
- import { rerank } from 'jev-recipes';
60
-
61
- const result = await rerank({
62
- query: 'How do I reset my password?',
63
- items: [
64
- { id: 'billing', text: 'Invoices appear on the Billing page.' },
65
- { id: 'reset', text: 'Select Forgot password to receive a reset link.' },
66
- ],
67
- topK: 1,
68
- });
70
+ Developers and coding agents can inspect the catalog without calling Jev:
69
71
 
70
- console.log(result.status, result.items);
72
+ ```sh
73
+ npm run jev -- list
74
+ npm run jev -- list evidence --category retrieval
75
+ npm run jev -- describe answer-coverage
71
76
  ```
72
77
 
73
- Individual recipe imports are also available:
78
+ `list` searches names, descriptions, categories, and tags. `describe` returns the recipe's limits, JSON input and result schemas, and example input.
79
+
80
+ The same catalog is available in TypeScript:
74
81
 
75
82
  ```ts
76
- import { route } from 'jev-recipes/route';
77
- import { verify } from 'jev-recipes/verify';
83
+ import { listRecipes, describeRecipe } from 'jev-recipes/catalog';
84
+
85
+ const recipes = listRecipes({ category: 'retrieval' });
86
+ const specification = describeRecipe('answer-coverage');
78
87
  ```
79
88
 
80
- For another local project, run `npm pack` here and install the resulting `.tgz` file there. That exercises the same package contents npm will distribute. See [RELEASING.md](RELEASING.md) for the commands. This README does not assume the package is published on npm yet.
89
+ The library returns metadata and schemas. The command-line description also includes example input. Zod validates runtime inputs, including rules such as unique IDs that JSON Schema does not fully express.
81
90
 
82
- ### Client configuration
91
+ ## Run your own input
83
92
 
84
- The default client reads `TYPESAFE_API_KEY` and uses `jev-latest`. You can reuse a client and supply a model or cancellation signal per call:
93
+ Add `TYPESAFE_API_KEY` to a local `.env` file. See [.env.example](.env.example) for the format.
85
94
 
86
- ```ts
87
- import { createClient, route } from 'jev-recipes';
88
-
89
- const client = createClient({ timeout: 15_000, retry: { maxRetries: 1 } });
90
- const result = await route(
91
- {
92
- request: 'I was charged twice.',
93
- routes: {
94
- billing: 'Invoices, payments, subscriptions, and refunds',
95
- technical: 'Errors, outages, and broken integrations',
96
- },
97
- minConfidence: 0.8,
98
- },
99
- { client, signal: AbortSignal.timeout(20_000) },
100
- );
95
+ Create an input file, edit it, then run the recipe:
96
+
97
+ ```sh
98
+ node dist/cli/index.js example rerank > input.json
99
+ npm run jev -- run rerank input.json
100
+ ```
101
+
102
+ The `npm run jev` command loads `.env`. Use `-` instead of a filename to read from stdin. For scripts that need JSON without npm's command banner:
103
+
104
+ ```sh
105
+ node --env-file-if-exists=.env dist/cli/index.js run rerank input.json
101
106
  ```
102
107
 
103
- Transport, authentication, retries, and timeouts use the official `@typesafe-ai/sdk`. The shared client disables SDK logging by default. API keys belong on the server, never in browser code. The SDK timeout applies per attempt; a cancellation signal can bound the complete operation. Pass a supported model ID through `{ model: '...' }` to pin evaluations when comparing versions.
108
+ ## Read the result before acting
104
109
 
105
- ## Behavior to know
110
+ - `ready` means a decision passed its threshold. Check the recipe's outcome too: a ready assessment can still find missing information or an unsupported claim.
111
+ - Inspect `verdict`, `selection`, or the recipe's aggregate result such as `allAnswered` or `canProceed`. Each guide explains its output.
112
+ - `review` is a valid outcome. Invalid inputs, malformed model responses, and provider errors throw; the command-line runner reports them on stderr and exits with code 1.
113
+ - Confidence does not guarantee correctness. Choose thresholds for your use case.
114
+ - Recipes assess the evidence and rules you supply. They return decisions; your application handles actions and permissions.
106
115
 
107
- - `ready` means a configured threshold passed. It does not mean the model is certainly correct or that an action was executed.
108
- - A review outcome is a successful evaluation, not a technical error. `verify` attaches a status to each check; a ready verdict can still be `contradicted` or `unsupported`.
109
- - Zod 4 validates inputs and model responses. Invalid input, missing credentials, provider failures, and malformed answers throw. The CLI writes an error to stderr and exits with code 1.
110
- - Confidence is distinct from a choice's probability. Reranking uses independent yes/no relevance values, which do not sum to 1.
111
- - Threshold defaults are illustrative. Evaluate on your own labeled examples before relying on them.
112
- - These functions return decisions only. They do not execute handlers, modify documents, search the web, or establish whether a source is true.
113
- - Inputs are not silently truncated. Batch limits are documented per recipe; provider context limits can require smaller batches.
116
+ ## Contribute
114
117
 
115
- ## Project layout
118
+ Each recipe owns its implementation, Zod 4 schemas, inferred types, metadata, demo, and documentation. Recipes share small decision helpers. A recipe that reuses another names that dependency in its guide and catalog metadata. Larger workflows belong in examples.
116
119
 
117
120
  ```text
118
- recipes/
119
- route/
120
- rerank/
121
- verify/
122
- index.ts Recipe implementation
123
- schema.ts Input/result schemas and z.infer types
124
- demo.json Example input and an offline response fixture
125
- README.md Usage and limits
126
- src/
127
- client.ts Thin adapter over the official SDK
128
- answers.ts Validate model responses
129
- schema.ts Shared Zod schemas and inferred types
130
- index.ts Public exports
131
- cli/
132
- index.ts Arguments, files, stdin, and output
133
- recipes.ts Explicit recipe registration
134
- schema.ts Command and demo validation
121
+ recipes/<name>/ Individual recipes
122
+ src/ Shared client, response validation, schemas, and exports
123
+ catalog/ Recipe discovery and registrations grouped by subject
124
+ cli/ Command-line runner
125
+ examples/ Workflows that combine recipes
135
126
  ```
136
127
 
137
- Recipes depend on `src/`, never on one another or on the CLI. The CLI calls the public recipe functions. There is no application server, database, or background process.
128
+ See [CONTRIBUTING.md](CONTRIBUTING.md) to add a recipe.
138
129
 
139
- ## Development
130
+ `npm run build` compiles the TypeScript into JavaScript modules and type declarations. `npm pack` creates the installable archive. See [RELEASING.md](RELEASING.md) for packaging and publishing, and [CHANGELOG.md](CHANGELOG.md) for changes.
140
131
 
141
- ```sh
142
- npm run format
143
- npm run ci
144
- npm run pack:check
145
- ```
132
+ ## Cool projects
146
133
 
147
- `npm run ci` checks formatting, type-checks the source, makes a clean build, and runs the offline demos. GitHub runs the same checks on Node 22 and 24. The demos show request and result shapes; live model accuracy has not been measured for this initial release.
134
+ Keep the recipes small and connect them in your application. These ideas show how a few decisions can support a larger project:
148
135
 
149
- See [CONTRIBUTING.md](CONTRIBUTING.md) for adding a recipe. Version 0.0.1 is the foundation: recipe installation into other projects, a user-data evaluation runner, and an MCP server are not included yet.
136
+ | Project idea | Recipes to combine | Your application supplies |
137
+ | -------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------- |
138
+ | An assistant that answers every part of a question | `rerank`, `answerability`, `citation-match`, `answer-coverage` | Document retrieval, a draft generator, and the question parts to check |
139
+ | Support that remembers attempted fixes | `attempted-step`, `troubleshooting-fit`, `workaround-fit`, `handoff` | Conversation history, approved procedures, and escalation rules |
140
+ | An agent that notices repeated attempts | `result-usefulness`, `step-progress`, `repeated-attempt` | Tool execution, attempt history, retry limits, and stop rules |
141
+ | A knowledge base that catches outdated answers | `change-meaning`, `answer-invalidation`, `cache-match` | Source change tracking, saved answers, and access and freshness checks |
142
+ | Memory that respects the task's scope | `preference-kind`, `memory-value`, `memory-scope`, `memory-relation` | Candidate facts, storage consent, and retention rules |
150
143
 
151
- ## Distribution
144
+ The [support assistant example](examples/support/README.md) is implemented in this repository. It stops when review or better information is needed and accepts your own draft callback:
152
145
 
153
- `npm run build` compiles the TypeScript into ESM JavaScript and `.d.ts` declarations under `dist/`. `npm pack` creates a `.tgz` containing that output, the recipe demos and documentation, the changelog, and the license. npm installs the TypeSafe SDK and Zod as runtime dependencies. Consumers do not run a build.
146
+ ```text
147
+ handoff → clarify → route → rerank → answerability → draft an answer → verify
148
+ ```
149
+
150
+ ```sh
151
+ npm run example:support
152
+ ```
154
153
 
155
- Use [RELEASING.md](RELEASING.md) to inspect the archive, try it in a separate project, run live evaluations, and publish version 0.0.1. Publishing is manual.
154
+ That command uses saved decisions and a saved draft. Add `-- --live` to use live Jev decisions with your `.env` key; the example still uses the saved draft. The other projects above are composition ideas, not additional bundled applications.
156
155
 
157
156
  ## License
158
157
 
159
- MIT. Independent community project; Jev and TypeSafe are products of TypeSafe AI.
158
+ [MIT](LICENSE). Independent community project. Jev and TypeSafe are products of TypeSafe AI.