jev-recipes 0.6.0 → 0.7.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 (84) hide show
  1. package/README.md +57 -11
  2. package/dist/catalog/generated/details/completion-gate.json +110 -0
  3. package/dist/catalog/generated/details/context-prune.json +59 -0
  4. package/dist/catalog/generated/details/diff-hazards.json +112 -0
  5. package/dist/catalog/generated/details/finger-actions.json +95 -0
  6. package/dist/catalog/generated/details/model-route.json +82 -0
  7. package/dist/catalog/generated/details/route-many.json +68 -0
  8. package/dist/catalog/generated/details/tool-call-gate.json +123 -0
  9. package/dist/catalog/generated/details/wake-gate.json +40 -0
  10. package/dist/catalog/generated/loaders.js +8 -0
  11. package/dist/catalog/generated/metadata.js +240 -14
  12. package/dist/catalog/generated/names.d.ts +1 -1
  13. package/dist/catalog/generated/names.js +8 -0
  14. package/dist/catalog/schema.d.ts +8 -0
  15. package/dist/cli/schema.d.ts +24 -0
  16. package/dist/recipes/cancellation-check/schema.d.ts +6 -6
  17. package/dist/recipes/clarify/index.js +2 -2
  18. package/dist/recipes/completion-gate/demo.json +29 -0
  19. package/dist/recipes/completion-gate/index.d.ts +5 -0
  20. package/dist/recipes/completion-gate/index.js +53 -0
  21. package/dist/recipes/completion-gate/schema.d.ts +103 -0
  22. package/dist/recipes/completion-gate/schema.js +33 -0
  23. package/dist/recipes/context-prune/demo.json +40 -0
  24. package/dist/recipes/context-prune/index.d.ts +5 -0
  25. package/dist/recipes/context-prune/index.js +42 -0
  26. package/dist/recipes/context-prune/schema.d.ts +58 -0
  27. package/dist/recipes/context-prune/schema.js +23 -0
  28. package/dist/recipes/diff-hazards/demo.json +18 -0
  29. package/dist/recipes/diff-hazards/index.d.ts +5 -0
  30. package/dist/recipes/diff-hazards/index.js +48 -0
  31. package/dist/recipes/diff-hazards/schema.d.ts +96 -0
  32. package/dist/recipes/diff-hazards/schema.js +24 -0
  33. package/dist/recipes/extraction-fidelity/schema.d.ts +2 -2
  34. package/dist/recipes/finger-actions/demo.json +58 -0
  35. package/dist/recipes/finger-actions/index.d.ts +5 -0
  36. package/dist/recipes/finger-actions/index.js +7 -0
  37. package/dist/recipes/finger-actions/schema.d.ts +48 -0
  38. package/dist/recipes/finger-actions/schema.js +10 -0
  39. package/dist/recipes/handoff/schema.d.ts +1 -1
  40. package/dist/recipes/model-route/demo.json +45 -0
  41. package/dist/recipes/model-route/index.d.ts +5 -0
  42. package/dist/recipes/model-route/index.js +35 -0
  43. package/dist/recipes/model-route/schema.d.ts +51 -0
  44. package/dist/recipes/model-route/schema.js +16 -0
  45. package/dist/recipes/mood-match/schema.d.ts +2 -2
  46. package/dist/recipes/performance-feedback-facets/demo.json +1 -1
  47. package/dist/recipes/performance-feedback-facets/index.js +2 -2
  48. package/dist/recipes/product-match/schema.d.ts +2 -2
  49. package/dist/recipes/route-many/demo.json +53 -0
  50. package/dist/recipes/route-many/index.d.ts +5 -0
  51. package/dist/recipes/route-many/index.js +48 -0
  52. package/dist/recipes/route-many/schema.d.ts +49 -0
  53. package/dist/recipes/route-many/schema.js +30 -0
  54. package/dist/recipes/sound-match/schema.d.ts +2 -2
  55. package/dist/recipes/step-complete/demo.json +1 -1
  56. package/dist/recipes/step-complete/index.js +2 -2
  57. package/dist/recipes/symptom-facets/demo.json +1 -1
  58. package/dist/recipes/symptom-facets/index.js +3 -3
  59. package/dist/recipes/tool-call-gate/demo.json +26 -0
  60. package/dist/recipes/tool-call-gate/index.d.ts +5 -0
  61. package/dist/recipes/tool-call-gate/index.js +67 -0
  62. package/dist/recipes/tool-call-gate/schema.d.ts +134 -0
  63. package/dist/recipes/tool-call-gate/schema.js +34 -0
  64. package/dist/recipes/trip-purpose-kind/schema.d.ts +3 -3
  65. package/dist/recipes/verify/index.js +4 -3
  66. package/dist/recipes/wake-gate/demo.json +20 -0
  67. package/dist/recipes/wake-gate/index.d.ts +5 -0
  68. package/dist/recipes/wake-gate/index.js +16 -0
  69. package/dist/recipes/wake-gate/schema.d.ts +40 -0
  70. package/dist/recipes/wake-gate/schema.js +15 -0
  71. package/dist/src/answers.js +10 -4
  72. package/dist/src/assignments.d.ts +2 -0
  73. package/dist/src/assignments.js +47 -0
  74. package/dist/src/batch.d.ts +12 -0
  75. package/dist/src/batch.js +23 -0
  76. package/dist/src/fanout.d.ts +20 -0
  77. package/dist/src/fanout.js +39 -0
  78. package/dist/src/index.d.ts +16 -0
  79. package/dist/src/index.js +8 -0
  80. package/dist/src/schema.d.ts +70 -0
  81. package/dist/src/schema.js +27 -0
  82. package/dist/src/selection.d.ts +18 -0
  83. package/dist/src/selection.js +41 -11
  84. package/package.json +38 -3
