@tabstack/sdk 1.0.5 → 2.1.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 +117 -0
- package/LICENSE +1 -1
- package/README.md +282 -356
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/client.d.mts +186 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +186 -0
- package/client.d.ts.map +1 -0
- package/client.js +467 -0
- package/client.js.map +1 -0
- package/client.mjs +463 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +46 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +46 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +74 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +70 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/error.d.mts +46 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +46 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +113 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +97 -0
- package/core/error.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/streaming.d.mts +33 -0
- package/core/streaming.d.mts.map +1 -0
- package/core/streaming.d.ts +33 -0
- package/core/streaming.d.ts.map +1 -0
- package/core/streaming.js +263 -0
- package/core/streaming.js.map +1 -0
- package/core/streaming.mjs +258 -0
- package/core/streaming.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +2 -0
- package/error.d.ts.map +1 -0
- package/error.js +6 -0
- package/error.js.map +1 -0
- package/error.mjs +2 -0
- package/error.mjs.map +1 -0
- package/index.d.mts +6 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +6 -0
- package/index.d.ts.map +1 -0
- package/index.js +30 -0
- package/index.js.map +1 -0
- package/index.mjs +7 -0
- package/index.mjs.map +1 -0
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/decoders/line.d.mts +17 -0
- package/internal/decoders/line.d.mts.map +1 -0
- package/internal/decoders/line.d.ts +17 -0
- package/internal/decoders/line.d.ts.map +1 -0
- package/internal/decoders/line.js +113 -0
- package/internal/decoders/line.js.map +1 -0
- package/internal/decoders/line.mjs +108 -0
- package/internal/decoders/line.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +20 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +20 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +79 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +74 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +12 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +12 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +45 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +42 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/request-options.d.mts +77 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +77 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +17 -0
- package/internal/shim-types.d.mts.map +1 -0
- package/internal/shim-types.d.ts +17 -0
- package/internal/shim-types.d.ts.map +1 -0
- package/internal/shim-types.js +4 -0
- package/internal/shim-types.js.map +1 -0
- package/internal/shim-types.mjs +3 -0
- package/internal/shim-types.mjs.map +1 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +91 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +88 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +69 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +69 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +141 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +131 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +85 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +79 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +79 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +74 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +18 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +18 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +112 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +94 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +7 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +7 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +11 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +8 -0
- package/internal/utils.mjs.map +1 -0
- package/package.json +139 -82
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +2 -0
- package/resource.d.ts.map +1 -0
- package/resource.js +6 -0
- package/resource.js.map +1 -0
- package/resource.mjs +2 -0
- package/resource.mjs.map +1 -0
- package/resources/agent.d.mts +154 -0
- package/resources/agent.d.mts.map +1 -0
- package/resources/agent.d.ts +154 -0
- package/resources/agent.d.ts.map +1 -0
- package/resources/agent.js +88 -0
- package/resources/agent.js.map +1 -0
- package/resources/agent.mjs +84 -0
- package/resources/agent.mjs.map +1 -0
- package/resources/extract.d.mts +207 -0
- package/resources/extract.d.mts.map +1 -0
- package/resources/extract.d.ts +207 -0
- package/resources/extract.d.ts.map +1 -0
- package/resources/extract.js +61 -0
- package/resources/extract.js.map +1 -0
- package/resources/extract.mjs +57 -0
- package/resources/extract.mjs.map +1 -0
- package/resources/generate.d.mts +79 -0
- package/resources/generate.d.mts.map +1 -0
- package/resources/generate.d.ts +79 -0
- package/resources/generate.d.ts.map +1 -0
- package/resources/generate.js +44 -0
- package/resources/generate.js.map +1 -0
- package/resources/generate.mjs +40 -0
- package/resources/generate.mjs.map +1 -0
- package/resources/index.d.mts +4 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts +4 -0
- package/resources/index.d.ts.map +1 -0
- package/resources/index.js +11 -0
- package/resources/index.js.map +1 -0
- package/resources/index.mjs +5 -0
- package/resources/index.mjs.map +1 -0
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts +2 -0
- package/resources.d.ts.map +1 -0
- package/resources.js +5 -0
- package/resources.js.map +1 -0
- package/resources.mjs +2 -0
- package/resources.mjs.map +1 -0
- package/src/api-promise.ts +2 -0
- package/src/client.ts +764 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +92 -0
- package/src/core/error.ts +130 -0
- package/src/core/resource.ts +11 -0
- package/src/core/streaming.ts +315 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -0
- package/src/index.ts +22 -0
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/decoders/line.ts +135 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +97 -0
- package/src/internal/parse.ts +64 -0
- package/src/internal/request-options.ts +93 -0
- package/src/internal/shim-types.ts +26 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/to-file.ts +154 -0
- package/src/internal/types.ts +95 -0
- package/src/internal/uploads.ts +187 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +126 -0
- package/src/internal/utils/path.ts +88 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +105 -0
- package/src/internal/utils.ts +8 -0
- package/src/lib/.keep +4 -0
- package/src/resource.ts +2 -0
- package/src/resources/agent.ts +194 -0
- package/src/resources/extract.ts +248 -0
- package/src/resources/generate.ts +89 -0
- package/src/resources/index.ts +17 -0
- package/src/resources.ts +1 -0
- package/src/streaming.ts +2 -0
- package/src/tsconfig.json +11 -0
- package/src/uploads.ts +2 -0
- package/src/version.ts +1 -0
- package/streaming.d.mts +2 -0
- package/streaming.d.mts.map +1 -0
- package/streaming.d.ts +2 -0
- package/streaming.d.ts.map +1 -0
- package/streaming.js +6 -0
- package/streaming.js.map +1 -0
- package/streaming.mjs +2 -0
- package/streaming.mjs.map +1 -0
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +2 -0
- package/uploads.d.ts.map +1 -0
- package/uploads.js +6 -0
- package/uploads.js.map +1 -0
- package/uploads.mjs +2 -0
- package/uploads.mjs.map +1 -0
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +5 -0
- package/version.js.map +1 -0
- package/version.mjs +2 -0
- package/version.mjs.map +1 -0
- package/dist/cjs/agent.d.ts +0 -156
- package/dist/cjs/agent.d.ts.map +0 -1
- package/dist/cjs/agent.js +0 -211
- package/dist/cjs/agent.js.map +0 -1
- package/dist/cjs/agent.test.d.ts +0 -5
- package/dist/cjs/agent.test.d.ts.map +0 -1
- package/dist/cjs/agent.test.js +0 -441
- package/dist/cjs/agent.test.js.map +0 -1
- package/dist/cjs/client.d.ts +0 -58
- package/dist/cjs/client.d.ts.map +0 -1
- package/dist/cjs/client.js +0 -58
- package/dist/cjs/client.js.map +0 -1
- package/dist/cjs/client.test.d.ts +0 -5
- package/dist/cjs/client.test.d.ts.map +0 -1
- package/dist/cjs/client.test.js +0 -255
- package/dist/cjs/client.test.js.map +0 -1
- package/dist/cjs/exceptions.d.ts +0 -57
- package/dist/cjs/exceptions.d.ts.map +0 -1
- package/dist/cjs/exceptions.js +0 -95
- package/dist/cjs/exceptions.js.map +0 -1
- package/dist/cjs/exceptions.test.d.ts +0 -5
- package/dist/cjs/exceptions.test.d.ts.map +0 -1
- package/dist/cjs/exceptions.test.js +0 -239
- package/dist/cjs/exceptions.test.js.map +0 -1
- package/dist/cjs/extract.d.ts +0 -151
- package/dist/cjs/extract.d.ts.map +0 -1
- package/dist/cjs/extract.js +0 -165
- package/dist/cjs/extract.js.map +0 -1
- package/dist/cjs/extract.test.d.ts +0 -5
- package/dist/cjs/extract.test.d.ts.map +0 -1
- package/dist/cjs/extract.test.js +0 -250
- package/dist/cjs/extract.test.js.map +0 -1
- package/dist/cjs/generate.d.ts +0 -113
- package/dist/cjs/generate.d.ts.map +0 -1
- package/dist/cjs/generate.js +0 -124
- package/dist/cjs/generate.js.map +0 -1
- package/dist/cjs/generate.test.d.ts +0 -5
- package/dist/cjs/generate.test.d.ts.map +0 -1
- package/dist/cjs/generate.test.js +0 -314
- package/dist/cjs/generate.test.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -52
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -72
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/types.d.ts +0 -73
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/types.js +0 -118
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/types.test.d.ts +0 -5
- package/dist/cjs/types.test.d.ts.map +0 -1
- package/dist/cjs/types.test.js +0 -370
- package/dist/cjs/types.test.js.map +0 -1
- package/dist/cjs/util/http.d.ts +0 -29
- package/dist/cjs/util/http.d.ts.map +0 -1
- package/dist/cjs/util/http.js +0 -201
- package/dist/cjs/util/http.js.map +0 -1
- package/dist/cjs/util/http.test.d.ts +0 -5
- package/dist/cjs/util/http.test.d.ts.map +0 -1
- package/dist/cjs/util/http.test.js +0 -237
- package/dist/cjs/util/http.test.js.map +0 -1
- package/dist/esm/agent.d.ts +0 -156
- package/dist/esm/agent.d.ts.map +0 -1
- package/dist/esm/agent.js +0 -207
- package/dist/esm/agent.js.map +0 -1
- package/dist/esm/agent.test.d.ts +0 -5
- package/dist/esm/agent.test.d.ts.map +0 -1
- package/dist/esm/agent.test.js +0 -439
- package/dist/esm/agent.test.js.map +0 -1
- package/dist/esm/client.d.ts +0 -58
- package/dist/esm/client.d.ts.map +0 -1
- package/dist/esm/client.js +0 -54
- package/dist/esm/client.js.map +0 -1
- package/dist/esm/client.test.d.ts +0 -5
- package/dist/esm/client.test.d.ts.map +0 -1
- package/dist/esm/client.test.js +0 -253
- package/dist/esm/client.test.js.map +0 -1
- package/dist/esm/exceptions.d.ts +0 -57
- package/dist/esm/exceptions.d.ts.map +0 -1
- package/dist/esm/exceptions.js +0 -85
- package/dist/esm/exceptions.js.map +0 -1
- package/dist/esm/exceptions.test.d.ts +0 -5
- package/dist/esm/exceptions.test.d.ts.map +0 -1
- package/dist/esm/exceptions.test.js +0 -237
- package/dist/esm/exceptions.test.js.map +0 -1
- package/dist/esm/extract.d.ts +0 -151
- package/dist/esm/extract.d.ts.map +0 -1
- package/dist/esm/extract.js +0 -161
- package/dist/esm/extract.js.map +0 -1
- package/dist/esm/extract.test.d.ts +0 -5
- package/dist/esm/extract.test.d.ts.map +0 -1
- package/dist/esm/extract.test.js +0 -248
- package/dist/esm/extract.test.js.map +0 -1
- package/dist/esm/generate.d.ts +0 -113
- package/dist/esm/generate.d.ts.map +0 -1
- package/dist/esm/generate.js +0 -120
- package/dist/esm/generate.js.map +0 -1
- package/dist/esm/generate.test.d.ts +0 -5
- package/dist/esm/generate.test.d.ts.map +0 -1
- package/dist/esm/generate.test.js +0 -312
- package/dist/esm/generate.test.js.map +0 -1
- package/dist/esm/index.d.ts +0 -52
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -53
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/package.json +0 -3
- package/dist/esm/types.d.ts +0 -73
- package/dist/esm/types.d.ts.map +0 -1
- package/dist/esm/types.js +0 -110
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/types.test.d.ts +0 -5
- package/dist/esm/types.test.d.ts.map +0 -1
- package/dist/esm/types.test.js +0 -368
- package/dist/esm/types.test.js.map +0 -1
- package/dist/esm/util/http.d.ts +0 -29
- package/dist/esm/util/http.d.ts.map +0 -1
- package/dist/esm/util/http.js +0 -164
- package/dist/esm/util/http.js.map +0 -1
- package/dist/esm/util/http.test.d.ts +0 -5
- package/dist/esm/util/http.test.d.ts.map +0 -1
- package/dist/esm/util/http.test.js +0 -232
- package/dist/esm/util/http.test.js.map +0 -1
- package/dist/types/agent.d.ts +0 -156
- package/dist/types/agent.d.ts.map +0 -1
- package/dist/types/agent.test.d.ts +0 -5
- package/dist/types/agent.test.d.ts.map +0 -1
- package/dist/types/client.d.ts +0 -58
- package/dist/types/client.d.ts.map +0 -1
- package/dist/types/client.test.d.ts +0 -5
- package/dist/types/client.test.d.ts.map +0 -1
- package/dist/types/exceptions.d.ts +0 -57
- package/dist/types/exceptions.d.ts.map +0 -1
- package/dist/types/exceptions.test.d.ts +0 -5
- package/dist/types/exceptions.test.d.ts.map +0 -1
- package/dist/types/extract.d.ts +0 -151
- package/dist/types/extract.d.ts.map +0 -1
- package/dist/types/extract.test.d.ts +0 -5
- package/dist/types/extract.test.d.ts.map +0 -1
- package/dist/types/generate.d.ts +0 -113
- package/dist/types/generate.d.ts.map +0 -1
- package/dist/types/generate.test.d.ts +0 -5
- package/dist/types/generate.test.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -52
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/types.d.ts +0 -73
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/types.test.d.ts +0 -5
- package/dist/types/types.test.d.ts.map +0 -1
- package/dist/types/util/http.d.ts +0 -29
- package/dist/types/util/http.d.ts.map +0 -1
- package/dist/types/util/http.test.d.ts +0 -5
- package/dist/types/util/http.test.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/util/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http.test.d.ts","sourceRoot":"","sources":["../../../src/util/http.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Tests for HTTPClient
|
|
4
|
-
*/
|
|
5
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
const nock_1 = __importDefault(require("nock"));
|
|
10
|
-
const http_1 = require("./http");
|
|
11
|
-
const exceptions_1 = require("../exceptions");
|
|
12
|
-
describe('HTTPClient', () => {
|
|
13
|
-
const apiKey = 'test-api-key';
|
|
14
|
-
const baseURL = 'https://api.tabstack.ai';
|
|
15
|
-
beforeEach(() => {
|
|
16
|
-
nock_1.default.cleanAll();
|
|
17
|
-
});
|
|
18
|
-
afterEach(() => {
|
|
19
|
-
nock_1.default.cleanAll();
|
|
20
|
-
});
|
|
21
|
-
describe('constructor', () => {
|
|
22
|
-
it('should create client with API key', () => {
|
|
23
|
-
const client = new http_1.HTTPClient({ apiKey });
|
|
24
|
-
expect(client).toBeInstanceOf(http_1.HTTPClient);
|
|
25
|
-
});
|
|
26
|
-
it('should use default base URL', () => {
|
|
27
|
-
const client = new http_1.HTTPClient({ apiKey });
|
|
28
|
-
expect(client).toBeDefined();
|
|
29
|
-
});
|
|
30
|
-
it('should accept custom base URL', () => {
|
|
31
|
-
const customURL = 'https://custom.api.com';
|
|
32
|
-
const client = new http_1.HTTPClient({ apiKey, baseURL: customURL });
|
|
33
|
-
expect(client).toBeDefined();
|
|
34
|
-
});
|
|
35
|
-
it('should strip trailing slash from base URL', () => {
|
|
36
|
-
const client = new http_1.HTTPClient({ apiKey, baseURL: 'https://api.example.com/' });
|
|
37
|
-
expect(client).toBeDefined();
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe('post()', () => {
|
|
41
|
-
let client;
|
|
42
|
-
beforeEach(() => {
|
|
43
|
-
client = new http_1.HTTPClient({ apiKey, baseURL });
|
|
44
|
-
});
|
|
45
|
-
it('should make successful POST request with JSON response', async () => {
|
|
46
|
-
const responseData = { result: 'success', data: { id: 1 } };
|
|
47
|
-
(0, nock_1.default)(baseURL).post('/test/endpoint').reply(200, responseData);
|
|
48
|
-
const result = await client.post('/test/endpoint', { key: 'value' });
|
|
49
|
-
expect(result).toEqual(responseData);
|
|
50
|
-
});
|
|
51
|
-
it('should send correct headers', async () => {
|
|
52
|
-
(0, nock_1.default)(baseURL)
|
|
53
|
-
.post('/test', (body) => {
|
|
54
|
-
return body.key === 'value';
|
|
55
|
-
})
|
|
56
|
-
.matchHeader('authorization', `Bearer ${apiKey}`)
|
|
57
|
-
.matchHeader('content-type', 'application/json')
|
|
58
|
-
.matchHeader('accept', 'application/json')
|
|
59
|
-
.matchHeader('user-agent', '@tabstack/sdk/1.0.0')
|
|
60
|
-
.reply(200, { success: true });
|
|
61
|
-
await client.post('/test', { key: 'value' });
|
|
62
|
-
});
|
|
63
|
-
it('should handle empty request body', async () => {
|
|
64
|
-
(0, nock_1.default)(baseURL).post('/test').reply(200, { success: true });
|
|
65
|
-
const result = await client.post('/test');
|
|
66
|
-
expect(result).toEqual({ success: true });
|
|
67
|
-
});
|
|
68
|
-
it('should handle empty response body', async () => {
|
|
69
|
-
(0, nock_1.default)(baseURL).post('/test').reply(200, '');
|
|
70
|
-
const result = await client.post('/test', { key: 'value' });
|
|
71
|
-
expect(result).toEqual({});
|
|
72
|
-
});
|
|
73
|
-
it('should throw BadRequestError on 400 status', async () => {
|
|
74
|
-
(0, nock_1.default)(baseURL).post('/test').reply(400, { error: 'Invalid request' });
|
|
75
|
-
await expect(client.post('/test')).rejects.toThrow(exceptions_1.BadRequestError);
|
|
76
|
-
});
|
|
77
|
-
it('should throw UnauthorizedError on 401 status', async () => {
|
|
78
|
-
(0, nock_1.default)(baseURL).post('/test').reply(401, { error: 'Invalid API key' });
|
|
79
|
-
await expect(client.post('/test')).rejects.toThrow(exceptions_1.UnauthorizedError);
|
|
80
|
-
});
|
|
81
|
-
it('should throw InvalidURLError on 422 status', async () => {
|
|
82
|
-
(0, nock_1.default)(baseURL).post('/test').reply(422, { error: 'URL not accessible' });
|
|
83
|
-
await expect(client.post('/test')).rejects.toThrow(exceptions_1.InvalidURLError);
|
|
84
|
-
});
|
|
85
|
-
it('should throw ServerError on 500 status', async () => {
|
|
86
|
-
(0, nock_1.default)(baseURL).post('/test').reply(500, { error: 'Internal error' });
|
|
87
|
-
await expect(client.post('/test')).rejects.toThrow(exceptions_1.ServerError);
|
|
88
|
-
});
|
|
89
|
-
it('should throw ServiceUnavailableError on 503 status', async () => {
|
|
90
|
-
(0, nock_1.default)(baseURL).post('/test').reply(503, { error: 'Service not available' });
|
|
91
|
-
await expect(client.post('/test')).rejects.toThrow(exceptions_1.ServiceUnavailableError);
|
|
92
|
-
});
|
|
93
|
-
it('should throw APIError on other error status codes', async () => {
|
|
94
|
-
(0, nock_1.default)(baseURL).post('/test').reply(418, { error: "I'm a teapot" });
|
|
95
|
-
await expect(client.post('/test')).rejects.toThrow(exceptions_1.APIError);
|
|
96
|
-
});
|
|
97
|
-
it('should handle error responses without JSON', async () => {
|
|
98
|
-
(0, nock_1.default)(baseURL).post('/test').reply(400, 'Plain text error');
|
|
99
|
-
await expect(client.post('/test')).rejects.toThrow(exceptions_1.BadRequestError);
|
|
100
|
-
});
|
|
101
|
-
it('should handle error responses with empty body', async () => {
|
|
102
|
-
(0, nock_1.default)(baseURL).post('/test').reply(500, '');
|
|
103
|
-
await expect(client.post('/test')).rejects.toThrow(exceptions_1.ServerError);
|
|
104
|
-
});
|
|
105
|
-
it('should throw TabstackError on malformed JSON response', async () => {
|
|
106
|
-
(0, nock_1.default)(baseURL).post('/test').reply(200, 'invalid json{{{');
|
|
107
|
-
await expect(client.post('/test')).rejects.toThrow(exceptions_1.TabstackError);
|
|
108
|
-
});
|
|
109
|
-
it('should throw TabstackError on network error', async () => {
|
|
110
|
-
(0, nock_1.default)(baseURL).post('/test').replyWithError('Network error');
|
|
111
|
-
await expect(client.post('/test')).rejects.toThrow(exceptions_1.TabstackError);
|
|
112
|
-
});
|
|
113
|
-
it('should handle query parameters in path', async () => {
|
|
114
|
-
(0, nock_1.default)(baseURL).post('/test?param=value').reply(200, { success: true });
|
|
115
|
-
const result = await client.post('/test?param=value', {});
|
|
116
|
-
expect(result).toEqual({ success: true });
|
|
117
|
-
});
|
|
118
|
-
it('should work with HTTP (not HTTPS) protocol', async () => {
|
|
119
|
-
const httpClient = new http_1.HTTPClient({ apiKey, baseURL: 'http://api.example.com' });
|
|
120
|
-
(0, nock_1.default)('http://api.example.com').post('/test').reply(200, { success: true });
|
|
121
|
-
const result = await httpClient.post('/test', {});
|
|
122
|
-
expect(result).toEqual({ success: true });
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
describe('postStream()', () => {
|
|
126
|
-
let client;
|
|
127
|
-
beforeEach(() => {
|
|
128
|
-
client = new http_1.HTTPClient({ apiKey, baseURL });
|
|
129
|
-
});
|
|
130
|
-
it('should stream Server-Sent Events', async () => {
|
|
131
|
-
const sseData = [
|
|
132
|
-
'event: message',
|
|
133
|
-
'data: {"type":"event1"}',
|
|
134
|
-
'',
|
|
135
|
-
'event: message',
|
|
136
|
-
'data: {"type":"event2"}',
|
|
137
|
-
'',
|
|
138
|
-
].join('\n');
|
|
139
|
-
(0, nock_1.default)(baseURL).post('/stream').reply(200, sseData, {
|
|
140
|
-
'content-type': 'text/event-stream',
|
|
141
|
-
});
|
|
142
|
-
const events = [];
|
|
143
|
-
for await (const line of client.postStream('/stream', { key: 'value' })) {
|
|
144
|
-
events.push(line);
|
|
145
|
-
}
|
|
146
|
-
expect(events).toContain('event: message');
|
|
147
|
-
expect(events).toContain('data: {"type":"event1"}');
|
|
148
|
-
expect(events).toContain('data: {"type":"event2"}');
|
|
149
|
-
});
|
|
150
|
-
it('should handle streaming with CRLF line endings', async () => {
|
|
151
|
-
const sseData = 'event: test\r\ndata: value\r\n\r\n';
|
|
152
|
-
(0, nock_1.default)(baseURL).post('/stream').reply(200, sseData);
|
|
153
|
-
const events = [];
|
|
154
|
-
for await (const line of client.postStream('/stream')) {
|
|
155
|
-
events.push(line);
|
|
156
|
-
}
|
|
157
|
-
expect(events).toContain('event: test');
|
|
158
|
-
expect(events).toContain('data: value');
|
|
159
|
-
});
|
|
160
|
-
it('should yield remaining buffer data', async () => {
|
|
161
|
-
const sseData = 'data: incomplete line';
|
|
162
|
-
(0, nock_1.default)(baseURL).post('/stream').reply(200, sseData);
|
|
163
|
-
const events = [];
|
|
164
|
-
for await (const line of client.postStream('/stream')) {
|
|
165
|
-
events.push(line);
|
|
166
|
-
}
|
|
167
|
-
expect(events).toContain('data: incomplete line');
|
|
168
|
-
});
|
|
169
|
-
it('should skip empty lines', async () => {
|
|
170
|
-
const sseData = 'data: value1\n\n\ndata: value2\n';
|
|
171
|
-
(0, nock_1.default)(baseURL).post('/stream').reply(200, sseData);
|
|
172
|
-
const events = [];
|
|
173
|
-
for await (const line of client.postStream('/stream')) {
|
|
174
|
-
events.push(line);
|
|
175
|
-
}
|
|
176
|
-
expect(events).toEqual(['data: value1', 'data: value2']);
|
|
177
|
-
});
|
|
178
|
-
it('should send Accept: text/event-stream header', async () => {
|
|
179
|
-
(0, nock_1.default)(baseURL)
|
|
180
|
-
.post('/stream')
|
|
181
|
-
.matchHeader('accept', 'text/event-stream')
|
|
182
|
-
.reply(200, 'data: test\n');
|
|
183
|
-
const events = [];
|
|
184
|
-
for await (const line of client.postStream('/stream')) {
|
|
185
|
-
events.push(line);
|
|
186
|
-
}
|
|
187
|
-
expect(events.length).toBeGreaterThan(0);
|
|
188
|
-
});
|
|
189
|
-
it('should throw UnauthorizedError on 401 status during stream', async () => {
|
|
190
|
-
(0, nock_1.default)(baseURL).post('/stream').reply(401, { error: 'Unauthorized' });
|
|
191
|
-
const generator = client.postStream('/stream');
|
|
192
|
-
await expect(generator.next()).rejects.toThrow(exceptions_1.UnauthorizedError);
|
|
193
|
-
});
|
|
194
|
-
it('should throw ServerError on 500 status during stream', async () => {
|
|
195
|
-
(0, nock_1.default)(baseURL).post('/stream').reply(500, { error: 'Server error' });
|
|
196
|
-
const generator = client.postStream('/stream');
|
|
197
|
-
await expect(generator.next()).rejects.toThrow(exceptions_1.ServerError);
|
|
198
|
-
});
|
|
199
|
-
it('should throw TabstackError on network error during stream', async () => {
|
|
200
|
-
(0, nock_1.default)(baseURL).post('/stream').replyWithError('Connection failed');
|
|
201
|
-
const generator = client.postStream('/stream');
|
|
202
|
-
const error = await generator.next().catch((e) => e);
|
|
203
|
-
expect(error).toBeInstanceOf(Error);
|
|
204
|
-
expect(error.message).toContain('Request failed');
|
|
205
|
-
});
|
|
206
|
-
it('should handle multiline streaming data', async () => {
|
|
207
|
-
const sseData = 'data: line1\ndata: line2\ndata: line3\n';
|
|
208
|
-
(0, nock_1.default)(baseURL).post('/stream').reply(200, sseData);
|
|
209
|
-
const events = [];
|
|
210
|
-
for await (const line of client.postStream('/stream')) {
|
|
211
|
-
events.push(line);
|
|
212
|
-
}
|
|
213
|
-
expect(events).toEqual(['data: line1', 'data: line2', 'data: line3']);
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
describe('baseURL handling', () => {
|
|
217
|
-
it('should strip trailing slash from custom base URL', async () => {
|
|
218
|
-
const client = new http_1.HTTPClient({
|
|
219
|
-
apiKey,
|
|
220
|
-
baseURL: 'https://custom.api.com/',
|
|
221
|
-
});
|
|
222
|
-
(0, nock_1.default)('https://custom.api.com').post('/endpoint').reply(200, { success: true });
|
|
223
|
-
const result = await client.post('/endpoint', {});
|
|
224
|
-
expect(result).toEqual({ success: true });
|
|
225
|
-
});
|
|
226
|
-
it('should handle base URL without trailing slash', async () => {
|
|
227
|
-
const client = new http_1.HTTPClient({
|
|
228
|
-
apiKey,
|
|
229
|
-
baseURL: 'https://custom.api.com',
|
|
230
|
-
});
|
|
231
|
-
(0, nock_1.default)('https://custom.api.com').post('/endpoint').reply(200, { success: true });
|
|
232
|
-
const result = await client.post('/endpoint', {});
|
|
233
|
-
expect(result).toEqual({ success: true });
|
|
234
|
-
});
|
|
235
|
-
});
|
|
236
|
-
});
|
|
237
|
-
//# sourceMappingURL=http.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http.test.js","sourceRoot":"","sources":["../../../src/util/http.test.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/agent.d.ts
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent client for Tabstack SDK
|
|
3
|
-
*/
|
|
4
|
-
import { HTTPClient } from './util/http';
|
|
5
|
-
import { AutomateEvent } from './types';
|
|
6
|
-
export interface AutomateOptions {
|
|
7
|
-
url?: string;
|
|
8
|
-
data?: Record<string, unknown>;
|
|
9
|
-
guardrails?: string;
|
|
10
|
-
maxIterations?: number;
|
|
11
|
-
maxValidationAttempts?: number;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Agent client for AI-powered web automation
|
|
15
|
-
*
|
|
16
|
-
* This class provides methods for executing complex web automation tasks using
|
|
17
|
-
* natural language instructions. The automation runs in a browser and streams
|
|
18
|
-
* real-time progress updates.
|
|
19
|
-
*/
|
|
20
|
-
export declare class Agent {
|
|
21
|
-
private httpClient;
|
|
22
|
-
constructor(httpClient: HTTPClient);
|
|
23
|
-
/**
|
|
24
|
-
* Execute AI-powered browser automation task with streaming updates
|
|
25
|
-
*
|
|
26
|
-
* Execute complex web automation tasks using natural language instructions. This method
|
|
27
|
-
* always streams responses using Server-Sent Events (SSE), providing real-time progress
|
|
28
|
-
* updates as the task executes. Perfect for web scraping, form filling, navigation,
|
|
29
|
-
* information gathering, and multi-step workflows.
|
|
30
|
-
*
|
|
31
|
-
* @param task - The task description in natural language. Example: "Find the top 3 trending repositories on GitHub and extract their names, descriptions, and star counts"
|
|
32
|
-
* @param options - Optional automation options
|
|
33
|
-
* @param options.url - Starting URL for the task. Optional but recommended for better context.
|
|
34
|
-
* @param options.data - JSON data to provide context for form filling or complex tasks. Example: { "language": "Python", "timeRange": "today" }
|
|
35
|
-
* @param options.guardrails - Safety constraints for execution. Example: "browse and extract data only, don't star or fork repositories"
|
|
36
|
-
* @param options.maxIterations - Maximum task iterations. Default: 50, Min: 1, Max: 100
|
|
37
|
-
* @param options.maxValidationAttempts - Maximum validation attempts. Default: 3, Min: 1, Max: 10
|
|
38
|
-
*
|
|
39
|
-
* @yields AutomateEvent objects representing different stages of task execution
|
|
40
|
-
*
|
|
41
|
-
* @throws {BadRequestError} When task is missing, URL format is invalid, or maxIterations is out of range
|
|
42
|
-
* @throws {UnauthorizedError} When API key is invalid or missing
|
|
43
|
-
* @throws {ServerError} When automation server call fails
|
|
44
|
-
* @throws {ServiceUnavailableError} When automate service is not available
|
|
45
|
-
*
|
|
46
|
-
* Event Types:
|
|
47
|
-
* - **Task Events**: `start`, `task:setup`, `task:started`, `task:completed`, `task:aborted`, `task:validated`, `task:validation_error`
|
|
48
|
-
* - **Agent Events**: `agent:processing`, `agent:status`, `agent:step`, `agent:action`, `agent:reasoned`, `agent:extracted`, `agent:waiting`
|
|
49
|
-
* - **Browser Events**: `browser:navigated`, `browser:action_started`, `browser:action_completed`, `browser:screenshot_captured`
|
|
50
|
-
* - **System Events**: `system:debug_compression`, `system:debug_message`
|
|
51
|
-
* - **Stream Control**: `complete`, `done`, `error`
|
|
52
|
-
*
|
|
53
|
-
* @example
|
|
54
|
-
* Extract GitHub trending repositories:
|
|
55
|
-
* ```typescript
|
|
56
|
-
* for await (const event of tabs.agent.automate(
|
|
57
|
-
* 'Find the top 3 trending repositories and extract their names, descriptions, and star counts',
|
|
58
|
-
* {
|
|
59
|
-
* url: 'https://github.com/trending',
|
|
60
|
-
* guardrails: 'browse and extract only, don\'t interact with repositories'
|
|
61
|
-
* }
|
|
62
|
-
* )) {
|
|
63
|
-
* console.log(`Event: ${event.type}`);
|
|
64
|
-
*
|
|
65
|
-
* if (event.type === 'task:completed') {
|
|
66
|
-
* console.log('Result:', event.data.get('finalAnswer'));
|
|
67
|
-
* } else if (event.type === 'agent:extracted') {
|
|
68
|
-
* console.log('Extracted data:', event.data.get('extractedData'));
|
|
69
|
-
* } else if (event.type === 'browser:navigated') {
|
|
70
|
-
* console.log('Navigated to:', event.data.get('url'));
|
|
71
|
-
* }
|
|
72
|
-
* }
|
|
73
|
-
* ```
|
|
74
|
-
*
|
|
75
|
-
* @example
|
|
76
|
-
* Scrape product information:
|
|
77
|
-
* ```typescript
|
|
78
|
-
* for await (const event of tabs.agent.automate(
|
|
79
|
-
* 'Find the product name, price, and availability status',
|
|
80
|
-
* {
|
|
81
|
-
* url: 'https://example-store.com/product/wireless-headphones',
|
|
82
|
-
* guardrails: 'extract product details only, don\'t add to cart or checkout',
|
|
83
|
-
* maxIterations: 20
|
|
84
|
-
* }
|
|
85
|
-
* )) {
|
|
86
|
-
* if (event.type === 'agent:processing') {
|
|
87
|
-
* console.log('Agent thinking:', event.data.get('operation'));
|
|
88
|
-
* } else if (event.type === 'task:completed') {
|
|
89
|
-
* const result = event.data.get('finalAnswer');
|
|
90
|
-
* console.log('Product info:', result);
|
|
91
|
-
* }
|
|
92
|
-
* }
|
|
93
|
-
* ```
|
|
94
|
-
*
|
|
95
|
-
* @example
|
|
96
|
-
* Fill out contact form:
|
|
97
|
-
* ```typescript
|
|
98
|
-
* for await (const event of tabs.agent.automate(
|
|
99
|
-
* 'Submit the contact form with my information',
|
|
100
|
-
* {
|
|
101
|
-
* url: 'https://company.com/contact',
|
|
102
|
-
* data: {
|
|
103
|
-
* name: 'Alex Johnson',
|
|
104
|
-
* email: 'alex@example.com',
|
|
105
|
-
* message: 'Interested in learning more about your enterprise plan'
|
|
106
|
-
* },
|
|
107
|
-
* maxIterations: 30,
|
|
108
|
-
* maxValidationAttempts: 5
|
|
109
|
-
* }
|
|
110
|
-
* )) {
|
|
111
|
-
* if (event.type === 'agent:action') {
|
|
112
|
-
* console.log('Action:', event.data.get('action'), event.data.get('value'));
|
|
113
|
-
* } else if (event.type === 'task:completed') {
|
|
114
|
-
* console.log('Form submitted successfully!');
|
|
115
|
-
* }
|
|
116
|
-
* }
|
|
117
|
-
* ```
|
|
118
|
-
*
|
|
119
|
-
* @example
|
|
120
|
-
* Handle all event types:
|
|
121
|
-
* ```typescript
|
|
122
|
-
* for await (const event of tabs.agent.automate(
|
|
123
|
-
* 'Research TypeScript frameworks and compare them',
|
|
124
|
-
* { url: 'https://www.npmjs.com' }
|
|
125
|
-
* )) {
|
|
126
|
-
* switch (event.type) {
|
|
127
|
-
* case 'start':
|
|
128
|
-
* console.log('Task started');
|
|
129
|
-
* break;
|
|
130
|
-
* case 'agent:status':
|
|
131
|
-
* console.log('Status:', event.data.get('message'));
|
|
132
|
-
* break;
|
|
133
|
-
* case 'agent:step':
|
|
134
|
-
* const iteration = event.data.get('currentIteration');
|
|
135
|
-
* console.log(`Processing step ${iteration}...`);
|
|
136
|
-
* break;
|
|
137
|
-
* case 'browser:navigated':
|
|
138
|
-
* console.log('Page:', event.data.get('title'));
|
|
139
|
-
* break;
|
|
140
|
-
* case 'task:completed':
|
|
141
|
-
* console.log('Final result:', event.data.get('finalAnswer'));
|
|
142
|
-
* break;
|
|
143
|
-
* case 'error':
|
|
144
|
-
* console.error('Error occurred:', event.data.getRaw());
|
|
145
|
-
* break;
|
|
146
|
-
* }
|
|
147
|
-
* }
|
|
148
|
-
* ```
|
|
149
|
-
*/
|
|
150
|
-
automate(task: string, options?: AutomateOptions): AsyncGenerator<AutomateEvent, void, undefined>;
|
|
151
|
-
/**
|
|
152
|
-
* Parse SSE event data
|
|
153
|
-
*/
|
|
154
|
-
private parseEvent;
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=agent.d.ts.map
|
package/dist/esm/agent.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;GAMG;AACH,qBAAa,KAAK;IACJ,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8HG;IACI,QAAQ,CACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,eAAe,GACxB,cAAc,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC;IAkDjD;;OAEG;IACH,OAAO,CAAC,UAAU;CASnB"}
|
package/dist/esm/agent.js
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent client for Tabstack SDK
|
|
3
|
-
*/
|
|
4
|
-
import { AutomateEvent } from './types.js';
|
|
5
|
-
/**
|
|
6
|
-
* Agent client for AI-powered web automation
|
|
7
|
-
*
|
|
8
|
-
* This class provides methods for executing complex web automation tasks using
|
|
9
|
-
* natural language instructions. The automation runs in a browser and streams
|
|
10
|
-
* real-time progress updates.
|
|
11
|
-
*/
|
|
12
|
-
export class Agent {
|
|
13
|
-
constructor(httpClient) {
|
|
14
|
-
this.httpClient = httpClient;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Execute AI-powered browser automation task with streaming updates
|
|
18
|
-
*
|
|
19
|
-
* Execute complex web automation tasks using natural language instructions. This method
|
|
20
|
-
* always streams responses using Server-Sent Events (SSE), providing real-time progress
|
|
21
|
-
* updates as the task executes. Perfect for web scraping, form filling, navigation,
|
|
22
|
-
* information gathering, and multi-step workflows.
|
|
23
|
-
*
|
|
24
|
-
* @param task - The task description in natural language. Example: "Find the top 3 trending repositories on GitHub and extract their names, descriptions, and star counts"
|
|
25
|
-
* @param options - Optional automation options
|
|
26
|
-
* @param options.url - Starting URL for the task. Optional but recommended for better context.
|
|
27
|
-
* @param options.data - JSON data to provide context for form filling or complex tasks. Example: { "language": "Python", "timeRange": "today" }
|
|
28
|
-
* @param options.guardrails - Safety constraints for execution. Example: "browse and extract data only, don't star or fork repositories"
|
|
29
|
-
* @param options.maxIterations - Maximum task iterations. Default: 50, Min: 1, Max: 100
|
|
30
|
-
* @param options.maxValidationAttempts - Maximum validation attempts. Default: 3, Min: 1, Max: 10
|
|
31
|
-
*
|
|
32
|
-
* @yields AutomateEvent objects representing different stages of task execution
|
|
33
|
-
*
|
|
34
|
-
* @throws {BadRequestError} When task is missing, URL format is invalid, or maxIterations is out of range
|
|
35
|
-
* @throws {UnauthorizedError} When API key is invalid or missing
|
|
36
|
-
* @throws {ServerError} When automation server call fails
|
|
37
|
-
* @throws {ServiceUnavailableError} When automate service is not available
|
|
38
|
-
*
|
|
39
|
-
* Event Types:
|
|
40
|
-
* - **Task Events**: `start`, `task:setup`, `task:started`, `task:completed`, `task:aborted`, `task:validated`, `task:validation_error`
|
|
41
|
-
* - **Agent Events**: `agent:processing`, `agent:status`, `agent:step`, `agent:action`, `agent:reasoned`, `agent:extracted`, `agent:waiting`
|
|
42
|
-
* - **Browser Events**: `browser:navigated`, `browser:action_started`, `browser:action_completed`, `browser:screenshot_captured`
|
|
43
|
-
* - **System Events**: `system:debug_compression`, `system:debug_message`
|
|
44
|
-
* - **Stream Control**: `complete`, `done`, `error`
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* Extract GitHub trending repositories:
|
|
48
|
-
* ```typescript
|
|
49
|
-
* for await (const event of tabs.agent.automate(
|
|
50
|
-
* 'Find the top 3 trending repositories and extract their names, descriptions, and star counts',
|
|
51
|
-
* {
|
|
52
|
-
* url: 'https://github.com/trending',
|
|
53
|
-
* guardrails: 'browse and extract only, don\'t interact with repositories'
|
|
54
|
-
* }
|
|
55
|
-
* )) {
|
|
56
|
-
* console.log(`Event: ${event.type}`);
|
|
57
|
-
*
|
|
58
|
-
* if (event.type === 'task:completed') {
|
|
59
|
-
* console.log('Result:', event.data.get('finalAnswer'));
|
|
60
|
-
* } else if (event.type === 'agent:extracted') {
|
|
61
|
-
* console.log('Extracted data:', event.data.get('extractedData'));
|
|
62
|
-
* } else if (event.type === 'browser:navigated') {
|
|
63
|
-
* console.log('Navigated to:', event.data.get('url'));
|
|
64
|
-
* }
|
|
65
|
-
* }
|
|
66
|
-
* ```
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* Scrape product information:
|
|
70
|
-
* ```typescript
|
|
71
|
-
* for await (const event of tabs.agent.automate(
|
|
72
|
-
* 'Find the product name, price, and availability status',
|
|
73
|
-
* {
|
|
74
|
-
* url: 'https://example-store.com/product/wireless-headphones',
|
|
75
|
-
* guardrails: 'extract product details only, don\'t add to cart or checkout',
|
|
76
|
-
* maxIterations: 20
|
|
77
|
-
* }
|
|
78
|
-
* )) {
|
|
79
|
-
* if (event.type === 'agent:processing') {
|
|
80
|
-
* console.log('Agent thinking:', event.data.get('operation'));
|
|
81
|
-
* } else if (event.type === 'task:completed') {
|
|
82
|
-
* const result = event.data.get('finalAnswer');
|
|
83
|
-
* console.log('Product info:', result);
|
|
84
|
-
* }
|
|
85
|
-
* }
|
|
86
|
-
* ```
|
|
87
|
-
*
|
|
88
|
-
* @example
|
|
89
|
-
* Fill out contact form:
|
|
90
|
-
* ```typescript
|
|
91
|
-
* for await (const event of tabs.agent.automate(
|
|
92
|
-
* 'Submit the contact form with my information',
|
|
93
|
-
* {
|
|
94
|
-
* url: 'https://company.com/contact',
|
|
95
|
-
* data: {
|
|
96
|
-
* name: 'Alex Johnson',
|
|
97
|
-
* email: 'alex@example.com',
|
|
98
|
-
* message: 'Interested in learning more about your enterprise plan'
|
|
99
|
-
* },
|
|
100
|
-
* maxIterations: 30,
|
|
101
|
-
* maxValidationAttempts: 5
|
|
102
|
-
* }
|
|
103
|
-
* )) {
|
|
104
|
-
* if (event.type === 'agent:action') {
|
|
105
|
-
* console.log('Action:', event.data.get('action'), event.data.get('value'));
|
|
106
|
-
* } else if (event.type === 'task:completed') {
|
|
107
|
-
* console.log('Form submitted successfully!');
|
|
108
|
-
* }
|
|
109
|
-
* }
|
|
110
|
-
* ```
|
|
111
|
-
*
|
|
112
|
-
* @example
|
|
113
|
-
* Handle all event types:
|
|
114
|
-
* ```typescript
|
|
115
|
-
* for await (const event of tabs.agent.automate(
|
|
116
|
-
* 'Research TypeScript frameworks and compare them',
|
|
117
|
-
* { url: 'https://www.npmjs.com' }
|
|
118
|
-
* )) {
|
|
119
|
-
* switch (event.type) {
|
|
120
|
-
* case 'start':
|
|
121
|
-
* console.log('Task started');
|
|
122
|
-
* break;
|
|
123
|
-
* case 'agent:status':
|
|
124
|
-
* console.log('Status:', event.data.get('message'));
|
|
125
|
-
* break;
|
|
126
|
-
* case 'agent:step':
|
|
127
|
-
* const iteration = event.data.get('currentIteration');
|
|
128
|
-
* console.log(`Processing step ${iteration}...`);
|
|
129
|
-
* break;
|
|
130
|
-
* case 'browser:navigated':
|
|
131
|
-
* console.log('Page:', event.data.get('title'));
|
|
132
|
-
* break;
|
|
133
|
-
* case 'task:completed':
|
|
134
|
-
* console.log('Final result:', event.data.get('finalAnswer'));
|
|
135
|
-
* break;
|
|
136
|
-
* case 'error':
|
|
137
|
-
* console.error('Error occurred:', event.data.getRaw());
|
|
138
|
-
* break;
|
|
139
|
-
* }
|
|
140
|
-
* }
|
|
141
|
-
* ```
|
|
142
|
-
*/
|
|
143
|
-
async *automate(task, options) {
|
|
144
|
-
const requestData = {
|
|
145
|
-
task,
|
|
146
|
-
maxIterations: options?.maxIterations ?? 50,
|
|
147
|
-
maxValidationAttempts: options?.maxValidationAttempts ?? 3,
|
|
148
|
-
};
|
|
149
|
-
if (options?.url)
|
|
150
|
-
requestData.url = options.url;
|
|
151
|
-
if (options?.data)
|
|
152
|
-
requestData.data = options.data;
|
|
153
|
-
if (options?.guardrails)
|
|
154
|
-
requestData.guardrails = options.guardrails;
|
|
155
|
-
// Stream the response and parse SSE events
|
|
156
|
-
let currentEventType = null;
|
|
157
|
-
let currentEventData = '';
|
|
158
|
-
for await (const line of this.httpClient.postStream('v1/automate', requestData)) {
|
|
159
|
-
// SSE format: "event: <type>" or "data: <json>"
|
|
160
|
-
if (line.startsWith('event:')) {
|
|
161
|
-
// If we have a pending event, yield it before starting a new one
|
|
162
|
-
if (currentEventType) {
|
|
163
|
-
yield this.parseEvent(currentEventType, currentEventData);
|
|
164
|
-
currentEventData = '';
|
|
165
|
-
}
|
|
166
|
-
// Extract event type
|
|
167
|
-
currentEventType = line.slice(6).trim();
|
|
168
|
-
}
|
|
169
|
-
else if (line.startsWith('data:')) {
|
|
170
|
-
// Accumulate event data (can be multiline)
|
|
171
|
-
const dataLine = line.slice(5).trim();
|
|
172
|
-
if (currentEventData) {
|
|
173
|
-
currentEventData += '\n' + dataLine;
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
currentEventData = dataLine;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
else if (line === '') {
|
|
180
|
-
// Empty line marks the end of an event
|
|
181
|
-
if (currentEventType) {
|
|
182
|
-
yield this.parseEvent(currentEventType, currentEventData);
|
|
183
|
-
currentEventType = null;
|
|
184
|
-
currentEventData = '';
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
// Yield any remaining event
|
|
189
|
-
if (currentEventType) {
|
|
190
|
-
yield this.parseEvent(currentEventType, currentEventData);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Parse SSE event data
|
|
195
|
-
*/
|
|
196
|
-
parseEvent(eventType, eventData) {
|
|
197
|
-
try {
|
|
198
|
-
const data = JSON.parse(eventData);
|
|
199
|
-
return AutomateEvent.fromJSON(eventType, data);
|
|
200
|
-
}
|
|
201
|
-
catch {
|
|
202
|
-
// If data is not valid JSON, return it as-is
|
|
203
|
-
return AutomateEvent.fromJSON(eventType, { raw: eventData });
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
//# sourceMappingURL=agent.js.map
|
package/dist/esm/agent.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
|