Why
Consolidates 11 ActionFinder improvement branches into a single tested PR for easier review and deployment. These improvements significantly enhance the ActionFinder agent's ability to discover, deduplicate, and validate API endpoints.
What
This PR merges the following feature branches:
1. feat/finder-use-opus
- Uses Claude Opus for ActionFinder parent coordinator (better reasoning for complex orchestration)
2. feat/INT-1131-firecrawl-rawhtml-format
- Uses raw HTML format from Firecrawl for better endpoint extraction
- Reduces context noise from markdown conversion
3. feat/INT-1121-openapi-determinism
- Makes OpenAPI parsing deterministic by sorting endpoints
- Enables consistent diffing between runs
4. fix/INT-1117-openapi-parser-overwrite
- Fixes bug where OpenAPI parser would overwrite knowledge files
- Now properly appends/merges instead of replacing
5. feat/INT-1127-graphql-subagent-suite
- Adds GraphQL subagent support (graphql, graphql_firecrawl, graphql_websearch)
- Parent coordinator detects API type (REST, GraphQL, or Mixed)
- Endpoints formatted as "POST /graphql (type: operationName)"
6. feat/endpoint-extractor-file-output
- Endpoint extractor writes JSON to file instead of structured output
- Adds validation tool for checking extracted endpoints
- More reliable than structured output for large payloads
7. feat/api-version-research-agent
- New api_researcher agent runs before discovery
- Identifies API versions, deprecation dates, and documentation URLs
- Subagents use this research to prioritize current versions
8. feat/websearch-embedded-openapi-v2
- WebSearch subagent can extract embedded OpenAPI specs from HTML
- Better coverage when no downloadable spec exists
9. feat/INT-1140-postman-download-all
- Downloads all collections from Postman workspace
- Previously only downloaded first matching collection
10. feat/normalize-double-curly-path-params
- Normalizes
{{param}} (Jinja/Handlebars style) path parameters
- Deduplication correctly groups
{{id}}, {id}, :id, [id] variants
11. feat/writer-deduplication-tool
- New
deduplicate_endpoints tool for writer subagent
- Cross-source deduplication with configurable normalization
view_endpoints_as_trie and compare_endpoint_tries visualization tools
get_deduplicate_source for debugging edge cases
How to test
-
Run ActionFinder workflow against apps with:
- REST + GraphQL APIs (e.g., GitHub)
- Multiple API versions (e.g., Asana, Coupa)
- Postman workspaces with multiple collections
- Embedded OpenAPI specs in docs
-
Verify:
- API type detection in summary.md
- GraphQL operations discovered (if applicable)
- Deduplication handles path param variants
- No duplicate endpoints in final output
Notes
- All 11 branches successfully merged with conflict resolution
make fmt && make chk passes
- Ready for staging testing
🤖 Generated with Claude Code