@@ -1 +1 @@
1
- export declare const recipeNames: readonly ["action-compare", "action-effects", "action-reversibility", "action-scope", "age-appropriateness", "alert-actionability", "answer-consistency", "answer-coverage", "answer-disclosures", "answer-grade", "answer-invalidation", "answer-relevance", "answerability", "appeal-grounds-kind", "appointment-request-kind", "argument-fit", "attempted-step", "attribution-match", "audience-fit", "breaking-change-signal", "budget-fit", "budget-narrative-fit", "bug-report-completeness", "buying-intent", "cache-match", "cancellation-check", "care-urgency-wording", "category-fit", "causal-attribution", "causal-language-strength", "certainty-match", "change-meaning", "change-risk", "change-window-fit", "checkers-move", "choose-action", "citation-match", "citation-needed", "claim-facets", "claim-stance", "clarify", "clause-conflict", "clause-kind", "clickbait-level", "commit-message-fit", "commitment-strength", "comparable-fit", "confirmation-match", "consent-request", "consent-scope-fit", "constraint-strength", "content-facets", "content-freshness-signal", "context-role", "continuation-compare", "correction-target", "corrective-action-fit", "daw-request-kind", "deadline-risk", "defect-report-facets", "delegation-fit", "disclosure-facets", "dispute-kind", "document-role", "draft-compare", "dynamic-change", "eligibility-facets", "emotion-kind", "entity-match", "error-acknowledgment", "escalation-wording", "evaluation-mention", "evidence-conflict", "evidence-independence", "evidence-novelty", "evidence-strength", "exercise-select", "expense-category", "explanation-level", "extraction-fidelity", "fact-stability", "failure-kind", "fair-housing-wording", "feedback-actionability", "feedback-kind", "field-select", "financial-advice-signal", "followup-link", "forecast-confidence-wording", "format-fit", "freshness-needed", "frustration-signal", "funder-fit", "game-action", "game-phase", "goal-drift", "grounding-level", "guest-request-facets", "handoff", "handoff-completeness", "headline-fit", "incident-match", "incident-severity-wording", "injection-signal", "instruction-clarity", "instruction-conflict", "instruction-fit", "instruction-priority", "instruction-readability", "instrument-issue-kind", "instrument-report-facets", "intake-question-fit", "intent-change", "invoice-facets", "issue-impact", "issue-recurrence", "itinerary-feasibility", "job-post-facets", "length-fit", "listener-request-kind", "listing-compare", "listing-fact-consistency", "log-line-kind", "loss-cause-kind", "lyric-mood-fit", "maintenance-hazard-wording", "medication-mention", "memory-relation", "memory-scope", "memory-subject", "memory-value", "message-facets", "methods-facets", "modulation-moment", "mood-match", "mood-request", "motivation-source", "move-explanation-fit", "narrative-consistency", "next-chord", "next-duration", "next-note", "notice-facets", "novelty-claim-level", "objection-kind", "objective-fit", "offer-terms-facets", "outcome-framing", "passage-compare", "passage-difficulty", "passage-duplicate", "passage-mood", "passage-standalone", "performance-feedback-facets", "persuasion-technique", "phrase-complete", "pii-presence", "plan-completeness", "policy-compliance", "policy-severity", "politeness-level", "postmortem-facets", "preference-kind", "priority-compare", "privacy-notice-facets", "product-match", "progress-stall", "promise-check", "proposal-facets", "qualification-evidence", "query-equivalence", "query-specificity", "question-assumption", "question-leading", "question-relevance", "reconciliation-match", "reference-resolve", "repeated-attempt", "repetition-level", "reply-template-match", "report-facets", "requirement-testability", "rerank", "resolution-check", "response-needed", "response-refusal", "result-outcome", "result-plausibility", "result-usefulness", "retrieval-needed", "retry-worthwhile", "review-comment-kind", "review-facets", "review-recommendation-kind", "review-response-fit", "rollback-signal", "root-cause-depth", "route", "rule-compliance", "runbook-fit", "safety-incident-kind", "satisfaction-signal", "search-intent-kind", "sentiment-shift", "settlement-offer-facets", "shipment-issue-kind", "slot-fit", "sound-match", "source-applicability", "spam-signal", "stage-evidence", "step-complete", "step-progress", "style-kind", "summary-coverage", "symptom-facets", "take-turn", "task-complexity", "task-dependency", "task-duplicate", "task-overlap", "tempo-change", "tension-level", "ticket-match", "tone-check", "tool-compare", "tool-fit", "topic-shift", "trip-purpose-kind", "troubleshooting-fit", "turn-intent", "uncertainty-expression", "urgency-signal", "verify", "workaround-fit"];
1
+ export declare const recipeNames: readonly ["action-compare", "action-effects", "action-reversibility", "action-scope", "age-appropriateness", "alert-actionability", "answer-consistency", "answer-coverage", "answer-disclosures", "answer-grade", "answer-invalidation", "answer-relevance", "answerability", "appeal-grounds-kind", "appointment-request-kind", "argument-fit", "attempted-step", "attribution-match", "audience-fit", "breaking-change-signal", "budget-fit", "budget-narrative-fit", "bug-report-completeness", "buying-intent", "cache-match", "cancellation-check", "care-urgency-wording", "category-fit", "causal-attribution", "causal-language-strength", "certainty-match", "change-meaning", "change-risk", "change-window-fit", "checkers-move", "choose-action", "citation-match", "citation-needed", "claim-facets", "claim-stance", "clarify", "clause-conflict", "clause-kind", "clickbait-level", "commit-message-fit", "commitment-strength", "comparable-fit", "completion-gate", "confirmation-match", "consent-request", "consent-scope-fit", "constraint-strength", "content-facets", "content-freshness-signal", "context-prune", "context-role", "continuation-compare", "correction-target", "corrective-action-fit", "daw-request-kind", "deadline-risk", "defect-report-facets", "delegation-fit", "diff-hazards", "disclosure-facets", "dispute-kind", "document-role", "draft-compare", "dynamic-change", "eligibility-facets", "emotion-kind", "entity-match", "error-acknowledgment", "escalation-wording", "evaluation-mention", "evidence-conflict", "evidence-independence", "evidence-novelty", "evidence-strength", "exercise-select", "expense-category", "explanation-level", "extraction-fidelity", "fact-stability", "failure-kind", "fair-housing-wording", "feedback-actionability", "feedback-kind", "field-select", "financial-advice-signal", "finger-actions", "followup-link", "forecast-confidence-wording", "format-fit", "freshness-needed", "frustration-signal", "funder-fit", "game-action", "game-phase", "goal-drift", "grounding-level", "guest-request-facets", "handoff", "handoff-completeness", "headline-fit", "incident-match", "incident-severity-wording", "injection-signal", "instruction-clarity", "instruction-conflict", "instruction-fit", "instruction-priority", "instruction-readability", "instrument-issue-kind", "instrument-report-facets", "intake-question-fit", "intent-change", "invoice-facets", "issue-impact", "issue-recurrence", "itinerary-feasibility", "job-post-facets", "length-fit", "listener-request-kind", "listing-compare", "listing-fact-consistency", "log-line-kind", "loss-cause-kind", "lyric-mood-fit", "maintenance-hazard-wording", "medication-mention", "memory-relation", "memory-scope", "memory-subject", "memory-value", "message-facets", "methods-facets", "model-route", "modulation-moment", "mood-match", "mood-request", "motivation-source", "move-explanation-fit", "narrative-consistency", "next-chord", "next-duration", "next-note", "notice-facets", "novelty-claim-level", "objection-kind", "objective-fit", "offer-terms-facets", "outcome-framing", "passage-compare", "passage-difficulty", "passage-duplicate", "passage-mood", "passage-standalone", "performance-feedback-facets", "persuasion-technique", "phrase-complete", "pii-presence", "plan-completeness", "policy-compliance", "policy-severity", "politeness-level", "postmortem-facets", "preference-kind", "priority-compare", "privacy-notice-facets", "product-match", "progress-stall", "promise-check", "proposal-facets", "qualification-evidence", "query-equivalence", "query-specificity", "question-assumption", "question-leading", "question-relevance", "reconciliation-match", "reference-resolve", "repeated-attempt", "repetition-level", "reply-template-match", "report-facets", "requirement-testability", "rerank", "resolution-check", "response-needed", "response-refusal", "result-outcome", "result-plausibility", "result-usefulness", "retrieval-needed", "retry-worthwhile", "review-comment-kind", "review-facets", "review-recommendation-kind", "review-response-fit", "rollback-signal", "root-cause-depth", "route", "route-many", "rule-compliance", "runbook-fit", "safety-incident-kind", "satisfaction-signal", "search-intent-kind", "sentiment-shift", "settlement-offer-facets", "shipment-issue-kind", "slot-fit", "sound-match", "source-applicability", "spam-signal", "stage-evidence", "step-complete", "step-progress", "style-kind", "summary-coverage", "symptom-facets", "take-turn", "task-complexity", "task-dependency", "task-duplicate", "task-overlap", "tempo-change", "tension-level", "ticket-match", "tone-check", "tool-call-gate", "tool-compare", "tool-fit", "topic-shift", "trip-purpose-kind", "troubleshooting-fit", "turn-intent", "uncertainty-expression", "urgency-signal", "verify", "wake-gate", "workaround-fit"];
@@ -47,12 +47,14 @@ export const recipeNames = [
47
47
  'commit-message-fit',
48
48
  'commitment-strength',
49
49
  'comparable-fit',
50
+ 'completion-gate',
50
51
  'confirmation-match',
51
52
  'consent-request',
52
53
  'consent-scope-fit',
53
54
  'constraint-strength',
54
55
  'content-facets',
55
56
  'content-freshness-signal',
57
+ 'context-prune',
56
58
  'context-role',
57
59
  'continuation-compare',
58
60
  'correction-target',
@@ -61,6 +63,7 @@ export const recipeNames = [
61
63
  'deadline-risk',
62
64
  'defect-report-facets',
63
65
  'delegation-fit',
66
+ 'diff-hazards',
64
67
  'disclosure-facets',
65
68
  'dispute-kind',
66
69
  'document-role',
@@ -87,6 +90,7 @@ export const recipeNames = [
87
90
  'feedback-kind',
88
91
  'field-select',
89
92
  'financial-advice-signal',
93
+ 'finger-actions',
90
94
  'followup-link',
91
95
  'forecast-confidence-wording',
92
96
  'format-fit',
@@ -133,6 +137,7 @@ export const recipeNames = [
133
137
  'memory-value',
134
138
  'message-facets',
135
139
  'methods-facets',
140
+ 'model-route',
136
141
  'modulation-moment',
137
142
  'mood-match',
138
143
  'mood-request',
@@ -198,6 +203,7 @@ export const recipeNames = [
198
203
  'rollback-signal',
199
204
  'root-cause-depth',
200
205
  'route',
206
+ 'route-many',
201
207
  'rule-compliance',
202
208
  'runbook-fit',
203
209
  'safety-incident-kind',
@@ -225,6 +231,7 @@ export const recipeNames = [
225
231
  'tension-level',
226
232
  'ticket-match',
227
233
  'tone-check',
234
+ 'tool-call-gate',
228
235
  'tool-compare',
229
236
  'tool-fit',
230
237
  'topic-shift',
@@ -234,5 +241,6 @@ export const recipeNames = [
234
241
  'uncertainty-expression',
235
242
  'urgency-signal',
236
243
  'verify',
244
+ 'wake-gate',
237
245
  'workaround-fit',
238
246
  ];
@@ -47,12 +47,14 @@ export declare const recipeNameSchema: z.ZodEnum<{
47
47
  "commit-message-fit": "commit-message-fit";
48
48
  "commitment-strength": "commitment-strength";
49
49
  "comparable-fit": "comparable-fit";
50
+ "completion-gate": "completion-gate";
50
51
  "confirmation-match": "confirmation-match";
51
52
  "consent-request": "consent-request";
52
53
  "consent-scope-fit": "consent-scope-fit";
53
54
  "constraint-strength": "constraint-strength";
54
55
  "content-facets": "content-facets";
55
56
  "content-freshness-signal": "content-freshness-signal";
57
+ "context-prune": "context-prune";
56
58
  "context-role": "context-role";
57
59
  "continuation-compare": "continuation-compare";
58
60
  "correction-target": "correction-target";
@@ -61,6 +63,7 @@ export declare const recipeNameSchema: z.ZodEnum<{
61
63
  "deadline-risk": "deadline-risk";
62
64
  "defect-report-facets": "defect-report-facets";
63
65
  "delegation-fit": "delegation-fit";
66
+ "diff-hazards": "diff-hazards";
64
67
  "disclosure-facets": "disclosure-facets";
65
68
  "dispute-kind": "dispute-kind";
66
69
  "document-role": "document-role";
@@ -87,6 +90,7 @@ export declare const recipeNameSchema: z.ZodEnum<{
87
90
  "feedback-kind": "feedback-kind";
88
91
  "field-select": "field-select";
89
92
  "financial-advice-signal": "financial-advice-signal";
93
+ "finger-actions": "finger-actions";
90
94
  "followup-link": "followup-link";
91
95
  "forecast-confidence-wording": "forecast-confidence-wording";
92
96
  "format-fit": "format-fit";
@@ -133,6 +137,7 @@ export declare const recipeNameSchema: z.ZodEnum<{
133
137
  "memory-value": "memory-value";
134
138
  "message-facets": "message-facets";
135
139
  "methods-facets": "methods-facets";
140
+ "model-route": "model-route";
136
141
  "modulation-moment": "modulation-moment";
137
142
  "mood-match": "mood-match";
138
143
  "mood-request": "mood-request";
@@ -198,6 +203,7 @@ export declare const recipeNameSchema: z.ZodEnum<{
198
203
  "rollback-signal": "rollback-signal";
199
204
  "root-cause-depth": "root-cause-depth";
200
205
  route: "route";
206
+ "route-many": "route-many";
201
207
  "rule-compliance": "rule-compliance";
202
208
  "runbook-fit": "runbook-fit";
203
209
  "safety-incident-kind": "safety-incident-kind";
@@ -225,6 +231,7 @@ export declare const recipeNameSchema: z.ZodEnum<{
225
231
  "tension-level": "tension-level";
226
232
  "ticket-match": "ticket-match";
227
233
  "tone-check": "tone-check";
234
+ "tool-call-gate": "tool-call-gate";
228
235
  "tool-compare": "tool-compare";
229
236
  "tool-fit": "tool-fit";
230
237
  "topic-shift": "topic-shift";
@@ -234,6 +241,7 @@ export declare const recipeNameSchema: z.ZodEnum<{
234
241
  "uncertainty-expression": "uncertainty-expression";
235
242
  "urgency-signal": "urgency-signal";
236
243
  verify: "verify";
244
+ "wake-gate": "wake-gate";
237
245
  "workaround-fit": "workaround-fit";
238
246
  }>;
239
247
  export declare const recipeFiltersSchema: z.ZodObject<{
@@ -50,12 +50,14 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
50
50
  "commit-message-fit": "commit-message-fit";
51
51
  "commitment-strength": "commitment-strength";
52
52
  "comparable-fit": "comparable-fit";
53
+ "completion-gate": "completion-gate";
53
54
  "confirmation-match": "confirmation-match";
54
55
  "consent-request": "consent-request";
55
56
  "consent-scope-fit": "consent-scope-fit";
56
57
  "constraint-strength": "constraint-strength";
57
58
  "content-facets": "content-facets";
58
59
  "content-freshness-signal": "content-freshness-signal";
60
+ "context-prune": "context-prune";
59
61
  "context-role": "context-role";
60
62
  "continuation-compare": "continuation-compare";
61
63
  "correction-target": "correction-target";
@@ -64,6 +66,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
64
66
  "deadline-risk": "deadline-risk";
65
67
  "defect-report-facets": "defect-report-facets";
66
68
  "delegation-fit": "delegation-fit";
69
+ "diff-hazards": "diff-hazards";
67
70
  "disclosure-facets": "disclosure-facets";
68
71
  "dispute-kind": "dispute-kind";
69
72
  "document-role": "document-role";
@@ -90,6 +93,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
90
93
  "feedback-kind": "feedback-kind";
91
94
  "field-select": "field-select";
92
95
  "financial-advice-signal": "financial-advice-signal";
96
+ "finger-actions": "finger-actions";
93
97
  "followup-link": "followup-link";
94
98
  "forecast-confidence-wording": "forecast-confidence-wording";
95
99
  "format-fit": "format-fit";
@@ -136,6 +140,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
136
140
  "memory-value": "memory-value";
137
141
  "message-facets": "message-facets";
138
142
  "methods-facets": "methods-facets";
143
+ "model-route": "model-route";
139
144
  "modulation-moment": "modulation-moment";
140
145
  "mood-match": "mood-match";
141
146
  "mood-request": "mood-request";
@@ -201,6 +206,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
201
206
  "rollback-signal": "rollback-signal";
202
207
  "root-cause-depth": "root-cause-depth";
203
208
  route: "route";
209
+ "route-many": "route-many";
204
210
  "rule-compliance": "rule-compliance";
205
211
  "runbook-fit": "runbook-fit";
206
212
  "safety-incident-kind": "safety-incident-kind";
@@ -228,6 +234,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
228
234
  "tension-level": "tension-level";
229
235
  "ticket-match": "ticket-match";
230
236
  "tone-check": "tone-check";
237
+ "tool-call-gate": "tool-call-gate";
231
238
  "tool-compare": "tool-compare";
232
239
  "tool-fit": "tool-fit";
233
240
  "topic-shift": "topic-shift";
@@ -237,6 +244,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
237
244
  "uncertainty-expression": "uncertainty-expression";
238
245
  "urgency-signal": "urgency-signal";
239
246
  verify: "verify";
247
+ "wake-gate": "wake-gate";
240
248
  "workaround-fit": "workaround-fit";
241
249
  }>, z.ZodLiteral<"all">]>], null>, z.ZodTuple<[z.ZodEnum<{
242
250
  example: "example";
@@ -289,12 +297,14 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
289
297
  "commit-message-fit": "commit-message-fit";
290
298
  "commitment-strength": "commitment-strength";
291
299
  "comparable-fit": "comparable-fit";
300
+ "completion-gate": "completion-gate";
292
301
  "confirmation-match": "confirmation-match";
293
302
  "consent-request": "consent-request";
294
303
  "consent-scope-fit": "consent-scope-fit";
295
304
  "constraint-strength": "constraint-strength";
296
305
  "content-facets": "content-facets";
297
306
  "content-freshness-signal": "content-freshness-signal";
307
+ "context-prune": "context-prune";
298
308
  "context-role": "context-role";
299
309
  "continuation-compare": "continuation-compare";
300
310
  "correction-target": "correction-target";
@@ -303,6 +313,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
303
313
  "deadline-risk": "deadline-risk";
304
314
  "defect-report-facets": "defect-report-facets";
305
315
  "delegation-fit": "delegation-fit";
316
+ "diff-hazards": "diff-hazards";
306
317
  "disclosure-facets": "disclosure-facets";
307
318
  "dispute-kind": "dispute-kind";
308
319
  "document-role": "document-role";
@@ -329,6 +340,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
329
340
  "feedback-kind": "feedback-kind";
330
341
  "field-select": "field-select";
331
342
  "financial-advice-signal": "financial-advice-signal";
343
+ "finger-actions": "finger-actions";
332
344
  "followup-link": "followup-link";
333
345
  "forecast-confidence-wording": "forecast-confidence-wording";
334
346
  "format-fit": "format-fit";
@@ -375,6 +387,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
375
387
  "memory-value": "memory-value";
376
388
  "message-facets": "message-facets";
377
389
  "methods-facets": "methods-facets";
390
+ "model-route": "model-route";
378
391
  "modulation-moment": "modulation-moment";
379
392
  "mood-match": "mood-match";
380
393
  "mood-request": "mood-request";
@@ -440,6 +453,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
440
453
  "rollback-signal": "rollback-signal";
441
454
  "root-cause-depth": "root-cause-depth";
442
455
  route: "route";
456
+ "route-many": "route-many";
443
457
  "rule-compliance": "rule-compliance";
444
458
  "runbook-fit": "runbook-fit";
445
459
  "safety-incident-kind": "safety-incident-kind";
@@ -467,6 +481,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
467
481
  "tension-level": "tension-level";
468
482
  "ticket-match": "ticket-match";
469
483
  "tone-check": "tone-check";
484
+ "tool-call-gate": "tool-call-gate";
470
485
  "tool-compare": "tool-compare";
471
486
  "tool-fit": "tool-fit";
472
487
  "topic-shift": "topic-shift";
@@ -476,6 +491,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
476
491
  "uncertainty-expression": "uncertainty-expression";
477
492
  "urgency-signal": "urgency-signal";
478
493
  verify: "verify";
494
+ "wake-gate": "wake-gate";
479
495
  "workaround-fit": "workaround-fit";
480
496
  }>], null>, z.ZodTuple<[z.ZodLiteral<"run">, z.ZodEnum<{
481
497
  "action-compare": "action-compare";
@@ -525,12 +541,14 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
525
541
  "commit-message-fit": "commit-message-fit";
526
542
  "commitment-strength": "commitment-strength";
527
543
  "comparable-fit": "comparable-fit";
544
+ "completion-gate": "completion-gate";
528
545
  "confirmation-match": "confirmation-match";
529
546
  "consent-request": "consent-request";
530
547
  "consent-scope-fit": "consent-scope-fit";
531
548
  "constraint-strength": "constraint-strength";
532
549
  "content-facets": "content-facets";
533
550
  "content-freshness-signal": "content-freshness-signal";
551
+ "context-prune": "context-prune";
534
552
  "context-role": "context-role";
535
553
  "continuation-compare": "continuation-compare";
536
554
  "correction-target": "correction-target";
@@ -539,6 +557,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
539
557
  "deadline-risk": "deadline-risk";
540
558
  "defect-report-facets": "defect-report-facets";
541
559
  "delegation-fit": "delegation-fit";
560
+ "diff-hazards": "diff-hazards";
542
561
  "disclosure-facets": "disclosure-facets";
543
562
  "dispute-kind": "dispute-kind";
544
563
  "document-role": "document-role";
@@ -565,6 +584,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
565
584
  "feedback-kind": "feedback-kind";
566
585
  "field-select": "field-select";
567
586
  "financial-advice-signal": "financial-advice-signal";
587
+ "finger-actions": "finger-actions";
568
588
  "followup-link": "followup-link";
569
589
  "forecast-confidence-wording": "forecast-confidence-wording";
570
590
  "format-fit": "format-fit";
@@ -611,6 +631,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
611
631
  "memory-value": "memory-value";
612
632
  "message-facets": "message-facets";
613
633
  "methods-facets": "methods-facets";
634
+ "model-route": "model-route";
614
635
  "modulation-moment": "modulation-moment";
615
636
  "mood-match": "mood-match";
616
637
  "mood-request": "mood-request";
@@ -676,6 +697,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
676
697
  "rollback-signal": "rollback-signal";
677
698
  "root-cause-depth": "root-cause-depth";
678
699
  route: "route";
700
+ "route-many": "route-many";
679
701
  "rule-compliance": "rule-compliance";
680
702
  "runbook-fit": "runbook-fit";
681
703
  "safety-incident-kind": "safety-incident-kind";
@@ -703,6 +725,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
703
725
  "tension-level": "tension-level";
704
726
  "ticket-match": "ticket-match";
705
727
  "tone-check": "tone-check";
728
+ "tool-call-gate": "tool-call-gate";
706
729
  "tool-compare": "tool-compare";
707
730
  "tool-fit": "tool-fit";
708
731
  "topic-shift": "topic-shift";
@@ -712,6 +735,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
712
735
  "uncertainty-expression": "uncertainty-expression";
713
736
  "urgency-signal": "urgency-signal";
714
737
  verify: "verify";
738
+ "wake-gate": "wake-gate";
715
739
  "workaround-fit": "workaround-fit";
716
740
  }>, z.ZodString], null>]>;
717
741
  export declare const demoFixtureSchema: z.ZodObject<{
@@ -1,9 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  export declare const cancellationCheckVerdictSchema: z.ZodEnum<{
3
3
  unclear: "unclear";
4
- cancel: "cancel";
5
- pause: "pause";
6
4
  continue: "continue";
5
+ pause: "pause";
6
+ cancel: "cancel";
7
7
  }>;
8
8
  export declare const cancellationCheckInputSchema: z.ZodObject<{
9
9
  task: z.ZodString;
@@ -23,16 +23,16 @@ export declare const cancellationCheckResultSchema: z.ZodObject<{
23
23
  }>;
24
24
  verdict: z.ZodEnum<{
25
25
  unclear: "unclear";
26
- cancel: "cancel";
27
- pause: "pause";
28
26
  continue: "continue";
27
+ pause: "pause";
28
+ cancel: "cancel";
29
29
  }>;
30
30
  confidence: z.ZodNumber;
31
31
  probabilities: z.ZodRecord<z.ZodEnum<{
32
32
  unclear: "unclear";
33
- cancel: "cancel";
34
- pause: "pause";
35
33
  continue: "continue";
34
+ pause: "pause";
35
+ cancel: "cancel";
36
36
  }>, z.ZodNumber>;
37
37
  }, z.core.$strip>;
38
38
  export type CancellationCheckInput = z.infer<typeof cancellationCheckInputSchema>;
@@ -4,8 +4,8 @@ export async function clarify(input, options = {}) {
4
4
  const { request, context, requirements, minConfidence = 0.8 } = clarifyInputSchema.parse(input);
5
5
  const evaluation = await evaluateChecks({ request, context: context ?? '', requirements }, requirements, (index) => `Is the information described by requirements[${index}].description supplied in the request or context?`, {
6
6
  present: 'The required information is explicitly supplied or unambiguously implied.',
7
- missing: 'The required information is absent.',
8
- ambiguous: 'Relevant information is supplied, but has multiple plausible meanings or conflicting values.',
7
+ missing: 'Nothing in the request or context refers to this information at all.',
8
+ ambiguous: 'The request or context refers to this information, but it is vague, underspecified, conflicting, or open to multiple readings, so a follow-up question is needed to pin it down.',
9
9
  }, options, 'requirement');
10
10
  const checks = evaluation.checks.map((check) => ({
11
11
  ...check,
@@ -0,0 +1,29 @@
1
+ {
2
+ "input": {
3
+ "task": "Add input validation to the signup endpoint, write unit tests for the new validation, and make sure the full test suite passes.",
4
+ "report": "I added validation for email and password fields in signup.ts and wrote three unit tests covering the new checks. All tests pass. Let me know if you want me to also validate the username field.",
5
+ "evidence": "$ npm test\n\nTest Files 12 passed (12)\n Tests 87 passed (87)\n\n$ git diff --stat\n src/signup.ts | 18 ++++++++++++\n tests/signup.test.ts | 41 +++++++++++++++++++++++++",
6
+ "minConfidence": 0.8
7
+ },
8
+ "response": {
9
+ "model": "demo-fixture",
10
+ "answers": {
11
+ "decision": {
12
+ "type": "choice",
13
+ "choice": "complete",
14
+ "confidence": 0.9,
15
+ "probabilities": {
16
+ "complete": 0.9,
17
+ "incomplete": 0.05,
18
+ "unverified": 0.03,
19
+ "unclear": 0.02
20
+ }
21
+ },
22
+ "claimsWithoutEvidence": { "type": "noul", "noul": 0.06 },
23
+ "scopeNarrowed": { "type": "noul", "noul": 0.08 },
24
+ "openQuestions": { "type": "noul", "noul": 0.12 },
25
+ "unresolvedErrors": { "type": "noul", "noul": 0.03 }
26
+ },
27
+ "usage": { "input_tokens": 0, "output_tokens": 0 }
28
+ }
29
+ }
@@ -0,0 +1,5 @@
1
+ import type { RecipeOptions } from '../../src/schema.js';
2
+ import type { CompletionGateInput, CompletionGateResult } from './schema.js';
3
+ export declare function completionGate(input: CompletionGateInput, options?: RecipeOptions): Promise<CompletionGateResult>;
4
+ export { completionGateInputSchema, completionGateResultSchema, completionGateVerdictSchema, completionGateSignalSchema, } from './schema.js';
5
+ export type { CompletionGateInput, CompletionGateResult, CompletionGateVerdict, CompletionGateSignal, } from './schema.js';
@@ -0,0 +1,53 @@
1
+ import { evaluateChoiceWithLabels } from '../../src/fanout.js';
2
+ import { resolveLabels } from '../../src/labels.js';
3
+ import { completionGateInputSchema, completionGateResultSchema } from './schema.js';
4
+ export async function completionGate(input, options = {}) {
5
+ const { minConfidence = 0.8, ...state } = completionGateInputSchema.parse(input);
6
+ const decision = await evaluateChoiceWithLabels(state, 'An agent was given task and has stopped with report as its final message. Is the task actually done? Use evidence, when supplied, as the record of what happened, such as test output, diffs, or the transcript; the report alone is a claim, not proof. Count the task complete only when every part of it is shown done. Count it incomplete when any part is missing, deferred, skipped, or failed, including parts the report quietly drops. Count it unverified when the report claims completion but nothing supplied demonstrates it. Choose unclear only when task or report cannot be understood well enough to judge, such as a task with no identifiable requirement or a report with no readable content; a report that addresses different work than the task, or that points to material not supplied, is unverified, not unclear.', {
7
+ complete: 'Every part of the task is shown to be done.',
8
+ incomplete: 'Some part of the task is missing, deferred, narrowed, or failed, whether or not the report admits it.',
9
+ unverified: 'The report claims the task is done, but the supplied material does not demonstrate it.',
10
+ unclear: 'The task or the report cannot be understood well enough to judge; not merely that proof is missing.',
11
+ }, {
12
+ claimsWithoutEvidence: {
13
+ instruction: 'Does report assert results, such as passing tests, a working feature, or a verified fix, that evidence does not show, or that nothing supplied shows when evidence is absent?',
14
+ criteria: {
15
+ true: 'The report asserts outcomes that the supplied material does not demonstrate.',
16
+ false: 'Every outcome the report asserts is demonstrated, or the report asserts none.',
17
+ },
18
+ },
19
+ scopeNarrowed: {
20
+ instruction: 'Does report deliver less than task asked for without saying so, for example by handling one case of several, skipping a listed requirement, or redefining the goal?',
21
+ criteria: {
22
+ true: 'The report quietly delivers less than the task asked for.',
23
+ false: 'The report covers the full task, or states explicitly what it left out.',
24
+ },
25
+ },
26
+ openQuestions: {
27
+ instruction: 'Does report end by asking the user questions, requesting decisions, or offering options instead of finishing the work?',
28
+ criteria: {
29
+ true: 'The report leaves questions or decisions for the user that block completion.',
30
+ false: 'The report leaves no blocking questions or decisions.',
31
+ },
32
+ },
33
+ unresolvedErrors: {
34
+ instruction: 'Do report or evidence mention failing tests, errors, warnings, or broken behavior that were not fixed before stopping?',
35
+ criteria: {
36
+ true: 'There are errors or failures that remain unresolved.',
37
+ false: 'No unresolved errors or failures are mentioned.',
38
+ },
39
+ },
40
+ }, options);
41
+ const { labels: signals, detected } = resolveLabels(decision.labels, minConfidence);
42
+ return completionGateResultSchema.parse({
43
+ status: decision.confidence < minConfidence || decision.verdict === 'unclear' ? 'review' : 'ready',
44
+ verdict: decision.verdict,
45
+ confidence: decision.confidence,
46
+ probabilities: decision.probabilities,
47
+ signals,
48
+ detected,
49
+ model: decision.model,
50
+ usage: decision.usage,
51
+ });
52
+ }
53
+ export { completionGateInputSchema, completionGateResultSchema, completionGateVerdictSchema, completionGateSignalSchema, } from './schema.js';
@@ -0,0 +1,103 @@
1
+ import { z } from 'zod';
2
+ export declare const completionGateVerdictSchema: z.ZodEnum<{
3
+ unclear: "unclear";
4
+ complete: "complete";
5
+ incomplete: "incomplete";
6
+ unverified: "unverified";
7
+ }>;
8
+ export declare const completionGateSignalSchema: z.ZodEnum<{
9
+ claimsWithoutEvidence: "claimsWithoutEvidence";
10
+ scopeNarrowed: "scopeNarrowed";
11
+ openQuestions: "openQuestions";
12
+ unresolvedErrors: "unresolvedErrors";
13
+ }>;
14
+ export declare const completionGateInputSchema: z.ZodObject<{
15
+ task: z.ZodString;
16
+ report: z.ZodString;
17
+ evidence: z.ZodOptional<z.ZodString>;
18
+ minConfidence: z.ZodOptional<z.ZodNumber>;
19
+ }, z.core.$strip>;
20
+ export declare const completionGateResultSchema: z.ZodObject<{
21
+ model: z.ZodString;
22
+ usage: z.ZodObject<{
23
+ input_tokens: z.ZodNumber;
24
+ output_tokens: z.ZodNumber;
25
+ }, z.core.$strip>;
26
+ status: z.ZodEnum<{
27
+ ready: "ready";
28
+ review: "review";
29
+ }>;
30
+ verdict: z.ZodEnum<{
31
+ unclear: "unclear";
32
+ complete: "complete";
33
+ incomplete: "incomplete";
34
+ unverified: "unverified";
35
+ }>;
36
+ confidence: z.ZodNumber;
37
+ probabilities: z.ZodRecord<z.ZodEnum<{
38
+ unclear: "unclear";
39
+ complete: "complete";
40
+ incomplete: "incomplete";
41
+ unverified: "unverified";
42
+ }>, z.ZodNumber>;
43
+ signals: z.ZodObject<{
44
+ claimsWithoutEvidence: z.ZodObject<{
45
+ status: z.ZodEnum<{
46
+ ready: "ready";
47
+ review: "review";
48
+ }>;
49
+ verdict: z.ZodEnum<{
50
+ present: "present";
51
+ absent: "absent";
52
+ }>;
53
+ probability: z.ZodNumber;
54
+ confidence: z.ZodNumber;
55
+ }, z.core.$strip>;
56
+ scopeNarrowed: z.ZodObject<{
57
+ status: z.ZodEnum<{
58
+ ready: "ready";
59
+ review: "review";
60
+ }>;
61
+ verdict: z.ZodEnum<{
62
+ present: "present";
63
+ absent: "absent";
64
+ }>;
65
+ probability: z.ZodNumber;
66
+ confidence: z.ZodNumber;
67
+ }, z.core.$strip>;
68
+ openQuestions: z.ZodObject<{
69
+ status: z.ZodEnum<{
70
+ ready: "ready";
71
+ review: "review";
72
+ }>;
73
+ verdict: z.ZodEnum<{
74
+ present: "present";
75
+ absent: "absent";
76
+ }>;
77
+ probability: z.ZodNumber;
78
+ confidence: z.ZodNumber;
79
+ }, z.core.$strip>;
80
+ unresolvedErrors: z.ZodObject<{
81
+ status: z.ZodEnum<{
82
+ ready: "ready";
83
+ review: "review";
84
+ }>;
85
+ verdict: z.ZodEnum<{
86
+ present: "present";
87
+ absent: "absent";
88
+ }>;
89
+ probability: z.ZodNumber;
90
+ confidence: z.ZodNumber;
91
+ }, z.core.$strip>;
92
+ }, z.core.$strip>;
93
+ detected: z.ZodArray<z.ZodEnum<{
94
+ claimsWithoutEvidence: "claimsWithoutEvidence";
95
+ scopeNarrowed: "scopeNarrowed";
96
+ openQuestions: "openQuestions";
97
+ unresolvedErrors: "unresolvedErrors";
98
+ }>>;
99
+ }, z.core.$strip>;
100
+ export type CompletionGateVerdict = z.infer<typeof completionGateVerdictSchema>;
101
+ export type CompletionGateSignal = z.infer<typeof completionGateSignalSchema>;
102
+ export type CompletionGateInput = z.infer<typeof completionGateInputSchema>;
103
+ export type CompletionGateResult = z.infer<typeof completionGateResultSchema>;
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ import { decisionStatusSchema, labelCheckSchema, nonEmptyText, probability, resultMetadataSchema, } from '../../src/schema.js';
3
+ export const completionGateVerdictSchema = z.enum([
4
+ 'complete',
5
+ 'incomplete',
6
+ 'unverified',
7
+ 'unclear',
8
+ ]);
9
+ export const completionGateSignalSchema = z.enum([
10
+ 'claimsWithoutEvidence',
11
+ 'scopeNarrowed',
12
+ 'openQuestions',
13
+ 'unresolvedErrors',
14
+ ]);
15
+ export const completionGateInputSchema = z.object({
16
+ task: nonEmptyText,
17
+ report: nonEmptyText,
18
+ evidence: nonEmptyText.optional(),
19
+ minConfidence: probability.optional(),
20
+ });
21
+ export const completionGateResultSchema = resultMetadataSchema.extend({
22
+ status: decisionStatusSchema,
23
+ verdict: completionGateVerdictSchema,
24
+ confidence: probability,
25
+ probabilities: z.record(completionGateVerdictSchema, probability),
26
+ signals: z.object({
27
+ claimsWithoutEvidence: labelCheckSchema,
28
+ scopeNarrowed: labelCheckSchema,
29
+ openQuestions: labelCheckSchema,
30
+ unresolvedErrors: labelCheckSchema,
31
+ }),
32
+ detected: z.array(completionGateSignalSchema),
33
+ });
@@ -0,0 +1,40 @@
1
+ {
2
+ "input": {
3
+ "objective": "Fix the failing test in tests/auth.test.ts, which expects a 401 for expired tokens but receives a 500, then run the suite and commit.",
4
+ "items": [
5
+ {
6
+ "id": "ls-root",
7
+ "text": "Tool result (ls): README.md package.json src tests docs node_modules"
8
+ },
9
+ {
10
+ "id": "auth-source",
11
+ "text": "Tool result (cat src/auth.ts): export function verify(token) { const payload = jwt.verify(token, SECRET); if (payload.exp < Date.now()) throw new Error('expired'); return payload; }"
12
+ },
13
+ {
14
+ "id": "readme",
15
+ "text": "Tool result (cat README.md): # Acme API. Install with npm ci. Run with npm start. See docs/ for endpoints."
16
+ },
17
+ {
18
+ "id": "user-note",
19
+ "text": "User: don't touch the token format, other services depend on it."
20
+ },
21
+ {
22
+ "id": "test-output",
23
+ "text": "Tool result (npm test): FAIL tests/auth.test.ts > returns 401 for expired token. Expected 401, received 500. TypeError: Cannot read properties of undefined (reading 'status') at src/auth.ts:9"
24
+ }
25
+ ],
26
+ "recent": "The agent has read the failing test and the auth source and is about to edit src/auth.ts.",
27
+ "minConfidence": 0.8
28
+ },
29
+ "response": {
30
+ "model": "demo-fixture",
31
+ "answers": {
32
+ "item_0": { "type": "noul", "noul": 0.06 },
33
+ "item_1": { "type": "noul", "noul": 0.95 },
34
+ "item_2": { "type": "noul", "noul": 0.08 },
35
+ "item_3": { "type": "noul", "noul": 0.93 },
36
+ "item_4": { "type": "noul", "noul": 0.96 }
37
+ },
38
+ "usage": { "input_tokens": 0, "output_tokens": 0 }
39
+ }
40
+ }