@automatelab/citation-intelligence 0.6.0 → 0.8.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 +43 -8
  2. package/dist/adapters/anthropic.d.ts.map +1 -1
  3. package/dist/adapters/anthropic.js +4 -2
  4. package/dist/adapters/anthropic.js.map +1 -1
  5. package/dist/adapters/bing.js +1 -1
  6. package/dist/adapters/bing.js.map +1 -1
  7. package/dist/adapters/brave.js +1 -1
  8. package/dist/adapters/brave.js.map +1 -1
  9. package/dist/adapters/gemini.d.ts.map +1 -1
  10. package/dist/adapters/gemini.js +5 -1
  11. package/dist/adapters/gemini.js.map +1 -1
  12. package/dist/adapters/openai.d.ts.map +1 -1
  13. package/dist/adapters/openai.js +3 -1
  14. package/dist/adapters/openai.js.map +1 -1
  15. package/dist/adapters/perplexity.d.ts +2 -1
  16. package/dist/adapters/perplexity.d.ts.map +1 -1
  17. package/dist/adapters/perplexity.js +5 -2
  18. package/dist/adapters/perplexity.js.map +1 -1
  19. package/dist/index.js +201 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/output-schemas.d.ts +926 -0
  22. package/dist/output-schemas.d.ts.map +1 -0
  23. package/dist/output-schemas.js +512 -0
  24. package/dist/output-schemas.js.map +1 -0
  25. package/dist/tools/am-i-cited.d.ts +73 -10
  26. package/dist/tools/am-i-cited.d.ts.map +1 -1
  27. package/dist/tools/am-i-cited.js +115 -15
  28. package/dist/tools/am-i-cited.js.map +1 -1
  29. package/dist/tools/answer-box-position.d.ts +4 -4
  30. package/dist/tools/answer-box-position.js +2 -2
  31. package/dist/tools/answer-box-position.js.map +1 -1
  32. package/dist/tools/canonical-competitor-set.d.ts +4 -4
  33. package/dist/tools/canonical-competitor-set.js +6 -7
  34. package/dist/tools/canonical-competitor-set.js.map +1 -1
  35. package/dist/tools/check-citations.d.ts +11 -5
  36. package/dist/tools/check-citations.d.ts.map +1 -1
  37. package/dist/tools/check-citations.js +29 -10
  38. package/dist/tools/check-citations.js.map +1 -1
  39. package/dist/tools/citation-evidence.d.ts +4 -4
  40. package/dist/tools/citation-evidence.js +2 -2
  41. package/dist/tools/citation-evidence.js.map +1 -1
  42. package/dist/tools/citation-freshness-score.d.ts +4 -4
  43. package/dist/tools/citation-freshness-score.js +1 -1
  44. package/dist/tools/citation-freshness-score.js.map +1 -1
  45. package/dist/tools/citation-provenance.d.ts +6 -4
  46. package/dist/tools/citation-provenance.d.ts.map +1 -1
  47. package/dist/tools/citation-provenance.js +17 -8
  48. package/dist/tools/citation-provenance.js.map +1 -1
  49. package/dist/tools/cited-for-diff.d.ts +5 -5
  50. package/dist/tools/cited-for-diff.js +1 -1
  51. package/dist/tools/cited-for-diff.js.map +1 -1
  52. package/dist/tools/cited-for.d.ts +5 -5
  53. package/dist/tools/cited-for.js +1 -1
  54. package/dist/tools/cited-for.js.map +1 -1
  55. package/dist/tools/compete-for-query.d.ts +4 -4
  56. package/dist/tools/compete-for-query.js +1 -1
  57. package/dist/tools/compete-for-query.js.map +1 -1
  58. package/dist/tools/gsc-citation-gap.d.ts +5 -5
  59. package/dist/tools/gsc-citation-gap.d.ts.map +1 -1
  60. package/dist/tools/gsc-citation-gap.js +7 -2
  61. package/dist/tools/gsc-citation-gap.js.map +1 -1
  62. package/dist/tools/run-panel.d.ts +5 -5
  63. package/dist/tools/run-panel.d.ts.map +1 -1
  64. package/dist/tools/run-panel.js +13 -4
  65. package/dist/tools/run-panel.js.map +1 -1
  66. package/dist/tools/structured-data-repair.d.ts +30 -0
  67. package/dist/tools/structured-data-repair.d.ts.map +1 -0
  68. package/dist/tools/structured-data-repair.js +297 -0
  69. package/dist/tools/structured-data-repair.js.map +1 -0
  70. package/dist/types.d.ts +10 -1
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/types.js +24 -1
  73. package/dist/types.js.map +1 -1
  74. package/package.json +61 -58
  75. package/smithery.yaml +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-schemas.d.ts","sourceRoot":"","sources":["../src/output-schemas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkCxB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;CAS5B,CAAC;AAMX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBtB,CAAC;AAMX,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;CAUxB,CAAC;AAMX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;CAatB,CAAC;AAMX,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;CAU7B,CAAC;AAMX,eAAO,MAAM,uBAAuB;;;;;CAQ1B,CAAC;AAMX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUtB,CAAC;AAMX,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAMX,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAO5B,CAAC;AAMX,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;CAU/B,CAAC;AAMX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiB1B,CAAC;AAMX,eAAO,MAAM,0BAA0B;;;;;;;;;;;CAW7B,CAAC;AAMX,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;CAepC,CAAC;AAMX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B1B,CAAC;AAMX,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiB5B,CAAC;AAMX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBzB,CAAC;AAMX,eAAO,MAAM,2BAA2B;;;;;;;;;CAS9B,CAAC;AAMX,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoB/B,CAAC;AAMX,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBhC,CAAC;AAMX,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmB9B,CAAC;AAMX,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BhC,CAAC;AAMX,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBhC,CAAC;AAMX,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BpC,CAAC;AAMX,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBlC,CAAC"}
