@arnilo/prism-tools 0.0.0-stage → 0.13.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 +410 -0
- package/LICENSE +21 -0
- package/README.md +44 -2
- package/browser/README.md +98 -0
- package/browser/skills/browser-automation/SKILL.md +14 -0
- package/browser/src/actions/cdp.ts +131 -0
- package/browser/src/actions/dialog.ts +25 -0
- package/browser/src/actions/download_release.ts +22 -0
- package/browser/src/actions/index.ts +37 -0
- package/browser/src/actions/locator.ts +70 -0
- package/browser/src/actions/navigate.ts +23 -0
- package/browser/src/actions/screenshot.ts +27 -0
- package/browser/src/actions/scroll.ts +24 -0
- package/browser/src/actions/select_page.ts +21 -0
- package/browser/src/actions/types.ts +114 -0
- package/browser/src/actions/upload.ts +44 -0
- package/browser/src/actions/wait.ts +45 -0
- package/browser/src/browser.ts +197 -0
- package/browser/src/cdp.ts +178 -0
- package/browser/src/checkpoint.ts +189 -0
- package/browser/src/config.ts +72 -0
- package/browser/src/downloads.ts +253 -0
- package/browser/src/errors.ts +31 -0
- package/browser/src/evaluate.ts +101 -0
- package/browser/src/index.ts +129 -0
- package/browser/src/limits.ts +271 -0
- package/browser/src/manager.ts +730 -0
- package/browser/src/network.ts +263 -0
- package/browser/src/observe.ts +178 -0
- package/browser/src/policy.ts +133 -0
- package/browser/src/screenshot.ts +107 -0
- package/browser/src/shared-sandbox.ts +53 -0
- package/browser/src/snapshot.ts +99 -0
- package/browser/src/targets.ts +165 -0
- package/browser/src/tools.ts +480 -0
- package/browser/src/types.ts +316 -0
- package/browser/src/uploads.ts +174 -0
- package/coding/README.md +337 -0
- package/coding/src/agent/acp-operations.ts +146 -0
- package/coding/src/agent/artifacts.ts +38 -0
- package/coding/src/agent/ask-user-decision.ts +623 -0
- package/coding/src/agent/atomic-write.ts +23 -0
- package/coding/src/agent/bounded-file.ts +21 -0
- package/coding/src/agent/checks.ts +301 -0
- package/coding/src/agent/coding-checkpoint.ts +828 -0
- package/coding/src/agent/delete.ts +237 -0
- package/coding/src/agent/diagnostics-tool.ts +163 -0
- package/coding/src/agent/diagnostics.ts +262 -0
- package/coding/src/agent/edit-diff.ts +382 -0
- package/coding/src/agent/edit.ts +322 -0
- package/coding/src/agent/effects.ts +102 -0
- package/coding/src/agent/env.ts +28 -0
- package/coding/src/agent/execution-policy.ts +89 -0
- package/coding/src/agent/file-mutation-queue.ts +72 -0
- package/coding/src/agent/forge/github.ts +603 -0
- package/coding/src/agent/forge/index.ts +16 -0
- package/coding/src/agent/forge/types.ts +185 -0
- package/coding/src/agent/git-aware-repository.ts +305 -0
- package/coding/src/agent/git-exec.ts +326 -0
- package/coding/src/agent/git-status.ts +177 -0
- package/coding/src/agent/git-tools.ts +360 -0
- package/coding/src/agent/git.ts +1074 -0
- package/coding/src/agent/glob-match.ts +146 -0
- package/coding/src/agent/glob.ts +182 -0
- package/coding/src/agent/goal-verify.ts +385 -0
- package/coding/src/agent/grep-worker.ts +74 -0
- package/coding/src/agent/grep.ts +459 -0
- package/coding/src/agent/identity.ts +48 -0
- package/coding/src/agent/index.ts +676 -0
- package/coding/src/agent/language/client.ts +429 -0
- package/coding/src/agent/language/framing.ts +190 -0
- package/coding/src/agent/language/index.ts +23 -0
- package/coding/src/agent/language/intelligence.ts +682 -0
- package/coding/src/agent/language/types.ts +187 -0
- package/coding/src/agent/lifecycle-events.ts +121 -0
- package/coding/src/agent/lifecycle.ts +166 -0
- package/coding/src/agent/limits.ts +214 -0
- package/coding/src/agent/move.ts +178 -0
- package/coding/src/agent/mutation-path.ts +52 -0
- package/coding/src/agent/output-accumulator.ts +304 -0
- package/coding/src/agent/path-utils.ts +120 -0
- package/coding/src/agent/process/index.ts +58 -0
- package/coding/src/agent/process/recovery.ts +508 -0
- package/coding/src/agent/process/sessions-host.ts +222 -0
- package/coding/src/agent/process/sessions-monitor.ts +141 -0
- package/coding/src/agent/process/sessions-recovery.ts +241 -0
- package/coding/src/agent/process/sessions-spawn.ts +613 -0
- package/coding/src/agent/process/sessions-teardown.ts +281 -0
- package/coding/src/agent/process/sessions.ts +30 -0
- package/coding/src/agent/process/types.ts +358 -0
- package/coding/src/agent/read-path-set.ts +126 -0
- package/coding/src/agent/read.ts +713 -0
- package/coding/src/agent/repository/glob.ts +147 -0
- package/coding/src/agent/repository/indexed-search.ts +480 -0
- package/coding/src/agent/repository/list.ts +131 -0
- package/coding/src/agent/repository/operations.ts +22 -0
- package/coding/src/agent/repository/path.ts +98 -0
- package/coding/src/agent/repository/search.ts +277 -0
- package/coding/src/agent/repository/types.ts +243 -0
- package/coding/src/agent/repository/walk.ts +126 -0
- package/coding/src/agent/repository.ts +12 -0
- package/coding/src/agent/shell-background.ts +264 -0
- package/coding/src/agent/shell-output.ts +75 -0
- package/coding/src/agent/shell.ts +526 -0
- package/coding/src/agent/todo.ts +399 -0
- package/coding/src/agent/truncate.ts +251 -0
- package/coding/src/agent/write.ts +170 -0
- package/coding/src/ask-user-host.ts +48 -0
- package/coding/src/config.ts +278 -0
- package/coding/src/hard-deny.ts +97 -0
- package/coding/src/index.ts +318 -0
- package/coding/src/principal-guard.ts +84 -0
- package/coding/src/sandbox.ts +92 -0
- package/coding/src/security/approval.ts +144 -0
- package/coding/src/security/command-rules.ts +57 -0
- package/coding/src/security/docker-cli.ts +222 -0
- package/coding/src/security/docker-sandbox.ts +1205 -0
- package/coding/src/security/e2b-sandbox.ts +853 -0
- package/coding/src/security/egress/dns-pin.ts +88 -0
- package/coding/src/security/egress/index.ts +32 -0
- package/coding/src/security/egress/limits.ts +57 -0
- package/coding/src/security/egress/policy.ts +137 -0
- package/coding/src/security/egress/proxy.ts +599 -0
- package/coding/src/security/egress/types.ts +30 -0
- package/coding/src/security/index.ts +199 -0
- package/coding/src/security/native-sandbox.ts +639 -0
- package/coding/src/security/path-containment.ts +55 -0
- package/coding/src/security/sandbox-coding-operations.ts +392 -0
- package/coding/src/security/sandbox-fs-operations.ts +644 -0
- package/coding/src/security/sandbox-limits.ts +147 -0
- package/coding/src/security/sandbox-tar.ts +308 -0
- package/coding/src/security/sandbox.ts +179 -0
- package/coding/src/security/semaphore.ts +55 -0
- package/coding/src/targets.ts +110 -0
- package/coding/src/workspace/diff.ts +78 -0
- package/coding/src/workspace/errors.ts +28 -0
- package/coding/src/workspace/index.ts +5 -0
- package/coding/src/workspace/merge.ts +151 -0
- package/coding/src/workspace/routing.ts +76 -0
- package/coding/src/workspace/service.ts +545 -0
- package/computer-use/README.md +105 -0
- package/computer-use/skills/computer-use-linux/SKILL.md +17 -0
- package/computer-use/src/classify.ts +53 -0
- package/computer-use/src/command.ts +29 -0
- package/computer-use/src/config.ts +69 -0
- package/computer-use/src/create.ts +170 -0
- package/computer-use/src/devices.ts +247 -0
- package/computer-use/src/env.ts +28 -0
- package/computer-use/src/index.ts +157 -0
- package/computer-use/src/skill.ts +21 -0
- package/openapi/README.md +97 -0
- package/openapi/src/compile.ts +386 -0
- package/openapi/src/config.ts +73 -0
- package/openapi/src/errors.ts +16 -0
- package/openapi/src/execute.ts +241 -0
- package/openapi/src/index.ts +124 -0
- package/openapi/src/limits.ts +63 -0
- package/openapi/src/specs.ts +86 -0
- package/openapi/src/tools.ts +60 -0
- package/openapi/src/types.ts +61 -0
- package/package.json +171 -4
- package/research/README.md +72 -0
- package/research/skills/research-report/SKILL.md +12 -0
- package/research/skills/research-scoping/SKILL.md +10 -0
- package/research/skills/research-synthesis/SKILL.md +10 -0
- package/research/skills/source-triage/SKILL.md +10 -0
- package/research/src/check.ts +71 -0
- package/research/src/config.ts +41 -0
- package/research/src/index.ts +147 -0
- package/research/src/ledger.ts +157 -0
- package/research/src/urls.ts +21 -0
- package/web/README.md +287 -0
- package/web/skills/web-research/SKILL.md +17 -0
- package/web/src/brave.ts +66 -0
- package/web/src/cache.ts +151 -0
- package/web/src/config.ts +210 -0
- package/web/src/controls.ts +128 -0
- package/web/src/domains.ts +114 -0
- package/web/src/exa.ts +60 -0
- package/web/src/firecrawl.ts +160 -0
- package/web/src/index.ts +387 -0
- package/web/src/kagi.ts +73 -0
- package/web/src/limits.ts +55 -0
- package/web/src/native/convert.ts +84 -0
- package/web/src/native/fetch.ts +226 -0
- package/web/src/normalize.ts +131 -0
- package/web/src/obscura/cdp.ts +201 -0
- package/web/src/obscura/classify.ts +35 -0
- package/web/src/obscura/cli.ts +254 -0
- package/web/src/obscura/errors.ts +8 -0
- package/web/src/obscura/index.ts +59 -0
- package/web/src/obscura/limits.ts +92 -0
- package/web/src/obscura/mcp.ts +104 -0
- package/web/src/obscura/playwright.ts +133 -0
- package/web/src/obscura/process.ts +235 -0
- package/web/src/obscura/search-profile.ts +73 -0
- package/web/src/obscura/types.ts +48 -0
- package/web/src/obscura/web.ts +419 -0
- package/web/src/prompt-fetch.ts +88 -0
- package/web/src/render.ts +75 -0
- package/web/src/searxng.ts +78 -0
- package/web/src/slice.ts +139 -0
- package/web/src/tavily.ts +77 -0
- package/web/src/tools.ts +182 -0
- package/web/src/transport.ts +310 -0
- package/web/src/types.ts +199 -0
- package/work/README.md +77 -0
- package/work/THIRD_PARTY_NOTICES +24 -0
- package/work/docling/ocr.py +150 -0
- package/work/sandbox/Dockerfile +36 -0
- package/work/sandbox/soffice.sh +12 -0
- package/work/src/command.ts +29 -0
- package/work/src/config.ts +138 -0
- package/work/src/connectors/cli.ts +343 -0
- package/work/src/connectors/drafts.ts +647 -0
- package/work/src/connectors/errors.ts +8 -0
- package/work/src/connectors/file-bytes.ts +149 -0
- package/work/src/connectors/google-workspace-http.ts +399 -0
- package/work/src/connectors/google-workspace.ts +465 -0
- package/work/src/connectors/gws-tools.ts +378 -0
- package/work/src/connectors/http.ts +123 -0
- package/work/src/connectors/idempotency.ts +235 -0
- package/work/src/connectors/identity.ts +34 -0
- package/work/src/connectors/index.ts +93 -0
- package/work/src/connectors/limits.ts +50 -0
- package/work/src/connectors/m365-tools.ts +308 -0
- package/work/src/connectors/microsoft365-http.ts +428 -0
- package/work/src/connectors/microsoft365.ts +402 -0
- package/work/src/connectors/normalize.ts +120 -0
- package/work/src/connectors/tool-helpers.ts +398 -0
- package/work/src/connectors/tools.ts +42 -0
- package/work/src/connectors/types.ts +399 -0
- package/work/src/diagrams/canonicalize.ts +166 -0
- package/work/src/diagrams/caps.ts +52 -0
- package/work/src/diagrams/embed.ts +340 -0
- package/work/src/diagrams/errors.ts +76 -0
- package/work/src/diagrams/index.ts +81 -0
- package/work/src/diagrams/messages.ts +150 -0
- package/work/src/diagrams/origin.ts +52 -0
- package/work/src/diagrams/telemetry.ts +34 -0
- package/work/src/diagrams/xml.ts +267 -0
- package/work/src/document-extraction/index.ts +563 -0
- package/work/src/document-reader/ambient.d.ts +2 -0
- package/work/src/document-reader/errors.ts +7 -0
- package/work/src/document-reader/index.ts +181 -0
- package/work/src/document-reader/mistral-ocr.ts +318 -0
- package/work/src/document-reader/parsers.ts +171 -0
- package/work/src/documents/caps.ts +135 -0
- package/work/src/documents/diff.ts +269 -0
- package/work/src/documents/errors.ts +44 -0
- package/work/src/documents/fidelity.ts +98 -0
- package/work/src/documents/generate.ts +96 -0
- package/work/src/documents/hash.ts +8 -0
- package/work/src/documents/index.ts +14 -0
- package/work/src/documents/model-schema.ts +639 -0
- package/work/src/documents/parse.ts +252 -0
- package/work/src/documents/patch-history.ts +81 -0
- package/work/src/documents/patch.ts +476 -0
- package/work/src/documents/preview-html.ts +245 -0
- package/work/src/documents/preview.ts +227 -0
- package/work/src/documents/telemetry.ts +36 -0
- package/work/src/documents/translate/docx.ts +292 -0
- package/work/src/documents/translate/pptx.ts +304 -0
- package/work/src/documents/translate/xlsx.ts +137 -0
- package/work/src/documents/types.ts +188 -0
- package/work/src/index.ts +311 -0
- package/work/src/runtime/worker-pool-entry.ts +102 -0
- package/work/src/runtime/worker-pool.ts +267 -0
- package/work/src/sandbox/composition.ts +212 -0
- package/work/src/sandbox/image.ts +6 -0
- package/work/src/sandbox/index.ts +14 -0
- package/work/src/sheets/caps.ts +68 -0
- package/work/src/sheets/csv.ts +351 -0
- package/work/src/sheets/decimal.ts +388 -0
- package/work/src/sheets/errors.ts +52 -0
- package/work/src/sheets/index.ts +62 -0
- package/work/src/sheets/inference.ts +378 -0
- package/work/src/sheets/telemetry.ts +34 -0
- package/work/src/sheets/types.ts +162 -0
- package/work/src/sheets/xlsx.ts +388 -0
- package/work/src/skills/index.ts +8 -0
- package/work/src/skills/load.ts +43 -0
- package/work/src/tools/filesystem.ts +21 -0
- package/work/src/tools/index.ts +1 -0
- package/work/src/tools/local-filesystem.ts +33 -0
- package/work/src/tools/office.ts +311 -0
- package/work/vendor/hermes-agent/LICENSE +21 -0
- package/work/vendor/hermes-agent/skills/productivity/docx/LICENSE +21 -0
- package/work/vendor/hermes-agent/skills/productivity/docx/SKILL.md +196 -0
- package/work/vendor/hermes-agent/skills/productivity/docx/scripts/docx_comments.py +289 -0
- package/work/vendor/hermes-agent/skills/productivity/docx/scripts/docx_common.py +94 -0
- package/work/vendor/hermes-agent/skills/productivity/docx/scripts/docx_create.py +177 -0
- package/work/vendor/hermes-agent/skills/productivity/docx/scripts/docx_edit.py +250 -0
- package/work/vendor/hermes-agent/skills/productivity/docx/scripts/docx_read.py +149 -0
- package/work/vendor/hermes-agent/skills/productivity/docx/scripts/docx_revisions.py +147 -0
- package/work/vendor/hermes-agent/skills/productivity/docx/scripts/docx_template.py +70 -0
- package/work/vendor/hermes-agent/skills/productivity/docx/scripts/docx_validate.py +156 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/LICENSE +21 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/SKILL.md +125 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/_raster.py +76 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/extract_marker.py +88 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/extract_pymupdf.py +101 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_create.py +130 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_fill_form.py +97 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_form_layout.py +168 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_make_form.py +145 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_merge.py +50 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_meta.py +115 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_page_image.py +99 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_read.py +153 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_secure.py +71 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_split.py +84 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_stamp.py +143 -0
- package/work/vendor/hermes-agent/skills/productivity/pdf/scripts/pdf_watermark.py +51 -0
- package/work/vendor/hermes-agent/skills/productivity/powerpoint/LICENSE +21 -0
- package/work/vendor/hermes-agent/skills/productivity/powerpoint/SKILL.md +220 -0
- package/work/vendor/hermes-agent/skills/productivity/powerpoint/scripts/pptx_create.py +214 -0
- package/work/vendor/hermes-agent/skills/productivity/powerpoint/scripts/pptx_edit.py +436 -0
- package/work/vendor/hermes-agent/skills/productivity/powerpoint/scripts/pptx_from_template.py +88 -0
- package/work/vendor/hermes-agent/skills/productivity/powerpoint/scripts/pptx_read.py +131 -0
- package/work/vendor/hermes-agent/skills/productivity/powerpoint/scripts/pptx_render.py +93 -0
- package/work/vendor/hermes-agent/skills/productivity/xlsx/LICENSE +21 -0
- package/work/vendor/hermes-agent/skills/productivity/xlsx/SKILL.md +196 -0
- package/work/vendor/hermes-agent/skills/productivity/xlsx/scripts/csv_to_xlsx.py +104 -0
- package/work/vendor/hermes-agent/skills/productivity/xlsx/scripts/xlsx_create.py +259 -0
- package/work/vendor/hermes-agent/skills/productivity/xlsx/scripts/xlsx_edit.py +263 -0
- package/work/vendor/hermes-agent/skills/productivity/xlsx/scripts/xlsx_read.py +160 -0
- package/work/vendor/hermes-agent/skills/productivity/xlsx/scripts/xlsx_recalc.py +111 -0
- package/work/vendor/hermes-agent/skills/productivity/xlsx/scripts/xlsx_restructure.py +337 -0
- package/work/vendor/hermes-agent/skills/productivity/xlsx/scripts/xlsx_to_csv.py +69 -0
- package/work/vendor-lock.json +11 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/** Finite browser defaults/hard caps frozen in Phase 4 review-coverage. */
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_MAX_PAGES = 4;
|
|
4
|
+
export const HARD_MAX_PAGES = 16;
|
|
5
|
+
export const DEFAULT_MAX_ACTIONS = 100;
|
|
6
|
+
export const HARD_MAX_ACTIONS = 256;
|
|
7
|
+
export const DEFAULT_MAX_QUEUED_ACTIONS = 16;
|
|
8
|
+
export const HARD_MAX_QUEUED_ACTIONS = 64;
|
|
9
|
+
|
|
10
|
+
export const DEFAULT_MAX_SNAPSHOT_REFS = 2_000;
|
|
11
|
+
export const HARD_MAX_SNAPSHOT_REFS = 10_000;
|
|
12
|
+
export const DEFAULT_MAX_SNAPSHOT_DEPTH = 30;
|
|
13
|
+
export const HARD_MAX_SNAPSHOT_DEPTH = 100;
|
|
14
|
+
export const DEFAULT_MAX_SNAPSHOT_BYTES = 256 * 1024;
|
|
15
|
+
export const HARD_MAX_SNAPSHOT_BYTES = 2 * 1024 * 1024;
|
|
16
|
+
|
|
17
|
+
export const DEFAULT_NAVIGATION_TIMEOUT_MS = 30_000;
|
|
18
|
+
export const HARD_NAVIGATION_TIMEOUT_MS = 120_000;
|
|
19
|
+
export const DEFAULT_ACTION_TIMEOUT_MS = 10_000;
|
|
20
|
+
export const HARD_ACTION_TIMEOUT_MS = 60_000;
|
|
21
|
+
export const DEFAULT_WAIT_TIMEOUT_MS = 30_000;
|
|
22
|
+
export const HARD_WAIT_TIMEOUT_MS = 120_000;
|
|
23
|
+
export const DEFAULT_RUN_WALL_TIME_MS = 20 * 60_000;
|
|
24
|
+
export const HARD_RUN_WALL_TIME_MS = 30 * 60_000;
|
|
25
|
+
/** Idle-run reaper TTL; 0 (default) means no reaper. Hard cap = the run wall-time cap. */
|
|
26
|
+
export const DEFAULT_IDLE_RUN_TTL_MS = 0;
|
|
27
|
+
export const HARD_IDLE_RUN_TTL_MS = 30 * 60_000;
|
|
28
|
+
|
|
29
|
+
export const DEFAULT_MAX_POPUPS = 4;
|
|
30
|
+
export const HARD_MAX_POPUPS = 16;
|
|
31
|
+
export const DEFAULT_MAX_DIALOGS = 16;
|
|
32
|
+
export const HARD_MAX_DIALOGS = 64;
|
|
33
|
+
export const DEFAULT_MAX_LISTENERS = 64;
|
|
34
|
+
export const HARD_MAX_LISTENERS = 256;
|
|
35
|
+
|
|
36
|
+
export const DEFAULT_MAX_ACTION_INPUT_BYTES = 64 * 1024;
|
|
37
|
+
export const HARD_MAX_ACTION_INPUT_BYTES = 256 * 1024;
|
|
38
|
+
export const DEFAULT_CLOSE_GRACE_MS = 5_000;
|
|
39
|
+
export const HARD_CLOSE_GRACE_MS = 30_000;
|
|
40
|
+
|
|
41
|
+
/** Network / artifact caps (Task 6). */
|
|
42
|
+
export const DEFAULT_MAX_NETWORK_REQUESTS = 1_000;
|
|
43
|
+
export const HARD_MAX_NETWORK_REQUESTS = 10_000;
|
|
44
|
+
export const DEFAULT_MAX_REDIRECTS_PER_REQUEST = 10;
|
|
45
|
+
export const HARD_MAX_REDIRECTS_PER_REQUEST = 32;
|
|
46
|
+
export const DEFAULT_MAX_WEBSOCKETS = 8;
|
|
47
|
+
export const HARD_MAX_WEBSOCKETS = 32;
|
|
48
|
+
|
|
49
|
+
export const DEFAULT_MAX_SCREENSHOTS = 16;
|
|
50
|
+
export const HARD_MAX_SCREENSHOTS = 64;
|
|
51
|
+
export const DEFAULT_MAX_SCREENSHOT_MEGAPIXELS = 16;
|
|
52
|
+
export const HARD_MAX_SCREENSHOT_MEGAPIXELS = 64;
|
|
53
|
+
export const DEFAULT_MAX_SCREENSHOT_BYTES = 10 * 1024 * 1024;
|
|
54
|
+
export const HARD_MAX_SCREENSHOT_BYTES = 32 * 1024 * 1024;
|
|
55
|
+
|
|
56
|
+
export const DEFAULT_MAX_UPLOADS = 8;
|
|
57
|
+
export const HARD_MAX_UPLOADS = 32;
|
|
58
|
+
export const DEFAULT_MAX_UPLOAD_BYTES = 16 * 1024 * 1024;
|
|
59
|
+
export const HARD_MAX_UPLOAD_BYTES = 64 * 1024 * 1024;
|
|
60
|
+
export const DEFAULT_MAX_UPLOAD_AGGREGATE_BYTES = 64 * 1024 * 1024;
|
|
61
|
+
export const HARD_MAX_UPLOAD_AGGREGATE_BYTES = 256 * 1024 * 1024;
|
|
62
|
+
|
|
63
|
+
export const DEFAULT_MAX_DOWNLOADS = 8;
|
|
64
|
+
export const HARD_MAX_DOWNLOADS = 32;
|
|
65
|
+
export const DEFAULT_MAX_DOWNLOAD_BYTES = 32 * 1024 * 1024;
|
|
66
|
+
export const HARD_MAX_DOWNLOAD_BYTES = 256 * 1024 * 1024;
|
|
67
|
+
export const DEFAULT_MAX_DOWNLOAD_AGGREGATE_BYTES = 64 * 1024 * 1024;
|
|
68
|
+
export const HARD_MAX_DOWNLOAD_AGGREGATE_BYTES = 512 * 1024 * 1024;
|
|
69
|
+
|
|
70
|
+
/** CDP (Task 4, 0.1.4): evaluate/observe/network-control bounds. */
|
|
71
|
+
export const DEFAULT_MAX_EVALUATE_RESULT_BYTES = 64 * 1024;
|
|
72
|
+
export const HARD_MAX_EVALUATE_RESULT_BYTES = 256 * 1024;
|
|
73
|
+
export const DEFAULT_MAX_CONSOLE_ENTRIES = 200;
|
|
74
|
+
export const HARD_MAX_CONSOLE_ENTRIES = 500;
|
|
75
|
+
export const DEFAULT_MAX_BLOCKED_URL_PATTERNS = 32;
|
|
76
|
+
export const HARD_MAX_BLOCKED_URL_PATTERNS = 128;
|
|
77
|
+
/** Hard caps for CDP throttle/emulate inputs (validated at action time, not configurable). */
|
|
78
|
+
export const HARD_MAX_THROTTLE_LATENCY_MS = 120_000;
|
|
79
|
+
export const HARD_MAX_THROTTLE_KBPS = 1_000_000;
|
|
80
|
+
export const HARD_MAX_EMULATE_DIMENSION = 16_384;
|
|
81
|
+
export const HARD_MAX_DEVICE_SCALE_FACTOR = 10;
|
|
82
|
+
export const HARD_MAX_EMULATE_UA_BYTES = 2_048;
|
|
83
|
+
|
|
84
|
+
export interface BrowserLimitOptions {
|
|
85
|
+
readonly maxPages?: number;
|
|
86
|
+
readonly maxActions?: number;
|
|
87
|
+
readonly maxQueuedActions?: number;
|
|
88
|
+
readonly maxSnapshotRefs?: number;
|
|
89
|
+
readonly maxSnapshotDepth?: number;
|
|
90
|
+
readonly maxSnapshotBytes?: number;
|
|
91
|
+
readonly navigationTimeoutMs?: number;
|
|
92
|
+
readonly actionTimeoutMs?: number;
|
|
93
|
+
readonly waitTimeoutMs?: number;
|
|
94
|
+
readonly runWallTimeMs?: number;
|
|
95
|
+
readonly idleRunTtlMs?: number;
|
|
96
|
+
readonly maxPopups?: number;
|
|
97
|
+
readonly maxDialogs?: number;
|
|
98
|
+
readonly maxListeners?: number;
|
|
99
|
+
readonly maxActionInputBytes?: number;
|
|
100
|
+
readonly closeGraceMs?: number;
|
|
101
|
+
readonly maxNetworkRequests?: number;
|
|
102
|
+
readonly maxRedirectsPerRequest?: number;
|
|
103
|
+
readonly maxWebSockets?: number;
|
|
104
|
+
readonly maxScreenshots?: number;
|
|
105
|
+
readonly maxScreenshotMegapixels?: number;
|
|
106
|
+
readonly maxScreenshotBytes?: number;
|
|
107
|
+
readonly maxUploads?: number;
|
|
108
|
+
readonly maxUploadBytes?: number;
|
|
109
|
+
readonly maxUploadAggregateBytes?: number;
|
|
110
|
+
readonly maxDownloads?: number;
|
|
111
|
+
readonly maxDownloadBytes?: number;
|
|
112
|
+
readonly maxDownloadAggregateBytes?: number;
|
|
113
|
+
readonly maxEvaluateResultBytes?: number;
|
|
114
|
+
readonly maxConsoleEntries?: number;
|
|
115
|
+
readonly maxBlockedUrlPatterns?: number;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export interface ResolvedBrowserLimits {
|
|
119
|
+
readonly maxPages: number;
|
|
120
|
+
readonly maxActions: number;
|
|
121
|
+
readonly maxQueuedActions: number;
|
|
122
|
+
readonly maxSnapshotRefs: number;
|
|
123
|
+
readonly maxSnapshotDepth: number;
|
|
124
|
+
readonly maxSnapshotBytes: number;
|
|
125
|
+
readonly navigationTimeoutMs: number;
|
|
126
|
+
readonly actionTimeoutMs: number;
|
|
127
|
+
readonly waitTimeoutMs: number;
|
|
128
|
+
readonly runWallTimeMs: number;
|
|
129
|
+
readonly idleRunTtlMs: number;
|
|
130
|
+
readonly maxPopups: number;
|
|
131
|
+
readonly maxDialogs: number;
|
|
132
|
+
readonly maxListeners: number;
|
|
133
|
+
readonly maxActionInputBytes: number;
|
|
134
|
+
readonly closeGraceMs: number;
|
|
135
|
+
readonly maxNetworkRequests: number;
|
|
136
|
+
readonly maxRedirectsPerRequest: number;
|
|
137
|
+
readonly maxWebSockets: number;
|
|
138
|
+
readonly maxScreenshots: number;
|
|
139
|
+
readonly maxScreenshotMegapixels: number;
|
|
140
|
+
readonly maxScreenshotBytes: number;
|
|
141
|
+
readonly maxUploads: number;
|
|
142
|
+
readonly maxUploadBytes: number;
|
|
143
|
+
readonly maxUploadAggregateBytes: number;
|
|
144
|
+
readonly maxDownloads: number;
|
|
145
|
+
readonly maxDownloadBytes: number;
|
|
146
|
+
readonly maxDownloadAggregateBytes: number;
|
|
147
|
+
readonly maxEvaluateResultBytes: number;
|
|
148
|
+
readonly maxConsoleEntries: number;
|
|
149
|
+
readonly maxBlockedUrlPatterns: number;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const DEFAULTS: ResolvedBrowserLimits = {
|
|
153
|
+
maxPages: DEFAULT_MAX_PAGES,
|
|
154
|
+
maxActions: DEFAULT_MAX_ACTIONS,
|
|
155
|
+
maxQueuedActions: DEFAULT_MAX_QUEUED_ACTIONS,
|
|
156
|
+
maxSnapshotRefs: DEFAULT_MAX_SNAPSHOT_REFS,
|
|
157
|
+
maxSnapshotDepth: DEFAULT_MAX_SNAPSHOT_DEPTH,
|
|
158
|
+
maxSnapshotBytes: DEFAULT_MAX_SNAPSHOT_BYTES,
|
|
159
|
+
navigationTimeoutMs: DEFAULT_NAVIGATION_TIMEOUT_MS,
|
|
160
|
+
actionTimeoutMs: DEFAULT_ACTION_TIMEOUT_MS,
|
|
161
|
+
waitTimeoutMs: DEFAULT_WAIT_TIMEOUT_MS,
|
|
162
|
+
runWallTimeMs: DEFAULT_RUN_WALL_TIME_MS,
|
|
163
|
+
idleRunTtlMs: DEFAULT_IDLE_RUN_TTL_MS,
|
|
164
|
+
maxPopups: DEFAULT_MAX_POPUPS,
|
|
165
|
+
maxDialogs: DEFAULT_MAX_DIALOGS,
|
|
166
|
+
maxListeners: DEFAULT_MAX_LISTENERS,
|
|
167
|
+
maxActionInputBytes: DEFAULT_MAX_ACTION_INPUT_BYTES,
|
|
168
|
+
closeGraceMs: DEFAULT_CLOSE_GRACE_MS,
|
|
169
|
+
maxNetworkRequests: DEFAULT_MAX_NETWORK_REQUESTS,
|
|
170
|
+
maxRedirectsPerRequest: DEFAULT_MAX_REDIRECTS_PER_REQUEST,
|
|
171
|
+
maxWebSockets: DEFAULT_MAX_WEBSOCKETS,
|
|
172
|
+
maxScreenshots: DEFAULT_MAX_SCREENSHOTS,
|
|
173
|
+
maxScreenshotMegapixels: DEFAULT_MAX_SCREENSHOT_MEGAPIXELS,
|
|
174
|
+
maxScreenshotBytes: DEFAULT_MAX_SCREENSHOT_BYTES,
|
|
175
|
+
maxUploads: DEFAULT_MAX_UPLOADS,
|
|
176
|
+
maxUploadBytes: DEFAULT_MAX_UPLOAD_BYTES,
|
|
177
|
+
maxUploadAggregateBytes: DEFAULT_MAX_UPLOAD_AGGREGATE_BYTES,
|
|
178
|
+
maxDownloads: DEFAULT_MAX_DOWNLOADS,
|
|
179
|
+
maxDownloadBytes: DEFAULT_MAX_DOWNLOAD_BYTES,
|
|
180
|
+
maxDownloadAggregateBytes: DEFAULT_MAX_DOWNLOAD_AGGREGATE_BYTES,
|
|
181
|
+
maxEvaluateResultBytes: DEFAULT_MAX_EVALUATE_RESULT_BYTES,
|
|
182
|
+
maxConsoleEntries: DEFAULT_MAX_CONSOLE_ENTRIES,
|
|
183
|
+
maxBlockedUrlPatterns: DEFAULT_MAX_BLOCKED_URL_PATTERNS,
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
const HARD: ResolvedBrowserLimits = {
|
|
187
|
+
maxPages: HARD_MAX_PAGES,
|
|
188
|
+
maxActions: HARD_MAX_ACTIONS,
|
|
189
|
+
maxQueuedActions: HARD_MAX_QUEUED_ACTIONS,
|
|
190
|
+
maxSnapshotRefs: HARD_MAX_SNAPSHOT_REFS,
|
|
191
|
+
maxSnapshotDepth: HARD_MAX_SNAPSHOT_DEPTH,
|
|
192
|
+
maxSnapshotBytes: HARD_MAX_SNAPSHOT_BYTES,
|
|
193
|
+
navigationTimeoutMs: HARD_NAVIGATION_TIMEOUT_MS,
|
|
194
|
+
actionTimeoutMs: HARD_ACTION_TIMEOUT_MS,
|
|
195
|
+
waitTimeoutMs: HARD_WAIT_TIMEOUT_MS,
|
|
196
|
+
runWallTimeMs: HARD_RUN_WALL_TIME_MS,
|
|
197
|
+
idleRunTtlMs: HARD_IDLE_RUN_TTL_MS,
|
|
198
|
+
maxPopups: HARD_MAX_POPUPS,
|
|
199
|
+
maxDialogs: HARD_MAX_DIALOGS,
|
|
200
|
+
maxListeners: HARD_MAX_LISTENERS,
|
|
201
|
+
maxActionInputBytes: HARD_MAX_ACTION_INPUT_BYTES,
|
|
202
|
+
closeGraceMs: HARD_CLOSE_GRACE_MS,
|
|
203
|
+
maxNetworkRequests: HARD_MAX_NETWORK_REQUESTS,
|
|
204
|
+
maxRedirectsPerRequest: HARD_MAX_REDIRECTS_PER_REQUEST,
|
|
205
|
+
maxWebSockets: HARD_MAX_WEBSOCKETS,
|
|
206
|
+
maxScreenshots: HARD_MAX_SCREENSHOTS,
|
|
207
|
+
maxScreenshotMegapixels: HARD_MAX_SCREENSHOT_MEGAPIXELS,
|
|
208
|
+
maxScreenshotBytes: HARD_MAX_SCREENSHOT_BYTES,
|
|
209
|
+
maxUploads: HARD_MAX_UPLOADS,
|
|
210
|
+
maxUploadBytes: HARD_MAX_UPLOAD_BYTES,
|
|
211
|
+
maxUploadAggregateBytes: HARD_MAX_UPLOAD_AGGREGATE_BYTES,
|
|
212
|
+
maxDownloads: HARD_MAX_DOWNLOADS,
|
|
213
|
+
maxDownloadBytes: HARD_MAX_DOWNLOAD_BYTES,
|
|
214
|
+
maxDownloadAggregateBytes: HARD_MAX_DOWNLOAD_AGGREGATE_BYTES,
|
|
215
|
+
maxEvaluateResultBytes: HARD_MAX_EVALUATE_RESULT_BYTES,
|
|
216
|
+
maxConsoleEntries: HARD_MAX_CONSOLE_ENTRIES,
|
|
217
|
+
maxBlockedUrlPatterns: HARD_MAX_BLOCKED_URL_PATTERNS,
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
export const DEFAULT_BROWSER_LIMITS = DEFAULTS;
|
|
221
|
+
export const HARD_BROWSER_LIMITS = HARD;
|
|
222
|
+
|
|
223
|
+
function validate(name: keyof ResolvedBrowserLimits, value: number): number {
|
|
224
|
+
const hard = HARD[name];
|
|
225
|
+
// `idleRunTtlMs` is the one cap where 0 is meaningful ("reaper off").
|
|
226
|
+
const floor = name === "idleRunTtlMs" ? 0 : 1;
|
|
227
|
+
if (!Number.isSafeInteger(value) || value < floor || value > hard) {
|
|
228
|
+
throw new RangeError(
|
|
229
|
+
floor === 0
|
|
230
|
+
? `${name} must be a safe integer in 0..${hard} (0 disables the reaper)`
|
|
231
|
+
: `${name} must be a positive safe integer at most ${hard}`,
|
|
232
|
+
);
|
|
233
|
+
}
|
|
234
|
+
return value;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export function resolveBrowserLimits(input: BrowserLimitOptions = {}): ResolvedBrowserLimits {
|
|
238
|
+
return {
|
|
239
|
+
maxPages: validate("maxPages", input.maxPages ?? DEFAULTS.maxPages),
|
|
240
|
+
maxActions: validate("maxActions", input.maxActions ?? DEFAULTS.maxActions),
|
|
241
|
+
maxQueuedActions: validate("maxQueuedActions", input.maxQueuedActions ?? DEFAULTS.maxQueuedActions),
|
|
242
|
+
maxSnapshotRefs: validate("maxSnapshotRefs", input.maxSnapshotRefs ?? DEFAULTS.maxSnapshotRefs),
|
|
243
|
+
maxSnapshotDepth: validate("maxSnapshotDepth", input.maxSnapshotDepth ?? DEFAULTS.maxSnapshotDepth),
|
|
244
|
+
maxSnapshotBytes: validate("maxSnapshotBytes", input.maxSnapshotBytes ?? DEFAULTS.maxSnapshotBytes),
|
|
245
|
+
navigationTimeoutMs: validate("navigationTimeoutMs", input.navigationTimeoutMs ?? DEFAULTS.navigationTimeoutMs),
|
|
246
|
+
actionTimeoutMs: validate("actionTimeoutMs", input.actionTimeoutMs ?? DEFAULTS.actionTimeoutMs),
|
|
247
|
+
waitTimeoutMs: validate("waitTimeoutMs", input.waitTimeoutMs ?? DEFAULTS.waitTimeoutMs),
|
|
248
|
+
runWallTimeMs: validate("runWallTimeMs", input.runWallTimeMs ?? DEFAULTS.runWallTimeMs),
|
|
249
|
+
idleRunTtlMs: validate("idleRunTtlMs", input.idleRunTtlMs ?? DEFAULTS.idleRunTtlMs),
|
|
250
|
+
maxPopups: validate("maxPopups", input.maxPopups ?? DEFAULTS.maxPopups),
|
|
251
|
+
maxDialogs: validate("maxDialogs", input.maxDialogs ?? DEFAULTS.maxDialogs),
|
|
252
|
+
maxListeners: validate("maxListeners", input.maxListeners ?? DEFAULTS.maxListeners),
|
|
253
|
+
maxActionInputBytes: validate("maxActionInputBytes", input.maxActionInputBytes ?? DEFAULTS.maxActionInputBytes),
|
|
254
|
+
closeGraceMs: validate("closeGraceMs", input.closeGraceMs ?? DEFAULTS.closeGraceMs),
|
|
255
|
+
maxNetworkRequests: validate("maxNetworkRequests", input.maxNetworkRequests ?? DEFAULTS.maxNetworkRequests),
|
|
256
|
+
maxRedirectsPerRequest: validate("maxRedirectsPerRequest", input.maxRedirectsPerRequest ?? DEFAULTS.maxRedirectsPerRequest),
|
|
257
|
+
maxWebSockets: validate("maxWebSockets", input.maxWebSockets ?? DEFAULTS.maxWebSockets),
|
|
258
|
+
maxScreenshots: validate("maxScreenshots", input.maxScreenshots ?? DEFAULTS.maxScreenshots),
|
|
259
|
+
maxScreenshotMegapixels: validate("maxScreenshotMegapixels", input.maxScreenshotMegapixels ?? DEFAULTS.maxScreenshotMegapixels),
|
|
260
|
+
maxScreenshotBytes: validate("maxScreenshotBytes", input.maxScreenshotBytes ?? DEFAULTS.maxScreenshotBytes),
|
|
261
|
+
maxUploads: validate("maxUploads", input.maxUploads ?? DEFAULTS.maxUploads),
|
|
262
|
+
maxUploadBytes: validate("maxUploadBytes", input.maxUploadBytes ?? DEFAULTS.maxUploadBytes),
|
|
263
|
+
maxUploadAggregateBytes: validate("maxUploadAggregateBytes", input.maxUploadAggregateBytes ?? DEFAULTS.maxUploadAggregateBytes),
|
|
264
|
+
maxDownloads: validate("maxDownloads", input.maxDownloads ?? DEFAULTS.maxDownloads),
|
|
265
|
+
maxDownloadBytes: validate("maxDownloadBytes", input.maxDownloadBytes ?? DEFAULTS.maxDownloadBytes),
|
|
266
|
+
maxDownloadAggregateBytes: validate("maxDownloadAggregateBytes", input.maxDownloadAggregateBytes ?? DEFAULTS.maxDownloadAggregateBytes),
|
|
267
|
+
maxEvaluateResultBytes: validate("maxEvaluateResultBytes", input.maxEvaluateResultBytes ?? DEFAULTS.maxEvaluateResultBytes),
|
|
268
|
+
maxConsoleEntries: validate("maxConsoleEntries", input.maxConsoleEntries ?? DEFAULTS.maxConsoleEntries),
|
|
269
|
+
maxBlockedUrlPatterns: validate("maxBlockedUrlPatterns", input.maxBlockedUrlPatterns ?? DEFAULTS.maxBlockedUrlPatterns),
|
|
270
|
+
};
|
|
271
|
+
}
|