jev-recipes 0.5.1 → 0.5.3

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 (59) hide show
  1. package/README.md +7 -5
  2. package/dist/catalog/generated/details/causal-attribution.json +55 -0
  3. package/dist/catalog/generated/details/checkers-move.json +1 -2
  4. package/dist/catalog/generated/details/choose-action.json +1 -2
  5. package/dist/catalog/generated/details/game-action.json +161 -0
  6. package/dist/catalog/generated/details/issue-recurrence.json +46 -0
  7. package/dist/catalog/generated/details/memory-subject.json +49 -0
  8. package/dist/catalog/generated/details/motivation-source.json +55 -0
  9. package/dist/catalog/generated/details/outcome-framing.json +49 -0
  10. package/dist/catalog/generated/details/question-assumption.json +49 -0
  11. package/dist/catalog/generated/loaders.js +7 -0
  12. package/dist/catalog/generated/metadata.js +260 -1
  13. package/dist/catalog/generated/names.d.ts +1 -1
  14. package/dist/catalog/generated/names.js +7 -0
  15. package/dist/catalog/schema.d.ts +7 -0
  16. package/dist/cli/schema.d.ts +21 -0
  17. package/dist/recipes/causal-attribution/demo.json +27 -0
  18. package/dist/recipes/causal-attribution/index.d.ts +5 -0
  19. package/dist/recipes/causal-attribution/index.js +17 -0
  20. package/dist/recipes/causal-attribution/schema.d.ts +43 -0
  21. package/dist/recipes/causal-attribution/schema.js +23 -0
  22. package/dist/recipes/checkers-move/schema.js +1 -2
  23. package/dist/recipes/choose-action/schema.js +6 -2
  24. package/dist/recipes/claim-stance/schema.d.ts +3 -3
  25. package/dist/recipes/game-action/demo.json +24 -0
  26. package/dist/recipes/game-action/index.d.ts +5 -0
  27. package/dist/recipes/game-action/index.js +30 -0
  28. package/dist/recipes/game-action/schema.d.ts +21 -0
  29. package/dist/recipes/game-action/schema.js +21 -0
  30. package/dist/recipes/issue-recurrence/demo.json +27 -0
  31. package/dist/recipes/issue-recurrence/index.d.ts +5 -0
  32. package/dist/recipes/issue-recurrence/index.js +16 -0
  33. package/dist/recipes/issue-recurrence/schema.d.ts +40 -0
  34. package/dist/recipes/issue-recurrence/schema.js +17 -0
  35. package/dist/recipes/memory-subject/demo.json +26 -0
  36. package/dist/recipes/memory-subject/index.d.ts +5 -0
  37. package/dist/recipes/memory-subject/index.js +16 -0
  38. package/dist/recipes/memory-subject/schema.d.ts +40 -0
  39. package/dist/recipes/memory-subject/schema.js +17 -0
  40. package/dist/recipes/motivation-source/demo.json +27 -0
  41. package/dist/recipes/motivation-source/index.d.ts +5 -0
  42. package/dist/recipes/motivation-source/index.js +17 -0
  43. package/dist/recipes/motivation-source/schema.d.ts +43 -0
  44. package/dist/recipes/motivation-source/schema.js +23 -0
  45. package/dist/recipes/outcome-framing/demo.json +27 -0
  46. package/dist/recipes/outcome-framing/index.d.ts +5 -0
  47. package/dist/recipes/outcome-framing/index.js +17 -0
  48. package/dist/recipes/outcome-framing/schema.d.ts +43 -0
  49. package/dist/recipes/outcome-framing/schema.js +17 -0
  50. package/dist/recipes/question-assumption/demo.json +25 -0
  51. package/dist/recipes/question-assumption/index.d.ts +5 -0
  52. package/dist/recipes/question-assumption/index.js +15 -0
  53. package/dist/recipes/question-assumption/schema.d.ts +37 -0
  54. package/dist/recipes/question-assumption/schema.js +17 -0
  55. package/dist/recipes/question-leading/schema.d.ts +3 -3
  56. package/dist/src/index.d.ts +14 -0
  57. package/dist/src/index.js +7 -0
  58. package/package.json +29 -2
  59. package/CHANGELOG.md +0 -45
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  <!-- BEGIN GENERATED: summary -->
13
13
 
