@askverdict/types 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +72 -0
  3. package/dist/action-items.d.ts +34 -0
  4. package/dist/action-items.d.ts.map +1 -0
  5. package/dist/action-items.js +6 -0
  6. package/dist/action-items.js.map +1 -0
  7. package/dist/agent.d.ts +33 -0
  8. package/dist/agent.d.ts.map +1 -0
  9. package/dist/agent.js +3 -0
  10. package/dist/agent.js.map +1 -0
  11. package/dist/api-key.d.ts +26 -0
  12. package/dist/api-key.d.ts.map +1 -0
  13. package/dist/api-key.js +3 -0
  14. package/dist/api-key.js.map +1 -0
  15. package/dist/api.d.ts +126 -0
  16. package/dist/api.d.ts.map +1 -0
  17. package/dist/api.js +3 -0
  18. package/dist/api.js.map +1 -0
  19. package/dist/argument.d.ts +29 -0
  20. package/dist/argument.d.ts.map +1 -0
  21. package/dist/argument.js +3 -0
  22. package/dist/argument.js.map +1 -0
  23. package/dist/badges.d.ts +33 -0
  24. package/dist/badges.d.ts.map +1 -0
  25. package/dist/badges.js +471 -0
  26. package/dist/badges.js.map +1 -0
  27. package/dist/bias.d.ts +27 -0
  28. package/dist/bias.d.ts.map +1 -0
  29. package/dist/bias.js +3 -0
  30. package/dist/bias.js.map +1 -0
  31. package/dist/calibration.d.ts +35 -0
  32. package/dist/calibration.d.ts.map +1 -0
  33. package/dist/calibration.js +3 -0
  34. package/dist/calibration.js.map +1 -0
  35. package/dist/categories.d.ts +10 -0
  36. package/dist/categories.d.ts.map +1 -0
  37. package/dist/categories.js +71 -0
  38. package/dist/categories.js.map +1 -0
  39. package/dist/consensus.d.ts +33 -0
  40. package/dist/consensus.d.ts.map +1 -0
  41. package/dist/consensus.js +3 -0
  42. package/dist/consensus.js.map +1 -0
  43. package/dist/cost.d.ts +34 -0
  44. package/dist/cost.d.ts.map +1 -0
  45. package/dist/cost.js +3 -0
  46. package/dist/cost.js.map +1 -0
  47. package/dist/debate.d.ts +100 -0
  48. package/dist/debate.d.ts.map +1 -0
  49. package/dist/debate.js +3 -0
  50. package/dist/debate.js.map +1 -0
  51. package/dist/decision-chain.d.ts +50 -0
  52. package/dist/decision-chain.d.ts.map +1 -0
  53. package/dist/decision-chain.js +3 -0
  54. package/dist/decision-chain.js.map +1 -0
  55. package/dist/decision-score.d.ts +30 -0
  56. package/dist/decision-score.d.ts.map +1 -0
  57. package/dist/decision-score.js +13 -0
  58. package/dist/decision-score.js.map +1 -0
  59. package/dist/errors.d.ts +10 -0
  60. package/dist/errors.d.ts.map +1 -0
  61. package/dist/errors.js +3 -0
  62. package/dist/errors.js.map +1 -0
  63. package/dist/events.d.ts +430 -0
  64. package/dist/events.d.ts.map +1 -0
  65. package/dist/events.js +3 -0
  66. package/dist/events.js.map +1 -0
  67. package/dist/evidence.d.ts +15 -0
  68. package/dist/evidence.d.ts.map +1 -0
  69. package/dist/evidence.js +3 -0
  70. package/dist/evidence.js.map +1 -0
  71. package/dist/fallacy.d.ts +14 -0
  72. package/dist/fallacy.d.ts.map +1 -0
  73. package/dist/fallacy.js +3 -0
  74. package/dist/fallacy.js.map +1 -0
  75. package/dist/feature-flags.d.ts +25 -0
  76. package/dist/feature-flags.d.ts.map +1 -0
  77. package/dist/feature-flags.js +3 -0
  78. package/dist/feature-flags.js.map +1 -0
  79. package/dist/frameworks.d.ts +97 -0
  80. package/dist/frameworks.d.ts.map +1 -0
  81. package/dist/frameworks.js +273 -0
  82. package/dist/frameworks.js.map +1 -0
  83. package/dist/graph.d.ts +40 -0
  84. package/dist/graph.d.ts.map +1 -0
  85. package/dist/graph.js +3 -0
  86. package/dist/graph.js.map +1 -0
  87. package/dist/index.d.ts +42 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +9 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/outcome.d.ts +47 -0
  92. package/dist/outcome.d.ts.map +1 -0
  93. package/dist/outcome.js +3 -0
  94. package/dist/outcome.js.map +1 -0
  95. package/dist/pricing.d.ts +153 -0
  96. package/dist/pricing.d.ts.map +1 -0
  97. package/dist/pricing.js +359 -0
  98. package/dist/pricing.js.map +1 -0
  99. package/dist/provider.d.ts +84 -0
  100. package/dist/provider.d.ts.map +1 -0
  101. package/dist/provider.js +3 -0
  102. package/dist/provider.js.map +1 -0
  103. package/dist/renderers.d.ts +63 -0
  104. package/dist/renderers.d.ts.map +1 -0
  105. package/dist/renderers.js +446 -0
  106. package/dist/renderers.js.map +1 -0
  107. package/dist/rounds.d.ts +34 -0
  108. package/dist/rounds.d.ts.map +1 -0
  109. package/dist/rounds.js +3 -0
  110. package/dist/rounds.js.map +1 -0
  111. package/dist/search.d.ts +18 -0
  112. package/dist/search.d.ts.map +1 -0
  113. package/dist/search.js +3 -0
  114. package/dist/search.js.map +1 -0
  115. package/dist/shapes.d.ts +8 -0
  116. package/dist/shapes.d.ts.map +1 -0
  117. package/dist/shapes.js +3 -0
  118. package/dist/shapes.js.map +1 -0
  119. package/dist/sharing.d.ts +26 -0
  120. package/dist/sharing.d.ts.map +1 -0
  121. package/dist/sharing.js +3 -0
  122. package/dist/sharing.js.map +1 -0
  123. package/dist/store.d.ts +103 -0
  124. package/dist/store.d.ts.map +1 -0
  125. package/dist/store.js +3 -0
  126. package/dist/store.js.map +1 -0
  127. package/dist/templates.d.ts +50 -0
  128. package/dist/templates.d.ts.map +1 -0
  129. package/dist/templates.js +252 -0
  130. package/dist/templates.js.map +1 -0
  131. package/dist/user.d.ts +55 -0
  132. package/dist/user.d.ts.map +1 -0
  133. package/dist/user.js +3 -0
  134. package/dist/user.js.map +1 -0
  135. package/dist/verdict.d.ts +52 -0
  136. package/dist/verdict.d.ts.map +1 -0
  137. package/dist/verdict.js +3 -0
  138. package/dist/verdict.js.map +1 -0
  139. package/package.json +46 -0