@@ -0,0 +1,512 @@
1
+ // Output schemas mirroring the result interfaces in tools/*.ts.
2
+ // Used by registerTool so MCP clients can type-check tool responses.
3
+ // Each schema captures the key top-level fields; runtime extras pass through.
4
+ import { z } from "zod";
5
+ // ---------------------------------------------------------------------------
6
+ // Shared sub-schemas
7
+ // ---------------------------------------------------------------------------
8
+ /** A single URL cited by an AI engine. */
9
+ const citationSchema = z.object({
10
+ url: z.string().describe("Cited URL."),
11
+ rank: z.number().describe("1-based citation rank."),
12
+ title: z.string().optional().describe("Page title as returned by the engine."),
13
+ snippet: z.string().optional().describe("Short excerpt the engine surfaced."),
14
+ });
15
+ /** Per-query result from amICited. */
16
+ const perQueryResultSchema = z.object({
17
+ query: z.string(),
18
+ cited: z.boolean().describe("Whether the domain was cited for this query."),
19
+ rank: z.number().optional().describe("1-based rank of the first matching citation."),
20
+ matching_urls: z.array(z.string()).describe("Matching citation URLs found."),
21
+ });
22
+ /** Summary stats used in amICited and runPanel. */
23
+ const citationSummarySchema = z.object({
24
+ queries_total: z.number(),
25
+ queries_cited: z.number(),
26
+ citation_rate: z.number().describe("Fraction of queries where domain was cited (0-1)."),
27
+ average_rank: z.number().optional().describe("Average rank across cited queries."),
28
+ });
29
+ // ---------------------------------------------------------------------------
30
+ // check_citations
31
+ // ---------------------------------------------------------------------------
32
+ export const checkCitationsOutputShape = {
33
+ query: z.string().describe("The query that was executed."),
34
+ engine: z.string().describe("Engine used for this response."),
35
+ surface: z.string().describe("Engine surface type: consumer_scrape, api_proxy, or web_rank."),
36
+ interpretation_note: z.string().describe("Guidance on how to interpret results from this engine."),
37
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp of the fetch."),
38
+ citations: z.array(citationSchema).describe("Cited URLs ordered by rank."),
39
+ raw_answer: z.string().nullable().describe("Raw answer text from the engine, if available."),
40
+ cached: z.boolean().describe("Whether the result was served from the local cache."),
41
+ };
42
+ // ---------------------------------------------------------------------------
43
+ // am_i_cited
44
+ // ---------------------------------------------------------------------------
45
+ export const amICitedOutputShape = {
46
+ domain: z.string().describe("The domain that was checked."),
47
+ mode: z.enum(["single_engine", "multi_engine"]).describe("Whether one or multiple engines were queried."),
48
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
49
+ // single-engine fields (present when mode=single_engine)
50
+ engine: z.string().optional().describe("Engine used (single_engine mode only)."),
51
+ surface: z.string().optional().describe("Engine surface type (single_engine mode only)."),
52
+ results: z.array(perQueryResultSchema).optional().describe("Per-query results (single_engine mode)."),
53
+ summary: citationSummarySchema.optional().describe("Aggregate summary (single_engine mode)."),
54
+ // multi-engine fields (present when mode=multi_engine)
55
+ engines: z.array(z.object({
56
+ engine: z.string(),
57
+ surface: z.string().optional(),
58
+ ok: z.boolean(),
59
+ queries_cited: z.number().optional(),
60
+ citation_rate: z.number().optional(),
61
+ })).optional().describe("Per-engine summary rows (multi_engine mode)."),
62
+ per_engine: z.array(z.record(z.string(), z.unknown())).optional().describe("Full per-engine detail (multi_engine mode)."),
63
+ consensus: z.record(z.string(), z.unknown()).optional().describe("Cross-engine consensus stats (multi_engine mode)."),
64
+ };
65
+ // ---------------------------------------------------------------------------
66
+ // ai_overview
67
+ // ---------------------------------------------------------------------------
68
+ export const aiOverviewOutputShape = {
69
+ query: z.string().describe("The query checked."),
70
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
71
+ ai_overview_present: z.boolean().describe("Whether Google returned an AI Overview for this query."),
72
+ ai_overview_text: z.string().nullable().describe("AI Overview text, if present."),
73
+ sources: z.array(z.object({
74
+ url: z.string(),
75
+ title: z.string().optional(),
76
+ })).describe("URLs cited in the AI Overview."),
77
+ cached: z.boolean().describe("Whether the result was served from local cache."),
78
+ };
79
+ // ---------------------------------------------------------------------------
80
+ // cited_for
81
+ // ---------------------------------------------------------------------------
82
+ export const citedForOutputShape = {
83
+ domain: z.string().describe("Domain that was looked up."),
84
+ since: z.string().optional().describe("ISO date floor applied, if any."),
85
+ engine_filter: z.string().optional().describe("Engine filter applied, if any."),
86
+ results: z.array(z.object({
87
+ query: z.string(),
88
+ engine: z.string(),
89
+ rank: z.number(),
90
+ url: z.string(),
91
+ fetched_at: z.string(),
92
+ })).describe("Cache entries where this domain was cited."),
93
+ total: z.number().describe("Total entries returned."),
94
+ source: z.literal("local_cache").describe("Always 'local_cache' — no external calls made."),
95
+ };
96
+ // ---------------------------------------------------------------------------
97
+ // predict_citation
98
+ // ---------------------------------------------------------------------------
99
+ export const predictCitationOutputShape = {
100
+ url: z.string().describe("URL that was scored."),
101
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
102
+ score: z.number().min(0).max(100).describe("0-100 citation likelihood score."),
103
+ grade: z.string().describe("Letter grade (A-F) derived from the score."),
104
+ signals: z.record(z.string(), z.unknown()).describe("Per-signal boolean/numeric values used to compute the score."),
105
+ fixes: z.array(z.object({
106
+ signal: z.string(),
107
+ suggestion: z.string(),
108
+ })).describe("Ranked list of concrete improvements to raise the score."),
109
+ };
110
+ // ---------------------------------------------------------------------------
111
+ // track_queries
112
+ // ---------------------------------------------------------------------------
113
+ export const trackQueriesOutputShape = {
114
+ // action=save
115
+ saved: z.boolean().optional().describe("True when action=save succeeded."),
116
+ panel: z.record(z.string(), z.unknown()).optional().describe("The panel object that was saved or loaded."),
117
+ // action=list
118
+ panels: z.array(z.unknown()).optional().describe("All panel names (action=list)."),
119
+ // error case
120
+ error: z.string().optional().describe("Error message when the panel was not found."),
121
+ };
122
+ // ---------------------------------------------------------------------------
123
+ // run_panel
124
+ // ---------------------------------------------------------------------------
125
+ export const runPanelOutputShape = {
126
+ saved_to: z.string().describe("Absolute file path of the snapshot that was written."),
127
+ snapshot: z.object({
128
+ panel: z.string(),
129
+ domain: z.string(),
130
+ engine: z.string(),
131
+ taken_at: z.string(),
132
+ per_query: z.array(perQueryResultSchema),
133
+ summary: citationSummarySchema,
134
+ }).describe("The snapshot that was appended."),
135
+ };
136
+ // ---------------------------------------------------------------------------
137
+ // citation_trend
138
+ // ---------------------------------------------------------------------------
139
+ export const citationTrendOutputShape = {
140
+ panel: z.string().describe("Panel name."),
141
+ domain: z.string().optional().describe("Domain tracked by the panel."),
142
+ snapshots: z.number().describe("Number of snapshots available."),
143
+ first_taken_at: z.string().optional().describe("Timestamp of the oldest snapshot."),
144
+ last_taken_at: z.string().optional().describe("Timestamp of the newest snapshot."),
145
+ series: z.array(z.object({
146
+ taken_at: z.string(),
147
+ engine: z.string(),
148
+ queries_total: z.number(),
149
+ queries_cited: z.number(),
150
+ citation_rate: z.number().describe("Citation rate at this snapshot (0-1)."),
151
+ })).describe("Time-series of citation rates, one entry per snapshot."),
152
+ query_deltas: z.array(z.object({
153
+ query: z.string(),
154
+ change: z.enum(["gained", "lost", "unchanged"]),
155
+ first: z.boolean(),
156
+ last: z.boolean(),
157
+ })).describe("Per-query changes between first and last snapshot."),
158
+ };
159
+ // ---------------------------------------------------------------------------
160
+ // compare_domains
161
+ // ---------------------------------------------------------------------------
162
+ export const compareDomainsOutputShape = {
163
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
164
+ rows: z.array(z.record(z.string(), z.unknown())).describe("Per-URL predict_citation rows (or { url, error } on failure)."),
165
+ diverging_signals: z.array(z.object({
166
+ signal: z.string().describe("Signal name where URLs differ."),
167
+ per_url: z.array(z.object({ url: z.string(), value: z.boolean() })),
168
+ })).describe("Signals where at least one URL differs from the others."),
169
+ };
170
+ // ---------------------------------------------------------------------------
171
+ // wikipedia_mentions
172
+ // ---------------------------------------------------------------------------
173
+ export const wikipediaMentionsOutputShape = {
174
+ domain: z.string().describe("Domain that was searched."),
175
+ lang: z.string().describe("Wikipedia language subdomain used."),
176
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
177
+ total: z.number().describe("Number of Wikipedia articles referencing this domain."),
178
+ mentions: z.array(z.object({
179
+ article_title: z.string().optional().describe("Wikipedia article title."),
180
+ article_url: z.string().optional().describe("Full Wikipedia article URL."),
181
+ cited_url: z.string().optional().describe("The specific external URL referenced."),
182
+ })).describe("List of Wikipedia articles that cite the domain."),
183
+ };
184
+ // ---------------------------------------------------------------------------
185
+ // audit_sitemap
186
+ // ---------------------------------------------------------------------------
187
+ export const auditSitemapOutputShape = {
188
+ sitemap_url: z.string().describe("The sitemap URL that was audited."),
189
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
190
+ total_urls: z.number().describe("Total URLs found in the sitemap."),
191
+ audited: z.number().describe("Number of URLs that were scored."),
192
+ average_score: z.number().describe("Mean predict_citation score across scored URLs."),
193
+ worst_first: z.array(z.object({
194
+ url: z.string(),
195
+ score: z.number(),
196
+ grade: z.string(),
197
+ signals: z.record(z.string(), z.unknown()),
198
+ top_fix: z.string().optional().describe("Top suggested fix for this URL."),
199
+ })).describe("Up to 20 lowest-scoring URLs, worst first."),
200
+ errors: z.array(z.object({
201
+ url: z.string(),
202
+ error: z.string(),
203
+ })).describe("URLs whose audit threw an error."),
204
+ };
205
+ // ---------------------------------------------------------------------------
206
+ // compete_for_query
207
+ // ---------------------------------------------------------------------------
208
+ export const competeForQueryOutputShape = {
209
+ query: z.string().describe("The query that was tested."),
210
+ engine: z.string().describe("Engine used for the citation fetch."),
211
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
212
+ your_url: z.string().describe("Your URL that was benchmarked."),
213
+ your_score: z.number().nullable().describe("predict_citation score for your URL (null on error)."),
214
+ your_in_citations: z.boolean().describe("Whether your URL appeared in the engine's citation list."),
215
+ competitors: z.array(z.string()).describe("Competitor URLs that were compared."),
216
+ average_competitor_score: z.number().nullable().describe("Mean score across competitor URLs."),
217
+ score_gap: z.number().nullable().describe("your_score minus average_competitor_score."),
218
+ comparison: z.record(z.string(), z.unknown()).nullable().describe("Full compare_domains result."),
219
+ };
220
+ // ---------------------------------------------------------------------------
221
+ // citation_freshness_score
222
+ // ---------------------------------------------------------------------------
223
+ export const citationFreshnessScoreOutputShape = {
224
+ query: z.string().describe("The query whose citations were scored."),
225
+ engine: z.string().describe("Engine used."),
226
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
227
+ recency_score: z.number().min(0).max(100).describe("0-100 average recency weight across cited URLs (halflife=365d)."),
228
+ average_days_old: z.number().nullable().describe("Mean age in days across URLs with a detectable dateModified."),
229
+ buckets: z.object({
230
+ fresh: z.number().describe("URLs modified within 180 days."),
231
+ current: z.number().describe("URLs modified within 181-365 days."),
232
+ stale: z.number().describe("URLs modified within 366-730 days."),
233
+ ancient: z.number().describe("URLs older than 730 days."),
234
+ unknown: z.number().describe("URLs with no detectable modification date."),
235
+ }).describe("Freshness bucket distribution."),
236
+ per_url: z.array(z.record(z.string(), z.unknown())).describe("Per-URL freshness details."),
237
+ note: z.string().optional(),
238
+ };
239
+ // ---------------------------------------------------------------------------
240
+ // cited_for_diff
241
+ // ---------------------------------------------------------------------------
242
+ export const citedForDiffOutputShape = {
243
+ domain: z.string().describe("Domain that was diffed."),
244
+ engine_filter: z.string().optional().describe("Engine filter applied, if any."),
245
+ baseline_until: z.string().describe("Upper bound of the baseline window."),
246
+ current_since: z.string().describe("Lower bound of the current window."),
247
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
248
+ counts: z.object({
249
+ baseline_unique_queries: z.number(),
250
+ current_unique_queries: z.number(),
251
+ gained: z.number().describe("Queries newly cited in the current window."),
252
+ lost: z.number().describe("Queries cited in baseline but not current."),
253
+ unchanged: z.number().describe("Queries cited in both windows."),
254
+ }),
255
+ gained: z.array(z.object({
256
+ query: z.string(),
257
+ engine: z.string(),
258
+ rank: z.number(),
259
+ fetched_at: z.string(),
260
+ url: z.string(),
261
+ })).describe("Queries gained (newly cited) since the baseline."),
262
+ lost: z.array(z.object({
263
+ query: z.string(),
264
+ engine: z.string(),
265
+ fetched_at: z.string(),
266
+ url: z.string(),
267
+ })).describe("Queries lost (were cited, no longer are)."),
268
+ unchanged_queries: z.array(z.string()).describe("Queries cited in both windows."),
269
+ source: z.literal("local_cache"),
270
+ };
271
+ // ---------------------------------------------------------------------------
272
+ // gsc_citation_gap
273
+ // ---------------------------------------------------------------------------
274
+ export const gscCitationGapOutputShape = {
275
+ domain: z.string().describe("Domain analyzed."),
276
+ site_url: z.string().describe("GSC siteUrl used."),
277
+ range: z.object({ start: z.string(), end: z.string() }).describe("GSC date range."),
278
+ engine: z.string().optional().describe("Engine used for the citation check."),
279
+ rows: z.array(z.object({
280
+ query: z.string(),
281
+ gsc: z.object({
282
+ impressions: z.number(),
283
+ clicks: z.number(),
284
+ position: z.number().optional(),
285
+ ctr: z.number().optional(),
286
+ }),
287
+ ai_cited: z.boolean().describe("Whether the domain was cited by the AI engine for this query."),
288
+ ai_rank: z.number().optional(),
289
+ })).describe("Per-query GSC + AI citation cross-reference."),
290
+ closest_wins: z.array(z.record(z.string(), z.unknown())).describe("Queries where domain ranks in Google top-10 but is not AI-cited (the editorial gap)."),
291
+ };
292
+ // ---------------------------------------------------------------------------
293
+ // schema_audit
294
+ // ---------------------------------------------------------------------------
295
+ export const schemaAuditOutputShape = {
296
+ url: z.string().describe("URL that was audited."),
297
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
298
+ json_ld_blocks: z.number().describe("Total JSON-LD blocks found."),
299
+ json_ld_parse_errors: z.number().describe("Number of JSON-LD blocks that failed to parse."),
300
+ schema_types_present: z.array(z.string()).describe("@type values found across all JSON-LD blocks."),
301
+ microdata_types_present: z.array(z.string()).describe("Schema types found via microdata (itemtype)."),
302
+ issues: z.array(z.object({
303
+ type: z.string(),
304
+ path: z.string(),
305
+ severity: z.enum(["error", "warning"]),
306
+ message: z.string(),
307
+ })).describe("Validation issues found."),
308
+ summary: z.object({
309
+ blocks: z.number(),
310
+ typed_nodes: z.number(),
311
+ errors: z.number(),
312
+ warnings: z.number(),
313
+ valid: z.boolean().describe("True when no typed node is missing a required field."),
314
+ }),
315
+ note: z.string().optional(),
316
+ };
317
+ // ---------------------------------------------------------------------------
318
+ // llms_txt_generator
319
+ // ---------------------------------------------------------------------------
320
+ export const llmsTxtGeneratorOutputShape = {
321
+ sitemap_url: z.string().describe("Sitemap URL that was processed."),
322
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
323
+ total_urls_in_sitemap: z.number().describe("Total URLs found in the sitemap."),
324
+ urls_included: z.number().describe("URLs included after applying the limit."),
325
+ titles_fetched: z.number().describe("Number of pages fetched to extract <title>."),
326
+ sections: z.number().describe("Number of top-level sections in the generated file."),
327
+ content: z.string().describe("Generated llms.txt file content; save to /llms.txt at site root."),
328
+ note: z.string().optional(),
329
+ };
330
+ // ---------------------------------------------------------------------------
331
+ // answer_box_position
332
+ // ---------------------------------------------------------------------------
333
+ export const answerBoxPositionOutputShape = {
334
+ query: z.string().describe("The query that was tested."),
335
+ engine: z.string().describe("Engine used."),
336
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
337
+ answer_chars: z.number().describe("Total length of the engine's raw answer in characters."),
338
+ citations_total: z.number().describe("Total citations returned by the engine."),
339
+ positions: z.array(z.object({
340
+ url: z.string(),
341
+ rank: z.number(),
342
+ title: z.string().optional().nullable(),
343
+ first_mention_char: z.number().nullable().describe("Character offset of first mention in raw_answer."),
344
+ position: z.enum(["early", "middle", "late", "unknown"]).describe("Third of the answer where the URL first appears."),
345
+ })).describe("Per-citation position in the AI answer."),
346
+ buckets: z.object({
347
+ early: z.number(),
348
+ middle: z.number(),
349
+ late: z.number(),
350
+ unknown: z.number(),
351
+ }).describe("Count of citations per position bucket."),
352
+ note: z.string().optional(),
353
+ };
354
+ // ---------------------------------------------------------------------------
355
+ // citation_provenance
356
+ // ---------------------------------------------------------------------------
357
+ export const citationProvenanceOutputShape = {
358
+ query: z.string().describe("The query that was fanned across engines."),
359
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
360
+ engines: z.array(z.object({
361
+ engine: z.string(),
362
+ surface: z.string().optional(),
363
+ interpretation_note: z.string().optional(),
364
+ ok: z.boolean(),
365
+ citations: z.number(),
366
+ error: z.string().optional(),
367
+ })).describe("Per-engine run summary."),
368
+ engines_queried: z.number(),
369
+ engines_succeeded: z.number(),
370
+ per_url: z.array(z.object({
371
+ url: z.string(),
372
+ cited_by: z.array(z.string()).describe("Engines that cited this URL."),
373
+ engine_count: z.number().describe("Number of engines that cited this URL."),
374
+ })).describe("All unique cited URLs sorted by cross-engine consensus (engine_count desc)."),
375
+ consensus_urls: z.array(z.string()).describe("URLs cited by ALL succeeding engines (requires >=2 engines)."),
376
+ summary: z.object({
377
+ total_unique_urls: z.number(),
378
+ consensus_count: z.number(),
379
+ median_engines_per_url: z.number(),
380
+ }),
381
+ note: z.string().optional(),
382
+ };
383
+ // ---------------------------------------------------------------------------
384
+ // citation_evidence
385
+ // ---------------------------------------------------------------------------
386
+ export const citationEvidenceOutputShape = {
387
+ query: z.string().describe("The query whose answer was analyzed."),
388
+ engine: z.string().describe("Engine used."),
389
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
390
+ raw_answer_chars: z.number().describe("Length of the engine's raw answer."),
391
+ has_raw_answer: z.boolean().describe("Whether the engine returned a raw answer."),
392
+ citations_total: z.number(),
393
+ evidence_found: z.number().describe("Citations whose URL was located in the raw answer."),
394
+ evidence: z.array(z.object({
395
+ url: z.string(),
396
+ rank: z.number(),
397
+ title: z.string().optional().nullable(),
398
+ found: z.boolean().describe("Whether the URL was found in raw_answer."),
399
+ snippet: z.string().nullable().describe("Context window around the first mention."),
400
+ nearby_quote: z.string().nullable().describe("Nearest quoted span or containing sentence."),
401
+ mention_char: z.number().nullable().describe("Character offset of first mention."),
402
+ matched: z.string().optional().describe("The candidate string that matched."),
403
+ })).describe("Per-citation evidence extracted from the raw answer."),
404
+ note: z.string().optional(),
405
+ };
406
+ // ---------------------------------------------------------------------------
407
+ // crawler_access_audit
408
+ // ---------------------------------------------------------------------------
409
+ export const crawlerAccessAuditOutputShape = {
410
+ url: z.string().describe("The URL that was audited."),
411
+ robots_url: z.string().describe("robots.txt URL that was parsed."),
412
+ robots_status: z.number().nullable().describe("HTTP status of the robots.txt fetch."),
413
+ robots_present: z.boolean().describe("Whether a non-empty robots.txt was found."),
414
+ robots_error: z.string().nullable().describe("Error message if robots.txt fetch failed."),
415
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
416
+ bots: z.array(z.object({
417
+ name: z.string(),
418
+ ua_token: z.string(),
419
+ operator: z.string(),
420
+ purpose: z.string(),
421
+ robots_allowed: z.union([z.boolean(), z.literal("unknown")]),
422
+ robots_rule: z.string().nullable(),
423
+ fetch_status: z.number().nullable(),
424
+ fetch_ok: z.boolean().nullable(),
425
+ fetch_error: z.string().nullable(),
426
+ verdict: z.enum(["allowed", "blocked", "robots_only_allowed", "robots_only_blocked", "unknown"]),
427
+ })).describe("Per-bot access verdict combining robots.txt + live UA test."),
428
+ summary: z.object({
429
+ total: z.number(),
430
+ allowed: z.number(),
431
+ blocked: z.number(),
432
+ unknown: z.number(),
433
+ }),
434
+ note: z.string().optional(),
435
+ };
436
+ // ---------------------------------------------------------------------------
437
+ // sitemap_citation_map
438
+ // ---------------------------------------------------------------------------
439
+ export const sitemapCitationMapOutputShape = {
440
+ sitemap_url: z.string().describe("The sitemap that was processed."),
441
+ domain: z.string().describe("Domain whose citation cache was queried."),
442
+ since: z.string().optional(),
443
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
444
+ total_urls: z.number().describe("Total sitemap URLs considered."),
445
+ mapped: z.number().describe("URLs found in the citation cache."),
446
+ unmapped: z.number().describe("URLs not yet seen in the citation cache."),
447
+ coverage_pct: z.number().describe("Percentage of sitemap URLs that have been cited (0-100)."),
448
+ citations_in_cache: z.number().describe("Total citation cache entries for this domain."),
449
+ mapped_urls: z.array(z.object({
450
+ url: z.string(),
451
+ citation_count: z.number(),
452
+ unique_queries: z.number(),
453
+ engines: z.array(z.string()),
454
+ last_seen: z.string(),
455
+ sample_queries: z.array(z.string()),
456
+ })).describe("Sitemap URLs present in the cache, sorted by citation count desc."),
457
+ unmapped_urls: z.array(z.object({ url: z.string() })).describe("Sitemap URLs not yet cited (up to 200)."),
458
+ note: z.string().optional(),
459
+ };
460
+ // ---------------------------------------------------------------------------
461
+ // canonical_competitor_set
462
+ // ---------------------------------------------------------------------------
463
+ export const canonicalCompetitorSetOutputShape = {
464
+ query: z.string().describe("The query that was fanned across engines."),
465
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
466
+ engines: z.array(z.object({
467
+ engine: z.string(),
468
+ ok: z.boolean(),
469
+ citations: z.number(),
470
+ error: z.string().optional(),
471
+ })).describe("Per-engine run summary."),
472
+ engines_queried: z.number(),
473
+ engines_succeeded: z.number(),
474
+ excluded_domains: z.array(z.string()).describe("Registered domains that were filtered out."),
475
+ total_unique_domains: z.number().describe("Total unique competitor domains found before top_n truncation."),
476
+ top_n: z.number().describe("Maximum domains returned."),
477
+ domains: z.array(z.object({
478
+ domain: z.string().describe("Registered domain (eTLD+1)."),
479
+ total_citations: z.number(),
480
+ engine_count: z.number().describe("Number of engines that cited this domain."),
481
+ best_rank: z.number().describe("Best (lowest) rank across all citations."),
482
+ by_engine: z.array(z.object({
483
+ engine: z.string(),
484
+ citations: z.number(),
485
+ best_rank: z.number(),
486
+ sample_urls: z.array(z.string()),
487
+ })),
488
+ top_urls: z.array(z.object({ url: z.string(), count: z.number() })).describe("Most-cited URLs for this domain."),
489
+ })).describe("Competitor domains ranked by cross-engine consensus."),
490
+ note: z.string().optional(),
491
+ };
492
+ // ---------------------------------------------------------------------------
493
+ // structured_data_repair
494
+ // ---------------------------------------------------------------------------
495
+ export const structuredDataRepairOutputShape = {
496
+ url: z.string().describe("URL that was inspected."),
497
+ fetched_at: z.string().describe("UTC ISO-8601 timestamp."),
498
+ schema_types_present: z.array(z.string()).describe("@type values already present on the page."),
499
+ signals_detected: z.record(z.string(), z.string()).describe("Content signals detected (e.g. og:type=article)."),
500
+ suggestions: z.array(z.object({
501
+ type: z.string().describe("Schema @type being suggested."),
502
+ signal: z.string().describe("Content signal that triggered this suggestion."),
503
+ ready_to_paste: z.string().describe("JSON-LD block ready to paste into <head>. Fields marked FILL: need manual completion."),
504
+ })).describe("Schema additions suggested for this page."),
505
+ summary: z.object({
506
+ types_present: z.number(),
507
+ signals_detected: z.number(),
508
+ suggestions_count: z.number(),
509
+ }),
510
+ note: z.string().optional(),
511
+ };
512
+ //# sourceMappingURL=output-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-schemas.js","sourceRoot":"","sources":["../src/output-schemas.ts"],"names":[],"mappings":"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"}