@bisibility/sdk 0.14.1 → 0.16.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 (74) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/NOTICE +5 -0
  3. package/README.md +63 -6
  4. package/dist/ai-research-catalog.d.ts +39 -0
  5. package/dist/ai-research-catalog.d.ts.map +1 -0
  6. package/dist/ai-research-catalog.js +2 -0
  7. package/dist/ai-research-catalog.js.map +1 -0
  8. package/dist/ai-tracking-catalog-methods.d.ts +18 -0
  9. package/dist/ai-tracking-catalog-methods.d.ts.map +1 -0
  10. package/dist/ai-tracking-catalog-methods.js +49 -0
  11. package/dist/ai-tracking-catalog-methods.js.map +1 -0
  12. package/dist/ai-tracking-methods.d.ts +35 -0
  13. package/dist/ai-tracking-methods.d.ts.map +1 -0
  14. package/dist/ai-tracking-methods.js +15 -0
  15. package/dist/ai-tracking-methods.js.map +1 -0
  16. package/dist/ai-tracking-run-methods.d.ts +20 -0
  17. package/dist/ai-tracking-run-methods.d.ts.map +1 -0
  18. package/dist/ai-tracking-run-methods.js +59 -0
  19. package/dist/ai-tracking-run-methods.js.map +1 -0
  20. package/dist/ai-tracking-suggestion-methods.d.ts +9 -0
  21. package/dist/ai-tracking-suggestion-methods.d.ts.map +1 -0
  22. package/dist/ai-tracking-suggestion-methods.js +36 -0
  23. package/dist/ai-tracking-suggestion-methods.js.map +1 -0
  24. package/dist/ai-tracking-suggestions.d.ts +63 -0
  25. package/dist/ai-tracking-suggestions.d.ts.map +1 -0
  26. package/dist/ai-tracking-suggestions.js +2 -0
  27. package/dist/ai-tracking-suggestions.js.map +1 -0
  28. package/dist/ai-tracking-transport.d.ts +13 -0
  29. package/dist/ai-tracking-transport.d.ts.map +1 -0
  30. package/dist/ai-tracking-transport.js +57 -0
  31. package/dist/ai-tracking-transport.js.map +1 -0
  32. package/dist/ai-tracking-validation.d.ts +3 -0
  33. package/dist/ai-tracking-validation.d.ts.map +1 -0
  34. package/dist/ai-tracking-validation.js +46 -0
  35. package/dist/ai-tracking-validation.js.map +1 -0
  36. package/dist/ai-tracking.d.ts +273 -0
  37. package/dist/ai-tracking.d.ts.map +1 -0
  38. package/dist/ai-tracking.js +2 -0
  39. package/dist/ai-tracking.js.map +1 -0
  40. package/dist/client.d.ts +59 -0
  41. package/dist/client.d.ts.map +1 -1
  42. package/dist/client.js +69 -7
  43. package/dist/client.js.map +1 -1
  44. package/dist/index.d.ts +5 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/public-id-contract.d.ts.map +1 -1
  48. package/dist/public-id-contract.js +81 -20
  49. package/dist/public-id-contract.js.map +1 -1
  50. package/dist/public-id.d.ts +1 -0
  51. package/dist/public-id.d.ts.map +1 -1
  52. package/dist/public-id.js +1 -0
  53. package/dist/public-id.js.map +1 -1
  54. package/dist/research-workspace.d.ts +173 -0
  55. package/dist/research-workspace.d.ts.map +1 -0
  56. package/dist/research-workspace.js +2 -0
  57. package/dist/research-workspace.js.map +1 -0
  58. package/dist/resources.d.ts +20 -0
  59. package/dist/resources.d.ts.map +1 -1
  60. package/dist/resources.js +25 -0
  61. package/dist/resources.js.map +1 -1
  62. package/dist/response-contract-data.d.ts +3 -0
  63. package/dist/response-contract-data.d.ts.map +1 -0
  64. package/dist/response-contract-data.js +462 -0
  65. package/dist/response-contract-data.js.map +1 -0
  66. package/dist/response-contract.d.ts +22 -0
  67. package/dist/response-contract.d.ts.map +1 -0
  68. package/dist/response-contract.js +45 -0
  69. package/dist/response-contract.js.map +1 -0
  70. package/dist/types.d.ts +65 -12
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/version.d.ts +1 -1
  73. package/dist/version.js +1 -1
  74. package/package.json +11 -8
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ ## 0.16.0 - 2026-10-10
6
+
7
+ - Add typed project AI tracking operations for topics, immutable prompt revisions, schedules,
8
+ consented runs, samples, history, trends, evidence exports, and accepted suggestions.
9
+ - Add free AI research catalog reads and prompt comparison options for current models, web search,
10
+ locale hints, and explicitly acknowledged provider actual-cost mode.
11
+ - Add reviewed model suggestion preview and generation with a frozen preview, explicit paid consent,
12
+ and a stable idempotency UUID. Accepted edits retain trusted generation or provider dataset references.
13
+ - Preserve unknown costs and observation times as null, and expose optional evidence export
14
+ completeness and resume metadata.
15
+ - Preserved rank coverage, latest-check evidence and unavailable backlinks history in typed SDK responses.
16
+ - Stopped automatic retries of potentially paid requests, made AI tracking schedule updates partial with top-level consent, and typed trends baseline, category and strata.
17
+
18
+ ## 0.15.0 - 2026-10-07
19
+
20
+ - Add typed project context, agent report, AI visibility, prompt comparison, and site audit operations.
21
+ - Wait for terminal queued rank checks and preserve per-attempt timeouts with caller cancellation signals.
22
+ - Validate successful JSON response envelopes and required value types for every SDK operation.
23
+ - Support cloud-import package versions 6 and 7, preserve ranking normalization metadata and
24
+ canonical location keys, and decode server-advertised compatibility versions independently.
25
+ - Include `NOTICE` in the npm package and update the product and request-source documentation.
26
+
3
27
  ## 0.14.1 - 2026-09-27
