@bisibility/sdk 0.15.0 → 0.17.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 (125) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +107 -2
  3. package/dist/ai-research-catalog.d.ts +39 -0
  4. package/dist/ai-research-catalog.d.ts.map +1 -0
  5. package/dist/ai-research-catalog.js +2 -0
  6. package/dist/ai-research-catalog.js.map +1 -0
  7. package/dist/ai-tracking-catalog-methods.d.ts +18 -0
  8. package/dist/ai-tracking-catalog-methods.d.ts.map +1 -0
  9. package/dist/ai-tracking-catalog-methods.js +49 -0
  10. package/dist/ai-tracking-catalog-methods.js.map +1 -0
  11. package/dist/ai-tracking-methods.d.ts +35 -0
  12. package/dist/ai-tracking-methods.d.ts.map +1 -0
  13. package/dist/ai-tracking-methods.js +15 -0
  14. package/dist/ai-tracking-methods.js.map +1 -0
  15. package/dist/ai-tracking-run-methods.d.ts +20 -0
  16. package/dist/ai-tracking-run-methods.d.ts.map +1 -0
  17. package/dist/ai-tracking-run-methods.js +59 -0
  18. package/dist/ai-tracking-run-methods.js.map +1 -0
  19. package/dist/ai-tracking-suggestion-methods.d.ts +9 -0
  20. package/dist/ai-tracking-suggestion-methods.d.ts.map +1 -0
  21. package/dist/ai-tracking-suggestion-methods.js +36 -0
  22. package/dist/ai-tracking-suggestion-methods.js.map +1 -0
  23. package/dist/ai-tracking-suggestions.d.ts +63 -0
  24. package/dist/ai-tracking-suggestions.d.ts.map +1 -0
  25. package/dist/ai-tracking-suggestions.js +2 -0
  26. package/dist/ai-tracking-suggestions.js.map +1 -0
  27. package/dist/ai-tracking-transport.d.ts +13 -0
  28. package/dist/ai-tracking-transport.d.ts.map +1 -0
  29. package/dist/ai-tracking-transport.js +57 -0
  30. package/dist/ai-tracking-transport.js.map +1 -0
  31. package/dist/ai-tracking-validation.d.ts +3 -0
  32. package/dist/ai-tracking-validation.d.ts.map +1 -0
  33. package/dist/ai-tracking-validation.js +46 -0
  34. package/dist/ai-tracking-validation.js.map +1 -0
  35. package/dist/ai-tracking.d.ts +273 -0
  36. package/dist/ai-tracking.d.ts.map +1 -0
  37. package/dist/ai-tracking.js +2 -0
  38. package/dist/ai-tracking.js.map +1 -0
  39. package/dist/client.d.ts +57 -4
  40. package/dist/client.d.ts.map +1 -1
  41. package/dist/client.js +96 -6
  42. package/dist/client.js.map +1 -1
  43. package/dist/defaults-review.d.ts +56 -0
  44. package/dist/defaults-review.d.ts.map +1 -0
  45. package/dist/defaults-review.js +70 -0
  46. package/dist/defaults-review.js.map +1 -0
  47. package/dist/index.d.ts +10 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/local-monitor-id-contract.d.ts +2 -0
  51. package/dist/local-monitor-id-contract.d.ts.map +1 -0
  52. package/dist/local-monitor-id-contract.js +49 -0
  53. package/dist/local-monitor-id-contract.js.map +1 -0
  54. package/dist/local-monitor-methods.d.ts +21 -0
  55. package/dist/local-monitor-methods.d.ts.map +1 -0
  56. package/dist/local-monitor-methods.js +66 -0
  57. package/dist/local-monitor-methods.js.map +1 -0
  58. package/dist/local-monitor-models-0.d.ts +179 -0
  59. package/dist/local-monitor-models-0.d.ts.map +1 -0
  60. package/dist/local-monitor-models-0.js +2 -0
  61. package/dist/local-monitor-models-0.js.map +1 -0
  62. package/dist/local-monitor-models-1.d.ts +127 -0
  63. package/dist/local-monitor-models-1.d.ts.map +1 -0
  64. package/dist/local-monitor-models-1.js +2 -0
  65. package/dist/local-monitor-models-1.js.map +1 -0
  66. package/dist/local-monitors.d.ts +15 -0
  67. package/dist/local-monitors.d.ts.map +1 -0
  68. package/dist/local-monitors.js +3 -0
  69. package/dist/local-monitors.js.map +1 -0
  70. package/dist/pagination.d.ts.map +1 -1
  71. package/dist/pagination.js +7 -0
  72. package/dist/pagination.js.map +1 -1
  73. package/dist/public-id-contract.d.ts.map +1 -1
  74. package/dist/public-id-contract.js +28 -0
  75. package/dist/public-id-contract.js.map +1 -1
  76. package/dist/public-id.d.ts +3 -0
  77. package/dist/public-id.d.ts.map +1 -1
  78. package/dist/public-id.js +3 -0
  79. package/dist/public-id.js.map +1 -1
  80. package/dist/rank-check-runs.d.ts +49 -0
  81. package/dist/rank-check-runs.d.ts.map +1 -0
  82. package/dist/rank-check-runs.js +2 -0
  83. package/dist/rank-check-runs.js.map +1 -0
  84. package/dist/rank-history-export.d.ts +39 -0
  85. package/dist/rank-history-export.d.ts.map +1 -0
  86. package/dist/rank-history-export.js +2 -0
  87. package/dist/rank-history-export.js.map +1 -0
  88. package/dist/rank-history-report-items.d.ts +32 -0
  89. package/dist/rank-history-report-items.d.ts.map +1 -0
  90. package/dist/rank-history-report-items.js +2 -0
  91. package/dist/rank-history-report-items.js.map +1 -0
  92. package/dist/rank-history-report-metadata.d.ts +150 -0
  93. package/dist/rank-history-report-metadata.d.ts.map +1 -0
  94. package/dist/rank-history-report-metadata.js +2 -0
  95. package/dist/rank-history-report-metadata.js.map +1 -0
  96. package/dist/rank-history-report-pages.d.ts +5 -0
  97. package/dist/rank-history-report-pages.d.ts.map +1 -0
  98. package/dist/rank-history-report-pages.js +21 -0
  99. package/dist/rank-history-report-pages.js.map +1 -0
  100. package/dist/rank-history-report-runs.d.ts +43 -0
  101. package/dist/rank-history-report-runs.d.ts.map +1 -0
  102. package/dist/rank-history-report-runs.js +2 -0
  103. package/dist/rank-history-report-runs.js.map +1 -0
  104. package/dist/rank-history-report.d.ts +73 -0
  105. package/dist/rank-history-report.d.ts.map +1 -0
  106. package/dist/rank-history-report.js +2 -0
  107. package/dist/rank-history-report.js.map +1 -0
  108. package/dist/research-workspace.d.ts +23 -2
  109. package/dist/research-workspace.d.ts.map +1 -1
  110. package/dist/resources.d.ts +14 -0
  111. package/dist/resources.d.ts.map +1 -1
  112. package/dist/resources.js +15 -0
  113. package/dist/resources.js.map +1 -1
  114. package/dist/response-contract-data.d.ts.map +1 -1
  115. package/dist/response-contract-data.js +342 -184
  116. package/dist/response-contract-data.js.map +1 -1
  117. package/dist/response-contract.d.ts +2 -1
  118. package/dist/response-contract.d.ts.map +1 -1
  119. package/dist/response-contract.js +5 -2
  120. package/dist/response-contract.js.map +1 -1
  121. package/dist/types.d.ts +47 -24
  122. package/dist/types.d.ts.map +1 -1
  123. package/dist/version.d.ts +1 -1
  124. package/dist/version.js +1 -1
  125. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ ## 0.17.0 - 2026-10-14
