@graphext/cuery 0.4.0 → 0.5.2

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 (203) hide show
  1. package/esm/browser.d.ts +1 -1
  2. package/esm/browser.d.ts.map +1 -1
  3. package/esm/browser.js +1 -1
  4. package/esm/mod.d.ts +5 -2
  5. package/esm/mod.d.ts.map +1 -1
  6. package/esm/mod.js +7 -2
  7. package/esm/src/api.d.ts +36 -5
  8. package/esm/src/api.d.ts.map +1 -1
  9. package/esm/src/api.js +84 -37
  10. package/esm/src/apis/chatgptScraper/brightdata.js +1 -1
  11. package/esm/src/apis/chatgptScraper/oxy.js +1 -1
  12. package/esm/src/apis/chatgptScraper/scraper.js +2 -2
  13. package/esm/src/apis/hasdata/aim.js +1 -1
  14. package/esm/src/apis/hasdata/aio.js +1 -1
  15. package/esm/src/apis/hasdata/helpers.d.ts +1 -1
  16. package/esm/src/apis/hasdata/helpers.d.ts.map +1 -1
  17. package/esm/src/apis/hasdata/helpers.js +2 -2
  18. package/esm/src/assets/models.d.ts +60725 -0
  19. package/esm/src/assets/models.d.ts.map +1 -0
  20. package/esm/src/assets/models.js +71915 -0
  21. package/esm/src/helpers/async.d.ts.map +1 -0
  22. package/esm/src/{async.js → helpers/async.js} +1 -1
  23. package/esm/src/helpers/seedKeywords.d.ts.map +1 -0
  24. package/esm/src/helpers/urls.d.ts.map +1 -0
  25. package/esm/src/helpers/utils.d.ts.map +1 -0
  26. package/esm/src/llm.d.ts +35 -0
  27. package/esm/src/llm.d.ts.map +1 -0
  28. package/esm/src/llm.js +59 -0
  29. package/esm/src/providers/google.d.ts +12 -0
  30. package/esm/src/providers/google.d.ts.map +1 -0
  31. package/esm/src/providers/google.js +111 -0
  32. package/esm/src/providers/index.d.ts +13 -0
  33. package/esm/src/providers/index.d.ts.map +1 -0
  34. package/esm/src/providers/index.js +14 -0
  35. package/esm/src/providers/openai.d.ts +12 -0
  36. package/esm/src/providers/openai.d.ts.map +1 -0
  37. package/esm/src/providers/openai.js +141 -0
  38. package/esm/src/providers/pricing.d.ts +72 -0
  39. package/esm/src/providers/pricing.d.ts.map +1 -0
  40. package/esm/src/providers/pricing.js +88 -0
  41. package/esm/src/providers/registry.d.ts +20 -0
  42. package/esm/src/providers/registry.d.ts.map +1 -0
  43. package/esm/src/providers/registry.js +35 -0
  44. package/esm/src/providers/types.d.ts +49 -0
  45. package/esm/src/providers/types.d.ts.map +1 -0
  46. package/esm/src/providers/types.js +7 -0
  47. package/esm/src/response.d.ts +74 -0
  48. package/esm/src/response.d.ts.map +1 -0
  49. package/esm/src/response.js +110 -0
  50. package/esm/src/tool.d.ts +58 -0
  51. package/esm/src/tool.d.ts.map +1 -0
  52. package/esm/src/tool.js +91 -0
  53. package/esm/src/tools/brands.js +6 -6
  54. package/esm/src/tools/classifier.d.ts +80 -17
  55. package/esm/src/tools/classifier.d.ts.map +1 -1
  56. package/esm/src/tools/classifier.js +68 -80
  57. package/esm/src/tools/entities.d.ts +23 -12
  58. package/esm/src/tools/entities.d.ts.map +1 -1
  59. package/esm/src/tools/entities.js +27 -47
  60. package/esm/src/tools/funnel.js +7 -7
  61. package/esm/src/tools/generic.d.ts +17 -4
  62. package/esm/src/tools/generic.d.ts.map +1 -1
  63. package/esm/src/tools/generic.js +39 -14
  64. package/esm/src/tools/keywords.js +5 -5
  65. package/esm/src/tools/personas.d.ts +49 -2
  66. package/esm/src/tools/personas.d.ts.map +1 -1
  67. package/esm/src/tools/personas.js +59 -35
  68. package/esm/src/tools/scorer.d.ts +24 -6
  69. package/esm/src/tools/scorer.d.ts.map +1 -1
  70. package/esm/src/tools/scorer.js +27 -22
  71. package/esm/src/tools/search.d.ts.map +1 -1
  72. package/esm/src/tools/search.js +33 -9
  73. package/esm/src/tools/sentiment.d.ts +30 -8
  74. package/esm/src/tools/sentiment.d.ts.map +1 -1
  75. package/esm/src/tools/sentiment.js +33 -28
  76. package/esm/src/tools/sources.d.ts +5 -5
  77. package/esm/src/tools/sources.d.ts.map +1 -1
  78. package/esm/src/tools/sources.js +5 -6
  79. package/esm/src/tools/topics.d.ts +44 -16
  80. package/esm/src/tools/topics.d.ts.map +1 -1
  81. package/esm/src/tools/topics.js +77 -68
  82. package/esm/src/tools/translate.d.ts +22 -31
  83. package/esm/src/tools/translate.d.ts.map +1 -1
  84. package/esm/src/tools/translate.js +40 -36
  85. package/package.json +2 -1
  86. package/script/browser.d.ts +1 -1
  87. package/script/browser.d.ts.map +1 -1
  88. package/script/browser.js +1 -1
  89. package/script/mod.d.ts +5 -2
  90. package/script/mod.d.ts.map +1 -1
  91. package/script/mod.js +14 -2
  92. package/script/src/api.d.ts +36 -5
  93. package/script/src/api.d.ts.map +1 -1
  94. package/script/src/api.js +84 -35
  95. package/script/src/apis/chatgptScraper/brightdata.js +1 -1
  96. package/script/src/apis/chatgptScraper/oxy.js +1 -1
  97. package/script/src/apis/chatgptScraper/scraper.js +2 -2
  98. package/script/src/apis/hasdata/aim.js +1 -1
  99. package/script/src/apis/hasdata/aio.js +1 -1
  100. package/script/src/apis/hasdata/helpers.d.ts +1 -1
  101. package/script/src/apis/hasdata/helpers.d.ts.map +1 -1
  102. package/script/src/apis/hasdata/helpers.js +2 -2
  103. package/script/src/assets/models.d.ts +60725 -0
  104. package/script/src/assets/models.d.ts.map +1 -0
  105. package/script/src/assets/models.js +71917 -0
  106. package/script/src/helpers/async.d.ts.map +1 -0
  107. package/script/src/{async.js → helpers/async.js} +1 -1
  108. package/script/src/helpers/seedKeywords.d.ts.map +1 -0
  109. package/script/src/helpers/urls.d.ts.map +1 -0
  110. package/script/src/helpers/utils.d.ts.map +1 -0
  111. package/script/src/llm.d.ts +35 -0
  112. package/script/src/llm.d.ts.map +1 -0
  113. package/script/src/llm.js +65 -0
  114. package/script/src/providers/google.d.ts +12 -0
  115. package/script/src/providers/google.d.ts.map +1 -0
  116. package/script/src/providers/google.js +148 -0
  117. package/script/src/providers/index.d.ts +13 -0
  118. package/script/src/providers/index.d.ts.map +1 -0
  119. package/script/src/providers/index.js +24 -0
  120. package/script/src/providers/openai.d.ts +12 -0
  121. package/script/src/providers/openai.d.ts.map +1 -0
  122. package/script/src/providers/openai.js +181 -0
  123. package/script/src/providers/pricing.d.ts +72 -0
  124. package/script/src/providers/pricing.d.ts.map +1 -0
  125. package/script/src/providers/pricing.js +97 -0
  126. package/script/src/providers/registry.d.ts +20 -0
  127. package/script/src/providers/registry.d.ts.map +1 -0
  128. package/script/src/providers/registry.js +39 -0
  129. package/script/src/providers/types.d.ts +49 -0
  130. package/script/src/providers/types.d.ts.map +1 -0
  131. package/script/src/providers/types.js +8 -0
  132. package/script/src/response.d.ts +74 -0
  133. package/script/src/response.d.ts.map +1 -0
  134. package/script/src/response.js +114 -0
  135. package/script/src/tool.d.ts +58 -0
  136. package/script/src/tool.d.ts.map +1 -0
  137. package/script/src/tool.js +95 -0
  138. package/script/src/tools/brands.js +6 -6
  139. package/script/src/tools/classifier.d.ts +80 -17
  140. package/script/src/tools/classifier.d.ts.map +1 -1
  141. package/script/src/tools/classifier.js +72 -85
  142. package/script/src/tools/entities.d.ts +23 -12
  143. package/script/src/tools/entities.d.ts.map +1 -1
  144. package/script/src/tools/entities.js +29 -51
  145. package/script/src/tools/funnel.js +7 -7
  146. package/script/src/tools/generic.d.ts +17 -4
  147. package/script/src/tools/generic.d.ts.map +1 -1
  148. package/script/src/tools/generic.js +39 -14
  149. package/script/src/tools/keywords.js +5 -5
  150. package/script/src/tools/personas.d.ts +49 -2
  151. package/script/src/tools/personas.d.ts.map +1 -1
  152. package/script/src/tools/personas.js +63 -36
  153. package/script/src/tools/scorer.d.ts +24 -6
  154. package/script/src/tools/scorer.d.ts.map +1 -1
  155. package/script/src/tools/scorer.js +28 -24
  156. package/script/src/tools/search.d.ts.map +1 -1
  157. package/script/src/tools/search.js +69 -9
  158. package/script/src/tools/sentiment.d.ts +30 -8
  159. package/script/src/tools/sentiment.d.ts.map +1 -1
  160. package/script/src/tools/sentiment.js +37 -30
  161. package/script/src/tools/sources.d.ts +5 -5
  162. package/script/src/tools/sources.d.ts.map +1 -1
  163. package/script/src/tools/sources.js +4 -5
  164. package/script/src/tools/topics.d.ts +44 -16
  165. package/script/src/tools/topics.d.ts.map +1 -1
  166. package/script/src/tools/topics.js +80 -72
  167. package/script/src/tools/translate.d.ts +22 -31
  168. package/script/src/tools/translate.d.ts.map +1 -1
  169. package/script/src/tools/translate.js +43 -40
  170. package/esm/src/async.d.ts.map +0 -1
  171. package/esm/src/models.d.ts +0 -18
  172. package/esm/src/models.d.ts.map +0 -1
  173. package/esm/src/models.js +0 -48
  174. package/esm/src/openai.d.ts +0 -17
  175. package/esm/src/openai.d.ts.map +0 -1
  176. package/esm/src/openai.js +0 -136
  177. package/esm/src/tools/seedKeywords.d.ts.map +0 -1
  178. package/esm/src/urls.d.ts.map +0 -1
  179. package/esm/src/utils.d.ts.map +0 -1
  180. package/script/src/async.d.ts.map +0 -1
  181. package/script/src/models.d.ts +0 -18
  182. package/script/src/models.d.ts.map +0 -1
  183. package/script/src/models.js +0 -52
  184. package/script/src/openai.d.ts +0 -17
  185. package/script/src/openai.d.ts.map +0 -1
  186. package/script/src/openai.js +0 -175
  187. package/script/src/tools/seedKeywords.d.ts.map +0 -1
  188. package/script/src/urls.d.ts.map +0 -1
  189. package/script/src/utils.d.ts.map +0 -1
  190. /package/esm/src/{async.d.ts → helpers/async.d.ts} +0 -0
  191. /package/esm/src/{tools → helpers}/seedKeywords.d.ts +0 -0
  192. /package/esm/src/{tools → helpers}/seedKeywords.js +0 -0
  193. /package/esm/src/{urls.d.ts → helpers/urls.d.ts} +0 -0
  194. /package/esm/src/{urls.js → helpers/urls.js} +0 -0
  195. /package/esm/src/{utils.d.ts → helpers/utils.d.ts} +0 -0
  196. /package/esm/src/{utils.js → helpers/utils.js} +0 -0
  197. /package/script/src/{async.d.ts → helpers/async.d.ts} +0 -0
  198. /package/script/src/{tools → helpers}/seedKeywords.d.ts +0 -0
  199. /package/script/src/{tools → helpers}/seedKeywords.js +0 -0
  200. /package/script/src/{urls.d.ts → helpers/urls.d.ts} +0 -0
  201. /package/script/src/{urls.js → helpers/urls.js} +0 -0
  202. /package/script/src/{utils.d.ts → helpers/utils.d.ts} +0 -0
  203. /package/script/src/{utils.js → helpers/utils.js} +0 -0
