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