14
- 81 focused recipes for JavaScript and TypeScript. Route messages, check evidence, and label model responses with a function call.
14
+ 88 focused recipes for JavaScript and TypeScript. Route messages, check evidence, and label model responses with a function call.
15
15
 
16
16
  <!-- END GENERATED: summary -->
17
17
 
@@ -138,7 +138,9 @@ npx jev-recipes demo answerability
138
138
 
139
139
  [Browse the complete catalog](https://github.com/agencyenterprise/jev-recipes/blob/main/recipes/README.md). Each guide includes an import, input reference, result behavior, limitations, and related recipes.
140
140
 
141
- For games, the [gameplay guide](https://github.com/agencyenterprise/jev-recipes/blob/main/docs/gameplay.md) starts with a checkers decision using just the board, player, and legal moves. It also covers general action selection and narrative turn eligibility.
141
+ For games, use [game-action](https://github.com/agencyenterprise/jev-recipes/blob/main/recipes/game-action/README.md) with your existing JSON state and actions. It returns the original selected action, preserving your game IDs. [checkers-move](https://github.com/agencyenterprise/jev-recipes/blob/main/recipes/checkers-move/README.md) accepts a structured checkers board and legal moves; the [checkers example](https://github.com/agencyenterprise/jev-recipes/blob/main/examples/checkers/README.md) shows how to run its visual demo locally.
142
+
143
+ For psychology, browse [Psychology & behavior](https://github.com/agencyenterprise/jev-recipes/blob/main/recipes/README.md#psychology--behavior) for gain/loss framing, causal explanations, stated motivation, and related wording annotations. Search with `npx jev-recipes list psychology`.
142
144
 
143
145
  <a id="run-your-own-input-from-the-terminal"></a>
144
146
 
@@ -183,7 +185,7 @@ The [CI workflow](https://github.com/agencyenterprise/jev-recipes/actions/workfl
183
185
  - **Recipe checks:** validate software behavior using mocked responses, including invalid inputs, confidence boundaries, and malformed answers.
184
186
  - **Model evaluation:** offline tests and demos do not measure Jev's accuracy. Evaluate recipes on your own data for your intended use.
185
187
 
186
- The package contains compiled code, type declarations, catalog data, and offline demo assets. Tests, build tools, and source guides stay out of the npm archive. [Publishing details](https://github.com/agencyenterprise/jev-recipes/blob/main/RELEASING.md).
188
+ The package contains compiled code, type declarations, catalog data, and offline demo assets. Tests, build tools, and source guides stay out of the npm archive. [Publishing details](https://github.com/agencyenterprise/jev-recipes/blob/main/CONTRIBUTING.md#releasing).
187
189
 
188
190
  Direct imports such as `jev-recipes/route` load the selected recipe and its dependencies. Installation downloads one package; it does not selectively download individual recipes.
189
191
 
@@ -191,7 +193,7 @@ Direct imports such as `jev-recipes/route` load the selected recipe and its depe
191
193
 
192
194
  Recipes can serve as candidate annotation tools in controlled experiments. `claim-stance` labels expressed agreement, `verify` checks supplied evidence, and `draft-compare` compares responses under a rubric.
193
195
 
194
- The [research guide](https://github.com/agencyenterprise/jev-recipes/blob/main/docs/ai-alignment-research.md) outlines a controlled agreement study and validation against human annotations. These labels describe observable outputs; they do not establish internal motives or prove that a model is aligned.
196
+ The [research guide](https://github.com/agencyenterprise/jev-recipes/blob/main/docs/ai-alignment-research.md) covers validation against human annotations, handling uncertainty, and recording reproducible results. These labels describe observable outputs; they do not establish internal motives or prove that a model is aligned.
195
197
 
196
198
  <a id="contribute"></a>
197
199
 
@@ -209,7 +211,7 @@ make ci
209
211
 
210
212
  The recipe folder owns its implementation, schemas, metadata, demo, and guide. Exports and catalog entries are generated from those folders. Tests live under `tests/recipe/`.
211
213
 
212
- [Contributing guide](https://github.com/agencyenterprise/jev-recipes/blob/main/CONTRIBUTING.md) | [Roadmap](https://github.com/agencyenterprise/jev-recipes/blob/main/RECIPE_ROADMAP.md) | [Changelog](https://github.com/agencyenterprise/jev-recipes/blob/main/CHANGELOG.md)
214
+ [Contributing guide](https://github.com/agencyenterprise/jev-recipes/blob/main/CONTRIBUTING.md)
213
215
 
214
216
  ## License
215
217
 
@@ -0,0 +1,55 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "behavior": {
7
+ "type": "string",
8
+ "description": "One focal behavior or outcome identifying the person or actor whose behavior is being explained."
9
+ },
10
+ "explanation": {
11
+ "type": "string",
12
+ "description": "The supplied explanation to classify, including any quoted attribution."
13
+ },
14
+ "context": {
15
+ "type": "string",
16
+ "description": "Supplied identities or references needed to interpret the explanation."
17
+ },
18
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
19
+ },
20
+ "required": ["behavior", "explanation"]
21
+ },
22
+ "resultSchema": {
23
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
24
+ "type": "object",
25
+ "properties": {
26
+ "model": { "type": "string" },
27
+ "usage": {
28
+ "type": "object",
29
+ "properties": {
30
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
31
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
32
+ },
33
+ "required": ["input_tokens", "output_tokens"],
34
+ "additionalProperties": false
35
+ },
36
+ "status": { "type": "string", "enum": ["ready", "review"] },
37
+ "verdict": {
38
+ "type": "string",
39
+ "enum": ["personal", "situational", "mixed", "none", "unclear"]
40
+ },
41
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
42
+ "probabilities": {
43
+ "type": "object",
44
+ "propertyNames": {
45
+ "type": "string",
46
+ "enum": ["personal", "situational", "mixed", "none", "unclear"]
47
+ },
48
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
49
+ "required": ["personal", "situational", "mixed", "none", "unclear"]
50
+ }
51
+ },
52
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
53
+ "additionalProperties": false
54
+ }
55
+ }
@@ -33,7 +33,6 @@
33
33
  },
34
34
  "legalMoves": {
35
35
  "minItems": 1,
36
- "maxItems": 50,
37
36
  "type": "array",
38
37
  "items": {
39
38
  "type": "object",
@@ -72,7 +71,7 @@
72
71
  "required": ["id", "from", "path"],
73
72
  "additionalProperties": false
74
73
  },
75
- "description": "One to fifty complete legal moves from your game, with unique IDs."
74
+ "description": "One or more complete legal moves from your game, with unique IDs."
76
75
  },
77
76
  "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
78
77
  },
@@ -21,14 +21,13 @@
21
21
  },
22
22
  "actions": {
23
23
  "minItems": 1,
24
- "maxItems": 50,
25
24
  "type": "array",
26
25
  "items": {
27
26
  "type": "object",
28
27
  "properties": { "id": { "type": "string" }, "text": { "type": "string" } },
29
28
  "required": ["id", "text"]
30
29
  },
31
- "description": "One to fifty candidate actions with unique IDs and concrete action descriptions."
30
+ "description": "One or more candidate actions with unique IDs and concrete action descriptions."
32
31
  },
33
32
  "history": {
34
33
  "maxItems": 100,
@@ -0,0 +1,161 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "gameState": {
7
+ "description": "The current game information available for this decision.",
8
+ "$ref": "#/$defs/__schema0"
9
+ },
10
+ "playerState": {
11
+ "description": "Information about the player making this decision.",
12
+ "$ref": "#/$defs/__schema1"
13
+ },
14
+ "legalActions": {
15
+ "type": "array",
16
+ "items": { "$ref": "#/$defs/__schema2" },
17
+ "description": "The available actions the player can choose from."
18
+ },
19
+ "rules": {
20
+ "description": "Game rules and explanations of game-specific information.",
21
+ "$ref": "#/$defs/__schema3"
22
+ },
23
+ "objective": {
24
+ "description": "What the player is trying to accomplish.",
25
+ "$ref": "#/$defs/__schema4"
26
+ }
27
+ },
28
+ "required": ["gameState", "playerState", "legalActions"],
29
+ "$defs": {
30
+ "__schema0": {
31
+ "anyOf": [
32
+ { "type": "string" },
33
+ { "type": "number" },
34
+ { "type": "boolean" },
35
+ { "type": "null" },
36
+ { "type": "array", "items": { "$ref": "#/$defs/__schema0" } },
37
+ {
38
+ "type": "object",
39
+ "propertyNames": { "type": "string" },
40
+ "additionalProperties": { "$ref": "#/$defs/__schema0" }
41
+ }
42
+ ]
43
+ },
44
+ "__schema1": {
45
+ "anyOf": [
46
+ { "type": "string" },
47
+ { "type": "number" },
48
+ { "type": "boolean" },
49
+ { "type": "null" },
50
+ { "type": "array", "items": { "$ref": "#/$defs/__schema1" } },
51
+ {
52
+ "type": "object",
53
+ "propertyNames": { "type": "string" },
54
+ "additionalProperties": { "$ref": "#/$defs/__schema1" }
55
+ }
56
+ ]
57
+ },
58
+ "__schema2": {
59
+ "anyOf": [
60
+ { "type": "string" },
61
+ { "type": "number" },
62
+ { "type": "boolean" },
63
+ { "type": "null" },
64
+ { "type": "array", "items": { "$ref": "#/$defs/__schema2" } },
65
+ {
66
+ "type": "object",
67
+ "propertyNames": { "type": "string" },
68
+ "additionalProperties": { "$ref": "#/$defs/__schema2" }
69
+ }
70
+ ]
71
+ },
72
+ "__schema3": {
73
+ "anyOf": [
74
+ { "type": "string" },
75
+ { "type": "number" },
76
+ { "type": "boolean" },
77
+ { "type": "null" },
78
+ { "type": "array", "items": { "$ref": "#/$defs/__schema3" } },
79
+ {
80
+ "type": "object",
81
+ "propertyNames": { "type": "string" },
82
+ "additionalProperties": { "$ref": "#/$defs/__schema3" }
83
+ }
84
+ ]
85
+ },
86
+ "__schema4": {
87
+ "anyOf": [
88
+ { "type": "string" },
89
+ { "type": "number" },
90
+ { "type": "boolean" },
91
+ { "type": "null" },
92
+ { "type": "array", "items": { "$ref": "#/$defs/__schema4" } },
93
+ {
94
+ "type": "object",
95
+ "propertyNames": { "type": "string" },
96
+ "additionalProperties": { "$ref": "#/$defs/__schema4" }
97
+ }
98
+ ]
99
+ }
100
+ }
101
+ },
102
+ "resultSchema": {
103
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
104
+ "anyOf": [
105
+ {
106
+ "type": "object",
107
+ "properties": {
108
+ "model": { "type": "string" },
109
+ "usage": {
110
+ "type": "object",
111
+ "properties": {
112
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
113
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
114
+ },
115
+ "required": ["input_tokens", "output_tokens"],
116
+ "additionalProperties": false
117
+ },
118
+ "selection": {
119
+ "type": "string",
120
+ "description": "The internal Choice label associated with the selected action."
121
+ },
122
+ "action": {
123
+ "description": "The original selected action, preserving any existing game ID.",
124
+ "$ref": "#/$defs/__schema0"
125
+ },
126
+ "confidence": {
127
+ "type": "number",
128
+ "minimum": 0,
129
+ "maximum": 1,
130
+ "description": "The confidence returned by Jev."
131
+ },
132
+ "probabilities": {
133
+ "type": "object",
134
+ "propertyNames": { "type": "string" },
135
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
136
+ "description": "Jev's probabilities, keyed by internal Choice label."
137
+ }
138
+ },
139
+ "required": ["model", "usage", "selection", "action", "confidence", "probabilities"],
140
+ "additionalProperties": false
141
+ },
142
+ { "type": "null" }
143
+ ],
144
+ "$defs": {
145
+ "__schema0": {
146
+ "anyOf": [
147
+ { "type": "string" },
148
+ { "type": "number" },
149
+ { "type": "boolean" },
150
+ { "type": "null" },
151
+ { "type": "array", "items": { "$ref": "#/$defs/__schema0" } },
152
+ {
153
+ "type": "object",
154
+ "propertyNames": { "type": "string" },
155
+ "additionalProperties": { "$ref": "#/$defs/__schema0" }
156
+ }
157
+ ]
158
+ }
159
+ }
160
+ }
161
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "issue": {
7
+ "type": "string",
8
+ "description": "One specific problem whose reported recurrence should be assessed."
9
+ },
10
+ "message": { "type": "string", "description": "The latest customer report about the issue." },
11
+ "history": {
12
+ "type": "string",
13
+ "description": "Earlier reports in chronological order, oldest first, with speaker identities and reported outcomes."
14
+ },
15
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
16
+ },
17
+ "required": ["issue", "message"]
18
+ },
19
+ "resultSchema": {
20
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
21
+ "type": "object",
22
+ "properties": {
23
+ "model": { "type": "string" },
24
+ "usage": {
25
+ "type": "object",
26
+ "properties": {
27
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
28
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
29
+ },
30
+ "required": ["input_tokens", "output_tokens"],
31
+ "additionalProperties": false
32
+ },
33
+ "status": { "type": "string", "enum": ["ready", "review"] },
34
+ "verdict": { "type": "string", "enum": ["new", "ongoing", "returned", "unclear"] },
35
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
36
+ "probabilities": {
37
+ "type": "object",
38
+ "propertyNames": { "type": "string", "enum": ["new", "ongoing", "returned", "unclear"] },
39
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
40
+ "required": ["new", "ongoing", "returned", "unclear"]
41
+ }
42
+ },
43
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
44
+ "additionalProperties": false
45
+ }
46
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "statement": {
7
+ "type": "string",
8
+ "description": "One atomic statement or candidate memory whose subject should be identified."
9
+ },
10
+ "user": {
11
+ "type": "string",
12
+ "description": "The person whose memory profile is being considered, including their speaker role when relevant."
13
+ },
14
+ "context": {
15
+ "type": "string",
16
+ "description": "Supplied speaker identities or surrounding text needed to resolve references."
17
+ },
18
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
19
+ },
20
+ "required": ["statement", "user"]
21
+ },
22
+ "resultSchema": {
23
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
24
+ "type": "object",
25
+ "properties": {
26
+ "model": { "type": "string" },
27
+ "usage": {
28
+ "type": "object",
29
+ "properties": {
30
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
31
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
32
+ },
33
+ "required": ["input_tokens", "output_tokens"],
34
+ "additionalProperties": false
35
+ },
36
+ "status": { "type": "string", "enum": ["ready", "review"] },
37
+ "verdict": { "type": "string", "enum": ["user", "other", "shared", "unclear"] },
38
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
39
+ "probabilities": {
40
+ "type": "object",
41
+ "propertyNames": { "type": "string", "enum": ["user", "other", "shared", "unclear"] },
42
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
43
+ "required": ["user", "other", "shared", "unclear"]
44
+ }
45
+ },
46
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
47
+ "additionalProperties": false
48
+ }
49
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "activity": {
7
+ "type": "string",
8
+ "description": "One focal activity and its actor when needed to distinguish whose stated reason is being classified."
9
+ },
10
+ "statement": {
11
+ "type": "string",
12
+ "description": "Text stating or reporting why the actor does the activity."
13
+ },
14
+ "context": {
15
+ "type": "string",
16
+ "description": "Supplied speaker identities or references needed to interpret the stated reason."
17
+ },
18
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
19
+ },
20
+ "required": ["activity", "statement"]
21
+ },
22
+ "resultSchema": {
23
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
24
+ "type": "object",
25
+ "properties": {
26
+ "model": { "type": "string" },
27
+ "usage": {
28
+ "type": "object",
29
+ "properties": {
30
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
31
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
32
+ },
33
+ "required": ["input_tokens", "output_tokens"],
34
+ "additionalProperties": false
35
+ },
36
+ "status": { "type": "string", "enum": ["ready", "review"] },
37
+ "verdict": {
38
+ "type": "string",
39
+ "enum": ["intrinsic", "extrinsic", "mixed", "not_stated", "unclear"]
40
+ },
41
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
42
+ "probabilities": {
43
+ "type": "object",
44
+ "propertyNames": {
45
+ "type": "string",
46
+ "enum": ["intrinsic", "extrinsic", "mixed", "not_stated", "unclear"]
47
+ },
48
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
49
+ "required": ["intrinsic", "extrinsic", "mixed", "not_stated", "unclear"]
50
+ }
51
+ },
52
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
53
+ "additionalProperties": false
54
+ }
55
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "text": { "type": "string", "description": "The wording presented to the decision maker." },
7
+ "outcome": {
8
+ "type": "string",
9
+ "description": "One focal outcome, including whose outcome it is and what counts as a benefit or harm."
10
+ },
11
+ "context": {
12
+ "type": "string",
13
+ "description": "Supplied references or baseline information needed to interpret the wording."
14
+ },
15
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
16
+ },
17
+ "required": ["text", "outcome"]
18
+ },
19
+ "resultSchema": {
20
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
21
+ "type": "object",
22
+ "properties": {
23
+ "model": { "type": "string" },
24
+ "usage": {
25
+ "type": "object",
26
+ "properties": {
27
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
28
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
29
+ },
30
+ "required": ["input_tokens", "output_tokens"],
31
+ "additionalProperties": false
32
+ },
33
+ "status": { "type": "string", "enum": ["ready", "review"] },
34
+ "verdict": { "type": "string", "enum": ["gain", "loss", "mixed", "neutral", "unclear"] },
35
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
36
+ "probabilities": {
37
+ "type": "object",
38
+ "propertyNames": {
39
+ "type": "string",
40
+ "enum": ["gain", "loss", "mixed", "neutral", "unclear"]
41
+ },
42
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
43
+ "required": ["gain", "loss", "mixed", "neutral", "unclear"]
44
+ }
45
+ },
46
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
47
+ "additionalProperties": false
48
+ }
49
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "question": {
7
+ "type": "string",
8
+ "description": "One question, including any framing visible to the respondent."
9
+ },
10
+ "claim": {
11
+ "type": "string",
12
+ "description": "One specific proposition to check for an assumption in the question."
13
+ },
14
+ "context": {
15
+ "type": "string",
16
+ "description": "Supplied context needed to resolve references and interpret the question and claim."
17
+ },
18
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
19
+ },
20
+ "required": ["question", "claim"]
21
+ },
22
+ "resultSchema": {
23
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
24
+ "type": "object",
25
+ "properties": {
26
+ "model": { "type": "string" },
27
+ "usage": {
28
+ "type": "object",
29
+ "properties": {
30
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
31
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
32
+ },
33
+ "required": ["input_tokens", "output_tokens"],
34
+ "additionalProperties": false
35
+ },
36
+ "status": { "type": "string", "enum": ["ready", "review"] },
37
+ "verdict": { "type": "string", "enum": ["assumed", "not_assumed", "unclear"] },
38
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
39
+ "probabilities": {
40
+ "type": "object",
41
+ "propertyNames": { "type": "string", "enum": ["assumed", "not_assumed", "unclear"] },
42
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
43
+ "required": ["assumed", "not_assumed", "unclear"]
44
+ }
45
+ },
46
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
47
+ "additionalProperties": false
48
+ }
49
+ }
@@ -11,6 +11,7 @@ export const recipeLoaders = {
11
11
  'audience-fit': () => import('../../recipes/audience-fit/index.js').then((recipe) => (input, options) => recipe.audienceFit(recipe.audienceFitInputSchema.parse(input), options)),
12
12
  'cache-match': () => import('../../recipes/cache-match/index.js').then((recipe) => (input, options) => recipe.cacheMatch(recipe.cacheMatchInputSchema.parse(input), options)),
13
13
  'cancellation-check': () => import('../../recipes/cancellation-check/index.js').then((recipe) => (input, options) => recipe.cancellationCheck(recipe.cancellationCheckInputSchema.parse(input), options)),
14
+ 'causal-attribution': () => import('../../recipes/causal-attribution/index.js').then((recipe) => (input, options) => recipe.causalAttribution(recipe.causalAttributionInputSchema.parse(input), options)),
14
15
  'certainty-match': () => import('../../recipes/certainty-match/index.js').then((recipe) => (input, options) => recipe.certaintyMatch(recipe.certaintyMatchInputSchema.parse(input), options)),
15
16
  'change-meaning': () => import('../../recipes/change-meaning/index.js').then((recipe) => (input, options) => recipe.changeMeaning(recipe.changeMeaningInputSchema.parse(input), options)),
16
17
  'checkers-move': () => import('../../recipes/checkers-move/index.js').then((recipe) => (input, options) => recipe.checkersMove(recipe.checkersMoveInputSchema.parse(input), options)),
@@ -36,20 +37,26 @@ export const recipeLoaders = {
36
37
  'followup-link': () => import('../../recipes/followup-link/index.js').then((recipe) => (input, options) => recipe.followupLink(recipe.followupLinkInputSchema.parse(input), options)),
37
38
  'freshness-needed': () => import('../../recipes/freshness-needed/index.js').then((recipe) => (input, options) => recipe.freshnessNeeded(recipe.freshnessNeededInputSchema.parse(input), options)),
38
39
  'frustration-signal': () => import('../../recipes/frustration-signal/index.js').then((recipe) => (input, options) => recipe.frustrationSignal(recipe.frustrationSignalInputSchema.parse(input), options)),
40
+ 'game-action': () => import('../../recipes/game-action/index.js').then((recipe) => (input, options) => recipe.gameAction(recipe.gameActionInputSchema.parse(input), options)),
39
41
  handoff: () => import('../../recipes/handoff/index.js').then((recipe) => (input, options) => recipe.handoff(recipe.handoffInputSchema.parse(input), options)),
40
42
  'incident-match': () => import('../../recipes/incident-match/index.js').then((recipe) => (input, options) => recipe.incidentMatch(recipe.incidentMatchInputSchema.parse(input), options)),
41
43
  'instruction-conflict': () => import('../../recipes/instruction-conflict/index.js').then((recipe) => (input, options) => recipe.instructionConflict(recipe.instructionConflictInputSchema.parse(input), options)),
42
44
  'instruction-fit': () => import('../../recipes/instruction-fit/index.js').then((recipe) => (input, options) => recipe.instructionFit(recipe.instructionFitInputSchema.parse(input), options)),
43
45
  'intent-change': () => import('../../recipes/intent-change/index.js').then((recipe) => (input, options) => recipe.intentChange(recipe.intentChangeInputSchema.parse(input), options)),
44
46
  'issue-impact': () => import('../../recipes/issue-impact/index.js').then((recipe) => (input, options) => recipe.issueImpact(recipe.issueImpactInputSchema.parse(input), options)),
47
+ 'issue-recurrence': () => import('../../recipes/issue-recurrence/index.js').then((recipe) => (input, options) => recipe.issueRecurrence(recipe.issueRecurrenceInputSchema.parse(input), options)),
45
48
  'memory-relation': () => import('../../recipes/memory-relation/index.js').then((recipe) => (input, options) => recipe.memoryRelation(recipe.memoryRelationInputSchema.parse(input), options)),
46
49
  'memory-scope': () => import('../../recipes/memory-scope/index.js').then((recipe) => (input, options) => recipe.memoryScope(recipe.memoryScopeInputSchema.parse(input), options)),
50
+ 'memory-subject': () => import('../../recipes/memory-subject/index.js').then((recipe) => (input, options) => recipe.memorySubject(recipe.memorySubjectInputSchema.parse(input), options)),
47
51
  'memory-value': () => import('../../recipes/memory-value/index.js').then((recipe) => (input, options) => recipe.memoryValue(recipe.memoryValueInputSchema.parse(input), options)),
52
+ 'motivation-source': () => import('../../recipes/motivation-source/index.js').then((recipe) => (input, options) => recipe.motivationSource(recipe.motivationSourceInputSchema.parse(input), options)),
53
+ 'outcome-framing': () => import('../../recipes/outcome-framing/index.js').then((recipe) => (input, options) => recipe.outcomeFraming(recipe.outcomeFramingInputSchema.parse(input), options)),
48
54
  'passage-duplicate': () => import('../../recipes/passage-duplicate/index.js').then((recipe) => (input, options) => recipe.passageDuplicate(recipe.passageDuplicateInputSchema.parse(input), options)),
49
55
  'preference-kind': () => import('../../recipes/preference-kind/index.js').then((recipe) => (input, options) => recipe.preferenceKind(recipe.preferenceKindInputSchema.parse(input), options)),
50
56
  'promise-check': () => import('../../recipes/promise-check/index.js').then((recipe) => (input, options) => recipe.promiseCheck(recipe.promiseCheckInputSchema.parse(input), options)),
51
57
  'query-equivalence': () => import('../../recipes/query-equivalence/index.js').then((recipe) => (input, options) => recipe.queryEquivalence(recipe.queryEquivalenceInputSchema.parse(input), options)),
52
58
  'query-specificity': () => import('../../recipes/query-specificity/index.js').then((recipe) => (input, options) => recipe.querySpecificity(recipe.querySpecificityInputSchema.parse(input), options)),
59
+ 'question-assumption': () => import('../../recipes/question-assumption/index.js').then((recipe) => (input, options) => recipe.questionAssumption(recipe.questionAssumptionInputSchema.parse(input), options)),
53
60
  'question-leading': () => import('../../recipes/question-leading/index.js').then((recipe) => (input, options) => recipe.questionLeading(recipe.questionLeadingInputSchema.parse(input), options)),
54
61
  'reference-resolve': () => import('../../recipes/reference-resolve/index.js').then((recipe) => (input, options) => recipe.referenceResolve(recipe.referenceResolveInputSchema.parse(input), options)),
55
62
  'repeated-attempt': () => import('../../recipes/repeated-attempt/index.js').then((recipe) => (input, options) => recipe.repeatedAttempt(recipe.repeatedAttemptInputSchema.parse(input), options)),