package/esm/browser.d.ts CHANGED
@@ -8,5 +8,5 @@
8
8
  * @module
9
9
  */
10
10
  export * from './src/schemas/index.js';
11
- export * from './src/tools/seedKeywords.js';
11
+ export * from './src/helpers/seedKeywords.js';
12
12
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,cAAc,wBAAwB,CAAC;AAGvC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,cAAc,wBAAwB,CAAC;AAGvC,cAAc,+BAA+B,CAAC"}
package/esm/browser.js CHANGED
@@ -10,4 +10,4 @@
10
10
  // Types and schemas (no runtime dependencies)
11
11
  export * from './src/schemas/index.js';
12
12
  // Pure functions for seed keyword handling (no external dependencies)
13
- export * from './src/tools/seedKeywords.js';
13
+ export * from './src/helpers/seedKeywords.js';
package/esm/mod.d.ts CHANGED
@@ -3,19 +3,22 @@
3
3
  *
4
4
  * @module
5
5
  */
6
+ export * from './src/llm.js';
7
+ export { BatchResponse } from './src/response.js';
8
+ export { getProvider, getProviderForModel, getModelPricing, getModelInfo, calculateCost, type ModelPricing, type ModelInfo, } from './src/providers/index.js';
6
9
  export * from './src/tools/keywords.js';
