All notable changes to this project will be documented in this file.
- OpenAI Skill: AIR SDK is now available as an OpenAI hosted shell skill. Upload via
/v1/skillsAPI, use withgpt-5.4orgpt-5.4-mini. Requiresnetwork_policyallowlist forapi.agentinternetruntime.com. - Content-type pre-router (S1):
extract_urlnow detects RSS, Atom, and JSON API endpoints via HEAD request and parses them directly, bypassing WebKit. Fed RSS feeds extract at 85% confidence with 20+ items. GitHub Atom feeds return full release data. - JSON-API nested field extraction:
jsonObjectToContentItem()now resolves nested fields (e.g.,commit.message,commit.author.date) via dot-path traversal and one-level auto-traverse. Fixes GitHub API extraction returning only author logins. - Universal pattern abstraction (S2): After macro synthesis, abstract patterns (e.g., "search_form") are extracted and stored in
sdk_universal_patterns. Execute_capability falls back topattern_matchedtier (0.6 confidence) for unindexed domains. - Mandatory diagnostics in MCP responses (S3):
extract_urlandbrowse_capabilitiesnow include[AIR-DIAG]lines with method, confidence, items, cached status, credits, and tier distribution. - Browser observation capture (S4):
report_outcomeacceptsbrowserObservations(pageStructure, contentQualityVsBrowser, extractionFallbackUsed). Domains flagged asbrowser_much_bettergetnavigation_policy: 'requires_js_rendering'on capability_index. - SDK quality-gated billing: SDK keys no longer consume execution quota for meta-only/zero-value extractions. Previously, all SDK extract calls charged 1 execution regardless of quality.
- Claude Desktop support in install-skill:
install-skillnow auto-detects Claude Desktop (macOS, Windows, Linux) alongside Claude Code, Cursor, Windsurf, and OpenClaw. - Absolute binary path in MCP configs:
install-skillwrites the full global binary path (e.g.,/opt/homebrew/bin/air-sdk) instead of bareair-sdk, avoiding npx version caching issues.
- Updated MCP tool descriptions (S5):
extract_urlnow mentions RSS/Atom/JSON API support and browser fallback guidance.browse_capabilitiesmentions universal patterns. browserQualityandfallbackMethodfields now stored insdk_synthesis_queueaction_pattern (previously silently dropped by report.ts).
- report_outcome schema:
successandselectorMatchednow accept both boolean and string types (LLM agents often send"true"instead oftrue) - Cross-request correlation: execute_capability generates a
requestIdthat links to report_outcome for richer telemetry - Heuristic execution hints for description_only capabilities — keeps agents in the AIR workflow even without verified macros
- Benchmarks: real API latency measurements across 8 domains, cost/speed comparison tables
- Benchmark script (
benchmark/run.ts) for independent verification
- Unified MCP server with extract_url tool
- Telemetry field mapping for cloud ingestion
- Version reporting consistency
- Initial release
- Playwright, Puppeteer, and Browser Use adapters
- Smart selector resolution with fallback cascading
- Privacy-first telemetry with PII filtering
- Capability discovery and macro execution
- MCP server for Claude Code and Cursor
- CLI init for zero-config setup
- Machine Payments Protocol (MPP) support