@signal4/s4 2.6.0 → 2.7.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 (75) hide show
  1. package/README.md +33 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +317 -175
  4. package/dist/cli.js.map +1 -1
  5. package/dist/cli_args.d.ts +24 -0
  6. package/dist/cli_args.d.ts.map +1 -0
  7. package/dist/cli_args.js +130 -0
  8. package/dist/cli_args.js.map +1 -0
  9. package/dist/client.d.ts +80 -3
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +128 -24
  12. package/dist/client.js.map +1 -1
  13. package/dist/format.d.ts +81 -2
  14. package/dist/format.d.ts.map +1 -1
  15. package/dist/format.js +209 -47
  16. package/dist/format.js.map +1 -1
  17. package/dist/handler_types.d.ts +10 -0
  18. package/dist/handler_types.d.ts.map +1 -1
  19. package/dist/handler_types.js +25 -0
  20. package/dist/handler_types.js.map +1 -1
  21. package/dist/handlers/ads.js +4 -4
  22. package/dist/handlers/ads.js.map +1 -1
  23. package/dist/handlers/analyze.d.ts.map +1 -1
  24. package/dist/handlers/analyze.js +22 -6
  25. package/dist/handlers/analyze.js.map +1 -1
  26. package/dist/handlers/bookmarks.js +2 -2
  27. package/dist/handlers/bookmarks.js.map +1 -1
  28. package/dist/handlers/claim_detail.js +2 -2
  29. package/dist/handlers/claim_detail.js.map +1 -1
  30. package/dist/handlers/claims.d.ts.map +1 -1
  31. package/dist/handlers/claims.js +81 -26
  32. package/dist/handlers/claims.js.map +1 -1
  33. package/dist/handlers/count.d.ts +7 -0
  34. package/dist/handlers/count.d.ts.map +1 -0
  35. package/dist/handlers/count.js +146 -0
  36. package/dist/handlers/count.js.map +1 -0
  37. package/dist/handlers/explore.d.ts.map +1 -1
  38. package/dist/handlers/explore.js +53 -14
  39. package/dist/handlers/explore.js.map +1 -1
  40. package/dist/handlers/registry.d.ts.map +1 -1
  41. package/dist/handlers/registry.js +5 -1
  42. package/dist/handlers/registry.js.map +1 -1
  43. package/dist/handlers/reports.d.ts +1 -0
  44. package/dist/handlers/reports.d.ts.map +1 -1
  45. package/dist/handlers/reports.js +47 -11
  46. package/dist/handlers/reports.js.map +1 -1
  47. package/dist/handlers/search.d.ts.map +1 -1
  48. package/dist/handlers/search.js +70 -22
  49. package/dist/handlers/search.js.map +1 -1
  50. package/dist/handlers/timeline.d.ts.map +1 -1
  51. package/dist/handlers/timeline.js +14 -8
  52. package/dist/handlers/timeline.js.map +1 -1
  53. package/dist/http.js +25 -3
  54. package/dist/http.js.map +1 -1
  55. package/dist/index.js +2 -2
  56. package/dist/index.js.map +1 -1
  57. package/dist/provenance.d.ts +29 -2
  58. package/dist/provenance.d.ts.map +1 -1
  59. package/dist/provenance.js +63 -4
  60. package/dist/provenance.js.map +1 -1
  61. package/dist/server_core.d.ts +8 -1
  62. package/dist/server_core.d.ts.map +1 -1
  63. package/dist/server_core.js +90 -8
  64. package/dist/server_core.js.map +1 -1
  65. package/dist/speed.d.ts +40 -0
  66. package/dist/speed.d.ts.map +1 -0
  67. package/dist/speed.js +196 -0
  68. package/dist/speed.js.map +1 -0
  69. package/dist/surface.d.ts +7 -0
  70. package/dist/surface.d.ts.map +1 -0
  71. package/dist/surface.js +18 -0
  72. package/dist/surface.js.map +1 -0
  73. package/dist/types.d.ts +155 -8
  74. package/dist/types.d.ts.map +1 -1
  75. package/package.json +3 -2