7
10
  export * from './src/tools/classifier.js';
8
11
  export * from './src/tools/funnel.js';
9
12
  export * from './src/tools/personas.js';
10
13
  export * from './src/tools/search.js';
11
14
  export * from './src/tools/topics.js';
12
- export * from './src/utils.js';
15
+ export * from './src/helpers/utils.js';
13
16
  export * from './src/tools/brands.js';
14
17
  export * from './src/tools/translate.js';
15
18
  export * from './src/tools/sentiment.js';
16
19
  export * from './src/tools/sources.js';
17
20
  export * from './src/tools/entities.js';
18
- export * from './src/tools/seedKeywords.js';
21
+ export * from './src/helpers/seedKeywords.js';
19
22
  export * from './src/tools/generic.js';
20
23
  export * from './src/api.js';
21
24
  export * from './src/apis/chatgptScraper/index.js';
package/esm/mod.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACN,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,SAAS,GACd,MAAM,0BAA0B,CAAC;AAGlC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wBAAwB,CAAC"}
package/esm/mod.js CHANGED
@@ -3,19 +3,24 @@
3
3
  *
4
4
  * @module
5
5
  */
6
+ // Core LLM interface and types
7
+ export * from './src/llm.js';
8
+ export { BatchResponse } from './src/response.js';
9
+ export { getProvider, getProviderForModel, getModelPricing, getModelInfo, calculateCost, } from './src/providers/index.js';
10
+ // Tools
6
11
  export * from './src/tools/keywords.js';