6
+
7
+ - Add retained rank-check run reads and versioned rank-history reports with quality, scope, original timestamps, and stable pagination.
8
+ - Add typed Local monitor history, results, point listings, and exports without starting paid checks.
9
+ - Add reviewed project-default previews and explicit confirmations gated by advertised server support.
10
+
11
+ ## 0.16.0 - 2026-10-10
12
+
13
+ - Add typed project AI tracking operations for topics, immutable prompt revisions, schedules,
14
+ consented runs, samples, history, trends, evidence exports, and accepted suggestions.
15
+ - Add free AI research catalog reads and prompt comparison options for current models, web search,
16
+ locale hints, and explicitly acknowledged provider actual-cost mode.
17
+ - Add reviewed model suggestion preview and generation with a frozen preview, explicit paid consent,
18
+ and a stable idempotency UUID. Accepted edits retain trusted generation or provider dataset references.
19
+ - Preserve unknown costs and observation times as null, and expose optional evidence export
20
+ completeness and resume metadata.
21
+ - Preserved rank coverage, latest-check evidence and unavailable backlinks history in typed SDK responses.
22
+ - Stopped automatic retries of potentially paid requests, made AI tracking schedule updates partial with top-level consent, and typed trends baseline, category and strata.
23
+
3
24
  ## 0.15.0 - 2026-10-07
4
25
 
5
26
  - Add typed project context, agent report, AI visibility, prompt comparison, and site audit operations.
package/README.md CHANGED
@@ -187,13 +187,13 @@ compatibility delegates until 1.0.
187
187
  | `aiVisibility` | `analyze` |
188
188
  | `promptExplorer` | `compare` |
189
189
  | `siteAudits` | `list`, `run`, `get` |
190
- | `projects` | `list`, `create`, `get`, `update`, `delete`, `getDefaults`, `updateDefaults` |
190
+ | `projects` | `list`, `create`, `get`, `update`, `delete`, `getDefaults`, `previewDefaults`, `updateDefaults` |
191
191
  | `apiKeys` | `list`, `iterate`, `create`, `revoke` |
192
192
  | `webhooks` | `list`, `iterate`, `create`, `update`, `delete` |
193
193
  | `keywords` | `list`, `iterate`, `add`, `get`, `update`, `setTargetUrl`, `delete`, `bulkUpdate`, `match`, `research`, plus `suggestions.list`, `metrics.get` |
194
194
  | `backlinks` | `analyze`, `extendSnapshot` |
195
195
  | `domainOverview` | `analyze`, `history`, `keywords`, `pages` |
196
- | `rankChecks` | `list`, `iterate`, `run`, `getResult`, plus `history.export`, `history.iterate` |
196
+ | `rankChecks` | `list`, `iterate`, `run`, `getResult`, plus `runs.list`, `runs.get`, `history.export`, `history.iterate` |
197
197
  | `sitemapMonitors` | `list`, `update` |
198
198
  | `signals` | `list`, `iterate`, `create` |
199
199
  | `analytics` | `overview.get`, `traffic.list`, `traffic.sync`, `searchPerformance.list` |