package/dist/client.d.ts CHANGED
@@ -1,6 +1,29 @@
1
1
  /** HTTP client wrapping the Signal4 REST API. */
2
- import type { QuoteSearchResult, TrendResult, TopicVolumeResult, SpeakerProfile, SpeakerSearchResult, SpeakerSegmentsResult, ChannelProfile, EpisodeDetail, TranscriptResult, SegmentDetail, ThreadResult, SegmentSentencesResult, AnalysisResult, BriefingResult, PlatformStats, ProjectStats, TopSpeaker, TopChannel, NetworkResult, AdStats, AdvertiserDetail, Bookmark, WhoamiResult, TopicCluster, ClaimsSearchResult, ClaimDetailResult, ClaimObservationsResult, RelatedClaimsResult, TimelineResult, ClaimsTopicAnalysis, ClaimsTrendResult, ClaimsContradictionsResult, ClaimsCompareResult, ChannelDossierResult, ChannelCompareResult, EntitySearchResult, EntityClaimsResult, ClaimGraphResult, TopClaimsResult } from "./types.js";
2
+ import type { QuoteSearchResult, TrendResult, TopicVolumeResult, SpeakerProfile, SpeakerSearchResult, SpeakerSegmentsResult, ChannelProfile, EpisodeDetail, TranscriptResult, SegmentDetail, ThreadResult, SegmentSentencesResult, AnalysisResult, BriefingResult, PlatformStats, ProjectStats, TopSpeaker, TopChannel, NetworkResult, AdStats, AdvertiserDetail, Bookmark, WhoamiResult, TopicCluster, ClaimsSearchResult, ClaimDetailResult, ClaimObservationsResult, RelatedClaimsResult, TimelineResult, CountResult, ClaimsTopicAnalysis, ClaimsTrendResult, ClaimsContradictionsResult, ClaimsCompareResult, ChannelDossierResult, ChannelCompareResult, EntitySearchResult, EntityClaimsResult, ClaimGraphResult, TopClaimsResult } from "./types.js";
3
3
  export declare function withApiKey<T>(key: string, fn: () => T): T;
