@bisibility/sdk 0.15.0 → 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.
- package/CHANGELOG.md +15 -0
- package/README.md +41 -0
- package/dist/ai-research-catalog.d.ts +39 -0
- package/dist/ai-research-catalog.d.ts.map +1 -0
- package/dist/ai-research-catalog.js +2 -0
- package/dist/ai-research-catalog.js.map +1 -0
- package/dist/ai-tracking-catalog-methods.d.ts +18 -0
- package/dist/ai-tracking-catalog-methods.d.ts.map +1 -0
- package/dist/ai-tracking-catalog-methods.js +49 -0
- package/dist/ai-tracking-catalog-methods.js.map +1 -0
- package/dist/ai-tracking-methods.d.ts +35 -0
- package/dist/ai-tracking-methods.d.ts.map +1 -0
- package/dist/ai-tracking-methods.js +15 -0
- package/dist/ai-tracking-methods.js.map +1 -0
- package/dist/ai-tracking-run-methods.d.ts +20 -0
- package/dist/ai-tracking-run-methods.d.ts.map +1 -0
- package/dist/ai-tracking-run-methods.js +59 -0
- package/dist/ai-tracking-run-methods.js.map +1 -0
- package/dist/ai-tracking-suggestion-methods.d.ts +9 -0
- package/dist/ai-tracking-suggestion-methods.d.ts.map +1 -0
- package/dist/ai-tracking-suggestion-methods.js +36 -0
- package/dist/ai-tracking-suggestion-methods.js.map +1 -0
- package/dist/ai-tracking-suggestions.d.ts +63 -0
- package/dist/ai-tracking-suggestions.d.ts.map +1 -0
- package/dist/ai-tracking-suggestions.js +2 -0
- package/dist/ai-tracking-suggestions.js.map +1 -0
- package/dist/ai-tracking-transport.d.ts +13 -0
- package/dist/ai-tracking-transport.d.ts.map +1 -0
- package/dist/ai-tracking-transport.js +57 -0
- package/dist/ai-tracking-transport.js.map +1 -0
- package/dist/ai-tracking-validation.d.ts +3 -0
- package/dist/ai-tracking-validation.d.ts.map +1 -0
- package/dist/ai-tracking-validation.js +46 -0
- package/dist/ai-tracking-validation.js.map +1 -0
- package/dist/ai-tracking.d.ts +273 -0
- package/dist/ai-tracking.d.ts.map +1 -0
- package/dist/ai-tracking.js +2 -0
- package/dist/ai-tracking.js.map +1 -0
- package/dist/client.d.ts +30 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +19 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/public-id-contract.d.ts.map +1 -1
- package/dist/public-id-contract.js +2 -0
- package/dist/public-id-contract.js.map +1 -1
- package/dist/research-workspace.d.ts +23 -2
- package/dist/research-workspace.d.ts.map +1 -1
- package/dist/response-contract-data.d.ts.map +1 -1
- package/dist/response-contract-data.js +247 -164
- package/dist/response-contract-data.js.map +1 -1
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
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
|
+
|
|
3
18
|
## 0.15.0 - 2026-10-07
|
|
4
19
|
|
|
5
20
|
- Add typed project context, agent report, AI visibility, prompt comparison, and site audit operations.
|
package/README.md
CHANGED
|
@@ -509,3 +509,44 @@ 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.
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { BisibilityConfigurationError } from "./errors.js";
|
|
2
|
+
const PUBLIC_ID_BODY = /^[a-z][a-z0-9]{23}$/;
|
|
3
|
+
/** True when `value` is `<prefix>_` followed by a 24-character public ID body. */
|
|
4
|
+
export function hasPublicIdShape(value, prefix) {
|
|
5
|
+
return value.startsWith(`${prefix}_`) && PUBLIC_ID_BODY.test(value.slice(prefix.length + 1));
|
|
6
|
+
}
|
|
7
|
+
export function trackingId(value, prefix) {
|
|
8
|
+
if (!hasPublicIdShape(value, prefix))
|
|
9
|
+
throw new BisibilityConfigurationError(`Expected a ${prefix}_ public ID.`);
|
|
10
|
+
return encodeURIComponent(value);
|
|
11
|
+
}
|
|
12
|
+
export function validateTrackingInput(input) {
|
|
13
|
+
if (!input || typeof input !== "object")
|
|
14
|
+
return;
|
|
15
|
+
const row = input;
|
|
16
|
+
if (row.popularity != null)
|
|
17
|
+
throw new BisibilityConfigurationError("Caller popularity claims are not accepted.");
|
|
18
|
+
if (row.provenance === "model_generated_hypothesis" && !row.generation_reference)
|
|
19
|
+
throw new BisibilityConfigurationError("Model drafts require a trusted generation reference.");
|
|
20
|
+
if (row.provenance === "provider_dataset" && !row.provider_dataset_reference)
|
|
21
|
+
throw new BisibilityConfigurationError("Provider datasets require a trusted report reference.");
|
|
22
|
+
if (Array.isArray(row.evidence_ids) &&
|
|
23
|
+
row.evidence_ids.length &&
|
|
24
|
+
!row.generation_reference &&
|
|
25
|
+
!row.provider_dataset_reference)
|
|
26
|
+
throw new BisibilityConfigurationError("Evidence claims require a trusted provenance reference.");
|
|
27
|
+
if (Array.isArray(row.prompt_ids))
|
|
28
|
+
for (const id of row.prompt_ids)
|
|
29
|
+
trackingId(String(id), "aip");
|
|
30
|
+
for (const [key, prefix] of [
|
|
31
|
+
["topic_id", "ait"],
|
|
32
|
+
["schedule_id", "ais"],
|
|
33
|
+
["credential_connection_id", "conn"],
|
|
34
|
+
])
|
|
35
|
+
if (row[key] != null)
|
|
36
|
+
trackingId(String(row[key]), prefix);
|
|
37
|
+
if (row.provider_dataset_reference) {
|
|
38
|
+
const reference = row.provider_dataset_reference;
|
|
39
|
+
trackingId(reference.report_id, "agr");
|
|
40
|
+
if (!Number.isInteger(reference.row_index) || reference.row_index < 0)
|
|
41
|
+
throw new BisibilityConfigurationError("Dataset row index must be nonnegative.");
|
|
42
|
+
}
|
|
43
|
+
if (row.generation_reference) {
|
|
44
|
+
const reference = row.generation_reference;
|
|
45
|
+
trackingId(reference.generation_id, "asg");
|
|
46
|
+
if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(reference.draft_id))
|
|
47
|
+
throw new BisibilityConfigurationError("Expected a generated draft UUID.");
|
|
48
|
+
if (row.provider_dataset_reference)
|
|
49
|
+
throw new BisibilityConfigurationError("Choose one trusted provenance reference.");
|
|
50
|
+
}
|
|
51
|
+
if (Array.isArray(row.drafts))
|
|
52
|
+
for (const draft of row.drafts)
|
|
53
|
+
validateTrackingInput(draft);
|
|
54
|
+
if (row.configuration)
|
|
55
|
+
validateTrackingInput(row.configuration);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=ai-tracking-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-tracking-transport.js","sourceRoot":"","sources":["../src/ai-tracking-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-tracking-validation.d.ts","sourceRoot":"","sources":["../src/ai-tracking-validation.ts"],"names":[],"mappings":"AACA,mGAAmG;AACnG,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAqChF"}
|