@airtop/sdk 1.0.0-alpha2.11 → 1.0.0-alpha2.12
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/dist/index.cjs +78 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +32 -7
- package/dist/index.d.ts +32 -7
- package/dist/index.js +77 -7
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
@@ -4,14 +4,14 @@ import { AirtopJsonSchemaAdapter } from '@airtop/json-schema-adapter';
|
|
4
4
|
export { AirtopJsonSchemaAdapter } from '@airtop/json-schema-adapter';
|
5
5
|
import { ILogLayer } from 'loglayer';
|
6
6
|
export { ILogLayer } from 'loglayer';
|
7
|
+
import * as _airtop_core_resources_shared_js from '@airtop/core/resources/shared.js';
|
8
|
+
import { Issue, SessionConfigV1, GetFileResponse, FilesResponse, ListAutomationsOutput, AutomationData, ExternalSessionWithConnectionInfo, EnvelopeDefaultMeta, AIPromptResponse as AIPromptResponse$1, WindowIDDataResponse, OperationOutcomeResponse } from '@airtop/core/resources/shared.js';
|
9
|
+
export { AIResponseEnvelope, AirtopPagination, ExternalSessionAIResponseMetadata, ExternalSessionWithConnectionInfo, Issue, OperationOutcomeResponse, WindowIDDataResponse } from '@airtop/core/resources/shared.js';
|
7
10
|
import * as _airtop_core_resources_shared_mjs from '@airtop/core/resources/shared.mjs';
|
8
11
|
import { AutomationUpdateDescriptionParams } from '@airtop/core/resources/automations.js';
|
9
12
|
import { SessionListParams, ProfileOutput, FileListParams, FileCreateFileParams, WindowIDData, EnvelopeDefaultMeta as EnvelopeDefaultMeta$1, Issue as Issue$1, WindowInfo, WindowGetParams, AIPromptResponse, ScrapeResponse } from '@airtop/core/resources/index.js';
|
10
|
-
import * as _airtop_core_resources_shared_js from '@airtop/core/resources/shared.js';
|
11
|
-
import { SessionConfigV1, GetFileResponse, FilesResponse, ListAutomationsOutput, AutomationData, ExternalSessionWithConnectionInfo, EnvelopeDefaultMeta, Issue, AIPromptResponse as AIPromptResponse$1, WindowIDDataResponse, OperationOutcomeResponse } from '@airtop/core/resources/shared.js';
|
12
|
-
export { AIResponseEnvelope, AirtopPagination, ExternalSessionAIResponseMetadata, ExternalSessionWithConnectionInfo, Issue, OperationOutcomeResponse, WindowIDDataResponse } from '@airtop/core/resources/shared.js';
|
13
13
|
import * as _airtop_core_resources_sessions_mjs from '@airtop/core/resources/sessions.mjs';
|
14
|
-
import { WindowClickParams, WindowHoverParams, WindowLoadURLParams, WindowMonitorParams, WindowScrapeParams, WindowScreenshotParams, WindowScrollParams, WindowTypeParams, WindowExtractParams, WindowActParams, WindowLlmParams, WindowFindOneParams, WindowFindManyParams, WindowWaitForPageParams } from '@airtop/core/resources/windows.js';
|
14
|
+
import { WindowClickParams, WindowHoverParams, WindowLoadURLParams, WindowMonitorParams, WindowScrapeParams, WindowScreenshotParams, WindowScrollParams, WindowTypeParams, WindowExtractParams, WindowActParams, WindowLlmParams, WindowFindOneParams, WindowFindManyParams, WindowWaitForPageParams, WindowNavigateParams } from '@airtop/core/resources/windows.js';
|
15
15
|
|
16
16
|
/**
|
17
17
|
* Shared configuration between Airtop classes.
|
@@ -79,6 +79,14 @@ interface CommonResponse {
|
|
79
79
|
warnings?: unknown;
|
80
80
|
errors?: unknown;
|
81
81
|
}
|
82
|
+
/**
|
83
|
+
* Custom error class that implements the Issue interface.
|
84
|
+
* Extends the native Error class to provide a more structured error handling mechanism.
|
85
|
+
*/
|
86
|
+
declare class AirtopError extends Error {
|
87
|
+
issues: Issue[];
|
88
|
+
constructor(issues: Issue[]);
|
89
|
+
}
|
82
90
|
|
83
91
|
/**
|
84
92
|
* Base class for Airtop SDK implementation
|
@@ -482,6 +490,18 @@ interface WindowFindManyConfig extends Omit<WindowFindManyParams, "sessionId" |
|
|
482
490
|
*/
|
483
491
|
interface WindowWaitForPageConfig extends Omit<WindowWaitForPageParams, "sessionId"> {
|
484
492
|
}
|
493
|
+
/**
|
494
|
+
* Configuration parameters for navigating browser history in a window.
|
495
|
+
*/
|
496
|
+
interface WindowNavigateConfig extends Omit<WindowNavigateParams, "sessionId"> {
|
497
|
+
}
|
498
|
+
/**
|
499
|
+
* The direction to navigate in browser history.
|
500
|
+
*/
|
501
|
+
declare enum WindowNavigateDirection {
|
502
|
+
BACK = "backward",
|
503
|
+
FORWARD = "forward"
|
504
|
+
}
|
485
505
|
/**
|
486
506
|
* Data object representing a node returned from the Airtop API.
|
487
507
|
*/
|
@@ -714,9 +734,14 @@ declare class AirtopWindowClient extends AirtopBase {
|
|
714
734
|
extract(prompt: string, config?: WindowExtractConfig, requestOptions?: AirtopRequestOptions): Promise<WindowPromptResponse>;
|
715
735
|
act(prompt: string, config?: WindowActConfig, requestOptions?: AirtopRequestOptions): Promise<WindowPromptResponse>;
|
716
736
|
llm(prompt: string, config?: WindowLlmConfig, requestOptions?: AirtopRequestOptions): Promise<WindowPromptResponse>;
|
717
|
-
|
718
|
-
|
737
|
+
private findOnePrivate;
|
738
|
+
findOne(prompt: string, config?: Omit<WindowFindOneConfig, "optional">, requestOptions?: AirtopRequestOptions): Promise<AirtopNode>;
|
739
|
+
findOneOptional(prompt: string, config?: Omit<WindowFindOneConfig, "optional">, requestOptions?: AirtopRequestOptions): Promise<AirtopNode | null>;
|
740
|
+
private findManyPrivate;
|
741
|
+
findMany(prompt: string, config?: Omit<WindowFindManyConfig, "optional">, requestOptions?: AirtopRequestOptions): Promise<AirtopNode[]>;
|
742
|
+
findManyOptional(prompt: string, config?: Omit<WindowFindManyConfig, "optional">, requestOptions?: AirtopRequestOptions): Promise<AirtopNode[]>;
|
719
743
|
waitForPage(config?: WindowWaitForPageConfig, requestOptions?: AirtopRequestOptions): Promise<WindowPromptResponse>;
|
744
|
+
navigate(direction: WindowNavigateDirection, config?: WindowNavigateConfig, requestOptions?: AirtopRequestOptions): Promise<WindowPromptResponse>;
|
720
745
|
}
|
721
746
|
|
722
747
|
/**
|
@@ -1157,4 +1182,4 @@ declare class AirtopMocks {
|
|
1157
1182
|
}): AirtopWindow<AirtopWindowGetInfoResponse>;
|
1158
1183
|
}
|
1159
1184
|
|
1160
|
-
export { type AirtopAutomationData, type AirtopAutomationListResponse, type AirtopAutomationUpdateDescriptionConfig, AirtopBase, AirtopClient, type AirtopClientPlugin, type AirtopConstructorConfig, type AirtopFileListParams, type AirtopFileResponse, type AirtopFilesResponse, AirtopMocks, AirtopNode, type AirtopNodeApiResponseData, AirtopPluginAugmentationType, type AirtopPluginRegistration, type AirtopPluginType, type AirtopProfile, type AirtopRequestOptions, AirtopSession, AirtopSessionClient, type AirtopSessionClientPlugin, type AirtopSessionPlugin, type AirtopSessionResponse, AirtopWindow, AirtopWindowClient, type AirtopWindowClientPlugin, type AirtopWindowCreateResponse, type AirtopWindowGetInfoResponse, type AirtopWindowPlugin, AirtopWindowScreenshot, type AirtopWindowScreenshotPlugin, type AirtopWindowScreenshotResponse, type CommonAirtopConfig, type CommonResponse, type CommonWindowResponse, type CreateFileConfig, type CreateSessionConfig, type GetFilesConfig, type GetSessionsConfig, type OutputJsonSchemaConfig, type ScreenshotData, type SessionData, type SessionError, type SessionMetadata, type SessionWarning, type WindowActConfig, type WindowClickConfig, type WindowCreateData, type WindowError, type WindowExtractConfig, type WindowFindManyConfig, type WindowFindOneConfig, type WindowGetConfig, type WindowHoverConfig, type WindowInfoData, type WindowLlmConfig, type WindowLoadUrlConfig, type WindowMetadata, type WindowMonitorConfig, type WindowPageQueryConfig, type WindowPaginatedExtractionConfig, type WindowPromptResponse, type WindowScrapeConfig, type WindowScrapeResponse, type WindowScreenshotConfig, type WindowScrollConfig, type WindowTypeConfig, type WindowWaitForPageConfig, type WindowWarning, registerAirtopPlugin };
|
1185
|
+
export { type AirtopAutomationData, type AirtopAutomationListResponse, type AirtopAutomationUpdateDescriptionConfig, AirtopBase, AirtopClient, type AirtopClientPlugin, type AirtopConstructorConfig, AirtopError, type AirtopFileListParams, type AirtopFileResponse, type AirtopFilesResponse, AirtopMocks, AirtopNode, type AirtopNodeApiResponseData, AirtopPluginAugmentationType, type AirtopPluginRegistration, type AirtopPluginType, type AirtopProfile, type AirtopRequestOptions, AirtopSession, AirtopSessionClient, type AirtopSessionClientPlugin, type AirtopSessionPlugin, type AirtopSessionResponse, AirtopWindow, AirtopWindowClient, type AirtopWindowClientPlugin, type AirtopWindowCreateResponse, type AirtopWindowGetInfoResponse, type AirtopWindowPlugin, AirtopWindowScreenshot, type AirtopWindowScreenshotPlugin, type AirtopWindowScreenshotResponse, type CommonAirtopConfig, type CommonResponse, type CommonWindowResponse, type CreateFileConfig, type CreateSessionConfig, type GetFilesConfig, type GetSessionsConfig, type OutputJsonSchemaConfig, type ScreenshotData, type SessionData, type SessionError, type SessionMetadata, type SessionWarning, type WindowActConfig, type WindowClickConfig, type WindowCreateData, type WindowError, type WindowExtractConfig, type WindowFindManyConfig, type WindowFindOneConfig, type WindowGetConfig, type WindowHoverConfig, type WindowInfoData, type WindowLlmConfig, type WindowLoadUrlConfig, type WindowMetadata, type WindowMonitorConfig, type WindowNavigateConfig, WindowNavigateDirection, type WindowPageQueryConfig, type WindowPaginatedExtractionConfig, type WindowPromptResponse, type WindowScrapeConfig, type WindowScrapeResponse, type WindowScreenshotConfig, type WindowScrollConfig, type WindowTypeConfig, type WindowWaitForPageConfig, type WindowWarning, registerAirtopPlugin };
|
package/dist/index.js
CHANGED
@@ -9,7 +9,7 @@ var require_package = __commonJS({
|
|
9
9
|
module.exports = {
|
10
10
|
name: "@airtop/sdk",
|
11
11
|
description: "Airtop SDK for TypeScript",
|
12
|
-
version: "1.0.0-alpha2.
|
12
|
+
version: "1.0.0-alpha2.12",
|
13
13
|
type: "module",
|
14
14
|
main: "./dist/index.cjs",
|
15
15
|
module: "./dist/index.js",
|
@@ -47,7 +47,7 @@ var require_package = __commonJS({
|
|
47
47
|
},
|
48
48
|
dependencies: {
|
49
49
|
"@airtop/json-schema-adapter": "workspace:*",
|
50
|
-
"@airtop/core": "0.1.0-alpha.
|
50
|
+
"@airtop/core": "0.1.0-alpha.28",
|
51
51
|
"date-fns": "4.1.0",
|
52
52
|
loglayer: "6.3.3",
|
53
53
|
"serialize-error": "12.0.0",
|
@@ -264,13 +264,23 @@ var processLogMessage = (log, logLevel, ...args) => {
|
|
264
264
|
// src/session/AirtopSessionClient.ts
|
265
265
|
import { NotFoundError } from "@airtop/core";
|
266
266
|
|
267
|
+
// src/types.ts
|
268
|
+
var AirtopError = class extends Error {
|
269
|
+
issues;
|
270
|
+
constructor(issues) {
|
271
|
+
const errorMessage = issues.map((issue) => issue.message).join("\n");
|
272
|
+
super(errorMessage);
|
273
|
+
this.issues = issues;
|
274
|
+
}
|
275
|
+
};
|
276
|
+
|
267
277
|
// src/window/AirtopWindowClient.ts
|
268
278
|
import { secondsToMilliseconds as secondsToMilliseconds3 } from "date-fns";
|
269
279
|
|
270
280
|
// src/async-utils.ts
|
271
281
|
import { secondsToMilliseconds as secondsToMilliseconds2 } from "date-fns";
|
272
282
|
var DEFAULT_TIMEOUT_SECONDS = 300;
|
273
|
-
var
|
283
|
+
var DEFAULT_POLLING_INTERVAL_MS = 500;
|
274
284
|
async function waitForRequestCompletion(client, requestId, requestOptions) {
|
275
285
|
const startTime = Date.now();
|
276
286
|
const timeoutMs = secondsToMilliseconds2(requestOptions?.timeoutInSeconds || DEFAULT_TIMEOUT_SECONDS);
|
@@ -282,7 +292,7 @@ async function waitForRequestCompletion(client, requestId, requestOptions) {
|
|
282
292
|
if (apiResponse.status === "error") {
|
283
293
|
throw new Error(apiResponse.error);
|
284
294
|
}
|
285
|
-
await new Promise((resolve) => setTimeout(resolve,
|
295
|
+
await new Promise((resolve) => setTimeout(resolve, DEFAULT_POLLING_INTERVAL_MS));
|
286
296
|
}
|
287
297
|
throw new Error("Waiting for request timed out");
|
288
298
|
}
|
@@ -811,7 +821,7 @@ var AirtopWindowClient = class extends AirtopBase {
|
|
811
821
|
)
|
812
822
|
);
|
813
823
|
}
|
814
|
-
async
|
824
|
+
async findOnePrivate(prompt, config, requestOptions = {}) {
|
815
825
|
this.log.withMetadata({ prompt }).info("Executing LLM call");
|
816
826
|
const apiResponse = await withRequestCompletionPolling(
|
817
827
|
this.client,
|
@@ -829,15 +839,32 @@ var AirtopWindowClient = class extends AirtopBase {
|
|
829
839
|
}
|
830
840
|
)
|
831
841
|
);
|
842
|
+
if (apiResponse.errors.length > 0) {
|
843
|
+
throw new AirtopError(apiResponse.errors);
|
844
|
+
}
|
832
845
|
try {
|
846
|
+
if (!apiResponse.data.modelResponse) {
|
847
|
+
return null;
|
848
|
+
}
|
833
849
|
const nodeData = JSON.parse(apiResponse.data.modelResponse);
|
850
|
+
if (Object.keys(nodeData).length === 0) {
|
851
|
+
return null;
|
852
|
+
}
|
834
853
|
return new AirtopNode(this, nodeData);
|
835
854
|
} catch (error) {
|
836
855
|
this.log.withMetadata({ nodeDataStr: apiResponse.data.modelResponse }).withError(error).error("Error parsing node data");
|
837
856
|
throw error;
|
838
857
|
}
|
839
858
|
}
|
840
|
-
async
|
859
|
+
async findOne(prompt, config, requestOptions = {}) {
|
860
|
+
const configOverride = { ...config, optional: false };
|
861
|
+
return await this.findOnePrivate(prompt, configOverride, requestOptions);
|
862
|
+
}
|
863
|
+
async findOneOptional(prompt, config, requestOptions = {}) {
|
864
|
+
const configOverride = { ...config, optional: true };
|
865
|
+
return await this.findOnePrivate(prompt, configOverride, requestOptions);
|
866
|
+
}
|
867
|
+
async findManyPrivate(prompt, config, requestOptions = {}) {
|
841
868
|
this.log.withMetadata({ prompt }).info("Executing LLM call");
|
842
869
|
const apiResponse = await withRequestCompletionPolling(
|
843
870
|
this.client,
|
@@ -855,15 +882,32 @@ var AirtopWindowClient = class extends AirtopBase {
|
|
855
882
|
}
|
856
883
|
)
|
857
884
|
);
|
885
|
+
if (apiResponse.errors.length > 0) {
|
886
|
+
throw new AirtopError(apiResponse.errors);
|
887
|
+
}
|
858
888
|
const nodeHandles = apiResponse.data.modelResponse.split("___DELIM___");
|
859
889
|
return nodeHandles.map((nodeDataStr) => {
|
860
890
|
try {
|
891
|
+
if (!nodeDataStr) {
|
892
|
+
return null;
|
893
|
+
}
|
861
894
|
const nodeData = JSON.parse(nodeDataStr);
|
895
|
+
if (Object.keys(nodeData).length === 0) {
|
896
|
+
return null;
|
897
|
+
}
|
862
898
|
return new AirtopNode(this, nodeData);
|
863
899
|
} catch (error) {
|
864
900
|
this.log.withMetadata({ nodeDataStr }).withError(error).error("Error parsing node data");
|
865
901
|
}
|
866
|
-
});
|
902
|
+
}).filter((node) => !!node);
|
903
|
+
}
|
904
|
+
async findMany(prompt, config, requestOptions = {}) {
|
905
|
+
const configOverride = { ...config, optional: false };
|
906
|
+
return await this.findManyPrivate(prompt, configOverride, requestOptions);
|
907
|
+
}
|
908
|
+
async findManyOptional(prompt, config, requestOptions = {}) {
|
909
|
+
const configOverride = { ...config, optional: true };
|
910
|
+
return await this.findManyPrivate(prompt, configOverride, requestOptions);
|
867
911
|
}
|
868
912
|
async waitForPage(config, requestOptions = {}) {
|
869
913
|
return await withRequestCompletionPolling(
|
@@ -881,6 +925,23 @@ var AirtopWindowClient = class extends AirtopBase {
|
|
881
925
|
)
|
882
926
|
);
|
883
927
|
}
|
928
|
+
async navigate(direction, config, requestOptions = {}) {
|
929
|
+
return await withRequestCompletionPolling(
|
930
|
+
this.client,
|
931
|
+
() => this.client.windows.navigate(
|
932
|
+
this.getWindowId(),
|
933
|
+
{
|
934
|
+
direction,
|
935
|
+
sessionId: this.sessionId,
|
936
|
+
...config || {}
|
937
|
+
},
|
938
|
+
{
|
939
|
+
timeout: secondsToMilliseconds3(600),
|
940
|
+
...this.resolveRequestOptions(requestOptions)
|
941
|
+
}
|
942
|
+
)
|
943
|
+
);
|
944
|
+
}
|
884
945
|
};
|
885
946
|
|
886
947
|
// src/window/AirtopWindow.ts
|
@@ -1317,6 +1378,13 @@ var AirtopClient = class extends AirtopBase {
|
|
1317
1378
|
}
|
1318
1379
|
};
|
1319
1380
|
|
1381
|
+
// src/window/AirtopWindowClient.types.ts
|
1382
|
+
var WindowNavigateDirection = /* @__PURE__ */ ((WindowNavigateDirection2) => {
|
1383
|
+
WindowNavigateDirection2["BACK"] = "backward";
|
1384
|
+
WindowNavigateDirection2["FORWARD"] = "forward";
|
1385
|
+
return WindowNavigateDirection2;
|
1386
|
+
})(WindowNavigateDirection || {});
|
1387
|
+
|
1320
1388
|
// src/plugin/AirtopPlugin.types.ts
|
1321
1389
|
var AirtopPluginAugmentationType = /* @__PURE__ */ ((AirtopPluginAugmentationType2) => {
|
1322
1390
|
AirtopPluginAugmentationType2["AirtopClient"] = "AirtopClient";
|
@@ -1447,6 +1515,7 @@ var AirtopMocks = class {
|
|
1447
1515
|
export {
|
1448
1516
|
AirtopBase,
|
1449
1517
|
AirtopClient,
|
1518
|
+
AirtopError,
|
1450
1519
|
AirtopMocks,
|
1451
1520
|
AirtopNode,
|
1452
1521
|
AirtopPluginAugmentationType,
|
@@ -1455,6 +1524,7 @@ export {
|
|
1455
1524
|
AirtopWindow,
|
1456
1525
|
AirtopWindowClient,
|
1457
1526
|
AirtopWindowScreenshot,
|
1527
|
+
WindowNavigateDirection,
|
1458
1528
|
registerAirtopPlugin
|
1459
1529
|
};
|
1460
1530
|
//# sourceMappingURL=index.js.map
|