7
12
  export * from './src/tools/classifier.js';
8
13
  export * from './src/tools/funnel.js';
9
14
  export * from './src/tools/personas.js';
10
15
  export * from './src/tools/search.js';
11
16
  export * from './src/tools/topics.js';
12
- export * from './src/utils.js';
17
+ export * from './src/helpers/utils.js';
13
18
  export * from './src/tools/brands.js';
14
19
  export * from './src/tools/translate.js';
15
20
  export * from './src/tools/sentiment.js';
16
21
  export * from './src/tools/sources.js';
17
22
  export * from './src/tools/entities.js';
18
- export * from './src/tools/seedKeywords.js';
23
+ export * from './src/helpers/seedKeywords.js';
19
24
  export * from './src/tools/generic.js';
20
25
  export * from './src/api.js';
21
26
  export * from './src/apis/chatgptScraper/index.js';
package/esm/src/api.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { type JobId } from './apis/chatgptScraper/index.js';
2
- import { ModelId } from './models.js';
3
2
  import { type Entity } from './schemas/entity.schema.js';
4
3
  import { type Funnel } from './schemas/funnel.schema.js';
5
4
  import type { ModelIdentifier } from './schemas/models.schema.js';
@@ -24,8 +23,40 @@ export type EnrichedModelResponse = {
24
23
  rankedBrandsInSourceTitles: Array<string>;
25
24
  rankedBrandsInSourceDomains: Array<string>;
26
25
  };
27
- export declare function queryModel(prompts: Array<string | JobId>, model: ModelIdentifier | ModelId, searchCountry?: string | null): Promise<Array<ModelResponse>>;
26
+ export declare function queryModel(prompts: Array<string | JobId>, model: ModelIdentifier, searchCountry?: string | null): Promise<Array<ModelResponse>>;
28
27
  export declare function classifyIntent(texts: Array<string>): Promise<Array<string | null>>;