@@ -509,3 +509,108 @@ const report = await client.researchReports.get(projectId, "keyword_research", {
509
509
  const budgets = await client.providers.budgets.list(projectId);
510
510
  await client.providers.budgets.update(projectId, "dataforseo", { own: { app: null }, credits: { programmatic: { amount_per_month: 500, unit: "cents" } } });
511
511
  ```
512
+
513
+ ## AI tracking
514
+
515
+ AI tracking methods manage project topics, immutable prompt revisions, disabled-by-default
516
+ schedules, runs, samples, history, comparable trends, evidence exports, and editable prompt
517
+ suggestions. Tracking resource IDs use `ait_`, `aip_`, `apr_`, `ais_`, `air_`, and `asm_`.
518
+ Preview before launching paid work, pass the preview credential/budget/consent revisions, and
519
+ provide explicit consent plus an `Idempotency-Key` for launch or retry. Preview never submits a
520
+ provider task. Preserve the returned decimal USD strings, null amounts, unknown measurement
521
+ states, original observation times, and cited sources. Model API tests and consumer observations
522
+ remain distinct evidence sources.
523
+
524
+ The free AI research catalog supplies current model and locale choices. Prompt comparison
525
+ supports hard caps and explicitly consented provider actual-cost mode. Actual-cost mode requires
526
+ `non_guaranteed_estimate_v1` acknowledgement and an advisory estimate limit; execution also
527
+ requires the estimate credential reference and a stable UUID. An advisory limit is not a
528
+ guaranteed maximum charge.
529
+
530
+ Model prompt generation uses `aiTrackingSuggestionsPreview` followed by
531
+ `aiTrackingSuggestionsGenerate`. Review the complete context, selected competitors, model and
532
+ market before generation; the full serialized snapshot must fit within 5000 Unicode characters.
533
+ Generation requires the complete unexpired preview, explicit paid consent and a stable UUID
534
+ `idempotencyKey`. Forecasts are not guaranteed maximum costs. Accepted edits retain
535
+ `generation_reference: { generation_id, draft_id }`; provider dataset acceptance uses a verified
536
+ `provider_dataset_reference: { report_id, row_index }`. Generated popularity remains null.
537
+
538
+ These additions are unreleased. Tracking and catalog calls require a compatible application API;
539
+ a compatible SDK release must precede the registry-dependent MCP release.
540
+
541
+ ## Response evidence compatibility
542
+
543
+ Rank checks expose optional `observation_completeness`, and keywords expose optional
544
+ `latest_check` and `latest_successful_check`. Older responses can omit these fields.
545
+ Only complete coverage supports absence within the requested depth; a positive position
546
+ remains valid with unknown or truncated coverage. A newer failure retains the prior success.
547
+
548
+ Site backlinks normally have 12 history months. A successful partial snapshot has
549
+ `history: []` and `history_unavailable: true`; preserve its summary, rows and confirmed cost.
550
+ Page scope does not request history. Missing availability metadata uses the legacy default.
551
+ A failed summary remains an HTTP error with current-response evidence in problem `details`:
552
+ `cost_cents: null` is an unknown total, while `known_summary_cost_cents` is confirmed.
553
+
554
+ ### Retained rank-check runs
555
+
556
+ Read execution state through `bisibility.rankChecks.runs.list(projectId, { segment: "history" })`
557
+ and `bisibility.rankChecks.runs.get(projectId, runId)`. Listing supports `segment` (`history` or
558
+ `planned`), comma-separated `status`, `cursor`, and `limit` filters. A run may be cancelled,
559
+ blocked, deferred, or planned without producing a rank-check observation. Nullable cost and usage
560
+ fields preserve unknown values, and output status fields tolerate future server values.
561
+
562
+ ### Versioned retained history exports
563
+
564
+ `history.export(projectId, { version: "2", stream: "observations", basis: "observed_at", from, to })`
565
+ returns typed report records and `meta.report`, including frozen scope, quality,
566
+ counts and metric versions. `history.iterate` keeps that selection on every signed
567
+ continuation. Preserve cursors unchanged; changing scope or retained source requires
568
+ a new export. The default remains legacy v1 rows.
569
+
570
+ The `attempts` stream uses `recorded_at` and includes logical checks plus actual
571
+ retained run/item variants, including cancelled, deferred and blocked execution
572
+ without a check. Project-only runs explicitly lack a proved keyword cohort.
573
+ `unresolved_membership_count` reports such omissions from selected exports.
574
+ Observations contain bounded `normalized_items`; CID values stay opaque strings,
575
+ and raw provider fragments are excluded. Item arrays have retained-only completeness,
576
+ and paginate with their parent observation. Oversized sources fail with `413`.
577
+ CSV is a complete bounded manifest and accepts no continuation.
578
+
579
+
580
+ ### Retained Local monitoring reads
581
+
582
+ The unreleased Local APIs expose `listLocalMonitorRuns`, `getLocalMonitorRunResults`,
583
+ `listLocalMonitorPointListings`, `listLocalMonitorPointHistory` and `exportLocalMonitorRun`.
584
+ Use original `lmn`, `lmr` and `lmt` IDs. History options are `asOf`, `from`, `to`
585
+ (canonical UTC milliseconds) and `cursor` (1..8000 characters); windows select
586
+ `occurrence_created_at`. Every page has fresh server authorization. Reuse the full
587
+ selection with a returned signed cursor. Source/policy conflicts require a new selection.
588
+ Result/listing DTOs preserve unknown/null quality, exact string CID and source axes.
589
+ Future output metadata enum values remain strings; invalid inputs and report versions
590
+ are rejected. Local exports support JSON `local-point-report-v1` or CSV and audit each
591
+ successful response. No read launches paid work or initializes accounting.
592
+
593
+ These APIs are unreleased additions to the published package.
594
+
595
+ ### Reviewed project defaults
596
+
597
+ Use `projects.previewDefaults(projectId, patch)` to read a signed draft through the existing
598
+ PATCH route with `preview_only=true`. It returns the proposed settings, impact, source hash,
599
+ opaque string revision, and preview token without saving settings or starting provider work.
600
+ Preview requests omit command idempotency headers so a later save receives its own receipt.
601
+ After reviewing that draft, send the same patch to `projects.updateDefaults` with
602
+ `review: { expected_source_hash, expected_revision, preview_token, idempotency_key, confirmed: true }`.
603
+ The SDK preserves that command key when retrying a lost response. Keep the exact body and key;
604
+ a 409 requires a fresh preview, while a 428 means the review is missing. Server permission is
605
+ rechecked on preview, commit, and replay.
606
+
607
+ Preview and updates carrying review require capabilities to advertise
608
+ `features.reviewed_project_defaults: "v1"`. Missing, malformed, or unknown markers stop the
609
+ operation before PATCH, since older servers may ignore `preview_only`. Ordinary updates without
610
+ review preserve legacy behavior; current servers can still require review and return a 428.
611
+
612
+ ### Complete retained reports
613
+
614
+ `client.rankChecks.history.exportAll(projectId, { version: "2", format: "json" })` reads all cursor pages of one frozen report, preserving quality, scope, original timestamps, and the report metadata. A changing report or a repeated cursor stops collection instead of merging unrelated evidence.
615
+
616
+ `client.rankChecks.runs.iterate(projectId)` yields retained executions, including blocked and cancelled runs without observations. `client.localMonitors.history`, `results`, `listings`, `pointHistory`, and `export` read previously recorded Local monitor data. These namespaces do not start scans or change schedules; the flat Local methods remain available for compatibility.
@@ -0,0 +1,39 @@
1
+ /** Free provider capability discovery; model identifiers come from the current catalog. */
2
+ export interface AiResearchCatalog {
3
+ models: Array<{
4
+ id: string;
5
+ provider: "chat_gpt";
6
+ label: string;
7
+ reasoning: boolean;
8
+ web_search: boolean;
9
+ min_output_tokens: number;
10
+ max_output_tokens: number;
11
+ price_available: boolean;
12
+ admission_enabled: boolean;
13
+ actual_cost_enabled: boolean;
14
+ }>;
15
+ visibility_markets: Array<{
16
+ platform: "chat_gpt" | "google";
17
+ location_code: number;
18
+ country_name: string;
19
+ languages: Array<{
20
+ code: string;
21
+ name: string;
22
+ }>;
23
+ }>;
24
+ response_countries: Array<{
25
+ code: string;
26
+ name: string;
27
+ }>;
28
+ response_languages: Array<{
29
+ code: string;
30
+ name: string;
31
+ }>;
32
+ limits: {
33
+ max_models: 2;
34
+ max_output_tokens: 4096;
35
+ };
36
+ fetched_at: string;
37
+ actual_cost_available?: boolean;
38
+ }
39
+ //# sourceMappingURL=ai-research-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-research-catalog.d.ts","sourceRoot":"","sources":["../src/ai-research-catalog.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,UAAU,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,OAAO,CAAC;QACzB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,mBAAmB,EAAE,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,kBAAkB,EAAE,KAAK,CAAC;QACxB,QAAQ,EAAE,UAAU,GAAG,QAAQ,CAAC;QAChC,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClD,CAAC,CAAC;IACH,kBAAkB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,kBAAkB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,MAAM,EAAE;QAAE,UAAU,EAAE,CAAC,CAAC;QAAC,iBAAiB,EAAE,IAAI,CAAA;KAAE,CAAC;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ai-research-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-research-catalog.js","sourceRoot":"","sources":["../src/ai-research-catalog.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import type { AiTrackingPrompt, AiTrackingPromptId, AiTrackingPromptInput, AiTrackingSchedule, AiTrackingScheduleId, AiTrackingScheduleInput, AiTrackingSchedulePatch, AiTrackingTopic, AiTrackingTopicId, AiTrackingTopicInput } from "./ai-tracking.js";
2
+ import type { DataResponse, ListResponse, PaginationOptions, ProjectId, RequestOptions } from "./types.js";
3
+ import { type TrackingTransport } from "./ai-tracking-transport.js";
4
+ export declare function createAiTrackingCatalogMethods(transport: TrackingTransport): {
5
+ listAiTrackingTopics(projectId: ProjectId, input?: PaginationOptions, options?: RequestOptions): Promise<ListResponse<AiTrackingTopic>>;
6
+ createAiTrackingTopic(projectId: ProjectId, input: AiTrackingTopicInput, options?: RequestOptions): Promise<DataResponse<AiTrackingTopic>>;
7
+ updateAiTrackingTopic(projectId: ProjectId, id: AiTrackingTopicId, input: Partial<AiTrackingTopicInput>, options?: RequestOptions): Promise<DataResponse<AiTrackingTopic>>;
8
+ archiveAiTrackingTopic(projectId: ProjectId, id: AiTrackingTopicId, options?: RequestOptions): Promise<DataResponse<AiTrackingTopic>>;
9
+ listAiTrackingPrompts(projectId: ProjectId, input?: PaginationOptions, options?: RequestOptions): Promise<ListResponse<AiTrackingPrompt>>;
10
+ createAiTrackingPrompt(projectId: ProjectId, input: AiTrackingPromptInput, options?: RequestOptions): Promise<DataResponse<AiTrackingPrompt>>;
11
+ updateAiTrackingPrompt(projectId: ProjectId, id: AiTrackingPromptId, input: Partial<AiTrackingPromptInput>, options?: RequestOptions): Promise<DataResponse<AiTrackingPrompt>>;
12
+ archiveAiTrackingPrompt(projectId: ProjectId, id: AiTrackingPromptId, options?: RequestOptions): Promise<DataResponse<AiTrackingPrompt>>;
13
+ listAiTrackingSchedules(projectId: ProjectId, input?: PaginationOptions, options?: RequestOptions): Promise<ListResponse<AiTrackingSchedule>>;
14
+ createAiTrackingSchedule(projectId: ProjectId, input: AiTrackingScheduleInput, options?: RequestOptions): Promise<DataResponse<AiTrackingSchedule>>;
15
+ updateAiTrackingSchedule(projectId: ProjectId, id: AiTrackingScheduleId, input: AiTrackingSchedulePatch, options?: RequestOptions): Promise<DataResponse<AiTrackingSchedule>>;
16
+ archiveAiTrackingSchedule(projectId: ProjectId, id: AiTrackingScheduleId, options?: RequestOptions): Promise<DataResponse<AiTrackingSchedule>>;
17
+ };
18
+ //# sourceMappingURL=ai-tracking-catalog-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tracking-catalog-methods.d.ts","sourceRoot":"","sources":["../src/ai-tracking-catalog-methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAMV,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EAKrB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EAEvB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EAGrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,4BAA4B,CAAC;AAEpC,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,iBAAiB;oCAG1D,SAAS,UACb,iBAAiB,YACd,cAAc;qCASb,SAAS,SACb,oBAAoB,YACjB,cAAc;qCAUb,SAAS,MAChB,iBAAiB,SACd,OAAO,CAAC,oBAAoB,CAAC,YAC1B,cAAc;sCASQ,SAAS,MAAM,iBAAiB,YAAY,cAAc;qCAQ/E,SAAS,UACb,iBAAiB,YACd,cAAc;sCASb,SAAS,SACb,qBAAqB,YAClB,cAAc;sCAUb,SAAS,MAChB,kBAAkB,SACf,OAAO,CAAC,qBAAqB,CAAC,YAC3B,cAAc;uCAUb,SAAS,MAChB,kBAAkB,YACZ,cAAc;uCASb,SAAS,UACb,iBAAiB,YACd,cAAc;wCASb,SAAS,SACb,uBAAuB,YACpB,cAAc;wCAUb,SAAS,MAChB,oBAAoB,SACjB,uBAAuB,YACpB,cAAc;yCAUb,SAAS,MAChB,oBAAoB,YACd,cAAc;EAS7B"}
@@ -0,0 +1,49 @@
1
+ import { BisibilityConfigurationError } from "./errors.js";
2
+ import { trackingId, validateTrackingInput, } from "./ai-tracking-transport.js";
3
+ export function createAiTrackingCatalogMethods(transport) {
4
+ return {
5
+ listAiTrackingTopics(projectId, input = {}, options) {
6
+ return transport.request("GET", `/projects/${trackingId(projectId, "prj")}/ai-tracking/topics`, { ...options, query: { ...input } });
7
+ },
8
+ createAiTrackingTopic(projectId, input, options) {
9
+ validateTrackingInput(input);
10
+ return transport.request("POST", `/projects/${trackingId(projectId, "prj")}/ai-tracking/topics`, { ...options, body: input });
11
+ },
12
+ updateAiTrackingTopic(projectId, id, input, options) {
13
+ validateTrackingInput(input);
14
+ return transport.request("PATCH", `/projects/${trackingId(projectId, "prj")}/ai-tracking/topics/${trackingId(id, "ait")}`, { ...options, body: input });
15
+ },
16
+ archiveAiTrackingTopic(projectId, id, options) {
17
+ return transport.request("DELETE", `/projects/${trackingId(projectId, "prj")}/ai-tracking/topics/${trackingId(id, "ait")}`, { ...options });
18
+ },
19
+ listAiTrackingPrompts(projectId, input = {}, options) {
20
+ return transport.request("GET", `/projects/${trackingId(projectId, "prj")}/ai-tracking/prompts`, { ...options, query: { ...input } });
21
+ },
22
+ createAiTrackingPrompt(projectId, input, options) {
23
+ validateTrackingInput(input);
24
+ return transport.request("POST", `/projects/${trackingId(projectId, "prj")}/ai-tracking/prompts`, { ...options, body: input });
25
+ },
26
+ updateAiTrackingPrompt(projectId, id, input, options) {
27
+ validateTrackingInput(input);
28
+ return transport.request("PATCH", `/projects/${trackingId(projectId, "prj")}/ai-tracking/prompts/${trackingId(id, "aip")}`, { ...options, body: input });
29
+ },
30
+ archiveAiTrackingPrompt(projectId, id, options) {
31
+ return transport.request("DELETE", `/projects/${trackingId(projectId, "prj")}/ai-tracking/prompts/${trackingId(id, "aip")}`, { ...options });
32
+ },
33
+ listAiTrackingSchedules(projectId, input = {}, options) {
34
+ return transport.request("GET", `/projects/${trackingId(projectId, "prj")}/ai-tracking/schedules`, { ...options, query: { ...input } });
35
+ },
36
+ createAiTrackingSchedule(projectId, input, options) {
37
+ validateTrackingInput(input);
38
+ return transport.request("POST", `/projects/${trackingId(projectId, "prj")}/ai-tracking/schedules`, { ...options, body: input });
39
+ },
40
+ updateAiTrackingSchedule(projectId, id, input, options) {
41
+ validateTrackingInput(input);
42
+ return transport.request("PATCH", `/projects/${trackingId(projectId, "prj")}/ai-tracking/schedules/${trackingId(id, "ais")}`, { ...options, body: input });
43
+ },
44
+ archiveAiTrackingSchedule(projectId, id, options) {
45
+ return transport.request("DELETE", `/projects/${trackingId(projectId, "prj")}/ai-tracking/schedules/${trackingId(id, "ais")}`, { ...options });
46
+ },
47
+ };
48
+ }
49
+ //# sourceMappingURL=ai-tracking-catalog-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tracking-catalog-methods.js","sourceRoot":"","sources":["../src/ai-tracking-catalog-methods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { TrackingTransport } from "./ai-tracking-transport.js";
2
+ import type { BisibilityClient } from "./client.js";
3
+ export declare function createAiTrackingMethods(transport: TrackingTransport): {
4
+ aiTrackingSuggestionsPreview(projectId: import("./types.js").ProjectId, input: import("./ai-tracking-suggestions.js").AiTrackingSuggestionsPreviewInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking-suggestions.js").AiTrackingSuggestionsPreview>>;
5
+ aiTrackingSuggestionsGenerate(projectId: import("./types.js").ProjectId, input: import("./ai-tracking-suggestions.js").AiTrackingSuggestionsGenerateInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking-suggestions.js").AiTrackingSuggestionsGeneration>>;
6
+ previewAiTrackingRun(projectId: import("./types.js").ProjectId, input: import("./ai-tracking.js").AiTrackingPreviewInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingPreview>>;
7
+ createAiTrackingRun(projectId: import("./types.js").ProjectId, input: import("./ai-tracking.js").AiTrackingRunInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingRun>>;
8
+ listAiTrackingRuns(projectId: import("./types.js").ProjectId, input?: import("./types.js").PaginationOptions, options?: import("./types.js").RequestOptions): Promise<import("./types.js").ListResponse<import("./ai-tracking.js").AiTrackingRun>>;
9
+ getAiTrackingRun(projectId: import("./types.js").ProjectId, id: import("./ai-tracking.js").AiTrackingRunId, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingRun>>;
10
+ listAiTrackingSamples(projectId: import("./types.js").ProjectId, id: import("./ai-tracking.js").AiTrackingRunId, input?: import("./types.js").PaginationOptions, options?: import("./types.js").RequestOptions): Promise<import("./types.js").ListResponse<import("./ai-tracking.js").AiTrackingSample>>;
11
+ cancelAiTrackingRun(projectId: import("./types.js").ProjectId, id: import("./ai-tracking.js").AiTrackingRunId, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingRun>>;
12
+ retryAiTrackingRun(projectId: import("./types.js").ProjectId, id: import("./ai-tracking.js").AiTrackingRunId, input: import("./ai-tracking.js").AiTrackingRunInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingRun>>;
13
+ getAiTrackingHistory(projectId: import("./types.js").ProjectId, input?: import("./types.js").PaginationOptions, options?: import("./types.js").RequestOptions): Promise<import("./types.js").ListResponse<import("./ai-tracking.js").AiTrackingRun>>;
14
+ getAiTrackingTrends(projectId: import("./types.js").ProjectId, input: import("./ai-tracking.js").AiTrackingTrendOptions, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingTrends>>;
15
+ exportAiTrackingEvidence(projectId: import("./types.js").ProjectId, input: import("./ai-tracking.js").AiTrackingEvidenceOptions, options?: import("./types.js").RequestOptions): Promise<string | import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingExport>>;
16
+ suggestAiTrackingPrompts(projectId: import("./types.js").ProjectId, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingSuggestions>>;
17
+ acceptAiTrackingSuggestions(projectId: import("./types.js").ProjectId, input: import("./ai-tracking.js").AiTrackingAcceptanceInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<{
18
+ prompts: import("./ai-tracking.js").AiTrackingPrompt[];
19
+ }>>;
20
+ listAiTrackingTopics(projectId: import("./types.js").ProjectId, input?: import("./types.js").PaginationOptions, options?: import("./types.js").RequestOptions): Promise<import("./types.js").ListResponse<import("./ai-tracking.js").AiTrackingTopic>>;
21
+ createAiTrackingTopic(projectId: import("./types.js").ProjectId, input: import("./ai-tracking.js").AiTrackingTopicInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingTopic>>;
22
+ updateAiTrackingTopic(projectId: import("./types.js").ProjectId, id: import("./ai-tracking.js").AiTrackingTopicId, input: Partial<import("./ai-tracking.js").AiTrackingTopicInput>, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingTopic>>;
23
+ archiveAiTrackingTopic(projectId: import("./types.js").ProjectId, id: import("./ai-tracking.js").AiTrackingTopicId, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingTopic>>;
24
+ listAiTrackingPrompts(projectId: import("./types.js").ProjectId, input?: import("./types.js").PaginationOptions, options?: import("./types.js").RequestOptions): Promise<import("./types.js").ListResponse<import("./ai-tracking.js").AiTrackingPrompt>>;
25
+ createAiTrackingPrompt(projectId: import("./types.js").ProjectId, input: import("./ai-tracking.js").AiTrackingPromptInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingPrompt>>;
26
+ updateAiTrackingPrompt(projectId: import("./types.js").ProjectId, id: import("./ai-tracking.js").AiTrackingPromptId, input: Partial<import("./ai-tracking.js").AiTrackingPromptInput>, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingPrompt>>;
27
+ archiveAiTrackingPrompt(projectId: import("./types.js").ProjectId, id: import("./ai-tracking.js").AiTrackingPromptId, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingPrompt>>;
28
+ listAiTrackingSchedules(projectId: import("./types.js").ProjectId, input?: import("./types.js").PaginationOptions, options?: import("./types.js").RequestOptions): Promise<import("./types.js").ListResponse<import("./ai-tracking.js").AiTrackingSchedule>>;
29
+ createAiTrackingSchedule(projectId: import("./types.js").ProjectId, input: import("./ai-tracking.js").AiTrackingScheduleInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingSchedule>>;
30
+ updateAiTrackingSchedule(projectId: import("./types.js").ProjectId, id: import("./ai-tracking.js").AiTrackingScheduleId, input: import("./ai-tracking.js").AiTrackingSchedulePatch, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingSchedule>>;
31
+ archiveAiTrackingSchedule(projectId: import("./types.js").ProjectId, id: import("./ai-tracking.js").AiTrackingScheduleId, options?: import("./types.js").RequestOptions): Promise<import("./types.js").DataResponse<import("./ai-tracking.js").AiTrackingSchedule>>;
32
+ };
33
+ export type AiTrackingMethods = ReturnType<typeof createAiTrackingMethods>;
34
+ export declare function installAiTrackingMethods(client: BisibilityClient, transport: TrackingTransport): void;
35
+ //# sourceMappingURL=ai-tracking-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tracking-methods.d.ts","sourceRoot":"","sources":["../src/ai-tracking-methods.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMnE;AACD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC3E,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,iBAAiB,QAG9F"}
@@ -0,0 +1,15 @@
1
+ import { createAiTrackingCatalogMethods } from "./ai-tracking-catalog-methods.js";
2
+ import { createAiTrackingRunMethods } from "./ai-tracking-run-methods.js";
3
+ import { createAiTrackingSuggestionMethods } from "./ai-tracking-suggestion-methods.js";
4
+ export function createAiTrackingMethods(transport) {
5
+ return {
6
+ ...createAiTrackingCatalogMethods(transport),
7
+ ...createAiTrackingRunMethods(transport),
8
+ ...createAiTrackingSuggestionMethods(transport),
9
+ };
10
+ }
11
+ export function installAiTrackingMethods(client, transport) {
12
+ for (const [name, method] of Object.entries(createAiTrackingMethods(transport)))
13
+ Object.defineProperty(client, name, { value: method, configurable: false, enumerable: false });
14
+ }
15
+ //# sourceMappingURL=ai-tracking-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tracking-methods.js","sourceRoot":"","sources":["../src/ai-tracking-methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAIxF,MAAM,UAAU,uBAAuB,CAAC,SAA4B;IAClE,OAAO;QACL,GAAG,8BAA8B,CAAC,SAAS,CAAC;QAC5C,GAAG,0BAA0B,CAAC,SAAS,CAAC;QACxC,GAAG,iCAAiC,CAAC,SAAS,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAwB,EAAE,SAA4B;IAC7F,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC7E,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACnG,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { AiTrackingAcceptanceInput, AiTrackingEvidenceOptions, AiTrackingExport, AiTrackingPreview, AiTrackingPreviewInput, AiTrackingPrompt, AiTrackingRun, AiTrackingRunId, AiTrackingRunInput, AiTrackingSample, AiTrackingSuggestions, AiTrackingTrendOptions, AiTrackingTrends } from "./ai-tracking.js";
2
+ import type { DataResponse, ListResponse, PaginationOptions, ProjectId, RequestOptions } from "./types.js";
3
+ import { type TrackingTransport } from "./ai-tracking-transport.js";
4
+ export declare function createAiTrackingRunMethods(transport: TrackingTransport): {
5
+ previewAiTrackingRun(projectId: ProjectId, input: AiTrackingPreviewInput, options?: RequestOptions): Promise<DataResponse<AiTrackingPreview>>;
6
+ createAiTrackingRun(projectId: ProjectId, input: AiTrackingRunInput, options?: RequestOptions): Promise<DataResponse<AiTrackingRun>>;
7
+ listAiTrackingRuns(projectId: ProjectId, input?: PaginationOptions, options?: RequestOptions): Promise<ListResponse<AiTrackingRun>>;
8
+ getAiTrackingRun(projectId: ProjectId, id: AiTrackingRunId, options?: RequestOptions): Promise<DataResponse<AiTrackingRun>>;
9
+ listAiTrackingSamples(projectId: ProjectId, id: AiTrackingRunId, input?: PaginationOptions, options?: RequestOptions): Promise<ListResponse<AiTrackingSample>>;
10
+ cancelAiTrackingRun(projectId: ProjectId, id: AiTrackingRunId, options?: RequestOptions): Promise<DataResponse<AiTrackingRun>>;
11
+ retryAiTrackingRun(projectId: ProjectId, id: AiTrackingRunId, input: AiTrackingRunInput, options?: RequestOptions): Promise<DataResponse<AiTrackingRun>>;
12
+ getAiTrackingHistory(projectId: ProjectId, input?: PaginationOptions, options?: RequestOptions): Promise<ListResponse<AiTrackingRun>>;
13
+ getAiTrackingTrends(projectId: ProjectId, input: AiTrackingTrendOptions, options?: RequestOptions): Promise<DataResponse<AiTrackingTrends>>;
14
+ exportAiTrackingEvidence(projectId: ProjectId, input: AiTrackingEvidenceOptions, options?: RequestOptions): Promise<string | DataResponse<AiTrackingExport>>;
15
+ suggestAiTrackingPrompts(projectId: ProjectId, options?: RequestOptions): Promise<DataResponse<AiTrackingSuggestions>>;
16
+ acceptAiTrackingSuggestions(projectId: ProjectId, input: AiTrackingAcceptanceInput, options?: RequestOptions): Promise<DataResponse<{
17
+ prompts: AiTrackingPrompt[];
18
+ }>>;
19
+ };
20
+ //# sourceMappingURL=ai-tracking-run-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tracking-run-methods.d.ts","sourceRoot":"","sources":["../src/ai-tracking-run-methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAGhB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAIhB,qBAAqB,EAIrB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,4BAA4B,CAAC;AAEpC,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,iBAAiB;oCAGtD,SAAS,SACb,sBAAsB,YACnB,cAAc;mCASK,SAAS,SAAS,kBAAkB,YAAY,cAAc;kCAahF,SAAS,UACb,iBAAiB,YACd,cAAc;gCAQE,SAAS,MAAM,eAAe,YAAY,cAAc;qCAQvE,SAAS,MAChB,eAAe,UACZ,iBAAiB,YACd,cAAc;mCAQK,SAAS,MAAM,eAAe,YAAY,cAAc;kCAQ1E,SAAS,MAChB,eAAe,SACZ,kBAAkB,YACf,cAAc;oCAcb,SAAS,UACb,iBAAiB,YACd,cAAc;mCASb,SAAS,SACb,sBAAsB,YACnB,cAAc;wCAWb,SAAS,SACb,yBAAyB,YACtB,cAAc;wCASU,SAAS,YAAY,cAAc;2CAQ1D,SAAS,SACb,yBAAyB,YACtB,cAAc;iBAGyB,gBAAgB,EAAE;;EAOxE"}
@@ -0,0 +1,59 @@
1
+ import { BisibilityConfigurationError } from "./errors.js";
2
+ import { trackingId, validateTrackingInput, } from "./ai-tracking-transport.js";
3
+ export function createAiTrackingRunMethods(transport) {
4
+ return {
5
+ previewAiTrackingRun(projectId, input, options) {
6
+ validateTrackingInput(input);
7
+ return transport.request("POST", `/projects/${trackingId(projectId, "prj")}/ai-tracking/runs/preview`, { ...options, body: input });
8
+ },
9
+ createAiTrackingRun(projectId, input, options) {
10
+ validateTrackingInput(input);
11
+ if (input.consent !== true)
12
+ throw new BisibilityConfigurationError("Explicit tracking consent is required.");
13
+ if (!options?.idempotencyKey)
14
+ throw new BisibilityConfigurationError("Idempotency-Key is required for tracking launch.");
15
+ return transport.request("POST", `/projects/${trackingId(projectId, "prj")}/ai-tracking/runs`, { ...options, body: input });
16
+ },
17
+ listAiTrackingRuns(projectId, input = {}, options) {
18
+ return transport.request("GET", `/projects/${trackingId(projectId, "prj")}/ai-tracking/runs`, { ...options, query: { ...input } });
19
+ },
20
+ getAiTrackingRun(projectId, id, options) {
21
+ return transport.request("GET", `/projects/${trackingId(projectId, "prj")}/ai-tracking/runs/${trackingId(id, "air")}`, { ...options });
22
+ },
23
+ listAiTrackingSamples(projectId, id, input = {}, options) {
24
+ return transport.request("GET", `/projects/${trackingId(projectId, "prj")}/ai-tracking/runs/${trackingId(id, "air")}/samples`, { ...options, query: { ...input } });
25
+ },
26
+ cancelAiTrackingRun(projectId, id, options) {
27
+ return transport.request("POST", `/projects/${trackingId(projectId, "prj")}/ai-tracking/runs/${trackingId(id, "air")}/cancel`, { ...options });
28
+ },
29
+ retryAiTrackingRun(projectId, id, input, options) {
30
+ validateTrackingInput(input);
31
+ if (input.consent !== true)
32
+ throw new BisibilityConfigurationError("Explicit tracking consent is required.");
33
+ if (!options?.idempotencyKey)
34
+ throw new BisibilityConfigurationError("Idempotency-Key is required for tracking retry.");
35
+ return transport.request("POST", `/projects/${trackingId(projectId, "prj")}/ai-tracking/runs/${trackingId(id, "air")}/retry`, { ...options, body: input });
36
+ },
37
+ getAiTrackingHistory(projectId, input = {}, options) {
38
+ return transport.request("GET", `/projects/${trackingId(projectId, "prj")}/ai-tracking/history`, { ...options, query: { ...input } });
39
+ },
40
+ getAiTrackingTrends(projectId, input, options) {
41
+ trackingId(input.run_id, "air");
42
+ if (input.previous_run_id)
43
+ trackingId(input.previous_run_id, "air");
44
+ return transport.request("GET", `/projects/${trackingId(projectId, "prj")}/ai-tracking/trends`, { ...options, query: { ...input } });
45
+ },
46
+ exportAiTrackingEvidence(projectId, input, options) {
47
+ trackingId(input.run_id, "air");
48
+ return transport.request("GET", `/projects/${trackingId(projectId, "prj")}/ai-tracking/export`, { ...options, query: { ...input }, parseAs: input.format === "csv" ? "text" : "json" });
49
+ },
50
+ suggestAiTrackingPrompts(projectId, options) {
51
+ return transport.request("POST", `/projects/${trackingId(projectId, "prj")}/ai-tracking/suggestions`, { ...options, body: {} });
52
+ },
53
+ acceptAiTrackingSuggestions(projectId, input, options) {
54
+ validateTrackingInput(input);
55
+ return transport.request("POST", `/projects/${trackingId(projectId, "prj")}/ai-tracking/suggestions/accept`, { ...options, body: input });
56
+ },
57
+ };
58
+ }
59
+ //# sourceMappingURL=ai-tracking-run-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tracking-run-methods.js","sourceRoot":"","sources":["../src/ai-tracking-run-methods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { AiTrackingSuggestionSnapshot, AiTrackingSuggestionsGenerateInput, AiTrackingSuggestionsGeneration, AiTrackingSuggestionsPreview, AiTrackingSuggestionsPreviewInput } from "./ai-tracking-suggestions.js";
2
+ import { type TrackingTransport } from "./ai-tracking-transport.js";
3
+ import type { DataResponse, ProjectId, RequestOptions } from "./types.js";
4
+ export declare function validateSuggestionSnapshot(snapshot: AiTrackingSuggestionSnapshot): void;
5
+ export declare function createAiTrackingSuggestionMethods(transport: TrackingTransport): {
6
+ aiTrackingSuggestionsPreview(projectId: ProjectId, input: AiTrackingSuggestionsPreviewInput, options?: RequestOptions): Promise<DataResponse<AiTrackingSuggestionsPreview>>;
7
+ aiTrackingSuggestionsGenerate(projectId: ProjectId, input: AiTrackingSuggestionsGenerateInput, options?: RequestOptions): Promise<DataResponse<AiTrackingSuggestionsGeneration>>;
8
+ };
9
+ //# sourceMappingURL=ai-tracking-suggestion-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tracking-suggestion-methods.d.ts","sourceRoot":"","sources":["../src/ai-tracking-suggestion-methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,kCAAkC,EAClC,+BAA+B,EAC/B,4BAA4B,EAC5B,iCAAiC,EAClC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,KAAK,iBAAiB,EAAc,MAAM,4BAA4B,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1E,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,4BAA4B,GAAG,IAAI,CAmBvF;AACD,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,iBAAiB;4CAG7D,SAAS,SACb,iCAAiC,YAC9B,cAAc;6CAWb,SAAS,SACb,kCAAkC,YAC/B,cAAc;EAsB7B"}
@@ -0,0 +1,36 @@
1
+ import { trackingId } from "./ai-tracking-transport.js";
2
+ import { BisibilityConfigurationError } from "./errors.js";
3
+ export function validateSuggestionSnapshot(snapshot) {
4
+ if (new Set(snapshot.competitors.map((competitor) => competitor.id)).size !==
5
+ snapshot.competitors.length)
6
+ throw new BisibilityConfigurationError("Reviewed competitors must have unique public IDs.");
7
+ for (const competitor of snapshot.competitors)
8
+ trackingId(competitor.id, "cmp");
9
+ const { agent_rules, ...context } = snapshot.context;
10
+ if (Array.from(JSON.stringify({
11
+ context: { ...context, agentRules: agent_rules },
12
+ competitors: snapshot.competitors,
13
+ })).length > 5000)
14
+ throw new BisibilityConfigurationError("Reviewed input snapshot exceeds 5000 serialized characters.");
15
+ }
16
+ export function createAiTrackingSuggestionMethods(transport) {
17
+ return {
18
+ aiTrackingSuggestionsPreview(projectId, input, options) {
19
+ validateSuggestionSnapshot(input.input_snapshot);
20
+ if (input.credential_connection_id)
21
+ trackingId(input.credential_connection_id, "conn");
22
+ return transport.request("POST", `/projects/${trackingId(projectId, "prj")}/ai-tracking/suggestions/preview`, { ...options, body: input });
23
+ },
24
+ aiTrackingSuggestionsGenerate(projectId, input, options) {
25
+ validateSuggestionSnapshot(input.preview.input_snapshot);
26
+ trackingId(input.preview.credential_connection_id, "conn");
27
+ if (input.consent !== true)
28
+ throw new BisibilityConfigurationError("Explicit model generation consent is required.");
29
+ if (!options?.idempotencyKey ||
30
+ !/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(options.idempotencyKey))
31
+ throw new BisibilityConfigurationError("A stable UUID Idempotency-Key is required for model generation.");
32
+ return transport.request("POST", `/projects/${trackingId(projectId, "prj")}/ai-tracking/suggestions/generate`, { ...options, body: input });
33
+ },
34
+ };
35
+ }
36
+ //# sourceMappingURL=ai-tracking-suggestion-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tracking-suggestion-methods.js","sourceRoot":"","sources":["../src/ai-tracking-suggestion-methods.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0B,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAG3D,MAAM,UAAU,0BAA0B,CAAC,QAAsC;IAC/E,IACE,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QACrE,QAAQ,CAAC,WAAW,CAAC,MAAM;QAE3B,MAAM,IAAI,4BAA4B,CAAC,mDAAmD,CAAC,CAAC;IAC9F,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,WAAW;QAAE,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAChF,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IACrD,IACE,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,SAAS,CAAC;QACb,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE;QAChD,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAC,CACH,CAAC,MAAM,GAAG,IAAI;QAEf,MAAM,IAAI,4BAA4B,CACpC,6DAA6D,CAC9D,CAAC;AACN,CAAC;AACD,MAAM,UAAU,iCAAiC,CAAC,SAA4B;IAC5E,OAAO;QACL,4BAA4B,CAC1B,SAAoB,EACpB,KAAwC,EACxC,OAAwB;YAExB,0BAA0B,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,KAAK,CAAC,wBAAwB;gBAAE,UAAU,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;YACvF,OAAO,SAAS,CAAC,OAAO,CACtB,MAAM,EACN,aAAa,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,kCAAkC,EAC3E,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAC5B,CAAC;QACJ,CAAC;QACD,6BAA6B,CAC3B,SAAoB,EACpB,KAAyC,EACzC,OAAwB;YAExB,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzD,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;gBACxB,MAAM,IAAI,4BAA4B,CAAC,gDAAgD,CAAC,CAAC;YAC3F,IACE,CAAC,OAAO,EAAE,cAAc;gBACxB,CAAC,iEAAiE,CAAC,IAAI,CACrE,OAAO,CAAC,cAAc,CACvB;gBAED,MAAM,IAAI,4BAA4B,CACpC,iEAAiE,CAClE,CAAC;YACJ,OAAO,SAAS,CAAC,OAAO,CACtB,MAAM,EACN,aAAa,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,mCAAmC,EAC5E,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAC5B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,63 @@
1
+ export interface AiTrackingSuggestionConfiguration {
2
+ provider: "dataforseo";
3
+ engine: "chat_gpt";
4
+ model: string;
5
+ language_code: string;
6
+ country_iso_code?: string;
7
+ max_output_tokens: number;
8
+ advisory_cost_limit_cents: number;
9
+ }
10
+ export interface AiTrackingSuggestionSnapshot {
11
+ context: {
12
+ business: string;
13
+ audience: string;
14
+ products: string;
15
+ goals: string;
16
+ agent_rules: string;
17
+ };
18
+ competitors: Array<{
19
+ id: `cmp_${string}`;
20
+ label: string | null;
21
+ domain: string;
22
+ }>;
23
+ }
24
+ export interface AiTrackingSuggestionsPreviewInput {
25
+ configuration: AiTrackingSuggestionConfiguration;
26
+ input_snapshot: AiTrackingSuggestionSnapshot;
27
+ credential_connection_id?: `conn_${string}`;
28
+ }
29
+ export interface AiTrackingSuggestionsPreview extends AiTrackingSuggestionsPreviewInput {
30
+ version: 1;
31
+ snapshot_hash: string;
32
+ estimated_cost_cents: number;
33
+ estimate_kind: "forecast";
34
+ is_guaranteed_maximum: false;
35
+ credential_connection_id: `conn_${string}`;
36
+ credential_version: string;
37
+ budget_revision: string;
38
+ consent_revision: string;
39
+ expires_at: string;
40
+ limitations: string[];
41
+ }
42
+ export interface AiTrackingSuggestionsGenerateInput {
43
+ preview: AiTrackingSuggestionsPreview;
44
+ consent: true;
45
+ }
46
+ export interface AiTrackingModelSuggestion {
47
+ draft_id: string;
48
+ text: string;
49
+ category: "neutral" | "comparative" | "branded";
50
+ provenance: "model_generated_hypothesis";
51
+ evidence_ids: [];
52
+ popularity: null;
53
+ accepted: false;
54
+ }
55
+ export interface AiTrackingSuggestionsGeneration {
56
+ generation_id: `asg_${string}`;
57
+ drafts: AiTrackingModelSuggestion[];
58
+ cost_usd: string | null;
59
+ cost_state: "unknown" | "confirmed";
60
+ method: "model_generated_hypothesis";
61
+ limitations: string[];
62
+ }
63
+ //# sourceMappingURL=ai-tracking-suggestions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tracking-suggestions.d.ts","sourceRoot":"","sources":["../src/ai-tracking-suggestions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yBAAyB,EAAE,MAAM,CAAC;CACnC;AACD,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,OAAO,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnF;AACD,MAAM,WAAW,iCAAiC;IAChD,aAAa,EAAE,iCAAiC,CAAC;IACjD,cAAc,EAAE,4BAA4B,CAAC;IAC7C,wBAAwB,CAAC,EAAE,QAAQ,MAAM,EAAE,CAAC;CAC7C;AACD,MAAM,WAAW,4BAA6B,SAAQ,iCAAiC;IACrF,OAAO,EAAE,CAAC,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,UAAU,CAAC;IAC1B,qBAAqB,EAAE,KAAK,CAAC;IAC7B,wBAAwB,EAAE,QAAQ,MAAM,EAAE,CAAC;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AACD,MAAM,WAAW,kCAAkC;IACjD,OAAO,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,IAAI,CAAC;CACf;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;IAChD,UAAU,EAAE,4BAA4B,CAAC;IACzC,YAAY,EAAE,EAAE,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;CACjB;AACD,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,OAAO,MAAM,EAAE,CAAC;IAC/B,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,SAAS,GAAG,WAAW,CAAC;IACpC,MAAM,EAAE,4BAA4B,CAAC;IACrC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ai-tracking-suggestions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tracking-suggestions.js","sourceRoot":"","sources":["../src/ai-tracking-suggestions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { RequestOptions } from "./types.js";
2
+ export interface TrackingTransport {
3
+ request<T>(method: string, path: string, options?: RequestOptions & {
4
+ body?: unknown;
5
+ query?: Record<string, string | number | undefined>;
6
+ parseAs?: "text" | "json";
7
+ }): Promise<T>;
8
+ }
9
+ /** True when `value` is `<prefix>_` followed by a 24-character public ID body. */
10
+ export declare function hasPublicIdShape(value: string, prefix: string): boolean;
11
+ export declare function trackingId(value: string, prefix: string): string;
12
+ export declare function validateTrackingInput(input: unknown): void;
13
+ //# sourceMappingURL=ai-tracking-transport.d.ts.map