Skip to content

Browser Automation

Triggerfish CDP (Chrome DevTools Protocol) کا استعمال کرتے ہوئے ایک dedicated managed Chromium instance کے ذریعے گہرا browser control فراہم کرتا ہے۔ ایجنٹ web navigate کر سکتا ہے، pages سے interact کر سکتا ہے، forms fill کر سکتا ہے، screenshots capture کر سکتا ہے، اور web workflows automate کر سکتا ہے — سب policy enforcement کے تحت۔

Architecture

Browser automation puppeteer-core پر built ہے، CDP کے ذریعے managed Chromium instance سے connect ہوتا ہے۔ ہر browser action browser تک پہنچنے سے پہلے policy layer سے گزرتا ہے۔

Triggerfish Google Chrome، Chromium، اور Brave سمیت Chromium-based browsers auto-detect کرتا ہے۔ Detection Linux، macOS، Windows، اور Flatpak environments پر standard install paths cover کرتا ہے۔

browser_navigate tool کو http:// یا https:// URLs چاہیے۔ Browser-internal

schemes (جیسے chrome://، brave://، about:) support نہیں کیے جاتے اور web URL استعمال کرنے کی رہنمائی کے ساتھ error واپس کریں گے۔ :::

Browser automation flow: Agent → Browser Tool → Policy Layer → CDP → Managed Chromium

Browser profile ہر ایجنٹ کے لیے isolated ہے۔ Managed Chromium instance آپ کے personal browser کے ساتھ cookies، sessions، یا local storage share نہیں کرتا۔ Credential autofill ڈیفالٹ طور پر disabled ہے۔

Available Actions

Actionتفصیلمثالی استعمال
navigateURL پر جائیں (domain policy کے تابع)Research کے لیے web page کھولیں
snapshotPage screenshot capture کریںUI state document کریں، visual information extract کریں
clickPage پر element click کریںForm submit کریں، button activate کریں
typeInput field میں text type کریںSearch box fill کریں، form complete کریں
selectDropdown سے option select کریںMenu سے منتخب کریں
uploadForm پر file upload کریںDocument attach کریں
evaluatePage context میں JavaScript چلائیں (sandboxed)Data extract کریں، DOM manipulate کریں
waitElement یا condition کا انتظار کریںInteract کرنے سے پہلے page loaded ہونا یقینی بنائیں

Domain Policy Enforcement

ایجنٹ جو بھی URL navigate کرتا ہے، browser act کرنے سے پہلے domain allowlist اور denylist کے خلاف check ہوتا ہے۔

Configuration

yaml
browser:
  domain_policy:
    allow:
      - "*.example.com"
      - "github.com"
      - "docs.google.com"
      - "*.notion.so"
    deny:
      - "*.malware-site.com"
    classification:
      "*.internal.company.com": INTERNAL
      "github.com": INTERNAL
      "*.google.com": INTERNAL

Domain Policy کیسے کام کرتی ہے

  1. ایجنٹ browser.navigate("https://github.com/org/repo") call کرتا ہے
  2. PRE_TOOL_CALL hook URL کے ساتھ context میں fire ہوتا ہے
  3. Policy engine domain کو allow/deny lists کے خلاف check کرتی ہے
  4. اگر denied یا allowlist پر نہ ہو، navigation blocked ہوتا ہے
  5. اگر allowed ہو، domain classification دیکھا جاتا ہے
  6. Session taint domain classification سے match کرنے کے لیے escalate ہوتا ہے
  7. Navigation آگے بڑھتا ہے

سیکیورٹی اگر domain allowlist پر نہ ہو، تو navigation ڈیفالٹ طور پر blocked

ہوتا ہے۔ LLM domain policy override نہیں کر سکتا۔ یہ ایجنٹ کو arbitrary websites visit کرنے سے روکتا ہے جو sensitive data expose کر سکتی ہیں یا unwanted actions trigger کر سکتی ہیں۔ :::

Screenshots اور Classification

browser.snapshot کے ذریعے captured screenshots session کا موجودہ taint level inherit کرتے ہیں۔ اگر session CONFIDENTIAL پر tainted ہو، تو اس session کے تمام screenshots CONFIDENTIAL classified ہوتے ہیں۔

یہ output policy کے لیے اہم ہے۔ CONFIDENTIAL classified screenshot PUBLIC channel کو نہیں بھیجا جا سکتا۔ PRE_OUTPUT hook حد پر یہ نافذ کرتا ہے۔

Security Controls

Per-Agent Browser Isolation

ہر ایجنٹ کو اپنا browser profile ملتا ہے۔ اس کا مطلب:

  • Agents کے درمیان کوئی shared cookies نہیں
  • کوئی shared local storage یا session storage نہیں
  • Host browser cookies یا sessions تک کوئی رسائی نہیں
  • Credential autofill ڈیفالٹ طور پر disabled
  • Browser extensions load نہیں ہوتے

Policy Hook Integration

تمام browser actions standard policy hooks سے گزرتے ہیں:

Hookکب Fire ہوتا ہےکیا چیک کرتا ہے
PRE_TOOL_CALLہر browser action سے پہلےDomain allowlist، URL policy، action permissions
POST_TOOL_RESPONSEBrowser data واپس کرنے کے بعدResponse classify کریں، session taint اپ ڈیٹ، lineage بنائیں
PRE_OUTPUTBrowser content سسٹم چھوڑنے پرمنزل کے خلاف classification check

مثال: Web Research Workflow

Browser automation استعمال کرتے ہوئے ایک typical agent workflow:

1. User:  "Research competitor pricing on example-competitor.com"

2. Agent: browser.navigate("https://example-competitor.com/pricing")
          -> PRE_TOOL_CALL: domain "example-competitor.com" allowlist کے خلاف check
          -> Allowed، PUBLIC classified
          -> Navigation آگے بڑھتا ہے

3. Agent: browser.snapshot()
          -> Screenshot captured، session taint level (PUBLIC) پر classified

4. Agent: browser.evaluate("document.querySelector('.pricing-table').innerText")
          -> Text extracted، PUBLIC classified
          -> Lineage record بنا: source=example-competitor.com/pricing

5. Agent: Pricing information summarize کرتا ہے اور user کو واپس کرتا ہے
          -> PRE_OUTPUT: PUBLIC data user channel کو -- ALLOWED

ہر قدم logged، classified، اور auditable ہے۔