4
28
 
5
29
  - Replaced the stale README version label with a link to the current package registry release.
package/NOTICE ADDED
@@ -0,0 +1,5 @@
1
+ Bisibility SDK for TypeScript
2
+ Copyright (c) 2026 CorgiCorner
3
+
4
+ This product is licensed under the Apache License, Version 2.0 (Apache-2.0).
5
+ See the LICENSE file for the full license text.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @bisibility/sdk
2
2
 
3
- > Part of [bisibility](https://github.com/CorgiCorner/bisibility) - open-source keyword
4
- > rank tracking you can self-host and automate. This repository contains the TypeScript
3
+ > Part of [bisibility](https://github.com/CorgiCorner/bisibility) - an open-source SEO
4
+ > platform you can self-host and automate. This repository contains the TypeScript
5
5
  > SDK for the Bisibility REST API.
6
6
  >
7
7
  > [Docs](https://bisibility.com/docs) ·
@@ -112,7 +112,7 @@ Custom `fetch` implementations should preserve that behavior.
112
112
  Requests identify the package with `X-Bisibility-Client: bisibility-sdk-ts/<version>` and, where
113
113
  the runtime permits, the same value as `User-Agent`. Every request also declares its origin with
114
114
  `X-Bisibility-Source: sdk` for usage reporting; pass a different value through the `headers`
115
- config option (the CLI sends `cli`, the MCP server sends `mcp`). Inputs mirror JSON wire names, so payload
115
+ config option. Inputs mirror JSON wire names, so payload
116
116
  fields use snake_case (for example `tracking_scope` and `expires_in_days`). SDK-only configuration
117
117
  and request options remain camelCase.
118
118
 
@@ -131,7 +131,8 @@ await bisibility.projects.list({
131
131
  });
132
132
  ```
133
133
 
134
- Without an explicit timeout or signal, every attempt has a 30-second timeout. Set `timeout: null`
134
+ Without an explicit timeout, every attempt has a 30-second timeout, including requests with a caller
135
+ cancellation signal. Set `timeout: null`
135
136
  on the client or an individual request to opt out.
136
137
 
137
138
  ### API version compatibility
@@ -143,6 +144,11 @@ does not serve `v1` fails with `BisibilityApiVersionError` before the requested
143
144
  Older servers whose capabilities response has no `apiVersions` field remain compatible, and the
144
145
  original request continues normally.
145
146
 
147
+ Successful JSON responses are checked against each operation's required envelope and value types.
148
+ Malformed JSON, missing required fields, and incompatible values throw `BisibilityResponseError`.
149
+ Additional server fields remain compatible. Only keyword deletion permits an empty JSON response;
150
+ text endpoints and CSV exports use their documented text decoder.
151
+
146
152
  ## Public resource IDs
147
153
 
148
154
  Every resource identifier accepted or returned by the SDK uses the current typed public ID format.
@@ -157,8 +163,13 @@ before sending a request. `PUBLIC_ID_PREFIXES`,
157
163
  and `WebhookId` are exported for callers that build typed integrations.
158
164
 
159
165
  Locations are identified by `location_key`; they do not expose a location ID.
160
- Cloud import and export payloads use schema version 5 only. Pagination cursors are opaque SDK
161
- values; v3 API cursors returned by the server must be passed back unchanged.
166
+ Cloud import supports current version 7 and previous version 6 export packages. Version 7 keywords
167
+ carry a canonical `location_key`; both versions preserve explicit ranking normalization, provider,
168
+ and requested-depth metadata. Version 5 is retained only for metadata packages with no ranking
169
+ history; session creation accepts versions 7 and 6. Compatibility discovery returns the positive
170
+ integer versions advertised by the server, including versions newer than this SDK can import.
171
+ Pagination cursors are opaque SDK values; v3 API cursors returned by the server must be passed back
172
+ unchanged.
162
173
 
163
174
  ## Resource namespaces
164
175
 
@@ -171,6 +182,11 @@ compatibility delegates until 1.0.
171
182
  | `pricing` | `getRates`, `estimate` |
172
183
  | `locations` | `search` |
173
184
  | `account` | `get`, `update`, plus `tokens.list`, `tokens.create`, `tokens.revoke` |
185
+ | `projectContext` | `get`, `update` |
186
+ | `agentReports` | `list`, `create`, `get` |
187
+ | `aiVisibility` | `analyze` |
188
+ | `promptExplorer` | `compare` |
189
+ | `siteAudits` | `list`, `run`, `get` |
174
190
  | `projects` | `list`, `create`, `get`, `update`, `delete`, `getDefaults`, `updateDefaults` |
175
191
  | `apiKeys` | `list`, `iterate`, `create`, `revoke` |
176
192
  | `webhooks` | `list`, `iterate`, `create`, `update`, `delete` |
@@ -493,3 +509,44 @@ const report = await client.researchReports.get(projectId, "keyword_research", {
493
509
  const budgets = await client.providers.budgets.list(projectId);
494
510
  await client.providers.budgets.update(projectId, "dataforseo", { own: { app: null }, credits: { programmatic: { amount_per_month: 500, unit: "cents" } } });
495
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.
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tracking-transport.d.ts","sourceRoot":"","sources":["../src/ai-tracking-transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,CAAC,EACP,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,GAAG;QACzB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;QACpD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KAC3B,GACA,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEvE;AACD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAIvD;AACD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAyC1D"}