4
+ export declare function setUserAgent(ua: string): void;
5
+ /**
6
+ * One readable line for a failed response, prefixed `HTTP <status>: ` (handlers match on it).
7
+ *
8
+ * A JSON body's string `detail` is the message. A list `detail` (FastAPI validation)
9
+ * stays JSON so translate422 can render it. An HTML body is never passed through: it is
10
+ * a proxy's error page — Cloudflare replaces an origin 502/504 with its own, and a slow
11
+ * request can hit its 524 — and dumping it gave agents a page of markup instead of the
12
+ * one thing to do next (signal4#226).
13
+ */
14
+ export declare function describeHttpError(status: number, body: string, contentType?: string): string;
15
+ /**
16
+ * Search the corpus for quotes.
17
+ *
18
+ * `project` is optional and there is NO default. It used to default to
19
+ * "Big_Channels" here and in eleven sibling functions below, which quietly cut
20
+ * the searchable corpus to one curated project — measured at 50 matching
21
+ * segments in, 13 out — with nothing in the request or the response saying so
22
+ * (signal4-core#563). Omitting it now means the whole corpus; the response's
23
+ * `scope` says which applied, and every formatter prints it.
24
+ *
25
+ * Do not reintroduce a default here. If a caller wants one project, they say so.
26
+ */
4
27
  export declare function searchQuotes(params: {
5
28
  topic?: string;
6
29
  speaker_name?: string;
@@ -52,6 +75,8 @@ export declare function detectTrend(params: {
52
75
  country?: string;
53
76
  political_lean_min?: number;
54
77
  political_lean_max?: number;
78
+ start_date?: string;
79
+ end_date?: string;
55
80
  }): Promise<TrendResult>;
56
81
  export declare function searchClaims(params: {
57
82
  topic?: string;
@@ -154,6 +179,18 @@ export declare function getDiscourseSummary(params: {
154
179
  max_topics?: number;
155
180
  }): Promise<BriefingResult>;
156
181
  export declare function getReportStats(days?: number): Promise<PlatformStats>;
182
+ export interface CollectionsResult {
183
+ collections: Array<{
184
+ key: string;
185
+ label?: string;
186
+ description?: string;
187
+ channels?: number;
188
+ enabled?: boolean;
189
+ }>;
190
+ aliases?: Record<string, string>;
191
+ default?: string;
192
+ }
193
+ export declare function getCollections(): Promise<CollectionsResult>;
157
194
  export declare function getProjectStats(): Promise<ProjectStats>;
158
195
  export declare function getTopChannels(params: {
159
196
  days?: number;
@@ -163,6 +200,9 @@ export declare function getTopChannels(params: {
163
200
  political_lean_min?: number;
164
201
  political_lean_max?: number;
165
202
  topic?: string;
203
+ project?: string;
204
+ start_date?: string;
205
+ end_date?: string;
166
206
  }): Promise<TopChannel[] | {
167
207
  channels?: TopChannel[];
168
208
  results?: TopChannel[];
@@ -188,6 +228,10 @@ export declare function getTopSpeakers(params: {
188
228
  political_lean_min?: number;
189
229
  political_lean_max?: number;
190
230
  topic?: string;
231
+ country?: string;
232
+ project?: string;
233
+ start_date?: string;
234
+ end_date?: string;
191
235
  }): Promise<TopSpeaker[] | {
192
236
  speakers?: TopSpeaker[];
193
237
  results?: TopSpeaker[];
@@ -197,6 +241,7 @@ export declare function getSpeakerNetwork(params: {
197
241
  days?: number;
198
242
  limit?: number;
199
243
  language?: string;
244
+ project?: string;
200
245
  }): Promise<NetworkResult>;
201
246
  export declare function getTopics(params: {
202
247
  language?: string;
@@ -281,6 +326,8 @@ export declare function analyzeTopicClaims(params: {
281
326
  language?: string;
282
327
  days?: number;
283
328
  min_observations?: number;
329
+ start_date?: string;
330
+ end_date?: string;
284
331
  }): Promise<ClaimsTopicAnalysis>;
285
332
  /** Detect whether a topic is surging/fading by claim volume — recent vs baseline window. */
286
333
  export declare function detectTrendClaims(params: {
@@ -289,6 +336,7 @@ export declare function detectTrendClaims(params: {
289
336
  recent_days?: number;
290
337
  baseline_days?: number;
291
338
  min_similarity?: number;
339
+ language?: string;
292
340
  }): Promise<ClaimsTrendResult>;
293
341
  /** Find a speaker's contradictory claims on a topic via stance + entity overlap. */
294
342
  export declare function checkContradictionsClaims(params: {
@@ -296,6 +344,8 @@ export declare function checkContradictionsClaims(params: {
296
344
  speaker_name: string;
297
345
  project?: string;
298
346
  days?: number;
347
+ start_date?: string;
348
+ end_date?: string;
299
349
  }): Promise<ClaimsContradictionsResult>;
300
350
  /** Compare 2-5 speakers' claims on a topic — side-by-side stance breakdown. */
301
351
  export declare function compareSpeakersClaims(params: {
@@ -303,6 +353,9 @@ export declare function compareSpeakersClaims(params: {
303
353
  speaker_names: string[];
304
354
  project?: string;
305
355
  days?: number;
356
+ start_date?: string;
357
+ end_date?: string;
358
+ language?: string;
306
359
  }): Promise<ClaimsCompareResult>;
307
360
  /** Claims dossier for one or more channels (shows) on a topic. */
308
361
  export declare function buildChannelDossier(params: {
@@ -341,8 +394,8 @@ export declare function getEntityClaims(params: {
341
394
  offset?: number;
342
395
  project?: string;
343
396
  }): Promise<EntityClaimsResult>;
344
- /** A claim's parent, children, and sibling (variant) claims. */
345
- export declare function getClaimGraph(claimId: number): Promise<ClaimGraphResult>;
397
+ /** A claim's parent, children, and sibling (variant) claims, optionally within one collection. */
398
+ export declare function getClaimGraph(claimId: number, project?: string): Promise<ClaimGraphResult>;
346
399
  /** Leaderboard of the most widely-spread or most-contested claims. */
347
400
  export declare function getTopClaims(params: {
348
401
  metric?: string;
@@ -351,6 +404,9 @@ export declare function getTopClaims(params: {
351
404
  min_observations?: number;
352
405
  limit?: number;
353
406
  project?: string;
407
+ start_date?: string;
408
+ end_date?: string;
409
+ language?: string;
354
410
  }): Promise<TopClaimsResult>;
355
411
  export declare function getTimeline(params: {
356
412
  topic: string;
@@ -363,6 +419,27 @@ export declare function getTimeline(params: {
363
419
  granularity?: string;
364
420
  min_similarity?: number;
365
421
  }): Promise<TimelineResult>;
422
+ export declare function countMentions(params: {
423
+ topic?: string;
424
+ topics?: string[];
425
+ mode?: "semantic" | "keyword";
426
+ group_by?: string;
427
+ days?: number;
428
+ start_date?: string;
429
+ end_date?: string;
430
+ project?: string;
431
+ speaker_name?: string;
432
+ speaker_id?: number;
433
+ channel_names?: string[];
434
+ language?: string[];
435
+ country?: string;
436
+ political_lean_min?: number;
437
+ political_lean_max?: number;
438
+ min_similarity?: number;
439
+ limit?: number;
440
+ offset?: number;
441
+ order?: "segments" | "date";
442
+ }): Promise<CountResult>;
366
443
  export declare function whoami(): Promise<WhoamiResult>;
367
444
  export interface ManifestTool {
368
445
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -19,16 +19,57 @@ function getApiKey() {
19
19
  function getClientId() {
20
20
  return process.env.SIGNAL4_CLIENT_ID ?? "";
21
21
  }
22
+ // Default UA covers both MCP entry points; the CLI overrides at startup so
23
+ // backend usage stats can tell interactive MCP from scripted CLI traffic.
24
+ let userAgent = "Signal4-MCP/1.0";
25
+ export function setUserAgent(ua) {
26
+ userAgent = ua;
27
+ }
22
28
  function headers(extra) {
23
29
  const h = {
24
30
  "X-API-Key": getApiKey(),
25
- "User-Agent": "Signal4-MCP/1.0",
31
+ "User-Agent": userAgent,
26
32
  };
27
33
  const clientId = getClientId();
28
34
  if (clientId)
29
35
  h["X-Client-Id"] = clientId;
30
36
  return { ...h, ...extra };
31
37
  }
38
+ /**
39
+ * One readable line for a failed response, prefixed `HTTP <status>: ` (handlers match on it).
40
+ *
41
+ * A JSON body's string `detail` is the message. A list `detail` (FastAPI validation)
42
+ * stays JSON so translate422 can render it. An HTML body is never passed through: it is
43
+ * a proxy's error page — Cloudflare replaces an origin 502/504 with its own, and a slow
44
+ * request can hit its 524 — and dumping it gave agents a page of markup instead of the
45
+ * one thing to do next (signal4#226).
46
+ */
47
+ export function describeHttpError(status, body, contentType = "") {
48
+ const text = body.trim();
49
+ if (/json/i.test(contentType) || text.startsWith("{")) {
50
+ try {
51
+ const j = JSON.parse(text);
52
+ if (typeof j.detail === "string")
53
+ return `HTTP ${status}: ${j.detail}`;
54
+ if (typeof j.error === "string")
55
+ return `HTTP ${status}: ${j.error}`;
56
+ if (j.detail !== undefined)
57
+ return `HTTP ${status}: ${JSON.stringify({ detail: j.detail }).slice(0, 600)}`;
58
+ }
59
+ catch { /* not JSON after all */ }
60
+ }
61
+ if (/html/i.test(contentType) || /^<(!doctype|html|head|body)/i.test(text)) {
62
+ if (status === 504 || status === 524) {
63
+ return `HTTP ${status}: the request ran past the gateway time limit before the API answered. ` +
64
+ "Narrow start_date/end_date, add a speaker, channel or collection filter, or use mode='keyword'.";
65
+ }
66
+ if (status === 502 || status === 503 || status === 520 || status === 521 || status === 522) {
67
+ return `HTTP ${status}: the Signal4 API is unreachable or restarting — try again in a minute.`;
68
+ }
69
+ return `HTTP ${status}: the gateway returned an error page instead of an API response.`;
70
+ }
71
+ return `HTTP ${status}: ${text.replace(/\s+/g, " ").slice(0, 300)}`;
72
+ }
32
73
  function stripNone(obj) {
33
74
  const out = {};
34
75
  for (const [k, v] of Object.entries(obj)) {
@@ -59,7 +100,7 @@ async function request(method, path, body, timeout = DEFAULT_TIMEOUT) {
59
100
  }
60
101
  if (!resp.ok) {
61
102
  const text = await resp.text().catch(() => "");
62
- throw new Error(`HTTP ${resp.status}: ${text.slice(0, 300)}`);
103
+ throw new Error(describeHttpError(resp.status, text, resp.headers.get("content-type") ?? ""));
63
104
  }
64
105
  return (await resp.json());
65
106
  }
@@ -90,12 +131,24 @@ function delay(ms) {
90
131
  // ---------------------------------------------------------------------------
91
132
  // Search
92
133
  // ---------------------------------------------------------------------------
134
+ /**
135
+ * Search the corpus for quotes.
136
+ *
137
+ * `project` is optional and there is NO default. It used to default to
138
+ * "Big_Channels" here and in eleven sibling functions below, which quietly cut
139
+ * the searchable corpus to one curated project — measured at 50 matching
140
+ * segments in, 13 out — with nothing in the request or the response saying so
141
+ * (signal4-core#563). Omitting it now means the whole corpus; the response's
142
+ * `scope` says which applied, and every formatter prints it.
143
+ *
144
+ * Do not reintroduce a default here. If a caller wants one project, they say so.
145
+ */
93
146
  export async function searchQuotes(params) {
94
147
  return request("POST", "/api/v1/search/quotes", stripNone({
95
- project: params.project ?? "Big_Channels",
148
+ project: params.project,
96
149
  topic: params.topic,
97
150
  speaker_name: params.speaker_name,
98
- speaker_identity_id: params.speaker_identity_id,
151
+ canonical_speaker_id: params.speaker_identity_id,
99
152
  channel_names: params.channel_names,
100
153
  channel_ids: params.channel_ids,
101
154
  start_date: params.start_date,
@@ -125,7 +178,7 @@ export async function searchQuotes(params) {
125
178
  */
126
179
  export async function getTopicVolume(params) {
127
180
  return request("POST", "/api/v1/search/quotes/volume", stripNone({
128
- project: params.project ?? "Big_Channels",
181
+ project: params.project,
129
182
  topic: params.topic,
130
183
  language: params.language,
131
184
  recent_days: params.recent_days ?? 7,
@@ -135,7 +188,9 @@ export async function getTopicVolume(params) {
135
188
  }
136
189
  export async function detectTrend(params) {
137
190
  return request("POST", "/api/v1/search/quotes/trend", stripNone({
138
- project: params.project ?? "Big_Channels",
191
+ project: params.project,
192
+ start_date: params.start_date,
193
+ end_date: params.end_date,
139
194
  topic: params.topic,
140
195
  speaker_name: params.speaker_name,
141
196
  channel_names: params.channel_names,
@@ -150,7 +205,7 @@ export async function detectTrend(params) {
150
205
  }
151
206
  export async function searchClaims(params) {
152
207
  return request("POST", "/api/v1/search/claims", stripNone({
153
- project: params.project ?? "Big_Channels",
208
+ project: params.project,
154
209
  source: params.source,
155
210
  topic: params.topic,
156
211
  entity: params.entity,
@@ -190,7 +245,7 @@ export async function getSpeakerByName(name) {
190
245
  }
191
246
  export async function getSpeakerSegments(params) {
192
247
  const qs = new URLSearchParams(stripNone({
193
- identity_id: String(params.identity_id),
248
+ canonical_speaker_id: String(params.identity_id),
194
249
  days: String(params.days ?? 30),
195
250
  limit: String(params.limit ?? 50),
196
251
  offset: String(params.offset ?? 0),
@@ -271,7 +326,6 @@ export async function analyze(params) {
271
326
  const body = stripNone({
272
327
  query: params.query,
273
328
  workflow: params.workflow ?? "simple_rag",
274
- dashboard_id: params.project ?? "big_channels",
275
329
  projects: params.project ? [params.project] : undefined,
276
330
  speaker_name: params.speaker_name,
277
331
  speaker_names: params.speaker_names,
@@ -297,7 +351,7 @@ export async function analyze(params) {
297
351
  });
298
352
  if (!resp.ok) {
299
353
  const text = await resp.text().catch(() => "");
300
- throw new Error(`HTTP ${resp.status}: ${text.slice(0, 300)}`);
354
+ throw new Error(describeHttpError(resp.status, text, resp.headers.get("content-type") ?? ""));
301
355
  }
302
356
  let themes = [];
303
357
  let summary = "";
@@ -429,7 +483,8 @@ export async function analyze(params) {
429
483
  // ---------------------------------------------------------------------------
430
484
  export async function getDiscourseSummary(params) {
431
485
  const qs = new URLSearchParams(stripNone({
432
- projects: params.project ?? "Big_Channels",
486
+ // The endpoint requires a value; "all" is its own token for the whole corpus.
487
+ projects: params.project ?? "all",
433
488
  days: String(params.days ?? 3),
434
489
  max_topics: params.max_topics ? String(params.max_topics) : undefined,
435
490
  }));
@@ -441,11 +496,17 @@ export async function getDiscourseSummary(params) {
441
496
  export async function getReportStats(days = 30) {
442
497
  return request("GET", `/api/v1/report/stats?days=${days}`);
443
498
  }
499
+ export async function getCollections() {
500
+ return request("GET", "/api/v1/collections");
501
+ }
444
502
  export async function getProjectStats() {
445
503
  return request("GET", "/api/v1/report/project-stats");
446
504
  }
447
505
  export async function getTopChannels(params) {
448
506
  const qs = new URLSearchParams(stripNone({
507
+ collections: params.project,
508
+ start_date: params.start_date,
509
+ end_date: params.end_date,
449
510
  days: String(params.days ?? 30),
450
511
  limit: String(params.limit ?? 15),
451
512
  language: params.language,
@@ -465,21 +526,26 @@ export async function getChannelOverview(params) {
465
526
  }
466
527
  export async function getTopSpeakers(params) {
467
528
  const qs = new URLSearchParams(stripNone({
529
+ start_date: params.start_date,
530
+ end_date: params.end_date,
468
531
  days: String(params.days ?? 30),
469
532
  limit: String(params.limit ?? 15),
470
533
  ranking: params.ranking,
471
534
  political_lean_min: params.political_lean_min != null ? String(params.political_lean_min) : undefined,
472
535
  political_lean_max: params.political_lean_max != null ? String(params.political_lean_max) : undefined,
473
536
  topic: params.topic,
537
+ country: params.country,
538
+ projects: params.project,
474
539
  }));
475
540
  return request("GET", `/api/v1/report/speakers/top?${qs}`);
476
541
  }
477
542
  export async function getSpeakerNetwork(params) {
478
- const qs = new URLSearchParams({
543
+ const qs = new URLSearchParams(stripNone({
479
544
  days: String(params.days ?? 30),
480
545
  limit: String(params.limit ?? 20),
481
546
  language: params.language ?? "en",
482
- });
547
+ projects: params.project,
548
+ }));
483
549
  return request("GET", `/api/v1/report/speakers/network?${qs}`);
484
550
  }
485
551
  export async function getTopics(params) {
@@ -564,7 +630,9 @@ export async function getRelatedClaims(claimId) {
564
630
  /** Analyze a topic over canonical claims — themes grouped by category with observation stats. */
565
631
  export async function analyzeTopicClaims(params) {
566
632
  return request("POST", "/api/v1/analysis/claims/topic", stripNone({
567
- project: params.project ?? "Big_Channels",
633
+ project: params.project,
634
+ start_date: params.start_date,
635
+ end_date: params.end_date,
568
636
  topic: params.topic,
569
637
  speaker_name: params.speaker_name,
570
638
  channel_names: params.channel_names,
@@ -576,7 +644,8 @@ export async function analyzeTopicClaims(params) {
576
644
  /** Detect whether a topic is surging/fading by claim volume — recent vs baseline window. */
577
645
  export async function detectTrendClaims(params) {
578
646
  return request("POST", "/api/v1/analysis/claims/trend", stripNone({
579
- project: params.project ?? "Big_Channels",
647
+ project: params.project,
648
+ language: params.language,
580
649
  topic: params.topic,
581
650
  recent_days: params.recent_days ?? 7,
582
651
  baseline_days: params.baseline_days ?? 30,
@@ -586,7 +655,9 @@ export async function detectTrendClaims(params) {
586
655
  /** Find a speaker's contradictory claims on a topic via stance + entity overlap. */
587
656
  export async function checkContradictionsClaims(params) {
588
657
  return request("POST", "/api/v1/analysis/claims/contradictions", stripNone({
589
- project: params.project ?? "Big_Channels",
658
+ project: params.project,
659
+ start_date: params.start_date,
660
+ end_date: params.end_date,
590
661
  topic: params.topic,
591
662
  speaker_name: params.speaker_name,
592
663
  days: params.days ?? 365,
@@ -595,7 +666,10 @@ export async function checkContradictionsClaims(params) {
595
666
  /** Compare 2-5 speakers' claims on a topic — side-by-side stance breakdown. */
596
667
  export async function compareSpeakersClaims(params) {
597
668
  return request("POST", "/api/v1/analysis/claims/compare", stripNone({
598
- project: params.project ?? "Big_Channels",
669
+ project: params.project,
670
+ start_date: params.start_date,
671
+ end_date: params.end_date,
672
+ language: params.language,
599
673
  topic: params.topic,
600
674
  speaker_names: params.speaker_names,
601
675
  days: params.days ?? 90,
@@ -604,7 +678,7 @@ export async function compareSpeakersClaims(params) {
604
678
  /** Claims dossier for one or more channels (shows) on a topic. */
605
679
  export async function buildChannelDossier(params) {
606
680
  return request("POST", "/api/v1/analysis/claims/channel-dossier", stripNone({
607
- project: params.project ?? "Big_Channels",
681
+ project: params.project,
608
682
  topic: params.topic,
609
683
  channel_names: params.channel_names,
610
684
  days: params.days ?? 180,
@@ -613,7 +687,7 @@ export async function buildChannelDossier(params) {
613
687
  /** Compare 2-5 channels' claims on a topic — stance breakdown + speaker overlap. */
614
688
  export async function compareChannelsClaims(params) {
615
689
  return request("POST", "/api/v1/analysis/claims/channel-compare", stripNone({
616
- project: params.project ?? "Big_Channels",
690
+ project: params.project,
617
691
  topic: params.topic,
618
692
  channel_names: params.channel_names,
619
693
  days: params.days ?? 90,
@@ -622,7 +696,7 @@ export async function compareChannelsClaims(params) {
622
696
  /** Contradictory claims a channel platforms on a topic (both sides aired). */
623
697
  export async function checkChannelContradictionsClaims(params) {
624
698
  return request("POST", "/api/v1/analysis/claims/channel-contradictions", stripNone({
625
- project: params.project ?? "Big_Channels",
699
+ project: params.project,
626
700
  topic: params.topic,
627
701
  channel_names: params.channel_names,
628
702
  days: params.days ?? 365,
@@ -652,13 +726,17 @@ export async function getEntityClaims(params) {
652
726
  }));
653
727
  return request("GET", `/api/v1/claims/entity/${encodeURIComponent(params.name)}?${qs}`);
654
728
  }
655
- /** A claim's parent, children, and sibling (variant) claims. */
656
- export async function getClaimGraph(claimId) {
657
- return request("GET", `/api/v1/claims/${claimId}/graph`);
729
+ /** A claim's parent, children, and sibling (variant) claims, optionally within one collection. */
730
+ export async function getClaimGraph(claimId, project) {
731
+ const qs = project ? `?${new URLSearchParams({ collection: project })}` : "";
732
+ return request("GET", `/api/v1/claims/${claimId}/graph${qs}`);
658
733
  }
659
734
  /** Leaderboard of the most widely-spread or most-contested claims. */
660
735
  export async function getTopClaims(params) {
661
736
  const qs = new URLSearchParams(stripNone({
737
+ start_date: params.start_date,
738
+ end_date: params.end_date,
739
+ language: params.language,
662
740
  metric: params.metric ?? "spread",
663
741
  days: String(params.days ?? 30),
664
742
  category: params.category,
@@ -673,7 +751,7 @@ export async function getTopClaims(params) {
673
751
  // ---------------------------------------------------------------------------
674
752
  export async function getTimeline(params) {
675
753
  return request("POST", "/api/v1/search/quotes/timeline", stripNone({
676
- project: params.project ?? "Big_Channels",
754
+ project: params.project,
677
755
  topic: params.topic,
678
756
  speaker_name: params.speaker_name,
679
757
  channel_names: params.channel_names,
@@ -685,6 +763,32 @@ export async function getTimeline(params) {
685
763
  }));
686
764
  }
687
765
  // ---------------------------------------------------------------------------
766
+ // Count
767
+ // ---------------------------------------------------------------------------
768
+ export async function countMentions(params) {
769
+ return request("POST", "/api/v1/search/quotes/count", stripNone({
770
+ project: params.project,
771
+ topic: params.topic,
772
+ topics: params.topics,
773
+ mode: params.mode,
774
+ group_by: params.group_by,
775
+ days: params.days,
776
+ start_date: params.start_date,
777
+ end_date: params.end_date,
778
+ speaker_name: params.speaker_name,
779
+ speaker_id: params.speaker_id,
780
+ channel_names: params.channel_names,
781
+ language: params.language,
782
+ country: params.country,
783
+ political_lean_min: params.political_lean_min,
784
+ political_lean_max: params.political_lean_max,
785
+ min_similarity: params.min_similarity,
786
+ limit: params.limit,
787
+ offset: params.offset,
788
+ order: params.order,
789
+ }));
790
+ }
791
+ // ---------------------------------------------------------------------------
688
792
  // Auth / Identity
689
793
  // ---------------------------------------------------------------------------
690
794
  export async function whoami() {