@agentguard-run/spend 0.8.0 → 0.10.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 (61) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/bindings/anthropic.js +18 -0
  3. package/dist/bindings/anthropic.js.map +1 -1
  4. package/dist/bindings/bedrock.js +9 -0
  5. package/dist/bindings/bedrock.js.map +1 -1
  6. package/dist/byo/index.d.ts +33 -0
  7. package/dist/byo/index.d.ts.map +1 -0
  8. package/dist/byo/index.js +344 -0
  9. package/dist/byo/index.js.map +1 -0
  10. package/dist/cli/byo.d.ts +4 -0
  11. package/dist/cli/byo.d.ts.map +1 -0
  12. package/dist/cli/byo.js +118 -0
  13. package/dist/cli/byo.js.map +1 -0
  14. package/dist/cli/init.d.ts.map +1 -1
  15. package/dist/cli/init.js +5 -0
  16. package/dist/cli/init.js.map +1 -1
  17. package/dist/cli/main.d.ts.map +1 -1
  18. package/dist/cli/main.js +14 -1
  19. package/dist/cli/main.js.map +1 -1
  20. package/dist/governance.d.ts +77 -0
  21. package/dist/governance.d.ts.map +1 -0
  22. package/dist/governance.js +283 -0
  23. package/dist/governance.js.map +1 -0
  24. package/dist/index.d.ts +4 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +4 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/outcomes/runtime.js +7 -0
  29. package/dist/outcomes/runtime.js.map +1 -1
  30. package/dist/outcomes/types.d.ts +9 -0
  31. package/dist/outcomes/types.d.ts.map +1 -1
  32. package/dist/outcomes/types.js.map +1 -1
  33. package/dist/router.d.ts +8 -1
  34. package/dist/router.d.ts.map +1 -1
  35. package/dist/router.js +932 -229
  36. package/dist/router.js.map +1 -1
  37. package/dist/spend-guard.d.ts +19 -0
  38. package/dist/spend-guard.d.ts.map +1 -1
  39. package/dist/spend-guard.js +75 -1
  40. package/dist/spend-guard.js.map +1 -1
  41. package/dist/types.d.ts +21 -1
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/verticals/catalogs.d.ts +62 -0
  44. package/dist/verticals/catalogs.d.ts.map +1 -0
  45. package/dist/verticals/catalogs.js +3936 -0
  46. package/dist/verticals/catalogs.js.map +1 -0
  47. package/dist/verticals/index.d.ts +2 -0
  48. package/dist/verticals/index.d.ts.map +1 -0
  49. package/dist/verticals/index.js +18 -0
  50. package/dist/verticals/index.js.map +1 -0
  51. package/package.json +21 -2
  52. package/src/bindings/anthropic.ts +21 -0
  53. package/src/bindings/bedrock.ts +10 -0
  54. package/src/byo/index.ts +322 -0
  55. package/src/cli/byo.ts +87 -0
  56. package/src/governance.ts +376 -0
  57. package/src/outcomes/runtime.ts +8 -0
  58. package/src/outcomes/types.ts +9 -0
  59. package/src/router.ts +938 -227
  60. package/src/verticals/catalogs.ts +3967 -0
  61. package/src/verticals/index.ts +1 -0
package/dist/router.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * AgentGuard(TM) Spend: outcome model router.
3
+ * AgentGuard Spend: outcome model router.
4
4
  *
5
5
  * The router is local config-as-data. It never sends prompts, completions,
6
6
  * provider keys, policies, or customer data to AgentGuard infrastructure.
@@ -14,11 +14,12 @@ exports.recommend = recommend;
14
14
  exports.defaultKey = defaultKey;
15
15
  const openrouter_catalog_1 = require("./openrouter-catalog");