28
+ export declare function extractTopics(params: {
29
+ records: Array<Record<string, unknown>>;
30
+ maxSamples?: number;
31
+ instructions?: string;
32
+ language?: string;
33
+ model?: string;
34
+ }): Promise<{
35
+ topics: {
36
+ topic: string;
37
+ subtopics: string[];
38
+ }[];
39
+ } | null>;
40
+ export declare function generatePersonas(params: {
41
+ sector: string;
42
+ market: string;
43
+ language: string;
44
+ brand?: string;
45
+ brandDomain?: string;
46
+ count?: number;
47
+ briefing?: string;
48
+ instructions?: string;
49
+ userLanguage?: string;
50
+ personas?: Array<Persona>;
51
+ model?: string;
52
+ }): Promise<{
53
+ personas: {
54
+ name: string;
55
+ description: string;
56
+ keywordSeeds: string[];
57
+ }[];
58
+ explanation: string;
59
+ } | null>;
29
60
  export declare function extractAndAssignTopics(texts: Array<string>): Promise<Array<{
30
61
  topic: string | null;
31
62
  subtopic: string | null;
@@ -36,7 +67,7 @@ export declare function assignFunnelStages(texts: Array<string>, funnel: Funnel)
36
67
  }>>;
37
68
  export declare function classifyIntoPersonas(texts: Array<string>, personas: Array<Persona>): Promise<Array<Array<string> | null>>;
38
69
  export declare function classifyBrandedNonBranded(texts: Array<string>): Promise<Array<string | null>>;
39
- export declare function extractEntities(texts: Array<string>): Promise<Array<Array<Entity>>>;
40
- export declare function scorePurchaseProbability(texts: Array<string>, numDays?: number): Promise<Array<number>>;
41
- export declare function scoreRelevance(prompts: Array<string>, context: BrandContext): Promise<Array<number>>;
70
+ export declare function extractEntities(texts: Array<string>): Promise<Array<Array<Entity> | null>>;
71
+ export declare function scorePurchaseProbability(texts: Array<string>, numDays?: number): Promise<Array<number | null>>;
72
+ export declare function scoreRelevance(prompts: Array<string>, context: BrandContext): Promise<Array<number | null>>;
42
73
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/src/api.ts"],"names":[],"mappings":"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"}
package/esm/src/api.js CHANGED
@@ -2,23 +2,23 @@
2
2
  import { fetchAIMBatch } from './apis/hasdata/aim.js';
3
3
  import { fetchAIOBatch } from './apis/hasdata/aio.js';
4
4
  import { downloadGPTSnapshots, scrapeGPTBatch } from './apis/chatgptScraper/index.js';
5
- import { classifyBatch, labelBatch } from './tools/classifier.js';
6
- import { extractEntitiesBatch } from './tools/entities.js';
5
+ import { Classifier, Labeler } from './tools/classifier.js';
6
+ import { EntityExtractor } from './tools/entities.js';
7
7
  import { funnelToTopics } from './tools/funnel.js';