package/dist/badges.js ADDED
@@ -0,0 +1,471 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Badge / Reward System Types
3
+ // ---------------------------------------------------------------------------
4
+ // ---------------------------------------------------------------------------
5
+ // Badge definitions — single source of truth
6
+ // ---------------------------------------------------------------------------
7
+ export const BADGE_DEFINITIONS = [
8
+ // ── MILESTONE ────────────────────────────────────────────────────────────
9
+ {
10
+ id: "first_verdict",
11
+ name: "The First Ruling",
12
+ description: "You brought a question before the council — and received your first verdict.",
13
+ unlockHint: "Complete your very first debate",
14
+ category: "milestone",
15
+ rarity: "common",
16
+ icon: "Gavel",
17
+ gradient: "from-slate-400 to-slate-600",
18
+ glowColor: "rgba(148,163,184,0.4)",
19
+ },
20
+ {
21
+ id: "debate_10",
22
+ name: "Ten Truths",
23
+ description: "A decade of debates behind you. The search for truth has begun.",
24
+ unlockHint: "Complete 10 debates",
25
+ category: "milestone",
26
+ rarity: "common",
27
+ icon: "Flame",
28
+ gradient: "from-orange-400 to-red-500",
29
+ glowColor: "rgba(251,146,60,0.4)",
30
+ },
31
+ {
32
+ id: "debate_25",
33
+ name: "The Silver Tongue",
34
+ description: "Twenty-five questions answered. Your mind is a finely honed instrument.",
35
+ unlockHint: "Complete 25 debates",
36
+ category: "milestone",
37
+ rarity: "uncommon",
38
+ icon: "Trophy",
39
+ gradient: "from-emerald-400 to-teal-600",
40
+ glowColor: "rgba(52,211,153,0.4)",
41
+ },
42
+ {
43
+ id: "debate_50",
44
+ name: "The Half-Century",
45
+ description: "Fifty debates. You have crossed the threshold from seeker to sage.",
46
+ unlockHint: "Complete 50 debates",
47
+ category: "milestone",
48
+ rarity: "rare",
49
+ icon: "Milestone",
50
+ gradient: "from-sky-400 to-blue-600",
51
+ glowColor: "rgba(56,189,248,0.5)",
52
+ },
53
+ {
54
+ id: "debate_100",
55
+ name: "The Centurion",
56
+ description: "One hundred debates. You command the field of ideas like a Roman general.",
57
+ unlockHint: "Complete 100 debates",
58
+ category: "milestone",
59
+ rarity: "rare",
60
+ icon: "Medal",
61
+ gradient: "from-blue-400 to-indigo-600",
62
+ glowColor: "rgba(96,165,250,0.4)",
63
+ },
64
+ {
65
+ id: "debate_250",
66
+ name: "The Arbiter",
67
+ description: "Two hundred and fifty verdicts. Nations would seek your counsel.",
68
+ unlockHint: "Complete 250 debates",
69
+ category: "milestone",
70
+ rarity: "epic",
71
+ icon: "Scale",
72
+ gradient: "from-violet-400 to-purple-700",
73
+ glowColor: "rgba(139,92,246,0.6)",
74
+ },
75
+ {
76
+ id: "debate_500",
77
+ name: "Vox Perpetua",
78
+ description: "500 debates. The eternal voice. Your record shall outlast empires.",
79
+ unlockHint: "Complete 500 debates",
80
+ category: "milestone",
81
+ rarity: "legendary",
82
+ icon: "Star",
83
+ gradient: "from-amber-300 via-yellow-400 to-amber-500",
84
+ glowColor: "rgba(232,163,23,0.6)",
85
+ },
86
+ {
87
+ id: "compare_first",
88
+ name: "The Examiner",
89
+ description: "You laid the options before the court and demanded a true comparison.",
90
+ unlockHint: "Run your first Verdict Compare debate",
91
+ category: "milestone",
92
+ rarity: "common",
93
+ icon: "GitCompare",
94
+ gradient: "from-violet-400 to-purple-600",
95
+ glowColor: "rgba(167,139,250,0.4)",
96
+ },
97
+ // ── ANALYTICAL ───────────────────────────────────────────────────────────
98
+ {
99
+ id: "balanced_mode_10",
100
+ name: "The Moderate",
101
+ description: "Ten balanced deliberations. You walk the path between extremes.",
102
+ unlockHint: "Run 10 debates in Balanced mode",
103
+ category: "analytical",
104
+ rarity: "common",
105
+ icon: "BalanceIcon",
106
+ gradient: "from-teal-400 to-emerald-600",
107
+ glowColor: "rgba(45,212,191,0.4)",
108
+ },
109
+ {
110
+ id: "thorough_mode_5",
111
+ name: "The Inquisitor",
112
+ description: "Five thorough examinations. No stone left unturned, no argument unheard.",
113
+ unlockHint: "Run 5 debates in Thorough mode",
114
+ category: "analytical",
115
+ rarity: "uncommon",
116
+ icon: "Brain",
117
+ gradient: "from-cyan-400 to-blue-600",
118
+ glowColor: "rgba(34,211,238,0.4)",
119
+ },
120
+ {
121
+ id: "fallacy_spotter",
122
+ name: "The Logician",
123
+ description: "You have exposed ten fallacies. Logic bows to no sophist under your watch.",
124
+ unlockHint: "Detect 10 logical fallacies",
125
+ category: "analytical",
126
+ rarity: "uncommon",
127
+ icon: "AlertTriangle",
128
+ gradient: "from-yellow-400 to-orange-500",
129
+ glowColor: "rgba(251,191,36,0.4)",
130
+ },
131
+ {
132
+ id: "thorough_mode_25",
133
+ name: "Grand Inquisitor",
134
+ description: "Twenty-five deep analyses. Your thoroughness is without equal in the realm.",
135
+ unlockHint: "Run 25 debates in Thorough mode",
136
+ category: "analytical",
137
+ rarity: "rare",
138
+ icon: "BookOpen",
139
+ gradient: "from-blue-500 to-cyan-700",
140
+ glowColor: "rgba(59,130,246,0.5)",
141
+ },
142
+ {
143
+ id: "decision_matrix",
144
+ name: "The Strategist",
145
+ description: "The decision matrix — a war table of the mind. You've mastered it five times.",
146
+ unlockHint: "Use decision matrix 5 times",
147
+ category: "analytical",
148
+ rarity: "rare",
149
+ icon: "LayoutGrid",
150
+ gradient: "from-pink-400 to-rose-600",
151
+ glowColor: "rgba(244,114,182,0.4)",
152
+ },
153
+ {
154
+ id: "compare_5",
155
+ name: "The Dialectician",
156
+ description: "Five multi-option verdicts. Plato himself would debate at your table.",
157
+ unlockHint: "Run 5 Verdict Compare debates",
158
+ category: "analytical",
159
+ rarity: "rare",
160
+ icon: "Layers",
161
+ gradient: "from-violet-500 to-indigo-600",
162
+ glowColor: "rgba(139,92,246,0.4)",
163
+ },
164
+ {
165
+ id: "fallacy_master",
166
+ name: "Sophist Slayer",
167
+ description: "Fifty fallacies exposed. Rhetoric crumbles before your reasoning.",
168
+ unlockHint: "Detect 50 logical fallacies",
169
+ category: "analytical",
170
+ rarity: "epic",
171
+ icon: "ShieldAlert",
172
+ gradient: "from-red-400 to-rose-700",
173
+ glowColor: "rgba(248,113,113,0.6)",
174
+ },
175
+ // ── SOCIAL ───────────────────────────────────────────────────────────────
176
+ {
177
+ id: "public_profile",
178
+ name: "The Open Scroll",
179
+ description: "You opened your record to the world. Transparency is the mark of the just.",
180
+ unlockHint: "Set your profile to public",
181
+ category: "social",
182
+ rarity: "common",
183
+ icon: "Globe",
184
+ gradient: "from-green-400 to-emerald-500",
185
+ glowColor: "rgba(74,222,128,0.4)",
186
+ },
187
+ {
188
+ id: "share_first",
189
+ name: "The Herald",
190
+ description: "You carried your verdict into the public square for all to witness.",
191
+ unlockHint: "Share your first debate",
192
+ category: "social",
193
+ rarity: "common",
194
+ icon: "Share2",
195
+ gradient: "from-sky-400 to-blue-500",
196
+ glowColor: "rgba(56,189,248,0.4)",
197
+ },
198
+ {
199
+ id: "vote_10",
200
+ name: "The Juror",
201
+ description: "Ten votes cast. You have taken your seat on the bench of judgment.",
202
+ unlockHint: "Vote on 10 arguments",
203
+ category: "social",
204
+ rarity: "uncommon",
205
+ icon: "ThumbsUp",
206
+ gradient: "from-blue-400 to-cyan-500",
207
+ glowColor: "rgba(96,165,250,0.4)",
208
+ },
209
+ {
210
+ id: "share_10",
211
+ name: "Town Crier",
212
+ description: "Ten debates shared. Your voice echoes through the digital streets.",
213
+ unlockHint: "Share 10 debates",
214
+ category: "social",
215
+ rarity: "uncommon",
216
+ icon: "Megaphone",
217
+ gradient: "from-orange-400 to-amber-500",
218
+ glowColor: "rgba(251,146,60,0.4)",
219
+ },
220
+ {
221
+ id: "vote_50",
222
+ name: "The Senate",
223
+ description: "Fifty votes. You hold the power of the assembled council in your hands.",
224
+ unlockHint: "Vote on 50 arguments",
225
+ category: "social",
226
+ rarity: "rare",
227
+ icon: "Users",
228
+ gradient: "from-indigo-400 to-blue-600",
229
+ glowColor: "rgba(99,102,241,0.5)",
230
+ },
231
+ {
232
+ id: "debate_viewed_100",
233
+ name: "The Orator",
234
+ description: "One hundred eyes upon your verdict. The crowd has gathered to listen.",
235
+ unlockHint: "Get 100 views on a shared debate",
236
+ category: "social",
237
+ rarity: "epic",
238
+ icon: "TrendingUp",
239
+ gradient: "from-fuchsia-400 to-purple-600",
240
+ glowColor: "rgba(232,121,249,0.4)",
241
+ },
242
+ // ── DEDICATION ───────────────────────────────────────────────────────────
243
+ {
244
+ id: "streak_3",
245
+ name: "Ablaze",
246
+ description: "Three days of fire. The flame of inquiry burns bright within you.",
247
+ unlockHint: "Debate 3 consecutive days",
248
+ category: "dedication",
249
+ rarity: "common",
250
+ icon: "Zap",
251
+ gradient: "from-yellow-400 to-amber-500",
252
+ glowColor: "rgba(250,204,21,0.4)",
253
+ },
254
+ {
255
+ id: "streak_7",
256
+ name: "The Unbroken",
257
+ description: "Seven days unbroken. Your discipline is the foundation of all wisdom.",
258
+ unlockHint: "Debate 7 consecutive days",
259
+ category: "dedication",
260
+ rarity: "uncommon",
261
+ icon: "CalendarCheck",
262
+ gradient: "from-orange-400 to-red-500",
263
+ glowColor: "rgba(251,146,60,0.4)",
264
+ },
265
+ {
266
+ id: "streak_14",
267
+ name: "Fortnight's Fire",
268
+ description: "A fortnight of daily debate. Consistency is the rarest of virtues.",
269
+ unlockHint: "Debate 14 consecutive days",
270
+ category: "dedication",
271
+ rarity: "rare",
272
+ icon: "Flame",
273
+ gradient: "from-red-400 to-orange-600",
274
+ glowColor: "rgba(248,113,113,0.5)",
275
+ },
276
+ {
277
+ id: "streak_30",
278
+ name: "The Eternal Flame",
279
+ description: "Thirty days. The flame that never dies. A legend forged in consistency.",
280
+ unlockHint: "Debate 30 consecutive days",
281
+ category: "dedication",
282
+ rarity: "legendary",
283
+ icon: "Infinity",
284
+ gradient: "from-amber-300 via-yellow-400 to-amber-500",
285
+ glowColor: "rgba(232,163,23,0.6)",
286
+ },
287
+ {
288
+ id: "night_owl",
289
+ name: "Midnight Counsel",
290
+ description: "When the world sleeps, you deliberate. The night holds no secrets from you.",
291
+ unlockHint: "Run a debate between midnight and 5am",
292
+ category: "dedication",
293
+ rarity: "uncommon",
294
+ icon: "Moon",
295
+ gradient: "from-indigo-500 to-violet-700",
296
+ glowColor: "rgba(99,102,241,0.4)",
297
+ },
298
+ {
299
+ id: "early_riser",
300
+ name: "The Dawn Jury",
301
+ description: "You deliberate at dawn, before the world stirs. Clarity comes to the early.",
302
+ unlockHint: "Run a debate before 6am",
303
+ category: "dedication",
304
+ rarity: "uncommon",
305
+ icon: "Sunrise",
306
+ gradient: "from-amber-300 to-orange-400",
307
+ glowColor: "rgba(252,211,77,0.4)",
308
+ },
309
+ {
310
+ id: "veteran",
311
+ name: "The Old Guard",
312
+ description: "Ninety days on the field. A veteran commands respect without asking for it.",
313
+ unlockHint: "Be active for 90 days",
314
+ category: "dedication",
315
+ rarity: "rare",
316
+ icon: "Shield",
317
+ gradient: "from-slate-500 to-gray-700",
318
+ glowColor: "rgba(100,116,139,0.4)",
319
+ },
320
+ // ── SPEED ────────────────────────────────────────────────────────────────
321
+ {
322
+ id: "fast_mode_3",
323
+ name: "The Swift",
324
+ description: "Fast, decisive, razor-sharp. Three verdicts at the speed of thought.",
325
+ unlockHint: "Run 3 Fast mode debates",
326
+ category: "speed",
327
+ rarity: "common",
328
+ icon: "Zap",
329
+ gradient: "from-yellow-300 to-amber-400",
330
+ glowColor: "rgba(253,224,71,0.4)",
331
+ },
332
+ {
333
+ id: "fast_mode_20",
334
+ name: "Thunderstrike",
335
+ description: "Twenty fast verdicts. You think like lightning and strike like thunder.",
336
+ unlockHint: "Run 20 Fast mode debates",
337
+ category: "speed",
338
+ rarity: "rare",
339
+ icon: "Rocket",
340
+ gradient: "from-amber-400 to-orange-600",
341
+ glowColor: "rgba(251,146,60,0.5)",
342
+ },
343
+ {
344
+ id: "fast_mode_50",
345
+ name: "The Blitz",
346
+ description: "Fifty fast debates. Your mind outpaces the speed of sound.",
347
+ unlockHint: "Run 50 Fast mode debates",
348
+ category: "speed",
349
+ rarity: "epic",
350
+ icon: "Wind",
351
+ gradient: "from-sky-400 to-cyan-600",
352
+ glowColor: "rgba(56,189,248,0.6)",
353
+ },
354
+ {
355
+ id: "byok_activated",
356
+ name: "The Keyholder",
357
+ description: "You wield your own keys to the kingdom of AI. None can restrict your reach.",
358
+ unlockHint: "Activate BYOK plan",
359
+ category: "speed",
360
+ rarity: "uncommon",
361
+ icon: "Key",
362
+ gradient: "from-emerald-400 to-green-600",
363
+ glowColor: "rgba(52,211,153,0.4)",
364
+ },
365
+ {
366
+ id: "api_power_user",
367
+ name: "The Architect",
368
+ description: "You built upon the platform itself. The API is your drafting table.",
369
+ unlockHint: "Create 3 API keys",
370
+ category: "speed",
371
+ rarity: "rare",
372
+ icon: "Code2",
373
+ gradient: "from-violet-400 to-blue-600",
374
+ glowColor: "rgba(139,92,246,0.5)",
375
+ },
376
+ // ── SPECIAL ──────────────────────────────────────────────────────────────
377
+ {
378
+ id: "profile_complete",
379
+ name: "The Known One",
380
+ description: "Your name, your words, your place — all recorded in the annals.",
381
+ unlockHint: "Complete your profile (name, bio, location)",
382
+ category: "special",
383
+ rarity: "common",
384
+ icon: "UserCheck",
385
+ gradient: "from-sky-400 to-indigo-500",
386
+ glowColor: "rgba(56,189,248,0.4)",
387
+ },
388
+ {
389
+ id: "upgrade_pro",
390
+ name: "The Patron",
391
+ description: "You believed in the cause and invested in it. A true patron of the verdicts.",
392
+ unlockHint: "Upgrade to Starter, Pro, or BYOK",
393
+ category: "special",
394
+ rarity: "rare",
395
+ icon: "BadgeCheck",
396
+ gradient: "from-violet-400 to-purple-600",
397
+ glowColor: "rgba(167,139,250,0.5)",
398
+ },
399
+ {
400
+ id: "night_debate_won",
401
+ name: "The Devil's Advocate",
402
+ description: "You dared to challenge the obvious — and emerged with clarity.",
403
+ unlockHint: "Run a debate that flips conventional wisdom",
404
+ category: "special",
405
+ rarity: "epic",
406
+ icon: "Swords",
407
+ gradient: "from-red-400 to-rose-600",
408
+ glowColor: "rgba(248,113,113,0.5)",
409
+ },
410
+ {
411
+ id: "template_creator",
412
+ name: "The Scribe",
413
+ description: "You authored a template for others to follow. A contribution to the archive.",
414
+ unlockHint: "Create a debate template",
415
+ category: "special",
416
+ rarity: "uncommon",
417
+ icon: "FileText",
418
+ gradient: "from-stone-400 to-amber-600",
419
+ glowColor: "rgba(168,162,158,0.4)",
420
+ },
421
+ {
422
+ id: "webhook_user",
423
+ name: "The Integrationist",
424
+ description: "You connected AskVerdict to your world. The web of knowledge grows.",
425
+ unlockHint: "Set up a webhook integration",
426
+ category: "special",
427
+ rarity: "uncommon",
428
+ icon: "Link",
429
+ gradient: "from-teal-400 to-cyan-600",
430
+ glowColor: "rgba(45,212,191,0.4)",
431
+ },
432
+ {
433
+ id: "founding_member",
434
+ name: "The Founder",
435
+ description: "Among the first hundred who shaped this court. Your name is in the stone.",
436
+ unlockHint: "Claim the founding member offer",
437
+ category: "special",
438
+ rarity: "epic",
439
+ icon: "Crown",
440
+ gradient: "from-yellow-400 via-amber-400 to-orange-400",
441
+ glowColor: "rgba(251,191,36,0.6)",
442
+ },
443
+ {
444
+ id: "beta_pioneer",
445
+ name: "The Pioneer",
446
+ description: "You walked the untamed frontier when AskVerdict was still raw and wild.",
447
+ unlockHint: "Join during the private beta",
448
+ category: "special",
449
+ rarity: "legendary",
450
+ icon: "FlaskConical",
451
+ gradient: "from-amber-300 via-yellow-400 to-amber-500",
452
+ glowColor: "rgba(232,163,23,0.7)",
453
+ },
454
+ ];
455
+ /** Quick lookup map by id */
456
+ export const BADGE_MAP = Object.fromEntries(BADGE_DEFINITIONS.map((b) => [b.id, b]));
457
+ export const BADGE_RARITY_ORDER = [
458
+ "common",
459
+ "uncommon",
460
+ "rare",
461
+ "epic",
462
+ "legendary",
463
+ ];
464
+ export const BADGE_RARITY_LABELS = {
465
+ common: "Common",
466
+ uncommon: "Uncommon",
467
+ rare: "Rare",
468
+ epic: "Epic",
469
+ legendary: "Legendary",
470
+ };
471
+ //# sourceMappingURL=badges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badges.js","sourceRoot":"","sources":["../src/badges.ts"],"names":[],"mappings":"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"}
package/dist/bias.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ export type BiasType = "anchoring" | "cost_aversion" | "recency" | "confirmation" | "risk_aversion" | "category_bias";
2
+ export interface BiasDetection {
3
+ type: BiasType;
4
+ /** 0–1 — how confident we are this bias exists based on available evidence */
5
+ confidence: number;
6
+ /** Human-readable explanation, non-judgmental */
7
+ description: string;
8
+ /** How many decisions support this finding */
9
+ evidenceCount: number;
10
+ /** Actionable improvement tip */
11
+ suggestion: string;
12
+ }
13
+ export interface BiasProfile {
14
+ /** Detected biases — empty array means insufficient data or no biases found */
15
+ biases: BiasDetection[];
16
+ /** Overall accuracy as a percentage (0–100) */
17
+ overallAccuracy: number;
18
+ /** Per-category accuracy percentages */
19
+ categoryAccuracy: Record<string, number>;
20
+ /** Total decisions tracked (regardless of outcome) */
21
+ totalDecisions: number;
22
+ /** Decisions that have a resolved outcome */
23
+ decisionsWithOutcomes: number;
24
+ /** ISO timestamp of when this analysis was run */
25
+ analyzedAt: string;
26
+ }
27
+ //# sourceMappingURL=bias.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bias.d.ts","sourceRoot":"","sources":["../src/bias.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAChB,WAAW,GACX,eAAe,GACf,SAAS,GACT,cAAc,GACd,eAAe,GACf,eAAe,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;CACpB"}
package/dist/bias.js ADDED
@@ -0,0 +1,3 @@
1
+ // Bias Detection Types — pure statistical analysis of decision patterns
2
+ export {};
3
+ //# sourceMappingURL=bias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bias.js","sourceRoot":"","sources":["../src/bias.ts"],"names":[],"mappings":"AAAA,wEAAwE"}
@@ -0,0 +1,35 @@
1
+ import type { Verdict } from "./verdict";
2
+ /** A calibration bucket for binning predicted vs actual outcomes */
3
+ export interface CalibrationBucket {
4
+ predictedRange: [number, number];
5
+ actualRate: number;
6
+ count: number;
7
+ }
8
+ /** Calibrated probability with confidence interval */
9
+ export interface CalibratedProbability {
10
+ probability: number;
11
+ confidenceInterval: {
12
+ lower: number;
13
+ upper: number;
14
+ };
15
+ calibrationQuality: "cold_start" | "limited" | "well_calibrated";
16
+ similarDecisionCount: number;
17
+ }
18
+ /** Verdict extended with calibrated probability and domain info */
19
+ export interface CalibratedVerdict extends Verdict {
20
+ calibratedProbability: number;
21
+ confidenceInterval: {
22
+ lower: number;
23
+ upper: number;
24
+ };
25
+ domainCategory: string;
26
+ similarDecisionCount: number;
27
+ }
28
+ /** Platt scaling parameters for logistic calibration */
29
+ export interface PlattParams {
30
+ a: number;
31
+ b: number;
32
+ sampleSize: number;
33
+ fittedAt: string;
34
+ }
35
+ //# sourceMappingURL=calibration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calibration.d.ts","sourceRoot":"","sources":["../src/calibration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,sDAAsD;AACtD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,kBAAkB,EAAE,YAAY,GAAG,SAAS,GAAG,iBAAiB,CAAC;IACjE,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ // Calibration Types
2
+ export {};
3
+ //# sourceMappingURL=calibration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calibration.js","sourceRoot":"","sources":["../src/calibration.ts"],"names":[],"mappings":"AAAA,oBAAoB"}
@@ -0,0 +1,10 @@
1
+ export declare const DECISION_CATEGORIES: readonly ["technology", "business", "financial", "career", "health", "personal", "creative"];
2
+ export type DecisionCategory = (typeof DECISION_CATEGORIES)[number];
3
+ export declare const CATEGORY_LABELS: Record<DecisionCategory, string>;
4
+ export declare const CATEGORY_COLORS: Record<DecisionCategory, string>;
5
+ /**
6
+ * Keywords used for local (non-LLM) category classification fallback.
7
+ * Ordered by signal strength — more specific terms first.
8
+ */
9
+ export declare const CATEGORY_KEYWORDS: Record<DecisionCategory, string[]>;
10
+ //# sourceMappingURL=categories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../src/categories.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,8FAQtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAQ5D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAQ5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAqChE,CAAC"}
@@ -0,0 +1,71 @@
1
+ // Decision Category — the 7 user-facing categories for debate classification
2
+ export const DECISION_CATEGORIES = [
3
+ "technology",
4
+ "business",
5
+ "financial",
6
+ "career",
7
+ "health",
8
+ "personal",
9
+ "creative",
10
+ ];
11
+ export const CATEGORY_LABELS = {
12
+ technology: "Technology",
13
+ business: "Business",
14
+ financial: "Financial",
15
+ career: "Career",
16
+ health: "Health",
17
+ personal: "Personal",
18
+ creative: "Creative",
19
+ };
20
+ export const CATEGORY_COLORS = {
21
+ technology: "blue",
22
+ business: "purple",
23
+ financial: "green",
24
+ career: "orange",
25
+ health: "red",
26
+ personal: "pink",
27
+ creative: "yellow",
28
+ };
29
+ /**
30
+ * Keywords used for local (non-LLM) category classification fallback.
31
+ * Ordered by signal strength — more specific terms first.
32
+ */
33
+ export const CATEGORY_KEYWORDS = {
34
+ technology: [
35
+ "database", "api", "framework", "language", "deploy", "architecture",
36
+ "code", "software", "server", "cloud", "app", "frontend", "backend",
37
+ "devops", "microservice", "kubernetes", "docker", "typescript", "javascript",
38
+ "python", "react", "vue", "angular", "saas",
39
+ ],
40
+ business: [
41
+ "revenue", "pricing", "market", "startup", "hire", "team", "company",
42
+ "sales", "customer", "growth", "product", "strategy", "launch", "b2b",
43
+ "enterprise", "partnership", "acquisition", "pivot", "mvp",
44
+ ],
45
+ financial: [
46
+ "invest", "portfolio", "budget", "savings", "loan", "mortgage", "stock",
47
+ "crypto", "retirement", "equity", "fund", "tax", "income", "spend",
48
+ "debt", "credit", "money", "cash", "dividend", "returns",
49
+ ],
50
+ career: [
51
+ "job", "promotion", "salary", "role", "interview", "resume", "freelance",
52
+ "remote", "offer", "manager", "employer", "employee", "work", "career",
53
+ "profession", "skill", "negotiate", "quit", "leave",
54
+ ],
55
+ health: [
56
+ "treatment", "symptom", "medical", "therapy", "diagnosis", "health",
57
+ "doctor", "patient", "medicine", "diet", "exercise", "fitness", "wellness",
58
+ "mental", "sleep", "supplement", "surgery", "hospital",
59
+ ],
60
+ personal: [
61
+ "relationship", "move", "life", "family", "school", "education",
62
+ "college", "university", "degree", "decision", "choice", "should",
63
+ "advice", "friend", "marriage", "divorce", "parenting", "travel",
64
+ ],
65
+ creative: [
66
+ "design", "art", "music", "write", "story", "brand", "logo", "color",
67
+ "font", "photography", "video", "content", "creative", "aesthetic",
68
+ "style", "craft", "visual", "narrative", "portfolio",
69
+ ],
70
+ };
71
+ //# sourceMappingURL=categories.js.map