16
16
  const DEFAULTS = {
17
- "version": 1,
17
+ "version": 2,
18
18
  "compliance_verticals": [
19
19
  "law",
20
20
  "accounting",
21
- "insurance"
21
+ "insurance",
22
+ "realestate"
22
23
  ],
23
24
  "blocked_origin_prefixes": [
24
25
  "deepseek/",
@@ -32,390 +33,1083 @@ const DEFAULTS = {
32
33
  "ernie/"
33
34
  ],
34
35
  "defaults": {
35
- "law_client_intake_drafter": {
36
+ "law_medical_records_chronology": {
36
37
  "vertical": "law",
37
- "outcome": "client_intake_drafter",
38
+ "outcome": "medical_records_chronology",
39
+ "need": "long-context",
40
+ "effort": "low",
41
+ "reviewer_effort": "high",
42
+ "drafter": "openai/gpt-4.1-nano",
43
+ "reviewer": "anthropic/claude-sonnet-4.6",
44
+ "allowed_models": [
45
+ "openai/gpt-4.1-nano",
46
+ "openai/gpt-oss-120b",
47
+ "openai/gpt-4.1",
48
+ "anthropic/claude-sonnet-4.6",
49
+ "meta-llama/llama-4-scout"
50
+ ],
51
+ "blocked_origins": [
52
+ "CN"
53
+ ],
54
+ "guardrail_tier": "grounded_cite_or_refuse",
55
+ "status": "active"
56
+ },
57
+ "law_deposition_transcript_summary": {
58
+ "vertical": "law",
59
+ "outcome": "deposition_transcript_summary",
60
+ "need": "long-context",
61
+ "effort": "low",
62
+ "reviewer_effort": "high",
63
+ "drafter": "openai/gpt-4.1-nano",
64
+ "reviewer": "anthropic/claude-sonnet-4.6",
65
+ "allowed_models": [
66
+ "openai/gpt-4.1-nano",
67
+ "openai/gpt-oss-120b",
68
+ "openai/gpt-4.1",
69
+ "anthropic/claude-sonnet-4.6",
70
+ "meta-llama/llama-4-scout"
71
+ ],
72
+ "blocked_origins": [
73
+ "CN"
74
+ ],
75
+ "guardrail_tier": "grounded_cite_or_refuse",
76
+ "status": "active"
77
+ },
78
+ "law_billing_time_entry_utbms": {
79
+ "vertical": "law",
80
+ "outcome": "billing_time_entry_utbms",
81
+ "need": "structured-reasoning",
82
+ "effort": "low",
83
+ "reviewer_effort": "high",
84
+ "drafter": "openai/gpt-oss-120b",
85
+ "reviewer": "openai/o4-mini",
86
+ "allowed_models": [
87
+ "openai/gpt-oss-120b",
88
+ "openai/gpt-4.1-nano",
89
+ "openai/gpt-5-mini",
90
+ "openai/o4-mini"
91
+ ],
92
+ "blocked_origins": [
93
+ "CN"
94
+ ],
95
+ "guardrail_tier": "grounded_cite_or_refuse",
96
+ "status": "active"
97
+ },
98
+ "law_contract_clause_extraction": {
99
+ "vertical": "law",
100
+ "outcome": "contract_clause_extraction",
38
101
  "need": "drafting",
39
- "drafter": "openai/gpt-5-mini",
102
+ "effort": "medium",
103
+ "reviewer_effort": "high",
104
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
105
+ "reviewer": "anthropic/claude-sonnet-4.6",
106
+ "allowed_models": [
107
+ "mistralai/mistral-small-3.2-24b-instruct",
108
+ "openai/gpt-oss-120b",
109
+ "openai/gpt-5-mini",
110
+ "anthropic/claude-haiku-4.5",
111
+ "anthropic/claude-sonnet-4.6"
112
+ ],
113
+ "blocked_origins": [
114
+ "CN"
115
+ ],
116
+ "guardrail_tier": "reviewer_required",
117
+ "status": "specced"
118
+ },
119
+ "law_discovery_response_shell": {
120
+ "vertical": "law",
121
+ "outcome": "discovery_response_shell",
122
+ "need": "drafting",
123
+ "effort": "medium",
124
+ "reviewer_effort": "high",
125
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
126
+ "reviewer": "anthropic/claude-sonnet-4.6",
127
+ "allowed_models": [
128
+ "mistralai/mistral-small-3.2-24b-instruct",
129
+ "openai/gpt-oss-120b",
130
+ "openai/gpt-5-mini",
131
+ "anthropic/claude-haiku-4.5",
132
+ "anthropic/claude-sonnet-4.6"
133
+ ],
134
+ "blocked_origins": [
135
+ "CN"
136
+ ],
137
+ "guardrail_tier": "reviewer_required",
138
+ "status": "specced"
139
+ },
140
+ "law_privilege_log_drafting": {
141
+ "vertical": "law",
142
+ "outcome": "privilege_log_drafting",
143
+ "need": "drafting",
144
+ "effort": "medium",
145
+ "reviewer_effort": "high",
146
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
147
+ "reviewer": "anthropic/claude-sonnet-4.6",
148
+ "allowed_models": [
149
+ "mistralai/mistral-small-3.2-24b-instruct",
150
+ "openai/gpt-oss-120b",
151
+ "openai/gpt-5-mini",
152
+ "anthropic/claude-haiku-4.5",
153
+ "anthropic/claude-sonnet-4.6"
154
+ ],
155
+ "blocked_origins": [
156
+ "CN"
157
+ ],
158
+ "guardrail_tier": "reviewer_required",
159
+ "status": "specced"
160
+ },
161
+ "law_client_intake_conflict_data_assembly": {
162
+ "vertical": "law",
163
+ "outcome": "client_intake_conflict_data_assembly",
164
+ "need": "drafting",
165
+ "effort": "medium",
166
+ "reviewer_effort": "high",
167
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
168
+ "reviewer": "anthropic/claude-sonnet-4.6",
169
+ "allowed_models": [
170
+ "mistralai/mistral-small-3.2-24b-instruct",
171
+ "openai/gpt-oss-120b",
172
+ "openai/gpt-5-mini",
173
+ "anthropic/claude-haiku-4.5",
174
+ "anthropic/claude-sonnet-4.6"
175
+ ],
176
+ "blocked_origins": [
177
+ "CN"
178
+ ],
179
+ "guardrail_tier": "reviewer_required",
180
+ "status": "specced"
181
+ },
182
+ "law_pi_demand_letter_draft": {
183
+ "vertical": "law",
184
+ "outcome": "pi_demand_letter_draft",
185
+ "need": "drafting",
186
+ "effort": "medium",
187
+ "reviewer_effort": "high",
188
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
189
+ "reviewer": "anthropic/claude-sonnet-4.6",
190
+ "allowed_models": [
191
+ "mistralai/mistral-small-3.2-24b-instruct",
192
+ "openai/gpt-oss-120b",
193
+ "openai/gpt-5-mini",
194
+ "anthropic/claude-haiku-4.5",
195
+ "anthropic/claude-sonnet-4.6"
196
+ ],
197
+ "blocked_origins": [
198
+ "CN"
199
+ ],
200
+ "guardrail_tier": "human_of_record",
201
+ "status": "specced"
202
+ },
203
+ "law_estate_planning_doc_assembly": {
204
+ "vertical": "law",
205
+ "outcome": "estate_planning_doc_assembly",
206
+ "need": "drafting",
207
+ "effort": "medium",
208
+ "reviewer_effort": "high",
209
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
210
+ "reviewer": "anthropic/claude-sonnet-4.6",
211
+ "allowed_models": [
212
+ "mistralai/mistral-small-3.2-24b-instruct",
213
+ "openai/gpt-oss-120b",
214
+ "openai/gpt-5-mini",
215
+ "anthropic/claude-haiku-4.5",
216
+ "anthropic/claude-sonnet-4.6"
217
+ ],
218
+ "blocked_origins": [
219
+ "CN"
220
+ ],
221
+ "guardrail_tier": "human_of_record",
222
+ "status": "specced"
223
+ },
224
+ "law_immigration_form_population": {
225
+ "vertical": "law",
226
+ "outcome": "immigration_form_population",
227
+ "need": "drafting",
228
+ "effort": "medium",
229
+ "reviewer_effort": "high",
230
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
231
+ "reviewer": "anthropic/claude-sonnet-4.6",
232
+ "allowed_models": [
233
+ "mistralai/mistral-small-3.2-24b-instruct",
234
+ "openai/gpt-oss-120b",
235
+ "openai/gpt-5-mini",
236
+ "anthropic/claude-haiku-4.5",
237
+ "anthropic/claude-sonnet-4.6"
238
+ ],
239
+ "blocked_origins": [
240
+ "CN"
241
+ ],
242
+ "guardrail_tier": "human_of_record",
243
+ "status": "specced"
244
+ },
245
+ "law_pleading_fact_section_synthesis": {
246
+ "vertical": "law",
247
+ "outcome": "pleading_fact_section_synthesis",
248
+ "need": "drafting",
249
+ "effort": "medium",
250
+ "reviewer_effort": "high",
251
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
252
+ "reviewer": "anthropic/claude-sonnet-4.6",
253
+ "allowed_models": [
254
+ "mistralai/mistral-small-3.2-24b-instruct",
255
+ "openai/gpt-oss-120b",
256
+ "openai/gpt-5-mini",
257
+ "anthropic/claude-haiku-4.5",
258
+ "anthropic/claude-sonnet-4.6"
259
+ ],
260
+ "blocked_origins": [
261
+ "CN"
262
+ ],
263
+ "guardrail_tier": "human_of_record",
264
+ "status": "specced"
265
+ },
266
+ "accounting_transaction_categorization": {
267
+ "vertical": "accounting",
268
+ "outcome": "transaction_categorization",
269
+ "need": "fast-classification",
270
+ "effort": "low",
271
+ "reviewer_effort": "high",
272
+ "drafter": "openai/gpt-oss-120b",
273
+ "reviewer": "openai/gpt-5-mini",
274
+ "allowed_models": [
275
+ "openai/gpt-oss-120b",
276
+ "openai/gpt-4.1-nano",
277
+ "openai/gpt-5-mini",
278
+ "meta-llama/llama-3.1-8b-instruct"
279
+ ],
280
+ "blocked_origins": [
281
+ "CN"
282
+ ],
283
+ "guardrail_tier": "grounded_cite_or_refuse",
284
+ "status": "active"
285
+ },
286
+ "accounting_bank_reconciliation": {
287
+ "vertical": "accounting",
288
+ "outcome": "bank_reconciliation",
289
+ "need": "structured-reasoning",
290
+ "effort": "low",
291
+ "reviewer_effort": "high",
292
+ "drafter": "openai/gpt-oss-120b",
293
+ "reviewer": "openai/o4-mini",
294
+ "allowed_models": [
295
+ "openai/gpt-oss-120b",
296
+ "openai/gpt-4.1-nano",
297
+ "openai/gpt-5-mini",
298
+ "openai/o4-mini"
299
+ ],
300
+ "blocked_origins": [
301
+ "CN"
302
+ ],
303
+ "guardrail_tier": "grounded_cite_or_refuse",
304
+ "status": "active"
305
+ },
306
+ "accounting_ap_source_doc_extraction": {
307
+ "vertical": "accounting",
308
+ "outcome": "ap_source_doc_extraction",
309
+ "need": "vision-document",
310
+ "effort": "low",
311
+ "reviewer_effort": "high",
312
+ "drafter": "openai/gpt-4.1-nano",
313
+ "reviewer": "anthropic/claude-sonnet-4.6",
314
+ "allowed_models": [
315
+ "openai/gpt-4.1-nano",
316
+ "openai/gpt-oss-120b",
317
+ "openai/gpt-4.1",
318
+ "anthropic/claude-sonnet-4.6",
319
+ "meta-llama/llama-4-scout"
320
+ ],
321
+ "blocked_origins": [
322
+ "CN"
323
+ ],
324
+ "guardrail_tier": "grounded_cite_or_refuse",
325
+ "status": "active"
326
+ },
327
+ "accounting_1099_pre_filing_reconciliation": {
328
+ "vertical": "accounting",
329
+ "outcome": "1099_pre_filing_reconciliation",
330
+ "need": "drafting",
331
+ "effort": "medium",
332
+ "reviewer_effort": "high",
333
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
334
+ "reviewer": "anthropic/claude-sonnet-4.6",
335
+ "allowed_models": [
336
+ "mistralai/mistral-small-3.2-24b-instruct",
337
+ "openai/gpt-oss-120b",
338
+ "openai/gpt-5-mini",
339
+ "anthropic/claude-haiku-4.5",
340
+ "anthropic/claude-sonnet-4.6"
341
+ ],
342
+ "blocked_origins": [
343
+ "CN"
344
+ ],
345
+ "guardrail_tier": "reviewer_required",
346
+ "status": "specced"
347
+ },
348
+ "accounting_w9_tin_matching": {
349
+ "vertical": "accounting",
350
+ "outcome": "w9_tin_matching",
351
+ "need": "drafting",
352
+ "effort": "medium",
353
+ "reviewer_effort": "high",
354
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
355
+ "reviewer": "anthropic/claude-sonnet-4.6",
356
+ "allowed_models": [
357
+ "mistralai/mistral-small-3.2-24b-instruct",
358
+ "openai/gpt-oss-120b",
359
+ "openai/gpt-5-mini",
360
+ "anthropic/claude-haiku-4.5",
361
+ "anthropic/claude-sonnet-4.6"
362
+ ],
363
+ "blocked_origins": [
364
+ "CN"
365
+ ],
366
+ "guardrail_tier": "reviewer_required",
367
+ "status": "specced"
368
+ },
369
+ "accounting_payroll_941_reconciliation": {
370
+ "vertical": "accounting",
371
+ "outcome": "payroll_941_reconciliation",
372
+ "need": "drafting",
373
+ "effort": "medium",
374
+ "reviewer_effort": "high",
375
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
376
+ "reviewer": "anthropic/claude-sonnet-4.6",
377
+ "allowed_models": [
378
+ "mistralai/mistral-small-3.2-24b-instruct",
379
+ "openai/gpt-oss-120b",
380
+ "openai/gpt-5-mini",
381
+ "anthropic/claude-haiku-4.5",
382
+ "anthropic/claude-sonnet-4.6"
383
+ ],
384
+ "blocked_origins": [
385
+ "CN"
386
+ ],
387
+ "guardrail_tier": "reviewer_required",
388
+ "status": "specced"
389
+ },
390
+ "accounting_new_client_coa_mapping": {
391
+ "vertical": "accounting",
392
+ "outcome": "new_client_coa_mapping",
393
+ "need": "drafting",
394
+ "effort": "medium",
395
+ "reviewer_effort": "high",
396
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
397
+ "reviewer": "anthropic/claude-sonnet-4.6",
398
+ "allowed_models": [
399
+ "mistralai/mistral-small-3.2-24b-instruct",
400
+ "openai/gpt-oss-120b",
401
+ "openai/gpt-5-mini",
402
+ "anthropic/claude-haiku-4.5",
403
+ "anthropic/claude-sonnet-4.6"
404
+ ],
405
+ "blocked_origins": [
406
+ "CN"
407
+ ],
408
+ "guardrail_tier": "reviewer_required",
409
+ "status": "specced"
410
+ },
411
+ "accounting_trial_balance_comparison": {
412
+ "vertical": "accounting",
413
+ "outcome": "trial_balance_comparison",
414
+ "need": "drafting",
415
+ "effort": "medium",
416
+ "reviewer_effort": "high",
417
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
418
+ "reviewer": "anthropic/claude-sonnet-4.6",
419
+ "allowed_models": [
420
+ "mistralai/mistral-small-3.2-24b-instruct",
421
+ "openai/gpt-oss-120b",
422
+ "openai/gpt-5-mini",
423
+ "anthropic/claude-haiku-4.5",
424
+ "anthropic/claude-sonnet-4.6"
425
+ ],
426
+ "blocked_origins": [
427
+ "CN"
428
+ ],
429
+ "guardrail_tier": "reviewer_required",
430
+ "status": "specced"
431
+ },
432
+ "accounting_sales_tax_return_data_prep": {
433
+ "vertical": "accounting",
434
+ "outcome": "sales_tax_return_data_prep",
435
+ "need": "drafting",
436
+ "effort": "medium",
437
+ "reviewer_effort": "high",
438
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
439
+ "reviewer": "anthropic/claude-sonnet-4.6",
440
+ "allowed_models": [
441
+ "mistralai/mistral-small-3.2-24b-instruct",
442
+ "openai/gpt-oss-120b",
443
+ "openai/gpt-5-mini",
444
+ "anthropic/claude-haiku-4.5",
445
+ "anthropic/claude-sonnet-4.6"
446
+ ],
447
+ "blocked_origins": [
448
+ "CN"
449
+ ],
450
+ "guardrail_tier": "human_of_record",
451
+ "status": "specced"
452
+ },
453
+ "accounting_month_end_close_package": {
454
+ "vertical": "accounting",
455
+ "outcome": "month_end_close_package",
456
+ "need": "drafting",
457
+ "effort": "medium",
458
+ "reviewer_effort": "high",
459
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
460
+ "reviewer": "anthropic/claude-sonnet-4.6",
461
+ "allowed_models": [
462
+ "mistralai/mistral-small-3.2-24b-instruct",
463
+ "openai/gpt-oss-120b",
464
+ "openai/gpt-5-mini",
465
+ "anthropic/claude-haiku-4.5",
466
+ "anthropic/claude-sonnet-4.6"
467
+ ],
468
+ "blocked_origins": [
469
+ "CN"
470
+ ],
471
+ "guardrail_tier": "human_of_record",
472
+ "status": "specced"
473
+ },
474
+ "insurance_policy_checking_variance": {
475
+ "vertical": "insurance",
476
+ "outcome": "policy_checking_variance",
477
+ "need": "long-context",
478
+ "effort": "high",
479
+ "reviewer_effort": "xhigh",
480
+ "drafter": "openai/gpt-4.1-nano",
481
+ "reviewer": "anthropic/claude-sonnet-4.6",
482
+ "allowed_models": [
483
+ "openai/gpt-4.1-nano",
484
+ "openai/gpt-oss-120b",
485
+ "openai/gpt-4.1",
486
+ "anthropic/claude-sonnet-4.6",
487
+ "meta-llama/llama-4-scout"
488
+ ],
489
+ "blocked_origins": [
490
+ "CN"
491
+ ],
492
+ "guardrail_tier": "reviewer_required",
493
+ "status": "active"
494
+ },
495
+ "insurance_submission_acord_extraction": {
496
+ "vertical": "insurance",
497
+ "outcome": "submission_acord_extraction",
498
+ "need": "vision-document",
499
+ "effort": "medium",
500
+ "reviewer_effort": "high",
501
+ "drafter": "openai/gpt-4.1-nano",
502
+ "reviewer": "anthropic/claude-sonnet-4.6",
503
+ "allowed_models": [
504
+ "openai/gpt-4.1-nano",
505
+ "openai/gpt-oss-120b",
506
+ "openai/gpt-4.1",
507
+ "anthropic/claude-sonnet-4.6",
508
+ "meta-llama/llama-4-scout"
509
+ ],
510
+ "blocked_origins": [
511
+ "CN"
512
+ ],
513
+ "guardrail_tier": "reviewer_required",
514
+ "status": "active"
515
+ },
516
+ "insurance_commission_reconciliation": {
517
+ "vertical": "insurance",
518
+ "outcome": "commission_reconciliation",
519
+ "need": "structured-reasoning",
520
+ "effort": "low",
521
+ "reviewer_effort": "high",
522
+ "drafter": "openai/gpt-oss-120b",
523
+ "reviewer": "openai/o4-mini",
524
+ "allowed_models": [
525
+ "openai/gpt-oss-120b",
526
+ "openai/gpt-4.1-nano",
527
+ "openai/gpt-5-mini",
528
+ "openai/o4-mini"
529
+ ],
530
+ "blocked_origins": [
531
+ "CN"
532
+ ],
533
+ "guardrail_tier": "grounded_cite_or_refuse",
534
+ "status": "active"
535
+ },
536
+ "insurance_loss_run_extraction_summary": {
537
+ "vertical": "insurance",
538
+ "outcome": "loss_run_extraction_summary",
539
+ "need": "drafting",
540
+ "effort": "medium",
541
+ "reviewer_effort": "high",
542
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
543
+ "reviewer": "anthropic/claude-sonnet-4.6",
544
+ "allowed_models": [
545
+ "mistralai/mistral-small-3.2-24b-instruct",
546
+ "openai/gpt-oss-120b",
547
+ "openai/gpt-5-mini",
548
+ "anthropic/claude-haiku-4.5",
549
+ "anthropic/claude-sonnet-4.6"
550
+ ],
551
+ "blocked_origins": [
552
+ "CN"
553
+ ],
554
+ "guardrail_tier": "reviewer_required",
555
+ "status": "specced"
556
+ },
557
+ "insurance_dec_page_extraction_to_ams": {
558
+ "vertical": "insurance",
559
+ "outcome": "dec_page_extraction_to_ams",
560
+ "need": "drafting",
561
+ "effort": "medium",
562
+ "reviewer_effort": "high",
563
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
564
+ "reviewer": "anthropic/claude-sonnet-4.6",
565
+ "allowed_models": [
566
+ "mistralai/mistral-small-3.2-24b-instruct",
567
+ "openai/gpt-oss-120b",
568
+ "openai/gpt-5-mini",
569
+ "anthropic/claude-haiku-4.5",
570
+ "anthropic/claude-sonnet-4.6"
571
+ ],
572
+ "blocked_origins": [
573
+ "CN"
574
+ ],
575
+ "guardrail_tier": "reviewer_required",
576
+ "status": "specced"
577
+ },
578
+ "insurance_endorsement_change_request_confirmation": {
579
+ "vertical": "insurance",
580
+ "outcome": "endorsement_change_request_confirmation",
581
+ "need": "drafting",
582
+ "effort": "medium",
583
+ "reviewer_effort": "high",
584
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
585
+ "reviewer": "anthropic/claude-sonnet-4.6",
586
+ "allowed_models": [
587
+ "mistralai/mistral-small-3.2-24b-instruct",
588
+ "openai/gpt-oss-120b",
589
+ "openai/gpt-5-mini",
590
+ "anthropic/claude-haiku-4.5",
591
+ "anthropic/claude-sonnet-4.6"
592
+ ],
593
+ "blocked_origins": [
594
+ "CN"
595
+ ],
596
+ "guardrail_tier": "reviewer_required",
597
+ "status": "specced"
598
+ },
599
+ "insurance_renewal_dec_vs_dec_comparison": {
600
+ "vertical": "insurance",
601
+ "outcome": "renewal_dec_vs_dec_comparison",
602
+ "need": "drafting",
603
+ "effort": "medium",
604
+ "reviewer_effort": "high",
605
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
40
606
  "reviewer": "anthropic/claude-sonnet-4.6",
41
607
  "allowed_models": [
42
- "openai/gpt-5-mini",
43
- "openai/gpt-oss-120b",
44
- "meta-llama/llama-3.3-70b-instruct",
45
608
  "mistralai/mistral-small-3.2-24b-instruct",
609
+ "openai/gpt-oss-120b",
610
+ "openai/gpt-5-mini",
611
+ "anthropic/claude-haiku-4.5",
46
612
  "anthropic/claude-sonnet-4.6"
47
613
  ],
48
614
  "blocked_origins": [
49
615
  "CN"
50
- ]
616
+ ],
617
+ "guardrail_tier": "reviewer_required",
618
+ "status": "specced"
51
619
  },
52
- "law_conflict_check_runner": {
53
- "vertical": "law",
54
- "outcome": "conflict_check_runner",
55
- "need": "structured-reasoning",
56
- "drafter": "openai/gpt-5-mini",
57
- "reviewer": "openai/gpt-5.1",
620
+ "insurance_appetite_triage_uploaded_guides": {
621
+ "vertical": "insurance",
622
+ "outcome": "appetite_triage_uploaded_guides",
623
+ "need": "drafting",
624
+ "effort": "medium",
625
+ "reviewer_effort": "high",
626
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
627
+ "reviewer": "anthropic/claude-sonnet-4.6",
58
628
  "allowed_models": [
59
- "openai/gpt-5-mini",
629
+ "mistralai/mistral-small-3.2-24b-instruct",
60
630
  "openai/gpt-oss-120b",
61
- "openai/gpt-4.1-nano",
62
- "openai/gpt-5.1"
631
+ "openai/gpt-5-mini",
632
+ "anthropic/claude-haiku-4.5",
633
+ "anthropic/claude-sonnet-4.6"
63
634
  ],
64
635
  "blocked_origins": [
65
636
  "CN"
66
- ]
637
+ ],
638
+ "guardrail_tier": "reviewer_required",
639
+ "status": "specced"
67
640
  },
68
- "law_billable_hour_reconciler": {
69
- "vertical": "law",
70
- "outcome": "billable_hour_reconciler",
71
- "need": "structured-reasoning",
72
- "drafter": "openai/gpt-4.1-nano",
73
- "reviewer": "openai/o4-mini",
641
+ "insurance_third_party_coi_verification": {
642
+ "vertical": "insurance",
643
+ "outcome": "third_party_coi_verification",
644
+ "need": "drafting",
645
+ "effort": "medium",
646
+ "reviewer_effort": "high",
647
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
648
+ "reviewer": "anthropic/claude-sonnet-4.6",
74
649
  "allowed_models": [
75
- "openai/gpt-4.1-nano",
650
+ "mistralai/mistral-small-3.2-24b-instruct",
76
651
  "openai/gpt-oss-120b",
77
- "openai/o4-mini"
652
+ "openai/gpt-5-mini",
653
+ "anthropic/claude-haiku-4.5",
654
+ "anthropic/claude-sonnet-4.6"
78
655
  ],
79
656
  "blocked_origins": [
80
657
  "CN"
81
- ]
658
+ ],
659
+ "guardrail_tier": "reviewer_required",
660
+ "status": "specced"
82
661
  },
83
- "law_court_filing_deadline_tracker": {
84
- "vertical": "law",
85
- "outcome": "court_filing_deadline_tracker",
86
- "need": "fast-classification",
87
- "drafter": "openai/gpt-5-nano",
88
- "reviewer": "openai/gpt-5-mini",
662
+ "insurance_coi_drafting_acord25": {
663
+ "vertical": "insurance",
664
+ "outcome": "coi_drafting_acord25",
665
+ "need": "drafting",
666
+ "effort": "medium",
667
+ "reviewer_effort": "high",
668
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
669
+ "reviewer": "anthropic/claude-sonnet-4.6",
89
670
  "allowed_models": [
90
- "openai/gpt-5-nano",
91
- "meta-llama/llama-3.1-8b-instruct",
92
- "openai/gpt-5-mini"
671
+ "mistralai/mistral-small-3.2-24b-instruct",
672
+ "openai/gpt-oss-120b",
673
+ "openai/gpt-5-mini",
674
+ "anthropic/claude-haiku-4.5",
675
+ "anthropic/claude-sonnet-4.6"
93
676
  ],
94
677
  "blocked_origins": [
95
678
  "CN"
96
- ]
679
+ ],
680
+ "guardrail_tier": "human_of_record",
681
+ "status": "specced"
97
682
  },
98
- "law_discovery_doc_summarizer": {
99
- "vertical": "law",
100
- "outcome": "discovery_doc_summarizer",
101
- "need": "long-context",
102
- "drafter": "openai/gpt-4.1",
683
+ "insurance_fnol_intake": {
684
+ "vertical": "insurance",
685
+ "outcome": "fnol_intake",
686
+ "need": "drafting",
687
+ "effort": "medium",
688
+ "reviewer_effort": "high",
689
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
103
690
  "reviewer": "anthropic/claude-sonnet-4.6",
104
- "vision_model": "openai/gpt-4.1-mini",
105
691
  "allowed_models": [
106
- "openai/gpt-4.1",
107
- "meta-llama/llama-4-scout",
108
- "openai/gpt-4.1-mini",
692
+ "mistralai/mistral-small-3.2-24b-instruct",
693
+ "openai/gpt-oss-120b",
694
+ "openai/gpt-5-mini",
695
+ "anthropic/claude-haiku-4.5",
109
696
  "anthropic/claude-sonnet-4.6"
110
697
  ],
111
698
  "blocked_origins": [
112
699
  "CN"
113
- ]
700
+ ],
701
+ "guardrail_tier": "human_of_record",
702
+ "status": "specced"
114
703
  },
115
- "accounting_bank_reconciliation_drafter": {
116
- "vertical": "accounting",
117
- "outcome": "bank_reconciliation_drafter",
118
- "need": "structured-reasoning",
119
- "drafter": "openai/gpt-5-mini",
120
- "reviewer": "openai/gpt-5.1",
704
+ "realestate_transaction_deadline_extraction": {
705
+ "vertical": "realestate",
706
+ "outcome": "transaction_deadline_extraction",
707
+ "need": "long-context",
708
+ "effort": "low",
709
+ "reviewer_effort": "high",
710
+ "drafter": "openai/gpt-4.1-nano",
711
+ "reviewer": "anthropic/claude-sonnet-4.6",
121
712
  "allowed_models": [
122
- "openai/gpt-5-mini",
123
- "openai/gpt-oss-120b",
124
713
  "openai/gpt-4.1-nano",
125
- "openai/gpt-5.1"
714
+ "openai/gpt-oss-120b",
715
+ "openai/gpt-4.1",
716
+ "anthropic/claude-sonnet-4.6",
717
+ "meta-llama/llama-4-scout"
126
718
  ],
127
719
  "blocked_origins": [
128
720
  "CN"
129
- ]
721
+ ],
722
+ "guardrail_tier": "grounded_cite_or_refuse",
723
+ "status": "active"
130
724
  },
131
- "accounting_1099_prep_agent": {
132
- "vertical": "accounting",
133
- "outcome": "1099_prep_agent",
134
- "need": "structured-reasoning",
725
+ "realestate_lease_abstraction": {
726
+ "vertical": "realestate",
727
+ "outcome": "lease_abstraction",
728
+ "need": "long-context",
729
+ "effort": "low",
730
+ "reviewer_effort": "high",
135
731
  "drafter": "openai/gpt-4.1-nano",
136
- "reviewer": "openai/o4-mini",
137
- "vision_model": "mistralai/mistral-small-3.2-24b-instruct",
732
+ "reviewer": "anthropic/claude-sonnet-4.6",
138
733
  "allowed_models": [
139
734
  "openai/gpt-4.1-nano",
140
735
  "openai/gpt-oss-120b",
141
- "mistralai/mistral-small-3.2-24b-instruct",
142
- "openai/o4-mini"
736
+ "openai/gpt-4.1",
737
+ "anthropic/claude-sonnet-4.6",
738
+ "meta-llama/llama-4-scout"
143
739
  ],
144
740
  "blocked_origins": [
145
741
  "CN"
146
- ]
742
+ ],
743
+ "guardrail_tier": "grounded_cite_or_refuse",
744
+ "status": "active"
147
745
  },
148
- "accounting_client_deliverable_drafter": {
149
- "vertical": "accounting",
150
- "outcome": "client_deliverable_drafter",
151
- "need": "drafting",
152
- "drafter": "anthropic/claude-haiku-4.5",
153
- "reviewer": "anthropic/claude-sonnet-4.6",
746
+ "realestate_fair_housing_copy_scanner": {
747
+ "vertical": "realestate",
748
+ "outcome": "fair_housing_copy_scanner",
749
+ "need": "fast-classification",
750
+ "effort": "medium",
751
+ "reviewer_effort": "high",
752
+ "drafter": "openai/gpt-oss-120b",
753
+ "reviewer": "openai/gpt-5-mini",
154
754
  "allowed_models": [
155
- "anthropic/claude-haiku-4.5",
755
+ "openai/gpt-oss-120b",
756
+ "openai/gpt-4.1-nano",
156
757
  "openai/gpt-5-mini",
157
- "meta-llama/llama-3.3-70b-instruct",
158
- "anthropic/claude-sonnet-4.6"
758
+ "meta-llama/llama-3.1-8b-instruct"
159
759
  ],
160
760
  "blocked_origins": [
161
761
  "CN"
162
- ]
762
+ ],
763
+ "guardrail_tier": "reviewer_required",
764
+ "status": "active"
163
765
  },
164
- "accounting_audit_trail_compiler": {
165
- "vertical": "accounting",
166
- "outcome": "audit_trail_compiler",
167
- "need": "long-context",
168
- "drafter": "openai/gpt-4.1",
169
- "reviewer": "anthropic/claude-sonnet-4.6",
766
+ "realestate_owner_monthly_statement_narrative": {
767
+ "vertical": "realestate",
768
+ "outcome": "owner_monthly_statement_narrative",
769
+ "need": "structured-reasoning",
770
+ "effort": "medium",
771
+ "reviewer_effort": "medium",
772
+ "drafter": "openai/gpt-oss-120b",
773
+ "reviewer": "openai/o4-mini",
170
774
  "allowed_models": [
171
- "openai/gpt-4.1",
172
- "meta-llama/llama-4-scout",
173
- "anthropic/claude-sonnet-4.6"
775
+ "openai/gpt-oss-120b",
776
+ "openai/gpt-4.1-nano",
777
+ "openai/gpt-5-mini",
778
+ "openai/o4-mini"
174
779
  ],
175
780
  "blocked_origins": [
176
781
  "CN"
177
- ]
782
+ ],
783
+ "guardrail_tier": "grounded_cite_or_refuse",
784
+ "status": "specced"
178
785
  },
179
- "accounting_sales_tax_filing_draft": {
180
- "vertical": "accounting",
181
- "outcome": "sales_tax_filing_draft",
786
+ "realestate_pm_ap_invoice_extraction": {
787
+ "vertical": "realestate",
788
+ "outcome": "pm_ap_invoice_extraction",
182
789
  "need": "structured-reasoning",
183
- "drafter": "openai/gpt-5-mini",
790
+ "effort": "medium",
791
+ "reviewer_effort": "medium",
792
+ "drafter": "openai/gpt-oss-120b",
184
793
  "reviewer": "openai/o4-mini",
185
794
  "allowed_models": [
186
- "openai/gpt-5-mini",
187
795
  "openai/gpt-oss-120b",
188
796
  "openai/gpt-4.1-nano",
797
+ "openai/gpt-5-mini",
189
798
  "openai/o4-mini"
190
799
  ],
191
800
  "blocked_origins": [
192
801
  "CN"
193
- ]
802
+ ],
803
+ "guardrail_tier": "grounded_cite_or_refuse",
804
+ "status": "specced"
194
805
  },
195
- "insurance_policy_renewal_drafter": {
196
- "vertical": "insurance",
197
- "outcome": "policy_renewal_drafter",
198
- "need": "drafting",
199
- "drafter": "openai/gpt-5-mini",
200
- "reviewer": "anthropic/claude-sonnet-4.6",
806
+ "realestate_rent_roll_delinquency_summary": {
807
+ "vertical": "realestate",
808
+ "outcome": "rent_roll_delinquency_summary",
809
+ "need": "structured-reasoning",
810
+ "effort": "medium",
811
+ "reviewer_effort": "medium",
812
+ "drafter": "openai/gpt-oss-120b",
813
+ "reviewer": "openai/o4-mini",
201
814
  "allowed_models": [
202
- "openai/gpt-5-mini",
203
815
  "openai/gpt-oss-120b",
204
- "meta-llama/llama-3.3-70b-instruct",
205
- "anthropic/claude-sonnet-4.6"
816
+ "openai/gpt-4.1-nano",
817
+ "openai/gpt-5-mini",
818
+ "openai/o4-mini"
206
819
  ],
207
820
  "blocked_origins": [
208
821
  "CN"
209
- ]
822
+ ],
823
+ "guardrail_tier": "grounded_cite_or_refuse",
824
+ "status": "specced"
210
825
  },
211
- "insurance_carrier_quote_comparison": {
212
- "vertical": "insurance",
213
- "outcome": "carrier_quote_comparison",
826
+ "realestate_maintenance_request_triage": {
827
+ "vertical": "realestate",
828
+ "outcome": "maintenance_request_triage",
214
829
  "need": "structured-reasoning",
215
- "drafter": "openai/gpt-4.1-nano",
216
- "reviewer": "openai/gpt-5.1",
217
- "vision_model": "mistralai/mistral-small-3.2-24b-instruct",
830
+ "effort": "medium",
831
+ "reviewer_effort": "medium",
832
+ "drafter": "openai/gpt-oss-120b",
833
+ "reviewer": "openai/o4-mini",
218
834
  "allowed_models": [
219
- "openai/gpt-4.1-nano",
220
835
  "openai/gpt-oss-120b",
221
- "mistralai/mistral-small-3.2-24b-instruct",
222
- "openai/gpt-5.1"
836
+ "openai/gpt-4.1-nano",
837
+ "openai/gpt-5-mini",
838
+ "openai/o4-mini"
223
839
  ],
224
840
  "blocked_origins": [
225
841
  "CN"
226
- ]
842
+ ],
843
+ "guardrail_tier": "grounded_cite_or_refuse",
844
+ "status": "specced"
227
845
  },
228
- "insurance_coi_issuance_agent": {
229
- "vertical": "insurance",
230
- "outcome": "coi_issuance_agent",
231
- "need": "fast-classification",
232
- "drafter": "openai/gpt-5-nano",
233
- "reviewer": "openai/gpt-5-mini",
234
- "vision_model": "mistralai/mistral-small-3.2-24b-instruct",
846
+ "realestate_tenant_screening_scorecard": {
847
+ "vertical": "realestate",
848
+ "outcome": "tenant_screening_scorecard",
849
+ "need": "drafting",
850
+ "effort": "medium",
851
+ "reviewer_effort": "high",
852
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
853
+ "reviewer": "anthropic/claude-sonnet-4.6",
235
854
  "allowed_models": [
236
- "openai/gpt-5-nano",
237
- "meta-llama/llama-3.1-8b-instruct",
238
855
  "mistralai/mistral-small-3.2-24b-instruct",
239
- "openai/gpt-5-mini"
856
+ "openai/gpt-oss-120b",
857
+ "openai/gpt-5-mini",
858
+ "anthropic/claude-haiku-4.5",
859
+ "anthropic/claude-sonnet-4.6"
240
860
  ],
241
861
  "blocked_origins": [
242
862
  "CN"
243
- ]
863
+ ],
864
+ "guardrail_tier": "reviewer_required",
865
+ "status": "specced"
244
866
  },
245
- "insurance_claims_intake_drafter": {
246
- "vertical": "insurance",
247
- "outcome": "claims_intake_drafter",
867
+ "realestate_adverse_action_fcra_notice": {
868
+ "vertical": "realestate",
869
+ "outcome": "adverse_action_fcra_notice",
248
870
  "need": "drafting",
249
- "drafter": "anthropic/claude-haiku-4.5",
871
+ "effort": "medium",
872
+ "reviewer_effort": "high",
873
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
250
874
  "reviewer": "anthropic/claude-sonnet-4.6",
251
- "vision_model": "amazon/nova-lite-v1",
252
875
  "allowed_models": [
253
- "anthropic/claude-haiku-4.5",
876
+ "mistralai/mistral-small-3.2-24b-instruct",
877
+ "openai/gpt-oss-120b",
254
878
  "openai/gpt-5-mini",
255
- "amazon/nova-lite-v1",
879
+ "anthropic/claude-haiku-4.5",
256
880
  "anthropic/claude-sonnet-4.6"
257
881
  ],
258
882
  "blocked_origins": [
259
883
  "CN"
260
- ]
884
+ ],
885
+ "guardrail_tier": "reviewer_required",
886
+ "status": "specced"
261
887
  },
262
- "insurance_commission_statement_reconciler": {
263
- "vertical": "insurance",
264
- "outcome": "commission_statement_reconciler",
265
- "need": "structured-reasoning",
266
- "drafter": "openai/gpt-4.1-nano",
267
- "reviewer": "openai/o4-mini",
888
+ "realestate_cma_comps_assembly": {
889
+ "vertical": "realestate",
890
+ "outcome": "cma_comps_assembly",
891
+ "need": "drafting",
892
+ "effort": "medium",
893
+ "reviewer_effort": "high",
894
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
895
+ "reviewer": "anthropic/claude-sonnet-4.6",
268
896
  "allowed_models": [
269
- "openai/gpt-4.1-nano",
897
+ "mistralai/mistral-small-3.2-24b-instruct",
270
898
  "openai/gpt-oss-120b",
271
- "openai/o4-mini"
899
+ "openai/gpt-5-mini",
900
+ "anthropic/claude-haiku-4.5",
901
+ "anthropic/claude-sonnet-4.6"
272
902
  ],
273
903
  "blocked_origins": [
274
904
  "CN"
275
- ]
905
+ ],
906
+ "guardrail_tier": "human_of_record",
907
+ "status": "specced"
276
908
  },
277
- "realestate_lease_renewal_drafter": {
909
+ "realestate_disclosure_packet_preparation": {
278
910
  "vertical": "realestate",
279
- "outcome": "lease_renewal_drafter",
911
+ "outcome": "disclosure_packet_preparation",
280
912
  "need": "drafting",
281
- "drafter": "openai/gpt-5-mini",
913
+ "effort": "medium",
914
+ "reviewer_effort": "high",
915
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
282
916
  "reviewer": "anthropic/claude-sonnet-4.6",
283
917
  "allowed_models": [
284
- "openai/gpt-5-mini",
918
+ "mistralai/mistral-small-3.2-24b-instruct",
285
919
  "openai/gpt-oss-120b",
286
- "meta-llama/llama-3.3-70b-instruct",
920
+ "openai/gpt-5-mini",
921
+ "anthropic/claude-haiku-4.5",
287
922
  "anthropic/claude-sonnet-4.6"
288
923
  ],
289
- "blocked_origins": []
924
+ "blocked_origins": [
925
+ "CN"
926
+ ],
927
+ "guardrail_tier": "human_of_record",
928
+ "status": "specced"
290
929
  },
291
- "realestate_maintenance_request_triage": {
292
- "vertical": "realestate",
293
- "outcome": "maintenance_request_triage",
930
+ "ecommerce_wismo_order_status": {
931
+ "vertical": "ecommerce",
932
+ "outcome": "wismo_order_status",
294
933
  "need": "fast-classification",
295
- "drafter": "meta-llama/llama-3.1-8b-instruct",
934
+ "effort": "low",
935
+ "reviewer_effort": "high",
936
+ "drafter": "openai/gpt-oss-120b",
296
937
  "reviewer": "openai/gpt-5-mini",
297
938
  "allowed_models": [
298
- "meta-llama/llama-3.1-8b-instruct",
299
- "openai/gpt-5-nano",
300
- "qwen/qwen3-30b-a3b",
301
- "openai/gpt-5-mini"
939
+ "openai/gpt-oss-120b",
940
+ "openai/gpt-4.1-nano",
941
+ "openai/gpt-5-mini",
942
+ "meta-llama/llama-3.1-8b-instruct"
302
943
  ],
303
- "blocked_origins": []
944
+ "blocked_origins": [],
945
+ "guardrail_tier": "grounded_cite_or_refuse",
946
+ "status": "active"
304
947
  },
305
- "realestate_listing_description_writer": {
306
- "vertical": "realestate",
307
- "outcome": "listing_description_writer",
308
- "need": "drafting",
309
- "drafter": "deepseek/deepseek-chat-v3.1",
310
- "reviewer": "openai/gpt-5-mini",
311
- "vision_model": "amazon/nova-lite-v1",
948
+ "ecommerce_return_refund_eligibility": {
949
+ "vertical": "ecommerce",
950
+ "outcome": "return_refund_eligibility",
951
+ "need": "structured-reasoning",
952
+ "effort": "low",
953
+ "reviewer_effort": "high",
954
+ "drafter": "openai/gpt-oss-120b",
955
+ "reviewer": "openai/o4-mini",
312
956
  "allowed_models": [
313
- "deepseek/deepseek-chat-v3.1",
314
- "mistralai/mistral-small-3.2-24b-instruct",
315
- "amazon/nova-lite-v1",
316
- "openai/gpt-5-mini"
957
+ "openai/gpt-oss-120b",
958
+ "openai/gpt-4.1-nano",
959
+ "openai/gpt-5-mini",
960
+ "openai/o4-mini"
317
961
  ],
318
- "blocked_origins": []
962
+ "blocked_origins": [],
963
+ "guardrail_tier": "human_of_record",
964
+ "status": "active"
319
965
  },
320
- "realestate_application_screening_agent": {
321
- "vertical": "realestate",
322
- "outcome": "application_screening_agent",
966
+ "ecommerce_payout_settlement_reconciliation": {
967
+ "vertical": "ecommerce",
968
+ "outcome": "payout_settlement_reconciliation",
323
969
  "need": "structured-reasoning",
324
- "drafter": "openai/gpt-5-mini",
325
- "reviewer": "openai/gpt-5.1",
970
+ "effort": "low",
971
+ "reviewer_effort": "high",
972
+ "drafter": "openai/gpt-oss-120b",
973
+ "reviewer": "openai/o4-mini",
326
974
  "allowed_models": [
327
- "openai/gpt-5-mini",
328
975
  "openai/gpt-oss-120b",
329
- "openai/gpt-5.1"
976
+ "openai/gpt-4.1-nano",
977
+ "openai/gpt-5-mini",
978
+ "openai/o4-mini"
330
979
  ],
331
- "blocked_origins": [
332
- "CN"
333
- ]
980
+ "blocked_origins": [],
981
+ "guardrail_tier": "grounded_cite_or_refuse",
982
+ "status": "active"
334
983
  },
335
- "realestate_owner_statement_compiler": {
336
- "vertical": "realestate",
337
- "outcome": "owner_statement_compiler",
338
- "need": "long-context",
339
- "drafter": "openai/gpt-4.1-nano",
340
- "reviewer": "openai/gpt-4.1",
984
+ "ecommerce_fba_lost_damaged_reconciliation": {
985
+ "vertical": "ecommerce",
986
+ "outcome": "fba_lost_damaged_reconciliation",
987
+ "need": "structured-reasoning",
988
+ "effort": "medium",
989
+ "reviewer_effort": "high",
990
+ "drafter": "openai/gpt-oss-120b",
991
+ "reviewer": "openai/o4-mini",
341
992
  "allowed_models": [
993
+ "openai/gpt-oss-120b",
342
994
  "openai/gpt-4.1-nano",
343
- "meta-llama/llama-4-scout",
344
- "openai/gpt-4.1"
995
+ "openai/gpt-5-mini",
996
+ "openai/o4-mini"
345
997
  ],
346
- "blocked_origins": []
998
+ "blocked_origins": [],
999
+ "guardrail_tier": "reviewer_required",
1000
+ "status": "active"
347
1001
  },
348
- "ecommerce_refund_decision_agent": {
1002
+ "ecommerce_fba_missing_return_audit": {
349
1003
  "vertical": "ecommerce",
350
- "outcome": "refund_decision_agent",
1004
+ "outcome": "fba_missing_return_audit",
351
1005
  "need": "structured-reasoning",
352
- "drafter": "openai/gpt-5-nano",
353
- "reviewer": "openai/gpt-5-mini",
1006
+ "effort": "medium",
1007
+ "reviewer_effort": "high",
1008
+ "drafter": "openai/gpt-oss-120b",
1009
+ "reviewer": "openai/o4-mini",
354
1010
  "allowed_models": [
355
- "openai/gpt-5-nano",
356
1011
  "openai/gpt-oss-120b",
357
- "openai/gpt-5-mini"
1012
+ "openai/gpt-4.1-nano",
1013
+ "openai/gpt-5-mini",
1014
+ "openai/o4-mini"
358
1015
  ],
359
- "blocked_origins": [
360
- "CN"
361
- ]
1016
+ "blocked_origins": [],
1017
+ "guardrail_tier": "reviewer_required",
1018
+ "status": "active"
362
1019
  },
363
- "ecommerce_inventory_reorder_agent": {
1020
+ "ecommerce_support_reply_from_docs": {
364
1021
  "vertical": "ecommerce",
365
- "outcome": "inventory_reorder_agent",
1022
+ "outcome": "support_reply_from_docs",
366
1023
  "need": "structured-reasoning",
367
- "drafter": "meta-llama/llama-3.3-70b-instruct",
368
- "reviewer": "openai/gpt-5-mini",
1024
+ "effort": "medium",
1025
+ "reviewer_effort": "medium",
1026
+ "drafter": "openai/gpt-oss-120b",
1027
+ "reviewer": "openai/o4-mini",
1028
+ "allowed_models": [
1029
+ "openai/gpt-oss-120b",
1030
+ "openai/gpt-4.1-nano",
1031
+ "openai/gpt-5-mini",
1032
+ "openai/o4-mini"
1033
+ ],
1034
+ "blocked_origins": [],
1035
+ "guardrail_tier": "grounded_cite_or_refuse",
1036
+ "status": "specced"
1037
+ },
1038
+ "ecommerce_chargeback_representment_ce30": {
1039
+ "vertical": "ecommerce",
1040
+ "outcome": "chargeback_representment_ce30",
1041
+ "need": "drafting",
1042
+ "effort": "medium",
1043
+ "reviewer_effort": "high",
1044
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
1045
+ "reviewer": "anthropic/claude-sonnet-4.6",
369
1046
  "allowed_models": [
370
- "meta-llama/llama-3.3-70b-instruct",
1047
+ "mistralai/mistral-small-3.2-24b-instruct",
371
1048
  "openai/gpt-oss-120b",
372
- "openai/gpt-5-mini"
1049
+ "openai/gpt-5-mini",
1050
+ "anthropic/claude-haiku-4.5",
1051
+ "anthropic/claude-sonnet-4.6"
373
1052
  ],
374
- "blocked_origins": []
1053
+ "blocked_origins": [],
1054
+ "guardrail_tier": "human_of_record",
1055
+ "status": "specced"
375
1056
  },
376
- "ecommerce_chargeback_response_drafter": {
1057
+ "ecommerce_amazon_a_to_z_appeal": {
377
1058
  "vertical": "ecommerce",
378
- "outcome": "chargeback_response_drafter",
1059
+ "outcome": "amazon_a_to_z_appeal",
379
1060
  "need": "drafting",
1061
+ "effort": "medium",
1062
+ "reviewer_effort": "high",
380
1063
  "drafter": "mistralai/mistral-small-3.2-24b-instruct",
381
1064
  "reviewer": "anthropic/claude-sonnet-4.6",
382
1065
  "allowed_models": [
383
1066
  "mistralai/mistral-small-3.2-24b-instruct",
384
1067
  "openai/gpt-oss-120b",
1068
+ "openai/gpt-5-mini",
1069
+ "anthropic/claude-haiku-4.5",
385
1070
  "anthropic/claude-sonnet-4.6"
386
1071
  ],
387
- "blocked_origins": [
388
- "CN"
389
- ]
1072
+ "blocked_origins": [],
1073
+ "guardrail_tier": "human_of_record",
1074
+ "status": "specced"
390
1075
  },
391
- "ecommerce_customer_segmentation_refresher": {
1076
+ "ecommerce_product_listing_from_spec": {
392
1077
  "vertical": "ecommerce",
393
- "outcome": "customer_segmentation_refresher",
394
- "need": "fast-classification",
395
- "drafter": "qwen/qwen3-30b-a3b",
396
- "reviewer": "deepseek/deepseek-r1",
1078
+ "outcome": "product_listing_from_spec",
1079
+ "need": "drafting",
1080
+ "effort": "medium",
1081
+ "reviewer_effort": "high",
1082
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
1083
+ "reviewer": "anthropic/claude-sonnet-4.6",
397
1084
  "allowed_models": [
398
- "qwen/qwen3-30b-a3b",
399
- "meta-llama/llama-3.1-8b-instruct",
400
- "deepseek/deepseek-r1",
401
- "openai/gpt-5-mini"
1085
+ "mistralai/mistral-small-3.2-24b-instruct",
1086
+ "openai/gpt-oss-120b",
1087
+ "openai/gpt-5-mini",
1088
+ "anthropic/claude-haiku-4.5",
1089
+ "anthropic/claude-sonnet-4.6"
402
1090
  ],
403
- "blocked_origins": []
1091
+ "blocked_origins": [],
1092
+ "guardrail_tier": "reviewer_required",
1093
+ "status": "specced"
404
1094
  },
405
- "ecommerce_catalog_listing_optimizer": {
1095
+ "ecommerce_negative_review_response": {
406
1096
  "vertical": "ecommerce",
407
- "outcome": "catalog_listing_optimizer",
1097
+ "outcome": "negative_review_response",
408
1098
  "need": "drafting",
409
- "drafter": "deepseek/deepseek-chat-v3.1",
410
- "reviewer": "openai/gpt-5-mini",
411
- "vision_model": "amazon/nova-lite-v1",
1099
+ "effort": "medium",
1100
+ "reviewer_effort": "high",
1101
+ "drafter": "mistralai/mistral-small-3.2-24b-instruct",
1102
+ "reviewer": "anthropic/claude-sonnet-4.6",
412
1103
  "allowed_models": [
413
- "deepseek/deepseek-chat-v3.1",
414
1104
  "mistralai/mistral-small-3.2-24b-instruct",
415
- "amazon/nova-lite-v1",
416
- "openai/gpt-5-mini"
1105
+ "openai/gpt-oss-120b",
1106
+ "openai/gpt-5-mini",
1107
+ "anthropic/claude-haiku-4.5",
1108
+ "anthropic/claude-sonnet-4.6"
417
1109
  ],
418
- "blocked_origins": []
1110
+ "blocked_origins": [],
1111
+ "guardrail_tier": "reviewer_required",
1112
+ "status": "specced"
419
1113
  }
420
1114
  }
421
1115
  };
@@ -437,6 +1131,8 @@ function recommend(options = {}) {
437
1131
  const def = defaultFor(vertical, options.outcome);
438
1132
  const posture = (options.posture || (isComplianceVertical(vertical) ? 'compliance' : 'standard')).toLowerCase();
439
1133
  const budgetTier = (options.budgetTier || options.budget_tier || 'solo').toLowerCase();
1134
+ const drafterEffort = defaultEffort(def, 'drafter');
1135
+ const reviewerEffort = defaultEffort(def, 'reviewer');
440
1136
  const drafterCandidates = unique([...(def.allowed_models || []), ...(NEED_FALLBACKS[def.need] || []), def.drafter]);
441
1137
  const reviewerCandidates = unique([def.reviewer, ...REVIEWER_FALLBACKS]);
442
1138
  const drafter = pickModel(drafterCandidates, catalogById, def, posture, TIER_CEILINGS[budgetTier] ?? TIER_CEILINGS.solo) ?? def.drafter;
@@ -450,6 +1146,9 @@ function recommend(options = {}) {
450
1146
  need: def.need,
451
1147
  posture,
452
1148
  budgetTier,
1149
+ effort: drafterEffort,
1150
+ drafterEffort,
1151
+ reviewerEffort,
453
1152
  drafter,
454
1153
  reviewer,
455
1154
  visionModel,
@@ -457,10 +1156,14 @@ function recommend(options = {}) {
457
1156
  allowedModels: drafterCandidates.filter((id) => { const model = catalogById.get(id); return Boolean(model && allowedByOrigin(model, def, posture)); }),
458
1157
  };
459
1158
  }
1159
+ function defaultEffort(def, role) {
1160
+ const value = role === 'reviewer' ? def.reviewer_effort : def.effort;
1161
+ return value === 'low' || value === 'medium' || value === 'high' || value === 'xhigh' ? value : role === 'reviewer' ? 'high' : 'medium';
1162
+ }
460
1163
  function defaultFor(vertical, outcome) {
461
1164
  const key = defaultKey(vertical, outcome);
462
1165
  const rows = DEFAULTS.defaults;
463
- return rows[key] ?? Object.values(rows).find((row) => row.vertical === vertical) ?? rows.law_client_intake_drafter;
1166
+ return rows[key] ?? Object.values(rows).find((row) => row.vertical === vertical) ?? Object.values(rows)[0];
464
1167
  }
465
1168
  function defaultKey(vertical, outcome) {
466
1169
  const clean = normalizeVertical(vertical);