8
- import { ModelId } from './models.js';
9
- import { scoreBatch } from './tools/scorer.js';
10
- import { extractTopics, assignTopics } from './tools/topics.js';
11
- import { dedent } from './utils.js';
8
+ import { cleanColumnName } from './helpers/utils.js';
9
+ import { Scorer } from './tools/scorer.js';
10
+ import { TopicExtractor, TopicAssigner } from './tools/topics.js';
11
+ import { PersonaGenerator } from './tools/personas.js';
12
+ import { dedent } from './helpers/utils.js';
12
13
  export async function queryModel(prompts, model, searchCountry = null) {
13
- const modelId = model instanceof ModelId ? model : new ModelId(model);
14
14
  let searchResults;
15
- if (modelId.equals('google/ai-overview')) {
15
+ if (model === 'google/ai-overview') {
16
16
  searchResults = await fetchAIOBatch(prompts, searchCountry, null);
17
17
  }
18
- else if (modelId.equals('google/ai-mode')) {
18
+ else if (model === 'google/ai-mode') {
19
19
  searchResults = await fetchAIMBatch(prompts, searchCountry, null);
20
20
  }
21
- else if (modelId.provider == 'openai' || modelId.name.includes('gpt-') || modelId.name.includes('chatgpt')) {
21
+ else if (model.startsWith('openai/') || model.includes('chatgpt')) {
22
22
  // JobIds are alphanumeric strings without spaces
23
23
  // (e.g., "7420410504197219329" for Oxylabs, "s_xxxxx" for Brightdata)
24
24
  // Prompts are natural language text with spaces
@@ -35,13 +35,15 @@ export async function queryModel(prompts, model, searchCountry = null) {
35
35
  }
36
36
  }
37
37
  else {
38
- throw new Error(`Unsupported model: ${modelId}`);
38
+ throw new Error(`Unsupported model: ${model}`);
39
39
  }
40
+ // Convert model identifier to column name (e.g., "google/ai-overview" -> "ai_overview")
41
+ const modelColumnName = cleanColumnName(model.split('/').pop() ?? model);
40
42
  const responses = searchResults.map((sr, i) => ({
41
43
  answer: sr.answer,
42
44
  sources: sr.sources,
43
45
  prompt: sr.prompt ?? (typeof prompts[i] === 'string' ? prompts[i] : ''),
44
- model: modelId.columnName(),
46
+ model: modelColumnName,
45
47
  searchQueries: sr.searchQueries ?? [],
46
48
  searchSources: sr.searchSources ?? []
47
49
  }));
@@ -54,20 +56,51 @@ const intentLabels = {
54
56
  };
55
57
  export async function classifyIntent(texts) {
56
58
  console.log('Classifying prompt intents...');
59
+ const classifier = new Classifier({
60
+ labels: intentLabels,
61
+ instructions: 'Classify the search query into one of the following intents: informational, navigational, transactional.'
62
+ }, { model: 'gpt-4.1-mini' });
57
63
  const textRecords = texts.map(text => ({ text }));
58
- const intents = await classifyBatch(textRecords, intentLabels, 'Classify the search query into one of the following intents: informational, navigational, transactional.', 'gpt-4.1-mini');
59
- return intents;
64
+ const intents = await classifier.batch(textRecords);
65
+ return intents.toArray();
66
+ }
67
+ export async function extractTopics(params) {
68
+ const extractor = new TopicExtractor({
69
+ maxSamples: params.maxSamples,
70
+ instructions: params.instructions,
71
+ language: params.language
72
+ }, { model: params.model ?? 'gpt-4.1-mini' });
73
+ const result = await extractor.invoke(params.records);
74
+ return result.parsed;
75
+ }
76
+ export async function generatePersonas(params) {
77
+ const generator = new PersonaGenerator({
78
+ sector: params.sector,
79
+ market: params.market,
80
+ language: params.language,
81
+ brand: params.brand,
82
+ brandDomain: params.brandDomain,
83
+ count: params.count,
84
+ briefing: params.briefing,
85
+ instructions: params.instructions,
86
+ userLanguage: params.userLanguage
87
+ }, { model: params.model ?? 'gpt-4.1' });
88
+ const result = await generator.invoke(params.personas ?? null);
89
+ return result.parsed;
60
90
  }
61
91
  export async function extractAndAssignTopics(texts) {
62
92
  console.log('Identifying topics...');
63
93
  const textRecords = texts.map(text => ({ text }));
64
- const taxonomy = await extractTopics({
65
- records: textRecords,
66
- maxSamples: 500
67
- });
94
+ const extractor = new TopicExtractor({ maxSamples: 500 }, { model: 'gpt-4.1' });
95
+ const taxonomyResult = await extractor.invoke(textRecords);
96
+ const taxonomy = taxonomyResult.parsed;
97
+ if (taxonomy == null) {
98
+ return texts.map(() => ({ topic: null, subtopic: null }));
99
+ }
68
100
  console.log('Assigning topics...');
69
- const topicLabels = await assignTopics(texts, taxonomy);
70
- return topicLabels.map(label => ({
101
+ const assigner = new TopicAssigner({ taxonomy }, { model: 'gpt-4.1-mini' });
102
+ const topicLabels = await assigner.batch(texts);
103
+ return topicLabels.toArray().map(label => ({
71
104
  topic: label?.topic ?? null,
72
105
  subtopic: label?.subtopic ?? null
73
106
  }));
@@ -75,8 +108,9 @@ export async function extractAndAssignTopics(texts) {
75
108
  export async function assignFunnelStages(texts, funnel) {
76
109
  console.log('Assigning funnel stages...');
77
110
  const funnelTopics = funnelToTopics(funnel);
78
- const funnelLabels = await assignTopics(texts, funnelTopics);
79
- return funnelLabels.map(label => ({
111
+ const assigner = new TopicAssigner({ taxonomy: funnelTopics }, { model: 'gpt-4.1-mini' });
112
+ const funnelLabels = await assigner.batch(texts);
113
+ return funnelLabels.toArray().map(label => ({
80
114
  funnelStage: label?.topic ?? null,
81
115
  funnelCategory: label?.subtopic ?? null
82
116
  }));
@@ -87,9 +121,13 @@ export async function classifyIntoPersonas(texts, personas) {
87
121
  personas.forEach(persona => {
88
122
  personaLabels[persona.name] = persona.description;
89
123
  });
124
+ const labeler = new Labeler({
125
+ labels: personaLabels,
126
+ instructions: 'Classify the search query into one or more customer personas based on the language, intent, and context.'
127
+ }, { model: 'gpt-4.1-mini' });
90
128
  const textRecords = texts.map(text => ({ text }));
91
- const personaAssignments = await labelBatch(textRecords, personaLabels, 'Classify the search query into one or more customer personas based on the language, intent, and context.', 'gpt-4.1-mini');
92
- return personaAssignments;
129
+ const personaAssignments = await labeler.batch(textRecords);
130
+ return personaAssignments.toArray();
93
131
  }
94
132
  export async function classifyBrandedNonBranded(texts) {
95
133
  console.log('Classifying prompts into branded/non-branded...');
@@ -97,18 +135,25 @@ export async function classifyBrandedNonBranded(texts) {
97
135
  'branded': 'The query explicitly mentions a specific brand name, company name, product name, or trademark. It shows clear brand awareness and intent to find information about that particular brand.',
98
136
  'non-branded': 'The query is generic and does not mention any specific brand names. It focuses on product categories, features, problems, or general information without brand specificity.'
99
137
  };
138
+ const classifier = new Classifier({
139
+ labels: brandedLabels,
140
+ instructions: 'Classify whether the search query mentions specific brands or is generic/category-based.'
141
+ }, { model: 'gpt-4.1-mini' });
100
142
  const textRecords = texts.map(text => ({ text }));
101
- const brandedClassifications = await classifyBatch(textRecords, brandedLabels, 'Classify whether the search query mentions specific brands or is generic/category-based.', 'gpt-4.1-mini');
102
- return brandedClassifications;
143
+ const brandedClassifications = await classifier.batch(textRecords);
144
+ return brandedClassifications.toArray();
103
145
  }
104
146
  export async function extractEntities(texts) {
105
- const entityDefinitions = `
106
- - brands: Any brand or companies mentioned
107
- - products: Any products or services mentioned
108
- - features: Specific features or attributes of products/services
109
- - issues: Problems or issues mentioned
110
- `;
111
- return extractEntitiesBatch(texts, entityDefinitions, '', 'gpt-4.1-mini');
147
+ const extractor = new EntityExtractor({
148
+ entityDefinitions: {
149
+ brands: 'Any brand or companies mentioned',
150
+ products: 'Any products or services mentioned',
151
+ features: 'Specific features or attributes of products/services',
152
+ issues: 'Problems or issues mentioned'
153
+ }
154
+ }, { model: 'gpt-4.1-mini' });
155
+ const result = await extractor.batch(texts);
156
+ return result.toArray();
112
157
  }
113
158
  export async function scorePurchaseProbability(texts, numDays = 30) {
114
159
  console.log('Scoring purchase probability...');
@@ -118,8 +163,9 @@ export async function scorePurchaseProbability(texts, numDays = 30) {
118
163
  in the next ${numDays} days. The input record is a text query representing a search
119
164
  that a user may perform using a traditional search engine or LLM chat.
120
165
  `);
121
- const scores = await scoreBatch(records, 'Purchase Probability', description, 'integer', 0, 100, 'gpt-4.1-mini');
122
- return scores;
166
+ const scorer = new Scorer({ name: 'Purchase Probability', description: description, type: 'integer', min: 0, max: 100 }, { model: 'gpt-4.1-mini' });
167
+ const scores = await scorer.batch(records);
168
+ return scores.toArray();
123
169
  }
124
170
  export async function scoreRelevance(prompts, context) {
125
171
  console.log('Scoring prompt relevance...');
@@ -156,6 +202,7 @@ export async function scoreRelevance(prompts, context) {
156
202
  1.0 means the keyword/prompt is highly relevant and specific to the context, e.g.
157
203
  "best CRM software for small business" for a brand selling CRM software.
158
204
  `);
159
- const scores = await scoreBatch(records, 'Prompt Relevance', description, 'number', 0.0, 1.0, 'gpt-4.1-mini');
160
- return scores;
205
+ const scorer = new Scorer({ name: 'Prompt Relevance', description: description, type: 'number', min: 0.0, max: 1.0 }, { model: 'gpt-4.1-mini' });
206
+ const scores = await scorer.batch(records);
207
+ return scores.toArray();
161
208
  }
@@ -8,7 +8,7 @@
8
8
  * 3. Download: GET /datasets/v3/snapshot/{snapshot_id}
9
9
  */
10
10
  import * as dntShim from "../../../_dnt.shims.js";
11
- import { withRetries, sleep } from '../../async.js';
11
+ import { withRetries, sleep } from '../../helpers/async.js';
12
12
  import { getAbortSignal, cleanAnswer, buildSources, buildSearchSources } from './scraper.js';
13
13
  // ============================================================================
14
14
  // Constants
@@ -8,7 +8,7 @@
8
8
  * 3. Download: GET /v1/queries/{id}/results
9
9
  */
10
10
  import * as dntShim from "../../../_dnt.shims.js";
11
- import { withRetries, sleep } from '../../async.js';
11
+ import { withRetries, sleep } from '../../helpers/async.js';
12
12
  import { getAbortSignal, cleanAnswer, buildSources } from './scraper.js';
13
13
  // ============================================================================
14
14
  // Constants
@@ -5,8 +5,8 @@
5
5
  * Uses composition: providers supply functions, this module orchestrates them.
6
6
  */
7
7
  import * as dntShim from "../../../_dnt.shims.js";
8
- import { mapParallel } from '../../async.js';
9
- import { extractDomain } from '../../urls.js';
8
+ import { mapParallel } from '../../helpers/async.js';
9
+ import { extractDomain } from '../../helpers/urls.js';
10
10
  // ============================================================================
11
11
  // Shared Utilities
12
12
  // ============================================================================
@@ -1,5 +1,5 @@
1
1
  /* eslint no-console: ["warn", { allow: ["log", "warn", "error"] }] */
2
- import { mapParallel } from '../../async.js';
2
+ import { mapParallel } from '../../helpers/async.js';
3
3
  import { fetchHasDataWithRetry, HASDATA_CONCURRENCY, parseAIM } from './helpers.js';
4
4
  export async function fetchAIM(prompt, country = null, language = null, location = null) {
5
5
  const aimEndpoint = 'https://api.hasdata.com/scrape/google/ai-mode';
@@ -1,5 +1,5 @@
1
1
  /* eslint no-console: ["warn", { allow: ["log", "warn", "error"] }] */
2
- import { mapParallel } from '../../async.js';
2
+ import { mapParallel } from '../../helpers/async.js';
3
3
  import { fetchHasDataWithRetry, HASDATA_CONCURRENCY, parseAIO } from './helpers.js';
4
4
  function aioRequestUrl(aio) {
5
5
  if (aio.pageToken && aio.hasdataLink) {
@@ -1,4 +1,4 @@
1
- import { type RetryConfig } from '../../async.js';
1
+ import { type RetryConfig } from '../../helpers/async.js';
2
2
  import type { Source } from '../../schemas/sources.schema.js';
3
3
  export declare const HASDATA_CONCURRENCY = 29;
4
4
  export declare const HASDATA_RETRY_CONFIG: RetryConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/src/apis/hasdata/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAG9D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,eAAO,MAAM,oBAAoB,EAAE,WAMlC,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED,wBAAsB,qBAAqB,CAC1C,GAAG,EAAE,MAAM,EACX,WAAW,GAAE,WAAkC,GAC7C,OAAO,CAAC,QAAQ,CAAC,CAgCnB;AAED,UAAU,QAAQ;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CACvB;AAED,UAAU,SAAS;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,SAAS;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,eAAe;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,MAAM;IACtB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACvB;AAwJD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,CAInD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAI/C"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/src/apis/hasdata/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAG9D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,eAAO,MAAM,oBAAoB,EAAE,WAMlC,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED,wBAAsB,qBAAqB,CAC1C,GAAG,EAAE,MAAM,EACX,WAAW,GAAE,WAAkC,GAC7C,OAAO,CAAC,QAAQ,CAAC,CAgCnB;AAED,UAAU,QAAQ;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CACvB;AAED,UAAU,SAAS;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,SAAS;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,eAAe;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,MAAM;IACtB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACvB;AAwJD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,CAInD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAI/C"}
@@ -1,6 +1,6 @@
1
1
  import * as dntShim from "../../../_dnt.shims.js";
2
- import { withRetries } from '../../async.js';
3
- import { extractDomain } from '../../urls.js';
2
+ import { withRetries } from '../../helpers/async.js';
3
+ import { extractDomain } from '../../helpers/urls.js';
4
4
  export const HASDATA_CONCURRENCY = 29;
5
5
  export const HASDATA_RETRY_CONFIG = {
6
6
  maxRetries: 3,