tryaii-dre 0.2.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 (146) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +234 -0
  3. package/dist/banner.d.ts +24 -0
  4. package/dist/banner.d.ts.map +1 -0
  5. package/dist/banner.js +125 -0
  6. package/dist/banner.js.map +1 -0
  7. package/dist/benchmarks/index.d.ts +4 -0
  8. package/dist/benchmarks/index.d.ts.map +1 -0
  9. package/dist/benchmarks/index.js +3 -0
  10. package/dist/benchmarks/index.js.map +1 -0
  11. package/dist/benchmarks/registry.d.ts +69 -0
  12. package/dist/benchmarks/registry.d.ts.map +1 -0
  13. package/dist/benchmarks/registry.js +128 -0
  14. package/dist/benchmarks/registry.js.map +1 -0
  15. package/dist/benchmarks/standard.d.ts +6 -0
  16. package/dist/benchmarks/standard.d.ts.map +1 -0
  17. package/dist/benchmarks/standard.js +115 -0
  18. package/dist/benchmarks/standard.js.map +1 -0
  19. package/dist/budget.d.ts +65 -0
  20. package/dist/budget.d.ts.map +1 -0
  21. package/dist/budget.js +344 -0
  22. package/dist/budget.js.map +1 -0
  23. package/dist/cache/index.d.ts +27 -0
  24. package/dist/cache/index.d.ts.map +1 -0
  25. package/dist/cache/index.js +63 -0
  26. package/dist/cache/index.js.map +1 -0
  27. package/dist/centroids/data/centroids_all-MiniLM-L6-v2.json +1 -0
  28. package/dist/centroids/data/trainingQueries.json +246 -0
  29. package/dist/centroids/generator.d.ts +63 -0
  30. package/dist/centroids/generator.d.ts.map +1 -0
  31. package/dist/centroids/generator.js +120 -0
  32. package/dist/centroids/generator.js.map +1 -0
  33. package/dist/centroids/index.d.ts +3 -0
  34. package/dist/centroids/index.d.ts.map +1 -0
  35. package/dist/centroids/index.js +3 -0
  36. package/dist/centroids/index.js.map +1 -0
  37. package/dist/centroids/loader.d.ts +87 -0
  38. package/dist/centroids/loader.d.ts.map +1 -0
  39. package/dist/centroids/loader.js +236 -0
  40. package/dist/centroids/loader.js.map +1 -0
  41. package/dist/classifiers/base.d.ts +56 -0
  42. package/dist/classifiers/base.d.ts.map +1 -0
  43. package/dist/classifiers/base.js +42 -0
  44. package/dist/classifiers/base.js.map +1 -0
  45. package/dist/classifiers/embedding.d.ts +68 -0
  46. package/dist/classifiers/embedding.d.ts.map +1 -0
  47. package/dist/classifiers/embedding.js +0 -0
  48. package/dist/classifiers/embedding.js.map +1 -0
  49. package/dist/classifiers/hybrid.d.ts +31 -0
  50. package/dist/classifiers/hybrid.d.ts.map +1 -0
  51. package/dist/classifiers/hybrid.js +61 -0
  52. package/dist/classifiers/hybrid.js.map +1 -0
  53. package/dist/classifiers/index.d.ts +4 -0
  54. package/dist/classifiers/index.d.ts.map +1 -0
  55. package/dist/classifiers/index.js +3 -0
  56. package/dist/classifiers/index.js.map +1 -0
  57. package/dist/classifiers/keyword.d.ts +29 -0
  58. package/dist/classifiers/keyword.d.ts.map +1 -0
  59. package/dist/classifiers/keyword.js +264 -0
  60. package/dist/classifiers/keyword.js.map +1 -0
  61. package/dist/cli.d.ts +15 -0
  62. package/dist/cli.d.ts.map +1 -0
  63. package/dist/cli.js +597 -0
  64. package/dist/cli.js.map +1 -0
  65. package/dist/client-types.d.ts +101 -0
  66. package/dist/client-types.d.ts.map +1 -0
  67. package/dist/client-types.js +5 -0
  68. package/dist/client-types.js.map +1 -0
  69. package/dist/client.d.ts +50 -0
  70. package/dist/client.d.ts.map +1 -0
  71. package/dist/client.js +279 -0
  72. package/dist/client.js.map +1 -0
  73. package/dist/config.d.ts +45 -0
  74. package/dist/config.d.ts.map +1 -0
  75. package/dist/config.js +37 -0
  76. package/dist/config.js.map +1 -0
  77. package/dist/dashboard/index.d.ts +48 -0
  78. package/dist/dashboard/index.d.ts.map +1 -0
  79. package/dist/dashboard/index.js +166 -0
  80. package/dist/dashboard/index.js.map +1 -0
  81. package/dist/embeddings/base.d.ts +66 -0
  82. package/dist/embeddings/base.d.ts.map +1 -0
  83. package/dist/embeddings/base.js +77 -0
  84. package/dist/embeddings/base.js.map +1 -0
  85. package/dist/embeddings/index.d.ts +3 -0
  86. package/dist/embeddings/index.d.ts.map +1 -0
  87. package/dist/embeddings/index.js +3 -0
  88. package/dist/embeddings/index.js.map +1 -0
  89. package/dist/embeddings/local.d.ts +42 -0
  90. package/dist/embeddings/local.d.ts.map +1 -0
  91. package/dist/embeddings/local.js +89 -0
  92. package/dist/embeddings/local.js.map +1 -0
  93. package/dist/index.d.ts +44 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +45 -0
  96. package/dist/index.js.map +1 -0
  97. package/dist/integrations/index.d.ts +3 -0
  98. package/dist/integrations/index.d.ts.map +1 -0
  99. package/dist/integrations/index.js +2 -0
  100. package/dist/integrations/index.js.map +1 -0
  101. package/dist/integrations/openrouter.d.ts +84 -0
  102. package/dist/integrations/openrouter.d.ts.map +1 -0
  103. package/dist/integrations/openrouter.js +253 -0
  104. package/dist/integrations/openrouter.js.map +1 -0
  105. package/dist/registry/index.d.ts +2 -0
  106. package/dist/registry/index.d.ts.map +1 -0
  107. package/dist/registry/index.js +2 -0
  108. package/dist/registry/index.js.map +1 -0
  109. package/dist/registry/models.d.ts +76 -0
  110. package/dist/registry/models.d.ts.map +1 -0
  111. package/dist/registry/models.js +170 -0
  112. package/dist/registry/models.js.map +1 -0
  113. package/dist/registry/presets/defaultModels.json +435 -0
  114. package/dist/router.d.ts +178 -0
  115. package/dist/router.d.ts.map +1 -0
  116. package/dist/router.js +259 -0
  117. package/dist/router.js.map +1 -0
  118. package/dist/scoring/benchmarks.d.ts +35 -0
  119. package/dist/scoring/benchmarks.d.ts.map +1 -0
  120. package/dist/scoring/benchmarks.js +68 -0
  121. package/dist/scoring/benchmarks.js.map +1 -0
  122. package/dist/scoring/engine.d.ts +43 -0
  123. package/dist/scoring/engine.d.ts.map +1 -0
  124. package/dist/scoring/engine.js +267 -0
  125. package/dist/scoring/engine.js.map +1 -0
  126. package/dist/scoring/index.d.ts +6 -0
  127. package/dist/scoring/index.d.ts.map +1 -0
  128. package/dist/scoring/index.js +4 -0
  129. package/dist/scoring/index.js.map +1 -0
  130. package/dist/scoring/priorities.d.ts +41 -0
  131. package/dist/scoring/priorities.d.ts.map +1 -0
  132. package/dist/scoring/priorities.js +49 -0
  133. package/dist/scoring/priorities.js.map +1 -0
  134. package/dist/types.d.ts +47 -0
  135. package/dist/types.d.ts.map +1 -0
  136. package/dist/types.js +5 -0
  137. package/dist/types.js.map +1 -0
  138. package/dist/utils/cosine.d.ts +10 -0
  139. package/dist/utils/cosine.d.ts.map +1 -0
  140. package/dist/utils/cosine.js +18 -0
  141. package/dist/utils/cosine.js.map +1 -0
  142. package/dist/utils/math.d.ts +18 -0
  143. package/dist/utils/math.d.ts.map +1 -0
  144. package/dist/utils/math.js +54 -0
  145. package/dist/utils/math.js.map +1 -0
  146. package/package.json +65 -0
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/classifiers/embedding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Hybrid classifier -- combines embedding and keyword classifiers.
3
+ *
4
+ * Uses the embedding classifier as primary, with automatic fallback
5
+ * to the keyword classifier when confidence is too low or when the
6
+ * embedding provider is unavailable.
7
+ */
8
+ import { BaseClassifier, ClassificationResult } from './base.js';
9
+ import type { EmbeddingClassifier } from './embedding.js';
10
+ import { KeywordClassifier } from './keyword.js';
11
+ /**
12
+ * Hybrid classifier with automatic fallback.
13
+ *
14
+ * Strategy:
15
+ * 1. Try embedding classifier first (semantic understanding)
16
+ * 2. If confidence < threshold -> fall back to keyword classifier
17
+ * 3. If embedding classifier fails -> fall back to keyword classifier
18
+ * 4. Merge results: embedding scores are primary, keyword fills gaps
19
+ *
20
+ * This ensures the router always returns useful results, even without
21
+ * an embedding model (e.g., in CI environments or on first run).
22
+ */
23
+ export declare class HybridClassifier extends BaseClassifier {
24
+ private _embedding;
25
+ private _keyword;
26
+ private _threshold;
27
+ constructor(embeddingClassifier?: EmbeddingClassifier | null, keywordClassifier?: KeywordClassifier, confidenceThreshold?: number);
28
+ classify(prompt: string): ClassificationResult;
29
+ isReady(): boolean;
30
+ }
31
+ //# sourceMappingURL=hybrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../src/classifiers/hybrid.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,UAAU,CAAS;gBAGzB,mBAAmB,GAAE,mBAAmB,GAAG,IAAW,EACtD,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,mBAAmB,SAAO;IAQ5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB;IA8B9C,OAAO,IAAI,OAAO;CAInB"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Hybrid classifier -- combines embedding and keyword classifiers.
3
+ *
4
+ * Uses the embedding classifier as primary, with automatic fallback
5
+ * to the keyword classifier when confidence is too low or when the
6
+ * embedding provider is unavailable.
7
+ */
8
+ import { BaseClassifier } from './base.js';
9
+ import { KeywordClassifier } from './keyword.js';
10
+ /**
11
+ * Hybrid classifier with automatic fallback.
12
+ *
13
+ * Strategy:
14
+ * 1. Try embedding classifier first (semantic understanding)
15
+ * 2. If confidence < threshold -> fall back to keyword classifier
16
+ * 3. If embedding classifier fails -> fall back to keyword classifier
17
+ * 4. Merge results: embedding scores are primary, keyword fills gaps
18
+ *
19
+ * This ensures the router always returns useful results, even without
20
+ * an embedding model (e.g., in CI environments or on first run).
21
+ */
22
+ export class HybridClassifier extends BaseClassifier {
23
+ constructor(embeddingClassifier = null, keywordClassifier, confidenceThreshold = 0.05) {
24
+ super();
25
+ this._embedding = embeddingClassifier;
26
+ this._keyword = keywordClassifier ?? new KeywordClassifier();
27
+ this._threshold = confidenceThreshold;
28
+ }
29
+ classify(prompt) {
30
+ const start = performance.now();
31
+ // Try embedding classifier first
32
+ if (this._embedding !== null) {
33
+ try {
34
+ const result = this._embedding.classify(prompt);
35
+ if (result.confidence >= this._threshold) {
36
+ return {
37
+ ...result,
38
+ classifierUsed: 'hybrid(embedding)',
39
+ processingTimeMs: performance.now() - start,
40
+ };
41
+ }
42
+ // Low confidence -- fall through to keyword
43
+ }
44
+ catch {
45
+ // Embedding classifier failed -- fall through to keyword
46
+ }
47
+ }
48
+ // Fallback to keyword classifier
49
+ const result = this._keyword.classify(prompt);
50
+ return {
51
+ ...result,
52
+ classifierUsed: 'hybrid(keyword_fallback)',
53
+ processingTimeMs: performance.now() - start,
54
+ };
55
+ }
56
+ isReady() {
57
+ // Always ready because keyword classifier needs no setup
58
+ return true;
59
+ }
60
+ }
61
+ //# sourceMappingURL=hybrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../src/classifiers/hybrid.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAwB,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAKlD,YACE,sBAAkD,IAAI,EACtD,iBAAqC,EACrC,mBAAmB,GAAG,IAAI;QAE1B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,iBAAiB,IAAI,IAAI,iBAAiB,EAAE,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEhC,iCAAiC;QACjC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAEhD,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACzC,OAAO;wBACL,GAAG,MAAM;wBACT,cAAc,EAAE,mBAAmB;wBACnC,gBAAgB,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK;qBAC5C,CAAC;gBACJ,CAAC;gBACD,4CAA4C;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,yDAAyD;YAC3D,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO;YACL,GAAG,MAAM;YACT,cAAc,EAAE,0BAA0B;YAC1C,gBAAgB,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK;SAC5C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,yDAAyD;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export { BaseClassifier, emptyClassificationResult, topBenchmarks } from './base.js';
2
+ export type { ClassificationResult } from './base.js';
3
+ export { EmbeddingClassifier, BENCHMARK_CATEGORIES } from './embedding.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/classifiers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACrF,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { BaseClassifier, emptyClassificationResult, topBenchmarks } from './base.js';
2
+ export { EmbeddingClassifier, BENCHMARK_CATEGORIES } from './embedding.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classifiers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Keyword-based hierarchical classifier.
3
+ *
4
+ * Uses pattern matching with confidence scoring as a fast fallback
5
+ * when embedding classification is unavailable or low-confidence.
6
+ * No external dependencies -- works offline with zero setup.
7
+ */
8
+ import { BaseClassifier, ClassificationResult } from './base.js';
9
+ /** Broad category -> keyword patterns. */
10
+ export declare const BROAD_PATTERNS: Record<string, string[]>;
11
+ /** Subcategory patterns nested under broad categories. */
12
+ export declare const SUBCATEGORY_PATTERNS: Record<string, Record<string, string[]>>;
13
+ /** Map categories -> benchmark names for score output. */
14
+ export declare const CATEGORY_TO_BENCHMARKS: Record<string, string[]>;
15
+ /**
16
+ * Fast keyword-based classifier using hierarchical pattern matching.
17
+ *
18
+ * Two-stage classification:
19
+ * 1. Broad category (TECHNICAL, CREATIVE, BUSINESS, EDUCATIONAL, CONVERSATIONAL)
20
+ * 2. Subcategory refinement (CODE_TECHNICAL, WRITING_LITERARY, etc.)
21
+ *
22
+ * Output is mapped to benchmark similarity scores for compatibility
23
+ * with the ScoringEngine.
24
+ */
25
+ export declare class KeywordClassifier extends BaseClassifier {
26
+ classify(prompt: string): ClassificationResult;
27
+ isReady(): boolean;
28
+ }
29
+ //# sourceMappingURL=keyword.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyword.d.ts","sourceRoot":"","sources":["../../src/classifiers/keyword.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjE,0CAA0C;AAC1C,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAwCnD,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAsFzE,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAuB3D,CAAC;AAiCF;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB;IAqE9C,OAAO,IAAI,OAAO;CAGnB"}
@@ -0,0 +1,264 @@
1
+ /**
2
+ * Keyword-based hierarchical classifier.
3
+ *
4
+ * Uses pattern matching with confidence scoring as a fast fallback
5
+ * when embedding classification is unavailable or low-confidence.
6
+ * No external dependencies -- works offline with zero setup.
7
+ */
8
+ import { BaseClassifier } from './base.js';
9
+ /** Broad category -> keyword patterns. */
10
+ export const BROAD_PATTERNS = {
11
+ TECHNICAL: [
12
+ 'code', 'programming', 'algorithm', 'debug', 'api', 'database', 'sql',
13
+ 'python', 'javascript', 'react', 'node', 'function', 'class', 'method',
14
+ 'variable', 'loop', 'array', 'object', 'math', 'calculate', 'formula',
15
+ 'equation', 'statistics', 'data analysis', 'machine learning', 'ai',
16
+ 'model', 'neural network', 'regression', 'classification', 'clustering',
17
+ 'dataset', 'deploy', 'docker', 'kubernetes', 'terraform', 'ci/cd',
18
+ ],
19
+ CREATIVE: [
20
+ 'story', 'write', 'creative', 'poem', 'poetry', 'narrative', 'character',
21
+ 'plot', 'dialogue', 'design', 'color', 'layout', 'visual', 'aesthetic',
22
+ 'brand', 'logo', 'artwork', 'graphic', 'brainstorm', 'idea', 'innovate',
23
+ 'concept', 'inspiration', 'imagine', 'invent', 'original', 'music',
24
+ 'song', 'melody', 'rhythm', 'video', 'film', 'script', 'performance', 'art',
25
+ ],
26
+ BUSINESS: [
27
+ 'business', 'strategy', 'plan', 'market', 'revenue', 'profit', 'growth',
28
+ 'competition', 'budget', 'financial', 'investment', 'roi', 'cost',
29
+ 'expense', 'accounting', 'finance', 'legal', 'contract', 'compliance',
30
+ 'regulation', 'policy', 'law', 'terms', 'agreement', 'email',
31
+ 'presentation', 'meeting', 'proposal', 'report', 'communication',
32
+ 'professional', 'management', 'team', 'leadership', 'operations',
33
+ 'process', 'workflow', 'organization', 'summarize', 'summary',
34
+ 'memo', 'stakeholder', 'client', 'invoice', 'quarterly',
35
+ ],
36
+ EDUCATIONAL: [
37
+ 'explain', 'teach', 'learn', 'education', 'instruction', 'lesson',
38
+ 'concept', 'understand', 'homework', 'assignment', 'study', 'exam',
39
+ 'test', 'quiz', 'grade', 'student', 'school', 'research', 'paper',
40
+ 'thesis', 'academic', 'scholar', 'methodology', 'analysis', 'review',
41
+ ],
42
+ CONVERSATIONAL: [
43
+ 'advice', 'help', 'recommend', 'suggest', 'opinion', 'think', 'feel',
44
+ 'personal', 'life', 'relationship', 'friend', 'family', 'decision',
45
+ 'choice', 'problem', 'solution', 'guidance', 'what', 'how', 'why',
46
+ 'when', 'where', 'tell me', 'can you', 'please', 'would you',
47
+ 'could you', 'best', 'better', 'good', 'bad', 'should', 'need',
48
+ 'want', 'like', 'love', 'hate', 'prefer',
49
+ ],
50
+ };
51
+ /** Subcategory patterns nested under broad categories. */
52
+ export const SUBCATEGORY_PATTERNS = {
53
+ TECHNICAL: {
54
+ CODE_TECHNICAL: [
55
+ 'code', 'programming', 'debug', 'api', 'function', 'class', 'method',
56
+ 'variable', 'algorithm', 'data structure', 'framework', 'library',
57
+ 'repository', 'git', 'deploy',
58
+ ],
59
+ MATHEMATICAL_SCIENTIFIC: [
60
+ 'math', 'calculate', 'formula', 'equation', 'statistics', 'probability',
61
+ 'theorem', 'physics', 'chemistry', 'biology', 'science', 'research',
62
+ 'hypothesis', 'experiment',
63
+ ],
64
+ DATA_SCIENCE: [
65
+ 'data', 'dataset', 'analysis', 'machine learning', 'ai', 'model',
66
+ 'neural network', 'regression', 'classification', 'clustering',
67
+ 'visualization', 'pandas', 'numpy',
68
+ ],
69
+ },
70
+ CREATIVE: {
71
+ WRITING_LITERARY: [
72
+ 'story', 'write', 'novel', 'poem', 'poetry', 'narrative', 'character',
73
+ 'plot', 'dialogue', 'fiction', 'non-fiction', 'essay', 'article',
74
+ 'blog', 'content',
75
+ ],
76
+ VISUAL_DESIGN: [
77
+ 'design', 'color', 'layout', 'visual', 'aesthetic', 'brand', 'logo',
78
+ 'ui', 'ux', 'graphic', 'typography', 'illustration', 'image', 'photo',
79
+ 'artwork',
80
+ ],
81
+ CREATIVE_IDEATION: [
82
+ 'brainstorm', 'idea', 'innovate', 'concept', 'inspiration', 'imagine',
83
+ 'invent', 'original', 'creative thinking', 'solution', 'alternative',
84
+ 'possibility',
85
+ ],
86
+ MEDIA_ARTS: [
87
+ 'music', 'song', 'melody', 'rhythm', 'video', 'film', 'script',
88
+ 'performance', 'theater', 'dance', 'photography', 'animation',
89
+ 'multimedia',
90
+ ],
91
+ },
92
+ BUSINESS: {
93
+ STRATEGY_PLANNING: [
94
+ 'strategy', 'plan', 'business plan', 'roadmap', 'goal', 'objective',
95
+ 'vision', 'mission', 'competitive', 'market analysis', 'swot',
96
+ 'growth', 'expansion',
97
+ ],
98
+ FINANCIAL_ANALYSIS: [
99
+ 'financial', 'budget', 'investment', 'roi', 'revenue', 'profit',
100
+ 'cost', 'expense', 'cash flow', 'forecast', 'valuation', 'accounting',
101
+ 'finance', 'pricing',
102
+ ],
103
+ LEGAL_COMPLIANCE: [
104
+ 'legal', 'law', 'contract', 'agreement', 'compliance', 'regulation',
105
+ 'policy', 'terms', 'conditions', 'intellectual property', 'patent',
106
+ 'copyright', 'gdpr',
107
+ ],
108
+ PROFESSIONAL_COMMUNICATION: [
109
+ 'email', 'presentation', 'meeting', 'proposal', 'report', 'memo',
110
+ 'letter', 'communication', 'professional', 'corporate', 'client',
111
+ 'stakeholder', 'summarize', 'summary', 'brief', 'digest',
112
+ ],
113
+ },
114
+ EDUCATIONAL: {
115
+ ACADEMIC_INSTRUCTION: [
116
+ 'explain', 'teach', 'lesson', 'instruction', 'lecture', 'tutorial',
117
+ 'concept', 'theory', 'understand',
118
+ ],
119
+ STUDY_ASSISTANCE: [
120
+ 'homework', 'assignment', 'study', 'exam', 'test', 'quiz', 'grade',
121
+ 'student', 'school',
122
+ ],
123
+ RESEARCH_METHODOLOGY: [
124
+ 'research', 'paper', 'thesis', 'academic', 'scholar', 'methodology',
125
+ 'analysis', 'review', 'peer review', 'citation',
126
+ ],
127
+ },
128
+ CONVERSATIONAL: {
129
+ PERSONAL_ADVICE: [
130
+ 'advice', 'personal', 'life', 'relationship', 'friend', 'family',
131
+ 'decision', 'guidance', 'feel', 'emotion',
132
+ ],
133
+ RECOMMENDATIONS: [
134
+ 'recommend', 'suggest', 'best', 'better', 'compare', 'which',
135
+ 'should i', 'top', 'review', 'rating',
136
+ ],
137
+ },
138
+ };
139
+ /** Map categories -> benchmark names for score output. */
140
+ export const CATEGORY_TO_BENCHMARKS = {
141
+ CODE_TECHNICAL: ['HumanEval', 'SWE-bench'],
142
+ MATHEMATICAL_SCIENTIFIC: ['GSM8K', 'DROP', 'ARC'],
143
+ DATA_SCIENCE: ['HumanEval', 'SWE-bench', 'DROP'],
144
+ WRITING_LITERARY: ['MT-Bench', 'Chatbot Arena (LMSys)'],
145
+ VISUAL_DESIGN: ['MT-Bench'],
146
+ CREATIVE_IDEATION: ['MT-Bench', 'Chatbot Arena (LMSys)'],
147
+ MEDIA_ARTS: ['MT-Bench'],
148
+ STRATEGY_PLANNING: ['MMLU', 'SuperGLUE'],
149
+ FINANCIAL_ANALYSIS: ['GSM8K', 'DROP', 'MMLU'],
150
+ LEGAL_COMPLIANCE: ['MMLU', 'TruthfulQA'],
151
+ PROFESSIONAL_COMMUNICATION: ['SuperGLUE', 'MT-Bench'],
152
+ ACADEMIC_INSTRUCTION: ['MMLU', 'ARC'],
153
+ STUDY_ASSISTANCE: ['MMLU', 'GSM8K'],
154
+ RESEARCH_METHODOLOGY: ['MMLU', 'TruthfulQA'],
155
+ PERSONAL_ADVICE: ['Chatbot Arena (LMSys)', 'TruthfulQA', 'HellaSwag'],
156
+ RECOMMENDATIONS: ['Chatbot Arena (LMSys)', 'HellaSwag'],
157
+ // Broad-level fallbacks
158
+ TECHNICAL: ['HumanEval', 'SWE-bench', 'GSM8K'],
159
+ CREATIVE: ['MT-Bench', 'Chatbot Arena (LMSys)'],
160
+ BUSINESS: ['MMLU', 'SuperGLUE', 'DROP'],
161
+ EDUCATIONAL: ['MMLU', 'ARC', 'GSM8K'],
162
+ CONVERSATIONAL: ['Chatbot Arena (LMSys)', 'HellaSwag', 'TruthfulQA'],
163
+ };
164
+ /** Calculate keyword match score for a category. */
165
+ function scoreCategory(textLower, keywords) {
166
+ if (keywords.length === 0)
167
+ return 0.0;
168
+ let matches = 0;
169
+ let weightedMatches = 0.0;
170
+ for (const kw of keywords) {
171
+ if (textLower.includes(kw)) {
172
+ matches += 1;
173
+ // Longer keywords are more specific -> higher weight
174
+ const weight = kw.length > 5 ? 1.5 : 1.0;
175
+ weightedMatches += weight;
176
+ }
177
+ }
178
+ if (matches === 0)
179
+ return 0.0;
180
+ // Square-root normalization + match bonus
181
+ let baseScore = Math.sqrt(weightedMatches / keywords.length);
182
+ // Bonus for multiple matches
183
+ if (matches >= 3) {
184
+ baseScore += 0.2;
185
+ }
186
+ else if (matches >= 2) {
187
+ baseScore += 0.1;
188
+ }
189
+ return Math.min(1.0, baseScore);
190
+ }
191
+ /**
192
+ * Fast keyword-based classifier using hierarchical pattern matching.
193
+ *
194
+ * Two-stage classification:
195
+ * 1. Broad category (TECHNICAL, CREATIVE, BUSINESS, EDUCATIONAL, CONVERSATIONAL)
196
+ * 2. Subcategory refinement (CODE_TECHNICAL, WRITING_LITERARY, etc.)
197
+ *
198
+ * Output is mapped to benchmark similarity scores for compatibility
199
+ * with the ScoringEngine.
200
+ */
201
+ export class KeywordClassifier extends BaseClassifier {
202
+ classify(prompt) {
203
+ const start = performance.now();
204
+ const textLower = prompt.toLowerCase();
205
+ // Stage 1: Broad category
206
+ const broadScores = {};
207
+ for (const [category, keywords] of Object.entries(BROAD_PATTERNS)) {
208
+ broadScores[category] = scoreCategory(textLower, keywords);
209
+ }
210
+ let bestBroad = '';
211
+ let broadConfidence = 0;
212
+ for (const [cat, score] of Object.entries(broadScores)) {
213
+ if (score > broadConfidence) {
214
+ broadConfidence = score;
215
+ bestBroad = cat;
216
+ }
217
+ }
218
+ if (!bestBroad)
219
+ bestBroad = 'CONVERSATIONAL';
220
+ // Stage 2: Subcategory (if broad confidence is meaningful)
221
+ let bestSub = '';
222
+ let subConfidence = 0.0;
223
+ if (broadConfidence > 0.1 && SUBCATEGORY_PATTERNS[bestBroad]) {
224
+ const subScores = {};
225
+ for (const [sub, keywords] of Object.entries(SUBCATEGORY_PATTERNS[bestBroad])) {
226
+ subScores[sub] = scoreCategory(textLower, keywords);
227
+ }
228
+ for (const [sub, score] of Object.entries(subScores)) {
229
+ if (score > subConfidence) {
230
+ subConfidence = score;
231
+ bestSub = sub;
232
+ }
233
+ }
234
+ }
235
+ // Convert to benchmark scores
236
+ const finalCategory = bestSub && subConfidence > 0.05 ? bestSub : bestBroad;
237
+ const benchmarkNames = CATEGORY_TO_BENCHMARKS[finalCategory] ?? [];
238
+ const benchmarkScores = {};
239
+ const confidence = subConfidence > 0.05 ? subConfidence : broadConfidence;
240
+ for (const bench of benchmarkNames) {
241
+ benchmarkScores[bench] = confidence;
242
+ }
243
+ // Add a base score for general benchmarks
244
+ for (const bench of ['MMLU', 'Chatbot Arena (LMSys)', 'HellaSwag']) {
245
+ if (!(bench in benchmarkScores)) {
246
+ benchmarkScores[bench] = Math.max(0.05, broadConfidence * 0.3);
247
+ }
248
+ }
249
+ const elapsedMs = performance.now() - start;
250
+ return {
251
+ benchmarkScores,
252
+ broadCategory: bestBroad,
253
+ subcategory: bestSub,
254
+ confidence,
255
+ classifierUsed: 'keyword',
256
+ cacheHit: false,
257
+ processingTimeMs: elapsedMs,
258
+ };
259
+ }
260
+ isReady() {
261
+ return true; // Always ready -- no initialization needed
262
+ }
263
+ }
264
+ //# sourceMappingURL=keyword.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../src/classifiers/keyword.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * TryAii-DRE CLI.
4
+ *
5
+ * Commands (kept in parity with the Python SDK's `tryaii-dre`):
6
+ * tryaii-dre route "your prompt here" -- Route a prompt and show recommendations
7
+ * tryaii-dre eval prompts.json -- Route a JSON prompt dataset
8
+ * tryaii-dre setup -- Download the embedding model + warm centroids
9
+ * tryaii-dre models -- List available models
10
+ * tryaii-dre benchmarks -- List available benchmarks
11
+ *
12
+ * Global flags: --no-banner, --version, --help.
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}